{"agent":"claude","input":"Convert the class components in this app to function components with hooks, except the main App class in packages/excalidraw/components/App.tsx, which is out of scope. List every class component first. Leave error boundaries as classes and explain why. Keep behaviour identical: same props, same public API objects, same effects on mount and unmount. Where another module holds a reference to the component instance, give it an explicit object with only the fields it uses. Make one commit per component, run yarn test:typecheck, yarn test:app --watch=false and yarn test:code after each, start the app and try the converted feature in the browser, and open a pull request listing each component and what was checked.","resources":[{"url":"https://github.com/your-org/your-app"}]}