From 87a83a5604b20550430ef4eefbcd573d309694e2 Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Sun, 22 Jun 2025 10:02:50 +0200 Subject: Initial commit --- apps/web/src/components/timeline.tsx | 141 +++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 apps/web/src/components/timeline.tsx (limited to 'apps/web/src/components/timeline.tsx') diff --git a/apps/web/src/components/timeline.tsx b/apps/web/src/components/timeline.tsx new file mode 100644 index 00000000..cde982ae --- /dev/null +++ b/apps/web/src/components/timeline.tsx @@ -0,0 +1,141 @@ +"use client"; + +import { ScrollArea } from "./ui/scroll-area"; +import { Button } from "./ui/button"; +import { + Scissors, + ArrowLeftToLine, + ArrowRightToLine, + Trash2, + Snowflake, + Copy, + SplitSquareHorizontal, +} from "lucide-react"; +import { + Tooltip, + TooltipContent, + TooltipTrigger, + TooltipProvider, +} from "./ui/tooltip"; + +export function Timeline() { + return ( +
+ {/* Toolbar */} +
+ + + + + + Split clip (S) + + + + + + + Split and keep left (A) + + + + + + + Split and keep right (D) + + + + + + + Separate audio (E) + + + + + + + Duplicate clip (Ctrl+D) + + + + + + + Freeze frame (F) + + + + + + + Delete clip (Delete) + + +
+ + {/* Tracks Area */} + +
+ {/* Time Markers */} +
+ {Array.from({ length: 16 }).map((_, i) => ( +
+ {i}s +
+ ))} +
+ + {/* Video Track */} +
+
+
+ +
+
+ + {/* Audio Track */} +
+
+ +
+
+ + {/* Effects Track */} +
+
+ +
+
+
+
+
+
+ ); +} + +function TimelineClip() { + return ( +
+
+
+ ); +} -- cgit v1.3.1