├── pnpm-workspace.yaml ├── desktop ├── src │ ├── vite-env.d.ts │ ├── lib │ │ ├── query-client.ts │ │ └── utils.ts │ ├── router.ts │ ├── components │ │ ├── default-layout.tsx │ │ └── ui │ │ │ ├── input.tsx │ │ │ └── button.tsx │ ├── main.tsx │ ├── views │ │ └── home.tsx │ ├── css │ │ └── tailwind.css │ └── generated │ │ └── tauri-commands.ts ├── src-tauri │ ├── build.rs │ ├── icons │ │ ├── 32x32.png │ │ ├── icon.icns │ │ ├── icon.ico │ │ ├── icon.png │ │ ├── 128x128.png │ │ ├── 128x128@2x.png │ │ ├── StoreLogo.png │ │ ├── Square30x30Logo.png │ │ ├── Square44x44Logo.png │ │ ├── Square71x71Logo.png │ │ ├── Square89x89Logo.png │ │ ├── Square107x107Logo.png │ │ ├── Square142x142Logo.png │ │ ├── Square150x150Logo.png │ │ ├── Square284x284Logo.png │ │ └── Square310x310Logo.png │ ├── .gitignore │ ├── capabilities │ │ └── default.json │ ├── Cargo.toml │ ├── tauri.conf.json │ └── src │ │ └── main.rs ├── postcss.config.js ├── tsconfig.node.json ├── components.json ├── index.html ├── vite.config.ts ├── tsconfig.json ├── package.json ├── public │ ├── vite.svg │ └── tauri.svg └── tailwind.config.js ├── package.json ├── .prettierrc ├── .vscode └── extensions.json ├── Cargo.toml ├── .editorconfig ├── .gitignore ├── README.md └── pnpm-lock.yaml /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - desktop 3 | - packages/* -------------------------------------------------------------------------------- /desktop/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "name": "workspace" 4 | } 5 | -------------------------------------------------------------------------------- /desktop/src-tauri/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | tauri_build::build() 3 | } 4 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "plugins": ["prettier-plugin-tailwindcss"] 4 | } 5 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"] 3 | } 4 | -------------------------------------------------------------------------------- /desktop/src-tauri/icons/32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/32x32.png -------------------------------------------------------------------------------- /desktop/src-tauri/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/icon.icns -------------------------------------------------------------------------------- /desktop/src-tauri/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/icon.ico -------------------------------------------------------------------------------- /desktop/src-tauri/icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/icon.png -------------------------------------------------------------------------------- /desktop/src-tauri/icons/128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/128x128.png -------------------------------------------------------------------------------- /desktop/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /desktop/src-tauri/icons/128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/128x128@2x.png -------------------------------------------------------------------------------- /desktop/src-tauri/icons/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/StoreLogo.png -------------------------------------------------------------------------------- /desktop/src-tauri/icons/Square30x30Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/Square30x30Logo.png -------------------------------------------------------------------------------- /desktop/src-tauri/icons/Square44x44Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/Square44x44Logo.png -------------------------------------------------------------------------------- /desktop/src-tauri/icons/Square71x71Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/Square71x71Logo.png -------------------------------------------------------------------------------- /desktop/src-tauri/icons/Square89x89Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/Square89x89Logo.png -------------------------------------------------------------------------------- /desktop/src/lib/query-client.ts: -------------------------------------------------------------------------------- 1 | import { QueryClient } from "@tanstack/react-query" 2 | 3 | export const queryClient = new QueryClient() 4 | -------------------------------------------------------------------------------- /desktop/src-tauri/icons/Square107x107Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/Square107x107Logo.png -------------------------------------------------------------------------------- /desktop/src-tauri/icons/Square142x142Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/Square142x142Logo.png -------------------------------------------------------------------------------- /desktop/src-tauri/icons/Square150x150Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/Square150x150Logo.png -------------------------------------------------------------------------------- /desktop/src-tauri/icons/Square284x284Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/Square284x284Logo.png -------------------------------------------------------------------------------- /desktop/src-tauri/icons/Square310x310Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egoist/tauri-starter/HEAD/desktop/src-tauri/icons/Square310x310Logo.png -------------------------------------------------------------------------------- /desktop/src/lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { type ClassValue, clsx } from "clsx" 2 | import { twMerge } from "tailwind-merge" 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)) 6 | } 7 | -------------------------------------------------------------------------------- /desktop/src-tauri/.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | /target/ 4 | 5 | # Generated by Tauri 6 | # will have schema files for capabilities auto-completion 7 | /gen/schemas 8 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | resolver = "2" 3 | members = ["desktop/src-tauri"] 4 | 5 | [workspace.package] 6 | license = "AGPL-3.0-only" 7 | edition = "2021" 8 | repository = "https://github.com/egoist/tauri-starter" 9 | 10 | [workspace.dependencies] 11 | -------------------------------------------------------------------------------- /desktop/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: https://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | [*] 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | charset = utf-8 11 | trim_trailing_whitespace = false 12 | insert_final_newline = false -------------------------------------------------------------------------------- /desktop/src/router.ts: -------------------------------------------------------------------------------- 1 | import { createBrowserRouter } from "react-router-dom" 2 | 3 | export const router = createBrowserRouter([ 4 | { 5 | path: "/", 6 | lazy: () => import("~/components/default-layout"), 7 | children: [ 8 | { 9 | path: "", 10 | lazy: () => import("~/views/home"), 11 | }, 12 | ], 13 | }, 14 | ]) 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | 26 | /target 27 | -------------------------------------------------------------------------------- /desktop/components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "new-york", 4 | "rsc": false, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "tailwind.config.js", 8 | "css": "src/css/tailwind.css", 9 | "baseColor": "zinc", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "~/components", 15 | "utils": "~/lib/utils" 16 | } 17 | } -------------------------------------------------------------------------------- /desktop/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Tauri + React + Typescript 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /desktop/src-tauri/capabilities/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../gen/schemas/desktop-schema.json", 3 | "identifier": "default", 4 | "description": "Capability for the main window", 5 | "windows": ["main"], 6 | "permissions": [ 7 | "path:default", 8 | "event:default", 9 | "window:default", 10 | "app:default", 11 | "image:default", 12 | "resources:default", 13 | "menu:default", 14 | "tray:default", 15 | "shell:allow-open", 16 | "window:allow-start-dragging" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /desktop/src/components/default-layout.tsx: -------------------------------------------------------------------------------- 1 | import { Outlet } from "react-router-dom" 2 | 3 | // You can export `Component`, `loader`, etc. 4 | // @see https://reactrouter.com/en/main/route/lazy 5 | export function Component() { 6 | return ( 7 |
8 |
9 |
10 |
11 |
12 | 13 |
14 |
15 | ) 16 | } 17 | -------------------------------------------------------------------------------- /desktop/src/main.tsx: -------------------------------------------------------------------------------- 1 | import "@fontsource-variable/dm-sans" 2 | import "./css/tailwind.css" 3 | import React from "react" 4 | import ReactDOM from "react-dom/client" 5 | import { QueryClientProvider } from "@tanstack/react-query" 6 | import { queryClient } from "./lib/query-client" 7 | import { RouterProvider } from "react-router-dom" 8 | import { router } from "./router" 9 | 10 | ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( 11 | 12 | 13 | 14 | 15 | , 16 | ) 17 | -------------------------------------------------------------------------------- /desktop/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vite" 2 | import react from "@vitejs/plugin-react" 3 | import tsconfigPaths from "vite-tsconfig-paths" 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig(async () => ({ 7 | plugins: [react(), tsconfigPaths()], 8 | 9 | // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` 10 | // 11 | // 1. prevent vite from obscuring rust errors 12 | clearScreen: false, 13 | // 2. tauri expects a fixed port, fail if that port is not available 14 | server: { 15 | port: 1420, 16 | strictPort: true, 17 | watch: { 18 | // 3. tell vite to ignore watching `src-tauri` 19 | ignored: ["**/src-tauri/**"], 20 | }, 21 | }, 22 | })) 23 | -------------------------------------------------------------------------------- /desktop/src-tauri/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "tauri-starter" 3 | version = "0.0.0" 4 | description = "A Tauri App" 5 | authors = ["you"] 6 | license = { workspace = true } 7 | repository = { workspace = true } 8 | edition = { workspace = true } 9 | 10 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 11 | 12 | [build-dependencies] 13 | tauri-build = { version = "2.0.0-beta", features = [] } 14 | 15 | [dependencies] 16 | tauri = { version = "2.0.0-beta", features = [] } 17 | tauri-plugin-shell = "2.0.0-beta" 18 | serde = { version = "1", features = ["derive"] } 19 | serde_json = "1" 20 | specta = "=2.0.0-rc.12" 21 | tauri-specta = { version = "=2.0.0-rc.11", features = [ 22 | "javascript", 23 | "typescript", 24 | ] } 25 | -------------------------------------------------------------------------------- /desktop/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 | "module": "ESNext", 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "noEmit": true, 15 | "jsx": "react-jsx", 16 | 17 | /* Linting */ 18 | "strict": true, 19 | "noUnusedLocals": true, 20 | "noUnusedParameters": true, 21 | "noFallthroughCasesInSwitch": true, 22 | 23 | "baseUrl": ".", 24 | "paths": { 25 | "~/*": ["src/*"], 26 | "#tauri-config": ["src-tauri/tauri.conf.json"] 27 | } 28 | }, 29 | "include": ["src"], 30 | "references": [{ "path": "./tsconfig.node.json" }] 31 | } 32 | -------------------------------------------------------------------------------- /desktop/src-tauri/tauri.conf.json: -------------------------------------------------------------------------------- 1 | { 2 | "productName": "tauri-starter", 3 | "version": "0.0.0", 4 | "identifier": "com.tauri.dev", 5 | "build": { 6 | "beforeDevCommand": "pnpm dev-vite", 7 | "devUrl": "http://localhost:1420", 8 | "beforeBuildCommand": "pnpm build-vite", 9 | "frontendDist": "../dist" 10 | }, 11 | "app": { 12 | "windows": [ 13 | { 14 | "title": "tauri-starter", 15 | "width": 800, 16 | "height": 600, 17 | "titleBarStyle": "Overlay", 18 | "hiddenTitle": true 19 | } 20 | ], 21 | "security": { 22 | "csp": null 23 | } 24 | }, 25 | "bundle": { 26 | "active": true, 27 | "targets": "all", 28 | "icon": [ 29 | "icons/32x32.png", 30 | "icons/128x128.png", 31 | "icons/128x128@2x.png", 32 | "icons/icon.icns", 33 | "icons/icon.ico" 34 | ] 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /desktop/src/components/ui/input.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | 3 | import { cn } from "~/lib/utils" 4 | 5 | export interface InputProps 6 | extends React.InputHTMLAttributes {} 7 | 8 | const Input = React.forwardRef( 9 | ({ className, type, ...props }, ref) => { 10 | return ( 11 | 20 | ) 21 | }, 22 | ) 23 | Input.displayName = "Input" 24 | 25 | export { Input } 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tauri Starter 2 | 3 | ## Features 4 | 5 | - Vite + React + React Router 6 | - TailwindCSS + [shadcn-ui](https://ui.shadcn.com/) 7 | - Type-safe Tauri command with [tauri-specta](https://github.com/oscartbeaumont/tauri-specta) 8 | - [React Query](https://tanstack.com/query/latest/docs/framework/react/overview) for data fetching 9 | - Using DM Sans as the default font 10 | 11 | ## Usage 12 | 13 | Clone this repo, replace `tauri-starter` in the project code with your project name, and you're good to go. 14 | 15 | ```bash 16 | # Install dependencies 17 | pnpm i 18 | 19 | # Run dev server 20 | pnpm --filter desktop dev 21 | 22 | # Build for production 23 | pnpm --filter desktop build 24 | ``` 25 | 26 | ## Project Structure 27 | 28 | ### `desktop` 29 | 30 | - `src/router.ts`: Define your routes here, every route and layout is lazy-loaded. 31 | 32 | ## Upgrade 33 | 34 | Currently there's no automated way to upgrade the starter once you've cloned it. You can manually upgrade the code by looking at the commit history. 35 | -------------------------------------------------------------------------------- /desktop/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "desktop", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev-vite": "vite", 8 | "build-vite": "tsc && vite build", 9 | "preview": "vite preview", 10 | "tauri": "tauri", 11 | "dev": "tauri dev", 12 | "build": "tauri build" 13 | }, 14 | "dependencies": { 15 | "@radix-ui/react-icons": "^1.3.0", 16 | "@radix-ui/react-slot": "^1.1.0", 17 | "@tanstack/react-query": "^5.49.2", 18 | "@tauri-apps/api": ">=2.0.0-beta.0", 19 | "@tauri-apps/plugin-shell": ">=2.0.0-beta.0", 20 | "class-variance-authority": "^0.7.0", 21 | "clsx": "^2.1.1", 22 | "react": "^18.2.0", 23 | "react-dom": "^18.2.0", 24 | "react-router-dom": "^6.24.0", 25 | "tailwind-merge": "^2.3.0", 26 | "tailwind-variants": "^0.2.1", 27 | "tailwindcss-animate": "^1.0.7" 28 | }, 29 | "devDependencies": { 30 | "@fontsource-variable/dm-sans": "^5.0.6", 31 | "@tauri-apps/cli": ">=2.0.0-beta.0", 32 | "@types/react": "^18.2.15", 33 | "@types/react-dom": "^18.2.7", 34 | "@vitejs/plugin-react": "^4.2.1", 35 | "autoprefixer": "^10.4.19", 36 | "prettier": "^3.3.2", 37 | "prettier-plugin-tailwindcss": "^0.6.5", 38 | "tailwindcss": "^3.4.4", 39 | "typescript": "^5.5.2", 40 | "vite": "^5.3.1", 41 | "vite-tsconfig-paths": "^4.3.2" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /desktop/src/views/home.tsx: -------------------------------------------------------------------------------- 1 | import { useState } from "react" 2 | import { Button } from "~/components/ui/button" 3 | import { Input } from "~/components/ui/input" 4 | import { commands } from "~/generated/tauri-commands" 5 | import { productName } from "#tauri-config" 6 | 7 | // You can export `Component`, `loader`, etc. 8 | // @see https://reactrouter.com/en/main/route/lazy 9 | export function Component() { 10 | const [message, setMessage] = useState("") 11 | 12 | return ( 13 |
14 |
15 | 16 |
17 |

{productName}

18 |
{ 21 | e.preventDefault() 22 | const data = new FormData(e.currentTarget) 23 | 24 | const result = await commands.greet(data.get("name") as string) 25 | setMessage(result) 26 | }} 27 | > 28 | 34 | 35 | 36 | {message &&
{message}
} 37 |
38 |
39 |
40 | ) 41 | } 42 | -------------------------------------------------------------------------------- /desktop/public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /desktop/src/css/tailwind.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @layer base { 6 | :root { 7 | --background: 0 0% 100%; 8 | --foreground: 240 10% 3.9%; 9 | 10 | --card: 0 0% 100%; 11 | --card-foreground: 240 10% 3.9%; 12 | 13 | --popover: 0 0% 100%; 14 | --popover-foreground: 240 10% 3.9%; 15 | 16 | --primary: 240 5.9% 10%; 17 | --primary-foreground: 0 0% 98%; 18 | 19 | --secondary: 240 4.8% 95.9%; 20 | --secondary-foreground: 240 5.9% 10%; 21 | 22 | --muted: 240 4.8% 95.9%; 23 | --muted-foreground: 240 3.8% 46.1%; 24 | 25 | --accent: 240 4.8% 95.9%; 26 | --accent-foreground: 240 5.9% 10%; 27 | 28 | --destructive: 0 84.2% 60.2%; 29 | --destructive-foreground: 0 0% 98%; 30 | 31 | --border: 240 5.9% 90%; 32 | --input: 240 5.9% 90%; 33 | --ring: 217 91% 60%; 34 | 35 | --radius: 0.5rem; 36 | } 37 | 38 | .dark { 39 | --background: 240 10% 3.9%; 40 | --foreground: 0 0% 98%; 41 | 42 | --card: 240 10% 3.9%; 43 | --card-foreground: 0 0% 98%; 44 | 45 | --popover: 240 10% 3.9%; 46 | --popover-foreground: 0 0% 98%; 47 | 48 | --primary: 0 0% 98%; 49 | --primary-foreground: 240 5.9% 10%; 50 | 51 | --secondary: 240 3.7% 15.9%; 52 | --secondary-foreground: 0 0% 98%; 53 | 54 | --muted: 240 3.7% 15.9%; 55 | --muted-foreground: 240 5% 64.9%; 56 | 57 | --accent: 240 3.7% 15.9%; 58 | --accent-foreground: 0 0% 98%; 59 | 60 | --destructive: 0 62.8% 30.6%; 61 | --destructive-foreground: 0 0% 98%; 62 | 63 | --border: 240 3.7% 15.9%; 64 | --input: 217 91% 60%; 65 | } 66 | } 67 | 68 | @layer base { 69 | * { 70 | @apply border-border; 71 | } 72 | body { 73 | @apply bg-background text-foreground; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /desktop/src-tauri/src/main.rs: -------------------------------------------------------------------------------- 1 | // Prevents additional console window on Windows in release, DO NOT REMOVE!! 2 | #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] 3 | 4 | use tauri::{AppHandle, Manager}; 5 | 6 | // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command 7 | // Learn more about Tauri Specta at https://github.com/oscartbeaumont/tauri-specta/blob/main/docs/v2.md 8 | #[tauri::command] 9 | #[specta::specta] 10 | fn greet(name: &str) -> String { 11 | format!("Hello, {}! You've been greeted from Rust!", name) 12 | } 13 | 14 | fn main() { 15 | let invoke_handler = { 16 | // You can use `tauri_specta::js::builder` for exporting JS Doc instead of Typescript!` 17 | let builder = tauri_specta::ts::builder().commands(tauri_specta::collect_commands![greet,]); // <- Each of your commands 18 | 19 | #[cfg(debug_assertions)] // <- Only export on non-release builds 20 | let builder = builder.path("../src/generated/tauri-commands.ts"); 21 | 22 | builder.build().unwrap() 23 | }; 24 | 25 | tauri::Builder::default() 26 | .plugin(tauri_plugin_shell::init()) 27 | .invoke_handler(invoke_handler) 28 | .on_window_event(|window, event| match event { 29 | tauri::WindowEvent::CloseRequested { api, .. } => { 30 | // hide main window instead of closing it 31 | // because otherwise the app will exit if there's no window left 32 | if window.label() == "main" { 33 | AppHandle::hide(window.app_handle()).unwrap(); 34 | api.prevent_close(); 35 | } 36 | } 37 | _ => {} 38 | }) 39 | .run(tauri::generate_context!()) 40 | .expect("error while running tauri application"); 41 | } 42 | -------------------------------------------------------------------------------- /desktop/src/components/ui/button.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Slot } from "@radix-ui/react-slot" 3 | import { tv, type VariantProps } from "tailwind-variants" 4 | 5 | import { cn } from "~/lib/utils" 6 | 7 | const buttonVariants = tv({ 8 | base: "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", 9 | variants: { 10 | variant: { 11 | default: "bg-primary text-primary-foreground shadow hover:bg-primary/90", 12 | destructive: 13 | "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", 14 | outline: 15 | "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", 16 | secondary: 17 | "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", 18 | ghost: "hover:bg-accent hover:text-accent-foreground", 19 | link: "text-primary underline-offset-4 hover:underline", 20 | }, 21 | size: { 22 | default: "h-9 px-4 py-2", 23 | sm: "h-8 rounded-md px-3 text-xs", 24 | lg: "h-10 rounded-md px-8", 25 | icon: "h-9 w-9", 26 | }, 27 | }, 28 | defaultVariants: { 29 | variant: "default", 30 | size: "default", 31 | }, 32 | }) 33 | 34 | export interface ButtonProps 35 | extends React.ButtonHTMLAttributes, 36 | VariantProps { 37 | asChild?: boolean 38 | } 39 | 40 | const Button = React.forwardRef( 41 | ({ className, variant, size, asChild = false, ...props }, ref) => { 42 | const Comp = asChild ? Slot : "button" 43 | return ( 44 | 49 | ) 50 | }, 51 | ) 52 | Button.displayName = "Button" 53 | 54 | export { Button, buttonVariants } 55 | -------------------------------------------------------------------------------- /desktop/public/tauri.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /desktop/src/generated/tauri-commands.ts: -------------------------------------------------------------------------------- 1 | 2 | // This file was generated by [tauri-specta](https://github.com/oscartbeaumont/tauri-specta). Do not edit this file manually. 3 | 4 | /** user-defined commands **/ 5 | 6 | export const commands = { 7 | async greet(name: string) : Promise { 8 | return await TAURI_INVOKE("greet", { name }); 9 | } 10 | } 11 | 12 | /** user-defined events **/ 13 | 14 | 15 | 16 | /** user-defined statics **/ 17 | 18 | 19 | 20 | /** user-defined types **/ 21 | 22 | 23 | 24 | /** tauri-specta globals **/ 25 | 26 | import { invoke as TAURI_INVOKE } from "@tauri-apps/api/core"; 27 | import * as TAURI_API_EVENT from "@tauri-apps/api/event"; 28 | import { type WebviewWindow as __WebviewWindow__ } from "@tauri-apps/api/webviewWindow"; 29 | 30 | type __EventObj__ = { 31 | listen: ( 32 | cb: TAURI_API_EVENT.EventCallback 33 | ) => ReturnType>; 34 | once: ( 35 | cb: TAURI_API_EVENT.EventCallback 36 | ) => ReturnType>; 37 | emit: T extends null 38 | ? (payload?: T) => ReturnType 39 | : (payload: T) => ReturnType; 40 | }; 41 | 42 | export type Result = 43 | | { status: "ok"; data: T } 44 | | { status: "error"; error: E }; 45 | 46 | function __makeEvents__>( 47 | mappings: Record 48 | ) { 49 | return new Proxy( 50 | {} as unknown as { 51 | [K in keyof T]: __EventObj__ & { 52 | (handle: __WebviewWindow__): __EventObj__; 53 | }; 54 | }, 55 | { 56 | get: (_, event) => { 57 | const name = mappings[event as keyof T]; 58 | 59 | return new Proxy((() => {}) as any, { 60 | apply: (_, __, [window]: [__WebviewWindow__]) => ({ 61 | listen: (arg: any) => window.listen(name, arg), 62 | once: (arg: any) => window.once(name, arg), 63 | emit: (arg: any) => window.emit(name, arg), 64 | }), 65 | get: (_, command: keyof __EventObj__) => { 66 | switch (command) { 67 | case "listen": 68 | return (arg: any) => TAURI_API_EVENT.listen(name, arg); 69 | case "once": 70 | return (arg: any) => TAURI_API_EVENT.once(name, arg); 71 | case "emit": 72 | return (arg: any) => TAURI_API_EVENT.emit(name, arg); 73 | } 74 | }, 75 | }); 76 | }, 77 | } 78 | ); 79 | } 80 | 81 | -------------------------------------------------------------------------------- /desktop/tailwind.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | import animate from "tailwindcss-animate" 3 | import defaultTheme from "tailwindcss/defaultTheme" 4 | 5 | /** @type {import('tailwindcss').Config} */ 6 | export default { 7 | darkMode: ["class"], 8 | content: [ 9 | "./pages/**/*.{ts,tsx}", 10 | "./components/**/*.{ts,tsx}", 11 | "./app/**/*.{ts,tsx}", 12 | "./src/**/*.{ts,tsx}", 13 | ], 14 | prefix: "", 15 | theme: { 16 | container: { 17 | center: true, 18 | padding: "2rem", 19 | screens: { 20 | "2xl": "1400px", 21 | }, 22 | }, 23 | extend: { 24 | fontFamily: { 25 | sans: ["'DM Sans Variable'", ...defaultTheme.fontFamily.sans], 26 | }, 27 | colors: { 28 | border: "hsl(var(--border))", 29 | input: "hsl(var(--input))", 30 | ring: "hsl(var(--ring))", 31 | background: "hsl(var(--background))", 32 | foreground: "hsl(var(--foreground))", 33 | primary: { 34 | DEFAULT: "hsl(var(--primary))", 35 | foreground: "hsl(var(--primary-foreground))", 36 | }, 37 | secondary: { 38 | DEFAULT: "hsl(var(--secondary))", 39 | foreground: "hsl(var(--secondary-foreground))", 40 | }, 41 | destructive: { 42 | DEFAULT: "hsl(var(--destructive))", 43 | foreground: "hsl(var(--destructive-foreground))", 44 | }, 45 | muted: { 46 | DEFAULT: "hsl(var(--muted))", 47 | foreground: "hsl(var(--muted-foreground))", 48 | }, 49 | accent: { 50 | DEFAULT: "hsl(var(--accent))", 51 | foreground: "hsl(var(--accent-foreground))", 52 | }, 53 | popover: { 54 | DEFAULT: "hsl(var(--popover))", 55 | foreground: "hsl(var(--popover-foreground))", 56 | }, 57 | card: { 58 | DEFAULT: "hsl(var(--card))", 59 | foreground: "hsl(var(--card-foreground))", 60 | }, 61 | }, 62 | borderRadius: { 63 | lg: "var(--radius)", 64 | md: "calc(var(--radius) - 2px)", 65 | sm: "calc(var(--radius) - 4px)", 66 | }, 67 | keyframes: { 68 | "accordion-down": { 69 | from: { height: "0" }, 70 | to: { height: "var(--radix-accordion-content-height)" }, 71 | }, 72 | "accordion-up": { 73 | from: { height: "var(--radix-accordion-content-height)" }, 74 | to: { height: "0" }, 75 | }, 76 | }, 77 | animation: { 78 | "accordion-down": "accordion-down 0.2s ease-out", 79 | "accordion-up": "accordion-up 0.2s ease-out", 80 | }, 81 | }, 82 | }, 83 | plugins: [animate], 84 | } 85 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: {} 10 | 11 | desktop: 12 | dependencies: 13 | '@radix-ui/react-icons': 14 | specifier: ^1.3.0 15 | version: 1.3.0(react@18.3.1) 16 | '@radix-ui/react-slot': 17 | specifier: ^1.1.0 18 | version: 1.1.0(@types/react@18.3.3)(react@18.3.1) 19 | '@tanstack/react-query': 20 | specifier: ^5.49.2 21 | version: 5.49.2(react@18.3.1) 22 | '@tauri-apps/api': 23 | specifier: '>=2.0.0-beta.0' 24 | version: 2.0.0-beta.13 25 | '@tauri-apps/plugin-shell': 26 | specifier: '>=2.0.0-beta.0' 27 | version: 2.0.0-beta.6 28 | class-variance-authority: 29 | specifier: ^0.7.0 30 | version: 0.7.0 31 | clsx: 32 | specifier: ^2.1.1 33 | version: 2.1.1 34 | react: 35 | specifier: ^18.2.0 36 | version: 18.3.1 37 | react-dom: 38 | specifier: ^18.2.0 39 | version: 18.3.1(react@18.3.1) 40 | react-router-dom: 41 | specifier: ^6.24.0 42 | version: 6.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 43 | tailwind-merge: 44 | specifier: ^2.3.0 45 | version: 2.3.0 46 | tailwind-variants: 47 | specifier: ^0.2.1 48 | version: 0.2.1(tailwindcss@3.4.4) 49 | tailwindcss-animate: 50 | specifier: ^1.0.7 51 | version: 1.0.7(tailwindcss@3.4.4) 52 | devDependencies: 53 | '@fontsource-variable/dm-sans': 54 | specifier: ^5.0.6 55 | version: 5.0.6 56 | '@tauri-apps/cli': 57 | specifier: '>=2.0.0-beta.0' 58 | version: 2.0.0-beta.20 59 | '@types/react': 60 | specifier: ^18.2.15 61 | version: 18.3.3 62 | '@types/react-dom': 63 | specifier: ^18.2.7 64 | version: 18.3.0 65 | '@vitejs/plugin-react': 66 | specifier: ^4.2.1 67 | version: 4.3.1(vite@5.3.2) 68 | autoprefixer: 69 | specifier: ^10.4.19 70 | version: 10.4.19(postcss@8.4.39) 71 | prettier: 72 | specifier: ^3.3.2 73 | version: 3.3.2 74 | prettier-plugin-tailwindcss: 75 | specifier: ^0.6.5 76 | version: 0.6.5(prettier@3.3.2) 77 | tailwindcss: 78 | specifier: ^3.4.4 79 | version: 3.4.4 80 | typescript: 81 | specifier: ^5.5.2 82 | version: 5.5.2 83 | vite: 84 | specifier: ^5.3.1 85 | version: 5.3.2 86 | vite-tsconfig-paths: 87 | specifier: ^4.3.2 88 | version: 4.3.2(typescript@5.5.2)(vite@5.3.2) 89 | 90 | packages: 91 | 92 | '@alloc/quick-lru@5.2.0': 93 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 94 | engines: {node: '>=10'} 95 | 96 | '@ampproject/remapping@2.3.0': 97 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 98 | engines: {node: '>=6.0.0'} 99 | 100 | '@babel/code-frame@7.24.7': 101 | resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} 102 | engines: {node: '>=6.9.0'} 103 | 104 | '@babel/compat-data@7.24.7': 105 | resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} 106 | engines: {node: '>=6.9.0'} 107 | 108 | '@babel/core@7.24.7': 109 | resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} 110 | engines: {node: '>=6.9.0'} 111 | 112 | '@babel/generator@7.24.7': 113 | resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} 114 | engines: {node: '>=6.9.0'} 115 | 116 | '@babel/helper-compilation-targets@7.24.7': 117 | resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} 118 | engines: {node: '>=6.9.0'} 119 | 120 | '@babel/helper-environment-visitor@7.24.7': 121 | resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} 122 | engines: {node: '>=6.9.0'} 123 | 124 | '@babel/helper-function-name@7.24.7': 125 | resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} 126 | engines: {node: '>=6.9.0'} 127 | 128 | '@babel/helper-hoist-variables@7.24.7': 129 | resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} 130 | engines: {node: '>=6.9.0'} 131 | 132 | '@babel/helper-module-imports@7.24.7': 133 | resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} 134 | engines: {node: '>=6.9.0'} 135 | 136 | '@babel/helper-module-transforms@7.24.7': 137 | resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} 138 | engines: {node: '>=6.9.0'} 139 | peerDependencies: 140 | '@babel/core': ^7.0.0 141 | 142 | '@babel/helper-plugin-utils@7.24.7': 143 | resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} 144 | engines: {node: '>=6.9.0'} 145 | 146 | '@babel/helper-simple-access@7.24.7': 147 | resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} 148 | engines: {node: '>=6.9.0'} 149 | 150 | '@babel/helper-split-export-declaration@7.24.7': 151 | resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} 152 | engines: {node: '>=6.9.0'} 153 | 154 | '@babel/helper-string-parser@7.24.7': 155 | resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} 156 | engines: {node: '>=6.9.0'} 157 | 158 | '@babel/helper-validator-identifier@7.24.7': 159 | resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} 160 | engines: {node: '>=6.9.0'} 161 | 162 | '@babel/helper-validator-option@7.24.7': 163 | resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} 164 | engines: {node: '>=6.9.0'} 165 | 166 | '@babel/helpers@7.24.7': 167 | resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} 168 | engines: {node: '>=6.9.0'} 169 | 170 | '@babel/highlight@7.24.7': 171 | resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} 172 | engines: {node: '>=6.9.0'} 173 | 174 | '@babel/parser@7.24.7': 175 | resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} 176 | engines: {node: '>=6.0.0'} 177 | hasBin: true 178 | 179 | '@babel/plugin-transform-react-jsx-self@7.24.7': 180 | resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} 181 | engines: {node: '>=6.9.0'} 182 | peerDependencies: 183 | '@babel/core': ^7.0.0-0 184 | 185 | '@babel/plugin-transform-react-jsx-source@7.24.7': 186 | resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} 187 | engines: {node: '>=6.9.0'} 188 | peerDependencies: 189 | '@babel/core': ^7.0.0-0 190 | 191 | '@babel/runtime@7.24.7': 192 | resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} 193 | engines: {node: '>=6.9.0'} 194 | 195 | '@babel/template@7.24.7': 196 | resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} 197 | engines: {node: '>=6.9.0'} 198 | 199 | '@babel/traverse@7.24.7': 200 | resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} 201 | engines: {node: '>=6.9.0'} 202 | 203 | '@babel/types@7.24.7': 204 | resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} 205 | engines: {node: '>=6.9.0'} 206 | 207 | '@esbuild/aix-ppc64@0.21.5': 208 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} 209 | engines: {node: '>=12'} 210 | cpu: [ppc64] 211 | os: [aix] 212 | 213 | '@esbuild/android-arm64@0.21.5': 214 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} 215 | engines: {node: '>=12'} 216 | cpu: [arm64] 217 | os: [android] 218 | 219 | '@esbuild/android-arm@0.21.5': 220 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} 221 | engines: {node: '>=12'} 222 | cpu: [arm] 223 | os: [android] 224 | 225 | '@esbuild/android-x64@0.21.5': 226 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} 227 | engines: {node: '>=12'} 228 | cpu: [x64] 229 | os: [android] 230 | 231 | '@esbuild/darwin-arm64@0.21.5': 232 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} 233 | engines: {node: '>=12'} 234 | cpu: [arm64] 235 | os: [darwin] 236 | 237 | '@esbuild/darwin-x64@0.21.5': 238 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} 239 | engines: {node: '>=12'} 240 | cpu: [x64] 241 | os: [darwin] 242 | 243 | '@esbuild/freebsd-arm64@0.21.5': 244 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} 245 | engines: {node: '>=12'} 246 | cpu: [arm64] 247 | os: [freebsd] 248 | 249 | '@esbuild/freebsd-x64@0.21.5': 250 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} 251 | engines: {node: '>=12'} 252 | cpu: [x64] 253 | os: [freebsd] 254 | 255 | '@esbuild/linux-arm64@0.21.5': 256 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} 257 | engines: {node: '>=12'} 258 | cpu: [arm64] 259 | os: [linux] 260 | 261 | '@esbuild/linux-arm@0.21.5': 262 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} 263 | engines: {node: '>=12'} 264 | cpu: [arm] 265 | os: [linux] 266 | 267 | '@esbuild/linux-ia32@0.21.5': 268 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} 269 | engines: {node: '>=12'} 270 | cpu: [ia32] 271 | os: [linux] 272 | 273 | '@esbuild/linux-loong64@0.21.5': 274 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} 275 | engines: {node: '>=12'} 276 | cpu: [loong64] 277 | os: [linux] 278 | 279 | '@esbuild/linux-mips64el@0.21.5': 280 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} 281 | engines: {node: '>=12'} 282 | cpu: [mips64el] 283 | os: [linux] 284 | 285 | '@esbuild/linux-ppc64@0.21.5': 286 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} 287 | engines: {node: '>=12'} 288 | cpu: [ppc64] 289 | os: [linux] 290 | 291 | '@esbuild/linux-riscv64@0.21.5': 292 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} 293 | engines: {node: '>=12'} 294 | cpu: [riscv64] 295 | os: [linux] 296 | 297 | '@esbuild/linux-s390x@0.21.5': 298 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} 299 | engines: {node: '>=12'} 300 | cpu: [s390x] 301 | os: [linux] 302 | 303 | '@esbuild/linux-x64@0.21.5': 304 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} 305 | engines: {node: '>=12'} 306 | cpu: [x64] 307 | os: [linux] 308 | 309 | '@esbuild/netbsd-x64@0.21.5': 310 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} 311 | engines: {node: '>=12'} 312 | cpu: [x64] 313 | os: [netbsd] 314 | 315 | '@esbuild/openbsd-x64@0.21.5': 316 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} 317 | engines: {node: '>=12'} 318 | cpu: [x64] 319 | os: [openbsd] 320 | 321 | '@esbuild/sunos-x64@0.21.5': 322 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} 323 | engines: {node: '>=12'} 324 | cpu: [x64] 325 | os: [sunos] 326 | 327 | '@esbuild/win32-arm64@0.21.5': 328 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} 329 | engines: {node: '>=12'} 330 | cpu: [arm64] 331 | os: [win32] 332 | 333 | '@esbuild/win32-ia32@0.21.5': 334 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} 335 | engines: {node: '>=12'} 336 | cpu: [ia32] 337 | os: [win32] 338 | 339 | '@esbuild/win32-x64@0.21.5': 340 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} 341 | engines: {node: '>=12'} 342 | cpu: [x64] 343 | os: [win32] 344 | 345 | '@fontsource-variable/dm-sans@5.0.6': 346 | resolution: {integrity: sha512-+CNVseJRlYGB4gUZ2L7yTeCHHBKAMVVhqUz85nb/OoU0hketJrWCHOUJwF5W2MpZCeE0JqJmDFAsEdx8znkrGw==} 347 | 348 | '@isaacs/cliui@8.0.2': 349 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 350 | engines: {node: '>=12'} 351 | 352 | '@jridgewell/gen-mapping@0.3.5': 353 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 354 | engines: {node: '>=6.0.0'} 355 | 356 | '@jridgewell/resolve-uri@3.1.2': 357 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 358 | engines: {node: '>=6.0.0'} 359 | 360 | '@jridgewell/set-array@1.2.1': 361 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 362 | engines: {node: '>=6.0.0'} 363 | 364 | '@jridgewell/sourcemap-codec@1.4.15': 365 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 366 | 367 | '@jridgewell/trace-mapping@0.3.25': 368 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 369 | 370 | '@nodelib/fs.scandir@2.1.5': 371 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 372 | engines: {node: '>= 8'} 373 | 374 | '@nodelib/fs.stat@2.0.5': 375 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 376 | engines: {node: '>= 8'} 377 | 378 | '@nodelib/fs.walk@1.2.8': 379 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 380 | engines: {node: '>= 8'} 381 | 382 | '@pkgjs/parseargs@0.11.0': 383 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 384 | engines: {node: '>=14'} 385 | 386 | '@radix-ui/react-compose-refs@1.1.0': 387 | resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} 388 | peerDependencies: 389 | '@types/react': '*' 390 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 391 | peerDependenciesMeta: 392 | '@types/react': 393 | optional: true 394 | 395 | '@radix-ui/react-icons@1.3.0': 396 | resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==} 397 | peerDependencies: 398 | react: ^16.x || ^17.x || ^18.x 399 | 400 | '@radix-ui/react-slot@1.1.0': 401 | resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} 402 | peerDependencies: 403 | '@types/react': '*' 404 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 405 | peerDependenciesMeta: 406 | '@types/react': 407 | optional: true 408 | 409 | '@remix-run/router@1.17.0': 410 | resolution: {integrity: sha512-2D6XaHEVvkCn682XBnipbJjgZUU7xjLtA4dGJRBVUKpEaDYOZMENZoZjAOSb7qirxt5RupjzZxz4fK2FO+EFPw==} 411 | engines: {node: '>=14.0.0'} 412 | 413 | '@rollup/rollup-android-arm-eabi@4.18.0': 414 | resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} 415 | cpu: [arm] 416 | os: [android] 417 | 418 | '@rollup/rollup-android-arm64@4.18.0': 419 | resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} 420 | cpu: [arm64] 421 | os: [android] 422 | 423 | '@rollup/rollup-darwin-arm64@4.18.0': 424 | resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} 425 | cpu: [arm64] 426 | os: [darwin] 427 | 428 | '@rollup/rollup-darwin-x64@4.18.0': 429 | resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} 430 | cpu: [x64] 431 | os: [darwin] 432 | 433 | '@rollup/rollup-linux-arm-gnueabihf@4.18.0': 434 | resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} 435 | cpu: [arm] 436 | os: [linux] 437 | 438 | '@rollup/rollup-linux-arm-musleabihf@4.18.0': 439 | resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} 440 | cpu: [arm] 441 | os: [linux] 442 | 443 | '@rollup/rollup-linux-arm64-gnu@4.18.0': 444 | resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} 445 | cpu: [arm64] 446 | os: [linux] 447 | 448 | '@rollup/rollup-linux-arm64-musl@4.18.0': 449 | resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} 450 | cpu: [arm64] 451 | os: [linux] 452 | 453 | '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': 454 | resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} 455 | cpu: [ppc64] 456 | os: [linux] 457 | 458 | '@rollup/rollup-linux-riscv64-gnu@4.18.0': 459 | resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} 460 | cpu: [riscv64] 461 | os: [linux] 462 | 463 | '@rollup/rollup-linux-s390x-gnu@4.18.0': 464 | resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} 465 | cpu: [s390x] 466 | os: [linux] 467 | 468 | '@rollup/rollup-linux-x64-gnu@4.18.0': 469 | resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} 470 | cpu: [x64] 471 | os: [linux] 472 | 473 | '@rollup/rollup-linux-x64-musl@4.18.0': 474 | resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} 475 | cpu: [x64] 476 | os: [linux] 477 | 478 | '@rollup/rollup-win32-arm64-msvc@4.18.0': 479 | resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} 480 | cpu: [arm64] 481 | os: [win32] 482 | 483 | '@rollup/rollup-win32-ia32-msvc@4.18.0': 484 | resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} 485 | cpu: [ia32] 486 | os: [win32] 487 | 488 | '@rollup/rollup-win32-x64-msvc@4.18.0': 489 | resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} 490 | cpu: [x64] 491 | os: [win32] 492 | 493 | '@tanstack/query-core@5.49.1': 494 | resolution: {integrity: sha512-JnC9ndmD1KKS01Rt/ovRUB1tmwO7zkyXAyIxN9mznuJrcNtOrkmOnQqdJF2ib9oHzc2VxHomnEG7xyfo54Npkw==} 495 | 496 | '@tanstack/react-query@5.49.2': 497 | resolution: {integrity: sha512-6rfwXDK9BvmHISbNFuGd+wY3P44lyW7lWiA9vIFGT/T0P9aHD1VkjTvcM4SDAIbAQ9ygEZZoLt7dlU1o3NjMVA==} 498 | peerDependencies: 499 | react: ^18.0.0 500 | 501 | '@tauri-apps/api@2.0.0-beta.13': 502 | resolution: {integrity: sha512-Np1opKANzRMF3lgJ9gDquBCB9SxlE2lRmNpVx1+L6RyzAmigkuh0ZulT5jMnDA3JLsuSDU135r/s4t/Pmx4atg==} 503 | engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} 504 | 505 | '@tauri-apps/cli-darwin-arm64@2.0.0-beta.20': 506 | resolution: {integrity: sha512-oCJOCib7GuYkwkBXx+ekamR8NZZU+2i3MLP+DHpDxK5gS2uhCE+CBkamJkNt6y1x6xdVnwyqZOm5RvN4SRtyIA==} 507 | engines: {node: '>= 10'} 508 | cpu: [arm64] 509 | os: [darwin] 510 | 511 | '@tauri-apps/cli-darwin-x64@2.0.0-beta.20': 512 | resolution: {integrity: sha512-lC5QSnRExedYN4Ds6ZlSvC2PxP8qfIYBJQ5ktf+PJI5gQALdNeVtd6YnTG1ODCEklfLq9WKkGwp7JdALTU5wDA==} 513 | engines: {node: '>= 10'} 514 | cpu: [x64] 515 | os: [darwin] 516 | 517 | '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.20': 518 | resolution: {integrity: sha512-nZCeBMHHye5DLOJV5k2w658hnCS+LYaOZ8y/G9l3ei+g0L/HBjlSy6r4simsAT5TG8+l3oCZzLBngfTMdDS/YA==} 519 | engines: {node: '>= 10'} 520 | cpu: [arm] 521 | os: [linux] 522 | 523 | '@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.20': 524 | resolution: {integrity: sha512-B79ISVLPVBgwnCchVqwTKU+vxnFYqxKomcR4rmsvxfs0NVtT5QuNzE1k4NUQnw3966yjwhYR3mnHsSJQSB4Eyw==} 525 | engines: {node: '>= 10'} 526 | cpu: [arm64] 527 | os: [linux] 528 | 529 | '@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.20': 530 | resolution: {integrity: sha512-ojIkv/1uZHhcrgfIN8xgn4BBeo/Xg+bnV0wer6lD78zyxkUMWeEZ+u3mae1ejCJNhhaZOxNaUQ67MvDOiGyr5Q==} 531 | engines: {node: '>= 10'} 532 | cpu: [arm64] 533 | os: [linux] 534 | 535 | '@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.20': 536 | resolution: {integrity: sha512-xBy1FNbHKlc7T6pOmFQQPECxJaI5A9QWX7Kb9N64cNVusoOGlvc3xHYkXMS4PTr7xXOT0yiE1Ww2OwDRJ3lYsg==} 537 | engines: {node: '>= 10'} 538 | cpu: [x64] 539 | os: [linux] 540 | 541 | '@tauri-apps/cli-linux-x64-musl@2.0.0-beta.20': 542 | resolution: {integrity: sha512-+O6zq5jmtUxA1FUAAwF2ywPysy4NRo2Y6G+ESZDkY9XosRwdt5OUjqAsYktZA3AxDMZVei8r9buwTqUwi9ny/g==} 543 | engines: {node: '>= 10'} 544 | cpu: [x64] 545 | os: [linux] 546 | 547 | '@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.20': 548 | resolution: {integrity: sha512-RswgMbWyOQcv53CHvIuiuhAh4kKDqaGyZfWD4VlxqX/XhkoF5gsNgr0MxzrY7pmoL+89oVI+fiGVJz4nOQE5vA==} 549 | engines: {node: '>= 10'} 550 | cpu: [arm64] 551 | os: [win32] 552 | 553 | '@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.20': 554 | resolution: {integrity: sha512-5lgWmDVXhX3SBGbiv5SduM1yajiRnUEJClWhSdRrEEJeXdsxpCsBEhxYnUnDCEzPKxLLn5fdBv3VrVctJ03csQ==} 555 | engines: {node: '>= 10'} 556 | cpu: [ia32] 557 | os: [win32] 558 | 559 | '@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.20': 560 | resolution: {integrity: sha512-SuSiiVQTQPSzWlsxQp/NMzWbzDS9TdVDOw7CCfgiG5wnT2GsxzrcIAVN6i7ILsVFLxrjr0bIgPldSJcdcH84Yw==} 561 | engines: {node: '>= 10'} 562 | cpu: [x64] 563 | os: [win32] 564 | 565 | '@tauri-apps/cli@2.0.0-beta.20': 566 | resolution: {integrity: sha512-707q9uIc2oNrYHd2dtMvxTrpZXVpart5EIktnRymNOpphkLlB6WUBjHD+ga45WqTU6cNGKbYvkKqTNfshNul9Q==} 567 | engines: {node: '>= 10'} 568 | hasBin: true 569 | 570 | '@tauri-apps/plugin-shell@2.0.0-beta.6': 571 | resolution: {integrity: sha512-g3nM9cQQGl7Iv4MvyFuco/aPTiwOI/MixcoKso3VQIg5Aqd64NqR0r+GfsB0qx52txItqzSXwmeaj1eZjO9Q6Q==} 572 | 573 | '@types/babel__core@7.20.5': 574 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 575 | 576 | '@types/babel__generator@7.6.8': 577 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} 578 | 579 | '@types/babel__template@7.4.4': 580 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 581 | 582 | '@types/babel__traverse@7.20.6': 583 | resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} 584 | 585 | '@types/estree@1.0.5': 586 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 587 | 588 | '@types/prop-types@15.7.12': 589 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} 590 | 591 | '@types/react-dom@18.3.0': 592 | resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} 593 | 594 | '@types/react@18.3.3': 595 | resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} 596 | 597 | '@vitejs/plugin-react@4.3.1': 598 | resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} 599 | engines: {node: ^14.18.0 || >=16.0.0} 600 | peerDependencies: 601 | vite: ^4.2.0 || ^5.0.0 602 | 603 | ansi-regex@5.0.1: 604 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 605 | engines: {node: '>=8'} 606 | 607 | ansi-regex@6.0.1: 608 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 609 | engines: {node: '>=12'} 610 | 611 | ansi-styles@3.2.1: 612 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 613 | engines: {node: '>=4'} 614 | 615 | ansi-styles@4.3.0: 616 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 617 | engines: {node: '>=8'} 618 | 619 | ansi-styles@6.2.1: 620 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 621 | engines: {node: '>=12'} 622 | 623 | any-promise@1.3.0: 624 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 625 | 626 | anymatch@3.1.3: 627 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 628 | engines: {node: '>= 8'} 629 | 630 | arg@5.0.2: 631 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 632 | 633 | autoprefixer@10.4.19: 634 | resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} 635 | engines: {node: ^10 || ^12 || >=14} 636 | hasBin: true 637 | peerDependencies: 638 | postcss: ^8.1.0 639 | 640 | balanced-match@1.0.2: 641 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 642 | 643 | binary-extensions@2.3.0: 644 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 645 | engines: {node: '>=8'} 646 | 647 | brace-expansion@2.0.1: 648 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 649 | 650 | braces@3.0.3: 651 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 652 | engines: {node: '>=8'} 653 | 654 | browserslist@4.23.1: 655 | resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} 656 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 657 | hasBin: true 658 | 659 | camelcase-css@2.0.1: 660 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 661 | engines: {node: '>= 6'} 662 | 663 | caniuse-lite@1.0.30001638: 664 | resolution: {integrity: sha512-5SuJUJ7cZnhPpeLHaH0c/HPAnAHZvS6ElWyHK9GSIbVOQABLzowiI2pjmpvZ1WEbkyz46iFd4UXlOHR5SqgfMQ==} 665 | 666 | chalk@2.4.2: 667 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 668 | engines: {node: '>=4'} 669 | 670 | chokidar@3.6.0: 671 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 672 | engines: {node: '>= 8.10.0'} 673 | 674 | class-variance-authority@0.7.0: 675 | resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} 676 | 677 | clsx@2.0.0: 678 | resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} 679 | engines: {node: '>=6'} 680 | 681 | clsx@2.1.1: 682 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 683 | engines: {node: '>=6'} 684 | 685 | color-convert@1.9.3: 686 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 687 | 688 | color-convert@2.0.1: 689 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 690 | engines: {node: '>=7.0.0'} 691 | 692 | color-name@1.1.3: 693 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 694 | 695 | color-name@1.1.4: 696 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 697 | 698 | commander@4.1.1: 699 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 700 | engines: {node: '>= 6'} 701 | 702 | convert-source-map@2.0.0: 703 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 704 | 705 | cross-spawn@7.0.3: 706 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 707 | engines: {node: '>= 8'} 708 | 709 | cssesc@3.0.0: 710 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 711 | engines: {node: '>=4'} 712 | hasBin: true 713 | 714 | csstype@3.1.3: 715 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 716 | 717 | debug@4.3.5: 718 | resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} 719 | engines: {node: '>=6.0'} 720 | peerDependencies: 721 | supports-color: '*' 722 | peerDependenciesMeta: 723 | supports-color: 724 | optional: true 725 | 726 | didyoumean@1.2.2: 727 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 728 | 729 | dlv@1.1.3: 730 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 731 | 732 | eastasianwidth@0.2.0: 733 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 734 | 735 | electron-to-chromium@1.4.815: 736 | resolution: {integrity: sha512-OvpTT2ItpOXJL7IGcYakRjHCt8L5GrrN/wHCQsRB4PQa1X9fe+X9oen245mIId7s14xvArCGSTIq644yPUKKLg==} 737 | 738 | emoji-regex@8.0.0: 739 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 740 | 741 | emoji-regex@9.2.2: 742 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 743 | 744 | esbuild@0.21.5: 745 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 746 | engines: {node: '>=12'} 747 | hasBin: true 748 | 749 | escalade@3.1.2: 750 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 751 | engines: {node: '>=6'} 752 | 753 | escape-string-regexp@1.0.5: 754 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 755 | engines: {node: '>=0.8.0'} 756 | 757 | fast-glob@3.3.2: 758 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 759 | engines: {node: '>=8.6.0'} 760 | 761 | fastq@1.17.1: 762 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 763 | 764 | fill-range@7.1.1: 765 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 766 | engines: {node: '>=8'} 767 | 768 | foreground-child@3.2.1: 769 | resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} 770 | engines: {node: '>=14'} 771 | 772 | fraction.js@4.3.7: 773 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} 774 | 775 | fsevents@2.3.3: 776 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 777 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 778 | os: [darwin] 779 | 780 | function-bind@1.1.2: 781 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 782 | 783 | gensync@1.0.0-beta.2: 784 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 785 | engines: {node: '>=6.9.0'} 786 | 787 | glob-parent@5.1.2: 788 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 789 | engines: {node: '>= 6'} 790 | 791 | glob-parent@6.0.2: 792 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 793 | engines: {node: '>=10.13.0'} 794 | 795 | glob@10.4.2: 796 | resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} 797 | engines: {node: '>=16 || 14 >=14.18'} 798 | hasBin: true 799 | 800 | globals@11.12.0: 801 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 802 | engines: {node: '>=4'} 803 | 804 | globrex@0.1.2: 805 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 806 | 807 | has-flag@3.0.0: 808 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 809 | engines: {node: '>=4'} 810 | 811 | hasown@2.0.2: 812 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 813 | engines: {node: '>= 0.4'} 814 | 815 | is-binary-path@2.1.0: 816 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 817 | engines: {node: '>=8'} 818 | 819 | is-core-module@2.14.0: 820 | resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} 821 | engines: {node: '>= 0.4'} 822 | 823 | is-extglob@2.1.1: 824 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 825 | engines: {node: '>=0.10.0'} 826 | 827 | is-fullwidth-code-point@3.0.0: 828 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 829 | engines: {node: '>=8'} 830 | 831 | is-glob@4.0.3: 832 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 833 | engines: {node: '>=0.10.0'} 834 | 835 | is-number@7.0.0: 836 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 837 | engines: {node: '>=0.12.0'} 838 | 839 | isexe@2.0.0: 840 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 841 | 842 | jackspeak@3.4.0: 843 | resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} 844 | engines: {node: '>=14'} 845 | 846 | jiti@1.21.6: 847 | resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} 848 | hasBin: true 849 | 850 | js-tokens@4.0.0: 851 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 852 | 853 | jsesc@2.5.2: 854 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 855 | engines: {node: '>=4'} 856 | hasBin: true 857 | 858 | json5@2.2.3: 859 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 860 | engines: {node: '>=6'} 861 | hasBin: true 862 | 863 | lilconfig@2.1.0: 864 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 865 | engines: {node: '>=10'} 866 | 867 | lilconfig@3.1.2: 868 | resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} 869 | engines: {node: '>=14'} 870 | 871 | lines-and-columns@1.2.4: 872 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 873 | 874 | loose-envify@1.4.0: 875 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 876 | hasBin: true 877 | 878 | lru-cache@10.3.0: 879 | resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==} 880 | engines: {node: 14 || >=16.14} 881 | 882 | lru-cache@5.1.1: 883 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 884 | 885 | merge2@1.4.1: 886 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 887 | engines: {node: '>= 8'} 888 | 889 | micromatch@4.0.7: 890 | resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} 891 | engines: {node: '>=8.6'} 892 | 893 | minimatch@9.0.5: 894 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 895 | engines: {node: '>=16 || 14 >=14.17'} 896 | 897 | minipass@7.1.2: 898 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 899 | engines: {node: '>=16 || 14 >=14.17'} 900 | 901 | ms@2.1.2: 902 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 903 | 904 | mz@2.7.0: 905 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 906 | 907 | nanoid@3.3.7: 908 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 909 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 910 | hasBin: true 911 | 912 | node-releases@2.0.14: 913 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 914 | 915 | normalize-path@3.0.0: 916 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 917 | engines: {node: '>=0.10.0'} 918 | 919 | normalize-range@0.1.2: 920 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 921 | engines: {node: '>=0.10.0'} 922 | 923 | object-assign@4.1.1: 924 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 925 | engines: {node: '>=0.10.0'} 926 | 927 | object-hash@3.0.0: 928 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 929 | engines: {node: '>= 6'} 930 | 931 | package-json-from-dist@1.0.0: 932 | resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} 933 | 934 | path-key@3.1.1: 935 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 936 | engines: {node: '>=8'} 937 | 938 | path-parse@1.0.7: 939 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 940 | 941 | path-scurry@1.11.1: 942 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 943 | engines: {node: '>=16 || 14 >=14.18'} 944 | 945 | picocolors@1.0.1: 946 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 947 | 948 | picomatch@2.3.1: 949 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 950 | engines: {node: '>=8.6'} 951 | 952 | pify@2.3.0: 953 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 954 | engines: {node: '>=0.10.0'} 955 | 956 | pirates@4.0.6: 957 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 958 | engines: {node: '>= 6'} 959 | 960 | postcss-import@15.1.0: 961 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 962 | engines: {node: '>=14.0.0'} 963 | peerDependencies: 964 | postcss: ^8.0.0 965 | 966 | postcss-js@4.0.1: 967 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 968 | engines: {node: ^12 || ^14 || >= 16} 969 | peerDependencies: 970 | postcss: ^8.4.21 971 | 972 | postcss-load-config@4.0.2: 973 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 974 | engines: {node: '>= 14'} 975 | peerDependencies: 976 | postcss: '>=8.0.9' 977 | ts-node: '>=9.0.0' 978 | peerDependenciesMeta: 979 | postcss: 980 | optional: true 981 | ts-node: 982 | optional: true 983 | 984 | postcss-nested@6.0.1: 985 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} 986 | engines: {node: '>=12.0'} 987 | peerDependencies: 988 | postcss: ^8.2.14 989 | 990 | postcss-selector-parser@6.1.0: 991 | resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} 992 | engines: {node: '>=4'} 993 | 994 | postcss-value-parser@4.2.0: 995 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 996 | 997 | postcss@8.4.39: 998 | resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} 999 | engines: {node: ^10 || ^12 || >=14} 1000 | 1001 | prettier-plugin-tailwindcss@0.6.5: 1002 | resolution: {integrity: sha512-axfeOArc/RiGHjOIy9HytehlC0ZLeMaqY09mm8YCkMzznKiDkwFzOpBvtuhuv3xG5qB73+Mj7OCe2j/L1ryfuQ==} 1003 | engines: {node: '>=14.21.3'} 1004 | peerDependencies: 1005 | '@ianvs/prettier-plugin-sort-imports': '*' 1006 | '@prettier/plugin-pug': '*' 1007 | '@shopify/prettier-plugin-liquid': '*' 1008 | '@trivago/prettier-plugin-sort-imports': '*' 1009 | '@zackad/prettier-plugin-twig-melody': '*' 1010 | prettier: ^3.0 1011 | prettier-plugin-astro: '*' 1012 | prettier-plugin-css-order: '*' 1013 | prettier-plugin-import-sort: '*' 1014 | prettier-plugin-jsdoc: '*' 1015 | prettier-plugin-marko: '*' 1016 | prettier-plugin-organize-attributes: '*' 1017 | prettier-plugin-organize-imports: '*' 1018 | prettier-plugin-sort-imports: '*' 1019 | prettier-plugin-style-order: '*' 1020 | prettier-plugin-svelte: '*' 1021 | peerDependenciesMeta: 1022 | '@ianvs/prettier-plugin-sort-imports': 1023 | optional: true 1024 | '@prettier/plugin-pug': 1025 | optional: true 1026 | '@shopify/prettier-plugin-liquid': 1027 | optional: true 1028 | '@trivago/prettier-plugin-sort-imports': 1029 | optional: true 1030 | '@zackad/prettier-plugin-twig-melody': 1031 | optional: true 1032 | prettier-plugin-astro: 1033 | optional: true 1034 | prettier-plugin-css-order: 1035 | optional: true 1036 | prettier-plugin-import-sort: 1037 | optional: true 1038 | prettier-plugin-jsdoc: 1039 | optional: true 1040 | prettier-plugin-marko: 1041 | optional: true 1042 | prettier-plugin-organize-attributes: 1043 | optional: true 1044 | prettier-plugin-organize-imports: 1045 | optional: true 1046 | prettier-plugin-sort-imports: 1047 | optional: true 1048 | prettier-plugin-style-order: 1049 | optional: true 1050 | prettier-plugin-svelte: 1051 | optional: true 1052 | 1053 | prettier@3.3.2: 1054 | resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} 1055 | engines: {node: '>=14'} 1056 | hasBin: true 1057 | 1058 | queue-microtask@1.2.3: 1059 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1060 | 1061 | react-dom@18.3.1: 1062 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 1063 | peerDependencies: 1064 | react: ^18.3.1 1065 | 1066 | react-refresh@0.14.2: 1067 | resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} 1068 | engines: {node: '>=0.10.0'} 1069 | 1070 | react-router-dom@6.24.0: 1071 | resolution: {integrity: sha512-960sKuau6/yEwS8e+NVEidYQb1hNjAYM327gjEyXlc6r3Skf2vtwuJ2l7lssdegD2YjoKG5l8MsVyeTDlVeY8g==} 1072 | engines: {node: '>=14.0.0'} 1073 | peerDependencies: 1074 | react: '>=16.8' 1075 | react-dom: '>=16.8' 1076 | 1077 | react-router@6.24.0: 1078 | resolution: {integrity: sha512-sQrgJ5bXk7vbcC4BxQxeNa5UmboFm35we1AFK0VvQaz9g0LzxEIuLOhHIoZ8rnu9BO21ishGeL9no1WB76W/eg==} 1079 | engines: {node: '>=14.0.0'} 1080 | peerDependencies: 1081 | react: '>=16.8' 1082 | 1083 | react@18.3.1: 1084 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 1085 | engines: {node: '>=0.10.0'} 1086 | 1087 | read-cache@1.0.0: 1088 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 1089 | 1090 | readdirp@3.6.0: 1091 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1092 | engines: {node: '>=8.10.0'} 1093 | 1094 | regenerator-runtime@0.14.1: 1095 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1096 | 1097 | resolve@1.22.8: 1098 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 1099 | hasBin: true 1100 | 1101 | reusify@1.0.4: 1102 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1103 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1104 | 1105 | rollup@4.18.0: 1106 | resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} 1107 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1108 | hasBin: true 1109 | 1110 | run-parallel@1.2.0: 1111 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1112 | 1113 | scheduler@0.23.2: 1114 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 1115 | 1116 | semver@6.3.1: 1117 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1118 | hasBin: true 1119 | 1120 | shebang-command@2.0.0: 1121 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1122 | engines: {node: '>=8'} 1123 | 1124 | shebang-regex@3.0.0: 1125 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1126 | engines: {node: '>=8'} 1127 | 1128 | signal-exit@4.1.0: 1129 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1130 | engines: {node: '>=14'} 1131 | 1132 | source-map-js@1.2.0: 1133 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1134 | engines: {node: '>=0.10.0'} 1135 | 1136 | string-width@4.2.3: 1137 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1138 | engines: {node: '>=8'} 1139 | 1140 | string-width@5.1.2: 1141 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1142 | engines: {node: '>=12'} 1143 | 1144 | strip-ansi@6.0.1: 1145 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1146 | engines: {node: '>=8'} 1147 | 1148 | strip-ansi@7.1.0: 1149 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1150 | engines: {node: '>=12'} 1151 | 1152 | sucrase@3.35.0: 1153 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 1154 | engines: {node: '>=16 || 14 >=14.17'} 1155 | hasBin: true 1156 | 1157 | supports-color@5.5.0: 1158 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1159 | engines: {node: '>=4'} 1160 | 1161 | supports-preserve-symlinks-flag@1.0.0: 1162 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1163 | engines: {node: '>= 0.4'} 1164 | 1165 | tailwind-merge@2.3.0: 1166 | resolution: {integrity: sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==} 1167 | 1168 | tailwind-variants@0.2.1: 1169 | resolution: {integrity: sha512-2xmhAf4UIc3PijOUcJPA1LP4AbxhpcHuHM2C26xM0k81r0maAO6uoUSHl3APmvHZcY5cZCY/bYuJdfFa4eGoaw==} 1170 | engines: {node: '>=16.x', pnpm: '>=7.x'} 1171 | peerDependencies: 1172 | tailwindcss: '*' 1173 | 1174 | tailwindcss-animate@1.0.7: 1175 | resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} 1176 | peerDependencies: 1177 | tailwindcss: '>=3.0.0 || insiders' 1178 | 1179 | tailwindcss@3.4.4: 1180 | resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} 1181 | engines: {node: '>=14.0.0'} 1182 | hasBin: true 1183 | 1184 | thenify-all@1.6.0: 1185 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1186 | engines: {node: '>=0.8'} 1187 | 1188 | thenify@3.3.1: 1189 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1190 | 1191 | to-fast-properties@2.0.0: 1192 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1193 | engines: {node: '>=4'} 1194 | 1195 | to-regex-range@5.0.1: 1196 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1197 | engines: {node: '>=8.0'} 1198 | 1199 | ts-interface-checker@0.1.13: 1200 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1201 | 1202 | tsconfck@3.1.1: 1203 | resolution: {integrity: sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==} 1204 | engines: {node: ^18 || >=20} 1205 | hasBin: true 1206 | peerDependencies: 1207 | typescript: ^5.0.0 1208 | peerDependenciesMeta: 1209 | typescript: 1210 | optional: true 1211 | 1212 | typescript@5.5.2: 1213 | resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} 1214 | engines: {node: '>=14.17'} 1215 | hasBin: true 1216 | 1217 | update-browserslist-db@1.0.16: 1218 | resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} 1219 | hasBin: true 1220 | peerDependencies: 1221 | browserslist: '>= 4.21.0' 1222 | 1223 | util-deprecate@1.0.2: 1224 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1225 | 1226 | vite-tsconfig-paths@4.3.2: 1227 | resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} 1228 | peerDependencies: 1229 | vite: '*' 1230 | peerDependenciesMeta: 1231 | vite: 1232 | optional: true 1233 | 1234 | vite@5.3.2: 1235 | resolution: {integrity: sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==} 1236 | engines: {node: ^18.0.0 || >=20.0.0} 1237 | hasBin: true 1238 | peerDependencies: 1239 | '@types/node': ^18.0.0 || >=20.0.0 1240 | less: '*' 1241 | lightningcss: ^1.21.0 1242 | sass: '*' 1243 | stylus: '*' 1244 | sugarss: '*' 1245 | terser: ^5.4.0 1246 | peerDependenciesMeta: 1247 | '@types/node': 1248 | optional: true 1249 | less: 1250 | optional: true 1251 | lightningcss: 1252 | optional: true 1253 | sass: 1254 | optional: true 1255 | stylus: 1256 | optional: true 1257 | sugarss: 1258 | optional: true 1259 | terser: 1260 | optional: true 1261 | 1262 | which@2.0.2: 1263 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1264 | engines: {node: '>= 8'} 1265 | hasBin: true 1266 | 1267 | wrap-ansi@7.0.0: 1268 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1269 | engines: {node: '>=10'} 1270 | 1271 | wrap-ansi@8.1.0: 1272 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1273 | engines: {node: '>=12'} 1274 | 1275 | yallist@3.1.1: 1276 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1277 | 1278 | yaml@2.4.5: 1279 | resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} 1280 | engines: {node: '>= 14'} 1281 | hasBin: true 1282 | 1283 | snapshots: 1284 | 1285 | '@alloc/quick-lru@5.2.0': {} 1286 | 1287 | '@ampproject/remapping@2.3.0': 1288 | dependencies: 1289 | '@jridgewell/gen-mapping': 0.3.5 1290 | '@jridgewell/trace-mapping': 0.3.25 1291 | 1292 | '@babel/code-frame@7.24.7': 1293 | dependencies: 1294 | '@babel/highlight': 7.24.7 1295 | picocolors: 1.0.1 1296 | 1297 | '@babel/compat-data@7.24.7': {} 1298 | 1299 | '@babel/core@7.24.7': 1300 | dependencies: 1301 | '@ampproject/remapping': 2.3.0 1302 | '@babel/code-frame': 7.24.7 1303 | '@babel/generator': 7.24.7 1304 | '@babel/helper-compilation-targets': 7.24.7 1305 | '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) 1306 | '@babel/helpers': 7.24.7 1307 | '@babel/parser': 7.24.7 1308 | '@babel/template': 7.24.7 1309 | '@babel/traverse': 7.24.7 1310 | '@babel/types': 7.24.7 1311 | convert-source-map: 2.0.0 1312 | debug: 4.3.5 1313 | gensync: 1.0.0-beta.2 1314 | json5: 2.2.3 1315 | semver: 6.3.1 1316 | transitivePeerDependencies: 1317 | - supports-color 1318 | 1319 | '@babel/generator@7.24.7': 1320 | dependencies: 1321 | '@babel/types': 7.24.7 1322 | '@jridgewell/gen-mapping': 0.3.5 1323 | '@jridgewell/trace-mapping': 0.3.25 1324 | jsesc: 2.5.2 1325 | 1326 | '@babel/helper-compilation-targets@7.24.7': 1327 | dependencies: 1328 | '@babel/compat-data': 7.24.7 1329 | '@babel/helper-validator-option': 7.24.7 1330 | browserslist: 4.23.1 1331 | lru-cache: 5.1.1 1332 | semver: 6.3.1 1333 | 1334 | '@babel/helper-environment-visitor@7.24.7': 1335 | dependencies: 1336 | '@babel/types': 7.24.7 1337 | 1338 | '@babel/helper-function-name@7.24.7': 1339 | dependencies: 1340 | '@babel/template': 7.24.7 1341 | '@babel/types': 7.24.7 1342 | 1343 | '@babel/helper-hoist-variables@7.24.7': 1344 | dependencies: 1345 | '@babel/types': 7.24.7 1346 | 1347 | '@babel/helper-module-imports@7.24.7': 1348 | dependencies: 1349 | '@babel/traverse': 7.24.7 1350 | '@babel/types': 7.24.7 1351 | transitivePeerDependencies: 1352 | - supports-color 1353 | 1354 | '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': 1355 | dependencies: 1356 | '@babel/core': 7.24.7 1357 | '@babel/helper-environment-visitor': 7.24.7 1358 | '@babel/helper-module-imports': 7.24.7 1359 | '@babel/helper-simple-access': 7.24.7 1360 | '@babel/helper-split-export-declaration': 7.24.7 1361 | '@babel/helper-validator-identifier': 7.24.7 1362 | transitivePeerDependencies: 1363 | - supports-color 1364 | 1365 | '@babel/helper-plugin-utils@7.24.7': {} 1366 | 1367 | '@babel/helper-simple-access@7.24.7': 1368 | dependencies: 1369 | '@babel/traverse': 7.24.7 1370 | '@babel/types': 7.24.7 1371 | transitivePeerDependencies: 1372 | - supports-color 1373 | 1374 | '@babel/helper-split-export-declaration@7.24.7': 1375 | dependencies: 1376 | '@babel/types': 7.24.7 1377 | 1378 | '@babel/helper-string-parser@7.24.7': {} 1379 | 1380 | '@babel/helper-validator-identifier@7.24.7': {} 1381 | 1382 | '@babel/helper-validator-option@7.24.7': {} 1383 | 1384 | '@babel/helpers@7.24.7': 1385 | dependencies: 1386 | '@babel/template': 7.24.7 1387 | '@babel/types': 7.24.7 1388 | 1389 | '@babel/highlight@7.24.7': 1390 | dependencies: 1391 | '@babel/helper-validator-identifier': 7.24.7 1392 | chalk: 2.4.2 1393 | js-tokens: 4.0.0 1394 | picocolors: 1.0.1 1395 | 1396 | '@babel/parser@7.24.7': 1397 | dependencies: 1398 | '@babel/types': 7.24.7 1399 | 1400 | '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7)': 1401 | dependencies: 1402 | '@babel/core': 7.24.7 1403 | '@babel/helper-plugin-utils': 7.24.7 1404 | 1405 | '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.7)': 1406 | dependencies: 1407 | '@babel/core': 7.24.7 1408 | '@babel/helper-plugin-utils': 7.24.7 1409 | 1410 | '@babel/runtime@7.24.7': 1411 | dependencies: 1412 | regenerator-runtime: 0.14.1 1413 | 1414 | '@babel/template@7.24.7': 1415 | dependencies: 1416 | '@babel/code-frame': 7.24.7 1417 | '@babel/parser': 7.24.7 1418 | '@babel/types': 7.24.7 1419 | 1420 | '@babel/traverse@7.24.7': 1421 | dependencies: 1422 | '@babel/code-frame': 7.24.7 1423 | '@babel/generator': 7.24.7 1424 | '@babel/helper-environment-visitor': 7.24.7 1425 | '@babel/helper-function-name': 7.24.7 1426 | '@babel/helper-hoist-variables': 7.24.7 1427 | '@babel/helper-split-export-declaration': 7.24.7 1428 | '@babel/parser': 7.24.7 1429 | '@babel/types': 7.24.7 1430 | debug: 4.3.5 1431 | globals: 11.12.0 1432 | transitivePeerDependencies: 1433 | - supports-color 1434 | 1435 | '@babel/types@7.24.7': 1436 | dependencies: 1437 | '@babel/helper-string-parser': 7.24.7 1438 | '@babel/helper-validator-identifier': 7.24.7 1439 | to-fast-properties: 2.0.0 1440 | 1441 | '@esbuild/aix-ppc64@0.21.5': 1442 | optional: true 1443 | 1444 | '@esbuild/android-arm64@0.21.5': 1445 | optional: true 1446 | 1447 | '@esbuild/android-arm@0.21.5': 1448 | optional: true 1449 | 1450 | '@esbuild/android-x64@0.21.5': 1451 | optional: true 1452 | 1453 | '@esbuild/darwin-arm64@0.21.5': 1454 | optional: true 1455 | 1456 | '@esbuild/darwin-x64@0.21.5': 1457 | optional: true 1458 | 1459 | '@esbuild/freebsd-arm64@0.21.5': 1460 | optional: true 1461 | 1462 | '@esbuild/freebsd-x64@0.21.5': 1463 | optional: true 1464 | 1465 | '@esbuild/linux-arm64@0.21.5': 1466 | optional: true 1467 | 1468 | '@esbuild/linux-arm@0.21.5': 1469 | optional: true 1470 | 1471 | '@esbuild/linux-ia32@0.21.5': 1472 | optional: true 1473 | 1474 | '@esbuild/linux-loong64@0.21.5': 1475 | optional: true 1476 | 1477 | '@esbuild/linux-mips64el@0.21.5': 1478 | optional: true 1479 | 1480 | '@esbuild/linux-ppc64@0.21.5': 1481 | optional: true 1482 | 1483 | '@esbuild/linux-riscv64@0.21.5': 1484 | optional: true 1485 | 1486 | '@esbuild/linux-s390x@0.21.5': 1487 | optional: true 1488 | 1489 | '@esbuild/linux-x64@0.21.5': 1490 | optional: true 1491 | 1492 | '@esbuild/netbsd-x64@0.21.5': 1493 | optional: true 1494 | 1495 | '@esbuild/openbsd-x64@0.21.5': 1496 | optional: true 1497 | 1498 | '@esbuild/sunos-x64@0.21.5': 1499 | optional: true 1500 | 1501 | '@esbuild/win32-arm64@0.21.5': 1502 | optional: true 1503 | 1504 | '@esbuild/win32-ia32@0.21.5': 1505 | optional: true 1506 | 1507 | '@esbuild/win32-x64@0.21.5': 1508 | optional: true 1509 | 1510 | '@fontsource-variable/dm-sans@5.0.6': {} 1511 | 1512 | '@isaacs/cliui@8.0.2': 1513 | dependencies: 1514 | string-width: 5.1.2 1515 | string-width-cjs: string-width@4.2.3 1516 | strip-ansi: 7.1.0 1517 | strip-ansi-cjs: strip-ansi@6.0.1 1518 | wrap-ansi: 8.1.0 1519 | wrap-ansi-cjs: wrap-ansi@7.0.0 1520 | 1521 | '@jridgewell/gen-mapping@0.3.5': 1522 | dependencies: 1523 | '@jridgewell/set-array': 1.2.1 1524 | '@jridgewell/sourcemap-codec': 1.4.15 1525 | '@jridgewell/trace-mapping': 0.3.25 1526 | 1527 | '@jridgewell/resolve-uri@3.1.2': {} 1528 | 1529 | '@jridgewell/set-array@1.2.1': {} 1530 | 1531 | '@jridgewell/sourcemap-codec@1.4.15': {} 1532 | 1533 | '@jridgewell/trace-mapping@0.3.25': 1534 | dependencies: 1535 | '@jridgewell/resolve-uri': 3.1.2 1536 | '@jridgewell/sourcemap-codec': 1.4.15 1537 | 1538 | '@nodelib/fs.scandir@2.1.5': 1539 | dependencies: 1540 | '@nodelib/fs.stat': 2.0.5 1541 | run-parallel: 1.2.0 1542 | 1543 | '@nodelib/fs.stat@2.0.5': {} 1544 | 1545 | '@nodelib/fs.walk@1.2.8': 1546 | dependencies: 1547 | '@nodelib/fs.scandir': 2.1.5 1548 | fastq: 1.17.1 1549 | 1550 | '@pkgjs/parseargs@0.11.0': 1551 | optional: true 1552 | 1553 | '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.3)(react@18.3.1)': 1554 | dependencies: 1555 | react: 18.3.1 1556 | optionalDependencies: 1557 | '@types/react': 18.3.3 1558 | 1559 | '@radix-ui/react-icons@1.3.0(react@18.3.1)': 1560 | dependencies: 1561 | react: 18.3.1 1562 | 1563 | '@radix-ui/react-slot@1.1.0(@types/react@18.3.3)(react@18.3.1)': 1564 | dependencies: 1565 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) 1566 | react: 18.3.1 1567 | optionalDependencies: 1568 | '@types/react': 18.3.3 1569 | 1570 | '@remix-run/router@1.17.0': {} 1571 | 1572 | '@rollup/rollup-android-arm-eabi@4.18.0': 1573 | optional: true 1574 | 1575 | '@rollup/rollup-android-arm64@4.18.0': 1576 | optional: true 1577 | 1578 | '@rollup/rollup-darwin-arm64@4.18.0': 1579 | optional: true 1580 | 1581 | '@rollup/rollup-darwin-x64@4.18.0': 1582 | optional: true 1583 | 1584 | '@rollup/rollup-linux-arm-gnueabihf@4.18.0': 1585 | optional: true 1586 | 1587 | '@rollup/rollup-linux-arm-musleabihf@4.18.0': 1588 | optional: true 1589 | 1590 | '@rollup/rollup-linux-arm64-gnu@4.18.0': 1591 | optional: true 1592 | 1593 | '@rollup/rollup-linux-arm64-musl@4.18.0': 1594 | optional: true 1595 | 1596 | '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': 1597 | optional: true 1598 | 1599 | '@rollup/rollup-linux-riscv64-gnu@4.18.0': 1600 | optional: true 1601 | 1602 | '@rollup/rollup-linux-s390x-gnu@4.18.0': 1603 | optional: true 1604 | 1605 | '@rollup/rollup-linux-x64-gnu@4.18.0': 1606 | optional: true 1607 | 1608 | '@rollup/rollup-linux-x64-musl@4.18.0': 1609 | optional: true 1610 | 1611 | '@rollup/rollup-win32-arm64-msvc@4.18.0': 1612 | optional: true 1613 | 1614 | '@rollup/rollup-win32-ia32-msvc@4.18.0': 1615 | optional: true 1616 | 1617 | '@rollup/rollup-win32-x64-msvc@4.18.0': 1618 | optional: true 1619 | 1620 | '@tanstack/query-core@5.49.1': {} 1621 | 1622 | '@tanstack/react-query@5.49.2(react@18.3.1)': 1623 | dependencies: 1624 | '@tanstack/query-core': 5.49.1 1625 | react: 18.3.1 1626 | 1627 | '@tauri-apps/api@2.0.0-beta.13': {} 1628 | 1629 | '@tauri-apps/cli-darwin-arm64@2.0.0-beta.20': 1630 | optional: true 1631 | 1632 | '@tauri-apps/cli-darwin-x64@2.0.0-beta.20': 1633 | optional: true 1634 | 1635 | '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.20': 1636 | optional: true 1637 | 1638 | '@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.20': 1639 | optional: true 1640 | 1641 | '@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.20': 1642 | optional: true 1643 | 1644 | '@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.20': 1645 | optional: true 1646 | 1647 | '@tauri-apps/cli-linux-x64-musl@2.0.0-beta.20': 1648 | optional: true 1649 | 1650 | '@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.20': 1651 | optional: true 1652 | 1653 | '@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.20': 1654 | optional: true 1655 | 1656 | '@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.20': 1657 | optional: true 1658 | 1659 | '@tauri-apps/cli@2.0.0-beta.20': 1660 | optionalDependencies: 1661 | '@tauri-apps/cli-darwin-arm64': 2.0.0-beta.20 1662 | '@tauri-apps/cli-darwin-x64': 2.0.0-beta.20 1663 | '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-beta.20 1664 | '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-beta.20 1665 | '@tauri-apps/cli-linux-arm64-musl': 2.0.0-beta.20 1666 | '@tauri-apps/cli-linux-x64-gnu': 2.0.0-beta.20 1667 | '@tauri-apps/cli-linux-x64-musl': 2.0.0-beta.20 1668 | '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-beta.20 1669 | '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-beta.20 1670 | '@tauri-apps/cli-win32-x64-msvc': 2.0.0-beta.20 1671 | 1672 | '@tauri-apps/plugin-shell@2.0.0-beta.6': 1673 | dependencies: 1674 | '@tauri-apps/api': 2.0.0-beta.13 1675 | 1676 | '@types/babel__core@7.20.5': 1677 | dependencies: 1678 | '@babel/parser': 7.24.7 1679 | '@babel/types': 7.24.7 1680 | '@types/babel__generator': 7.6.8 1681 | '@types/babel__template': 7.4.4 1682 | '@types/babel__traverse': 7.20.6 1683 | 1684 | '@types/babel__generator@7.6.8': 1685 | dependencies: 1686 | '@babel/types': 7.24.7 1687 | 1688 | '@types/babel__template@7.4.4': 1689 | dependencies: 1690 | '@babel/parser': 7.24.7 1691 | '@babel/types': 7.24.7 1692 | 1693 | '@types/babel__traverse@7.20.6': 1694 | dependencies: 1695 | '@babel/types': 7.24.7 1696 | 1697 | '@types/estree@1.0.5': {} 1698 | 1699 | '@types/prop-types@15.7.12': {} 1700 | 1701 | '@types/react-dom@18.3.0': 1702 | dependencies: 1703 | '@types/react': 18.3.3 1704 | 1705 | '@types/react@18.3.3': 1706 | dependencies: 1707 | '@types/prop-types': 15.7.12 1708 | csstype: 3.1.3 1709 | 1710 | '@vitejs/plugin-react@4.3.1(vite@5.3.2)': 1711 | dependencies: 1712 | '@babel/core': 7.24.7 1713 | '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) 1714 | '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) 1715 | '@types/babel__core': 7.20.5 1716 | react-refresh: 0.14.2 1717 | vite: 5.3.2 1718 | transitivePeerDependencies: 1719 | - supports-color 1720 | 1721 | ansi-regex@5.0.1: {} 1722 | 1723 | ansi-regex@6.0.1: {} 1724 | 1725 | ansi-styles@3.2.1: 1726 | dependencies: 1727 | color-convert: 1.9.3 1728 | 1729 | ansi-styles@4.3.0: 1730 | dependencies: 1731 | color-convert: 2.0.1 1732 | 1733 | ansi-styles@6.2.1: {} 1734 | 1735 | any-promise@1.3.0: {} 1736 | 1737 | anymatch@3.1.3: 1738 | dependencies: 1739 | normalize-path: 3.0.0 1740 | picomatch: 2.3.1 1741 | 1742 | arg@5.0.2: {} 1743 | 1744 | autoprefixer@10.4.19(postcss@8.4.39): 1745 | dependencies: 1746 | browserslist: 4.23.1 1747 | caniuse-lite: 1.0.30001638 1748 | fraction.js: 4.3.7 1749 | normalize-range: 0.1.2 1750 | picocolors: 1.0.1 1751 | postcss: 8.4.39 1752 | postcss-value-parser: 4.2.0 1753 | 1754 | balanced-match@1.0.2: {} 1755 | 1756 | binary-extensions@2.3.0: {} 1757 | 1758 | brace-expansion@2.0.1: 1759 | dependencies: 1760 | balanced-match: 1.0.2 1761 | 1762 | braces@3.0.3: 1763 | dependencies: 1764 | fill-range: 7.1.1 1765 | 1766 | browserslist@4.23.1: 1767 | dependencies: 1768 | caniuse-lite: 1.0.30001638 1769 | electron-to-chromium: 1.4.815 1770 | node-releases: 2.0.14 1771 | update-browserslist-db: 1.0.16(browserslist@4.23.1) 1772 | 1773 | camelcase-css@2.0.1: {} 1774 | 1775 | caniuse-lite@1.0.30001638: {} 1776 | 1777 | chalk@2.4.2: 1778 | dependencies: 1779 | ansi-styles: 3.2.1 1780 | escape-string-regexp: 1.0.5 1781 | supports-color: 5.5.0 1782 | 1783 | chokidar@3.6.0: 1784 | dependencies: 1785 | anymatch: 3.1.3 1786 | braces: 3.0.3 1787 | glob-parent: 5.1.2 1788 | is-binary-path: 2.1.0 1789 | is-glob: 4.0.3 1790 | normalize-path: 3.0.0 1791 | readdirp: 3.6.0 1792 | optionalDependencies: 1793 | fsevents: 2.3.3 1794 | 1795 | class-variance-authority@0.7.0: 1796 | dependencies: 1797 | clsx: 2.0.0 1798 | 1799 | clsx@2.0.0: {} 1800 | 1801 | clsx@2.1.1: {} 1802 | 1803 | color-convert@1.9.3: 1804 | dependencies: 1805 | color-name: 1.1.3 1806 | 1807 | color-convert@2.0.1: 1808 | dependencies: 1809 | color-name: 1.1.4 1810 | 1811 | color-name@1.1.3: {} 1812 | 1813 | color-name@1.1.4: {} 1814 | 1815 | commander@4.1.1: {} 1816 | 1817 | convert-source-map@2.0.0: {} 1818 | 1819 | cross-spawn@7.0.3: 1820 | dependencies: 1821 | path-key: 3.1.1 1822 | shebang-command: 2.0.0 1823 | which: 2.0.2 1824 | 1825 | cssesc@3.0.0: {} 1826 | 1827 | csstype@3.1.3: {} 1828 | 1829 | debug@4.3.5: 1830 | dependencies: 1831 | ms: 2.1.2 1832 | 1833 | didyoumean@1.2.2: {} 1834 | 1835 | dlv@1.1.3: {} 1836 | 1837 | eastasianwidth@0.2.0: {} 1838 | 1839 | electron-to-chromium@1.4.815: {} 1840 | 1841 | emoji-regex@8.0.0: {} 1842 | 1843 | emoji-regex@9.2.2: {} 1844 | 1845 | esbuild@0.21.5: 1846 | optionalDependencies: 1847 | '@esbuild/aix-ppc64': 0.21.5 1848 | '@esbuild/android-arm': 0.21.5 1849 | '@esbuild/android-arm64': 0.21.5 1850 | '@esbuild/android-x64': 0.21.5 1851 | '@esbuild/darwin-arm64': 0.21.5 1852 | '@esbuild/darwin-x64': 0.21.5 1853 | '@esbuild/freebsd-arm64': 0.21.5 1854 | '@esbuild/freebsd-x64': 0.21.5 1855 | '@esbuild/linux-arm': 0.21.5 1856 | '@esbuild/linux-arm64': 0.21.5 1857 | '@esbuild/linux-ia32': 0.21.5 1858 | '@esbuild/linux-loong64': 0.21.5 1859 | '@esbuild/linux-mips64el': 0.21.5 1860 | '@esbuild/linux-ppc64': 0.21.5 1861 | '@esbuild/linux-riscv64': 0.21.5 1862 | '@esbuild/linux-s390x': 0.21.5 1863 | '@esbuild/linux-x64': 0.21.5 1864 | '@esbuild/netbsd-x64': 0.21.5 1865 | '@esbuild/openbsd-x64': 0.21.5 1866 | '@esbuild/sunos-x64': 0.21.5 1867 | '@esbuild/win32-arm64': 0.21.5 1868 | '@esbuild/win32-ia32': 0.21.5 1869 | '@esbuild/win32-x64': 0.21.5 1870 | 1871 | escalade@3.1.2: {} 1872 | 1873 | escape-string-regexp@1.0.5: {} 1874 | 1875 | fast-glob@3.3.2: 1876 | dependencies: 1877 | '@nodelib/fs.stat': 2.0.5 1878 | '@nodelib/fs.walk': 1.2.8 1879 | glob-parent: 5.1.2 1880 | merge2: 1.4.1 1881 | micromatch: 4.0.7 1882 | 1883 | fastq@1.17.1: 1884 | dependencies: 1885 | reusify: 1.0.4 1886 | 1887 | fill-range@7.1.1: 1888 | dependencies: 1889 | to-regex-range: 5.0.1 1890 | 1891 | foreground-child@3.2.1: 1892 | dependencies: 1893 | cross-spawn: 7.0.3 1894 | signal-exit: 4.1.0 1895 | 1896 | fraction.js@4.3.7: {} 1897 | 1898 | fsevents@2.3.3: 1899 | optional: true 1900 | 1901 | function-bind@1.1.2: {} 1902 | 1903 | gensync@1.0.0-beta.2: {} 1904 | 1905 | glob-parent@5.1.2: 1906 | dependencies: 1907 | is-glob: 4.0.3 1908 | 1909 | glob-parent@6.0.2: 1910 | dependencies: 1911 | is-glob: 4.0.3 1912 | 1913 | glob@10.4.2: 1914 | dependencies: 1915 | foreground-child: 3.2.1 1916 | jackspeak: 3.4.0 1917 | minimatch: 9.0.5 1918 | minipass: 7.1.2 1919 | package-json-from-dist: 1.0.0 1920 | path-scurry: 1.11.1 1921 | 1922 | globals@11.12.0: {} 1923 | 1924 | globrex@0.1.2: {} 1925 | 1926 | has-flag@3.0.0: {} 1927 | 1928 | hasown@2.0.2: 1929 | dependencies: 1930 | function-bind: 1.1.2 1931 | 1932 | is-binary-path@2.1.0: 1933 | dependencies: 1934 | binary-extensions: 2.3.0 1935 | 1936 | is-core-module@2.14.0: 1937 | dependencies: 1938 | hasown: 2.0.2 1939 | 1940 | is-extglob@2.1.1: {} 1941 | 1942 | is-fullwidth-code-point@3.0.0: {} 1943 | 1944 | is-glob@4.0.3: 1945 | dependencies: 1946 | is-extglob: 2.1.1 1947 | 1948 | is-number@7.0.0: {} 1949 | 1950 | isexe@2.0.0: {} 1951 | 1952 | jackspeak@3.4.0: 1953 | dependencies: 1954 | '@isaacs/cliui': 8.0.2 1955 | optionalDependencies: 1956 | '@pkgjs/parseargs': 0.11.0 1957 | 1958 | jiti@1.21.6: {} 1959 | 1960 | js-tokens@4.0.0: {} 1961 | 1962 | jsesc@2.5.2: {} 1963 | 1964 | json5@2.2.3: {} 1965 | 1966 | lilconfig@2.1.0: {} 1967 | 1968 | lilconfig@3.1.2: {} 1969 | 1970 | lines-and-columns@1.2.4: {} 1971 | 1972 | loose-envify@1.4.0: 1973 | dependencies: 1974 | js-tokens: 4.0.0 1975 | 1976 | lru-cache@10.3.0: {} 1977 | 1978 | lru-cache@5.1.1: 1979 | dependencies: 1980 | yallist: 3.1.1 1981 | 1982 | merge2@1.4.1: {} 1983 | 1984 | micromatch@4.0.7: 1985 | dependencies: 1986 | braces: 3.0.3 1987 | picomatch: 2.3.1 1988 | 1989 | minimatch@9.0.5: 1990 | dependencies: 1991 | brace-expansion: 2.0.1 1992 | 1993 | minipass@7.1.2: {} 1994 | 1995 | ms@2.1.2: {} 1996 | 1997 | mz@2.7.0: 1998 | dependencies: 1999 | any-promise: 1.3.0 2000 | object-assign: 4.1.1 2001 | thenify-all: 1.6.0 2002 | 2003 | nanoid@3.3.7: {} 2004 | 2005 | node-releases@2.0.14: {} 2006 | 2007 | normalize-path@3.0.0: {} 2008 | 2009 | normalize-range@0.1.2: {} 2010 | 2011 | object-assign@4.1.1: {} 2012 | 2013 | object-hash@3.0.0: {} 2014 | 2015 | package-json-from-dist@1.0.0: {} 2016 | 2017 | path-key@3.1.1: {} 2018 | 2019 | path-parse@1.0.7: {} 2020 | 2021 | path-scurry@1.11.1: 2022 | dependencies: 2023 | lru-cache: 10.3.0 2024 | minipass: 7.1.2 2025 | 2026 | picocolors@1.0.1: {} 2027 | 2028 | picomatch@2.3.1: {} 2029 | 2030 | pify@2.3.0: {} 2031 | 2032 | pirates@4.0.6: {} 2033 | 2034 | postcss-import@15.1.0(postcss@8.4.39): 2035 | dependencies: 2036 | postcss: 8.4.39 2037 | postcss-value-parser: 4.2.0 2038 | read-cache: 1.0.0 2039 | resolve: 1.22.8 2040 | 2041 | postcss-js@4.0.1(postcss@8.4.39): 2042 | dependencies: 2043 | camelcase-css: 2.0.1 2044 | postcss: 8.4.39 2045 | 2046 | postcss-load-config@4.0.2(postcss@8.4.39): 2047 | dependencies: 2048 | lilconfig: 3.1.2 2049 | yaml: 2.4.5 2050 | optionalDependencies: 2051 | postcss: 8.4.39 2052 | 2053 | postcss-nested@6.0.1(postcss@8.4.39): 2054 | dependencies: 2055 | postcss: 8.4.39 2056 | postcss-selector-parser: 6.1.0 2057 | 2058 | postcss-selector-parser@6.1.0: 2059 | dependencies: 2060 | cssesc: 3.0.0 2061 | util-deprecate: 1.0.2 2062 | 2063 | postcss-value-parser@4.2.0: {} 2064 | 2065 | postcss@8.4.39: 2066 | dependencies: 2067 | nanoid: 3.3.7 2068 | picocolors: 1.0.1 2069 | source-map-js: 1.2.0 2070 | 2071 | prettier-plugin-tailwindcss@0.6.5(prettier@3.3.2): 2072 | dependencies: 2073 | prettier: 3.3.2 2074 | 2075 | prettier@3.3.2: {} 2076 | 2077 | queue-microtask@1.2.3: {} 2078 | 2079 | react-dom@18.3.1(react@18.3.1): 2080 | dependencies: 2081 | loose-envify: 1.4.0 2082 | react: 18.3.1 2083 | scheduler: 0.23.2 2084 | 2085 | react-refresh@0.14.2: {} 2086 | 2087 | react-router-dom@6.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): 2088 | dependencies: 2089 | '@remix-run/router': 1.17.0 2090 | react: 18.3.1 2091 | react-dom: 18.3.1(react@18.3.1) 2092 | react-router: 6.24.0(react@18.3.1) 2093 | 2094 | react-router@6.24.0(react@18.3.1): 2095 | dependencies: 2096 | '@remix-run/router': 1.17.0 2097 | react: 18.3.1 2098 | 2099 | react@18.3.1: 2100 | dependencies: 2101 | loose-envify: 1.4.0 2102 | 2103 | read-cache@1.0.0: 2104 | dependencies: 2105 | pify: 2.3.0 2106 | 2107 | readdirp@3.6.0: 2108 | dependencies: 2109 | picomatch: 2.3.1 2110 | 2111 | regenerator-runtime@0.14.1: {} 2112 | 2113 | resolve@1.22.8: 2114 | dependencies: 2115 | is-core-module: 2.14.0 2116 | path-parse: 1.0.7 2117 | supports-preserve-symlinks-flag: 1.0.0 2118 | 2119 | reusify@1.0.4: {} 2120 | 2121 | rollup@4.18.0: 2122 | dependencies: 2123 | '@types/estree': 1.0.5 2124 | optionalDependencies: 2125 | '@rollup/rollup-android-arm-eabi': 4.18.0 2126 | '@rollup/rollup-android-arm64': 4.18.0 2127 | '@rollup/rollup-darwin-arm64': 4.18.0 2128 | '@rollup/rollup-darwin-x64': 4.18.0 2129 | '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 2130 | '@rollup/rollup-linux-arm-musleabihf': 4.18.0 2131 | '@rollup/rollup-linux-arm64-gnu': 4.18.0 2132 | '@rollup/rollup-linux-arm64-musl': 4.18.0 2133 | '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 2134 | '@rollup/rollup-linux-riscv64-gnu': 4.18.0 2135 | '@rollup/rollup-linux-s390x-gnu': 4.18.0 2136 | '@rollup/rollup-linux-x64-gnu': 4.18.0 2137 | '@rollup/rollup-linux-x64-musl': 4.18.0 2138 | '@rollup/rollup-win32-arm64-msvc': 4.18.0 2139 | '@rollup/rollup-win32-ia32-msvc': 4.18.0 2140 | '@rollup/rollup-win32-x64-msvc': 4.18.0 2141 | fsevents: 2.3.3 2142 | 2143 | run-parallel@1.2.0: 2144 | dependencies: 2145 | queue-microtask: 1.2.3 2146 | 2147 | scheduler@0.23.2: 2148 | dependencies: 2149 | loose-envify: 1.4.0 2150 | 2151 | semver@6.3.1: {} 2152 | 2153 | shebang-command@2.0.0: 2154 | dependencies: 2155 | shebang-regex: 3.0.0 2156 | 2157 | shebang-regex@3.0.0: {} 2158 | 2159 | signal-exit@4.1.0: {} 2160 | 2161 | source-map-js@1.2.0: {} 2162 | 2163 | string-width@4.2.3: 2164 | dependencies: 2165 | emoji-regex: 8.0.0 2166 | is-fullwidth-code-point: 3.0.0 2167 | strip-ansi: 6.0.1 2168 | 2169 | string-width@5.1.2: 2170 | dependencies: 2171 | eastasianwidth: 0.2.0 2172 | emoji-regex: 9.2.2 2173 | strip-ansi: 7.1.0 2174 | 2175 | strip-ansi@6.0.1: 2176 | dependencies: 2177 | ansi-regex: 5.0.1 2178 | 2179 | strip-ansi@7.1.0: 2180 | dependencies: 2181 | ansi-regex: 6.0.1 2182 | 2183 | sucrase@3.35.0: 2184 | dependencies: 2185 | '@jridgewell/gen-mapping': 0.3.5 2186 | commander: 4.1.1 2187 | glob: 10.4.2 2188 | lines-and-columns: 1.2.4 2189 | mz: 2.7.0 2190 | pirates: 4.0.6 2191 | ts-interface-checker: 0.1.13 2192 | 2193 | supports-color@5.5.0: 2194 | dependencies: 2195 | has-flag: 3.0.0 2196 | 2197 | supports-preserve-symlinks-flag@1.0.0: {} 2198 | 2199 | tailwind-merge@2.3.0: 2200 | dependencies: 2201 | '@babel/runtime': 7.24.7 2202 | 2203 | tailwind-variants@0.2.1(tailwindcss@3.4.4): 2204 | dependencies: 2205 | tailwind-merge: 2.3.0 2206 | tailwindcss: 3.4.4 2207 | 2208 | tailwindcss-animate@1.0.7(tailwindcss@3.4.4): 2209 | dependencies: 2210 | tailwindcss: 3.4.4 2211 | 2212 | tailwindcss@3.4.4: 2213 | dependencies: 2214 | '@alloc/quick-lru': 5.2.0 2215 | arg: 5.0.2 2216 | chokidar: 3.6.0 2217 | didyoumean: 1.2.2 2218 | dlv: 1.1.3 2219 | fast-glob: 3.3.2 2220 | glob-parent: 6.0.2 2221 | is-glob: 4.0.3 2222 | jiti: 1.21.6 2223 | lilconfig: 2.1.0 2224 | micromatch: 4.0.7 2225 | normalize-path: 3.0.0 2226 | object-hash: 3.0.0 2227 | picocolors: 1.0.1 2228 | postcss: 8.4.39 2229 | postcss-import: 15.1.0(postcss@8.4.39) 2230 | postcss-js: 4.0.1(postcss@8.4.39) 2231 | postcss-load-config: 4.0.2(postcss@8.4.39) 2232 | postcss-nested: 6.0.1(postcss@8.4.39) 2233 | postcss-selector-parser: 6.1.0 2234 | resolve: 1.22.8 2235 | sucrase: 3.35.0 2236 | transitivePeerDependencies: 2237 | - ts-node 2238 | 2239 | thenify-all@1.6.0: 2240 | dependencies: 2241 | thenify: 3.3.1 2242 | 2243 | thenify@3.3.1: 2244 | dependencies: 2245 | any-promise: 1.3.0 2246 | 2247 | to-fast-properties@2.0.0: {} 2248 | 2249 | to-regex-range@5.0.1: 2250 | dependencies: 2251 | is-number: 7.0.0 2252 | 2253 | ts-interface-checker@0.1.13: {} 2254 | 2255 | tsconfck@3.1.1(typescript@5.5.2): 2256 | optionalDependencies: 2257 | typescript: 5.5.2 2258 | 2259 | typescript@5.5.2: {} 2260 | 2261 | update-browserslist-db@1.0.16(browserslist@4.23.1): 2262 | dependencies: 2263 | browserslist: 4.23.1 2264 | escalade: 3.1.2 2265 | picocolors: 1.0.1 2266 | 2267 | util-deprecate@1.0.2: {} 2268 | 2269 | vite-tsconfig-paths@4.3.2(typescript@5.5.2)(vite@5.3.2): 2270 | dependencies: 2271 | debug: 4.3.5 2272 | globrex: 0.1.2 2273 | tsconfck: 3.1.1(typescript@5.5.2) 2274 | optionalDependencies: 2275 | vite: 5.3.2 2276 | transitivePeerDependencies: 2277 | - supports-color 2278 | - typescript 2279 | 2280 | vite@5.3.2: 2281 | dependencies: 2282 | esbuild: 0.21.5 2283 | postcss: 8.4.39 2284 | rollup: 4.18.0 2285 | optionalDependencies: 2286 | fsevents: 2.3.3 2287 | 2288 | which@2.0.2: 2289 | dependencies: 2290 | isexe: 2.0.0 2291 | 2292 | wrap-ansi@7.0.0: 2293 | dependencies: 2294 | ansi-styles: 4.3.0 2295 | string-width: 4.2.3 2296 | strip-ansi: 6.0.1 2297 | 2298 | wrap-ansi@8.1.0: 2299 | dependencies: 2300 | ansi-styles: 6.2.1 2301 | string-width: 5.1.2 2302 | strip-ansi: 7.1.0 2303 | 2304 | yallist@3.1.1: {} 2305 | 2306 | yaml@2.4.5: {} 2307 | --------------------------------------------------------------------------------