diff --git a/index.html b/index.html index 34f464f..66cec23 100644 --- a/index.html +++ b/index.html @@ -16,7 +16,7 @@ -
+ diff --git a/package.json b/package.json index 6dc21fe..98cf20a 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "react-simple-code-editor": "^0.14.1", "tailwind-merge": "^3.3.0", "tailwindcss-animate": "^1.0.7", + "valibot": "^1.1.0", "zustand": "^5.0.5" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ff4847..eb8c01f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,6 +56,9 @@ importers: tailwindcss-animate: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.17) + valibot: + specifier: ^1.1.0 + version: 1.1.0(typescript@5.8.3) zustand: specifier: ^5.0.5 version: 5.0.5(@types/react@19.1.4)(react@19.1.0) @@ -1831,6 +1834,14 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + valibot@1.1.0: + resolution: {integrity: sha512-Nk8lX30Qhu+9txPYTwM0cFlWLdPFsFr6LblzqIySfbZph9+BFsAHsNvHOymEviUepeIW6KFHzpX8TKhbptBXXw==} + peerDependencies: + typescript: '>=5' + peerDependenciesMeta: + typescript: + optional: true + vite@6.3.5: resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -3533,6 +3544,10 @@ snapshots: util-deprecate@1.0.2: {} + valibot@1.1.0(typescript@5.8.3): + optionalDependencies: + typescript: 5.8.3 + vite@6.3.5(@types/node@22.15.21)(jiti@1.21.7)(yaml@2.8.0): dependencies: esbuild: 0.25.4 diff --git a/src/App.tsx b/src/App.tsx index 17b7c12..b3b8a24 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,12 +1,22 @@ +import { Editor } from "@/Editor"; +import { Preview } from "@/Preview"; +import { Logo } from "@/components/Logo"; import { ResizableHandle, ResizablePanelGroup } from "@/components/Resizable"; -import { Editor } from "./Editor"; -import { Logo } from "./components/Logo"; -import { Preview } from "./Preview"; import { useStore } from "@/store"; -import { useEffect } from "react"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuPortal, + DropdownMenuTrigger, +} from "@/components/DropdownMenu"; +import { type FC, useEffect, useMemo } from "react"; // Glue code required to be able to run wasm compiled Go code. import "@/utils/wasm_exec.js"; +import { useTheme } from "@/contexts/theme"; +import { MoonIcon, SunIcon, SunMoonIcon } from "lucide-react"; +import { Button } from "./components/Button"; type GoPreviewDef = (v: unknown) => Promise