summaryrefslogtreecommitdiff
path: root/apps/web/src/preview
Commit message (Collapse)AuthorAgeFilesLines
* feat: lens effects tab, standalone motion effects, clip/asset rename, ↵cashmere2026-08-092-1/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | preview popout - New Lens category in the assets panel: Blur, Motion Blur, Zoom In/Out, Pan x4, Shake, Pulse, Spin, Custom Zoom. EffectDefinition gains a category field; tabs with an empty category are hidden, and the properties-panel 'Open effects' button opens the first non-empty one. - Motion effects work standalone: dropping them on the timeline creates an effect-track element that animates (scale/translate/rotate) every track below it, computed purely in the TS frame descriptor - no wasm changes, identical in preview and export. supportsStandalone removed. - Motion Blur: directional gaussian smear (amount + angle) reusing the existing WGSL shader with arbitrary u_direction. - Custom Zoom: start/end scale params (keyframable clip-level). - MotionOffset gains optional rotate, accumulated clip-level and applied to standalone layer quads via rotationDegrees. - Rename clips (timeline context menu) and media assets (media panel context menu) via a shared RenameDialog; asset rename persists through storageService with rollback on error. - Preview pops out into a Document Picture-in-Picture window and docks back; button hidden where the API is unsupported. - Export keeps running when the export popover is closed; only the explicit Cancel button aborts. - Captions and Adjustment tabs removed from the assets panel.
* fix: keep GPU effect previews from clobbering the preview canvascashmere2026-08-081-0/+9
| | | | | | | | | | | | | | | | On the WebGL backend wgpu can only present to the single canvas its GL context is bound to, which is also the compositor's output canvas. The effect tile previews (and mask feather) rendered through that canvas and resized it behind the compositor's back, leaving the main preview showing the preview image stretched until a full reload. TS side (works with the published wasm): after every applyEffectPasses/ applyMaskFeather call the gpu renderer restores the canvas size, using a one-pixel intermediate resize to force a surface reconfigure, then notifies the preview component to re-render the current frame. Rust side (next wasm publish): the GL canvas detour saves and restores the canvas size, and resizeCompositor always reconfigures the surface.
* refactor: remove dead tangent handle variantMaze Winther2026-05-021-20/+15
| | | | | | | | | | | The { kind: "tangent" } MaskHandleId variant was never constructed — neither getFreeformDisplayHandles nor any other code ever produced a tangent handle object. The in/out control-arm branches in computeFreeformParamUpdate, the tangent case in maskHandleIdKey, and the CUSTOM_MASK_TANGENT_SIZE rendering path in mask-handles.tsx were all unreachable. Removed all four dead paths and removed "tangent" from MaskHandleKind. Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor: split builtin and freeform masksMaze Winther2026-05-021-2/+2
| | | | Made-with: Cursor
* refactor: type mask handle identifiersMaze Winther2026-05-021-8/+10
| | | | Made-with: Cursor
* refactor: unify element paramsMaze Winther2026-05-024-62/+98
|
* chore: switch from biome to eslint + prettier; fix ton of lint issuesMaze Winther2026-05-026-46/+37
|
* refactor: split animation helpers by domainMaze Winther2026-04-265-359/+372
|\
| * refactor: split animation helpers by domainMaze Winther2026-04-263-310/+310
| |
| * refactor: centralize editor interaction stateMaze Winther2026-04-255-1033/+1458
| | | | | | | | | | | | | | | | Move timeline and preview gestures into dedicated controllers so hooks stay thin around editor state and DOM events. This also routes drag and playback synchronization through manager APIs and reuses persistent wasm surfaces so scrubbing, seeking, and preview rendering stay in sync. Made-with: Cursor
| * perf: improve rendering performance by ~20xMaze Winther2026-04-221-43/+57
| |
* | refactor: thinner hooksMaze Winther2026-04-265-1025/+1453
| |
* | fix: model editor time as wasm MediaTime ticks end-to-endMaze Winther2026-04-261-2/+3
|/
* refactor: restructure files to their domains, new preview overlay system, ↵Maze Winther2026-04-2022-0/+4997
and dep graph