summaryrefslogtreecommitdiff
path: root/apps/web/src/types
Commit message (Collapse)AuthorAgeFilesLines
* feat: lens effects tab, standalone motion effects, clip/asset rename, ↵cashmere2026-08-091-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | 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: migrate GPU renderer from WebGL to wgpu/WASMMaze Winther2026-04-011-4/+0
|
* chore: normalize line endingsMaze Winther2026-03-293-31/+31
|
* feat: masks, properties refactor, shaders, storage migrations, and moreMaze Winther2026-03-2918-905/+14
|
* feat: wire ui to have keyframes for: opacity, text color, and all background ↵Maze Winther2026-03-021-0/+5
| | | | properties
* feat: implement keyframe support for more properties at the core (no ui yet)Maze Winther2026-03-021-0/+2
|
* feat: Clip effects, asset sorting, and timeline improvementsMaze Winther2026-03-024-24/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-284-6/+96
| | | | | | | | | | | | 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-272-0/+102
| | | | | | | | | | 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.
* refactor: move transform type to more relevant fileMaze Winther2026-02-252-9/+11
|
* fix a ton of issues + improvementMaze Winther2026-02-251-1/+8
|
* feat: major editor overhaul (assets, properties, timeline, fonts) (#709)Maze2026-02-237-47/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* codebase overhaul (#697)Maze2026-01-3116-424/+491
|
* feat: remove default background scene and add scene managementMaze Winther2025-09-011-1/+0
|
* fix: scenes now load properlyMaze Winther2025-09-011-0/+1
|
* refactor(core): switch to scene-based architectureMaze Winther2025-09-011-0/+10
|
* refactor: improve types, fix background blur, some other stuffMaze Winther2025-08-311-1/+3
|
* feat: add audio support for exportMaze Winther2025-08-281-17/+18
|
* another huge refactorMaze Winther2025-08-271-0/+17
|
* refactor: type-safety & separate concernsMaze Winther2025-08-262-1/+18
|
* feat: implement mute video tracksMaze Winther2025-08-131-0/+1
|
* refactor: move canvas size to be a project-level setting instead of editor-levelMaze Winther2025-08-042-0/+12
|
* feat: sound effects functionality with freesound's apiMaze Winther2025-08-041-0/+39
|
* feat: add hide or show for media elements, mute or unmute for audio elements ↵melad2025-07-312-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | (#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>
* Merge pull request [#437](https://github.com/mazeincoding/AppCut/issues/437)Maze Winther2025-07-261-0/+14
|
* feat: add ultracite (#452)Hayden Bleasel2025-07-254-104/+150
| | | | | | | | | | | | | * Init ultracite * Update scripts and biome.jsonc * Update biome.jsonc * Update biome.jsonc * Update biome.jsonc * Run format
* Merge branch 'main' into stagingMaze Winther2025-07-221-0/+93
|\
| * feat: add opencut blogDominik Koch2025-07-211-0/+93
| |
* | feat: ensure text tracks are always created above media tracksMaze Winther2025-07-221-3/+9
|/
* Merge branch 'feat/shortcut-actions' into stagingMaze Winther2025-07-181-0/+35
|\
| * feat: define keybinding types and refactor keybinding configurationAnwarul Islam2025-07-181-0/+35
| |
| * Optimize timeline performancegantiro2025-07-151-0/+20
| |
* | cleanup (this doesn't work)Maze Winther2025-07-162-119/+0
| |
* | fix: resolve TypeScript build errors and deployment blockersvishesh7112025-07-151-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Fix missing lucide-react icon imports in type declarations - Add 40+ missing icon exports (Loader2, ExternalLink, Type, etc.) - Fix ArrowLeft → ChevronLeft imports in auth pages - Resolve LucideIcon type declaration issue - Fix invalid Button variant 'ghost' → 'text' in KeyboardShortcutsHelp - Ensure project builds successfully with Bun package manager - Address CodeRabbit review feedback for production readiness These fixes resolve all TypeScript compilation errors and make the project fully deployment-ready. Build now passes with zero errors.
* | feat: Add comprehensive keyboard shortcuts system for video editorvishesh7112025-07-152-0/+83
|/ | | | | | | | | | | | | | | | - Implement industry-standard video editing shortcuts (Space, J/K/L, arrows) - Add playback controls: Space (play/pause), J/K/L (rewind/pause/forward) - Add navigation: arrow keys (frame stepping), Shift+arrows (5s jumps), Home/End - Add editing shortcuts: S (split at playhead), N (toggle snapping) - Add selection shortcuts: Ctrl/Cmd+A (select all), Ctrl/Cmd+D (duplicate) - Add keyboard shortcuts help dialog with categorized shortcuts display - Integrate help button in editor header for discoverability - Add TypeScript type declarations for better development experience - Fix Docker build environment variable validation issues All shortcuts follow professional video editing standards (Avid/Premiere/Final Cut). Context-aware shortcuts that don't interfere with text input fields. Toast notifications provide user feedback for better UX.
* Merge pull request #208 from Sanjit-K/mainMaze2025-07-121-1/+2
|\ | | | | fixed: [BUG] crypto.randomUUID is not a function Runtime Error #205. …
| * fixed: [BUG] crypto.randomUUID is not a function Runtime Error #205. Added ↵Sanjit K2025-07-121-1/+2
| | | | | | | | fallback function with manual UUID generation if crypto.randomUUID() was not available.
* | refactor: add FPS and remove turbopack (yes, fuck you turbopack)Maze Winther2025-07-121-0/+1
|/
* feat: background settings (color, blur)Maze Winther2025-07-111-0/+3
|
* refactor: store media relative to project, add storage for timeline data, ↵Maze Winther2025-07-072-7/+39
| | | | and other things
* feat: main track and ordering tracksMaze Winther2025-07-061-1/+47
|
* refactor: move to a typed-tracks system and add support for textMaze Winther2025-07-061-7/+66
|
* feat: implement automatic canvas size adjustment based on first media item ↵Maze Winther2025-06-301-0/+11
| | | | aspect ratio
* refactor: update timeline to use context menu componentMaze Winther2025-06-291-29/+20
|
* feat: add project page with mock data and update project type to include ↵Maze Winther2025-06-291-0/+1
| | | | thumbnail
* refactor: separate timeline toolbar into new component and add new TrackType ↵Maze Winther2025-06-271-0/+2
| | | | type
* refactor: move timeline clip into its separate component and type into /typesMaze Winther2025-06-251-0/+27
|
* refactor: improved type-safety, removal of any from all instancesMaze Winther2025-06-251-0/+1
|
* feat(playback-types): add muted state and mute controls to PlaybackState and ↵DevloperAmanSingh2025-06-251-1/+6
| | | | PlaybackControls interfaces
* Revert "refactor: overhaul timeline component, separate into different files"Maze Winther2025-06-241-9/+0
| | | | This reverts commit 2aa37920d5f183f9c0de2c42076fa57c5b48320e.