diff options
Diffstat (limited to 'apps/web/src/app')
| -rw-r--r-- | apps/web/src/app/favicon.ico | bin | 0 -> 4286 bytes | |||
| -rw-r--r-- | apps/web/src/app/fonts/GeistMonoVF.woff | bin | 0 -> 67864 bytes | |||
| -rw-r--r-- | apps/web/src/app/fonts/GeistVF.woff | bin | 0 -> 66268 bytes | |||
| -rw-r--r-- | apps/web/src/app/globals.css | 88 | ||||
| -rw-r--r-- | apps/web/src/app/layout.tsx | 45 | ||||
| -rw-r--r-- | apps/web/src/app/page.tsx | 48 |
6 files changed, 181 insertions, 0 deletions
diff --git a/apps/web/src/app/favicon.ico b/apps/web/src/app/favicon.ico Binary files differnew file mode 100644 index 00000000..f1540cae --- /dev/null +++ b/apps/web/src/app/favicon.ico diff --git a/apps/web/src/app/fonts/GeistMonoVF.woff b/apps/web/src/app/fonts/GeistMonoVF.woff Binary files differnew file mode 100644 index 00000000..f2ae185c --- /dev/null +++ b/apps/web/src/app/fonts/GeistMonoVF.woff diff --git a/apps/web/src/app/fonts/GeistVF.woff b/apps/web/src/app/fonts/GeistVF.woff Binary files differnew file mode 100644 index 00000000..1b62daac --- /dev/null +++ b/apps/web/src/app/fonts/GeistVF.woff diff --git a/apps/web/src/app/globals.css b/apps/web/src/app/globals.css new file mode 100644 index 00000000..31bd3692 --- /dev/null +++ b/apps/web/src/app/globals.css @@ -0,0 +1,88 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +body { + font-family: Arial, Helvetica, sans-serif; +} + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 0 0% 3.9%; + --card: 0 0% 100%; + --card-foreground: 0 0% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 0 0% 3.9%; + --primary: 0 0% 9%; + --primary-foreground: 0 0% 98%; + --secondary: 0 0% 96.1%; + --secondary-foreground: 0 0% 9%; + --muted: 0 0% 96.1%; + --muted-foreground: 0 0% 45.1%; + --accent: 0 0% 96.1%; + --accent-foreground: 0 0% 9%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 0 0% 89.8%; + --input: 0 0% 89.8%; + --ring: 0 0% 3.9%; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; + --radius: 0.6rem; + --sidebar-background: 0 0% 100%; + --sidebar-foreground: 0 0% 3.9%; + --sidebar-primary: 0 0% 9%; + --sidebar-primary-foreground: 0 0% 98%; + --sidebar-accent: 0 0% 96.1%; + --sidebar-accent-foreground: 0 0% 9%; + --sidebar-border: 0 0% 89.8%; + --sidebar-ring: 0 0% 3.9%; + } + .dark { + --background: 0 0% 8%; + --foreground: 0 0% 98%; + --card: 0 0% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 0 0% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 0 0% 9%; + --secondary: 0 0% 14.9%; + --secondary-foreground: 0 0% 98%; + --muted: 0 0% 14.9%; + --muted-foreground: 0 0% 63.9%; + --accent: 0 0% 14.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 100% 60%; + --destructive-foreground: 0 0% 98%; + --border: 0 0% 14.9%; + --input: 0 0% 14.9%; + --ring: 0 0% 83.1%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55%; + --sidebar-background: 0 0% 3.9%; + --sidebar-foreground: 0 0% 98%; + --sidebar-primary: 0 0% 98%; + --sidebar-primary-foreground: 0 0% 9%; + --sidebar-accent: 0 0% 14.9%; + --sidebar-accent-foreground: 0 0% 98%; + --sidebar-border: 0 0% 14.9%; + --sidebar-ring: 0 0% 83.1%; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx new file mode 100644 index 00000000..d7dd18a5 --- /dev/null +++ b/apps/web/src/app/layout.tsx @@ -0,0 +1,45 @@ +import type { Metadata } from "next"; +import localFont from "next/font/local"; +import { ThemeProvider } from "next-themes"; +import { Analytics } from "@vercel/analytics/react"; +import "./globals.css"; +import { Toaster } from "../components/ui/sonner"; +import { TooltipProvider } from "../components/ui/tooltip"; + +const geistSans = localFont({ + src: "./fonts/GeistVF.woff", + variable: "--font-geist-sans", + weight: "100 900", +}); +const geistMono = localFont({ + src: "./fonts/GeistMonoVF.woff", + variable: "--font-geist-mono", + weight: "100 900", +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + <html lang="en" suppressHydrationWarning> + <body + className={`${geistSans.variable} ${geistMono.variable} antialiased`} + > + <ThemeProvider attribute="class" forcedTheme="dark" enableSystem> + <TooltipProvider> + {children} + <Analytics /> + <Toaster /> + </TooltipProvider> + </ThemeProvider> + </body> + </html> + ); +} diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx new file mode 100644 index 00000000..b43a6838 --- /dev/null +++ b/apps/web/src/app/page.tsx @@ -0,0 +1,48 @@ +import { + ResizablePanelGroup, + ResizablePanel, + ResizableHandle, +} from "../components/ui/resizable"; +import { MediaPanel } from "../components/media-panel"; +import { PropertiesPanel } from "../components/properties-panel"; +import { Timeline } from "../components/timeline"; +import { PreviewPanel } from "../components/preview-panel"; + +export default function VideoEditor() { + return ( + <div className="h-screen w-screen flex flex-col bg-background"> + <ResizablePanelGroup direction="vertical"> + <ResizablePanel defaultSize={50} minSize={30}> + {/* Main content area */} + <ResizablePanelGroup direction="horizontal"> + {/* Tools Panel */} + <ResizablePanel defaultSize={20} minSize={15}> + <MediaPanel /> + </ResizablePanel> + + <ResizableHandle withHandle /> + + {/* Preview Area */} + <ResizablePanel defaultSize={60}> + <PreviewPanel /> + </ResizablePanel> + + <ResizableHandle withHandle /> + + {/* Properties Panel */} + <ResizablePanel defaultSize={20} minSize={15}> + <PropertiesPanel /> + </ResizablePanel> + </ResizablePanelGroup> + </ResizablePanel> + + <ResizableHandle withHandle /> + + {/* Timeline */} + <ResizablePanel defaultSize={50} minSize={15}> + <Timeline /> + </ResizablePanel> + </ResizablePanelGroup> + </div> + ); +} |
