/** * @file use-canvas-media-drop.tsx — Phase 23 canvas media intake * @scope apps/studio/use-canvas-media-drop.tsx * @purpose OS-level drag-and-drop + clipboard paste of images, video/audio, * and URLs onto the canvas. Routes each gesture to a create callback * owned by AnnotationsLayer (which holds the commit/undo sink + * screenToWorld): * • image file → `onImage(file, world)` → optimistic stroke + upload * • video/audio → `onMedia?(file, kind, world)` → upload to assets/ * + toast the `