diff --git a/.gitignore b/.gitignore index 43965e8..98d17e9 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,8 @@ results/* myenv*/ doc/_build !results/plots.py -Frontend/ +frontend/node_modules +frontend/build +frontend/.next +.DS_Store + diff --git a/frontend/app/favicon.ico b/frontend/app/favicon.ico new file mode 100644 index 0000000..718d6fe Binary files /dev/null and b/frontend/app/favicon.ico differ diff --git a/frontend/app/globals.css b/frontend/app/globals.css new file mode 100644 index 0000000..da9b616 --- /dev/null +++ b/frontend/app/globals.css @@ -0,0 +1,87 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 222.2 84% 4.9%; + + --card: 0 0% 100%; + --card-foreground: 222.2 84% 4.9%; + + --popover: 0 0% 100%; + --popover-foreground: 222.2 84% 4.9%; + + --primary: 222.2 47.4% 11.2%; + --primary-foreground: 210 40% 98%; + + --secondary: 210 40% 96.1%; + --secondary-foreground: 222.2 47.4% 11.2%; + + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 46.9%; + + --accent: 210 40% 96.1%; + --accent-foreground: 222.2 47.4% 11.2%; + + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 210 40% 98%; + + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + --ring: 222.2 84% 4.9%; + + --radius: 0.5rem; + + --chart-1: 222.2 47.4% 11.2%; + --chart-2: 215 25% 27%; + --chart-3: 0 84.2% 60.2%; + --chart-4: 24.6 95% 53.1%; + } + + .dark { + --background: 222.2 84% 4.9%; + --foreground: 210 40% 98%; + + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; + + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; + + --primary: 210 40% 98%; + --primary-foreground: 222.2 47.4% 11.2%; + + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 40% 98%; + + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; + + --accent: 217.2 32.6% 17.5%; + --accent-foreground: 210 40% 98%; + + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 210 40% 98%; + + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + --ring: 212.7 26.8% 83.9%; + + --chart-1: 210 40% 98%; + --chart-2: 215 20.2% 65.1%; + --chart-3: 0 62.8% 30.6%; + --chart-4: 20.5 90% 48.2%; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} + diff --git a/frontend/app/layout.tsx b/frontend/app/layout.tsx new file mode 100644 index 0000000..ccba536 --- /dev/null +++ b/frontend/app/layout.tsx @@ -0,0 +1,27 @@ +import type React from "react" +import { SimulationProvider } from "@/components/simulation-provider" +import type { Metadata } from "next" +import { Inter } from "next/font/google" +import "./globals.css" + +const inter = Inter({ subsets: ["latin"] }) + +export const metadata: Metadata = { + title: "DAS Simulator Visualizer", + description: "Visualize Data Availability Sampling simulation results", +} + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode +}>) { + return ( + +
+The requested simulation could not be found.
+{error}
+ +Filter simulation results by date and success rate
++ {searchTerm || dateRange.from || dateRange.to || successFilter + ? "Try adjusting your filters to see more results." + : "No simulation runs are available. Run a simulation to get started."} +
+