summaryrefslogtreecommitdiff
path: root/apps/web/src/lib
Commit message (Collapse)AuthorAgeFilesLines
* test: remove keyframe queryMaze Winther2026-04-141-139/+0
|
* refactor: move constants to domain modulesMaze Winther2026-04-1451-36/+191
|
* Add support for basic SRT subtitle import to Captions panel (#756)kcfancher2026-04-146-0/+1059
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* feat: graph editor for flat keyframe segmentsMaze Winther2026-04-131-12/+26
|
* fix: text measurement, rotation handle, video cache races, playback syncMaze Winther2026-04-133-136/+210
| | | | Made-with: Cursor
* refactor: rendering pipelineMaze Winther2026-04-131-15/+0
| | | | Made-with: Cursor
* feat: clipboard with keyframe pasteMaze Winther2026-04-1310-56/+505
| | | | Made-with: Cursor
* feat: cinematic bars, diamond, heart, and star masksMaze Winther2026-04-136-154/+721
| | | | Made-with: Cursor
* feat: position animated independently per axisMaze Winther2026-04-137-44/+99
| | | | Made-with: Cursor
* refactor: structured track layout per sceneMaze Winther2026-04-0760-1186/+1668
|
* fix: use line-height-based bounds for text elementsMaze Winther2026-04-072-18/+4
|
* feat: select element on insertMaze Winther2026-04-071-0/+4
|
* fix: place new overlay tracks at the top of the timelineMaze Winther2026-04-072-2/+2
|
* refactor: split effects and masks into dedicated rust crates, introduce ↵Maze Winther2026-04-0726-1283/+1348
| | | | MediaTime and FrameRate
* fix: clean upMaze Winther2026-04-066-26/+24
|
* chore: addition to last mergeMaze Winther2026-04-061-18/+9
|
* Merge branch 'temp'Maze Winther2026-04-0629-2270/+3953
|\
| * feat: graphs popoverMaze2026-04-068-27/+480
| |
| * refactor: rewrite animation system to use bindings and scalar channelsMaze2026-04-0524-2280/+3505
| |
| * chore: remove transcription envsMaze2026-04-041-5/+0
| |
* | refactor: unify element updates into pipeline and centralize rippleMaze Winther2026-04-0622-636/+667
|/
* refactor: update command execute methods to return CommandResult | undefinedMaze Winther2026-04-0342-1463/+1492
|
* refactor: split constants by domain and isolate timeline panel from coreMaze Winther2026-04-0134-595/+263
|
* fix: align background blur with effect blur intensity scaleMaze Winther2026-04-011-12/+9
|
* feat: migrate GPU renderer from WebGL to wgpu/WASMMaze Winther2026-04-018-207/+53
|
* Merge branch 'refactor-selection-commands'Maze Winther2026-03-314-412/+393
|\
| * refactor: move track pruning into a post-command reactorMaze Winther2026-03-314-412/+393
| |
* | Merge branch 'feature/separate-audio'Maze Winther2026-03-319-10/+451
|\ \
| * | feat: separate audio from elementsMaze Winther2026-03-319-10/+451
| | |
* | | Merge branch 'refactor-selection-commands'Maze Winther2026-03-317-42/+59
|\ \ \ | | |/ | |/|
| * | feat: centralize selection managementMaze Winther2026-03-317-42/+59
| | |
* | | fix: normalize vertical drag direction in preferIndex placementMaze Winther2026-03-312-60/+243
|/ /
* / fix: allow timeline paste and duplicate commands to reassign updated tracksMaze Winther2026-03-312-2/+2
|/
* Merge branch 'feature/track-placement'Maze Winther2026-03-3124-690/+1346
|\
| * refactor: centralize track placement into its own moduleMaze Winther2026-03-3124-690/+1346
| |
* | feat: migrate time utilities from typescript to rust WASMMaze Winther2026-03-312-374/+149
|/
* fix: improve DATABASE_URL validation in web environment schemaMaze Winther2026-03-291-4/+5
|
* refactor: move packages sub-folders into web appMaze Winther2026-03-295-71/+105
|
* chore: normalize line endingsMaze Winther2026-03-29163-16854/+16993
|
* fix: resolve typescript/lint errorsMaze Winther2026-03-299-76/+80
|
* feat: masks, properties refactor, shaders, storage migrations, and moreMaze Winther2026-03-29179-2324/+11576
|
* Fix transcription sample-rate handling (#740)kcfancher2026-03-281-1/+3
| | | | | 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 blog build when marble cms isn't availableMaze Winther2026-03-241-7/+63
|
* fix inconsistency in blur intensityMaze Winther2026-03-021-24/+24
|
* feat: wire ui to have keyframes for: opacity, text color, and all background ↵Maze Winther2026-03-024-2/+145
| | | | properties
* feat: implement keyframe support for more properties at the core (no ui yet)Maze Winther2026-03-025-12/+85
|
* feat: ripple support for element resizeMaze Winther2026-03-021-17/+49
|
* feat: Clip effects, asset sorting, and timeline improvementsMaze Winther2026-03-0217-44/+755
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* Merge branch 'dev' into ripple-editingMaze Winther2026-03-0142-160/+3614
|\
| * feat: introduce WebGL effects system and Blur effectMaze Winther2026-02-2813-32/+306
| | | | | | | | | | | | | | | | | | | | | | | | 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.