summaryrefslogtreecommitdiff
path: root/apps/web/src/hooks
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'dev' into ripple-editingMaze Winther2026-03-0112-262/+443
|\
| * feat: introduce WebGL effects system and Blur effectMaze Winther2026-02-284-11/+131
| | | | | | | | | | | | | | | | | | | | | | | | 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: implement keyframe animation systemMaze Winther2026-02-273-4/+238
| | | | | | | | | | | | | | | | | | | | 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-251-7/+13
| |
| * refactor: snapping systemMaze Winther2026-02-235-222/+20
| |
| * feat: make playhead snap to elementsMaze Winther2026-02-231-21/+23
| |
| * fix preview snapping thresholdMaze Winther2026-02-232-3/+24
| |
* | feat: basic ripple editingMaze Winther2026-02-231-2/+27
|/
* feat: major editor overhaul (assets, properties, timeline, fonts) (#709)Maze2026-02-2315-576/+1611
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-105-9/+87
|
* fix selection not getting cleared after element deletionMaze Winther2026-02-091-0/+1
|
* add transform + few fixesMaze Winther2026-02-082-0/+229
| | | | | | | | feat: transform feat: batch command fix: slider undo fix: timeline zoom perf refactor: make updateElement support multiple
* refactor: move isScrubbing state to playback managerMaze Winther2026-02-081-6/+6
|
* feat: timeline zoom anchoringMaze Winther2026-02-021-9/+39
|
* testingMaze Winther2026-02-019-31/+31
|
* pleaseMaze Winther2026-02-019-31/+31
|
* fix remaining errorsMaze Winther2026-02-014-13/+13
|
* more errorsMaze Winther2026-02-012-6/+6
|
* fix errorsMaze Winther2026-02-011-3/+3
|
* codebase overhaul (#697)Maze2026-01-3141-2674/+3813
|
* feat: add support for deleting/splitting multiple elements instead of singleMaze Winther2025-09-022-12/+7
|
* feat: remove default background scene and add scene managementMaze Winther2025-09-011-16/+44
|
* bunch of small improvementsMaze Winther2025-08-311-320/+320
|
* feat: implement timeline caching with cache indicatorMaze Winther2025-08-311-0/+320
|
* feat: timeline auto-scroll for moving clipsMaze Winther2025-08-282-69/+112
|
* feat: copy/pasting for elementsMaze Winther2025-08-282-0/+25
|
* fix: deselect text before timeline selectionMaze Winther2025-08-271-0/+16
|
* refactor: type-safety & separate concernsMaze Winther2025-08-262-23/+10
|
* feat: implement reveal in media featureMaze Winther2025-08-181-0/+36
|
* feat: add an input so the user can go to a specific timestamp (#530)Zaka2025-08-153-7/+7
| | | | | | | | | | | * 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-151-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* cleanupMaze Winther2025-08-132-47/+1
|
* Merge branch 'staging' into feat/timeline-return-to-startryu2025-08-132-13/+10
|\
| * fix: remaining timeline issues with targeting wrong radix ui scroll elementMaze Winther2025-08-051-12/+4
| |
| * Merge branch 'staging' of https://github.com/mazeincoding/AppCut into stagingMaze Winther2025-08-051-2/+3
| |\
| | * fix: ts error causing audio waveform signal issueMaze Winther2025-08-051-1/+6
| | |
| * | ts errorMaze Winther2025-08-051-1/+5
| |/
* | Merge branch 'main' into feat/timeline-return-to-startryu2025-08-072-10/+210
|\|
| * feat: add license filtering for sound effectsMaze Winther2025-08-041-1/+2
| |
| * feat: sound effects functionality with freesound's apiMaze Winther2025-08-041-0/+155
| |
| * fix: resize not matching with framesMaze Winther2025-08-011-6/+23
| |
| * fix: make timeline element resizing frame based instead of pixel basedMaze Winther2025-07-311-7/+34
| |
* | feat: enhance timeline navigation with comprehensive testing and documentationryu2025-08-012-1/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add comprehensive test suite with 13 passing tests - Create detailed keyboard shortcuts documentation (KEYBOARD_SHORTCUTS.md) - Add meaningful code comments explaining functionality - Set up Vitest testing framework with proper mocks - Fix React imports in timeline components for proper JSX rendering - Add ResizeObserver mock for browser environment compatibility - Enhance keyboard shortcuts help to properly format Enter key display Tests cover: - Enter key keybinding functionality - Return to Start button click behavior - Keyboard shortcuts help system integration - Component rendering and tooltip structure Documentation includes: - Complete keyboard shortcuts reference - UI feature explanations - Usage notes and behavior descriptions All tests passing (13/13) with full feature coverage.
* | feat: add timeline navigation return to start functionalityryu2025-08-011-0/+1
|/ | | | | | | | | | - Add Enter key shortcut for seeking to timeline start (00:00:00) - Add return to start button in timeline toolbar with skip-back icon - Both methods complement existing Home key shortcut - Update keyboard shortcuts help to display Enter key properly - Maintain consistent UI styling with existing playback controls Resolves #415
* Merge pull request [#483](https://github.com/mazeincoding/AppCut/issues/483)Maze Winther2025-07-301-106/+174
|
* Merge pull request #472 from RohitChandel23/fix/462-select-all-focus-bugMaze2025-07-281-0/+9
|\ | | | | Fix: Prevent Ctrl+A from selecting timeline when input is focused
| * Fix: Prevent Ctrl+A from selecting timeline when input is focusedrohit2025-07-271-0/+9
| |
* | feat: lock playhead to frame (instead of floating) and add autoscroll to ↵Maze Winther2025-07-261-13/+140
|/ | | | timeline
* fix: prevent resizing elements on the timeline further than the timeline startMaze Winther2025-07-261-2/+4
|
* Merge pull request [#433](https://github.com/mazeincoding/AppCut/issues/433)Maze Winther2025-07-262-8/+11
|