Commit Graph

411 Commits

Author SHA1 Message Date
Maze Winther 7891ed2cc1 feat: make settings items expandable 2025-08-02 12:21:24 +02:00
Maze Winther dd09bf2949 feat: add project settings 2025-08-02 01:41:46 +02:00
Maze Winther 68da487f30 style: complete re-design of whole editor 2025-08-01 19:57:26 +02:00
Maze Winther 09cb8c8d98 fix: resize not matching with frames 2025-08-01 09:51:54 +02:00
ryu 6412158003 feat: enhance timeline navigation with comprehensive testing and documentation
- 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.
2025-08-01 03:04:06 +05:00
ryu f5d5a387d3 feat: add timeline navigation return to start functionality
- 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
2025-08-01 02:33:42 +05:00
Maze Winther 3c64f9cfa2 Merge pull request [#494](https://github.com/mazeincoding/AppCut/issues/494) 2025-07-31 21:46:33 +02:00
Maze Winther 6899450df9 Merge branch 'feat/tailwindcss-v4' into staging 2025-07-31 13:39:47 +02:00
melad f255ccb818
feat: add hide or show for media elements, mute or unmute for audio elements (#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>
2025-07-31 12:50:22 +02:00
vracto b229d94a8d
add forward and backward buttons to non-fullscreen view (#495)
* feat: create external tools section (#493)

* feat: create external tools section

* fix: better wording

* add forward and backward buttons to non-fullscreen

---------

Co-authored-by: Dominik K. <dominik@koch-bautechnik.de>
Co-authored-by: Maze Winther <mazewinther@gmail.com>
2025-07-30 23:56:10 +02:00
Brandon McConnell cd5642161b Swap background CSS inline style for tailwind utility 2025-07-30 16:54:20 -04:00
Brandon McConnell e3ecf4855a Correct `blur-sm` ➞ `blur` 2025-07-30 15:05:03 -04:00
Brandon McConnell df1e80b528 Lay groundwork for Tailwind v4 upgrade 2025-07-30 13:15:09 -04:00
Maze Winther f15508df62 feat: make timestamp editable 2025-07-30 17:44:19 +02:00
Maze Winther 91c95b12d1 Merge pull request [#467](https://github.com/mazeincoding/AppCut/issues/467) 2025-07-30 11:47:43 +02:00
Maze Winther 004fa0c12b Merge pull request [#483](https://github.com/mazeincoding/AppCut/issues/483) 2025-07-30 11:38:21 +02:00
Maze Winther d154937ac2 feat: lock playhead to frame (instead of floating) and add autoscroll to timeline 2025-07-26 22:25:57 +02:00
Maze Winther 906f95399d refactor: better error handling 2025-07-26 13:25:10 +02:00
Maze Winther 043bf7d70a fix: ensure clicking context menu item doesn't move timeline playhead 2025-07-26 12:34:57 +02:00
Maze Winther 317ee9141e style: make context menus appear above playhead 2025-07-26 12:27:28 +02:00
Maze Winther b0bcca18f8 Merge pull request [#437](https://github.com/mazeincoding/AppCut/issues/437) 2025-07-26 12:02:50 +02:00
Maze Winther 76ee723c37 refactor: use reusable PropertyItem component instead of local 2025-07-26 11:53:34 +02:00
Maze Winther ae94056952 fix: scroll in media panel 2025-07-26 11:50:12 +02:00
Maze Winther a4f1a02cea Merge pull request [#444](https://github.com/mazeincoding/AppCut/issues/444) 2025-07-26 11:35:52 +02:00
Maze Winther 00bcce8eca Merge branch 'staging' of https://github.com/mazeincoding/AppCut into staging 2025-07-26 11:29:30 +02:00
Maze Winther 70fe5cacd1 Merge pull request [#457](https://github.com/mazeincoding/AppCut/issues/457) 2025-07-26 11:29:19 +02:00
Maze 87a8ac90e5
Merge pull request #454 from dipanshurdev/text-feat
feat: update text color
2025-07-26 11:25:04 +02:00
Maze 4f60c0d354
Merge pull request #457 from itsobi/fix/properties-panel-gets-cut-off-on-smaller-browser-widths
Update PropertyItem component and frame rate dropdown to flex-col so label and value are not on the same line
2025-07-26 11:24:41 +02:00
Maze Winther 812bab4edf Merge pull request [#438](https://github.com/mazeincoding/AppCut/issues/438) 2025-07-25 19:18:10 +02:00
itsobi e3504de1f1 update PropertyItem component and frame rate dropdown to flex-col so label and value are not on the same line 2025-07-25 07:56:05 -05:00
Dipanshu Rawat 7e4a4e2095 feat: update text color 2025-07-25 14:39:42 +05:30
Hayden Bleasel 5931ddb77a
feat: add ultracite (#452)
* Init ultracite

* Update scripts and biome.jsonc

* Update biome.jsonc

* Update biome.jsonc

* Update biome.jsonc

* Run format
2025-07-25 00:41:34 +03:00
Maze Winther 68492df302 Merge pull request [#422](https://github.com/mazeincoding/AppCut/issues/422) 2025-07-22 12:43:27 +02:00
Maze Winther e7b89a4cc0 fix icon 2025-07-22 11:42:16 +02:00
Maze Winther fb5dca9f9d Merge branch 'main' into staging 2025-07-22 11:41:58 +02:00
chrissshan 205ad520f0 update icon 2025-07-22 01:11:12 -07:00
Maze Winther 550f5363fd consistent padding for media elements on timeline 2025-07-21 23:25:10 +02:00
Maze Winther 2bc3df5383 Merge pull request [#388](https://github.com/mazeincoding/AppCut/issues/388) 2025-07-21 23:07:23 +02:00
Maze Winther cf8c401a2a refactor: add TimelineToolbar back 2025-07-21 22:50:02 +02:00
Maze Winther ab82db6346 Merge pull request [#395](https://github.com/mazeincoding/AppCut/issues/395) 2025-07-21 21:42:44 +02:00
Maze Winther d364bffc1f Merge pull request [#386](https://github.com/mazeincoding/AppCut/issues/386) 2025-07-21 21:00:21 +02:00
Maze Winther 2517f77d42 refactor: move timeline components to /timeline 2025-07-21 18:49:30 +02:00
Maze Winther 5782df7350 remove toasts 2025-07-21 14:47:42 +02:00
Maze Winther 4c2d8c52ab feat: basic audio view in media panel 2025-07-21 11:52:48 +02:00
Maze Winther e74e60d5bf style: height in media panel 2025-07-21 11:52:35 +02:00
Maze Winther 5266aed5eb feat: ripple editing mode on timeline 2025-07-19 19:08:08 +02:00
Maze Winther 42ae8a7530 fix: ensure dragging/resizing an element on the timeline doesn't deselect it 2025-07-19 16:19:06 +02:00
Maze Winther 0d95f032cc fix: wrong logic on snapping button 2025-07-19 16:14:48 +02:00
Maze Winther a9b7043829 refactor: improve timeline elements, fix few bugs 2025-07-18 18:05:15 +02:00
Maze Winther 85b6123510 fix: z-index of playhead 2025-07-18 11:54:32 +02:00
Maze Winther dc5416da07 refactor: remove unused functions 2025-07-18 11:20:17 +02:00
Maze Winther f492ac9aad fix: timeline element resizing 2025-07-17 23:51:12 +02:00
Maze Winther 499f06cb52 style: timeline tracks content 2025-07-17 23:02:29 +02:00
Maze Winther 648f0b8529 stable timeline 2025-07-17 19:46:23 +02:00
Maze Winther 0b919d4df8 refactor all timeline components 2025-07-17 19:33:10 +02:00
Maze Winther 56e6edcc5a move timeline component 2025-07-17 17:37:18 +02:00
Maze Winther 0217303532 formatting 2025-07-17 17:34:48 +02:00
Maze Winther 4170ee4f5b cleanup: tailwind classes 2025-07-17 17:34:18 +02:00
Maze d768da9216
Merge pull request #319 from anwarulislam/fix/tabbar
fix: make tab bar container full width
2025-07-17 13:40:32 +02:00
Maze 9bf5ce399c
Merge pull request #324 from simonorzel26/feat/refactor-timeline
feat(web): timeline refactor and horizontal + vertical scrolling
2025-07-17 13:02:30 +02:00
Simon Orzel 167f366c6d feat: bunx biome format --write . 2025-07-17 03:00:38 +02:00
Simon Orzel 1505c1b12f feat: timeline changes 2025-07-17 02:53:25 +02:00
Simon Orzel 98b2103286 feat: working 2025-07-17 02:25:24 +02:00
Simon Orzel 9fa9f406fe feat: splits working code 2025-07-17 01:59:39 +02:00
Simon Orzel 0d2894feda feat: working z indexing and borders 2025-07-17 01:13:38 +02:00
Simon Orzel 6ff4bcd093 feat: starts to refactor timeline 2025-07-16 23:31:51 +02:00
Maze Winther 87dd275e57 fix: no more rounded corners in preview 2025-07-16 21:05:28 +02:00
Anwarul Islam 4e7b088647 fix: make tab bar container full width 2025-07-16 23:35:11 +06:00
Maze Winther 218625b61a feat: advance snapping 2025-07-16 17:44:44 +02:00
Maze Winther c1c4b114eb fix: snapping for both directions (left/right) 2025-07-16 17:38:29 +02:00
Maze Winther 8bc26539eb cleanup (this doesn't work) 2025-07-16 14:37:08 +02:00
Maze Winther 49d467cd83 Merge branch 'staging' into pr/vishesh711/284 2025-07-16 13:38:26 +02:00
Maze Winther a7e23ec714 media drag overlay cleanup 2025-07-16 12:22:09 +02:00
Maze Winther 63d5b2f110 Merge branch 'feat/media-button' into staging 2025-07-16 12:04:09 +02:00
Maze Winther 446745a33c cleanup 2025-07-16 12:03:44 +02:00
Simon Orzel f76169ada1 feat: refactors media drag overlay and media tab 2025-07-16 00:48:00 +02:00
vishesh711 13db27c173 fix: resolve TypeScript build errors and deployment blockers
- 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.
2025-07-15 12:58:04 -04:00
vishesh711 d3204f6cd7 feat: Add comprehensive keyboard shortcuts system for video editor
- 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.
2025-07-15 12:36:53 -04:00
Maze Winther 3a8d57921e feat: add lock icon toggle for snapping functionality 2025-07-15 17:41:10 +02:00
Maze Winther 7a725ecd09 cleanup 2025-07-15 17:29:28 +02:00
Maze Winther a32ffb601a Merge branch 'feat/thumbnail-appearance' into staging 2025-07-15 17:07:21 +02:00
Maze Winther dc0e4783fb cleanup 2025-07-15 16:55:04 +02:00
Maze Winther fdeddbe3ed Merge branch 'feature/plus-button-timeline' into staging 2025-07-15 16:28:08 +02:00
Maze Winther 1fdf2a0515 cleanup 2025-07-15 14:16:54 +02:00
Anwarul Islam e3cb491a29 feat: add snap point notification to TimelineTrackContent for improved snapping feedback 2025-07-15 07:06:29 +06:00
Anwarul Islam 2cc25b70d5 feat: enhance snapping functionality by adding snap point handling in Timeline component 2025-07-15 07:03:36 +06:00
Anwarul Islam 59f4098f75 refactor: remove keyboard shortcuts for better integration later 2025-07-15 04:32:36 +06:00
Anwarul Islam 1106aeeb60 feat: integrate snapping functionality into timeline track component 2025-07-15 04:27:19 +06:00
Anwarul Islam af632d8cc5 feat: add snapping functionality and controls to timeline component 2025-07-15 04:27:12 +06:00
Anwarul Islam 4de81796a3 feat: add SnapIndicator component for timeline snapping visualization 2025-07-15 04:23:45 +06:00
Anwarul Islam d53321ec36 fix: enhance media tile display with aspect ratio adjustments and overlay borders 2025-07-15 00:42:19 +06:00
Anwarul Islam 2c941b1585 fix: optimize media thumbnail display by removing tiling utility and using CSS background instead 2025-07-15 00:12:01 +06:00
Anwarul Islam c628b5a8ee fix improve timeline element visual display by tiling repeating media thumbnails 2025-07-14 23:53:11 +06:00
Anwarul Islam 1e64bc4abd fix improve timeline element visual display 2025-07-14 23:49:48 +06:00
Maze Winther 0309f9cf08 refactor: comment 2025-07-14 19:48:12 +02:00
ni-zav ffb254c339
Merge branch 'OpenCut-app:main' into refactor/move-add-button 2025-07-14 23:43:34 +07:00
Maze Winther 416511084a fix: drag media to timeline 2025-07-14 18:06:11 +02:00
Nizav acd42a29f6 refactor: move the add button below the placeholder text 2025-07-14 22:46:28 +07:00
ahmedfahim21 03b3c952c7 feat: click to add to timeline 2025-07-13 00:59:54 +05:30
Maze Winther 233f78bf52 Merge remote-tracking branch 'anwarulislam/feat/fix-scroll' 2025-07-12 15:44:33 +02:00
Maze Winther 8545d95070 refactor: add FPS and remove turbopack (yes, fuck you turbopack) 2025-07-12 12:48:31 +02:00
Maze Winther 0726c27221 small change 2025-07-12 11:52:54 +02:00
Maze Winther 2de4c7c153 feat: remove playback speed from timeline 2025-07-12 11:45:43 +02:00
Anwarul Islam 6ecc359d80 chore: clean up 2025-07-11 20:02:09 +06:00
Anwarul Islam 4d8760d0e1 refactor: enhance scroll synchronization for timeline and track labels 2025-07-11 19:58:35 +06:00
Maze Winther 4d67e366ad feat: background settings (color, blur) 2025-07-11 03:52:39 +02:00
Maze Winther 6c19dbb6bb feat: selection box 2025-07-11 01:37:42 +02:00
Maze Winther d643a9a277 small refactor 2025-07-11 00:57:09 +02:00
Maze Winther 92d534760d fix: ensure element doesn't go above playhead 2025-07-11 00:50:33 +02:00
Maze Winther 4880e3b10c fix: allow real-time playhead on ruler and cursor change 2025-07-11 00:48:17 +02:00
Maze Winther 3a241d9112 feat: improve playhead 2025-07-11 00:25:07 +02:00
Maze Winther bb65d4fb96 refactor: timeline playhead component and hook 2025-07-10 23:55:08 +02:00
Maze Winther eabcdb0988 fix: preview image scaling 2025-07-10 23:45:59 +02:00
Maze Winther c86d200297 fix: increase max text size to 300 2025-07-10 23:22:57 +02:00
Maze Winther 3d6786a587 fix: make text scale based on preview size 2025-07-10 23:22:40 +02:00
Maze Winther f43021e994 background 2025-07-10 22:40:01 +02:00
Maze Winther 4fc14947ad fix: tailwind class 2025-07-10 22:21:09 +02:00
Maze Winther 7ec9167aeb refactor: new font picker component 2025-07-10 21:52:46 +02:00
Maze Winther f984f615ce style: text area bg 2025-07-10 21:49:27 +02:00
Maze Winther fe6492f359 refactor: separate property item component 2025-07-10 21:48:26 +02:00
Maze Winther ed4e9dad19 style: padding 2025-07-10 21:39:11 +02:00
Maze Winther eadd6940e4 feat: font size to text panel 2025-07-10 21:37:44 +02:00
Maze Winther 0acead5bb1 refactor: move properties to dedicated folder 2025-07-10 21:24:47 +02:00
Maze Winther 445d01fc8f font size 2025-07-10 21:14:33 +02:00
Maze Winther e8b0057cc4 feat: initial fonts support 2025-07-10 20:53:58 +02:00
Maze Winther 1376bee16d fix: improve element dragging (can drag outside timeline without it breaking) 2025-07-10 20:10:01 +02:00
Maze Winther 0223c34a1e fix: timestamp different widths 2025-07-10 19:58:03 +02:00
Maze Winther 44f504f401 style: timestamp 2025-07-10 19:56:54 +02:00
Maze Winther 4d0c3268cc style: properties panel text area 2025-07-10 19:44:24 +02:00
Maze Winther 2fe67febd6 complete 1459cd 2025-07-10 14:30:12 +02:00
Maze Winther 3a34485cc7 style: text box in properties panel 2025-07-10 14:28:08 +02:00
Maze Winther 1459cd7232 feat: audio for playback 2025-07-10 14:23:13 +02:00
Maze Winther 8dd6f9a9b3 feat: add conditional rendering to properties panel with text change functionality 2025-07-09 23:59:39 +02:00
Maze Winther b6aa8e10d6 fix: improve keyboard event handling in timeline component 2025-07-09 23:25:08 +02:00
Maze Winther 059a4f4205 style: timeline tracks 2025-07-09 22:31:45 +02:00
Maze Winther f4fbdf14a9 style: text align 2025-07-09 22:17:54 +02:00
Maze Winther db8cd93a99 style: replace track color circle with icon in timeline 2025-07-09 22:17:05 +02:00
Maze Winther 53d6d0e1af fix: zoom on entire timeline 2025-07-09 22:07:25 +02:00
Maze Winther 3089fb0418 refactor: move timeline zoom to custom hook 2025-07-09 22:01:30 +02:00
Maze Winther 346368cf75 I FOUND THE C (removed it) 2025-07-09 21:54:52 +02:00
Maze Winther 5e1f780fff style: completely fresh ui in editor 2025-07-09 21:45:25 +02:00
Maze Winther 3d685f57dd fix: styling in preview 2025-07-09 21:07:42 +02:00
Maze Winther c02f276303 refactor: fresh properties panel 2025-07-09 21:03:56 +02:00
Maze Winther 813dbcb9c2 refactor: move timeline element context menu into timeline-element.tsx 2025-07-08 23:51:46 +02:00
Maze Winther 3ef17cecb4 refactor: centralize logic to zustand store 2025-07-08 22:51:42 +02:00
Maze Winther c60098987f fix: media item not right-clickable 2025-07-08 22:42:55 +02:00
Maze Winther 91d89f56d7 fix: don't render audio on preview 2025-07-08 20:54:05 +02:00
Maze Winther ea59cc3950 fix: ensure timeline clips can be extended to longer than 5s 2025-07-08 00:42:46 +02:00
Maze Winther c0cc4c009e fix: ensure preview toolbar is always at bottom 2025-07-08 00:10:31 +02:00
Maze Winther d750d7f41d shipping too hard 2025-07-08 00:07:22 +02:00