diff --git a/web-app/package.json b/web-app/package.json index e31c908..6e088eb 100644 --- a/web-app/package.json +++ b/web-app/package.json @@ -23,12 +23,13 @@ "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^0.542.0", + "next-themes": "^0.4.6", "posthog-js": "^1.249.0", "react": "^18.2.0", "react-cookie": "^7.2.2", "react-dom": "^18.2.0", "react-hot-toast": "^2.5.2", - "react-icons": "^5.4.0", + "react-icons": "^5.5.0", "react-router": "^7.1.5", "react-router-dom": "^7.1.5", "react-select": "^5.10.1", @@ -43,6 +44,7 @@ "devDependencies": { "@eslint/js": "^9.19.0", "@tailwindcss/postcss": "^4.1.13", + "@tailwindcss/vite": "^4.1.14", "@types/node": "^22.13.4", "@types/react": "^18.2.15", "@types/react-dom": "^18.2.7", @@ -53,6 +55,7 @@ "eslint-plugin-react-refresh": "^0.4.18", "globals": "^15.14.0", "postcss": "^8.5.2", + "rollup": "^4.16.4", "tailwindcss": "^4.1.13", "typescript": "~5.7.2", "typescript-eslint": "^8.22.0", diff --git a/web-app/src/App.tsx b/web-app/src/App.tsx index 86a9f50..5f8b21c 100644 --- a/web-app/src/App.tsx +++ b/web-app/src/App.tsx @@ -16,6 +16,7 @@ import { BACKEND_URLS, META } from "./constants"; import { PostHogProvider } from "posthog-js/react"; import { PostHogConfig } from "posthog-js"; import { InvitationHandler } from "./pages/InvitationHandler"; +import { ColorModeProvider } from "@/components/ui/color-mode"; const options: Partial = { api_host: "https://eu.i.posthog.com", @@ -53,16 +54,18 @@ const Providers = ({ requireAuth, overrideRedirect = false }: { requireAuth: boo - - {!authToken && } - {authToken && ( - - -
- -
-
- )} + + + {!authToken && } + {authToken && ( + + +
+ +
+
+ )} +
diff --git a/web-app/src/components/sidebar.tsx b/web-app/src/components/sidebar.tsx index 87df534..13f00d8 100644 --- a/web-app/src/components/sidebar.tsx +++ b/web-app/src/components/sidebar.tsx @@ -13,6 +13,7 @@ import Logo from "@/assets/Hopp.png"; import { Button } from "./ui/button"; import { resetAllStores, useHoppStore } from "@/store/store"; import { useAPI } from "@/hooks/useQueryClients"; +import { ColorModeButton } from "@/components/ui/color-mode-button"; const items = [ { @@ -82,16 +83,19 @@ export function HoppSidebar() { - +
+ + +
); diff --git a/web-app/src/components/ui/color-mode-button.tsx b/web-app/src/components/ui/color-mode-button.tsx new file mode 100644 index 0000000..937eab6 --- /dev/null +++ b/web-app/src/components/ui/color-mode-button.tsx @@ -0,0 +1,18 @@ +import { Button } from "@/components/ui/button" +import { useColorMode } from "./color-mode" +import { LuMoon, LuSun } from "react-icons/lu" + +export const ColorModeButton = () => { + const { toggleColorMode, colorMode } = useColorMode() + return ( + + ) +} \ No newline at end of file diff --git a/web-app/src/components/ui/color-mode.tsx b/web-app/src/components/ui/color-mode.tsx new file mode 100644 index 0000000..753ab42 --- /dev/null +++ b/web-app/src/components/ui/color-mode.tsx @@ -0,0 +1,43 @@ +import { createContext, useContext, useEffect, useState } from 'react' + +type ColorMode = 'light' | 'dark' +type ColorModeContextType = { + colorMode: ColorMode + toggleColorMode: () => void +} + +const ColorModeContext = createContext(undefined) + +export function ColorModeProvider({ children }: { children: React.ReactNode }) { + const [colorMode, setColorMode] = useState(() => { + // Check localStorage and system preference + const savedMode = localStorage.getItem('color-mode') as ColorMode + if (savedMode) return savedMode + return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' + }) + + useEffect(() => { + const root = window.document.documentElement + root.classList.remove('light', 'dark') + root.classList.add(colorMode) + localStorage.setItem('color-mode', colorMode) + }, [colorMode]) + + const toggleColorMode = () => { + setColorMode(prev => prev === 'light' ? 'dark' : 'light') + } + + return ( + + {children} + + ) +} + +export function useColorMode() { + const context = useContext(ColorModeContext) + if (context === undefined) { + throw new Error('useColorMode must be used within a ColorModeProvider') + } + return context +} \ No newline at end of file diff --git a/web-app/src/main.tsx b/web-app/src/main.tsx index bef5202..3d4bdea 100644 --- a/web-app/src/main.tsx +++ b/web-app/src/main.tsx @@ -7,4 +7,4 @@ createRoot(document.getElementById('root')!).render( , -) +) \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index da8f855..be39ab9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -549,6 +549,16 @@ __metadata: languageName: node linkType: hard +"@emnapi/core@npm:^1.5.0": + version: 1.5.0 + resolution: "@emnapi/core@npm:1.5.0" + dependencies: + "@emnapi/wasi-threads": "npm:1.1.0" + tslib: "npm:^2.4.0" + checksum: 10c0/52ba3485277706d92fa27d92b37e5b4f6ef0742c03ed68f8096f294c6bfa30f0752c82d4c2bfa14bff4dc30d63c9f71a8f9fb64a92743d00807d9e468fafd5ff + languageName: node + linkType: hard + "@emnapi/runtime@npm:^1.2.0, @emnapi/runtime@npm:^1.4.4, @emnapi/runtime@npm:^1.4.5": version: 1.4.5 resolution: "@emnapi/runtime@npm:1.4.5" @@ -567,6 +577,15 @@ __metadata: languageName: node linkType: hard +"@emnapi/runtime@npm:^1.5.0": + version: 1.5.0 + resolution: "@emnapi/runtime@npm:1.5.0" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/a85c9fc4e3af49cbe41e5437e5be2551392a931910cd0a5b5d3572532786927810c9cc1db11b232ec8f9657b33d4e6f7c4f985f1a052917d7cd703b5b2a20faa + languageName: node + linkType: hard + "@emnapi/wasi-threads@npm:1.0.2": version: 1.0.2 resolution: "@emnapi/wasi-threads@npm:1.0.2" @@ -585,6 +604,15 @@ __metadata: languageName: node linkType: hard +"@emnapi/wasi-threads@npm:1.1.0, @emnapi/wasi-threads@npm:^1.1.0": + version: 1.1.0 + resolution: "@emnapi/wasi-threads@npm:1.1.0" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/e6d54bf2b1e64cdd83d2916411e44e579b6ae35d5def0dea61a3c452d9921373044dff32a8b8473ae60c80692bdc39323e98b96a3f3d87ba6886b24dd0ef7ca1 + languageName: node + linkType: hard + "@emotion/babel-plugin@npm:^11.13.5": version: 11.13.5 resolution: "@emotion/babel-plugin@npm:11.13.5" @@ -1848,6 +1876,17 @@ __metadata: languageName: node linkType: hard +"@napi-rs/wasm-runtime@npm:^1.0.5": + version: 1.0.6 + resolution: "@napi-rs/wasm-runtime@npm:1.0.6" + dependencies: + "@emnapi/core": "npm:^1.5.0" + "@emnapi/runtime": "npm:^1.5.0" + "@tybys/wasm-util": "npm:^0.10.1" + checksum: 10c0/af48168c6e13c970498fda3ce7238234a906bc69dd474dc9abd560cdf8a7dea6410147afec8f0191a1d19767c8347d8ec0125a8a93225312f7ac37e06e8c15ad + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -2786,6 +2825,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.52.4" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@rollup/rollup-android-arm64@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-android-arm64@npm:4.40.2" @@ -2793,6 +2839,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm64@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-android-arm64@npm:4.52.4" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-arm64@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-darwin-arm64@npm:4.40.2" @@ -2800,6 +2853,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-arm64@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-darwin-arm64@npm:4.52.4" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-x64@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-darwin-x64@npm:4.40.2" @@ -2807,6 +2867,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-x64@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-darwin-x64@npm:4.52.4" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-freebsd-arm64@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-freebsd-arm64@npm:4.40.2" @@ -2814,6 +2881,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-freebsd-arm64@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.52.4" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-freebsd-x64@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-freebsd-x64@npm:4.40.2" @@ -2821,6 +2895,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-freebsd-x64@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-freebsd-x64@npm:4.52.4" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-gnueabihf@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.40.2" @@ -2828,6 +2909,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-gnueabihf@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.52.4" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-musleabihf@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.40.2" @@ -2835,6 +2923,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-musleabihf@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.52.4" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-gnu@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.40.2" @@ -2842,6 +2937,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.52.4" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-musl@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.40.2" @@ -2849,6 +2951,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-musl@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.52.4" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loong64-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.52.4" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-loongarch64-gnu@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.40.2" @@ -2863,6 +2979,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-ppc64-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.52.4" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-gnu@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.40.2" @@ -2870,6 +2993,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.52.4" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-musl@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.40.2" @@ -2877,6 +3007,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-musl@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.52.4" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-s390x-gnu@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.40.2" @@ -2884,6 +3021,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-s390x-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.52.4" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-gnu@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.40.2" @@ -2891,6 +3035,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.52.4" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-musl@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-linux-x64-musl@npm:4.40.2" @@ -2898,6 +3049,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-musl@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.52.4" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-openharmony-arm64@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.52.4" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-arm64-msvc@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.40.2" @@ -2905,6 +3070,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-arm64-msvc@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.52.4" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-ia32-msvc@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.40.2" @@ -2912,6 +3084,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-ia32-msvc@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.52.4" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.52.4" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-msvc@npm:4.40.2": version: 4.40.2 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.40.2" @@ -2919,6 +3105,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-x64-msvc@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.52.4" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@sentry-internal/browser-utils@npm:10.11.0": version: 10.11.0 resolution: "@sentry-internal/browser-utils@npm:10.11.0" @@ -3226,6 +3419,21 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/node@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/node@npm:4.1.14" + dependencies: + "@jridgewell/remapping": "npm:^2.3.4" + enhanced-resolve: "npm:^5.18.3" + jiti: "npm:^2.6.0" + lightningcss: "npm:1.30.1" + magic-string: "npm:^0.30.19" + source-map-js: "npm:^1.2.1" + tailwindcss: "npm:4.1.14" + checksum: 10c0/dcdb53217534b5220e8ffd0357848b542935aa5ebcae691ff1ac2924c5c0b89d6150d938ff69c776d9835e53fdb29b6db78367930985bd50b367ddb646778239 + languageName: node + linkType: hard + "@tailwindcss/oxide-android-arm64@npm:4.1.12": version: 4.1.12 resolution: "@tailwindcss/oxide-android-arm64@npm:4.1.12" @@ -3240,6 +3448,13 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/oxide-android-arm64@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/oxide-android-arm64@npm:4.1.14" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@tailwindcss/oxide-darwin-arm64@npm:4.1.12": version: 4.1.12 resolution: "@tailwindcss/oxide-darwin-arm64@npm:4.1.12" @@ -3254,6 +3469,13 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/oxide-darwin-arm64@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/oxide-darwin-arm64@npm:4.1.14" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@tailwindcss/oxide-darwin-x64@npm:4.1.12": version: 4.1.12 resolution: "@tailwindcss/oxide-darwin-x64@npm:4.1.12" @@ -3268,6 +3490,13 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/oxide-darwin-x64@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/oxide-darwin-x64@npm:4.1.14" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@tailwindcss/oxide-freebsd-x64@npm:4.1.12": version: 4.1.12 resolution: "@tailwindcss/oxide-freebsd-x64@npm:4.1.12" @@ -3282,6 +3511,13 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/oxide-freebsd-x64@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/oxide-freebsd-x64@npm:4.1.14" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.1.12": version: 4.1.12 resolution: "@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.1.12" @@ -3296,6 +3532,13 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.1.14" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@tailwindcss/oxide-linux-arm64-gnu@npm:4.1.12": version: 4.1.12 resolution: "@tailwindcss/oxide-linux-arm64-gnu@npm:4.1.12" @@ -3310,6 +3553,13 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/oxide-linux-arm64-gnu@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/oxide-linux-arm64-gnu@npm:4.1.14" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@tailwindcss/oxide-linux-arm64-musl@npm:4.1.12": version: 4.1.12 resolution: "@tailwindcss/oxide-linux-arm64-musl@npm:4.1.12" @@ -3324,6 +3574,13 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/oxide-linux-arm64-musl@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/oxide-linux-arm64-musl@npm:4.1.14" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@tailwindcss/oxide-linux-x64-gnu@npm:4.1.12": version: 4.1.12 resolution: "@tailwindcss/oxide-linux-x64-gnu@npm:4.1.12" @@ -3338,6 +3595,13 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/oxide-linux-x64-gnu@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/oxide-linux-x64-gnu@npm:4.1.14" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@tailwindcss/oxide-linux-x64-musl@npm:4.1.12": version: 4.1.12 resolution: "@tailwindcss/oxide-linux-x64-musl@npm:4.1.12" @@ -3352,6 +3616,13 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/oxide-linux-x64-musl@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/oxide-linux-x64-musl@npm:4.1.14" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@tailwindcss/oxide-wasm32-wasi@npm:4.1.12": version: 4.1.12 resolution: "@tailwindcss/oxide-wasm32-wasi@npm:4.1.12" @@ -3380,6 +3651,20 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/oxide-wasm32-wasi@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/oxide-wasm32-wasi@npm:4.1.14" + dependencies: + "@emnapi/core": "npm:^1.5.0" + "@emnapi/runtime": "npm:^1.5.0" + "@emnapi/wasi-threads": "npm:^1.1.0" + "@napi-rs/wasm-runtime": "npm:^1.0.5" + "@tybys/wasm-util": "npm:^0.10.1" + tslib: "npm:^2.4.0" + conditions: cpu=wasm32 + languageName: node + linkType: hard + "@tailwindcss/oxide-win32-arm64-msvc@npm:4.1.12": version: 4.1.12 resolution: "@tailwindcss/oxide-win32-arm64-msvc@npm:4.1.12" @@ -3394,6 +3679,13 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/oxide-win32-arm64-msvc@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/oxide-win32-arm64-msvc@npm:4.1.14" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@tailwindcss/oxide-win32-x64-msvc@npm:4.1.12": version: 4.1.12 resolution: "@tailwindcss/oxide-win32-x64-msvc@npm:4.1.12" @@ -3408,6 +3700,13 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/oxide-win32-x64-msvc@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/oxide-win32-x64-msvc@npm:4.1.14" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@tailwindcss/oxide@npm:4.1.12": version: 4.1.12 resolution: "@tailwindcss/oxide@npm:4.1.12" @@ -3502,6 +3801,53 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/oxide@npm:4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/oxide@npm:4.1.14" + dependencies: + "@tailwindcss/oxide-android-arm64": "npm:4.1.14" + "@tailwindcss/oxide-darwin-arm64": "npm:4.1.14" + "@tailwindcss/oxide-darwin-x64": "npm:4.1.14" + "@tailwindcss/oxide-freebsd-x64": "npm:4.1.14" + "@tailwindcss/oxide-linux-arm-gnueabihf": "npm:4.1.14" + "@tailwindcss/oxide-linux-arm64-gnu": "npm:4.1.14" + "@tailwindcss/oxide-linux-arm64-musl": "npm:4.1.14" + "@tailwindcss/oxide-linux-x64-gnu": "npm:4.1.14" + "@tailwindcss/oxide-linux-x64-musl": "npm:4.1.14" + "@tailwindcss/oxide-wasm32-wasi": "npm:4.1.14" + "@tailwindcss/oxide-win32-arm64-msvc": "npm:4.1.14" + "@tailwindcss/oxide-win32-x64-msvc": "npm:4.1.14" + detect-libc: "npm:^2.0.4" + tar: "npm:^7.5.1" + dependenciesMeta: + "@tailwindcss/oxide-android-arm64": + optional: true + "@tailwindcss/oxide-darwin-arm64": + optional: true + "@tailwindcss/oxide-darwin-x64": + optional: true + "@tailwindcss/oxide-freebsd-x64": + optional: true + "@tailwindcss/oxide-linux-arm-gnueabihf": + optional: true + "@tailwindcss/oxide-linux-arm64-gnu": + optional: true + "@tailwindcss/oxide-linux-arm64-musl": + optional: true + "@tailwindcss/oxide-linux-x64-gnu": + optional: true + "@tailwindcss/oxide-linux-x64-musl": + optional: true + "@tailwindcss/oxide-wasm32-wasi": + optional: true + "@tailwindcss/oxide-win32-arm64-msvc": + optional: true + "@tailwindcss/oxide-win32-x64-msvc": + optional: true + checksum: 10c0/7fdf5345272d0348624cd003f431f10715372d585f0180d32d3c8dd18f5417cdfe7e8c4e86fc504fa1aefd19324fb4c4b174bbefdc054882ae6919ed1160d86c + languageName: node + linkType: hard + "@tailwindcss/postcss@npm:^4.1.13": version: 4.1.13 resolution: "@tailwindcss/postcss@npm:4.1.13" @@ -3541,6 +3887,19 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/vite@npm:^4.1.14": + version: 4.1.14 + resolution: "@tailwindcss/vite@npm:4.1.14" + dependencies: + "@tailwindcss/node": "npm:4.1.14" + "@tailwindcss/oxide": "npm:4.1.14" + tailwindcss: "npm:4.1.14" + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 + checksum: 10c0/38a34602a29fcad23eb80bdb6f3162473d191a1d8ec0bffdee73a1c7b9716de13a1c3705b95baf40eed6ed70e806df35ba03f3cfe541f1758a3440ddb03b6e81 + languageName: node + linkType: hard + "@tanstack/query-core@npm:5.76.0": version: 5.76.0 resolution: "@tanstack/query-core@npm:5.76.0" @@ -3829,6 +4188,15 @@ __metadata: languageName: node linkType: hard +"@tybys/wasm-util@npm:^0.10.1": + version: 0.10.1 + resolution: "@tybys/wasm-util@npm:0.10.1" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/b255094f293794c6d2289300c5fbcafbb5532a3aed3a5ffd2f8dc1828e639b88d75f6a376dd8f94347a44813fd7a7149d8463477a9a49525c8b2dcaa38c2d1e8 + languageName: node + linkType: hard + "@types/babel__core@npm:^7.20.5": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" @@ -3902,7 +4270,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.0": +"@types/estree@npm:*, @types/estree@npm:1.0.8, @types/estree@npm:^1.0.0": version: 1.0.8 resolution: "@types/estree@npm:1.0.8" checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5 @@ -7085,6 +7453,15 @@ __metadata: languageName: node linkType: hard +"jiti@npm:^2.6.0": + version: 2.6.1 + resolution: "jiti@npm:2.6.1" + bin: + jiti: lib/jiti-cli.mjs + checksum: 10c0/79b2e96a8e623f66c1b703b98ec1b8be4500e1d217e09b09e343471bbb9c105381b83edbb979d01cef18318cc45ce6e153571b6c83122170eefa531c64b6789b + languageName: node + linkType: hard + "js-levenshtein@npm:^1.1.6": version: 1.1.6 resolution: "js-levenshtein@npm:1.1.6" @@ -7472,6 +7849,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.19": + version: 0.30.19 + resolution: "magic-string@npm:0.30.19" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.5" + checksum: 10c0/db23fd2e2ee98a1aeb88a4cdb2353137fcf05819b883c856dd79e4c7dfb25151e2a5a4d5dbd88add5e30ed8ae5c51bcf4accbc6becb75249d924ec7b4fbcae27 + languageName: node + linkType: hard + "magicast@npm:^0.3.5": version: 0.3.5 resolution: "magicast@npm:0.3.5" @@ -8392,6 +8778,15 @@ __metadata: languageName: node linkType: hard +"minizlib@npm:^3.1.0": + version: 3.1.0 + resolution: "minizlib@npm:3.1.0" + dependencies: + minipass: "npm:^7.1.2" + checksum: 10c0/5aad75ab0090b8266069c9aabe582c021ae53eb33c6c691054a13a45db3b4f91a7fb1bd79151e6b4e9e9a86727b522527c0a06ec7d45206b745d54cd3097bcec + languageName: node + linkType: hard + "mkdirp@npm:^3.0.1": version: 3.0.1 resolution: "mkdirp@npm:3.0.1" @@ -8468,6 +8863,16 @@ __metadata: languageName: node linkType: hard +"next-themes@npm:^0.4.6": + version: 0.4.6 + resolution: "next-themes@npm:0.4.6" + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + checksum: 10c0/83590c11d359ce7e4ced14f6ea9dd7a691d5ce6843fe2dc520fc27e29ae1c535118478d03e7f172609c41b1ef1b8da6b8dd2d2acd6cd79cac1abbdbd5b99f2c4 + languageName: node + linkType: hard + "nlcst-to-string@npm:^4.0.0": version: 4.0.0 resolution: "nlcst-to-string@npm:4.0.0" @@ -9217,7 +9622,7 @@ __metadata: languageName: node linkType: hard -"react-icons@npm:5.5.0, react-icons@npm:^5.4.0": +"react-icons@npm:5.5.0, react-icons@npm:^5.5.0": version: 5.5.0 resolution: "react-icons@npm:5.5.0" peerDependencies: @@ -9754,6 +10159,87 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.16.4": + version: 4.52.4 + resolution: "rollup@npm:4.52.4" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.52.4" + "@rollup/rollup-android-arm64": "npm:4.52.4" + "@rollup/rollup-darwin-arm64": "npm:4.52.4" + "@rollup/rollup-darwin-x64": "npm:4.52.4" + "@rollup/rollup-freebsd-arm64": "npm:4.52.4" + "@rollup/rollup-freebsd-x64": "npm:4.52.4" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.52.4" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.52.4" + "@rollup/rollup-linux-arm64-gnu": "npm:4.52.4" + "@rollup/rollup-linux-arm64-musl": "npm:4.52.4" + "@rollup/rollup-linux-loong64-gnu": "npm:4.52.4" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.52.4" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.52.4" + "@rollup/rollup-linux-riscv64-musl": "npm:4.52.4" + "@rollup/rollup-linux-s390x-gnu": "npm:4.52.4" + "@rollup/rollup-linux-x64-gnu": "npm:4.52.4" + "@rollup/rollup-linux-x64-musl": "npm:4.52.4" + "@rollup/rollup-openharmony-arm64": "npm:4.52.4" + "@rollup/rollup-win32-arm64-msvc": "npm:4.52.4" + "@rollup/rollup-win32-ia32-msvc": "npm:4.52.4" + "@rollup/rollup-win32-x64-gnu": "npm:4.52.4" + "@rollup/rollup-win32-x64-msvc": "npm:4.52.4" + "@types/estree": "npm:1.0.8" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loong64-gnu": + optional: true + "@rollup/rollup-linux-ppc64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-openharmony-arm64": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-gnu": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/aaec0f57e887d4fb37d152f93cf7133954eec79d11643e95de768ec9a377f08793b1745c648ca65a0dcc6c795c4d9ca398724d013e5745de270e88a543782aea + languageName: node + linkType: hard + "rollup@npm:^4.20.0, rollup@npm:^4.34.9": version: 4.40.2 resolution: "rollup@npm:4.40.2" @@ -10366,6 +10852,13 @@ __metadata: languageName: node linkType: hard +"tailwindcss@npm:4.1.14": + version: 4.1.14 + resolution: "tailwindcss@npm:4.1.14" + checksum: 10c0/c7e9ebfb241707b2a3eb7d465fd326cc8fcfa22e7215e01f67cccec32db8a49a19e17d1f694fc5d0435d55350ea3f863521c52c9bbe6bd790c2009dc8ff516a1 + languageName: node + linkType: hard + "tapable@npm:^2.2.0": version: 2.2.1 resolution: "tapable@npm:2.2.1" @@ -10387,6 +10880,19 @@ __metadata: languageName: node linkType: hard +"tar@npm:^7.5.1": + version: 7.5.1 + resolution: "tar@npm:7.5.1" + dependencies: + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.1.0" + yallist: "npm:^5.0.0" + checksum: 10c0/0dad0596a61586180981133b20c32cfd93c5863c5b7140d646714e6ea8ec84583b879e5dc3928a4d683be6e6109ad7ea3de1cf71986d5194f81b3a016c8858c9 + languageName: node + linkType: hard + "tiny-inflate@npm:^1.0.0, tiny-inflate@npm:^1.0.3": version: 1.0.3 resolution: "tiny-inflate@npm:1.0.3" @@ -11209,6 +11715,7 @@ __metadata: "@radix-ui/react-slot": "npm:^1.2.3" "@radix-ui/react-tooltip": "npm:^1.2.8" "@tailwindcss/postcss": "npm:^4.1.13" + "@tailwindcss/vite": "npm:^4.1.14" "@tanstack/react-query": "npm:^5.66.3" "@tanstack/react-query-devtools": "npm:^5.66.3" "@types/canvas-confetti": "npm:^1.9.0" @@ -11225,16 +11732,18 @@ __metadata: eslint-plugin-react-refresh: "npm:^0.4.18" globals: "npm:^15.14.0" lucide-react: "npm:^0.542.0" + next-themes: "npm:^0.4.6" postcss: "npm:^8.5.2" posthog-js: "npm:^1.249.0" react: "npm:^18.2.0" react-cookie: "npm:^7.2.2" react-dom: "npm:^18.2.0" react-hot-toast: "npm:^2.5.2" - react-icons: "npm:^5.4.0" + react-icons: "npm:^5.5.0" react-router: "npm:^7.1.5" react-router-dom: "npm:^7.1.5" react-select: "npm:^5.10.1" + rollup: "npm:^4.16.4" tailwind-merge: "npm:^3.3.1" tailwindcss: "npm:^4.1.13" tailwindcss-animate: "npm:^1.0.7"