summaryrefslogtreecommitdiff
path: root/apps/web/src/components/editor/panels/assets
Commit message (Collapse)AuthorAgeFilesLines
* feat: add transitions, track mixing, and voiceover controlscashmere2026-08-162-6/+264
|
* feat: lens effects tab, standalone motion effects, clip/asset rename, ↵cashmere2026-08-094-42/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* feat: gate sounds/stickers/effects UI behind feature flagscashmere2026-07-272-4/+13
| | | | | | | FEATURES in src/features.ts (all false) hides the assets-panel tabs and views, the clip effects properties tab, and the timeline effects badge. Existing project data still renders and stays editable (standalone effect tab, sticker config, renderer nodes untouched).
* fix: guard MediaPreview against image assets without urlcashmere2026-07-261-1/+12
| | | | | | | The image branch rendered <Image src={item.url ?? ""}>, crashing the assets panel for any image asset lacking url. It now falls back to thumbnailUrl and then to the existing MediaTypePlaceholder, mirroring the video branch's fallback.
* chore: switch from biome to eslint + prettier; fix ton of lint issuesMaze Winther2026-05-023-16/+27
|
* refactor: thinner hooksMaze Winther2026-04-261-8/+9
|
* fix: model editor time as wasm MediaTime ticks end-to-endMaze Winther2026-04-262-4/+5
|
* refactor: restructure files to their domains, new preview overlay system, ↵Maze Winther2026-04-2012-1523/+154
| | | | and dep graph
* feat: text / custom masks, fix preview pan, refactor selectionMaze Winther2026-04-151-233/+309
|
* chore: formattingMaze Winther2026-04-152-5/+10
|
* feat: transcription diagnosticsMaze Winther2026-04-142-476/+533
|
* refactor: move constants to domain modulesMaze Winther2026-04-144-6/+6
|
* Add support for basic SRT subtitle import to Captions panel (#756)kcfancher2026-04-141-179/+282
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add SRT subtitle import to the captions panel [Modified from 0bd641b4102c827ef8d218ada099229f73396077, 2026-03-28 08:46:23 -0400] Parse .srt files into chunks and insert them as text elements on a new text track using the existing caption styling defaults. Displays a warning when malformed cues are skipped during import. * Batch caption text insertion [Modified from eece3bbc5f0578a24a4f90f0ab87fe5ca37e94e9, 2026-03-28 09:13:18 -0400] Batch caption insertion in a BatchCommand so that undo will batch undo all subtitle insertion from either srt file or ai transcriptions. * Move subtitle parsing into a shared interface [Modified from e84404b7857f8c611eda7a65b5d61ee6c9823d75, 2026-03-28 09:52:31 -0400] Extracted the srt specific extraction behind a generic shared interface to allow easier adding of other subtitle formats in the future. * Apply better default styling for subtitles. [Modified from b5deec4285f99873ba5bf57971f7bcab26e8c743, 2026-03-31 11:49:34 -0400] Shrink font size, aim to layout 5% above bottom, keep subtitle width 80% of video, wrap text on new lines if too long. * Update Captions Panel UI Split captions panel into Generate and Import tabs as they are two different approaches for adding captions. * Add biome formatting fixes * Add .ass subtitle import support Extend subtitle import to accept .ass files alongside .srt, map supported .ass styles onto imported text elements, and display warnings when unsupported .ass features are skipped. * Change “Import subtitles” button style * refactor: review fixes * fix: convert subtitle times from seconds to ticks * refactor: replace captions tab switcher with import action button --------- Co-authored-by: Maze Winther <mazewinther@gmail.com>
* chore: remove filters tab from assets panelMaze Winther2026-04-131-5/+0
|
* fix: stable background blur previews in settingsMaze Winther2026-04-131-9/+8
|
* fix: convert media asset duration to ticks on insertMaze Winther2026-04-131-1/+4
|
* refactor: structured track layout per sceneMaze Winther2026-04-071-1/+1
|
* refactor: split effects and masks into dedicated rust crates, introduce ↵Maze Winther2026-04-072-8/+9
| | | | MediaTime and FrameRate
* refactor: swap out manual tabs withthe shared tabs component in stickersMaze2026-04-041-32/+17
|
* refactor: split constants by domain and isolate timeline panel from coreMaze Winther2026-04-013-10/+10
|
* refactor: move packages sub-folders into web appMaze Winther2026-03-291-369/+369
|
* chore: remove dead songs tabMaze Winther2026-03-291-11/+0
|
* chore: normalize line endingsMaze Winther2026-03-2910-2333/+2333
|
* feat: masks, properties refactor, shaders, storage migrations, and moreMaze Winther2026-03-2914-859/+1143
|
* fix: assets having unreasonable widths and heightsMaze Winther2026-03-292-3/+3
|
* Fix transcription sample-rate handling (#740)kcfancher2026-03-281-2/+8
| | | | | Fix for #703. Adds an optional sampleRate parameter to the decodeAudioToFloat32() function. The caption transcriber passes in a value of 16000 to prepare audio in the format Whisper expects.
* fix linterMaze Winther2026-03-021-1/+1
|
* feat: Clip effects, asset sorting, and timeline improvementsMaze Winther2026-03-022-311/+272
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Major features and improvements: * **Clip Effects**: * Added UI in Properties Panel to manage effects on video/image clips (add, remove, toggle, reorder). * Implemented dynamic parameter fields for effects. * Added support for keyframing effect parameters. * **Assets Panel**: * Added sorting options: Name, Type, Duration, and File Size. * Persisted view preferences (grid/list mode, sort order) to local storage. * Refactored media item rendering and drag interactions. * **Timeline & Interaction**: * **Keyframe Dragging**: Added ability to drag keyframes directly on the timeline element. * **Resizing**: Improved resize logic to respect neighboring clips (prevents overlaps). * **Visuals**: Implemented tiled background rendering for video/image clips on the timeline. * **Shortcuts**: Added "Deselect All" action bound to the `Escape` key. * **Fixes**: Corrected drag-and-drop coordinate calculations when the timeline track area is scrolled. * **Text Elements**: * Refactored text background storage to use an explicit `enabled` flag. * Added `V8toV9` storage migration to update existing projects. * **Architecture**: * Moved export state management to `ProjectManager` for better lifecycle handling. * Refactored `PropertiesPanel` sections to be more composable (custom headers, borders).
* feat: introduce WebGL effects system and Blur effectMaze Winther2026-02-283-5/+103
| | | | | | | | | | | | This implements the foundational architecture for video effects, starting with a multi-pass WebGL rendering pipeline and a customizable Gaussian Blur effect. Key changes: - WebGL Engine: Added `raw-loader` for `.glsl` shaders, multi-pass framebuffer rendering, and live offscreen canvas previews. - Node Architecture: Replaced hardcoded background blur with `CompositeEffectNode` and added `EffectLayerNode` to apply effects to specific visual elements. - Timeline & DND: Added a new `effect` track type. Upgraded drag-and-drop to support dropping effects directly onto the timeline. Consolidated track constants into a cleaner `TRACK_CONFIG`. - UI/UX: Added an Effects tab in the assets panel with live previews. Added an Effect Properties panel with sliders and inputs for fine-tuning parameters. - Data Model: Added `sourceDuration` to video and audio elements, and wrote a v8 storage migration to update existing projects to the new schema. - Docs: Added `CHANGELOG.md` tracking v0.1.0 and v0.2.0, plus `docs/effects-renderer.md` to document the new WebGL pipeline.
* feat: major editor overhaul (assets, properties, timeline, fonts) (#709)Maze2026-02-2311-971/+848
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: major editor overhaul (assets, properties, timeline, fonts) Refactor editor core systems to standardize UI architecture and improve performance. Assets & Properties: - Replace monolithic property items with composable `Section` architecture. - Add specialized sections for Transform, Blending, and Text. - Implement `NumberField` with scrubbing and math evaluation. - Add new ColorPicker with EyeDropper and multiple format support. - Standardize asset panels using new `PanelView` layout. Fonts & Stickers: - Implement custom font atlas/sprite system for high-performance previews. - Add virtualized FontPicker with search and favorites. - Refactor stickers to use a provider-based architecture (icons, emoji, flags, shapes). - Standardize sticker IDs to `provider:value` format. Timeline & Interaction: - Convert bookmarks to rich objects with notes, colors, and duration. - Refactor drag-and-drop to use Command pattern (enabling proper undo/redo). - Add Shift modifier to disable snapping during moves/resizes. - Add new overlays for layout guides and text editing. Renderer: - Add support for multi-line text, custom line-height, and letter-spacing. - Implement global composite operation (blend modes). - Update sticker node to resolve dynamic provider IDs. Infrastructure: - Add storage migrations (v3->v6) for text weights, sticker IDs, and bookmarks. - Update global styles and core UI components (Button, Input, Popover). * add ts-nocheck directive to settings-legacy.tsx to suppress TypeScript errors * fix: correct global composite operation assignment in TextNode to ensure proper blend mode handling * deleted shadcn components with errors * formatting * fix linter issues * migrate from next middleware to proxy * add missing component back * add breadcrumb back * chore: add @radix-ui/react-primitive deps * chore: more deps * chore: add missing env vars to bun-ci * next env
* refactorMaze Winther2026-02-109-103/+58
|
* refactor services structureMaze Winther2026-01-311-1/+1
|
* codebase overhaul (#697)Maze2026-01-3110-0/+2929