damage calculator
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: make into monorepo, init tanstack start project

serenity 52bf13fd 0d355c50

+5465
.gitignore simulator/.gitignore
Cargo.lock simulator/Cargo.lock
Cargo.toml simulator/Cargo.toml
+17
app/.cta.json
··· 1 + { 2 + "projectName": "dijiang-app", 3 + "mode": "file-router", 4 + "typescript": true, 5 + "packageManager": "pnpm", 6 + "includeExamples": false, 7 + "tailwind": true, 8 + "addOnOptions": {}, 9 + "envVarValues": {}, 10 + "git": false, 11 + "routerOnly": true, 12 + "version": 1, 13 + "framework": "react", 14 + "chosenAddOns": [ 15 + "eslint" 16 + ] 17 + }
+13
app/.gitignore
··· 1 + node_modules 2 + .DS_Store 3 + dist 4 + dist-ssr 5 + *.local 6 + .env 7 + .nitro 8 + .tanstack 9 + .wrangler 10 + .output 11 + .vinxi 12 + __unconfig* 13 + todos.json
+3
app/.prettierignore
··· 1 + package-lock.json 2 + pnpm-lock.yaml 3 + yarn.lock
+204
app/README.md
··· 1 + Welcome to your new TanStack Start app! 2 + 3 + # Getting Started 4 + 5 + To run this application: 6 + 7 + ```bash 8 + pnpm install 9 + pnpm dev 10 + ``` 11 + 12 + # Building For Production 13 + 14 + To build this application for production: 15 + 16 + ```bash 17 + pnpm build 18 + ``` 19 + 20 + ## Testing 21 + 22 + This project uses [Vitest](https://vitest.dev/) for testing. You can run the tests with: 23 + 24 + ```bash 25 + pnpm test 26 + ``` 27 + 28 + ## Styling 29 + 30 + This project uses [Tailwind CSS](https://tailwindcss.com/) for styling. 31 + 32 + ### Removing Tailwind CSS 33 + 34 + If you prefer not to use Tailwind CSS: 35 + 36 + 1. Remove the demo pages in `src/routes/demo/` 37 + 2. Replace the Tailwind import in `src/styles.css` with your own styles 38 + 3. Remove `tailwindcss()` from the plugins array in `vite.config.ts` 39 + 4. Uninstall the packages: `pnpm add @tailwindcss/vite tailwindcss --dev` 40 + 41 + ## Linting & Formatting 42 + 43 + 44 + This project uses [eslint](https://eslint.org/) and [prettier](https://prettier.io/) for linting and formatting. Eslint is configured using [tanstack/eslint-config](https://tanstack.com/config/latest/docs/eslint). The following scripts are available: 45 + 46 + ```bash 47 + pnpm lint 48 + pnpm format 49 + pnpm check 50 + ``` 51 + 52 + 53 + 54 + ## Routing 55 + 56 + This project uses [TanStack Router](https://tanstack.com/router) with file-based routing. Routes are managed as files in `src/routes`. 57 + 58 + ### Adding A Route 59 + 60 + To add a new route to your application just add a new file in the `./src/routes` directory. 61 + 62 + TanStack will automatically generate the content of the route file for you. 63 + 64 + Now that you have two routes you can use a `Link` component to navigate between them. 65 + 66 + ### Adding Links 67 + 68 + To use SPA (Single Page Application) navigation you will need to import the `Link` component from `@tanstack/react-router`. 69 + 70 + ```tsx 71 + import { Link } from "@tanstack/react-router"; 72 + ``` 73 + 74 + Then anywhere in your JSX you can use it like so: 75 + 76 + ```tsx 77 + <Link to="/about">About</Link> 78 + ``` 79 + 80 + This will create a link that will navigate to the `/about` route. 81 + 82 + More information on the `Link` component can be found in the [Link documentation](https://tanstack.com/router/v1/docs/framework/react/api/router/linkComponent). 83 + 84 + ### Using A Layout 85 + 86 + In the File Based Routing setup the layout is located in `src/routes/__root.tsx`. Anything you add to the root route will appear in all the routes. The route content will appear in the JSX where you render `{children}` in the `shellComponent`. 87 + 88 + Here is an example layout that includes a header: 89 + 90 + ```tsx 91 + import { HeadContent, Scripts, createRootRoute } from '@tanstack/react-router' 92 + 93 + export const Route = createRootRoute({ 94 + head: () => ({ 95 + meta: [ 96 + { charSet: 'utf-8' }, 97 + { name: 'viewport', content: 'width=device-width, initial-scale=1' }, 98 + { title: 'My App' }, 99 + ], 100 + }), 101 + shellComponent: ({ children }) => ( 102 + <html lang="en"> 103 + <head> 104 + <HeadContent /> 105 + </head> 106 + <body> 107 + <header> 108 + <nav> 109 + <Link to="/">Home</Link> 110 + <Link to="/about">About</Link> 111 + </nav> 112 + </header> 113 + {children} 114 + <Scripts /> 115 + </body> 116 + </html> 117 + ), 118 + }) 119 + ``` 120 + 121 + More information on layouts can be found in the [Layouts documentation](https://tanstack.com/router/latest/docs/framework/react/guide/routing-concepts#layouts). 122 + 123 + ## Server Functions 124 + 125 + TanStack Start provides server functions that allow you to write server-side code that seamlessly integrates with your client components. 126 + 127 + ```tsx 128 + import { createServerFn } from '@tanstack/react-start' 129 + 130 + const getServerTime = createServerFn({ 131 + method: 'GET', 132 + }).handler(async () => { 133 + return new Date().toISOString() 134 + }) 135 + 136 + // Use in a component 137 + function MyComponent() { 138 + const [time, setTime] = useState('') 139 + 140 + useEffect(() => { 141 + getServerTime().then(setTime) 142 + }, []) 143 + 144 + return <div>Server time: {time}</div> 145 + } 146 + ``` 147 + 148 + ## API Routes 149 + 150 + You can create API routes by using the `server` property in your route definitions: 151 + 152 + ```tsx 153 + import { createFileRoute } from '@tanstack/react-router' 154 + import { json } from '@tanstack/react-start' 155 + 156 + export const Route = createFileRoute('/api/hello')({ 157 + server: { 158 + handlers: { 159 + GET: () => json({ message: 'Hello, World!' }), 160 + }, 161 + }, 162 + }) 163 + ``` 164 + 165 + ## Data Fetching 166 + 167 + There are multiple ways to fetch data in your application. You can use TanStack Query to fetch data from a server. But you can also use the `loader` functionality built into TanStack Router to load the data for a route before it's rendered. 168 + 169 + For example: 170 + 171 + ```tsx 172 + import { createFileRoute } from '@tanstack/react-router' 173 + 174 + export const Route = createFileRoute('/people')({ 175 + loader: async () => { 176 + const response = await fetch('https://swapi.dev/api/people') 177 + return response.json() 178 + }, 179 + component: PeopleComponent, 180 + }) 181 + 182 + function PeopleComponent() { 183 + const data = Route.useLoaderData() 184 + return ( 185 + <ul> 186 + {data.results.map((person) => ( 187 + <li key={person.name}>{person.name}</li> 188 + ))} 189 + </ul> 190 + ) 191 + } 192 + ``` 193 + 194 + Loaders simplify your data fetching logic dramatically. Check out more information in the [Loader documentation](https://tanstack.com/router/latest/docs/framework/react/guide/data-loading#loader-parameters). 195 + 196 + # Demo files 197 + 198 + Files prefixed with `demo` can be safely deleted. They are there to provide a starting point for you to play around with the features you've installed. 199 + 200 + # Learn More 201 + 202 + You can learn more about all of the offerings from TanStack in the [TanStack documentation](https://tanstack.com). 203 + 204 + For TanStack Start specific documentation, visit [TanStack Start](https://tanstack.com/start).
+18
app/default.nix
··· 1 + { lib, buildNpmPackage }: 2 + 3 + buildNpmPackage { 4 + pname = "dijiang-app"; 5 + version = "0.0.1"; 6 + 7 + src = ./.; 8 + 9 + npmDepsHash = lib.fakeHash; 10 + 11 + meta = { 12 + description = "Alternative frontend client for Tangled"; 13 + homepage = "https://tangled.org/isuggest.selfce.st/strand"; 14 + license = lib.licenses.mit; 15 + maintainers = with lib.maintainers; [ ]; 16 + mainProgram = "example"; 17 + }; 18 + }
+20
app/eslint.config.js
··· 1 + // @ts-check 2 + 3 + import { tanstackConfig } from '@tanstack/eslint-config' 4 + 5 + export default [ 6 + ...tanstackConfig, 7 + { 8 + rules: { 9 + 'import/no-cycle': 'off', 10 + 'import/order': 'off', 11 + 'sort-imports': 'off', 12 + '@typescript-eslint/array-type': 'off', 13 + '@typescript-eslint/require-await': 'off', 14 + 'pnpm/json-enforce-catalog': 'off', 15 + }, 16 + }, 17 + { 18 + ignores: ['eslint.config.js', 'prettier.config.js'], 19 + }, 20 + ]
+29
app/flake.nix
··· 1 + { 2 + description = "All-in-one Endfield tools suite."; 3 + 4 + inputs = { 5 + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; 6 + }; 7 + 8 + outputs = 9 + { self, nixpkgs }: 10 + let 11 + forAllSystems = 12 + function: 13 + nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed ( 14 + system: function nixpkgs.legacyPackages.${system} 15 + ); 16 + in 17 + { 18 + packages = forAllSystems (pkgs: { 19 + example = pkgs.callPackage ./default.nix { }; 20 + default = self.packages.${pkgs.stdenv.hostPlatform.system}.example; 21 + }); 22 + 23 + devShells = forAllSystems (pkgs: { 24 + default = pkgs.callPackage ./shell.nix { }; 25 + }); 26 + 27 + overlays.default = final: _: { example = final.callPackage ./default.nix { }; }; 28 + }; 29 + }
+13
app/index.html
··· 1 + 2 + <!doctype html> 3 + <html lang="en"> 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>dijiang-app</title> 8 + </head> 9 + <body> 10 + <div id="app"></div> 11 + <script type="module" src="/src/main.tsx"></script> 12 + </body> 13 + </html>
+52
app/package.json
··· 1 + { 2 + "name": "dijiang-app", 3 + "private": true, 4 + "type": "module", 5 + "imports": { 6 + "#/*": "./src/*" 7 + }, 8 + "scripts": { 9 + "dev": "vite dev --port 3000", 10 + "build": "vite build", 11 + "preview": "vite preview", 12 + "test": "vitest run", 13 + "lint": "eslint", 14 + "format": "prettier --check .", 15 + "check": "prettier --write . && eslint --fix" 16 + }, 17 + "dependencies": { 18 + "@tailwindcss/vite": "^4.1.18", 19 + "@tanstack/react-devtools": "latest", 20 + "@tanstack/react-router": "latest", 21 + "@tanstack/react-router-devtools": "latest", 22 + "@tanstack/router-plugin": "^1.132.0", 23 + "lucide-react": "^0.545.0", 24 + "react": "^19.2.0", 25 + "react-dom": "^19.2.0", 26 + "tailwindcss": "^4.1.18" 27 + }, 28 + "devDependencies": { 29 + "@tailwindcss/typography": "^0.5.16", 30 + "@tanstack/devtools-vite": "latest", 31 + "@tanstack/eslint-config": "latest", 32 + "@tanstack/router-plugin": "latest", 33 + "@testing-library/dom": "^10.4.1", 34 + "@testing-library/react": "^16.3.0", 35 + "@types/node": "^22.10.2", 36 + "@types/react": "^19.2.0", 37 + "@types/react-dom": "^19.2.0", 38 + "@vitejs/plugin-react": "^5.1.4", 39 + "jsdom": "^28.1.0", 40 + "prettier": "^3.8.1", 41 + "typescript": "^5.7.2", 42 + "vite": "^7.3.1", 43 + "vite-tsconfig-paths": "^5.1.4", 44 + "vitest": "^3.0.5" 45 + }, 46 + "pnpm": { 47 + "onlyBuiltDependencies": [ 48 + "esbuild", 49 + "lightningcss" 50 + ] 51 + } 52 + }
+4227
app/pnpm-lock.yaml
··· 1 + lockfileVersion: '9.0' 2 + 3 + settings: 4 + autoInstallPeers: true 5 + excludeLinksFromLockfile: false 6 + 7 + importers: 8 + 9 + .: 10 + dependencies: 11 + '@tailwindcss/vite': 12 + specifier: ^4.1.18 13 + version: 4.2.2(vite@7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)) 14 + '@tanstack/react-devtools': 15 + specifier: latest 16 + version: 0.10.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(csstype@3.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.11) 17 + '@tanstack/react-router': 18 + specifier: latest 19 + version: 1.168.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) 20 + '@tanstack/react-router-devtools': 21 + specifier: latest 22 + version: 1.166.11(@tanstack/react-router@1.168.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@tanstack/router-core@1.168.2)(csstype@3.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) 23 + '@tanstack/router-plugin': 24 + specifier: ^1.132.0 25 + version: 1.167.3(@tanstack/react-router@1.168.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)) 26 + lucide-react: 27 + specifier: ^0.545.0 28 + version: 0.545.0(react@19.2.4) 29 + react: 30 + specifier: ^19.2.0 31 + version: 19.2.4 32 + react-dom: 33 + specifier: ^19.2.0 34 + version: 19.2.4(react@19.2.4) 35 + tailwindcss: 36 + specifier: ^4.1.18 37 + version: 4.2.2 38 + devDependencies: 39 + '@tailwindcss/typography': 40 + specifier: ^0.5.16 41 + version: 0.5.19(tailwindcss@4.2.2) 42 + '@tanstack/devtools-vite': 43 + specifier: latest 44 + version: 0.6.0(vite@7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)) 45 + '@tanstack/eslint-config': 46 + specifier: latest 47 + version: 0.4.0(@typescript-eslint/utils@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 48 + '@testing-library/dom': 49 + specifier: ^10.4.1 50 + version: 10.4.1 51 + '@testing-library/react': 52 + specifier: ^16.3.0 53 + version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) 54 + '@types/node': 55 + specifier: ^22.10.2 56 + version: 22.19.15 57 + '@types/react': 58 + specifier: ^19.2.0 59 + version: 19.2.14 60 + '@types/react-dom': 61 + specifier: ^19.2.0 62 + version: 19.2.3(@types/react@19.2.14) 63 + '@vitejs/plugin-react': 64 + specifier: ^5.1.4 65 + version: 5.2.0(vite@7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)) 66 + jsdom: 67 + specifier: ^28.1.0 68 + version: 28.1.0 69 + prettier: 70 + specifier: ^3.8.1 71 + version: 3.8.1 72 + typescript: 73 + specifier: ^5.7.2 74 + version: 5.9.3 75 + vite: 76 + specifier: ^7.3.1 77 + version: 7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0) 78 + vite-tsconfig-paths: 79 + specifier: ^5.1.4 80 + version: 5.1.4(typescript@5.9.3)(vite@7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)) 81 + vitest: 82 + specifier: ^3.0.5 83 + version: 3.2.4(@types/node@22.19.15)(jiti@2.6.1)(jsdom@28.1.0)(lightningcss@1.32.0)(tsx@4.21.0) 84 + 85 + packages: 86 + 87 + '@acemir/cssom@0.9.31': 88 + resolution: {integrity: sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==} 89 + 90 + '@asamuzakjp/css-color@5.0.1': 91 + resolution: {integrity: sha512-2SZFvqMyvboVV1d15lMf7XiI3m7SDqXUuKaTymJYLN6dSGadqp+fVojqJlVoMlbZnlTmu3S0TLwLTJpvBMO1Aw==} 92 + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} 93 + 94 + '@asamuzakjp/dom-selector@6.8.1': 95 + resolution: {integrity: sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==} 96 + 97 + '@asamuzakjp/nwsapi@2.3.9': 98 + resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} 99 + 100 + '@babel/code-frame@7.29.0': 101 + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} 102 + engines: {node: '>=6.9.0'} 103 + 104 + '@babel/compat-data@7.29.0': 105 + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} 106 + engines: {node: '>=6.9.0'} 107 + 108 + '@babel/core@7.29.0': 109 + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} 110 + engines: {node: '>=6.9.0'} 111 + 112 + '@babel/generator@7.29.1': 113 + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} 114 + engines: {node: '>=6.9.0'} 115 + 116 + '@babel/helper-compilation-targets@7.28.6': 117 + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} 118 + engines: {node: '>=6.9.0'} 119 + 120 + '@babel/helper-globals@7.28.0': 121 + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} 122 + engines: {node: '>=6.9.0'} 123 + 124 + '@babel/helper-module-imports@7.28.6': 125 + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} 126 + engines: {node: '>=6.9.0'} 127 + 128 + '@babel/helper-module-transforms@7.28.6': 129 + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} 130 + engines: {node: '>=6.9.0'} 131 + peerDependencies: 132 + '@babel/core': ^7.0.0 133 + 134 + '@babel/helper-plugin-utils@7.28.6': 135 + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} 136 + engines: {node: '>=6.9.0'} 137 + 138 + '@babel/helper-string-parser@7.27.1': 139 + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 140 + engines: {node: '>=6.9.0'} 141 + 142 + '@babel/helper-validator-identifier@7.28.5': 143 + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} 144 + engines: {node: '>=6.9.0'} 145 + 146 + '@babel/helper-validator-option@7.27.1': 147 + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} 148 + engines: {node: '>=6.9.0'} 149 + 150 + '@babel/helpers@7.29.2': 151 + resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} 152 + engines: {node: '>=6.9.0'} 153 + 154 + '@babel/parser@7.29.2': 155 + resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} 156 + engines: {node: '>=6.0.0'} 157 + hasBin: true 158 + 159 + '@babel/plugin-syntax-jsx@7.28.6': 160 + resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} 161 + engines: {node: '>=6.9.0'} 162 + peerDependencies: 163 + '@babel/core': ^7.0.0-0 164 + 165 + '@babel/plugin-syntax-typescript@7.28.6': 166 + resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} 167 + engines: {node: '>=6.9.0'} 168 + peerDependencies: 169 + '@babel/core': ^7.0.0-0 170 + 171 + '@babel/plugin-transform-react-jsx-self@7.27.1': 172 + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} 173 + engines: {node: '>=6.9.0'} 174 + peerDependencies: 175 + '@babel/core': ^7.0.0-0 176 + 177 + '@babel/plugin-transform-react-jsx-source@7.27.1': 178 + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} 179 + engines: {node: '>=6.9.0'} 180 + peerDependencies: 181 + '@babel/core': ^7.0.0-0 182 + 183 + '@babel/runtime@7.29.2': 184 + resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} 185 + engines: {node: '>=6.9.0'} 186 + 187 + '@babel/template@7.28.6': 188 + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} 189 + engines: {node: '>=6.9.0'} 190 + 191 + '@babel/traverse@7.29.0': 192 + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} 193 + engines: {node: '>=6.9.0'} 194 + 195 + '@babel/types@7.29.0': 196 + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} 197 + engines: {node: '>=6.9.0'} 198 + 199 + '@bramus/specificity@2.4.2': 200 + resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} 201 + hasBin: true 202 + 203 + '@csstools/color-helpers@6.0.2': 204 + resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} 205 + engines: {node: '>=20.19.0'} 206 + 207 + '@csstools/css-calc@3.1.1': 208 + resolution: {integrity: sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==} 209 + engines: {node: '>=20.19.0'} 210 + peerDependencies: 211 + '@csstools/css-parser-algorithms': ^4.0.0 212 + '@csstools/css-tokenizer': ^4.0.0 213 + 214 + '@csstools/css-color-parser@4.0.2': 215 + resolution: {integrity: sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==} 216 + engines: {node: '>=20.19.0'} 217 + peerDependencies: 218 + '@csstools/css-parser-algorithms': ^4.0.0 219 + '@csstools/css-tokenizer': ^4.0.0 220 + 221 + '@csstools/css-parser-algorithms@4.0.0': 222 + resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==} 223 + engines: {node: '>=20.19.0'} 224 + peerDependencies: 225 + '@csstools/css-tokenizer': ^4.0.0 226 + 227 + '@csstools/css-syntax-patches-for-csstree@1.1.1': 228 + resolution: {integrity: sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==} 229 + peerDependencies: 230 + css-tree: ^3.2.1 231 + peerDependenciesMeta: 232 + css-tree: 233 + optional: true 234 + 235 + '@csstools/css-tokenizer@4.0.0': 236 + resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} 237 + engines: {node: '>=20.19.0'} 238 + 239 + '@emnapi/core@1.9.1': 240 + resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==} 241 + 242 + '@emnapi/runtime@1.9.1': 243 + resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} 244 + 245 + '@emnapi/wasi-threads@1.2.0': 246 + resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} 247 + 248 + '@esbuild/aix-ppc64@0.27.4': 249 + resolution: {integrity: sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==} 250 + engines: {node: '>=18'} 251 + cpu: [ppc64] 252 + os: [aix] 253 + 254 + '@esbuild/android-arm64@0.27.4': 255 + resolution: {integrity: sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==} 256 + engines: {node: '>=18'} 257 + cpu: [arm64] 258 + os: [android] 259 + 260 + '@esbuild/android-arm@0.27.4': 261 + resolution: {integrity: sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==} 262 + engines: {node: '>=18'} 263 + cpu: [arm] 264 + os: [android] 265 + 266 + '@esbuild/android-x64@0.27.4': 267 + resolution: {integrity: sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==} 268 + engines: {node: '>=18'} 269 + cpu: [x64] 270 + os: [android] 271 + 272 + '@esbuild/darwin-arm64@0.27.4': 273 + resolution: {integrity: sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==} 274 + engines: {node: '>=18'} 275 + cpu: [arm64] 276 + os: [darwin] 277 + 278 + '@esbuild/darwin-x64@0.27.4': 279 + resolution: {integrity: sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==} 280 + engines: {node: '>=18'} 281 + cpu: [x64] 282 + os: [darwin] 283 + 284 + '@esbuild/freebsd-arm64@0.27.4': 285 + resolution: {integrity: sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==} 286 + engines: {node: '>=18'} 287 + cpu: [arm64] 288 + os: [freebsd] 289 + 290 + '@esbuild/freebsd-x64@0.27.4': 291 + resolution: {integrity: sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==} 292 + engines: {node: '>=18'} 293 + cpu: [x64] 294 + os: [freebsd] 295 + 296 + '@esbuild/linux-arm64@0.27.4': 297 + resolution: {integrity: sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==} 298 + engines: {node: '>=18'} 299 + cpu: [arm64] 300 + os: [linux] 301 + 302 + '@esbuild/linux-arm@0.27.4': 303 + resolution: {integrity: sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==} 304 + engines: {node: '>=18'} 305 + cpu: [arm] 306 + os: [linux] 307 + 308 + '@esbuild/linux-ia32@0.27.4': 309 + resolution: {integrity: sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==} 310 + engines: {node: '>=18'} 311 + cpu: [ia32] 312 + os: [linux] 313 + 314 + '@esbuild/linux-loong64@0.27.4': 315 + resolution: {integrity: sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==} 316 + engines: {node: '>=18'} 317 + cpu: [loong64] 318 + os: [linux] 319 + 320 + '@esbuild/linux-mips64el@0.27.4': 321 + resolution: {integrity: sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==} 322 + engines: {node: '>=18'} 323 + cpu: [mips64el] 324 + os: [linux] 325 + 326 + '@esbuild/linux-ppc64@0.27.4': 327 + resolution: {integrity: sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==} 328 + engines: {node: '>=18'} 329 + cpu: [ppc64] 330 + os: [linux] 331 + 332 + '@esbuild/linux-riscv64@0.27.4': 333 + resolution: {integrity: sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==} 334 + engines: {node: '>=18'} 335 + cpu: [riscv64] 336 + os: [linux] 337 + 338 + '@esbuild/linux-s390x@0.27.4': 339 + resolution: {integrity: sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==} 340 + engines: {node: '>=18'} 341 + cpu: [s390x] 342 + os: [linux] 343 + 344 + '@esbuild/linux-x64@0.27.4': 345 + resolution: {integrity: sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==} 346 + engines: {node: '>=18'} 347 + cpu: [x64] 348 + os: [linux] 349 + 350 + '@esbuild/netbsd-arm64@0.27.4': 351 + resolution: {integrity: sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==} 352 + engines: {node: '>=18'} 353 + cpu: [arm64] 354 + os: [netbsd] 355 + 356 + '@esbuild/netbsd-x64@0.27.4': 357 + resolution: {integrity: sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==} 358 + engines: {node: '>=18'} 359 + cpu: [x64] 360 + os: [netbsd] 361 + 362 + '@esbuild/openbsd-arm64@0.27.4': 363 + resolution: {integrity: sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==} 364 + engines: {node: '>=18'} 365 + cpu: [arm64] 366 + os: [openbsd] 367 + 368 + '@esbuild/openbsd-x64@0.27.4': 369 + resolution: {integrity: sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==} 370 + engines: {node: '>=18'} 371 + cpu: [x64] 372 + os: [openbsd] 373 + 374 + '@esbuild/openharmony-arm64@0.27.4': 375 + resolution: {integrity: sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==} 376 + engines: {node: '>=18'} 377 + cpu: [arm64] 378 + os: [openharmony] 379 + 380 + '@esbuild/sunos-x64@0.27.4': 381 + resolution: {integrity: sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==} 382 + engines: {node: '>=18'} 383 + cpu: [x64] 384 + os: [sunos] 385 + 386 + '@esbuild/win32-arm64@0.27.4': 387 + resolution: {integrity: sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==} 388 + engines: {node: '>=18'} 389 + cpu: [arm64] 390 + os: [win32] 391 + 392 + '@esbuild/win32-ia32@0.27.4': 393 + resolution: {integrity: sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==} 394 + engines: {node: '>=18'} 395 + cpu: [ia32] 396 + os: [win32] 397 + 398 + '@esbuild/win32-x64@0.27.4': 399 + resolution: {integrity: sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==} 400 + engines: {node: '>=18'} 401 + cpu: [x64] 402 + os: [win32] 403 + 404 + '@eslint-community/eslint-utils@4.9.1': 405 + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} 406 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 407 + peerDependencies: 408 + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 409 + 410 + '@eslint-community/regexpp@4.12.2': 411 + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} 412 + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 413 + 414 + '@eslint/config-array@0.23.3': 415 + resolution: {integrity: sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==} 416 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 417 + 418 + '@eslint/config-helpers@0.5.3': 419 + resolution: {integrity: sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==} 420 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 421 + 422 + '@eslint/core@1.1.1': 423 + resolution: {integrity: sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==} 424 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 425 + 426 + '@eslint/js@10.0.1': 427 + resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} 428 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 429 + peerDependencies: 430 + eslint: ^10.0.0 431 + peerDependenciesMeta: 432 + eslint: 433 + optional: true 434 + 435 + '@eslint/object-schema@3.0.3': 436 + resolution: {integrity: sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==} 437 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 438 + 439 + '@eslint/plugin-kit@0.6.1': 440 + resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} 441 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 442 + 443 + '@exodus/bytes@1.15.0': 444 + resolution: {integrity: sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==} 445 + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} 446 + peerDependencies: 447 + '@noble/hashes': ^1.8.0 || ^2.0.0 448 + peerDependenciesMeta: 449 + '@noble/hashes': 450 + optional: true 451 + 452 + '@humanfs/core@0.19.1': 453 + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 454 + engines: {node: '>=18.18.0'} 455 + 456 + '@humanfs/node@0.16.7': 457 + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} 458 + engines: {node: '>=18.18.0'} 459 + 460 + '@humanwhocodes/module-importer@1.0.1': 461 + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 462 + engines: {node: '>=12.22'} 463 + 464 + '@humanwhocodes/retry@0.4.3': 465 + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} 466 + engines: {node: '>=18.18'} 467 + 468 + '@jridgewell/gen-mapping@0.3.13': 469 + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 470 + 471 + '@jridgewell/remapping@2.3.5': 472 + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} 473 + 474 + '@jridgewell/resolve-uri@3.1.2': 475 + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 476 + engines: {node: '>=6.0.0'} 477 + 478 + '@jridgewell/sourcemap-codec@1.5.5': 479 + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 480 + 481 + '@jridgewell/trace-mapping@0.3.31': 482 + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} 483 + 484 + '@napi-rs/wasm-runtime@0.2.12': 485 + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} 486 + 487 + '@package-json/types@0.0.12': 488 + resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==} 489 + 490 + '@rolldown/pluginutils@1.0.0-rc.3': 491 + resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} 492 + 493 + '@rollup/rollup-android-arm-eabi@4.60.0': 494 + resolution: {integrity: sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==} 495 + cpu: [arm] 496 + os: [android] 497 + 498 + '@rollup/rollup-android-arm64@4.60.0': 499 + resolution: {integrity: sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==} 500 + cpu: [arm64] 501 + os: [android] 502 + 503 + '@rollup/rollup-darwin-arm64@4.60.0': 504 + resolution: {integrity: sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==} 505 + cpu: [arm64] 506 + os: [darwin] 507 + 508 + '@rollup/rollup-darwin-x64@4.60.0': 509 + resolution: {integrity: sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==} 510 + cpu: [x64] 511 + os: [darwin] 512 + 513 + '@rollup/rollup-freebsd-arm64@4.60.0': 514 + resolution: {integrity: sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==} 515 + cpu: [arm64] 516 + os: [freebsd] 517 + 518 + '@rollup/rollup-freebsd-x64@4.60.0': 519 + resolution: {integrity: sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==} 520 + cpu: [x64] 521 + os: [freebsd] 522 + 523 + '@rollup/rollup-linux-arm-gnueabihf@4.60.0': 524 + resolution: {integrity: sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==} 525 + cpu: [arm] 526 + os: [linux] 527 + libc: [glibc] 528 + 529 + '@rollup/rollup-linux-arm-musleabihf@4.60.0': 530 + resolution: {integrity: sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==} 531 + cpu: [arm] 532 + os: [linux] 533 + libc: [musl] 534 + 535 + '@rollup/rollup-linux-arm64-gnu@4.60.0': 536 + resolution: {integrity: sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==} 537 + cpu: [arm64] 538 + os: [linux] 539 + libc: [glibc] 540 + 541 + '@rollup/rollup-linux-arm64-musl@4.60.0': 542 + resolution: {integrity: sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==} 543 + cpu: [arm64] 544 + os: [linux] 545 + libc: [musl] 546 + 547 + '@rollup/rollup-linux-loong64-gnu@4.60.0': 548 + resolution: {integrity: sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==} 549 + cpu: [loong64] 550 + os: [linux] 551 + libc: [glibc] 552 + 553 + '@rollup/rollup-linux-loong64-musl@4.60.0': 554 + resolution: {integrity: sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==} 555 + cpu: [loong64] 556 + os: [linux] 557 + libc: [musl] 558 + 559 + '@rollup/rollup-linux-ppc64-gnu@4.60.0': 560 + resolution: {integrity: sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==} 561 + cpu: [ppc64] 562 + os: [linux] 563 + libc: [glibc] 564 + 565 + '@rollup/rollup-linux-ppc64-musl@4.60.0': 566 + resolution: {integrity: sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==} 567 + cpu: [ppc64] 568 + os: [linux] 569 + libc: [musl] 570 + 571 + '@rollup/rollup-linux-riscv64-gnu@4.60.0': 572 + resolution: {integrity: sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==} 573 + cpu: [riscv64] 574 + os: [linux] 575 + libc: [glibc] 576 + 577 + '@rollup/rollup-linux-riscv64-musl@4.60.0': 578 + resolution: {integrity: sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==} 579 + cpu: [riscv64] 580 + os: [linux] 581 + libc: [musl] 582 + 583 + '@rollup/rollup-linux-s390x-gnu@4.60.0': 584 + resolution: {integrity: sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==} 585 + cpu: [s390x] 586 + os: [linux] 587 + libc: [glibc] 588 + 589 + '@rollup/rollup-linux-x64-gnu@4.60.0': 590 + resolution: {integrity: sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==} 591 + cpu: [x64] 592 + os: [linux] 593 + libc: [glibc] 594 + 595 + '@rollup/rollup-linux-x64-musl@4.60.0': 596 + resolution: {integrity: sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==} 597 + cpu: [x64] 598 + os: [linux] 599 + libc: [musl] 600 + 601 + '@rollup/rollup-openbsd-x64@4.60.0': 602 + resolution: {integrity: sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==} 603 + cpu: [x64] 604 + os: [openbsd] 605 + 606 + '@rollup/rollup-openharmony-arm64@4.60.0': 607 + resolution: {integrity: sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==} 608 + cpu: [arm64] 609 + os: [openharmony] 610 + 611 + '@rollup/rollup-win32-arm64-msvc@4.60.0': 612 + resolution: {integrity: sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==} 613 + cpu: [arm64] 614 + os: [win32] 615 + 616 + '@rollup/rollup-win32-ia32-msvc@4.60.0': 617 + resolution: {integrity: sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==} 618 + cpu: [ia32] 619 + os: [win32] 620 + 621 + '@rollup/rollup-win32-x64-gnu@4.60.0': 622 + resolution: {integrity: sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==} 623 + cpu: [x64] 624 + os: [win32] 625 + 626 + '@rollup/rollup-win32-x64-msvc@4.60.0': 627 + resolution: {integrity: sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==} 628 + cpu: [x64] 629 + os: [win32] 630 + 631 + '@solid-primitives/event-listener@2.4.5': 632 + resolution: {integrity: sha512-nwRV558mIabl4yVAhZKY8cb6G+O1F0M6Z75ttTu5hk+SxdOnKSGj+eetDIu7Oax1P138ZdUU01qnBPR8rnxaEA==} 633 + peerDependencies: 634 + solid-js: ^1.6.12 635 + 636 + '@solid-primitives/keyboard@1.3.5': 637 + resolution: {integrity: sha512-sav+l+PL+74z3yaftVs7qd8c2SXkqzuxPOVibUe5wYMt+U5Hxp3V3XCPgBPN2I6cANjvoFtz0NiU8uHVLdi9FQ==} 638 + peerDependencies: 639 + solid-js: ^1.6.12 640 + 641 + '@solid-primitives/resize-observer@2.1.5': 642 + resolution: {integrity: sha512-AiyTknKcNBaKHbcSMuxtSNM8FjIuiSuFyFghdD0TcCMU9hKi9EmsC5pjfjDwxE+5EueB1a+T/34PLRI5vbBbKw==} 643 + peerDependencies: 644 + solid-js: ^1.6.12 645 + 646 + '@solid-primitives/rootless@1.5.3': 647 + resolution: {integrity: sha512-N8cIDAHbWcLahNRLr0knAAQvXyEdEMoAZvIMZKmhNb1mlx9e2UOv9BRD5YNwQUJwbNoYVhhLwFOEOcVXFx0HqA==} 648 + peerDependencies: 649 + solid-js: ^1.6.12 650 + 651 + '@solid-primitives/static-store@0.1.3': 652 + resolution: {integrity: sha512-uxez7SXnr5GiRnzqO2IEDjOJRIXaG+0LZLBizmUA1FwSi+hrpuMzVBwyk70m4prcl8X6FDDXUl9O8hSq8wHbBQ==} 653 + peerDependencies: 654 + solid-js: ^1.6.12 655 + 656 + '@solid-primitives/utils@6.4.0': 657 + resolution: {integrity: sha512-AeGTBg8Wtkh/0s+evyLtP8piQoS4wyqqQaAFs2HJcFMMjYAtUgo+ZPduRXLjPlqKVc2ejeR544oeqpbn8Egn8A==} 658 + peerDependencies: 659 + solid-js: ^1.6.12 660 + 661 + '@stylistic/eslint-plugin@5.10.0': 662 + resolution: {integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==} 663 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 664 + peerDependencies: 665 + eslint: ^9.0.0 || ^10.0.0 666 + 667 + '@tailwindcss/node@4.2.2': 668 + resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==} 669 + 670 + '@tailwindcss/oxide-android-arm64@4.2.2': 671 + resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==} 672 + engines: {node: '>= 20'} 673 + cpu: [arm64] 674 + os: [android] 675 + 676 + '@tailwindcss/oxide-darwin-arm64@4.2.2': 677 + resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==} 678 + engines: {node: '>= 20'} 679 + cpu: [arm64] 680 + os: [darwin] 681 + 682 + '@tailwindcss/oxide-darwin-x64@4.2.2': 683 + resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==} 684 + engines: {node: '>= 20'} 685 + cpu: [x64] 686 + os: [darwin] 687 + 688 + '@tailwindcss/oxide-freebsd-x64@4.2.2': 689 + resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==} 690 + engines: {node: '>= 20'} 691 + cpu: [x64] 692 + os: [freebsd] 693 + 694 + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': 695 + resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==} 696 + engines: {node: '>= 20'} 697 + cpu: [arm] 698 + os: [linux] 699 + 700 + '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': 701 + resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==} 702 + engines: {node: '>= 20'} 703 + cpu: [arm64] 704 + os: [linux] 705 + libc: [glibc] 706 + 707 + '@tailwindcss/oxide-linux-arm64-musl@4.2.2': 708 + resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} 709 + engines: {node: '>= 20'} 710 + cpu: [arm64] 711 + os: [linux] 712 + libc: [musl] 713 + 714 + '@tailwindcss/oxide-linux-x64-gnu@4.2.2': 715 + resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} 716 + engines: {node: '>= 20'} 717 + cpu: [x64] 718 + os: [linux] 719 + libc: [glibc] 720 + 721 + '@tailwindcss/oxide-linux-x64-musl@4.2.2': 722 + resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} 723 + engines: {node: '>= 20'} 724 + cpu: [x64] 725 + os: [linux] 726 + libc: [musl] 727 + 728 + '@tailwindcss/oxide-wasm32-wasi@4.2.2': 729 + resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==} 730 + engines: {node: '>=14.0.0'} 731 + cpu: [wasm32] 732 + bundledDependencies: 733 + - '@napi-rs/wasm-runtime' 734 + - '@emnapi/core' 735 + - '@emnapi/runtime' 736 + - '@tybys/wasm-util' 737 + - '@emnapi/wasi-threads' 738 + - tslib 739 + 740 + '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': 741 + resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==} 742 + engines: {node: '>= 20'} 743 + cpu: [arm64] 744 + os: [win32] 745 + 746 + '@tailwindcss/oxide-win32-x64-msvc@4.2.2': 747 + resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==} 748 + engines: {node: '>= 20'} 749 + cpu: [x64] 750 + os: [win32] 751 + 752 + '@tailwindcss/oxide@4.2.2': 753 + resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==} 754 + engines: {node: '>= 20'} 755 + 756 + '@tailwindcss/typography@0.5.19': 757 + resolution: {integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==} 758 + peerDependencies: 759 + tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' 760 + 761 + '@tailwindcss/vite@4.2.2': 762 + resolution: {integrity: sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==} 763 + peerDependencies: 764 + vite: ^5.2.0 || ^6 || ^7 || ^8 765 + 766 + '@tanstack/devtools-client@0.0.6': 767 + resolution: {integrity: sha512-f85ZJXJnDIFOoykG/BFIixuAevJovCvJF391LPs6YjBAPhGYC50NWlx1y4iF/UmK5/cCMx+/JqI5SBOz7FanQQ==} 768 + engines: {node: '>=18'} 769 + 770 + '@tanstack/devtools-event-bus@0.4.1': 771 + resolution: {integrity: sha512-cNnJ89Q021Zf883rlbBTfsaxTfi2r73/qejGtyTa7ksErF3hyDyAq1aTbo5crK9dAL7zSHh9viKY1BtMls1QOA==} 772 + engines: {node: '>=18'} 773 + 774 + '@tanstack/devtools-event-client@0.4.3': 775 + resolution: {integrity: sha512-OZI6QyULw0FI0wjgmeYzCIfbgPsOEzwJtCpa69XrfLMtNXLGnz3d/dIabk7frg0TmHo+Ah49w5I4KC7Tufwsvw==} 776 + engines: {node: '>=18'} 777 + hasBin: true 778 + 779 + '@tanstack/devtools-ui@0.5.1': 780 + resolution: {integrity: sha512-T9JjAdqMSnxsVO6AQykD5vhxPF4iFLKtbYxee/bU3OLlk446F5C1220GdCmhDSz7y4lx+m8AvIS0bq6zzvdDUA==} 781 + engines: {node: '>=18'} 782 + peerDependencies: 783 + solid-js: '>=1.9.7' 784 + 785 + '@tanstack/devtools-vite@0.6.0': 786 + resolution: {integrity: sha512-h0r0ct7zlrgjkhmn4QW6wRjgUXd4JMs+r7gtx+BXo9f5H9Y+jtUdtvC0rnZcPto6gw/9yMUq7yOmMK5qDWRExg==} 787 + engines: {node: '>=18'} 788 + hasBin: true 789 + peerDependencies: 790 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 791 + 792 + '@tanstack/devtools@0.11.0': 793 + resolution: {integrity: sha512-ARRAnEm0HYjKlB2adC9YyDG3fbq5LVjpxPe6Jz583SanXRM1aKrZIGHIA//oRldX3mWIpM4kB6mCyd+CXCLqhA==} 794 + engines: {node: '>=18'} 795 + hasBin: true 796 + peerDependencies: 797 + solid-js: '>=1.9.7' 798 + 799 + '@tanstack/eslint-config@0.4.0': 800 + resolution: {integrity: sha512-V+Cd81W/f65dqKJKpytbwTGx9R+IwxKAHsG/uJ3nSLYEh36hlAr54lRpstUhggQB8nf/cP733cIw8DuD2dzQUg==} 801 + engines: {node: '>=18'} 802 + peerDependencies: 803 + eslint: ^9.0.0 || ^10.0.0 804 + 805 + '@tanstack/history@1.161.6': 806 + resolution: {integrity: sha512-NaOGLRrddszbQj9upGat6HG/4TKvXLvu+osAIgfxPYA+eIvYKv8GKDJOrY2D3/U9MRnKfMWD7bU4jeD4xmqyIg==} 807 + engines: {node: '>=20.19'} 808 + 809 + '@tanstack/react-devtools@0.10.0': 810 + resolution: {integrity: sha512-cUMzOQb1IHmkb8MsD0TrxHT8EL92Rx3G0Huq+IFkWeoaZPGlIiaIcGTpS5VvQDeI4BVUT+ZGt6CQTpx8oSTECg==} 811 + engines: {node: '>=18'} 812 + peerDependencies: 813 + '@types/react': '>=16.8' 814 + '@types/react-dom': '>=16.8' 815 + react: '>=16.8' 816 + react-dom: '>=16.8' 817 + 818 + '@tanstack/react-router-devtools@1.166.11': 819 + resolution: {integrity: sha512-WYR3q4Xui5yPT/5PXtQh8i03iUA7q8dONBjWpV3nsGdM8Cs1FxpfhLstW0wZO1dOvSyElscwTRCJ6nO5N8r3Lg==} 820 + engines: {node: '>=20.19'} 821 + peerDependencies: 822 + '@tanstack/react-router': ^1.168.2 823 + '@tanstack/router-core': ^1.168.2 824 + react: '>=18.0.0 || >=19.0.0' 825 + react-dom: '>=18.0.0 || >=19.0.0' 826 + peerDependenciesMeta: 827 + '@tanstack/router-core': 828 + optional: true 829 + 830 + '@tanstack/react-router@1.168.2': 831 + resolution: {integrity: sha512-zUDRM01m81xDCeTLHuqsvKR9zpf+bdfEhyadcUNSbO1930lIeOKLmMscUUNHWhc7Gqpi/V8Xl85QcJFAIAGmvQ==} 832 + engines: {node: '>=20.19'} 833 + peerDependencies: 834 + react: '>=18.0.0 || >=19.0.0' 835 + react-dom: '>=18.0.0 || >=19.0.0' 836 + 837 + '@tanstack/react-store@0.9.2': 838 + resolution: {integrity: sha512-Vt5usJE5sHG/cMechQfmwvwne6ktGCELe89Lmvoxe3LKRoFrhPa8OCKWs0NliG8HTJElEIj7PLtaBQIcux5pAQ==} 839 + peerDependencies: 840 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 841 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 842 + 843 + '@tanstack/router-core@1.168.2': 844 + resolution: {integrity: sha512-9wHR7syfY7y/qrvTvv8bugh6mrKk58TuiSQp44nbGW0BpE2+IIta1DBeL5jHr9AD1a+c5fVKSu/JXsKeniUc9w==} 845 + engines: {node: '>=20.19'} 846 + hasBin: true 847 + 848 + '@tanstack/router-devtools-core@1.167.1': 849 + resolution: {integrity: sha512-ECMM47J4KmifUvJguGituSiBpfN8SyCUEoxQks5RY09hpIBfR2eswCv2e6cJimjkKwBQXOVTPkTUk/yRvER+9w==} 850 + engines: {node: '>=20.19'} 851 + peerDependencies: 852 + '@tanstack/router-core': ^1.168.2 853 + csstype: ^3.0.10 854 + peerDependenciesMeta: 855 + csstype: 856 + optional: true 857 + 858 + '@tanstack/router-generator@1.166.16': 859 + resolution: {integrity: sha512-5C9PUY8tGfx+J528SYt3MrvlbNy4pSfiiWpfAJ4dYPGkvMqc/NHbpt/cm7MaKKB1iVI/r0ZvbZGjYM1RKQGLtw==} 860 + engines: {node: '>=20.19'} 861 + 862 + '@tanstack/router-plugin@1.167.3': 863 + resolution: {integrity: sha512-mnaT0T3BtTvn5b7A31wchsh9cEeRjwhsvMtkVqtOmNKwviL6M9QdmwnfwqUK4YQslmaVSe6qoDsAN3gCF4tJDw==} 864 + engines: {node: '>=20.19'} 865 + hasBin: true 866 + peerDependencies: 867 + '@rsbuild/core': '>=1.0.2' 868 + '@tanstack/react-router': ^1.168.2 869 + vite: '>=5.0.0 || >=6.0.0 || >=7.0.0' 870 + vite-plugin-solid: ^2.11.10 871 + webpack: '>=5.92.0' 872 + peerDependenciesMeta: 873 + '@rsbuild/core': 874 + optional: true 875 + '@tanstack/react-router': 876 + optional: true 877 + vite: 878 + optional: true 879 + vite-plugin-solid: 880 + optional: true 881 + webpack: 882 + optional: true 883 + 884 + '@tanstack/router-utils@1.161.6': 885 + resolution: {integrity: sha512-nRcYw+w2OEgK6VfjirYvGyPLOK+tZQz1jkYcmH5AjMamQ9PycnlxZF2aEZtPpNoUsaceX2bHptn6Ub5hGXqNvw==} 886 + engines: {node: '>=20.19'} 887 + 888 + '@tanstack/store@0.9.2': 889 + resolution: {integrity: sha512-K013lUJEFJK2ofFQ/hZKJUmCnpcV00ebLyOyFOWQvyQHUOZp/iYO84BM6aOGiV81JzwbX0APTVmW8YI7yiG5oA==} 890 + 891 + '@tanstack/virtual-file-routes@1.161.7': 892 + resolution: {integrity: sha512-olW33+Cn+bsCsZKPwEGhlkqS6w3M2slFv11JIobdnCFKMLG97oAI2kWKdx5/zsywTL8flpnoIgaZZPlQTFYhdQ==} 893 + engines: {node: '>=20.19'} 894 + hasBin: true 895 + 896 + '@testing-library/dom@10.4.1': 897 + resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} 898 + engines: {node: '>=18'} 899 + 900 + '@testing-library/react@16.3.2': 901 + resolution: {integrity: sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==} 902 + engines: {node: '>=18'} 903 + peerDependencies: 904 + '@testing-library/dom': ^10.0.0 905 + '@types/react': ^18.0.0 || ^19.0.0 906 + '@types/react-dom': ^18.0.0 || ^19.0.0 907 + react: ^18.0.0 || ^19.0.0 908 + react-dom: ^18.0.0 || ^19.0.0 909 + peerDependenciesMeta: 910 + '@types/react': 911 + optional: true 912 + '@types/react-dom': 913 + optional: true 914 + 915 + '@tybys/wasm-util@0.10.1': 916 + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} 917 + 918 + '@types/aria-query@5.0.4': 919 + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} 920 + 921 + '@types/babel__core@7.20.5': 922 + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 923 + 924 + '@types/babel__generator@7.27.0': 925 + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} 926 + 927 + '@types/babel__template@7.4.4': 928 + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 929 + 930 + '@types/babel__traverse@7.28.0': 931 + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} 932 + 933 + '@types/chai@5.2.3': 934 + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} 935 + 936 + '@types/deep-eql@4.0.2': 937 + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} 938 + 939 + '@types/esrecurse@4.3.1': 940 + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} 941 + 942 + '@types/estree@1.0.8': 943 + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 944 + 945 + '@types/json-schema@7.0.15': 946 + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 947 + 948 + '@types/node@22.19.15': 949 + resolution: {integrity: sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==} 950 + 951 + '@types/react-dom@19.2.3': 952 + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} 953 + peerDependencies: 954 + '@types/react': ^19.2.0 955 + 956 + '@types/react@19.2.14': 957 + resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} 958 + 959 + '@typescript-eslint/eslint-plugin@8.57.1': 960 + resolution: {integrity: sha512-Gn3aqnvNl4NGc6x3/Bqk1AOn0thyTU9bqDRhiRnUWezgvr2OnhYCWCgC8zXXRVqBsIL1pSDt7T9nJUe0oM0kDQ==} 961 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 962 + peerDependencies: 963 + '@typescript-eslint/parser': ^8.57.1 964 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 965 + typescript: '>=4.8.4 <6.0.0' 966 + 967 + '@typescript-eslint/parser@8.57.1': 968 + resolution: {integrity: sha512-k4eNDan0EIMTT/dUKc/g+rsJ6wcHYhNPdY19VoX/EOtaAG8DLtKCykhrUnuHPYvinn5jhAPgD2Qw9hXBwrahsw==} 969 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 970 + peerDependencies: 971 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 972 + typescript: '>=4.8.4 <6.0.0' 973 + 974 + '@typescript-eslint/project-service@8.57.1': 975 + resolution: {integrity: sha512-vx1F37BRO1OftsYlmG9xay1TqnjNVlqALymwWVuYTdo18XuKxtBpCj1QlzNIEHlvlB27osvXFWptYiEWsVdYsg==} 976 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 977 + peerDependencies: 978 + typescript: '>=4.8.4 <6.0.0' 979 + 980 + '@typescript-eslint/scope-manager@8.57.1': 981 + resolution: {integrity: sha512-hs/QcpCwlwT2L5S+3fT6gp0PabyGk4Q0Rv2doJXA0435/OpnSR3VRgvrp8Xdoc3UAYSg9cyUjTeFXZEPg/3OKg==} 982 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 983 + 984 + '@typescript-eslint/tsconfig-utils@8.57.1': 985 + resolution: {integrity: sha512-0lgOZB8cl19fHO4eI46YUx2EceQqhgkPSuCGLlGi79L2jwYY1cxeYc1Nae8Aw1xjgW3PKVDLlr3YJ6Bxx8HkWg==} 986 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 987 + peerDependencies: 988 + typescript: '>=4.8.4 <6.0.0' 989 + 990 + '@typescript-eslint/type-utils@8.57.1': 991 + resolution: {integrity: sha512-+Bwwm0ScukFdyoJsh2u6pp4S9ktegF98pYUU0hkphOOqdMB+1sNQhIz8y5E9+4pOioZijrkfNO/HUJVAFFfPKA==} 992 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 993 + peerDependencies: 994 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 995 + typescript: '>=4.8.4 <6.0.0' 996 + 997 + '@typescript-eslint/types@8.57.1': 998 + resolution: {integrity: sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==} 999 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1000 + 1001 + '@typescript-eslint/typescript-estree@8.57.1': 1002 + resolution: {integrity: sha512-ybe2hS9G6pXpqGtPli9Gx9quNV0TWLOmh58ADlmZe9DguLq0tiAKVjirSbtM1szG6+QH6rVXyU6GTLQbWnMY+g==} 1003 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1004 + peerDependencies: 1005 + typescript: '>=4.8.4 <6.0.0' 1006 + 1007 + '@typescript-eslint/utils@8.57.1': 1008 + resolution: {integrity: sha512-XUNSJ/lEVFttPMMoDVA2r2bwrl8/oPx8cURtczkSEswY5T3AeLmCy+EKWQNdL4u0MmAHOjcWrqJp2cdvgjn8dQ==} 1009 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1010 + peerDependencies: 1011 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 1012 + typescript: '>=4.8.4 <6.0.0' 1013 + 1014 + '@typescript-eslint/visitor-keys@8.57.1': 1015 + resolution: {integrity: sha512-YWnmJkXbofiz9KbnbbwuA2rpGkFPLbAIetcCNO6mJ8gdhdZ/v7WDXsoGFAJuM6ikUFKTlSQnjWnVO4ux+UzS6A==} 1016 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1017 + 1018 + '@unrs/resolver-binding-android-arm-eabi@1.11.1': 1019 + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} 1020 + cpu: [arm] 1021 + os: [android] 1022 + 1023 + '@unrs/resolver-binding-android-arm64@1.11.1': 1024 + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} 1025 + cpu: [arm64] 1026 + os: [android] 1027 + 1028 + '@unrs/resolver-binding-darwin-arm64@1.11.1': 1029 + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} 1030 + cpu: [arm64] 1031 + os: [darwin] 1032 + 1033 + '@unrs/resolver-binding-darwin-x64@1.11.1': 1034 + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} 1035 + cpu: [x64] 1036 + os: [darwin] 1037 + 1038 + '@unrs/resolver-binding-freebsd-x64@1.11.1': 1039 + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} 1040 + cpu: [x64] 1041 + os: [freebsd] 1042 + 1043 + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': 1044 + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} 1045 + cpu: [arm] 1046 + os: [linux] 1047 + 1048 + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': 1049 + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} 1050 + cpu: [arm] 1051 + os: [linux] 1052 + 1053 + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': 1054 + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} 1055 + cpu: [arm64] 1056 + os: [linux] 1057 + libc: [glibc] 1058 + 1059 + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': 1060 + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} 1061 + cpu: [arm64] 1062 + os: [linux] 1063 + libc: [musl] 1064 + 1065 + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': 1066 + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} 1067 + cpu: [ppc64] 1068 + os: [linux] 1069 + libc: [glibc] 1070 + 1071 + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': 1072 + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} 1073 + cpu: [riscv64] 1074 + os: [linux] 1075 + libc: [glibc] 1076 + 1077 + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': 1078 + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} 1079 + cpu: [riscv64] 1080 + os: [linux] 1081 + libc: [musl] 1082 + 1083 + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': 1084 + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} 1085 + cpu: [s390x] 1086 + os: [linux] 1087 + libc: [glibc] 1088 + 1089 + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': 1090 + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} 1091 + cpu: [x64] 1092 + os: [linux] 1093 + libc: [glibc] 1094 + 1095 + '@unrs/resolver-binding-linux-x64-musl@1.11.1': 1096 + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} 1097 + cpu: [x64] 1098 + os: [linux] 1099 + libc: [musl] 1100 + 1101 + '@unrs/resolver-binding-wasm32-wasi@1.11.1': 1102 + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} 1103 + engines: {node: '>=14.0.0'} 1104 + cpu: [wasm32] 1105 + 1106 + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': 1107 + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} 1108 + cpu: [arm64] 1109 + os: [win32] 1110 + 1111 + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': 1112 + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} 1113 + cpu: [ia32] 1114 + os: [win32] 1115 + 1116 + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': 1117 + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} 1118 + cpu: [x64] 1119 + os: [win32] 1120 + 1121 + '@vitejs/plugin-react@5.2.0': 1122 + resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==} 1123 + engines: {node: ^20.19.0 || >=22.12.0} 1124 + peerDependencies: 1125 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 1126 + 1127 + '@vitest/expect@3.2.4': 1128 + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} 1129 + 1130 + '@vitest/mocker@3.2.4': 1131 + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} 1132 + peerDependencies: 1133 + msw: ^2.4.9 1134 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 1135 + peerDependenciesMeta: 1136 + msw: 1137 + optional: true 1138 + vite: 1139 + optional: true 1140 + 1141 + '@vitest/pretty-format@3.2.4': 1142 + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} 1143 + 1144 + '@vitest/runner@3.2.4': 1145 + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} 1146 + 1147 + '@vitest/snapshot@3.2.4': 1148 + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} 1149 + 1150 + '@vitest/spy@3.2.4': 1151 + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} 1152 + 1153 + '@vitest/utils@3.2.4': 1154 + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} 1155 + 1156 + acorn-jsx@5.3.2: 1157 + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 1158 + peerDependencies: 1159 + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 1160 + 1161 + acorn@8.16.0: 1162 + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} 1163 + engines: {node: '>=0.4.0'} 1164 + hasBin: true 1165 + 1166 + agent-base@7.1.4: 1167 + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} 1168 + engines: {node: '>= 14'} 1169 + 1170 + ajv@6.14.0: 1171 + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} 1172 + 1173 + ansi-regex@5.0.1: 1174 + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1175 + engines: {node: '>=8'} 1176 + 1177 + ansi-styles@5.2.0: 1178 + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 1179 + engines: {node: '>=10'} 1180 + 1181 + ansis@4.2.0: 1182 + resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} 1183 + engines: {node: '>=14'} 1184 + 1185 + anymatch@3.1.3: 1186 + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1187 + engines: {node: '>= 8'} 1188 + 1189 + aria-query@5.3.0: 1190 + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 1191 + 1192 + assertion-error@2.0.1: 1193 + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} 1194 + engines: {node: '>=12'} 1195 + 1196 + ast-types@0.16.1: 1197 + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} 1198 + engines: {node: '>=4'} 1199 + 1200 + babel-dead-code-elimination@1.0.12: 1201 + resolution: {integrity: sha512-GERT7L2TiYcYDtYk1IpD+ASAYXjKbLTDPhBtYj7X1NuRMDTMtAx9kyBenub1Ev41lo91OHCKdmP+egTDmfQ7Ig==} 1202 + 1203 + balanced-match@4.0.4: 1204 + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} 1205 + engines: {node: 18 || 20 || >=22} 1206 + 1207 + baseline-browser-mapping@2.10.10: 1208 + resolution: {integrity: sha512-sUoJ3IMxx4AyRqO4MLeHlnGDkyXRoUG0/AI9fjK+vS72ekpV0yWVY7O0BVjmBcRtkNcsAO2QDZ4tdKKGoI6YaQ==} 1209 + engines: {node: '>=6.0.0'} 1210 + hasBin: true 1211 + 1212 + bidi-js@1.0.3: 1213 + resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} 1214 + 1215 + binary-extensions@2.3.0: 1216 + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 1217 + engines: {node: '>=8'} 1218 + 1219 + brace-expansion@5.0.4: 1220 + resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} 1221 + engines: {node: 18 || 20 || >=22} 1222 + 1223 + braces@3.0.3: 1224 + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 1225 + engines: {node: '>=8'} 1226 + 1227 + browserslist@4.28.1: 1228 + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} 1229 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 1230 + hasBin: true 1231 + 1232 + cac@6.7.14: 1233 + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 1234 + engines: {node: '>=8'} 1235 + 1236 + caniuse-lite@1.0.30001780: 1237 + resolution: {integrity: sha512-llngX0E7nQci5BPJDqoZSbuZ5Bcs9F5db7EtgfwBerX9XGtkkiO4NwfDDIRzHTTwcYC8vC7bmeUEPGrKlR/TkQ==} 1238 + 1239 + chai@5.3.3: 1240 + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} 1241 + engines: {node: '>=18'} 1242 + 1243 + chalk@5.6.2: 1244 + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} 1245 + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 1246 + 1247 + check-error@2.1.3: 1248 + resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} 1249 + engines: {node: '>= 16'} 1250 + 1251 + chokidar@3.6.0: 1252 + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 1253 + engines: {node: '>= 8.10.0'} 1254 + 1255 + clsx@2.1.1: 1256 + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 1257 + engines: {node: '>=6'} 1258 + 1259 + comment-parser@1.4.5: 1260 + resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} 1261 + engines: {node: '>= 12.0.0'} 1262 + 1263 + convert-source-map@2.0.0: 1264 + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1265 + 1266 + cookie-es@2.0.0: 1267 + resolution: {integrity: sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==} 1268 + 1269 + cross-spawn@7.0.6: 1270 + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 1271 + engines: {node: '>= 8'} 1272 + 1273 + css-tree@3.2.1: 1274 + resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} 1275 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 1276 + 1277 + cssesc@3.0.0: 1278 + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1279 + engines: {node: '>=4'} 1280 + hasBin: true 1281 + 1282 + cssstyle@6.2.0: 1283 + resolution: {integrity: sha512-Fm5NvhYathRnXNVndkUsCCuR63DCLVVwGOOwQw782coXFi5HhkXdu289l59HlXZBawsyNccXfWRYvLzcDCdDig==} 1284 + engines: {node: '>=20'} 1285 + 1286 + csstype@3.2.3: 1287 + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} 1288 + 1289 + data-urls@7.0.0: 1290 + resolution: {integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==} 1291 + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} 1292 + 1293 + dayjs@1.11.20: 1294 + resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} 1295 + 1296 + debug@4.4.3: 1297 + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 1298 + engines: {node: '>=6.0'} 1299 + peerDependencies: 1300 + supports-color: '*' 1301 + peerDependenciesMeta: 1302 + supports-color: 1303 + optional: true 1304 + 1305 + decimal.js@10.6.0: 1306 + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} 1307 + 1308 + deep-eql@5.0.2: 1309 + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} 1310 + engines: {node: '>=6'} 1311 + 1312 + deep-is@0.1.4: 1313 + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1314 + 1315 + dequal@2.0.3: 1316 + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 1317 + engines: {node: '>=6'} 1318 + 1319 + detect-libc@2.1.2: 1320 + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 1321 + engines: {node: '>=8'} 1322 + 1323 + diff@8.0.3: 1324 + resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} 1325 + engines: {node: '>=0.3.1'} 1326 + 1327 + dom-accessibility-api@0.5.16: 1328 + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} 1329 + 1330 + electron-to-chromium@1.5.321: 1331 + resolution: {integrity: sha512-L2C7Q279W2D/J4PLZLk7sebOILDSWos7bMsMNN06rK482umHUrh/3lM8G7IlHFOYip2oAg5nha1rCMxr/rs6ZQ==} 1332 + 1333 + enhanced-resolve@5.20.1: 1334 + resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} 1335 + engines: {node: '>=10.13.0'} 1336 + 1337 + entities@6.0.1: 1338 + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} 1339 + engines: {node: '>=0.12'} 1340 + 1341 + es-module-lexer@1.7.0: 1342 + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 1343 + 1344 + esbuild@0.27.4: 1345 + resolution: {integrity: sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==} 1346 + engines: {node: '>=18'} 1347 + hasBin: true 1348 + 1349 + escalade@3.2.0: 1350 + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 1351 + engines: {node: '>=6'} 1352 + 1353 + escape-string-regexp@4.0.0: 1354 + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1355 + engines: {node: '>=10'} 1356 + 1357 + eslint-compat-utils@0.5.1: 1358 + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} 1359 + engines: {node: '>=12'} 1360 + peerDependencies: 1361 + eslint: '>=6.0.0' 1362 + 1363 + eslint-import-context@0.1.9: 1364 + resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} 1365 + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 1366 + peerDependencies: 1367 + unrs-resolver: ^1.0.0 1368 + peerDependenciesMeta: 1369 + unrs-resolver: 1370 + optional: true 1371 + 1372 + eslint-plugin-es-x@7.8.0: 1373 + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} 1374 + engines: {node: ^14.18.0 || >=16.0.0} 1375 + peerDependencies: 1376 + eslint: '>=8' 1377 + 1378 + eslint-plugin-import-x@4.16.2: 1379 + resolution: {integrity: sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==} 1380 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1381 + peerDependencies: 1382 + '@typescript-eslint/utils': ^8.56.0 1383 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 1384 + eslint-import-resolver-node: '*' 1385 + peerDependenciesMeta: 1386 + '@typescript-eslint/utils': 1387 + optional: true 1388 + eslint-import-resolver-node: 1389 + optional: true 1390 + 1391 + eslint-plugin-n@17.24.0: 1392 + resolution: {integrity: sha512-/gC7/KAYmfNnPNOb3eu8vw+TdVnV0zhdQwexsw6FLXbhzroVj20vRn2qL8lDWDGnAQ2J8DhdfvXxX9EoxvERvw==} 1393 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1394 + peerDependencies: 1395 + eslint: '>=8.23.0' 1396 + 1397 + eslint-scope@9.1.2: 1398 + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} 1399 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 1400 + 1401 + eslint-visitor-keys@3.4.3: 1402 + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1403 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1404 + 1405 + eslint-visitor-keys@4.2.1: 1406 + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} 1407 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1408 + 1409 + eslint-visitor-keys@5.0.1: 1410 + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} 1411 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 1412 + 1413 + eslint@10.1.0: 1414 + resolution: {integrity: sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA==} 1415 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 1416 + hasBin: true 1417 + peerDependencies: 1418 + jiti: '*' 1419 + peerDependenciesMeta: 1420 + jiti: 1421 + optional: true 1422 + 1423 + espree@10.4.0: 1424 + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} 1425 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1426 + 1427 + espree@11.2.0: 1428 + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} 1429 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 1430 + 1431 + esprima@4.0.1: 1432 + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1433 + engines: {node: '>=4'} 1434 + hasBin: true 1435 + 1436 + esquery@1.7.0: 1437 + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} 1438 + engines: {node: '>=0.10'} 1439 + 1440 + esrecurse@4.3.0: 1441 + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1442 + engines: {node: '>=4.0'} 1443 + 1444 + estraverse@5.3.0: 1445 + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1446 + engines: {node: '>=4.0'} 1447 + 1448 + estree-walker@3.0.3: 1449 + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 1450 + 1451 + esutils@2.0.3: 1452 + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1453 + engines: {node: '>=0.10.0'} 1454 + 1455 + expect-type@1.3.0: 1456 + resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} 1457 + engines: {node: '>=12.0.0'} 1458 + 1459 + fast-deep-equal@3.1.3: 1460 + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1461 + 1462 + fast-json-stable-stringify@2.1.0: 1463 + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1464 + 1465 + fast-levenshtein@2.0.6: 1466 + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1467 + 1468 + fdir@6.5.0: 1469 + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} 1470 + engines: {node: '>=12.0.0'} 1471 + peerDependencies: 1472 + picomatch: ^3 || ^4 1473 + peerDependenciesMeta: 1474 + picomatch: 1475 + optional: true 1476 + 1477 + file-entry-cache@8.0.0: 1478 + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 1479 + engines: {node: '>=16.0.0'} 1480 + 1481 + fill-range@7.1.1: 1482 + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1483 + engines: {node: '>=8'} 1484 + 1485 + find-up@5.0.0: 1486 + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1487 + engines: {node: '>=10'} 1488 + 1489 + flat-cache@4.0.1: 1490 + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 1491 + engines: {node: '>=16'} 1492 + 1493 + flatted@3.4.2: 1494 + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} 1495 + 1496 + fsevents@2.3.3: 1497 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1498 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1499 + os: [darwin] 1500 + 1501 + gensync@1.0.0-beta.2: 1502 + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1503 + engines: {node: '>=6.9.0'} 1504 + 1505 + get-tsconfig@4.13.6: 1506 + resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} 1507 + 1508 + glob-parent@5.1.2: 1509 + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1510 + engines: {node: '>= 6'} 1511 + 1512 + glob-parent@6.0.2: 1513 + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1514 + engines: {node: '>=10.13.0'} 1515 + 1516 + globals@15.15.0: 1517 + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} 1518 + engines: {node: '>=18'} 1519 + 1520 + globals@17.4.0: 1521 + resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==} 1522 + engines: {node: '>=18'} 1523 + 1524 + globrex@0.1.2: 1525 + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 1526 + 1527 + goober@2.1.18: 1528 + resolution: {integrity: sha512-2vFqsaDVIT9Gz7N6kAL++pLpp41l3PfDuusHcjnGLfR6+huZkl6ziX+zgVC3ZxpqWhzH6pyDdGrCeDhMIvwaxw==} 1529 + peerDependencies: 1530 + csstype: ^3.0.10 1531 + 1532 + graceful-fs@4.2.11: 1533 + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1534 + 1535 + html-encoding-sniffer@6.0.0: 1536 + resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} 1537 + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} 1538 + 1539 + http-proxy-agent@7.0.2: 1540 + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 1541 + engines: {node: '>= 14'} 1542 + 1543 + https-proxy-agent@7.0.6: 1544 + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 1545 + engines: {node: '>= 14'} 1546 + 1547 + ignore@5.3.2: 1548 + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 1549 + engines: {node: '>= 4'} 1550 + 1551 + ignore@7.0.5: 1552 + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} 1553 + engines: {node: '>= 4'} 1554 + 1555 + imurmurhash@0.1.4: 1556 + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1557 + engines: {node: '>=0.8.19'} 1558 + 1559 + is-binary-path@2.1.0: 1560 + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1561 + engines: {node: '>=8'} 1562 + 1563 + is-extglob@2.1.1: 1564 + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1565 + engines: {node: '>=0.10.0'} 1566 + 1567 + is-glob@4.0.3: 1568 + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1569 + engines: {node: '>=0.10.0'} 1570 + 1571 + is-number@7.0.0: 1572 + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1573 + engines: {node: '>=0.12.0'} 1574 + 1575 + is-potential-custom-element-name@1.0.1: 1576 + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 1577 + 1578 + isbot@5.1.36: 1579 + resolution: {integrity: sha512-C/ZtXyJqDPZ7G7JPr06ApWyYoHjYexQbS6hPYD4WYCzpv2Qes6Z+CCEfTX4Owzf+1EJ933PoI2p+B9v7wpGZBQ==} 1580 + engines: {node: '>=18'} 1581 + 1582 + isexe@2.0.0: 1583 + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1584 + 1585 + jiti@2.6.1: 1586 + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} 1587 + hasBin: true 1588 + 1589 + js-tokens@4.0.0: 1590 + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1591 + 1592 + js-tokens@9.0.1: 1593 + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} 1594 + 1595 + jsdom@28.1.0: 1596 + resolution: {integrity: sha512-0+MoQNYyr2rBHqO1xilltfDjV9G7ymYGlAUazgcDLQaUf8JDHbuGwsxN6U9qWaElZ4w1B2r7yEGIL3GdeW3Rug==} 1597 + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} 1598 + peerDependencies: 1599 + canvas: ^3.0.0 1600 + peerDependenciesMeta: 1601 + canvas: 1602 + optional: true 1603 + 1604 + jsesc@3.1.0: 1605 + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 1606 + engines: {node: '>=6'} 1607 + hasBin: true 1608 + 1609 + json-buffer@3.0.1: 1610 + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1611 + 1612 + json-schema-traverse@0.4.1: 1613 + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1614 + 1615 + json-stable-stringify-without-jsonify@1.0.1: 1616 + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1617 + 1618 + json5@2.2.3: 1619 + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1620 + engines: {node: '>=6'} 1621 + hasBin: true 1622 + 1623 + keyv@4.5.4: 1624 + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1625 + 1626 + launch-editor@2.13.2: 1627 + resolution: {integrity: sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==} 1628 + 1629 + levn@0.4.1: 1630 + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1631 + engines: {node: '>= 0.8.0'} 1632 + 1633 + lightningcss-android-arm64@1.32.0: 1634 + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} 1635 + engines: {node: '>= 12.0.0'} 1636 + cpu: [arm64] 1637 + os: [android] 1638 + 1639 + lightningcss-darwin-arm64@1.32.0: 1640 + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} 1641 + engines: {node: '>= 12.0.0'} 1642 + cpu: [arm64] 1643 + os: [darwin] 1644 + 1645 + lightningcss-darwin-x64@1.32.0: 1646 + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} 1647 + engines: {node: '>= 12.0.0'} 1648 + cpu: [x64] 1649 + os: [darwin] 1650 + 1651 + lightningcss-freebsd-x64@1.32.0: 1652 + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} 1653 + engines: {node: '>= 12.0.0'} 1654 + cpu: [x64] 1655 + os: [freebsd] 1656 + 1657 + lightningcss-linux-arm-gnueabihf@1.32.0: 1658 + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} 1659 + engines: {node: '>= 12.0.0'} 1660 + cpu: [arm] 1661 + os: [linux] 1662 + 1663 + lightningcss-linux-arm64-gnu@1.32.0: 1664 + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} 1665 + engines: {node: '>= 12.0.0'} 1666 + cpu: [arm64] 1667 + os: [linux] 1668 + libc: [glibc] 1669 + 1670 + lightningcss-linux-arm64-musl@1.32.0: 1671 + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} 1672 + engines: {node: '>= 12.0.0'} 1673 + cpu: [arm64] 1674 + os: [linux] 1675 + libc: [musl] 1676 + 1677 + lightningcss-linux-x64-gnu@1.32.0: 1678 + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} 1679 + engines: {node: '>= 12.0.0'} 1680 + cpu: [x64] 1681 + os: [linux] 1682 + libc: [glibc] 1683 + 1684 + lightningcss-linux-x64-musl@1.32.0: 1685 + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} 1686 + engines: {node: '>= 12.0.0'} 1687 + cpu: [x64] 1688 + os: [linux] 1689 + libc: [musl] 1690 + 1691 + lightningcss-win32-arm64-msvc@1.32.0: 1692 + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} 1693 + engines: {node: '>= 12.0.0'} 1694 + cpu: [arm64] 1695 + os: [win32] 1696 + 1697 + lightningcss-win32-x64-msvc@1.32.0: 1698 + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} 1699 + engines: {node: '>= 12.0.0'} 1700 + cpu: [x64] 1701 + os: [win32] 1702 + 1703 + lightningcss@1.32.0: 1704 + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} 1705 + engines: {node: '>= 12.0.0'} 1706 + 1707 + locate-path@6.0.0: 1708 + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1709 + engines: {node: '>=10'} 1710 + 1711 + loupe@3.2.1: 1712 + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} 1713 + 1714 + lru-cache@11.2.7: 1715 + resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} 1716 + engines: {node: 20 || >=22} 1717 + 1718 + lru-cache@5.1.1: 1719 + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1720 + 1721 + lucide-react@0.545.0: 1722 + resolution: {integrity: sha512-7r1/yUuflQDSt4f1bpn5ZAocyIxcTyVyBBChSVtBKn5M+392cPmI5YJMWOJKk/HUWGm5wg83chlAZtCcGbEZtw==} 1723 + peerDependencies: 1724 + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 1725 + 1726 + lz-string@1.5.0: 1727 + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} 1728 + hasBin: true 1729 + 1730 + magic-string@0.30.21: 1731 + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} 1732 + 1733 + mdn-data@2.27.1: 1734 + resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} 1735 + 1736 + minimatch@10.2.4: 1737 + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} 1738 + engines: {node: 18 || 20 || >=22} 1739 + 1740 + ms@2.1.3: 1741 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1742 + 1743 + nanoid@3.3.11: 1744 + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 1745 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1746 + hasBin: true 1747 + 1748 + napi-postinstall@0.3.4: 1749 + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} 1750 + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 1751 + hasBin: true 1752 + 1753 + natural-compare@1.4.0: 1754 + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1755 + 1756 + node-releases@2.0.36: 1757 + resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} 1758 + 1759 + normalize-path@3.0.0: 1760 + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1761 + engines: {node: '>=0.10.0'} 1762 + 1763 + optionator@0.9.4: 1764 + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1765 + engines: {node: '>= 0.8.0'} 1766 + 1767 + p-limit@3.1.0: 1768 + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1769 + engines: {node: '>=10'} 1770 + 1771 + p-locate@5.0.0: 1772 + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1773 + engines: {node: '>=10'} 1774 + 1775 + parse5@8.0.0: 1776 + resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==} 1777 + 1778 + path-exists@4.0.0: 1779 + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1780 + engines: {node: '>=8'} 1781 + 1782 + path-key@3.1.1: 1783 + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1784 + engines: {node: '>=8'} 1785 + 1786 + pathe@2.0.3: 1787 + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 1788 + 1789 + pathval@2.0.1: 1790 + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} 1791 + engines: {node: '>= 14.16'} 1792 + 1793 + picocolors@1.1.1: 1794 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1795 + 1796 + picomatch@2.3.1: 1797 + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1798 + engines: {node: '>=8.6'} 1799 + 1800 + picomatch@4.0.3: 1801 + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 1802 + engines: {node: '>=12'} 1803 + 1804 + postcss-selector-parser@6.0.10: 1805 + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} 1806 + engines: {node: '>=4'} 1807 + 1808 + postcss@8.5.8: 1809 + resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} 1810 + engines: {node: ^10 || ^12 || >=14} 1811 + 1812 + prelude-ls@1.2.1: 1813 + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1814 + engines: {node: '>= 0.8.0'} 1815 + 1816 + prettier@3.8.1: 1817 + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} 1818 + engines: {node: '>=14'} 1819 + hasBin: true 1820 + 1821 + pretty-format@27.5.1: 1822 + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 1823 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 1824 + 1825 + punycode@2.3.1: 1826 + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1827 + engines: {node: '>=6'} 1828 + 1829 + react-dom@19.2.4: 1830 + resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} 1831 + peerDependencies: 1832 + react: ^19.2.4 1833 + 1834 + react-is@17.0.2: 1835 + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 1836 + 1837 + react-refresh@0.18.0: 1838 + resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} 1839 + engines: {node: '>=0.10.0'} 1840 + 1841 + react@19.2.4: 1842 + resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} 1843 + engines: {node: '>=0.10.0'} 1844 + 1845 + readdirp@3.6.0: 1846 + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1847 + engines: {node: '>=8.10.0'} 1848 + 1849 + recast@0.23.11: 1850 + resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} 1851 + engines: {node: '>= 4'} 1852 + 1853 + require-from-string@2.0.2: 1854 + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 1855 + engines: {node: '>=0.10.0'} 1856 + 1857 + resolve-pkg-maps@1.0.0: 1858 + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 1859 + 1860 + rollup@4.60.0: 1861 + resolution: {integrity: sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==} 1862 + engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1863 + hasBin: true 1864 + 1865 + saxes@6.0.0: 1866 + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} 1867 + engines: {node: '>=v12.22.7'} 1868 + 1869 + scheduler@0.27.0: 1870 + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} 1871 + 1872 + semver@6.3.1: 1873 + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1874 + hasBin: true 1875 + 1876 + semver@7.7.4: 1877 + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} 1878 + engines: {node: '>=10'} 1879 + hasBin: true 1880 + 1881 + seroval-plugins@1.5.1: 1882 + resolution: {integrity: sha512-4FbuZ/TMl02sqv0RTFexu0SP6V+ywaIe5bAWCCEik0fk17BhALgwvUDVF7e3Uvf9pxmwCEJsRPmlkUE6HdzLAw==} 1883 + engines: {node: '>=10'} 1884 + peerDependencies: 1885 + seroval: ^1.0 1886 + 1887 + seroval@1.5.1: 1888 + resolution: {integrity: sha512-OwrZRZAfhHww0WEnKHDY8OM0U/Qs8OTfIDWhUD4BLpNJUfXK4cGmjiagGze086m+mhI+V2nD0gfbHEnJjb9STA==} 1889 + engines: {node: '>=10'} 1890 + 1891 + shebang-command@2.0.0: 1892 + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1893 + engines: {node: '>=8'} 1894 + 1895 + shebang-regex@3.0.0: 1896 + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1897 + engines: {node: '>=8'} 1898 + 1899 + shell-quote@1.8.3: 1900 + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} 1901 + engines: {node: '>= 0.4'} 1902 + 1903 + siginfo@2.0.0: 1904 + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 1905 + 1906 + solid-js@1.9.11: 1907 + resolution: {integrity: sha512-WEJtcc5mkh/BnHA6Yrg4whlF8g6QwpmXXRg4P2ztPmcKeHHlH4+djYecBLhSpecZY2RRECXYUwIc/C2r3yzQ4Q==} 1908 + 1909 + source-map-js@1.2.1: 1910 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1911 + engines: {node: '>=0.10.0'} 1912 + 1913 + source-map@0.6.1: 1914 + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1915 + engines: {node: '>=0.10.0'} 1916 + 1917 + source-map@0.7.6: 1918 + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} 1919 + engines: {node: '>= 12'} 1920 + 1921 + stable-hash-x@0.2.0: 1922 + resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} 1923 + engines: {node: '>=12.0.0'} 1924 + 1925 + stackback@0.0.2: 1926 + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 1927 + 1928 + std-env@3.10.0: 1929 + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} 1930 + 1931 + strip-literal@3.1.0: 1932 + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} 1933 + 1934 + symbol-tree@3.2.4: 1935 + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 1936 + 1937 + tailwindcss@4.2.2: 1938 + resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==} 1939 + 1940 + tapable@2.3.0: 1941 + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} 1942 + engines: {node: '>=6'} 1943 + 1944 + tiny-invariant@1.3.3: 1945 + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} 1946 + 1947 + tinybench@2.9.0: 1948 + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} 1949 + 1950 + tinyexec@0.3.2: 1951 + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 1952 + 1953 + tinyglobby@0.2.15: 1954 + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} 1955 + engines: {node: '>=12.0.0'} 1956 + 1957 + tinypool@1.1.1: 1958 + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} 1959 + engines: {node: ^18.0.0 || >=20.0.0} 1960 + 1961 + tinyrainbow@2.0.0: 1962 + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} 1963 + engines: {node: '>=14.0.0'} 1964 + 1965 + tinyspy@4.0.4: 1966 + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} 1967 + engines: {node: '>=14.0.0'} 1968 + 1969 + tldts-core@7.0.27: 1970 + resolution: {integrity: sha512-YQ7uPjgWUibIK6DW5lrKujGwUKhLevU4hcGbP5O6TcIUb+oTjJYJVWPS4nZsIHrEEEG6myk/oqAJUEQmpZrHsg==} 1971 + 1972 + tldts@7.0.27: 1973 + resolution: {integrity: sha512-I4FZcVFcqCRuT0ph6dCDpPuO4Xgzvh+spkcTr1gK7peIvxWauoloVO0vuy1FQnijT63ss6AsHB6+OIM4aXHbPg==} 1974 + hasBin: true 1975 + 1976 + to-regex-range@5.0.1: 1977 + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1978 + engines: {node: '>=8.0'} 1979 + 1980 + tough-cookie@6.0.1: 1981 + resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==} 1982 + engines: {node: '>=16'} 1983 + 1984 + tr46@6.0.0: 1985 + resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} 1986 + engines: {node: '>=20'} 1987 + 1988 + ts-api-utils@2.5.0: 1989 + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} 1990 + engines: {node: '>=18.12'} 1991 + peerDependencies: 1992 + typescript: '>=4.8.4' 1993 + 1994 + ts-declaration-location@1.0.7: 1995 + resolution: {integrity: sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==} 1996 + peerDependencies: 1997 + typescript: '>=4.0.0' 1998 + 1999 + tsconfck@3.1.6: 2000 + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} 2001 + engines: {node: ^18 || >=20} 2002 + hasBin: true 2003 + peerDependencies: 2004 + typescript: ^5.0.0 2005 + peerDependenciesMeta: 2006 + typescript: 2007 + optional: true 2008 + 2009 + tslib@2.8.1: 2010 + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 2011 + 2012 + tsx@4.21.0: 2013 + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} 2014 + engines: {node: '>=18.0.0'} 2015 + hasBin: true 2016 + 2017 + type-check@0.4.0: 2018 + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2019 + engines: {node: '>= 0.8.0'} 2020 + 2021 + typescript-eslint@8.57.1: 2022 + resolution: {integrity: sha512-fLvZWf+cAGw3tqMCYzGIU6yR8K+Y9NT2z23RwOjlNFF2HwSB3KhdEFI5lSBv8tNmFkkBShSjsCjzx1vahZfISA==} 2023 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2024 + peerDependencies: 2025 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 2026 + typescript: '>=4.8.4 <6.0.0' 2027 + 2028 + typescript@5.9.3: 2029 + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} 2030 + engines: {node: '>=14.17'} 2031 + hasBin: true 2032 + 2033 + undici-types@6.21.0: 2034 + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} 2035 + 2036 + undici@7.24.5: 2037 + resolution: {integrity: sha512-3IWdCpjgxp15CbJnsi/Y9TCDE7HWVN19j1hmzVhoAkY/+CJx449tVxT5wZc1Gwg8J+P0LWvzlBzxYRnHJ+1i7Q==} 2038 + engines: {node: '>=20.18.1'} 2039 + 2040 + unplugin@2.3.11: 2041 + resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} 2042 + engines: {node: '>=18.12.0'} 2043 + 2044 + unrs-resolver@1.11.1: 2045 + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} 2046 + 2047 + update-browserslist-db@1.2.3: 2048 + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} 2049 + hasBin: true 2050 + peerDependencies: 2051 + browserslist: '>= 4.21.0' 2052 + 2053 + uri-js@4.4.1: 2054 + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2055 + 2056 + use-sync-external-store@1.6.0: 2057 + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} 2058 + peerDependencies: 2059 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 2060 + 2061 + util-deprecate@1.0.2: 2062 + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2063 + 2064 + vite-node@3.2.4: 2065 + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} 2066 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 2067 + hasBin: true 2068 + 2069 + vite-tsconfig-paths@5.1.4: 2070 + resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} 2071 + peerDependencies: 2072 + vite: '*' 2073 + peerDependenciesMeta: 2074 + vite: 2075 + optional: true 2076 + 2077 + vite@7.3.1: 2078 + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} 2079 + engines: {node: ^20.19.0 || >=22.12.0} 2080 + hasBin: true 2081 + peerDependencies: 2082 + '@types/node': ^20.19.0 || >=22.12.0 2083 + jiti: '>=1.21.0' 2084 + less: ^4.0.0 2085 + lightningcss: ^1.21.0 2086 + sass: ^1.70.0 2087 + sass-embedded: ^1.70.0 2088 + stylus: '>=0.54.8' 2089 + sugarss: ^5.0.0 2090 + terser: ^5.16.0 2091 + tsx: ^4.8.1 2092 + yaml: ^2.4.2 2093 + peerDependenciesMeta: 2094 + '@types/node': 2095 + optional: true 2096 + jiti: 2097 + optional: true 2098 + less: 2099 + optional: true 2100 + lightningcss: 2101 + optional: true 2102 + sass: 2103 + optional: true 2104 + sass-embedded: 2105 + optional: true 2106 + stylus: 2107 + optional: true 2108 + sugarss: 2109 + optional: true 2110 + terser: 2111 + optional: true 2112 + tsx: 2113 + optional: true 2114 + yaml: 2115 + optional: true 2116 + 2117 + vitest@3.2.4: 2118 + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} 2119 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 2120 + hasBin: true 2121 + peerDependencies: 2122 + '@edge-runtime/vm': '*' 2123 + '@types/debug': ^4.1.12 2124 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 2125 + '@vitest/browser': 3.2.4 2126 + '@vitest/ui': 3.2.4 2127 + happy-dom: '*' 2128 + jsdom: '*' 2129 + peerDependenciesMeta: 2130 + '@edge-runtime/vm': 2131 + optional: true 2132 + '@types/debug': 2133 + optional: true 2134 + '@types/node': 2135 + optional: true 2136 + '@vitest/browser': 2137 + optional: true 2138 + '@vitest/ui': 2139 + optional: true 2140 + happy-dom: 2141 + optional: true 2142 + jsdom: 2143 + optional: true 2144 + 2145 + vue-eslint-parser@10.4.0: 2146 + resolution: {integrity: sha512-Vxi9pJdbN3ZnVGLODVtZ7y4Y2kzAAE2Cm0CZ3ZDRvydVYxZ6VrnBhLikBsRS+dpwj4Jv4UCv21PTEwF5rQ9WXg==} 2147 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2148 + peerDependencies: 2149 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 2150 + 2151 + w3c-xmlserializer@5.0.0: 2152 + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} 2153 + engines: {node: '>=18'} 2154 + 2155 + webidl-conversions@8.0.1: 2156 + resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==} 2157 + engines: {node: '>=20'} 2158 + 2159 + webpack-virtual-modules@0.6.2: 2160 + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} 2161 + 2162 + whatwg-mimetype@5.0.0: 2163 + resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==} 2164 + engines: {node: '>=20'} 2165 + 2166 + whatwg-url@16.0.1: 2167 + resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==} 2168 + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} 2169 + 2170 + which@2.0.2: 2171 + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2172 + engines: {node: '>= 8'} 2173 + hasBin: true 2174 + 2175 + why-is-node-running@2.3.0: 2176 + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} 2177 + engines: {node: '>=8'} 2178 + hasBin: true 2179 + 2180 + word-wrap@1.2.5: 2181 + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 2182 + engines: {node: '>=0.10.0'} 2183 + 2184 + ws@8.20.0: 2185 + resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} 2186 + engines: {node: '>=10.0.0'} 2187 + peerDependencies: 2188 + bufferutil: ^4.0.1 2189 + utf-8-validate: '>=5.0.2' 2190 + peerDependenciesMeta: 2191 + bufferutil: 2192 + optional: true 2193 + utf-8-validate: 2194 + optional: true 2195 + 2196 + xml-name-validator@5.0.0: 2197 + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} 2198 + engines: {node: '>=18'} 2199 + 2200 + xmlchars@2.2.0: 2201 + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 2202 + 2203 + yallist@3.1.1: 2204 + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 2205 + 2206 + yocto-queue@0.1.0: 2207 + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2208 + engines: {node: '>=10'} 2209 + 2210 + zod@3.25.76: 2211 + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} 2212 + 2213 + snapshots: 2214 + 2215 + '@acemir/cssom@0.9.31': {} 2216 + 2217 + '@asamuzakjp/css-color@5.0.1': 2218 + dependencies: 2219 + '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) 2220 + '@csstools/css-color-parser': 4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) 2221 + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) 2222 + '@csstools/css-tokenizer': 4.0.0 2223 + lru-cache: 11.2.7 2224 + 2225 + '@asamuzakjp/dom-selector@6.8.1': 2226 + dependencies: 2227 + '@asamuzakjp/nwsapi': 2.3.9 2228 + bidi-js: 1.0.3 2229 + css-tree: 3.2.1 2230 + is-potential-custom-element-name: 1.0.1 2231 + lru-cache: 11.2.7 2232 + 2233 + '@asamuzakjp/nwsapi@2.3.9': {} 2234 + 2235 + '@babel/code-frame@7.29.0': 2236 + dependencies: 2237 + '@babel/helper-validator-identifier': 7.28.5 2238 + js-tokens: 4.0.0 2239 + picocolors: 1.1.1 2240 + 2241 + '@babel/compat-data@7.29.0': {} 2242 + 2243 + '@babel/core@7.29.0': 2244 + dependencies: 2245 + '@babel/code-frame': 7.29.0 2246 + '@babel/generator': 7.29.1 2247 + '@babel/helper-compilation-targets': 7.28.6 2248 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) 2249 + '@babel/helpers': 7.29.2 2250 + '@babel/parser': 7.29.2 2251 + '@babel/template': 7.28.6 2252 + '@babel/traverse': 7.29.0 2253 + '@babel/types': 7.29.0 2254 + '@jridgewell/remapping': 2.3.5 2255 + convert-source-map: 2.0.0 2256 + debug: 4.4.3 2257 + gensync: 1.0.0-beta.2 2258 + json5: 2.2.3 2259 + semver: 6.3.1 2260 + transitivePeerDependencies: 2261 + - supports-color 2262 + 2263 + '@babel/generator@7.29.1': 2264 + dependencies: 2265 + '@babel/parser': 7.29.2 2266 + '@babel/types': 7.29.0 2267 + '@jridgewell/gen-mapping': 0.3.13 2268 + '@jridgewell/trace-mapping': 0.3.31 2269 + jsesc: 3.1.0 2270 + 2271 + '@babel/helper-compilation-targets@7.28.6': 2272 + dependencies: 2273 + '@babel/compat-data': 7.29.0 2274 + '@babel/helper-validator-option': 7.27.1 2275 + browserslist: 4.28.1 2276 + lru-cache: 5.1.1 2277 + semver: 6.3.1 2278 + 2279 + '@babel/helper-globals@7.28.0': {} 2280 + 2281 + '@babel/helper-module-imports@7.28.6': 2282 + dependencies: 2283 + '@babel/traverse': 7.29.0 2284 + '@babel/types': 7.29.0 2285 + transitivePeerDependencies: 2286 + - supports-color 2287 + 2288 + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': 2289 + dependencies: 2290 + '@babel/core': 7.29.0 2291 + '@babel/helper-module-imports': 7.28.6 2292 + '@babel/helper-validator-identifier': 7.28.5 2293 + '@babel/traverse': 7.29.0 2294 + transitivePeerDependencies: 2295 + - supports-color 2296 + 2297 + '@babel/helper-plugin-utils@7.28.6': {} 2298 + 2299 + '@babel/helper-string-parser@7.27.1': {} 2300 + 2301 + '@babel/helper-validator-identifier@7.28.5': {} 2302 + 2303 + '@babel/helper-validator-option@7.27.1': {} 2304 + 2305 + '@babel/helpers@7.29.2': 2306 + dependencies: 2307 + '@babel/template': 7.28.6 2308 + '@babel/types': 7.29.0 2309 + 2310 + '@babel/parser@7.29.2': 2311 + dependencies: 2312 + '@babel/types': 7.29.0 2313 + 2314 + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': 2315 + dependencies: 2316 + '@babel/core': 7.29.0 2317 + '@babel/helper-plugin-utils': 7.28.6 2318 + 2319 + '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)': 2320 + dependencies: 2321 + '@babel/core': 7.29.0 2322 + '@babel/helper-plugin-utils': 7.28.6 2323 + 2324 + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': 2325 + dependencies: 2326 + '@babel/core': 7.29.0 2327 + '@babel/helper-plugin-utils': 7.28.6 2328 + 2329 + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': 2330 + dependencies: 2331 + '@babel/core': 7.29.0 2332 + '@babel/helper-plugin-utils': 7.28.6 2333 + 2334 + '@babel/runtime@7.29.2': {} 2335 + 2336 + '@babel/template@7.28.6': 2337 + dependencies: 2338 + '@babel/code-frame': 7.29.0 2339 + '@babel/parser': 7.29.2 2340 + '@babel/types': 7.29.0 2341 + 2342 + '@babel/traverse@7.29.0': 2343 + dependencies: 2344 + '@babel/code-frame': 7.29.0 2345 + '@babel/generator': 7.29.1 2346 + '@babel/helper-globals': 7.28.0 2347 + '@babel/parser': 7.29.2 2348 + '@babel/template': 7.28.6 2349 + '@babel/types': 7.29.0 2350 + debug: 4.4.3 2351 + transitivePeerDependencies: 2352 + - supports-color 2353 + 2354 + '@babel/types@7.29.0': 2355 + dependencies: 2356 + '@babel/helper-string-parser': 7.27.1 2357 + '@babel/helper-validator-identifier': 7.28.5 2358 + 2359 + '@bramus/specificity@2.4.2': 2360 + dependencies: 2361 + css-tree: 3.2.1 2362 + 2363 + '@csstools/color-helpers@6.0.2': {} 2364 + 2365 + '@csstools/css-calc@3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': 2366 + dependencies: 2367 + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) 2368 + '@csstools/css-tokenizer': 4.0.0 2369 + 2370 + '@csstools/css-color-parser@4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': 2371 + dependencies: 2372 + '@csstools/color-helpers': 6.0.2 2373 + '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) 2374 + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) 2375 + '@csstools/css-tokenizer': 4.0.0 2376 + 2377 + '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)': 2378 + dependencies: 2379 + '@csstools/css-tokenizer': 4.0.0 2380 + 2381 + '@csstools/css-syntax-patches-for-csstree@1.1.1(css-tree@3.2.1)': 2382 + optionalDependencies: 2383 + css-tree: 3.2.1 2384 + 2385 + '@csstools/css-tokenizer@4.0.0': {} 2386 + 2387 + '@emnapi/core@1.9.1': 2388 + dependencies: 2389 + '@emnapi/wasi-threads': 1.2.0 2390 + tslib: 2.8.1 2391 + optional: true 2392 + 2393 + '@emnapi/runtime@1.9.1': 2394 + dependencies: 2395 + tslib: 2.8.1 2396 + optional: true 2397 + 2398 + '@emnapi/wasi-threads@1.2.0': 2399 + dependencies: 2400 + tslib: 2.8.1 2401 + optional: true 2402 + 2403 + '@esbuild/aix-ppc64@0.27.4': 2404 + optional: true 2405 + 2406 + '@esbuild/android-arm64@0.27.4': 2407 + optional: true 2408 + 2409 + '@esbuild/android-arm@0.27.4': 2410 + optional: true 2411 + 2412 + '@esbuild/android-x64@0.27.4': 2413 + optional: true 2414 + 2415 + '@esbuild/darwin-arm64@0.27.4': 2416 + optional: true 2417 + 2418 + '@esbuild/darwin-x64@0.27.4': 2419 + optional: true 2420 + 2421 + '@esbuild/freebsd-arm64@0.27.4': 2422 + optional: true 2423 + 2424 + '@esbuild/freebsd-x64@0.27.4': 2425 + optional: true 2426 + 2427 + '@esbuild/linux-arm64@0.27.4': 2428 + optional: true 2429 + 2430 + '@esbuild/linux-arm@0.27.4': 2431 + optional: true 2432 + 2433 + '@esbuild/linux-ia32@0.27.4': 2434 + optional: true 2435 + 2436 + '@esbuild/linux-loong64@0.27.4': 2437 + optional: true 2438 + 2439 + '@esbuild/linux-mips64el@0.27.4': 2440 + optional: true 2441 + 2442 + '@esbuild/linux-ppc64@0.27.4': 2443 + optional: true 2444 + 2445 + '@esbuild/linux-riscv64@0.27.4': 2446 + optional: true 2447 + 2448 + '@esbuild/linux-s390x@0.27.4': 2449 + optional: true 2450 + 2451 + '@esbuild/linux-x64@0.27.4': 2452 + optional: true 2453 + 2454 + '@esbuild/netbsd-arm64@0.27.4': 2455 + optional: true 2456 + 2457 + '@esbuild/netbsd-x64@0.27.4': 2458 + optional: true 2459 + 2460 + '@esbuild/openbsd-arm64@0.27.4': 2461 + optional: true 2462 + 2463 + '@esbuild/openbsd-x64@0.27.4': 2464 + optional: true 2465 + 2466 + '@esbuild/openharmony-arm64@0.27.4': 2467 + optional: true 2468 + 2469 + '@esbuild/sunos-x64@0.27.4': 2470 + optional: true 2471 + 2472 + '@esbuild/win32-arm64@0.27.4': 2473 + optional: true 2474 + 2475 + '@esbuild/win32-ia32@0.27.4': 2476 + optional: true 2477 + 2478 + '@esbuild/win32-x64@0.27.4': 2479 + optional: true 2480 + 2481 + '@eslint-community/eslint-utils@4.9.1(eslint@10.1.0(jiti@2.6.1))': 2482 + dependencies: 2483 + eslint: 10.1.0(jiti@2.6.1) 2484 + eslint-visitor-keys: 3.4.3 2485 + 2486 + '@eslint-community/regexpp@4.12.2': {} 2487 + 2488 + '@eslint/config-array@0.23.3': 2489 + dependencies: 2490 + '@eslint/object-schema': 3.0.3 2491 + debug: 4.4.3 2492 + minimatch: 10.2.4 2493 + transitivePeerDependencies: 2494 + - supports-color 2495 + 2496 + '@eslint/config-helpers@0.5.3': 2497 + dependencies: 2498 + '@eslint/core': 1.1.1 2499 + 2500 + '@eslint/core@1.1.1': 2501 + dependencies: 2502 + '@types/json-schema': 7.0.15 2503 + 2504 + '@eslint/js@10.0.1(eslint@10.1.0(jiti@2.6.1))': 2505 + optionalDependencies: 2506 + eslint: 10.1.0(jiti@2.6.1) 2507 + 2508 + '@eslint/object-schema@3.0.3': {} 2509 + 2510 + '@eslint/plugin-kit@0.6.1': 2511 + dependencies: 2512 + '@eslint/core': 1.1.1 2513 + levn: 0.4.1 2514 + 2515 + '@exodus/bytes@1.15.0': {} 2516 + 2517 + '@humanfs/core@0.19.1': {} 2518 + 2519 + '@humanfs/node@0.16.7': 2520 + dependencies: 2521 + '@humanfs/core': 0.19.1 2522 + '@humanwhocodes/retry': 0.4.3 2523 + 2524 + '@humanwhocodes/module-importer@1.0.1': {} 2525 + 2526 + '@humanwhocodes/retry@0.4.3': {} 2527 + 2528 + '@jridgewell/gen-mapping@0.3.13': 2529 + dependencies: 2530 + '@jridgewell/sourcemap-codec': 1.5.5 2531 + '@jridgewell/trace-mapping': 0.3.31 2532 + 2533 + '@jridgewell/remapping@2.3.5': 2534 + dependencies: 2535 + '@jridgewell/gen-mapping': 0.3.13 2536 + '@jridgewell/trace-mapping': 0.3.31 2537 + 2538 + '@jridgewell/resolve-uri@3.1.2': {} 2539 + 2540 + '@jridgewell/sourcemap-codec@1.5.5': {} 2541 + 2542 + '@jridgewell/trace-mapping@0.3.31': 2543 + dependencies: 2544 + '@jridgewell/resolve-uri': 3.1.2 2545 + '@jridgewell/sourcemap-codec': 1.5.5 2546 + 2547 + '@napi-rs/wasm-runtime@0.2.12': 2548 + dependencies: 2549 + '@emnapi/core': 1.9.1 2550 + '@emnapi/runtime': 1.9.1 2551 + '@tybys/wasm-util': 0.10.1 2552 + optional: true 2553 + 2554 + '@package-json/types@0.0.12': {} 2555 + 2556 + '@rolldown/pluginutils@1.0.0-rc.3': {} 2557 + 2558 + '@rollup/rollup-android-arm-eabi@4.60.0': 2559 + optional: true 2560 + 2561 + '@rollup/rollup-android-arm64@4.60.0': 2562 + optional: true 2563 + 2564 + '@rollup/rollup-darwin-arm64@4.60.0': 2565 + optional: true 2566 + 2567 + '@rollup/rollup-darwin-x64@4.60.0': 2568 + optional: true 2569 + 2570 + '@rollup/rollup-freebsd-arm64@4.60.0': 2571 + optional: true 2572 + 2573 + '@rollup/rollup-freebsd-x64@4.60.0': 2574 + optional: true 2575 + 2576 + '@rollup/rollup-linux-arm-gnueabihf@4.60.0': 2577 + optional: true 2578 + 2579 + '@rollup/rollup-linux-arm-musleabihf@4.60.0': 2580 + optional: true 2581 + 2582 + '@rollup/rollup-linux-arm64-gnu@4.60.0': 2583 + optional: true 2584 + 2585 + '@rollup/rollup-linux-arm64-musl@4.60.0': 2586 + optional: true 2587 + 2588 + '@rollup/rollup-linux-loong64-gnu@4.60.0': 2589 + optional: true 2590 + 2591 + '@rollup/rollup-linux-loong64-musl@4.60.0': 2592 + optional: true 2593 + 2594 + '@rollup/rollup-linux-ppc64-gnu@4.60.0': 2595 + optional: true 2596 + 2597 + '@rollup/rollup-linux-ppc64-musl@4.60.0': 2598 + optional: true 2599 + 2600 + '@rollup/rollup-linux-riscv64-gnu@4.60.0': 2601 + optional: true 2602 + 2603 + '@rollup/rollup-linux-riscv64-musl@4.60.0': 2604 + optional: true 2605 + 2606 + '@rollup/rollup-linux-s390x-gnu@4.60.0': 2607 + optional: true 2608 + 2609 + '@rollup/rollup-linux-x64-gnu@4.60.0': 2610 + optional: true 2611 + 2612 + '@rollup/rollup-linux-x64-musl@4.60.0': 2613 + optional: true 2614 + 2615 + '@rollup/rollup-openbsd-x64@4.60.0': 2616 + optional: true 2617 + 2618 + '@rollup/rollup-openharmony-arm64@4.60.0': 2619 + optional: true 2620 + 2621 + '@rollup/rollup-win32-arm64-msvc@4.60.0': 2622 + optional: true 2623 + 2624 + '@rollup/rollup-win32-ia32-msvc@4.60.0': 2625 + optional: true 2626 + 2627 + '@rollup/rollup-win32-x64-gnu@4.60.0': 2628 + optional: true 2629 + 2630 + '@rollup/rollup-win32-x64-msvc@4.60.0': 2631 + optional: true 2632 + 2633 + '@solid-primitives/event-listener@2.4.5(solid-js@1.9.11)': 2634 + dependencies: 2635 + '@solid-primitives/utils': 6.4.0(solid-js@1.9.11) 2636 + solid-js: 1.9.11 2637 + 2638 + '@solid-primitives/keyboard@1.3.5(solid-js@1.9.11)': 2639 + dependencies: 2640 + '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.11) 2641 + '@solid-primitives/rootless': 1.5.3(solid-js@1.9.11) 2642 + '@solid-primitives/utils': 6.4.0(solid-js@1.9.11) 2643 + solid-js: 1.9.11 2644 + 2645 + '@solid-primitives/resize-observer@2.1.5(solid-js@1.9.11)': 2646 + dependencies: 2647 + '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.11) 2648 + '@solid-primitives/rootless': 1.5.3(solid-js@1.9.11) 2649 + '@solid-primitives/static-store': 0.1.3(solid-js@1.9.11) 2650 + '@solid-primitives/utils': 6.4.0(solid-js@1.9.11) 2651 + solid-js: 1.9.11 2652 + 2653 + '@solid-primitives/rootless@1.5.3(solid-js@1.9.11)': 2654 + dependencies: 2655 + '@solid-primitives/utils': 6.4.0(solid-js@1.9.11) 2656 + solid-js: 1.9.11 2657 + 2658 + '@solid-primitives/static-store@0.1.3(solid-js@1.9.11)': 2659 + dependencies: 2660 + '@solid-primitives/utils': 6.4.0(solid-js@1.9.11) 2661 + solid-js: 1.9.11 2662 + 2663 + '@solid-primitives/utils@6.4.0(solid-js@1.9.11)': 2664 + dependencies: 2665 + solid-js: 1.9.11 2666 + 2667 + '@stylistic/eslint-plugin@5.10.0(eslint@10.1.0(jiti@2.6.1))': 2668 + dependencies: 2669 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) 2670 + '@typescript-eslint/types': 8.57.1 2671 + eslint: 10.1.0(jiti@2.6.1) 2672 + eslint-visitor-keys: 4.2.1 2673 + espree: 10.4.0 2674 + estraverse: 5.3.0 2675 + picomatch: 4.0.3 2676 + 2677 + '@tailwindcss/node@4.2.2': 2678 + dependencies: 2679 + '@jridgewell/remapping': 2.3.5 2680 + enhanced-resolve: 5.20.1 2681 + jiti: 2.6.1 2682 + lightningcss: 1.32.0 2683 + magic-string: 0.30.21 2684 + source-map-js: 1.2.1 2685 + tailwindcss: 4.2.2 2686 + 2687 + '@tailwindcss/oxide-android-arm64@4.2.2': 2688 + optional: true 2689 + 2690 + '@tailwindcss/oxide-darwin-arm64@4.2.2': 2691 + optional: true 2692 + 2693 + '@tailwindcss/oxide-darwin-x64@4.2.2': 2694 + optional: true 2695 + 2696 + '@tailwindcss/oxide-freebsd-x64@4.2.2': 2697 + optional: true 2698 + 2699 + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': 2700 + optional: true 2701 + 2702 + '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': 2703 + optional: true 2704 + 2705 + '@tailwindcss/oxide-linux-arm64-musl@4.2.2': 2706 + optional: true 2707 + 2708 + '@tailwindcss/oxide-linux-x64-gnu@4.2.2': 2709 + optional: true 2710 + 2711 + '@tailwindcss/oxide-linux-x64-musl@4.2.2': 2712 + optional: true 2713 + 2714 + '@tailwindcss/oxide-wasm32-wasi@4.2.2': 2715 + optional: true 2716 + 2717 + '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': 2718 + optional: true 2719 + 2720 + '@tailwindcss/oxide-win32-x64-msvc@4.2.2': 2721 + optional: true 2722 + 2723 + '@tailwindcss/oxide@4.2.2': 2724 + optionalDependencies: 2725 + '@tailwindcss/oxide-android-arm64': 4.2.2 2726 + '@tailwindcss/oxide-darwin-arm64': 4.2.2 2727 + '@tailwindcss/oxide-darwin-x64': 4.2.2 2728 + '@tailwindcss/oxide-freebsd-x64': 4.2.2 2729 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2 2730 + '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2 2731 + '@tailwindcss/oxide-linux-arm64-musl': 4.2.2 2732 + '@tailwindcss/oxide-linux-x64-gnu': 4.2.2 2733 + '@tailwindcss/oxide-linux-x64-musl': 4.2.2 2734 + '@tailwindcss/oxide-wasm32-wasi': 4.2.2 2735 + '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 2736 + '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 2737 + 2738 + '@tailwindcss/typography@0.5.19(tailwindcss@4.2.2)': 2739 + dependencies: 2740 + postcss-selector-parser: 6.0.10 2741 + tailwindcss: 4.2.2 2742 + 2743 + '@tailwindcss/vite@4.2.2(vite@7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0))': 2744 + dependencies: 2745 + '@tailwindcss/node': 4.2.2 2746 + '@tailwindcss/oxide': 4.2.2 2747 + tailwindcss: 4.2.2 2748 + vite: 7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0) 2749 + 2750 + '@tanstack/devtools-client@0.0.6': 2751 + dependencies: 2752 + '@tanstack/devtools-event-client': 0.4.3 2753 + 2754 + '@tanstack/devtools-event-bus@0.4.1': 2755 + dependencies: 2756 + ws: 8.20.0 2757 + transitivePeerDependencies: 2758 + - bufferutil 2759 + - utf-8-validate 2760 + 2761 + '@tanstack/devtools-event-client@0.4.3': {} 2762 + 2763 + '@tanstack/devtools-ui@0.5.1(csstype@3.2.3)(solid-js@1.9.11)': 2764 + dependencies: 2765 + clsx: 2.1.1 2766 + dayjs: 1.11.20 2767 + goober: 2.1.18(csstype@3.2.3) 2768 + solid-js: 1.9.11 2769 + transitivePeerDependencies: 2770 + - csstype 2771 + 2772 + '@tanstack/devtools-vite@0.6.0(vite@7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0))': 2773 + dependencies: 2774 + '@babel/core': 7.29.0 2775 + '@babel/generator': 7.29.1 2776 + '@babel/parser': 7.29.2 2777 + '@babel/traverse': 7.29.0 2778 + '@babel/types': 7.29.0 2779 + '@tanstack/devtools-client': 0.0.6 2780 + '@tanstack/devtools-event-bus': 0.4.1 2781 + chalk: 5.6.2 2782 + launch-editor: 2.13.2 2783 + picomatch: 4.0.3 2784 + vite: 7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0) 2785 + transitivePeerDependencies: 2786 + - bufferutil 2787 + - supports-color 2788 + - utf-8-validate 2789 + 2790 + '@tanstack/devtools@0.11.0(csstype@3.2.3)(solid-js@1.9.11)': 2791 + dependencies: 2792 + '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.11) 2793 + '@solid-primitives/keyboard': 1.3.5(solid-js@1.9.11) 2794 + '@solid-primitives/resize-observer': 2.1.5(solid-js@1.9.11) 2795 + '@tanstack/devtools-client': 0.0.6 2796 + '@tanstack/devtools-event-bus': 0.4.1 2797 + '@tanstack/devtools-ui': 0.5.1(csstype@3.2.3)(solid-js@1.9.11) 2798 + clsx: 2.1.1 2799 + goober: 2.1.18(csstype@3.2.3) 2800 + solid-js: 1.9.11 2801 + transitivePeerDependencies: 2802 + - bufferutil 2803 + - csstype 2804 + - utf-8-validate 2805 + 2806 + '@tanstack/eslint-config@0.4.0(@typescript-eslint/utils@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': 2807 + dependencies: 2808 + '@eslint/js': 10.0.1(eslint@10.1.0(jiti@2.6.1)) 2809 + '@stylistic/eslint-plugin': 5.10.0(eslint@10.1.0(jiti@2.6.1)) 2810 + eslint: 10.1.0(jiti@2.6.1) 2811 + eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1)) 2812 + eslint-plugin-n: 17.24.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 2813 + globals: 17.4.0 2814 + typescript-eslint: 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 2815 + vue-eslint-parser: 10.4.0(eslint@10.1.0(jiti@2.6.1)) 2816 + transitivePeerDependencies: 2817 + - '@typescript-eslint/utils' 2818 + - eslint-import-resolver-node 2819 + - supports-color 2820 + - typescript 2821 + 2822 + '@tanstack/history@1.161.6': {} 2823 + 2824 + '@tanstack/react-devtools@0.10.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(csstype@3.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.11)': 2825 + dependencies: 2826 + '@tanstack/devtools': 0.11.0(csstype@3.2.3)(solid-js@1.9.11) 2827 + '@types/react': 19.2.14 2828 + '@types/react-dom': 19.2.3(@types/react@19.2.14) 2829 + react: 19.2.4 2830 + react-dom: 19.2.4(react@19.2.4) 2831 + transitivePeerDependencies: 2832 + - bufferutil 2833 + - csstype 2834 + - solid-js 2835 + - utf-8-validate 2836 + 2837 + '@tanstack/react-router-devtools@1.166.11(@tanstack/react-router@1.168.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@tanstack/router-core@1.168.2)(csstype@3.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': 2838 + dependencies: 2839 + '@tanstack/react-router': 1.168.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) 2840 + '@tanstack/router-devtools-core': 1.167.1(@tanstack/router-core@1.168.2)(csstype@3.2.3) 2841 + react: 19.2.4 2842 + react-dom: 19.2.4(react@19.2.4) 2843 + optionalDependencies: 2844 + '@tanstack/router-core': 1.168.2 2845 + transitivePeerDependencies: 2846 + - csstype 2847 + 2848 + '@tanstack/react-router@1.168.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': 2849 + dependencies: 2850 + '@tanstack/history': 1.161.6 2851 + '@tanstack/react-store': 0.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) 2852 + '@tanstack/router-core': 1.168.2 2853 + isbot: 5.1.36 2854 + react: 19.2.4 2855 + react-dom: 19.2.4(react@19.2.4) 2856 + 2857 + '@tanstack/react-store@0.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': 2858 + dependencies: 2859 + '@tanstack/store': 0.9.2 2860 + react: 19.2.4 2861 + react-dom: 19.2.4(react@19.2.4) 2862 + use-sync-external-store: 1.6.0(react@19.2.4) 2863 + 2864 + '@tanstack/router-core@1.168.2': 2865 + dependencies: 2866 + '@tanstack/history': 1.161.6 2867 + cookie-es: 2.0.0 2868 + seroval: 1.5.1 2869 + seroval-plugins: 1.5.1(seroval@1.5.1) 2870 + 2871 + '@tanstack/router-devtools-core@1.167.1(@tanstack/router-core@1.168.2)(csstype@3.2.3)': 2872 + dependencies: 2873 + '@tanstack/router-core': 1.168.2 2874 + clsx: 2.1.1 2875 + goober: 2.1.18(csstype@3.2.3) 2876 + optionalDependencies: 2877 + csstype: 3.2.3 2878 + 2879 + '@tanstack/router-generator@1.166.16': 2880 + dependencies: 2881 + '@tanstack/router-core': 1.168.2 2882 + '@tanstack/router-utils': 1.161.6 2883 + '@tanstack/virtual-file-routes': 1.161.7 2884 + prettier: 3.8.1 2885 + recast: 0.23.11 2886 + source-map: 0.7.6 2887 + tsx: 4.21.0 2888 + zod: 3.25.76 2889 + transitivePeerDependencies: 2890 + - supports-color 2891 + 2892 + '@tanstack/router-plugin@1.167.3(@tanstack/react-router@1.168.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0))': 2893 + dependencies: 2894 + '@babel/core': 7.29.0 2895 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) 2896 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) 2897 + '@babel/template': 7.28.6 2898 + '@babel/traverse': 7.29.0 2899 + '@babel/types': 7.29.0 2900 + '@tanstack/router-core': 1.168.2 2901 + '@tanstack/router-generator': 1.166.16 2902 + '@tanstack/router-utils': 1.161.6 2903 + '@tanstack/virtual-file-routes': 1.161.7 2904 + chokidar: 3.6.0 2905 + unplugin: 2.3.11 2906 + zod: 3.25.76 2907 + optionalDependencies: 2908 + '@tanstack/react-router': 1.168.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) 2909 + vite: 7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0) 2910 + transitivePeerDependencies: 2911 + - supports-color 2912 + 2913 + '@tanstack/router-utils@1.161.6': 2914 + dependencies: 2915 + '@babel/core': 7.29.0 2916 + '@babel/generator': 7.29.1 2917 + '@babel/parser': 7.29.2 2918 + '@babel/types': 7.29.0 2919 + ansis: 4.2.0 2920 + babel-dead-code-elimination: 1.0.12 2921 + diff: 8.0.3 2922 + pathe: 2.0.3 2923 + tinyglobby: 0.2.15 2924 + transitivePeerDependencies: 2925 + - supports-color 2926 + 2927 + '@tanstack/store@0.9.2': {} 2928 + 2929 + '@tanstack/virtual-file-routes@1.161.7': {} 2930 + 2931 + '@testing-library/dom@10.4.1': 2932 + dependencies: 2933 + '@babel/code-frame': 7.29.0 2934 + '@babel/runtime': 7.29.2 2935 + '@types/aria-query': 5.0.4 2936 + aria-query: 5.3.0 2937 + dom-accessibility-api: 0.5.16 2938 + lz-string: 1.5.0 2939 + picocolors: 1.1.1 2940 + pretty-format: 27.5.1 2941 + 2942 + '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': 2943 + dependencies: 2944 + '@babel/runtime': 7.29.2 2945 + '@testing-library/dom': 10.4.1 2946 + react: 19.2.4 2947 + react-dom: 19.2.4(react@19.2.4) 2948 + optionalDependencies: 2949 + '@types/react': 19.2.14 2950 + '@types/react-dom': 19.2.3(@types/react@19.2.14) 2951 + 2952 + '@tybys/wasm-util@0.10.1': 2953 + dependencies: 2954 + tslib: 2.8.1 2955 + optional: true 2956 + 2957 + '@types/aria-query@5.0.4': {} 2958 + 2959 + '@types/babel__core@7.20.5': 2960 + dependencies: 2961 + '@babel/parser': 7.29.2 2962 + '@babel/types': 7.29.0 2963 + '@types/babel__generator': 7.27.0 2964 + '@types/babel__template': 7.4.4 2965 + '@types/babel__traverse': 7.28.0 2966 + 2967 + '@types/babel__generator@7.27.0': 2968 + dependencies: 2969 + '@babel/types': 7.29.0 2970 + 2971 + '@types/babel__template@7.4.4': 2972 + dependencies: 2973 + '@babel/parser': 7.29.2 2974 + '@babel/types': 7.29.0 2975 + 2976 + '@types/babel__traverse@7.28.0': 2977 + dependencies: 2978 + '@babel/types': 7.29.0 2979 + 2980 + '@types/chai@5.2.3': 2981 + dependencies: 2982 + '@types/deep-eql': 4.0.2 2983 + assertion-error: 2.0.1 2984 + 2985 + '@types/deep-eql@4.0.2': {} 2986 + 2987 + '@types/esrecurse@4.3.1': {} 2988 + 2989 + '@types/estree@1.0.8': {} 2990 + 2991 + '@types/json-schema@7.0.15': {} 2992 + 2993 + '@types/node@22.19.15': 2994 + dependencies: 2995 + undici-types: 6.21.0 2996 + 2997 + '@types/react-dom@19.2.3(@types/react@19.2.14)': 2998 + dependencies: 2999 + '@types/react': 19.2.14 3000 + 3001 + '@types/react@19.2.14': 3002 + dependencies: 3003 + csstype: 3.2.3 3004 + 3005 + '@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': 3006 + dependencies: 3007 + '@eslint-community/regexpp': 4.12.2 3008 + '@typescript-eslint/parser': 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 3009 + '@typescript-eslint/scope-manager': 8.57.1 3010 + '@typescript-eslint/type-utils': 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 3011 + '@typescript-eslint/utils': 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 3012 + '@typescript-eslint/visitor-keys': 8.57.1 3013 + eslint: 10.1.0(jiti@2.6.1) 3014 + ignore: 7.0.5 3015 + natural-compare: 1.4.0 3016 + ts-api-utils: 2.5.0(typescript@5.9.3) 3017 + typescript: 5.9.3 3018 + transitivePeerDependencies: 3019 + - supports-color 3020 + 3021 + '@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': 3022 + dependencies: 3023 + '@typescript-eslint/scope-manager': 8.57.1 3024 + '@typescript-eslint/types': 8.57.1 3025 + '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) 3026 + '@typescript-eslint/visitor-keys': 8.57.1 3027 + debug: 4.4.3 3028 + eslint: 10.1.0(jiti@2.6.1) 3029 + typescript: 5.9.3 3030 + transitivePeerDependencies: 3031 + - supports-color 3032 + 3033 + '@typescript-eslint/project-service@8.57.1(typescript@5.9.3)': 3034 + dependencies: 3035 + '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) 3036 + '@typescript-eslint/types': 8.57.1 3037 + debug: 4.4.3 3038 + typescript: 5.9.3 3039 + transitivePeerDependencies: 3040 + - supports-color 3041 + 3042 + '@typescript-eslint/scope-manager@8.57.1': 3043 + dependencies: 3044 + '@typescript-eslint/types': 8.57.1 3045 + '@typescript-eslint/visitor-keys': 8.57.1 3046 + 3047 + '@typescript-eslint/tsconfig-utils@8.57.1(typescript@5.9.3)': 3048 + dependencies: 3049 + typescript: 5.9.3 3050 + 3051 + '@typescript-eslint/type-utils@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': 3052 + dependencies: 3053 + '@typescript-eslint/types': 8.57.1 3054 + '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) 3055 + '@typescript-eslint/utils': 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 3056 + debug: 4.4.3 3057 + eslint: 10.1.0(jiti@2.6.1) 3058 + ts-api-utils: 2.5.0(typescript@5.9.3) 3059 + typescript: 5.9.3 3060 + transitivePeerDependencies: 3061 + - supports-color 3062 + 3063 + '@typescript-eslint/types@8.57.1': {} 3064 + 3065 + '@typescript-eslint/typescript-estree@8.57.1(typescript@5.9.3)': 3066 + dependencies: 3067 + '@typescript-eslint/project-service': 8.57.1(typescript@5.9.3) 3068 + '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) 3069 + '@typescript-eslint/types': 8.57.1 3070 + '@typescript-eslint/visitor-keys': 8.57.1 3071 + debug: 4.4.3 3072 + minimatch: 10.2.4 3073 + semver: 7.7.4 3074 + tinyglobby: 0.2.15 3075 + ts-api-utils: 2.5.0(typescript@5.9.3) 3076 + typescript: 5.9.3 3077 + transitivePeerDependencies: 3078 + - supports-color 3079 + 3080 + '@typescript-eslint/utils@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': 3081 + dependencies: 3082 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) 3083 + '@typescript-eslint/scope-manager': 8.57.1 3084 + '@typescript-eslint/types': 8.57.1 3085 + '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) 3086 + eslint: 10.1.0(jiti@2.6.1) 3087 + typescript: 5.9.3 3088 + transitivePeerDependencies: 3089 + - supports-color 3090 + 3091 + '@typescript-eslint/visitor-keys@8.57.1': 3092 + dependencies: 3093 + '@typescript-eslint/types': 8.57.1 3094 + eslint-visitor-keys: 5.0.1 3095 + 3096 + '@unrs/resolver-binding-android-arm-eabi@1.11.1': 3097 + optional: true 3098 + 3099 + '@unrs/resolver-binding-android-arm64@1.11.1': 3100 + optional: true 3101 + 3102 + '@unrs/resolver-binding-darwin-arm64@1.11.1': 3103 + optional: true 3104 + 3105 + '@unrs/resolver-binding-darwin-x64@1.11.1': 3106 + optional: true 3107 + 3108 + '@unrs/resolver-binding-freebsd-x64@1.11.1': 3109 + optional: true 3110 + 3111 + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': 3112 + optional: true 3113 + 3114 + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': 3115 + optional: true 3116 + 3117 + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': 3118 + optional: true 3119 + 3120 + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': 3121 + optional: true 3122 + 3123 + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': 3124 + optional: true 3125 + 3126 + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': 3127 + optional: true 3128 + 3129 + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': 3130 + optional: true 3131 + 3132 + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': 3133 + optional: true 3134 + 3135 + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': 3136 + optional: true 3137 + 3138 + '@unrs/resolver-binding-linux-x64-musl@1.11.1': 3139 + optional: true 3140 + 3141 + '@unrs/resolver-binding-wasm32-wasi@1.11.1': 3142 + dependencies: 3143 + '@napi-rs/wasm-runtime': 0.2.12 3144 + optional: true 3145 + 3146 + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': 3147 + optional: true 3148 + 3149 + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': 3150 + optional: true 3151 + 3152 + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': 3153 + optional: true 3154 + 3155 + '@vitejs/plugin-react@5.2.0(vite@7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0))': 3156 + dependencies: 3157 + '@babel/core': 7.29.0 3158 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) 3159 + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) 3160 + '@rolldown/pluginutils': 1.0.0-rc.3 3161 + '@types/babel__core': 7.20.5 3162 + react-refresh: 0.18.0 3163 + vite: 7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0) 3164 + transitivePeerDependencies: 3165 + - supports-color 3166 + 3167 + '@vitest/expect@3.2.4': 3168 + dependencies: 3169 + '@types/chai': 5.2.3 3170 + '@vitest/spy': 3.2.4 3171 + '@vitest/utils': 3.2.4 3172 + chai: 5.3.3 3173 + tinyrainbow: 2.0.0 3174 + 3175 + '@vitest/mocker@3.2.4(vite@7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0))': 3176 + dependencies: 3177 + '@vitest/spy': 3.2.4 3178 + estree-walker: 3.0.3 3179 + magic-string: 0.30.21 3180 + optionalDependencies: 3181 + vite: 7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0) 3182 + 3183 + '@vitest/pretty-format@3.2.4': 3184 + dependencies: 3185 + tinyrainbow: 2.0.0 3186 + 3187 + '@vitest/runner@3.2.4': 3188 + dependencies: 3189 + '@vitest/utils': 3.2.4 3190 + pathe: 2.0.3 3191 + strip-literal: 3.1.0 3192 + 3193 + '@vitest/snapshot@3.2.4': 3194 + dependencies: 3195 + '@vitest/pretty-format': 3.2.4 3196 + magic-string: 0.30.21 3197 + pathe: 2.0.3 3198 + 3199 + '@vitest/spy@3.2.4': 3200 + dependencies: 3201 + tinyspy: 4.0.4 3202 + 3203 + '@vitest/utils@3.2.4': 3204 + dependencies: 3205 + '@vitest/pretty-format': 3.2.4 3206 + loupe: 3.2.1 3207 + tinyrainbow: 2.0.0 3208 + 3209 + acorn-jsx@5.3.2(acorn@8.16.0): 3210 + dependencies: 3211 + acorn: 8.16.0 3212 + 3213 + acorn@8.16.0: {} 3214 + 3215 + agent-base@7.1.4: {} 3216 + 3217 + ajv@6.14.0: 3218 + dependencies: 3219 + fast-deep-equal: 3.1.3 3220 + fast-json-stable-stringify: 2.1.0 3221 + json-schema-traverse: 0.4.1 3222 + uri-js: 4.4.1 3223 + 3224 + ansi-regex@5.0.1: {} 3225 + 3226 + ansi-styles@5.2.0: {} 3227 + 3228 + ansis@4.2.0: {} 3229 + 3230 + anymatch@3.1.3: 3231 + dependencies: 3232 + normalize-path: 3.0.0 3233 + picomatch: 2.3.1 3234 + 3235 + aria-query@5.3.0: 3236 + dependencies: 3237 + dequal: 2.0.3 3238 + 3239 + assertion-error@2.0.1: {} 3240 + 3241 + ast-types@0.16.1: 3242 + dependencies: 3243 + tslib: 2.8.1 3244 + 3245 + babel-dead-code-elimination@1.0.12: 3246 + dependencies: 3247 + '@babel/core': 7.29.0 3248 + '@babel/parser': 7.29.2 3249 + '@babel/traverse': 7.29.0 3250 + '@babel/types': 7.29.0 3251 + transitivePeerDependencies: 3252 + - supports-color 3253 + 3254 + balanced-match@4.0.4: {} 3255 + 3256 + baseline-browser-mapping@2.10.10: {} 3257 + 3258 + bidi-js@1.0.3: 3259 + dependencies: 3260 + require-from-string: 2.0.2 3261 + 3262 + binary-extensions@2.3.0: {} 3263 + 3264 + brace-expansion@5.0.4: 3265 + dependencies: 3266 + balanced-match: 4.0.4 3267 + 3268 + braces@3.0.3: 3269 + dependencies: 3270 + fill-range: 7.1.1 3271 + 3272 + browserslist@4.28.1: 3273 + dependencies: 3274 + baseline-browser-mapping: 2.10.10 3275 + caniuse-lite: 1.0.30001780 3276 + electron-to-chromium: 1.5.321 3277 + node-releases: 2.0.36 3278 + update-browserslist-db: 1.2.3(browserslist@4.28.1) 3279 + 3280 + cac@6.7.14: {} 3281 + 3282 + caniuse-lite@1.0.30001780: {} 3283 + 3284 + chai@5.3.3: 3285 + dependencies: 3286 + assertion-error: 2.0.1 3287 + check-error: 2.1.3 3288 + deep-eql: 5.0.2 3289 + loupe: 3.2.1 3290 + pathval: 2.0.1 3291 + 3292 + chalk@5.6.2: {} 3293 + 3294 + check-error@2.1.3: {} 3295 + 3296 + chokidar@3.6.0: 3297 + dependencies: 3298 + anymatch: 3.1.3 3299 + braces: 3.0.3 3300 + glob-parent: 5.1.2 3301 + is-binary-path: 2.1.0 3302 + is-glob: 4.0.3 3303 + normalize-path: 3.0.0 3304 + readdirp: 3.6.0 3305 + optionalDependencies: 3306 + fsevents: 2.3.3 3307 + 3308 + clsx@2.1.1: {} 3309 + 3310 + comment-parser@1.4.5: {} 3311 + 3312 + convert-source-map@2.0.0: {} 3313 + 3314 + cookie-es@2.0.0: {} 3315 + 3316 + cross-spawn@7.0.6: 3317 + dependencies: 3318 + path-key: 3.1.1 3319 + shebang-command: 2.0.0 3320 + which: 2.0.2 3321 + 3322 + css-tree@3.2.1: 3323 + dependencies: 3324 + mdn-data: 2.27.1 3325 + source-map-js: 1.2.1 3326 + 3327 + cssesc@3.0.0: {} 3328 + 3329 + cssstyle@6.2.0: 3330 + dependencies: 3331 + '@asamuzakjp/css-color': 5.0.1 3332 + '@csstools/css-syntax-patches-for-csstree': 1.1.1(css-tree@3.2.1) 3333 + css-tree: 3.2.1 3334 + lru-cache: 11.2.7 3335 + 3336 + csstype@3.2.3: {} 3337 + 3338 + data-urls@7.0.0: 3339 + dependencies: 3340 + whatwg-mimetype: 5.0.0 3341 + whatwg-url: 16.0.1 3342 + transitivePeerDependencies: 3343 + - '@noble/hashes' 3344 + 3345 + dayjs@1.11.20: {} 3346 + 3347 + debug@4.4.3: 3348 + dependencies: 3349 + ms: 2.1.3 3350 + 3351 + decimal.js@10.6.0: {} 3352 + 3353 + deep-eql@5.0.2: {} 3354 + 3355 + deep-is@0.1.4: {} 3356 + 3357 + dequal@2.0.3: {} 3358 + 3359 + detect-libc@2.1.2: {} 3360 + 3361 + diff@8.0.3: {} 3362 + 3363 + dom-accessibility-api@0.5.16: {} 3364 + 3365 + electron-to-chromium@1.5.321: {} 3366 + 3367 + enhanced-resolve@5.20.1: 3368 + dependencies: 3369 + graceful-fs: 4.2.11 3370 + tapable: 2.3.0 3371 + 3372 + entities@6.0.1: {} 3373 + 3374 + es-module-lexer@1.7.0: {} 3375 + 3376 + esbuild@0.27.4: 3377 + optionalDependencies: 3378 + '@esbuild/aix-ppc64': 0.27.4 3379 + '@esbuild/android-arm': 0.27.4 3380 + '@esbuild/android-arm64': 0.27.4 3381 + '@esbuild/android-x64': 0.27.4 3382 + '@esbuild/darwin-arm64': 0.27.4 3383 + '@esbuild/darwin-x64': 0.27.4 3384 + '@esbuild/freebsd-arm64': 0.27.4 3385 + '@esbuild/freebsd-x64': 0.27.4 3386 + '@esbuild/linux-arm': 0.27.4 3387 + '@esbuild/linux-arm64': 0.27.4 3388 + '@esbuild/linux-ia32': 0.27.4 3389 + '@esbuild/linux-loong64': 0.27.4 3390 + '@esbuild/linux-mips64el': 0.27.4 3391 + '@esbuild/linux-ppc64': 0.27.4 3392 + '@esbuild/linux-riscv64': 0.27.4 3393 + '@esbuild/linux-s390x': 0.27.4 3394 + '@esbuild/linux-x64': 0.27.4 3395 + '@esbuild/netbsd-arm64': 0.27.4 3396 + '@esbuild/netbsd-x64': 0.27.4 3397 + '@esbuild/openbsd-arm64': 0.27.4 3398 + '@esbuild/openbsd-x64': 0.27.4 3399 + '@esbuild/openharmony-arm64': 0.27.4 3400 + '@esbuild/sunos-x64': 0.27.4 3401 + '@esbuild/win32-arm64': 0.27.4 3402 + '@esbuild/win32-ia32': 0.27.4 3403 + '@esbuild/win32-x64': 0.27.4 3404 + 3405 + escalade@3.2.0: {} 3406 + 3407 + escape-string-regexp@4.0.0: {} 3408 + 3409 + eslint-compat-utils@0.5.1(eslint@10.1.0(jiti@2.6.1)): 3410 + dependencies: 3411 + eslint: 10.1.0(jiti@2.6.1) 3412 + semver: 7.7.4 3413 + 3414 + eslint-import-context@0.1.9(unrs-resolver@1.11.1): 3415 + dependencies: 3416 + get-tsconfig: 4.13.6 3417 + stable-hash-x: 0.2.0 3418 + optionalDependencies: 3419 + unrs-resolver: 1.11.1 3420 + 3421 + eslint-plugin-es-x@7.8.0(eslint@10.1.0(jiti@2.6.1)): 3422 + dependencies: 3423 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) 3424 + '@eslint-community/regexpp': 4.12.2 3425 + eslint: 10.1.0(jiti@2.6.1) 3426 + eslint-compat-utils: 0.5.1(eslint@10.1.0(jiti@2.6.1)) 3427 + 3428 + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1)): 3429 + dependencies: 3430 + '@package-json/types': 0.0.12 3431 + '@typescript-eslint/types': 8.57.1 3432 + comment-parser: 1.4.5 3433 + debug: 4.4.3 3434 + eslint: 10.1.0(jiti@2.6.1) 3435 + eslint-import-context: 0.1.9(unrs-resolver@1.11.1) 3436 + is-glob: 4.0.3 3437 + minimatch: 10.2.4 3438 + semver: 7.7.4 3439 + stable-hash-x: 0.2.0 3440 + unrs-resolver: 1.11.1 3441 + optionalDependencies: 3442 + '@typescript-eslint/utils': 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 3443 + transitivePeerDependencies: 3444 + - supports-color 3445 + 3446 + eslint-plugin-n@17.24.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3): 3447 + dependencies: 3448 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) 3449 + enhanced-resolve: 5.20.1 3450 + eslint: 10.1.0(jiti@2.6.1) 3451 + eslint-plugin-es-x: 7.8.0(eslint@10.1.0(jiti@2.6.1)) 3452 + get-tsconfig: 4.13.6 3453 + globals: 15.15.0 3454 + globrex: 0.1.2 3455 + ignore: 5.3.2 3456 + semver: 7.7.4 3457 + ts-declaration-location: 1.0.7(typescript@5.9.3) 3458 + transitivePeerDependencies: 3459 + - typescript 3460 + 3461 + eslint-scope@9.1.2: 3462 + dependencies: 3463 + '@types/esrecurse': 4.3.1 3464 + '@types/estree': 1.0.8 3465 + esrecurse: 4.3.0 3466 + estraverse: 5.3.0 3467 + 3468 + eslint-visitor-keys@3.4.3: {} 3469 + 3470 + eslint-visitor-keys@4.2.1: {} 3471 + 3472 + eslint-visitor-keys@5.0.1: {} 3473 + 3474 + eslint@10.1.0(jiti@2.6.1): 3475 + dependencies: 3476 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) 3477 + '@eslint-community/regexpp': 4.12.2 3478 + '@eslint/config-array': 0.23.3 3479 + '@eslint/config-helpers': 0.5.3 3480 + '@eslint/core': 1.1.1 3481 + '@eslint/plugin-kit': 0.6.1 3482 + '@humanfs/node': 0.16.7 3483 + '@humanwhocodes/module-importer': 1.0.1 3484 + '@humanwhocodes/retry': 0.4.3 3485 + '@types/estree': 1.0.8 3486 + ajv: 6.14.0 3487 + cross-spawn: 7.0.6 3488 + debug: 4.4.3 3489 + escape-string-regexp: 4.0.0 3490 + eslint-scope: 9.1.2 3491 + eslint-visitor-keys: 5.0.1 3492 + espree: 11.2.0 3493 + esquery: 1.7.0 3494 + esutils: 2.0.3 3495 + fast-deep-equal: 3.1.3 3496 + file-entry-cache: 8.0.0 3497 + find-up: 5.0.0 3498 + glob-parent: 6.0.2 3499 + ignore: 5.3.2 3500 + imurmurhash: 0.1.4 3501 + is-glob: 4.0.3 3502 + json-stable-stringify-without-jsonify: 1.0.1 3503 + minimatch: 10.2.4 3504 + natural-compare: 1.4.0 3505 + optionator: 0.9.4 3506 + optionalDependencies: 3507 + jiti: 2.6.1 3508 + transitivePeerDependencies: 3509 + - supports-color 3510 + 3511 + espree@10.4.0: 3512 + dependencies: 3513 + acorn: 8.16.0 3514 + acorn-jsx: 5.3.2(acorn@8.16.0) 3515 + eslint-visitor-keys: 4.2.1 3516 + 3517 + espree@11.2.0: 3518 + dependencies: 3519 + acorn: 8.16.0 3520 + acorn-jsx: 5.3.2(acorn@8.16.0) 3521 + eslint-visitor-keys: 5.0.1 3522 + 3523 + esprima@4.0.1: {} 3524 + 3525 + esquery@1.7.0: 3526 + dependencies: 3527 + estraverse: 5.3.0 3528 + 3529 + esrecurse@4.3.0: 3530 + dependencies: 3531 + estraverse: 5.3.0 3532 + 3533 + estraverse@5.3.0: {} 3534 + 3535 + estree-walker@3.0.3: 3536 + dependencies: 3537 + '@types/estree': 1.0.8 3538 + 3539 + esutils@2.0.3: {} 3540 + 3541 + expect-type@1.3.0: {} 3542 + 3543 + fast-deep-equal@3.1.3: {} 3544 + 3545 + fast-json-stable-stringify@2.1.0: {} 3546 + 3547 + fast-levenshtein@2.0.6: {} 3548 + 3549 + fdir@6.5.0(picomatch@4.0.3): 3550 + optionalDependencies: 3551 + picomatch: 4.0.3 3552 + 3553 + file-entry-cache@8.0.0: 3554 + dependencies: 3555 + flat-cache: 4.0.1 3556 + 3557 + fill-range@7.1.1: 3558 + dependencies: 3559 + to-regex-range: 5.0.1 3560 + 3561 + find-up@5.0.0: 3562 + dependencies: 3563 + locate-path: 6.0.0 3564 + path-exists: 4.0.0 3565 + 3566 + flat-cache@4.0.1: 3567 + dependencies: 3568 + flatted: 3.4.2 3569 + keyv: 4.5.4 3570 + 3571 + flatted@3.4.2: {} 3572 + 3573 + fsevents@2.3.3: 3574 + optional: true 3575 + 3576 + gensync@1.0.0-beta.2: {} 3577 + 3578 + get-tsconfig@4.13.6: 3579 + dependencies: 3580 + resolve-pkg-maps: 1.0.0 3581 + 3582 + glob-parent@5.1.2: 3583 + dependencies: 3584 + is-glob: 4.0.3 3585 + 3586 + glob-parent@6.0.2: 3587 + dependencies: 3588 + is-glob: 4.0.3 3589 + 3590 + globals@15.15.0: {} 3591 + 3592 + globals@17.4.0: {} 3593 + 3594 + globrex@0.1.2: {} 3595 + 3596 + goober@2.1.18(csstype@3.2.3): 3597 + dependencies: 3598 + csstype: 3.2.3 3599 + 3600 + graceful-fs@4.2.11: {} 3601 + 3602 + html-encoding-sniffer@6.0.0: 3603 + dependencies: 3604 + '@exodus/bytes': 1.15.0 3605 + transitivePeerDependencies: 3606 + - '@noble/hashes' 3607 + 3608 + http-proxy-agent@7.0.2: 3609 + dependencies: 3610 + agent-base: 7.1.4 3611 + debug: 4.4.3 3612 + transitivePeerDependencies: 3613 + - supports-color 3614 + 3615 + https-proxy-agent@7.0.6: 3616 + dependencies: 3617 + agent-base: 7.1.4 3618 + debug: 4.4.3 3619 + transitivePeerDependencies: 3620 + - supports-color 3621 + 3622 + ignore@5.3.2: {} 3623 + 3624 + ignore@7.0.5: {} 3625 + 3626 + imurmurhash@0.1.4: {} 3627 + 3628 + is-binary-path@2.1.0: 3629 + dependencies: 3630 + binary-extensions: 2.3.0 3631 + 3632 + is-extglob@2.1.1: {} 3633 + 3634 + is-glob@4.0.3: 3635 + dependencies: 3636 + is-extglob: 2.1.1 3637 + 3638 + is-number@7.0.0: {} 3639 + 3640 + is-potential-custom-element-name@1.0.1: {} 3641 + 3642 + isbot@5.1.36: {} 3643 + 3644 + isexe@2.0.0: {} 3645 + 3646 + jiti@2.6.1: {} 3647 + 3648 + js-tokens@4.0.0: {} 3649 + 3650 + js-tokens@9.0.1: {} 3651 + 3652 + jsdom@28.1.0: 3653 + dependencies: 3654 + '@acemir/cssom': 0.9.31 3655 + '@asamuzakjp/dom-selector': 6.8.1 3656 + '@bramus/specificity': 2.4.2 3657 + '@exodus/bytes': 1.15.0 3658 + cssstyle: 6.2.0 3659 + data-urls: 7.0.0 3660 + decimal.js: 10.6.0 3661 + html-encoding-sniffer: 6.0.0 3662 + http-proxy-agent: 7.0.2 3663 + https-proxy-agent: 7.0.6 3664 + is-potential-custom-element-name: 1.0.1 3665 + parse5: 8.0.0 3666 + saxes: 6.0.0 3667 + symbol-tree: 3.2.4 3668 + tough-cookie: 6.0.1 3669 + undici: 7.24.5 3670 + w3c-xmlserializer: 5.0.0 3671 + webidl-conversions: 8.0.1 3672 + whatwg-mimetype: 5.0.0 3673 + whatwg-url: 16.0.1 3674 + xml-name-validator: 5.0.0 3675 + transitivePeerDependencies: 3676 + - '@noble/hashes' 3677 + - supports-color 3678 + 3679 + jsesc@3.1.0: {} 3680 + 3681 + json-buffer@3.0.1: {} 3682 + 3683 + json-schema-traverse@0.4.1: {} 3684 + 3685 + json-stable-stringify-without-jsonify@1.0.1: {} 3686 + 3687 + json5@2.2.3: {} 3688 + 3689 + keyv@4.5.4: 3690 + dependencies: 3691 + json-buffer: 3.0.1 3692 + 3693 + launch-editor@2.13.2: 3694 + dependencies: 3695 + picocolors: 1.1.1 3696 + shell-quote: 1.8.3 3697 + 3698 + levn@0.4.1: 3699 + dependencies: 3700 + prelude-ls: 1.2.1 3701 + type-check: 0.4.0 3702 + 3703 + lightningcss-android-arm64@1.32.0: 3704 + optional: true 3705 + 3706 + lightningcss-darwin-arm64@1.32.0: 3707 + optional: true 3708 + 3709 + lightningcss-darwin-x64@1.32.0: 3710 + optional: true 3711 + 3712 + lightningcss-freebsd-x64@1.32.0: 3713 + optional: true 3714 + 3715 + lightningcss-linux-arm-gnueabihf@1.32.0: 3716 + optional: true 3717 + 3718 + lightningcss-linux-arm64-gnu@1.32.0: 3719 + optional: true 3720 + 3721 + lightningcss-linux-arm64-musl@1.32.0: 3722 + optional: true 3723 + 3724 + lightningcss-linux-x64-gnu@1.32.0: 3725 + optional: true 3726 + 3727 + lightningcss-linux-x64-musl@1.32.0: 3728 + optional: true 3729 + 3730 + lightningcss-win32-arm64-msvc@1.32.0: 3731 + optional: true 3732 + 3733 + lightningcss-win32-x64-msvc@1.32.0: 3734 + optional: true 3735 + 3736 + lightningcss@1.32.0: 3737 + dependencies: 3738 + detect-libc: 2.1.2 3739 + optionalDependencies: 3740 + lightningcss-android-arm64: 1.32.0 3741 + lightningcss-darwin-arm64: 1.32.0 3742 + lightningcss-darwin-x64: 1.32.0 3743 + lightningcss-freebsd-x64: 1.32.0 3744 + lightningcss-linux-arm-gnueabihf: 1.32.0 3745 + lightningcss-linux-arm64-gnu: 1.32.0 3746 + lightningcss-linux-arm64-musl: 1.32.0 3747 + lightningcss-linux-x64-gnu: 1.32.0 3748 + lightningcss-linux-x64-musl: 1.32.0 3749 + lightningcss-win32-arm64-msvc: 1.32.0 3750 + lightningcss-win32-x64-msvc: 1.32.0 3751 + 3752 + locate-path@6.0.0: 3753 + dependencies: 3754 + p-locate: 5.0.0 3755 + 3756 + loupe@3.2.1: {} 3757 + 3758 + lru-cache@11.2.7: {} 3759 + 3760 + lru-cache@5.1.1: 3761 + dependencies: 3762 + yallist: 3.1.1 3763 + 3764 + lucide-react@0.545.0(react@19.2.4): 3765 + dependencies: 3766 + react: 19.2.4 3767 + 3768 + lz-string@1.5.0: {} 3769 + 3770 + magic-string@0.30.21: 3771 + dependencies: 3772 + '@jridgewell/sourcemap-codec': 1.5.5 3773 + 3774 + mdn-data@2.27.1: {} 3775 + 3776 + minimatch@10.2.4: 3777 + dependencies: 3778 + brace-expansion: 5.0.4 3779 + 3780 + ms@2.1.3: {} 3781 + 3782 + nanoid@3.3.11: {} 3783 + 3784 + napi-postinstall@0.3.4: {} 3785 + 3786 + natural-compare@1.4.0: {} 3787 + 3788 + node-releases@2.0.36: {} 3789 + 3790 + normalize-path@3.0.0: {} 3791 + 3792 + optionator@0.9.4: 3793 + dependencies: 3794 + deep-is: 0.1.4 3795 + fast-levenshtein: 2.0.6 3796 + levn: 0.4.1 3797 + prelude-ls: 1.2.1 3798 + type-check: 0.4.0 3799 + word-wrap: 1.2.5 3800 + 3801 + p-limit@3.1.0: 3802 + dependencies: 3803 + yocto-queue: 0.1.0 3804 + 3805 + p-locate@5.0.0: 3806 + dependencies: 3807 + p-limit: 3.1.0 3808 + 3809 + parse5@8.0.0: 3810 + dependencies: 3811 + entities: 6.0.1 3812 + 3813 + path-exists@4.0.0: {} 3814 + 3815 + path-key@3.1.1: {} 3816 + 3817 + pathe@2.0.3: {} 3818 + 3819 + pathval@2.0.1: {} 3820 + 3821 + picocolors@1.1.1: {} 3822 + 3823 + picomatch@2.3.1: {} 3824 + 3825 + picomatch@4.0.3: {} 3826 + 3827 + postcss-selector-parser@6.0.10: 3828 + dependencies: 3829 + cssesc: 3.0.0 3830 + util-deprecate: 1.0.2 3831 + 3832 + postcss@8.5.8: 3833 + dependencies: 3834 + nanoid: 3.3.11 3835 + picocolors: 1.1.1 3836 + source-map-js: 1.2.1 3837 + 3838 + prelude-ls@1.2.1: {} 3839 + 3840 + prettier@3.8.1: {} 3841 + 3842 + pretty-format@27.5.1: 3843 + dependencies: 3844 + ansi-regex: 5.0.1 3845 + ansi-styles: 5.2.0 3846 + react-is: 17.0.2 3847 + 3848 + punycode@2.3.1: {} 3849 + 3850 + react-dom@19.2.4(react@19.2.4): 3851 + dependencies: 3852 + react: 19.2.4 3853 + scheduler: 0.27.0 3854 + 3855 + react-is@17.0.2: {} 3856 + 3857 + react-refresh@0.18.0: {} 3858 + 3859 + react@19.2.4: {} 3860 + 3861 + readdirp@3.6.0: 3862 + dependencies: 3863 + picomatch: 2.3.1 3864 + 3865 + recast@0.23.11: 3866 + dependencies: 3867 + ast-types: 0.16.1 3868 + esprima: 4.0.1 3869 + source-map: 0.6.1 3870 + tiny-invariant: 1.3.3 3871 + tslib: 2.8.1 3872 + 3873 + require-from-string@2.0.2: {} 3874 + 3875 + resolve-pkg-maps@1.0.0: {} 3876 + 3877 + rollup@4.60.0: 3878 + dependencies: 3879 + '@types/estree': 1.0.8 3880 + optionalDependencies: 3881 + '@rollup/rollup-android-arm-eabi': 4.60.0 3882 + '@rollup/rollup-android-arm64': 4.60.0 3883 + '@rollup/rollup-darwin-arm64': 4.60.0 3884 + '@rollup/rollup-darwin-x64': 4.60.0 3885 + '@rollup/rollup-freebsd-arm64': 4.60.0 3886 + '@rollup/rollup-freebsd-x64': 4.60.0 3887 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.0 3888 + '@rollup/rollup-linux-arm-musleabihf': 4.60.0 3889 + '@rollup/rollup-linux-arm64-gnu': 4.60.0 3890 + '@rollup/rollup-linux-arm64-musl': 4.60.0 3891 + '@rollup/rollup-linux-loong64-gnu': 4.60.0 3892 + '@rollup/rollup-linux-loong64-musl': 4.60.0 3893 + '@rollup/rollup-linux-ppc64-gnu': 4.60.0 3894 + '@rollup/rollup-linux-ppc64-musl': 4.60.0 3895 + '@rollup/rollup-linux-riscv64-gnu': 4.60.0 3896 + '@rollup/rollup-linux-riscv64-musl': 4.60.0 3897 + '@rollup/rollup-linux-s390x-gnu': 4.60.0 3898 + '@rollup/rollup-linux-x64-gnu': 4.60.0 3899 + '@rollup/rollup-linux-x64-musl': 4.60.0 3900 + '@rollup/rollup-openbsd-x64': 4.60.0 3901 + '@rollup/rollup-openharmony-arm64': 4.60.0 3902 + '@rollup/rollup-win32-arm64-msvc': 4.60.0 3903 + '@rollup/rollup-win32-ia32-msvc': 4.60.0 3904 + '@rollup/rollup-win32-x64-gnu': 4.60.0 3905 + '@rollup/rollup-win32-x64-msvc': 4.60.0 3906 + fsevents: 2.3.3 3907 + 3908 + saxes@6.0.0: 3909 + dependencies: 3910 + xmlchars: 2.2.0 3911 + 3912 + scheduler@0.27.0: {} 3913 + 3914 + semver@6.3.1: {} 3915 + 3916 + semver@7.7.4: {} 3917 + 3918 + seroval-plugins@1.5.1(seroval@1.5.1): 3919 + dependencies: 3920 + seroval: 1.5.1 3921 + 3922 + seroval@1.5.1: {} 3923 + 3924 + shebang-command@2.0.0: 3925 + dependencies: 3926 + shebang-regex: 3.0.0 3927 + 3928 + shebang-regex@3.0.0: {} 3929 + 3930 + shell-quote@1.8.3: {} 3931 + 3932 + siginfo@2.0.0: {} 3933 + 3934 + solid-js@1.9.11: 3935 + dependencies: 3936 + csstype: 3.2.3 3937 + seroval: 1.5.1 3938 + seroval-plugins: 1.5.1(seroval@1.5.1) 3939 + 3940 + source-map-js@1.2.1: {} 3941 + 3942 + source-map@0.6.1: {} 3943 + 3944 + source-map@0.7.6: {} 3945 + 3946 + stable-hash-x@0.2.0: {} 3947 + 3948 + stackback@0.0.2: {} 3949 + 3950 + std-env@3.10.0: {} 3951 + 3952 + strip-literal@3.1.0: 3953 + dependencies: 3954 + js-tokens: 9.0.1 3955 + 3956 + symbol-tree@3.2.4: {} 3957 + 3958 + tailwindcss@4.2.2: {} 3959 + 3960 + tapable@2.3.0: {} 3961 + 3962 + tiny-invariant@1.3.3: {} 3963 + 3964 + tinybench@2.9.0: {} 3965 + 3966 + tinyexec@0.3.2: {} 3967 + 3968 + tinyglobby@0.2.15: 3969 + dependencies: 3970 + fdir: 6.5.0(picomatch@4.0.3) 3971 + picomatch: 4.0.3 3972 + 3973 + tinypool@1.1.1: {} 3974 + 3975 + tinyrainbow@2.0.0: {} 3976 + 3977 + tinyspy@4.0.4: {} 3978 + 3979 + tldts-core@7.0.27: {} 3980 + 3981 + tldts@7.0.27: 3982 + dependencies: 3983 + tldts-core: 7.0.27 3984 + 3985 + to-regex-range@5.0.1: 3986 + dependencies: 3987 + is-number: 7.0.0 3988 + 3989 + tough-cookie@6.0.1: 3990 + dependencies: 3991 + tldts: 7.0.27 3992 + 3993 + tr46@6.0.0: 3994 + dependencies: 3995 + punycode: 2.3.1 3996 + 3997 + ts-api-utils@2.5.0(typescript@5.9.3): 3998 + dependencies: 3999 + typescript: 5.9.3 4000 + 4001 + ts-declaration-location@1.0.7(typescript@5.9.3): 4002 + dependencies: 4003 + picomatch: 4.0.3 4004 + typescript: 5.9.3 4005 + 4006 + tsconfck@3.1.6(typescript@5.9.3): 4007 + optionalDependencies: 4008 + typescript: 5.9.3 4009 + 4010 + tslib@2.8.1: {} 4011 + 4012 + tsx@4.21.0: 4013 + dependencies: 4014 + esbuild: 0.27.4 4015 + get-tsconfig: 4.13.6 4016 + optionalDependencies: 4017 + fsevents: 2.3.3 4018 + 4019 + type-check@0.4.0: 4020 + dependencies: 4021 + prelude-ls: 1.2.1 4022 + 4023 + typescript-eslint@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3): 4024 + dependencies: 4025 + '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 4026 + '@typescript-eslint/parser': 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 4027 + '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) 4028 + '@typescript-eslint/utils': 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 4029 + eslint: 10.1.0(jiti@2.6.1) 4030 + typescript: 5.9.3 4031 + transitivePeerDependencies: 4032 + - supports-color 4033 + 4034 + typescript@5.9.3: {} 4035 + 4036 + undici-types@6.21.0: {} 4037 + 4038 + undici@7.24.5: {} 4039 + 4040 + unplugin@2.3.11: 4041 + dependencies: 4042 + '@jridgewell/remapping': 2.3.5 4043 + acorn: 8.16.0 4044 + picomatch: 4.0.3 4045 + webpack-virtual-modules: 0.6.2 4046 + 4047 + unrs-resolver@1.11.1: 4048 + dependencies: 4049 + napi-postinstall: 0.3.4 4050 + optionalDependencies: 4051 + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 4052 + '@unrs/resolver-binding-android-arm64': 1.11.1 4053 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 4054 + '@unrs/resolver-binding-darwin-x64': 1.11.1 4055 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 4056 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 4057 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 4058 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 4059 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 4060 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 4061 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 4062 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 4063 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 4064 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 4065 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 4066 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 4067 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 4068 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 4069 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 4070 + 4071 + update-browserslist-db@1.2.3(browserslist@4.28.1): 4072 + dependencies: 4073 + browserslist: 4.28.1 4074 + escalade: 3.2.0 4075 + picocolors: 1.1.1 4076 + 4077 + uri-js@4.4.1: 4078 + dependencies: 4079 + punycode: 2.3.1 4080 + 4081 + use-sync-external-store@1.6.0(react@19.2.4): 4082 + dependencies: 4083 + react: 19.2.4 4084 + 4085 + util-deprecate@1.0.2: {} 4086 + 4087 + vite-node@3.2.4(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0): 4088 + dependencies: 4089 + cac: 6.7.14 4090 + debug: 4.4.3 4091 + es-module-lexer: 1.7.0 4092 + pathe: 2.0.3 4093 + vite: 7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0) 4094 + transitivePeerDependencies: 4095 + - '@types/node' 4096 + - jiti 4097 + - less 4098 + - lightningcss 4099 + - sass 4100 + - sass-embedded 4101 + - stylus 4102 + - sugarss 4103 + - supports-color 4104 + - terser 4105 + - tsx 4106 + - yaml 4107 + 4108 + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)): 4109 + dependencies: 4110 + debug: 4.4.3 4111 + globrex: 0.1.2 4112 + tsconfck: 3.1.6(typescript@5.9.3) 4113 + optionalDependencies: 4114 + vite: 7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0) 4115 + transitivePeerDependencies: 4116 + - supports-color 4117 + - typescript 4118 + 4119 + vite@7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0): 4120 + dependencies: 4121 + esbuild: 0.27.4 4122 + fdir: 6.5.0(picomatch@4.0.3) 4123 + picomatch: 4.0.3 4124 + postcss: 8.5.8 4125 + rollup: 4.60.0 4126 + tinyglobby: 0.2.15 4127 + optionalDependencies: 4128 + '@types/node': 22.19.15 4129 + fsevents: 2.3.3 4130 + jiti: 2.6.1 4131 + lightningcss: 1.32.0 4132 + tsx: 4.21.0 4133 + 4134 + vitest@3.2.4(@types/node@22.19.15)(jiti@2.6.1)(jsdom@28.1.0)(lightningcss@1.32.0)(tsx@4.21.0): 4135 + dependencies: 4136 + '@types/chai': 5.2.3 4137 + '@vitest/expect': 3.2.4 4138 + '@vitest/mocker': 3.2.4(vite@7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)) 4139 + '@vitest/pretty-format': 3.2.4 4140 + '@vitest/runner': 3.2.4 4141 + '@vitest/snapshot': 3.2.4 4142 + '@vitest/spy': 3.2.4 4143 + '@vitest/utils': 3.2.4 4144 + chai: 5.3.3 4145 + debug: 4.4.3 4146 + expect-type: 1.3.0 4147 + magic-string: 0.30.21 4148 + pathe: 2.0.3 4149 + picomatch: 4.0.3 4150 + std-env: 3.10.0 4151 + tinybench: 2.9.0 4152 + tinyexec: 0.3.2 4153 + tinyglobby: 0.2.15 4154 + tinypool: 1.1.1 4155 + tinyrainbow: 2.0.0 4156 + vite: 7.3.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0) 4157 + vite-node: 3.2.4(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0) 4158 + why-is-node-running: 2.3.0 4159 + optionalDependencies: 4160 + '@types/node': 22.19.15 4161 + jsdom: 28.1.0 4162 + transitivePeerDependencies: 4163 + - jiti 4164 + - less 4165 + - lightningcss 4166 + - msw 4167 + - sass 4168 + - sass-embedded 4169 + - stylus 4170 + - sugarss 4171 + - supports-color 4172 + - terser 4173 + - tsx 4174 + - yaml 4175 + 4176 + vue-eslint-parser@10.4.0(eslint@10.1.0(jiti@2.6.1)): 4177 + dependencies: 4178 + debug: 4.4.3 4179 + eslint: 10.1.0(jiti@2.6.1) 4180 + eslint-scope: 9.1.2 4181 + eslint-visitor-keys: 5.0.1 4182 + espree: 11.2.0 4183 + esquery: 1.7.0 4184 + semver: 7.7.4 4185 + transitivePeerDependencies: 4186 + - supports-color 4187 + 4188 + w3c-xmlserializer@5.0.0: 4189 + dependencies: 4190 + xml-name-validator: 5.0.0 4191 + 4192 + webidl-conversions@8.0.1: {} 4193 + 4194 + webpack-virtual-modules@0.6.2: {} 4195 + 4196 + whatwg-mimetype@5.0.0: {} 4197 + 4198 + whatwg-url@16.0.1: 4199 + dependencies: 4200 + '@exodus/bytes': 1.15.0 4201 + tr46: 6.0.0 4202 + webidl-conversions: 8.0.1 4203 + transitivePeerDependencies: 4204 + - '@noble/hashes' 4205 + 4206 + which@2.0.2: 4207 + dependencies: 4208 + isexe: 2.0.0 4209 + 4210 + why-is-node-running@2.3.0: 4211 + dependencies: 4212 + siginfo: 2.0.0 4213 + stackback: 0.0.2 4214 + 4215 + word-wrap@1.2.5: {} 4216 + 4217 + ws@8.20.0: {} 4218 + 4219 + xml-name-validator@5.0.0: {} 4220 + 4221 + xmlchars@2.2.0: {} 4222 + 4223 + yallist@3.1.1: {} 4224 + 4225 + yocto-queue@0.1.0: {} 4226 + 4227 + zod@3.25.76: {}
+10
app/prettier.config.js
··· 1 + // @ts-check 2 + 3 + /** @type {import('prettier').Config} */ 4 + const config = { 5 + semi: false, 6 + singleQuote: true, 7 + trailingComma: "all", 8 + }; 9 + 10 + export default config;
app/public/favicon.ico

This is a binary file and will not be displayed.

app/public/logo192.png

This is a binary file and will not be displayed.

app/public/logo512.png

This is a binary file and will not be displayed.

+25
app/public/manifest.json
··· 1 + { 2 + "short_name": "TanStack App", 3 + "name": "Create TanStack App Sample", 4 + "icons": [ 5 + { 6 + "src": "favicon.ico", 7 + "sizes": "64x64 32x32 24x24 16x16", 8 + "type": "image/x-icon" 9 + }, 10 + { 11 + "src": "logo192.png", 12 + "type": "image/png", 13 + "sizes": "192x192" 14 + }, 15 + { 16 + "src": "logo512.png", 17 + "type": "image/png", 18 + "sizes": "512x512" 19 + } 20 + ], 21 + "start_url": ".", 22 + "display": "standalone", 23 + "theme_color": "#000000", 24 + "background_color": "#ffffff" 25 + }
+3
app/public/robots.txt
··· 1 + # https://www.robotstxt.org/robotstxt.html 2 + User-agent: * 3 + Disallow:
+35
app/shell.nix
··· 1 + { 2 + mkShellNoCC, 3 + 4 + # extra tooling 5 + eslint_d, 6 + prettierd, 7 + nodejs_24, 8 + pnpm, 9 + typescript, 10 + typescript-language-server, 11 + prettier, 12 + 13 + callPackage, 14 + }: 15 + let 16 + defaultPackage = callPackage ./default.nix { }; 17 + in 18 + mkShellNoCC { 19 + inputsFrom = [ defaultPackage ]; 20 + 21 + packages = [ 22 + eslint_d 23 + prettierd 24 + nodejs_24 25 + pnpm 26 + typescript 27 + typescript-language-server 28 + prettier 29 + ]; 30 + 31 + shellHook = '' 32 + eslint_d start # start eslint daemon 33 + eslint_d status # inform user about eslint daemon status 34 + ''; 35 + }
+44
app/src/components/Footer.tsx
··· 1 + export default function Footer() { 2 + const year = new Date().getFullYear() 3 + 4 + return ( 5 + <footer className="mt-20 border-t border-[var(--line)] px-4 pb-14 pt-10 text-[var(--sea-ink-soft)]"> 6 + <div className="page-wrap flex flex-col items-center justify-between gap-4 text-center sm:flex-row sm:text-left"> 7 + <p className="m-0 text-sm"> 8 + &copy; {year} Your name here. All rights reserved. 9 + </p> 10 + <p className="island-kicker m-0">Built with TanStack Start</p> 11 + </div> 12 + <div className="mt-4 flex justify-center gap-4"> 13 + <a 14 + href="https://x.com/tan_stack" 15 + target="_blank" 16 + rel="noreferrer" 17 + className="rounded-xl p-2 text-[var(--sea-ink-soft)] transition hover:bg-[var(--link-bg-hover)] hover:text-[var(--sea-ink)]" 18 + > 19 + <span className="sr-only">Follow TanStack on X</span> 20 + <svg viewBox="0 0 16 16" aria-hidden="true" width="32" height="32"> 21 + <path 22 + fill="currentColor" 23 + d="M12.6 1h2.2L10 6.48 15.64 15h-4.41L7.78 9.82 3.23 15H1l5.14-5.84L.72 1h4.52l3.12 4.73L12.6 1zm-.77 12.67h1.22L4.57 2.26H3.26l8.57 11.41z" 24 + /> 25 + </svg> 26 + </a> 27 + <a 28 + href="https://github.com/TanStack" 29 + target="_blank" 30 + rel="noreferrer" 31 + className="rounded-xl p-2 text-[var(--sea-ink-soft)] transition hover:bg-[var(--link-bg-hover)] hover:text-[var(--sea-ink)]" 32 + > 33 + <span className="sr-only">Go to TanStack GitHub</span> 34 + <svg viewBox="0 0 16 16" aria-hidden="true" width="32" height="32"> 35 + <path 36 + fill="currentColor" 37 + d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z" 38 + /> 39 + </svg> 40 + </a> 41 + </div> 42 + </footer> 43 + ) 44 + }
+78
app/src/components/Header.tsx
··· 1 + import { Link } from '@tanstack/react-router' 2 + import ThemeToggle from './ThemeToggle' 3 + 4 + export default function Header() { 5 + return ( 6 + <header className="sticky top-0 z-50 border-b border-[var(--line)] bg-[var(--header-bg)] px-4 backdrop-blur-lg"> 7 + <nav className="page-wrap flex flex-wrap items-center gap-x-3 gap-y-2 py-3 sm:py-4"> 8 + <h2 className="m-0 flex-shrink-0 text-base font-semibold tracking-tight"> 9 + <Link 10 + to="/" 11 + className="inline-flex items-center gap-2 rounded-full border border-[var(--chip-line)] bg-[var(--chip-bg)] px-3 py-1.5 text-sm text-[var(--sea-ink)] no-underline shadow-[0_8px_24px_rgba(30,90,72,0.08)] sm:px-4 sm:py-2" 12 + > 13 + <span className="h-2 w-2 rounded-full bg-[linear-gradient(90deg,#56c6be,#7ed3bf)]" /> 14 + TanStack Start 15 + </Link> 16 + </h2> 17 + 18 + <div className="ml-auto flex items-center gap-1.5 sm:ml-0 sm:gap-2"> 19 + <a 20 + href="https://x.com/tan_stack" 21 + target="_blank" 22 + rel="noreferrer" 23 + className="hidden rounded-xl p-2 text-[var(--sea-ink-soft)] transition hover:bg-[var(--link-bg-hover)] hover:text-[var(--sea-ink)] sm:block" 24 + > 25 + <span className="sr-only">Follow TanStack on X</span> 26 + <svg viewBox="0 0 16 16" aria-hidden="true" width="24" height="24"> 27 + <path 28 + fill="currentColor" 29 + d="M12.6 1h2.2L10 6.48 15.64 15h-4.41L7.78 9.82 3.23 15H1l5.14-5.84L.72 1h4.52l3.12 4.73L12.6 1zm-.77 12.67h1.22L4.57 2.26H3.26l8.57 11.41z" 30 + /> 31 + </svg> 32 + </a> 33 + <a 34 + href="https://github.com/TanStack" 35 + target="_blank" 36 + rel="noreferrer" 37 + className="hidden rounded-xl p-2 text-[var(--sea-ink-soft)] transition hover:bg-[var(--link-bg-hover)] hover:text-[var(--sea-ink)] sm:block" 38 + > 39 + <span className="sr-only">Go to TanStack GitHub</span> 40 + <svg viewBox="0 0 16 16" aria-hidden="true" width="24" height="24"> 41 + <path 42 + fill="currentColor" 43 + d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z" 44 + /> 45 + </svg> 46 + </a> 47 + 48 + <ThemeToggle /> 49 + </div> 50 + 51 + <div className="order-3 flex w-full flex-wrap items-center gap-x-4 gap-y-1 pb-1 text-sm font-semibold sm:order-2 sm:w-auto sm:flex-nowrap sm:pb-0"> 52 + <Link 53 + to="/" 54 + className="nav-link" 55 + activeProps={{ className: 'nav-link is-active' }} 56 + > 57 + Home 58 + </Link> 59 + <Link 60 + to="/about" 61 + className="nav-link" 62 + activeProps={{ className: 'nav-link is-active' }} 63 + > 64 + About 65 + </Link> 66 + <a 67 + href="https://tanstack.com/start/latest/docs/framework/react/overview" 68 + className="nav-link" 69 + target="_blank" 70 + rel="noreferrer" 71 + > 72 + Docs 73 + </a> 74 + </div> 75 + </nav> 76 + </header> 77 + ) 78 + }
+81
app/src/components/ThemeToggle.tsx
··· 1 + import { useEffect, useState } from 'react' 2 + 3 + type ThemeMode = 'light' | 'dark' | 'auto' 4 + 5 + function getInitialMode(): ThemeMode { 6 + if (typeof window === 'undefined') { 7 + return 'auto' 8 + } 9 + 10 + const stored = window.localStorage.getItem('theme') 11 + if (stored === 'light' || stored === 'dark' || stored === 'auto') { 12 + return stored 13 + } 14 + 15 + return 'auto' 16 + } 17 + 18 + function applyThemeMode(mode: ThemeMode) { 19 + const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches 20 + const resolved = mode === 'auto' ? (prefersDark ? 'dark' : 'light') : mode 21 + 22 + document.documentElement.classList.remove('light', 'dark') 23 + document.documentElement.classList.add(resolved) 24 + 25 + if (mode === 'auto') { 26 + document.documentElement.removeAttribute('data-theme') 27 + } else { 28 + document.documentElement.setAttribute('data-theme', mode) 29 + } 30 + 31 + document.documentElement.style.colorScheme = resolved 32 + } 33 + 34 + export default function ThemeToggle() { 35 + const [mode, setMode] = useState<ThemeMode>('auto') 36 + 37 + useEffect(() => { 38 + const initialMode = getInitialMode() 39 + setMode(initialMode) 40 + applyThemeMode(initialMode) 41 + }, []) 42 + 43 + useEffect(() => { 44 + if (mode !== 'auto') { 45 + return 46 + } 47 + 48 + const media = window.matchMedia('(prefers-color-scheme: dark)') 49 + const onChange = () => applyThemeMode('auto') 50 + 51 + media.addEventListener('change', onChange) 52 + return () => { 53 + media.removeEventListener('change', onChange) 54 + } 55 + }, [mode]) 56 + 57 + function toggleMode() { 58 + const nextMode: ThemeMode = 59 + mode === 'light' ? 'dark' : mode === 'dark' ? 'auto' : 'light' 60 + setMode(nextMode) 61 + applyThemeMode(nextMode) 62 + window.localStorage.setItem('theme', nextMode) 63 + } 64 + 65 + const label = 66 + mode === 'auto' 67 + ? 'Theme mode: auto (system). Click to switch to light mode.' 68 + : `Theme mode: ${mode}. Click to switch mode.` 69 + 70 + return ( 71 + <button 72 + type="button" 73 + onClick={toggleMode} 74 + aria-label={label} 75 + title={label} 76 + className="rounded-full border border-[var(--chip-line)] bg-[var(--chip-bg)] px-3 py-1.5 text-sm font-semibold text-[var(--sea-ink)] shadow-[0_8px_22px_rgba(30,90,72,0.08)] transition hover:-translate-y-0.5" 77 + > 78 + {mode === 'auto' ? 'Auto' : mode === 'dark' ? 'Dark' : 'Light'} 79 + </button> 80 + ) 81 + }
+22
app/src/main.tsx
··· 1 + import ReactDOM from 'react-dom/client' 2 + import { RouterProvider, createRouter } from '@tanstack/react-router' 3 + import { routeTree } from './routeTree.gen' 4 + 5 + const router = createRouter({ 6 + routeTree, 7 + defaultPreload: 'intent', 8 + scrollRestoration: true, 9 + }) 10 + 11 + declare module '@tanstack/react-router' { 12 + interface Register { 13 + router: typeof router 14 + } 15 + } 16 + 17 + const rootElement = document.getElementById('app')! 18 + 19 + if (!rootElement.innerHTML) { 20 + const root = ReactDOM.createRoot(rootElement) 21 + root.render(<RouterProvider router={router} />) 22 + }
+77
app/src/routeTree.gen.ts
··· 1 + /* eslint-disable */ 2 + 3 + // @ts-nocheck 4 + 5 + // noinspection JSUnusedGlobalSymbols 6 + 7 + // This file was automatically generated by TanStack Router. 8 + // You should NOT make any changes in this file as it will be overwritten. 9 + // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. 10 + 11 + import { Route as rootRouteImport } from './routes/__root' 12 + import { Route as AboutRouteImport } from './routes/about' 13 + import { Route as IndexRouteImport } from './routes/index' 14 + 15 + const AboutRoute = AboutRouteImport.update({ 16 + id: '/about', 17 + path: '/about', 18 + getParentRoute: () => rootRouteImport, 19 + } as any) 20 + const IndexRoute = IndexRouteImport.update({ 21 + id: '/', 22 + path: '/', 23 + getParentRoute: () => rootRouteImport, 24 + } as any) 25 + 26 + export interface FileRoutesByFullPath { 27 + '/': typeof IndexRoute 28 + '/about': typeof AboutRoute 29 + } 30 + export interface FileRoutesByTo { 31 + '/': typeof IndexRoute 32 + '/about': typeof AboutRoute 33 + } 34 + export interface FileRoutesById { 35 + __root__: typeof rootRouteImport 36 + '/': typeof IndexRoute 37 + '/about': typeof AboutRoute 38 + } 39 + export interface FileRouteTypes { 40 + fileRoutesByFullPath: FileRoutesByFullPath 41 + fullPaths: '/' | '/about' 42 + fileRoutesByTo: FileRoutesByTo 43 + to: '/' | '/about' 44 + id: '__root__' | '/' | '/about' 45 + fileRoutesById: FileRoutesById 46 + } 47 + export interface RootRouteChildren { 48 + IndexRoute: typeof IndexRoute 49 + AboutRoute: typeof AboutRoute 50 + } 51 + 52 + declare module '@tanstack/react-router' { 53 + interface FileRoutesByPath { 54 + '/about': { 55 + id: '/about' 56 + path: '/about' 57 + fullPath: '/about' 58 + preLoaderRoute: typeof AboutRouteImport 59 + parentRoute: typeof rootRouteImport 60 + } 61 + '/': { 62 + id: '/' 63 + path: '/' 64 + fullPath: '/' 65 + preLoaderRoute: typeof IndexRouteImport 66 + parentRoute: typeof rootRouteImport 67 + } 68 + } 69 + } 70 + 71 + const rootRouteChildren: RootRouteChildren = { 72 + IndexRoute: IndexRoute, 73 + AboutRoute: AboutRoute, 74 + } 75 + export const routeTree = rootRouteImport 76 + ._addFileChildren(rootRouteChildren) 77 + ._addFileTypes<FileRouteTypes>()
+20
app/src/router.tsx
··· 1 + import { createRouter as createTanStackRouter } from '@tanstack/react-router' 2 + import { routeTree } from './routeTree.gen' 3 + 4 + export function getRouter() { 5 + const router = createTanStackRouter({ 6 + routeTree, 7 + 8 + scrollRestoration: true, 9 + defaultPreload: 'intent', 10 + defaultPreloadStaleTime: 0, 11 + }) 12 + 13 + return router 14 + } 15 + 16 + declare module '@tanstack/react-router' { 17 + interface Register { 18 + router: ReturnType<typeof getRouter> 19 + } 20 + }
+28
app/src/routes/__root.tsx
··· 1 + import { Outlet, createRootRoute } from '@tanstack/react-router' 2 + import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools' 3 + import { TanStackDevtools } from '@tanstack/react-devtools' 4 + 5 + import '../styles.css' 6 + 7 + export const Route = createRootRoute({ 8 + component: RootComponent, 9 + }) 10 + 11 + function RootComponent() { 12 + return ( 13 + <> 14 + <Outlet /> 15 + <TanStackDevtools 16 + config={{ 17 + position: 'bottom-right', 18 + }} 19 + plugins={[ 20 + { 21 + name: 'TanStack Router', 22 + render: <TanStackRouterDevtoolsPanel />, 23 + }, 24 + ]} 25 + /> 26 + </> 27 + ) 28 + }
+23
app/src/routes/about.tsx
··· 1 + import { createFileRoute } from '@tanstack/react-router' 2 + 3 + export const Route = createFileRoute('/about')({ 4 + component: About, 5 + }) 6 + 7 + function About() { 8 + return ( 9 + <main className="page-wrap px-4 py-12"> 10 + <section className="island-shell rounded-2xl p-6 sm:p-8"> 11 + <p className="island-kicker mb-2">About</p> 12 + <h1 className="display-title mb-3 text-4xl font-bold text-[var(--sea-ink)] sm:text-5xl"> 13 + A small starter with room to grow. 14 + </h1> 15 + <p className="m-0 max-w-3xl text-base leading-8 text-[var(--sea-ink-soft)]"> 16 + TanStack Start gives you type-safe routing, server functions, and 17 + modern SSR defaults. Use this as a clean foundation, then layer in 18 + your own routes, styling, and add-ons. 19 + </p> 20 + </section> 21 + </main> 22 + ) 23 + }
+87
app/src/routes/index.tsx
··· 1 + import { createFileRoute } from '@tanstack/react-router' 2 + 3 + export const Route = createFileRoute('/')({ component: App }) 4 + 5 + function App() { 6 + return ( 7 + <main className="page-wrap px-4 pb-8 pt-14"> 8 + <section className="island-shell rise-in relative overflow-hidden rounded-[2rem] px-6 py-10 sm:px-10 sm:py-14"> 9 + <div className="pointer-events-none absolute -left-20 -top-24 h-56 w-56 rounded-full bg-[radial-gradient(circle,rgba(79,184,178,0.32),transparent_66%)]" /> 10 + <div className="pointer-events-none absolute -bottom-20 -right-20 h-56 w-56 rounded-full bg-[radial-gradient(circle,rgba(47,106,74,0.18),transparent_66%)]" /> 11 + <p className="island-kicker mb-3">TanStack Start Base Template</p> 12 + <h1 className="display-title mb-5 max-w-3xl text-4xl leading-[1.02] font-bold tracking-tight text-[var(--sea-ink)] sm:text-6xl"> 13 + Start simple, ship quickly. 14 + </h1> 15 + <p className="mb-8 max-w-2xl text-base text-[var(--sea-ink-soft)] sm:text-lg"> 16 + This base starter intentionally keeps things light: two routes, clean 17 + structure, and the essentials you need to build from scratch. 18 + </p> 19 + <div className="flex flex-wrap gap-3"> 20 + <a 21 + href="/about" 22 + className="rounded-full border border-[rgba(50,143,151,0.3)] bg-[rgba(79,184,178,0.14)] px-5 py-2.5 text-sm font-semibold text-[var(--lagoon-deep)] no-underline transition hover:-translate-y-0.5 hover:bg-[rgba(79,184,178,0.24)]" 23 + > 24 + About This Starter 25 + </a> 26 + <a 27 + href="https://tanstack.com/router" 28 + target="_blank" 29 + rel="noopener noreferrer" 30 + className="rounded-full border border-[rgba(23,58,64,0.2)] bg-white/50 px-5 py-2.5 text-sm font-semibold text-[var(--sea-ink)] no-underline transition hover:-translate-y-0.5 hover:border-[rgba(23,58,64,0.35)]" 31 + > 32 + Router Guide 33 + </a> 34 + </div> 35 + </section> 36 + 37 + <section className="mt-8 grid gap-4 sm:grid-cols-2 lg:grid-cols-4"> 38 + {[ 39 + [ 40 + 'Type-Safe Routing', 41 + 'Routes and links stay in sync across every page.', 42 + ], 43 + [ 44 + 'Server Functions', 45 + 'Call server code from your UI without creating API boilerplate.', 46 + ], 47 + [ 48 + 'Streaming by Default', 49 + 'Ship progressively rendered responses for faster experiences.', 50 + ], 51 + [ 52 + 'Tailwind Native', 53 + 'Design quickly with utility-first styling and reusable tokens.', 54 + ], 55 + ].map(([title, desc], index) => ( 56 + <article 57 + key={title} 58 + className="island-shell feature-card rise-in rounded-2xl p-5" 59 + style={{ animationDelay: `${index * 90 + 80}ms` }} 60 + > 61 + <h2 className="mb-2 text-base font-semibold text-[var(--sea-ink)]"> 62 + {title} 63 + </h2> 64 + <p className="m-0 text-sm text-[var(--sea-ink-soft)]">{desc}</p> 65 + </article> 66 + ))} 67 + </section> 68 + 69 + <section className="island-shell mt-8 rounded-2xl p-6"> 70 + <p className="island-kicker mb-2">Quick Start</p> 71 + <ul className="m-0 list-disc space-y-2 pl-5 text-sm text-[var(--sea-ink-soft)]"> 72 + <li> 73 + Edit <code>src/routes/index.tsx</code> to customize the home page. 74 + </li> 75 + <li> 76 + Update <code>src/components/Header.tsx</code> and{' '} 77 + <code>src/components/Footer.tsx</code> for brand links. 78 + </li> 79 + <li> 80 + Add routes in <code>src/routes</code> and tweak visual tokens in{' '} 81 + <code>src/styles.css</code>. 82 + </li> 83 + </ul> 84 + </section> 85 + </main> 86 + ) 87 + }
+259
app/src/styles.css
··· 1 + @import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Manrope:wght@400;500;600;700;800&display=swap"); 2 + @import "tailwindcss"; 3 + @plugin "@tailwindcss/typography"; 4 + 5 + @theme { 6 + --font-sans: "Manrope", ui-sans-serif, system-ui, sans-serif; 7 + } 8 + 9 + :root { 10 + --sea-ink: #173a40; 11 + --sea-ink-soft: #416166; 12 + --lagoon: #4fb8b2; 13 + --lagoon-deep: #328f97; 14 + --palm: #2f6a4a; 15 + --sand: #e7f0e8; 16 + --foam: #f3faf5; 17 + --surface: rgba(255, 255, 255, 0.74); 18 + --surface-strong: rgba(255, 255, 255, 0.9); 19 + --line: rgba(23, 58, 64, 0.14); 20 + --inset-glint: rgba(255, 255, 255, 0.82); 21 + --kicker: rgba(47, 106, 74, 0.9); 22 + --bg-base: #e7f3ec; 23 + --header-bg: rgba(251, 255, 248, 0.84); 24 + --chip-bg: rgba(255, 255, 255, 0.8); 25 + --chip-line: rgba(47, 106, 74, 0.18); 26 + --link-bg-hover: rgba(255, 255, 255, 0.9); 27 + --hero-a: rgba(79, 184, 178, 0.36); 28 + --hero-b: rgba(47, 106, 74, 0.2); 29 + } 30 + 31 + :root[data-theme="dark"] { 32 + --sea-ink: #d7ece8; 33 + --sea-ink-soft: #afcdc8; 34 + --lagoon: #60d7cf; 35 + --lagoon-deep: #8de5db; 36 + --palm: #6ec89a; 37 + --sand: #0f1a1e; 38 + --foam: #101d22; 39 + --surface: rgba(16, 30, 34, 0.8); 40 + --surface-strong: rgba(15, 27, 31, 0.92); 41 + --line: rgba(141, 229, 219, 0.18); 42 + --inset-glint: rgba(194, 247, 238, 0.14); 43 + --kicker: #b8efe5; 44 + --bg-base: #0a1418; 45 + --header-bg: rgba(10, 20, 24, 0.8); 46 + --chip-bg: rgba(13, 28, 32, 0.9); 47 + --chip-line: rgba(141, 229, 219, 0.24); 48 + --link-bg-hover: rgba(24, 44, 49, 0.8); 49 + --hero-a: rgba(96, 215, 207, 0.18); 50 + --hero-b: rgba(110, 200, 154, 0.12); 51 + } 52 + 53 + @media (prefers-color-scheme: dark) { 54 + :root:not([data-theme="light"]) { 55 + --sea-ink: #d7ece8; 56 + --sea-ink-soft: #afcdc8; 57 + --lagoon: #60d7cf; 58 + --lagoon-deep: #8de5db; 59 + --palm: #6ec89a; 60 + --sand: #0f1a1e; 61 + --foam: #101d22; 62 + --surface: rgba(16, 30, 34, 0.8); 63 + --surface-strong: rgba(15, 27, 31, 0.92); 64 + --line: rgba(141, 229, 219, 0.18); 65 + --inset-glint: rgba(194, 247, 238, 0.14); 66 + --kicker: #b8efe5; 67 + --bg-base: #0a1418; 68 + --header-bg: rgba(10, 20, 24, 0.8); 69 + --chip-bg: rgba(13, 28, 32, 0.9); 70 + --chip-line: rgba(141, 229, 219, 0.24); 71 + --link-bg-hover: rgba(24, 44, 49, 0.8); 72 + --hero-a: rgba(96, 215, 207, 0.18); 73 + --hero-b: rgba(110, 200, 154, 0.12); 74 + } 75 + } 76 + 77 + * { 78 + box-sizing: border-box; 79 + } 80 + 81 + html, 82 + body, 83 + #app { 84 + min-height: 100%; 85 + } 86 + 87 + body { 88 + margin: 0; 89 + color: var(--sea-ink); 90 + font-family: var(--font-sans); 91 + background-color: var(--bg-base); 92 + background: 93 + radial-gradient(1100px 620px at -8% -10%, var(--hero-a), transparent 58%), 94 + radial-gradient(1050px 620px at 112% -12%, var(--hero-b), transparent 62%), 95 + radial-gradient(720px 380px at 50% 115%, rgba(79, 184, 178, 0.1), transparent 68%), 96 + linear-gradient(180deg, color-mix(in oklab, var(--sand) 68%, white) 0%, var(--foam) 44%, var(--bg-base) 100%); 97 + overflow-x: hidden; 98 + -webkit-font-smoothing: antialiased; 99 + -moz-osx-font-smoothing: grayscale; 100 + } 101 + 102 + body::before { 103 + content: ""; 104 + position: fixed; 105 + inset: 0; 106 + pointer-events: none; 107 + z-index: -1; 108 + opacity: 0.28; 109 + background: 110 + radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.8), transparent 34%), 111 + radial-gradient(circle at 78% 26%, rgba(79, 184, 178, 0.2), transparent 42%), 112 + radial-gradient(circle at 42% 82%, rgba(47, 106, 74, 0.14), transparent 36%); 113 + } 114 + 115 + body::after { 116 + content: ""; 117 + position: fixed; 118 + inset: 0; 119 + pointer-events: none; 120 + z-index: -1; 121 + opacity: 0.14; 122 + background-image: 123 + linear-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px), 124 + linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px); 125 + background-size: 28px 28px; 126 + mask-image: radial-gradient(circle at 50% 30%, black, transparent 78%); 127 + } 128 + 129 + a { 130 + color: var(--lagoon-deep); 131 + text-decoration-color: rgba(50, 143, 151, 0.4); 132 + text-decoration-thickness: 1px; 133 + text-underline-offset: 2px; 134 + } 135 + 136 + a:hover { 137 + color: #246f76; 138 + } 139 + 140 + code { 141 + font-size: 0.9em; 142 + border: 1px solid var(--line); 143 + background: color-mix(in oklab, var(--surface-strong) 82%, white 18%); 144 + border-radius: 7px; 145 + padding: 2px 7px; 146 + } 147 + 148 + pre code { 149 + border: 0; 150 + background: transparent; 151 + padding: 0; 152 + border-radius: 0; 153 + font-size: inherit; 154 + color: inherit; 155 + } 156 + 157 + .page-wrap { 158 + width: min(1080px, calc(100% - 2rem)); 159 + margin-inline: auto; 160 + } 161 + 162 + .display-title { 163 + font-family: "Fraunces", Georgia, serif; 164 + } 165 + 166 + .island-shell { 167 + border: 1px solid var(--line); 168 + background: linear-gradient(165deg, var(--surface-strong), var(--surface)); 169 + box-shadow: 170 + 0 1px 0 var(--inset-glint) inset, 171 + 0 22px 44px rgba(30, 90, 72, 0.1), 172 + 0 6px 18px rgba(23, 58, 64, 0.08); 173 + backdrop-filter: blur(4px); 174 + } 175 + 176 + .feature-card { 177 + background: linear-gradient(165deg, color-mix(in oklab, var(--surface-strong) 93%, white 7%), var(--surface)); 178 + box-shadow: 179 + 0 1px 0 var(--inset-glint) inset, 180 + 0 18px 34px rgba(30, 90, 72, 0.1), 181 + 0 4px 14px rgba(23, 58, 64, 0.06); 182 + } 183 + 184 + .feature-card:hover { 185 + transform: translateY(-2px); 186 + border-color: color-mix(in oklab, var(--lagoon-deep) 35%, var(--line)); 187 + } 188 + 189 + button, 190 + .island-shell, 191 + a { 192 + transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, 193 + transform 180ms ease; 194 + } 195 + 196 + .island-kicker { 197 + letter-spacing: 0.16em; 198 + text-transform: uppercase; 199 + font-weight: 700; 200 + font-size: 0.69rem; 201 + color: var(--kicker); 202 + } 203 + 204 + .nav-link { 205 + position: relative; 206 + display: inline-flex; 207 + align-items: center; 208 + text-decoration: none; 209 + color: var(--sea-ink-soft); 210 + } 211 + 212 + .nav-link::after { 213 + content: ""; 214 + position: absolute; 215 + left: 0; 216 + bottom: -6px; 217 + width: 100%; 218 + height: 2px; 219 + transform: scaleX(0); 220 + transform-origin: left; 221 + background: linear-gradient(90deg, var(--lagoon), #7ed3bf); 222 + transition: transform 170ms ease; 223 + } 224 + 225 + .nav-link:hover, 226 + .nav-link.is-active { 227 + color: var(--sea-ink); 228 + } 229 + 230 + .nav-link:hover::after, 231 + .nav-link.is-active::after { 232 + transform: scaleX(1); 233 + } 234 + 235 + @media (max-width: 640px) { 236 + .nav-link::after { 237 + bottom: -4px; 238 + } 239 + } 240 + 241 + .site-footer { 242 + border-top: 1px solid var(--line); 243 + background: color-mix(in oklab, var(--header-bg) 84%, transparent 16%); 244 + } 245 + 246 + .rise-in { 247 + animation: rise-in 700ms cubic-bezier(0.16, 1, 0.3, 1) both; 248 + } 249 + 250 + @keyframes rise-in { 251 + from { 252 + opacity: 0; 253 + transform: translateY(12px); 254 + } 255 + to { 256 + opacity: 1; 257 + transform: translateY(0); 258 + } 259 + }
+30
app/tsconfig.json
··· 1 + { 2 + "include": ["**/*.ts", "**/*.tsx", "eslint.config.js", "prettier.config.js", "vite.config.js"], 3 + 4 + "compilerOptions": { 5 + "target": "ES2022", 6 + "jsx": "react-jsx", 7 + "module": "ESNext", 8 + "baseUrl": ".", 9 + "paths": { 10 + "#/*": ["./src/*"], 11 + "@/*": ["./src/*"] 12 + }, 13 + "lib": ["ES2022", "DOM", "DOM.Iterable"], 14 + "types": ["vite/client"], 15 + 16 + /* Bundler mode */ 17 + "moduleResolution": "bundler", 18 + "allowImportingTsExtensions": true, 19 + "verbatimModuleSyntax": true, 20 + "noEmit": true, 21 + 22 + /* Linting */ 23 + "skipLibCheck": true, 24 + "strict": true, 25 + "noUnusedLocals": true, 26 + "noUnusedParameters": true, 27 + "noFallthroughCasesInSwitch": true, 28 + "noUncheckedSideEffectImports": true 29 + } 30 + }
+20
app/vite.config.ts
··· 1 + import { defineConfig } from 'vite' 2 + import { devtools } from '@tanstack/devtools-vite' 3 + import tsconfigPaths from 'vite-tsconfig-paths' 4 + 5 + import { tanstackRouter } from '@tanstack/router-plugin/vite' 6 + 7 + import viteReact from '@vitejs/plugin-react' 8 + import tailwindcss from '@tailwindcss/vite' 9 + 10 + const config = defineConfig({ 11 + plugins: [ 12 + devtools(), 13 + tsconfigPaths({ projects: ['./tsconfig.json'] }), 14 + tailwindcss(), 15 + tanstackRouter({ target: 'react', autoCodeSplitting: true }), 16 + viteReact(), 17 + ], 18 + }) 19 + 20 + export default config
default.nix simulator/default.nix
flake.lock app/flake.lock
flake.nix simulator/flake.nix
shell.nix simulator/shell.nix
+27
simulator/flake.lock
··· 1 + { 2 + "nodes": { 3 + "nixpkgs": { 4 + "locked": { 5 + "lastModified": 1773840656, 6 + "narHash": "sha256-9tpvMGFteZnd3gRQZFlRCohVpqooygFuy9yjuyRL2C0=", 7 + "owner": "nixos", 8 + "repo": "nixpkgs", 9 + "rev": "9cf7092bdd603554bd8b63c216e8943cf9b12512", 10 + "type": "github" 11 + }, 12 + "original": { 13 + "owner": "nixos", 14 + "ref": "nixpkgs-unstable", 15 + "repo": "nixpkgs", 16 + "type": "github" 17 + } 18 + }, 19 + "root": { 20 + "inputs": { 21 + "nixpkgs": "nixpkgs" 22 + } 23 + } 24 + }, 25 + "root": "root", 26 + "version": 7 27 + }
src/main.rs simulator/src/main.rs