summaryrefslogtreecommitdiff
path: root/apps/web/src/lib
Commit message (Collapse)AuthorAgeFilesLines
* 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.
| * fix coderabbit issuesMaze Winther2026-02-272-4/+4
| |
| * fix type errorMaze Winther2026-02-271-1/+1
| |
| * feat: implement keyframe animation systemMaze Winther2026-02-2729-84/+2842
| | | | | | | | | | | | | | | | | | | | Add keyframe support for transform, opacity, and volume properties. Includes animation engine (interpolation, mutations, resolvers), timeline markers with selection/snapping, properties panel toggles, keyframe-aware renderer, and full undo/redo command support. Also refactor element command constructors to object params, extract timeline pixel math to pixel-utils.ts, and update cursor rules.
| * fix a ton of issues + improvementMaze Winther2026-02-253-22/+207
| |
| * refactor: snapping systemMaze Winther2026-02-231-0/+155
| |
| * fix preview snapping thresholdMaze Winther2026-02-232-8/+34
| |
| * refactor: make export audio consistent to previewMaze Winther2026-02-231-6/+62
| | | | | | | | fixes audio export issue with .mkv files
* | feat: basic ripple editingMaze Winther2026-02-235-75/+137
|/
* fix: audio from video files not being exportedMaze Winther2026-02-231-18/+61
|
* feat: major editor overhaul (assets, properties, timeline, fonts) (#709)Maze2026-02-2330-30/+1976
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* add transform + few fixesMaze Winther2026-02-082-0/+26
| | | | | | | | feat: transform feat: batch command fix: slider undo fix: timeline zoom perf refactor: make updateElement support multiple
* fix: fps not being displayed in some casesMaze Winther2026-02-081-1/+1
|
* scale timeline ruler labels to hoursMaze Winther2026-02-081-4/+15
|
* refactor: replace text-specific update command with genericMaze Winther2026-02-082-20/+5
|
* feat: ensure elements on main track starts at 0Maze Winther2026-02-086-11/+160
|
* add todoMaze Winther2026-02-081-0/+3
|
* comments + codebase indexMaze Winther2026-02-021-33/+48
|
* fix commentMaze Winther2026-02-021-1/+1
|
* increase zoom of buttons + refactorMaze Winther2026-02-021-2/+2
|
* feat: exponential zoomMaze Winther2026-02-021-0/+33
|
* fixMaze Winther2026-02-011-1/+1
|
* refactor services structureMaze Winther2026-01-312-3/+3
|
* codebase overhaul (#697)Maze2026-01-3180-2782/+6743
|
* feat: remove default background scene and add scene managementMaze Winther2025-09-011-2/+0
|
* fix: scenes now load properlyMaze Winther2025-09-011-1/+4
|
* refactor(core): switch to scene-based architectureMaze Winther2025-09-013-68/+140
|
* bunch of small improvementsMaze Winther2025-08-312-175/+221
|
* gradient backgrounds now workMaze Winther2025-08-312-1/+184
|
* refactor: improve types, fix background blur, some other stuffMaze Winther2025-08-312-22/+127
|
* fix: add fallbackMaze Winther2025-08-311-2/+2
|
* feat: make timeline renderer 15x fasterMaze Winther2025-08-312-24/+213
|
* feat: implement timeline caching with cache indicatorMaze Winther2025-08-311-10/+13
|
* feat: add audio support for exportMaze Winther2025-08-281-147/+296
|
* style: re-design colors in text properties panelMaze Winther2025-08-271-0/+4
|
* another huge refactorMaze Winther2025-08-272-2/+153
|
* refactor: type-safety & separate concernsMaze Winther2025-08-264-195/+174
|
* feat: mediabunny + preview canvas refactorMaze Winther2025-08-233-244/+255
|
* feat: export waitlistMaze Winther2025-08-171-0/+15
|
* feat: add an input so the user can go to a specific timestamp (#530)Zaka2025-08-151-4/+23
| | | | | | | | | | | * feat: add an input so the user can go to a specific timestamp * fix: use TimeCode type for EditableTimecodeProps * cleanup --------- Co-authored-by: Maze Winther <mazewinther@gmail.com>
* feat: stickers panel (#539)enkei642025-08-153-3/+262
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Stickers panel base complete * Improve dark mode stickers background for visibility * Prevent stickers from being too small or too big * Improve UI, added credit for Iconify API * Allow manually loading more collections * Add a maximum width of 200px so stickers aren't too big * cleanup * style: hover state of button * refactor: input component * fix: mark input component as client * so much stuff --------- Co-authored-by: Maze Winther <mazewinther@gmail.com>
* fix: typo causing runtime errorMaze Winther2025-08-121-1/+1
|
* fix: typescript errorsMaze Winther2025-08-111-0/+4
|
* feat: auto-captionsMaze Winther2025-08-113-8/+290
|
* refactor: move canvas size to be a project-level setting instead of editor-levelMaze Winther2025-08-041-0/+46
|
* feat: sound effects functionality with freesound's apiMaze Winther2025-08-042-0/+93
|
* refactor: remove all waitlist-related codeMaze Winther2025-08-022-16/+3
|
* feat: add hide or show for media elements, mute or unmute for audio elements ↵melad2025-07-312-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | (#500) * feat: create external tools section (#493) * feat: create external tools section * fix: better wording * Feature, added hide or show for media elements, mute or unmute for audio elements both effective on timeline and preview panel, with overlay icon for indicating so and state storing, * Minor UI vertical separator between magnifier and other buttons * fixed the AbortError issue in the AudioWaveform component. The error was occurring because of a race condition during cleanup when the component unmounts. * feat: implement bookmarking functionality in the timeline and project storage - Added bookmark management methods in the project store for toggling and checking bookmarks. - Updated the timeline component to display bookmark markers and integrate bookmark actions in the context menu. - Enhanced the storage service to handle bookmarks in project serialization and deserialization. - Updated project types to include bookmarks as an array of numbers. --------- Co-authored-by: Dominik K. <dominik@koch-bautechnik.de> Co-authored-by: Maze Winther <mazewinther@gmail.com>
* feat: make timestamp editableMaze Winther2025-07-301-0/+93
|