this repo has no description
0
fork

Configure Feed

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

init

+3555
+16
.cta.json
··· 1 + { 2 + "framework": "react", 3 + "projectName": "preloading-example", 4 + "typescript": true, 5 + "tailwind": true, 6 + "packageManager": "pnpm", 7 + "toolchain": "none", 8 + "mode": "file-router", 9 + "git": true, 10 + "variableValues": {}, 11 + "version": 1, 12 + "existingAddOns": [ 13 + "shadcn", 14 + "tanstack-query" 15 + ] 16 + }
+7
.cursorrules
··· 1 + # shadcn instructions 2 + 3 + Use the latest version of Shadcn to install new components, like this command to add a button component: 4 + 5 + ```bash 6 + pnpx shadcn@latest add button 7 + ```
+5
.gitignore
··· 1 + node_modules 2 + .DS_Store 3 + dist 4 + dist-ssr 5 + *.local
+1
.nvmrc
··· 1 + v22.15.0
+11
.vscode/settings.json
··· 1 + { 2 + "files.watcherExclude": { 3 + "**/routeTree.gen.ts": true 4 + }, 5 + "search.exclude": { 6 + "**/routeTree.gen.ts": true 7 + }, 8 + "files.readonlyInclude": { 9 + "**/routeTree.gen.ts": true 10 + } 11 + }
+299
README.md
··· 1 + Welcome to your new TanStack app! 2 + 3 + # Getting Started 4 + 5 + To run this application: 6 + 7 + ```bash 8 + pnpm install 9 + pnpm start 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 + 33 + 34 + ## Shadcn 35 + 36 + Add components using the latest version of [Shadcn](https://ui.shadcn.com/). 37 + 38 + ```bash 39 + pnpx shadcn@latest add button 40 + ``` 41 + 42 + 43 + 44 + ## Routing 45 + This project uses [TanStack Router](https://tanstack.com/router). The initial setup is a file based router. Which means that the routes are managed as files in `src/routes`. 46 + 47 + ### Adding A Route 48 + 49 + To add a new route to your application just add another a new file in the `./src/routes` directory. 50 + 51 + TanStack will automatically generate the content of the route file for you. 52 + 53 + Now that you have two routes you can use a `Link` component to navigate between them. 54 + 55 + ### Adding Links 56 + 57 + To use SPA (Single Page Application) navigation you will need to import the `Link` component from `@tanstack/react-router`. 58 + 59 + ```tsx 60 + import { Link } from "@tanstack/react-router"; 61 + ``` 62 + 63 + Then anywhere in your JSX you can use it like so: 64 + 65 + ```tsx 66 + <Link to="/about">About</Link> 67 + ``` 68 + 69 + This will create a link that will navigate to the `/about` route. 70 + 71 + More information on the `Link` component can be found in the [Link documentation](https://tanstack.com/router/v1/docs/framework/react/api/router/linkComponent). 72 + 73 + ### Using A Layout 74 + 75 + 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 use the `<Outlet />` component. 76 + 77 + Here is an example layout that includes a header: 78 + 79 + ```tsx 80 + import { Outlet, createRootRoute } from '@tanstack/react-router' 81 + import { TanStackRouterDevtools } from '@tanstack/react-router-devtools' 82 + 83 + import { Link } from "@tanstack/react-router"; 84 + 85 + export const Route = createRootRoute({ 86 + component: () => ( 87 + <> 88 + <header> 89 + <nav> 90 + <Link to="/">Home</Link> 91 + <Link to="/about">About</Link> 92 + </nav> 93 + </header> 94 + <Outlet /> 95 + <TanStackRouterDevtools /> 96 + </> 97 + ), 98 + }) 99 + ``` 100 + 101 + The `<TanStackRouterDevtools />` component is not required so you can remove it if you don't want it in your layout. 102 + 103 + More information on layouts can be found in the [Layouts documentation](https://tanstack.com/router/latest/docs/framework/react/guide/routing-concepts#layouts). 104 + 105 + 106 + ## Data Fetching 107 + 108 + 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. 109 + 110 + For example: 111 + 112 + ```tsx 113 + const peopleRoute = createRoute({ 114 + getParentRoute: () => rootRoute, 115 + path: "/people", 116 + loader: async () => { 117 + const response = await fetch("https://swapi.dev/api/people"); 118 + return response.json() as Promise<{ 119 + results: { 120 + name: string; 121 + }[]; 122 + }>; 123 + }, 124 + component: () => { 125 + const data = peopleRoute.useLoaderData(); 126 + return ( 127 + <ul> 128 + {data.results.map((person) => ( 129 + <li key={person.name}>{person.name}</li> 130 + ))} 131 + </ul> 132 + ); 133 + }, 134 + }); 135 + ``` 136 + 137 + 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). 138 + 139 + ### React-Query 140 + 141 + React-Query is an excellent addition or alternative to route loading and integrating it into you application is a breeze. 142 + 143 + First add your dependencies: 144 + 145 + ```bash 146 + pnpm add @tanstack/react-query @tanstack/react-query-devtools 147 + ``` 148 + 149 + Next we'll need to create a query client and provider. We recommend putting those in `main.tsx`. 150 + 151 + ```tsx 152 + import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; 153 + 154 + // ... 155 + 156 + const queryClient = new QueryClient(); 157 + 158 + // ... 159 + 160 + if (!rootElement.innerHTML) { 161 + const root = ReactDOM.createRoot(rootElement); 162 + 163 + root.render( 164 + <QueryClientProvider client={queryClient}> 165 + <RouterProvider router={router} /> 166 + </QueryClientProvider> 167 + ); 168 + } 169 + ``` 170 + 171 + You can also add TanStack Query Devtools to the root route (optional). 172 + 173 + ```tsx 174 + import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; 175 + 176 + const rootRoute = createRootRoute({ 177 + component: () => ( 178 + <> 179 + <Outlet /> 180 + <ReactQueryDevtools buttonPosition="top-right" /> 181 + <TanStackRouterDevtools /> 182 + </> 183 + ), 184 + }); 185 + ``` 186 + 187 + Now you can use `useQuery` to fetch your data. 188 + 189 + ```tsx 190 + import { useQuery } from "@tanstack/react-query"; 191 + 192 + import "./App.css"; 193 + 194 + function App() { 195 + const { data } = useQuery({ 196 + queryKey: ["people"], 197 + queryFn: () => 198 + fetch("https://swapi.dev/api/people") 199 + .then((res) => res.json()) 200 + .then((data) => data.results as { name: string }[]), 201 + initialData: [], 202 + }); 203 + 204 + return ( 205 + <div> 206 + <ul> 207 + {data.map((person) => ( 208 + <li key={person.name}>{person.name}</li> 209 + ))} 210 + </ul> 211 + </div> 212 + ); 213 + } 214 + 215 + export default App; 216 + ``` 217 + 218 + You can find out everything you need to know on how to use React-Query in the [React-Query documentation](https://tanstack.com/query/latest/docs/framework/react/overview). 219 + 220 + ## State Management 221 + 222 + Another common requirement for React applications is state management. There are many options for state management in React. TanStack Store provides a great starting point for your project. 223 + 224 + First you need to add TanStack Store as a dependency: 225 + 226 + ```bash 227 + pnpm add @tanstack/store 228 + ``` 229 + 230 + Now let's create a simple counter in the `src/App.tsx` file as a demonstration. 231 + 232 + ```tsx 233 + import { useStore } from "@tanstack/react-store"; 234 + import { Store } from "@tanstack/store"; 235 + import "./App.css"; 236 + 237 + const countStore = new Store(0); 238 + 239 + function App() { 240 + const count = useStore(countStore); 241 + return ( 242 + <div> 243 + <button onClick={() => countStore.setState((n) => n + 1)}> 244 + Increment - {count} 245 + </button> 246 + </div> 247 + ); 248 + } 249 + 250 + export default App; 251 + ``` 252 + 253 + One of the many nice features of TanStack Store is the ability to derive state from other state. That derived state will update when the base state updates. 254 + 255 + Let's check this out by doubling the count using derived state. 256 + 257 + ```tsx 258 + import { useStore } from "@tanstack/react-store"; 259 + import { Store, Derived } from "@tanstack/store"; 260 + import "./App.css"; 261 + 262 + const countStore = new Store(0); 263 + 264 + const doubledStore = new Derived({ 265 + fn: () => countStore.state * 2, 266 + deps: [countStore], 267 + }); 268 + doubledStore.mount(); 269 + 270 + function App() { 271 + const count = useStore(countStore); 272 + const doubledCount = useStore(doubledStore); 273 + 274 + return ( 275 + <div> 276 + <button onClick={() => countStore.setState((n) => n + 1)}> 277 + Increment - {count} 278 + </button> 279 + <div>Doubled - {doubledCount}</div> 280 + </div> 281 + ); 282 + } 283 + 284 + export default App; 285 + ``` 286 + 287 + We use the `Derived` class to create a new store that is derived from another store. The `Derived` class has a `mount` method that will start the derived store updating. 288 + 289 + Once we've created the derived store we can use it in the `App` component just like we would any other store using the `useStore` hook. 290 + 291 + You can find out everything you need to know on how to use TanStack Store in the [TanStack Store documentation](https://tanstack.com/store/latest). 292 + 293 + # Demo files 294 + 295 + 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. 296 + 297 + # Learn More 298 + 299 + You can learn more about all of the offerings from TanStack in the [TanStack documentation](https://tanstack.com).
+21
components.json
··· 1 + { 2 + "$schema": "https://ui.shadcn.com/schema.json", 3 + "style": "new-york", 4 + "rsc": false, 5 + "tsx": true, 6 + "tailwind": { 7 + "config": "", 8 + "css": "src/styles.css", 9 + "baseColor": "zinc", 10 + "cssVariables": true, 11 + "prefix": "" 12 + }, 13 + "aliases": { 14 + "components": "@/components", 15 + "utils": "@/lib/utils", 16 + "ui": "@/components/ui", 17 + "lib": "@/lib", 18 + "hooks": "@/hooks" 19 + }, 20 + "iconLibrary": "lucide" 21 + }
+20
index.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="UTF-8" /> 5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6 + <link rel="icon" href="/favicon.ico" /> 7 + <meta name="theme-color" content="#000000" /> 8 + <meta 9 + name="description" 10 + content="Web site created using create-tsrouter-app" 11 + /> 12 + <link rel="apple-touch-icon" href="/logo192.png" /> 13 + <link rel="manifest" href="/manifest.json" /> 14 + <title>Create TanStack App - preloading-example</title> 15 + </head> 16 + <body> 17 + <div id="app"></div> 18 + <script type="module" src="/src/main.tsx"></script> 19 + </body> 20 + </html>
+45
package.json
··· 1 + { 2 + "name": "preloading-example", 3 + "private": true, 4 + "type": "module", 5 + "scripts": { 6 + "dev": "vite --port 3000", 7 + "start": "vite --port 3000", 8 + "build": "vite build && tsc", 9 + "serve": "vite preview", 10 + "test": "vitest run" 11 + }, 12 + "dependencies": { 13 + "@tailwindcss/vite": "^4.0.6", 14 + "@tanstack/react-query": "^5.66.5", 15 + "@tanstack/react-query-devtools": "^5.66.5", 16 + "@tanstack/react-router": "^1.114.3", 17 + "@tanstack/react-router-devtools": "^1.114.3", 18 + "@tanstack/router-plugin": "^1.114.3", 19 + "class-variance-authority": "^0.7.1", 20 + "clsx": "^2.1.1", 21 + "lucide-react": "^0.476.0", 22 + "react": "^19.0.0", 23 + "react-dom": "^19.0.0", 24 + "tailwind-merge": "^3.0.2", 25 + "tailwindcss": "^4.0.6", 26 + "tailwindcss-animate": "^1.0.7" 27 + }, 28 + "devDependencies": { 29 + "@testing-library/dom": "^10.4.0", 30 + "@testing-library/react": "^16.2.0", 31 + "@types/react": "^19.0.8", 32 + "@types/react-dom": "^19.0.3", 33 + "@vitejs/plugin-react": "^4.3.4", 34 + "jsdom": "^26.0.0", 35 + "typescript": "^5.7.2", 36 + "vite": "^6.1.0", 37 + "vitest": "^3.0.5", 38 + "web-vitals": "^4.2.4" 39 + }, 40 + "pnpm": { 41 + "onlyBuiltDependencies": [ 42 + "esbuild" 43 + ] 44 + } 45 + }
+2678
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.0.6 13 + version: 4.1.5(vite@6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4)) 14 + '@tanstack/react-query': 15 + specifier: ^5.66.5 16 + version: 5.75.1(react@19.1.0) 17 + '@tanstack/react-query-devtools': 18 + specifier: ^5.66.5 19 + version: 5.75.1(@tanstack/react-query@5.75.1(react@19.1.0))(react@19.1.0) 20 + '@tanstack/react-router': 21 + specifier: ^1.114.3 22 + version: 1.119.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) 23 + '@tanstack/react-router-devtools': 24 + specifier: ^1.114.3 25 + version: 1.119.1(@tanstack/react-router@1.119.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.119.0)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tiny-invariant@1.3.3) 26 + '@tanstack/router-plugin': 27 + specifier: ^1.114.3 28 + version: 1.119.0(@tanstack/react-router@1.119.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite@6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4)) 29 + class-variance-authority: 30 + specifier: ^0.7.1 31 + version: 0.7.1 32 + clsx: 33 + specifier: ^2.1.1 34 + version: 2.1.1 35 + lucide-react: 36 + specifier: ^0.476.0 37 + version: 0.476.0(react@19.1.0) 38 + react: 39 + specifier: ^19.0.0 40 + version: 19.1.0 41 + react-dom: 42 + specifier: ^19.0.0 43 + version: 19.1.0(react@19.1.0) 44 + tailwind-merge: 45 + specifier: ^3.0.2 46 + version: 3.2.0 47 + tailwindcss: 48 + specifier: ^4.0.6 49 + version: 4.1.5 50 + tailwindcss-animate: 51 + specifier: ^1.0.7 52 + version: 1.0.7(tailwindcss@4.1.5) 53 + devDependencies: 54 + '@testing-library/dom': 55 + specifier: ^10.4.0 56 + version: 10.4.0 57 + '@testing-library/react': 58 + specifier: ^16.2.0 59 + version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) 60 + '@types/react': 61 + specifier: ^19.0.8 62 + version: 19.1.2 63 + '@types/react-dom': 64 + specifier: ^19.0.3 65 + version: 19.1.3(@types/react@19.1.2) 66 + '@vitejs/plugin-react': 67 + specifier: ^4.3.4 68 + version: 4.4.1(vite@6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4)) 69 + jsdom: 70 + specifier: ^26.0.0 71 + version: 26.1.0 72 + typescript: 73 + specifier: ^5.7.2 74 + version: 5.8.3 75 + vite: 76 + specifier: ^6.1.0 77 + version: 6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4) 78 + vitest: 79 + specifier: ^3.0.5 80 + version: 3.1.2(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.29.2)(tsx@4.19.4) 81 + web-vitals: 82 + specifier: ^4.2.4 83 + version: 4.2.4 84 + 85 + packages: 86 + 87 + '@ampproject/remapping@2.3.0': 88 + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 89 + engines: {node: '>=6.0.0'} 90 + 91 + '@asamuzakjp/css-color@3.1.7': 92 + resolution: {integrity: sha512-Ok5fYhtwdyJQmU1PpEv6Si7Y+A4cYb8yNM9oiIJC9TzXPMuN9fvdonKJqcnz9TbFqV6bQ8z0giRq0iaOpGZV2g==} 93 + 94 + '@babel/code-frame@7.27.1': 95 + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} 96 + engines: {node: '>=6.9.0'} 97 + 98 + '@babel/compat-data@7.27.1': 99 + resolution: {integrity: sha512-Q+E+rd/yBzNQhXkG+zQnF58e4zoZfBedaxwzPmicKsiK3nt8iJYrSrDbjwFFDGC4f+rPafqRaPH6TsDoSvMf7A==} 100 + engines: {node: '>=6.9.0'} 101 + 102 + '@babel/core@7.27.1': 103 + resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==} 104 + engines: {node: '>=6.9.0'} 105 + 106 + '@babel/generator@7.27.1': 107 + resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} 108 + engines: {node: '>=6.9.0'} 109 + 110 + '@babel/helper-compilation-targets@7.27.1': 111 + resolution: {integrity: sha512-2YaDd/Rd9E598B5+WIc8wJPmWETiiJXFYVE60oX8FDohv7rAUU3CQj+A1MgeEmcsk2+dQuEjIe/GDvig0SqL4g==} 112 + engines: {node: '>=6.9.0'} 113 + 114 + '@babel/helper-module-imports@7.27.1': 115 + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} 116 + engines: {node: '>=6.9.0'} 117 + 118 + '@babel/helper-module-transforms@7.27.1': 119 + resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==} 120 + engines: {node: '>=6.9.0'} 121 + peerDependencies: 122 + '@babel/core': ^7.0.0 123 + 124 + '@babel/helper-plugin-utils@7.27.1': 125 + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} 126 + engines: {node: '>=6.9.0'} 127 + 128 + '@babel/helper-string-parser@7.27.1': 129 + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 130 + engines: {node: '>=6.9.0'} 131 + 132 + '@babel/helper-validator-identifier@7.27.1': 133 + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} 134 + engines: {node: '>=6.9.0'} 135 + 136 + '@babel/helper-validator-option@7.27.1': 137 + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} 138 + engines: {node: '>=6.9.0'} 139 + 140 + '@babel/helpers@7.27.1': 141 + resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==} 142 + engines: {node: '>=6.9.0'} 143 + 144 + '@babel/parser@7.27.1': 145 + resolution: {integrity: sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ==} 146 + engines: {node: '>=6.0.0'} 147 + hasBin: true 148 + 149 + '@babel/plugin-syntax-jsx@7.27.1': 150 + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} 151 + engines: {node: '>=6.9.0'} 152 + peerDependencies: 153 + '@babel/core': ^7.0.0-0 154 + 155 + '@babel/plugin-syntax-typescript@7.27.1': 156 + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} 157 + engines: {node: '>=6.9.0'} 158 + peerDependencies: 159 + '@babel/core': ^7.0.0-0 160 + 161 + '@babel/plugin-transform-react-jsx-self@7.27.1': 162 + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} 163 + engines: {node: '>=6.9.0'} 164 + peerDependencies: 165 + '@babel/core': ^7.0.0-0 166 + 167 + '@babel/plugin-transform-react-jsx-source@7.27.1': 168 + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} 169 + engines: {node: '>=6.9.0'} 170 + peerDependencies: 171 + '@babel/core': ^7.0.0-0 172 + 173 + '@babel/runtime@7.27.1': 174 + resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} 175 + engines: {node: '>=6.9.0'} 176 + 177 + '@babel/template@7.27.1': 178 + resolution: {integrity: sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg==} 179 + engines: {node: '>=6.9.0'} 180 + 181 + '@babel/traverse@7.27.1': 182 + resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==} 183 + engines: {node: '>=6.9.0'} 184 + 185 + '@babel/types@7.27.1': 186 + resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} 187 + engines: {node: '>=6.9.0'} 188 + 189 + '@csstools/color-helpers@5.0.2': 190 + resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} 191 + engines: {node: '>=18'} 192 + 193 + '@csstools/css-calc@2.1.3': 194 + resolution: {integrity: sha512-XBG3talrhid44BY1x3MHzUx/aTG8+x/Zi57M4aTKK9RFB4aLlF3TTSzfzn8nWVHWL3FgAXAxmupmDd6VWww+pw==} 195 + engines: {node: '>=18'} 196 + peerDependencies: 197 + '@csstools/css-parser-algorithms': ^3.0.4 198 + '@csstools/css-tokenizer': ^3.0.3 199 + 200 + '@csstools/css-color-parser@3.0.9': 201 + resolution: {integrity: sha512-wILs5Zk7BU86UArYBJTPy/FMPPKVKHMj1ycCEyf3VUptol0JNRLFU/BZsJ4aiIHJEbSLiizzRrw8Pc1uAEDrXw==} 202 + engines: {node: '>=18'} 203 + peerDependencies: 204 + '@csstools/css-parser-algorithms': ^3.0.4 205 + '@csstools/css-tokenizer': ^3.0.3 206 + 207 + '@csstools/css-parser-algorithms@3.0.4': 208 + resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} 209 + engines: {node: '>=18'} 210 + peerDependencies: 211 + '@csstools/css-tokenizer': ^3.0.3 212 + 213 + '@csstools/css-tokenizer@3.0.3': 214 + resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} 215 + engines: {node: '>=18'} 216 + 217 + '@esbuild/aix-ppc64@0.25.3': 218 + resolution: {integrity: sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==} 219 + engines: {node: '>=18'} 220 + cpu: [ppc64] 221 + os: [aix] 222 + 223 + '@esbuild/android-arm64@0.25.3': 224 + resolution: {integrity: sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==} 225 + engines: {node: '>=18'} 226 + cpu: [arm64] 227 + os: [android] 228 + 229 + '@esbuild/android-arm@0.25.3': 230 + resolution: {integrity: sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==} 231 + engines: {node: '>=18'} 232 + cpu: [arm] 233 + os: [android] 234 + 235 + '@esbuild/android-x64@0.25.3': 236 + resolution: {integrity: sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==} 237 + engines: {node: '>=18'} 238 + cpu: [x64] 239 + os: [android] 240 + 241 + '@esbuild/darwin-arm64@0.25.3': 242 + resolution: {integrity: sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==} 243 + engines: {node: '>=18'} 244 + cpu: [arm64] 245 + os: [darwin] 246 + 247 + '@esbuild/darwin-x64@0.25.3': 248 + resolution: {integrity: sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==} 249 + engines: {node: '>=18'} 250 + cpu: [x64] 251 + os: [darwin] 252 + 253 + '@esbuild/freebsd-arm64@0.25.3': 254 + resolution: {integrity: sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==} 255 + engines: {node: '>=18'} 256 + cpu: [arm64] 257 + os: [freebsd] 258 + 259 + '@esbuild/freebsd-x64@0.25.3': 260 + resolution: {integrity: sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==} 261 + engines: {node: '>=18'} 262 + cpu: [x64] 263 + os: [freebsd] 264 + 265 + '@esbuild/linux-arm64@0.25.3': 266 + resolution: {integrity: sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==} 267 + engines: {node: '>=18'} 268 + cpu: [arm64] 269 + os: [linux] 270 + 271 + '@esbuild/linux-arm@0.25.3': 272 + resolution: {integrity: sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==} 273 + engines: {node: '>=18'} 274 + cpu: [arm] 275 + os: [linux] 276 + 277 + '@esbuild/linux-ia32@0.25.3': 278 + resolution: {integrity: sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==} 279 + engines: {node: '>=18'} 280 + cpu: [ia32] 281 + os: [linux] 282 + 283 + '@esbuild/linux-loong64@0.25.3': 284 + resolution: {integrity: sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==} 285 + engines: {node: '>=18'} 286 + cpu: [loong64] 287 + os: [linux] 288 + 289 + '@esbuild/linux-mips64el@0.25.3': 290 + resolution: {integrity: sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==} 291 + engines: {node: '>=18'} 292 + cpu: [mips64el] 293 + os: [linux] 294 + 295 + '@esbuild/linux-ppc64@0.25.3': 296 + resolution: {integrity: sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==} 297 + engines: {node: '>=18'} 298 + cpu: [ppc64] 299 + os: [linux] 300 + 301 + '@esbuild/linux-riscv64@0.25.3': 302 + resolution: {integrity: sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==} 303 + engines: {node: '>=18'} 304 + cpu: [riscv64] 305 + os: [linux] 306 + 307 + '@esbuild/linux-s390x@0.25.3': 308 + resolution: {integrity: sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==} 309 + engines: {node: '>=18'} 310 + cpu: [s390x] 311 + os: [linux] 312 + 313 + '@esbuild/linux-x64@0.25.3': 314 + resolution: {integrity: sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==} 315 + engines: {node: '>=18'} 316 + cpu: [x64] 317 + os: [linux] 318 + 319 + '@esbuild/netbsd-arm64@0.25.3': 320 + resolution: {integrity: sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==} 321 + engines: {node: '>=18'} 322 + cpu: [arm64] 323 + os: [netbsd] 324 + 325 + '@esbuild/netbsd-x64@0.25.3': 326 + resolution: {integrity: sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==} 327 + engines: {node: '>=18'} 328 + cpu: [x64] 329 + os: [netbsd] 330 + 331 + '@esbuild/openbsd-arm64@0.25.3': 332 + resolution: {integrity: sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==} 333 + engines: {node: '>=18'} 334 + cpu: [arm64] 335 + os: [openbsd] 336 + 337 + '@esbuild/openbsd-x64@0.25.3': 338 + resolution: {integrity: sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==} 339 + engines: {node: '>=18'} 340 + cpu: [x64] 341 + os: [openbsd] 342 + 343 + '@esbuild/sunos-x64@0.25.3': 344 + resolution: {integrity: sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==} 345 + engines: {node: '>=18'} 346 + cpu: [x64] 347 + os: [sunos] 348 + 349 + '@esbuild/win32-arm64@0.25.3': 350 + resolution: {integrity: sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==} 351 + engines: {node: '>=18'} 352 + cpu: [arm64] 353 + os: [win32] 354 + 355 + '@esbuild/win32-ia32@0.25.3': 356 + resolution: {integrity: sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==} 357 + engines: {node: '>=18'} 358 + cpu: [ia32] 359 + os: [win32] 360 + 361 + '@esbuild/win32-x64@0.25.3': 362 + resolution: {integrity: sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==} 363 + engines: {node: '>=18'} 364 + cpu: [x64] 365 + os: [win32] 366 + 367 + '@jridgewell/gen-mapping@0.3.8': 368 + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 369 + engines: {node: '>=6.0.0'} 370 + 371 + '@jridgewell/resolve-uri@3.1.2': 372 + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 373 + engines: {node: '>=6.0.0'} 374 + 375 + '@jridgewell/set-array@1.2.1': 376 + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 377 + engines: {node: '>=6.0.0'} 378 + 379 + '@jridgewell/sourcemap-codec@1.5.0': 380 + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 381 + 382 + '@jridgewell/trace-mapping@0.3.25': 383 + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 384 + 385 + '@rollup/rollup-android-arm-eabi@4.40.1': 386 + resolution: {integrity: sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==} 387 + cpu: [arm] 388 + os: [android] 389 + 390 + '@rollup/rollup-android-arm64@4.40.1': 391 + resolution: {integrity: sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==} 392 + cpu: [arm64] 393 + os: [android] 394 + 395 + '@rollup/rollup-darwin-arm64@4.40.1': 396 + resolution: {integrity: sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==} 397 + cpu: [arm64] 398 + os: [darwin] 399 + 400 + '@rollup/rollup-darwin-x64@4.40.1': 401 + resolution: {integrity: sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==} 402 + cpu: [x64] 403 + os: [darwin] 404 + 405 + '@rollup/rollup-freebsd-arm64@4.40.1': 406 + resolution: {integrity: sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==} 407 + cpu: [arm64] 408 + os: [freebsd] 409 + 410 + '@rollup/rollup-freebsd-x64@4.40.1': 411 + resolution: {integrity: sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==} 412 + cpu: [x64] 413 + os: [freebsd] 414 + 415 + '@rollup/rollup-linux-arm-gnueabihf@4.40.1': 416 + resolution: {integrity: sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==} 417 + cpu: [arm] 418 + os: [linux] 419 + 420 + '@rollup/rollup-linux-arm-musleabihf@4.40.1': 421 + resolution: {integrity: sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==} 422 + cpu: [arm] 423 + os: [linux] 424 + 425 + '@rollup/rollup-linux-arm64-gnu@4.40.1': 426 + resolution: {integrity: sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==} 427 + cpu: [arm64] 428 + os: [linux] 429 + 430 + '@rollup/rollup-linux-arm64-musl@4.40.1': 431 + resolution: {integrity: sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==} 432 + cpu: [arm64] 433 + os: [linux] 434 + 435 + '@rollup/rollup-linux-loongarch64-gnu@4.40.1': 436 + resolution: {integrity: sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==} 437 + cpu: [loong64] 438 + os: [linux] 439 + 440 + '@rollup/rollup-linux-powerpc64le-gnu@4.40.1': 441 + resolution: {integrity: sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==} 442 + cpu: [ppc64] 443 + os: [linux] 444 + 445 + '@rollup/rollup-linux-riscv64-gnu@4.40.1': 446 + resolution: {integrity: sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==} 447 + cpu: [riscv64] 448 + os: [linux] 449 + 450 + '@rollup/rollup-linux-riscv64-musl@4.40.1': 451 + resolution: {integrity: sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==} 452 + cpu: [riscv64] 453 + os: [linux] 454 + 455 + '@rollup/rollup-linux-s390x-gnu@4.40.1': 456 + resolution: {integrity: sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==} 457 + cpu: [s390x] 458 + os: [linux] 459 + 460 + '@rollup/rollup-linux-x64-gnu@4.40.1': 461 + resolution: {integrity: sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==} 462 + cpu: [x64] 463 + os: [linux] 464 + 465 + '@rollup/rollup-linux-x64-musl@4.40.1': 466 + resolution: {integrity: sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==} 467 + cpu: [x64] 468 + os: [linux] 469 + 470 + '@rollup/rollup-win32-arm64-msvc@4.40.1': 471 + resolution: {integrity: sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==} 472 + cpu: [arm64] 473 + os: [win32] 474 + 475 + '@rollup/rollup-win32-ia32-msvc@4.40.1': 476 + resolution: {integrity: sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==} 477 + cpu: [ia32] 478 + os: [win32] 479 + 480 + '@rollup/rollup-win32-x64-msvc@4.40.1': 481 + resolution: {integrity: sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==} 482 + cpu: [x64] 483 + os: [win32] 484 + 485 + '@tailwindcss/node@4.1.5': 486 + resolution: {integrity: sha512-CBhSWo0vLnWhXIvpD0qsPephiaUYfHUX3U9anwDaHZAeuGpTiB3XmsxPAN6qX7bFhipyGBqOa1QYQVVhkOUGxg==} 487 + 488 + '@tailwindcss/oxide-android-arm64@4.1.5': 489 + resolution: {integrity: sha512-LVvM0GirXHED02j7hSECm8l9GGJ1RfgpWCW+DRn5TvSaxVsv28gRtoL4aWKGnXqwvI3zu1GABeDNDVZeDPOQrw==} 490 + engines: {node: '>= 10'} 491 + cpu: [arm64] 492 + os: [android] 493 + 494 + '@tailwindcss/oxide-darwin-arm64@4.1.5': 495 + resolution: {integrity: sha512-//TfCA3pNrgnw4rRJOqavW7XUk8gsg9ddi8cwcsWXp99tzdBAZW0WXrD8wDyNbqjW316Pk2hiN/NJx/KWHl8oA==} 496 + engines: {node: '>= 10'} 497 + cpu: [arm64] 498 + os: [darwin] 499 + 500 + '@tailwindcss/oxide-darwin-x64@4.1.5': 501 + resolution: {integrity: sha512-XQorp3Q6/WzRd9OalgHgaqgEbjP3qjHrlSUb5k1EuS1Z9NE9+BbzSORraO+ecW432cbCN7RVGGL/lSnHxcd+7Q==} 502 + engines: {node: '>= 10'} 503 + cpu: [x64] 504 + os: [darwin] 505 + 506 + '@tailwindcss/oxide-freebsd-x64@4.1.5': 507 + resolution: {integrity: sha512-bPrLWbxo8gAo97ZmrCbOdtlz/Dkuy8NK97aFbVpkJ2nJ2Jo/rsCbu0TlGx8joCuA3q6vMWTSn01JY46iwG+clg==} 508 + engines: {node: '>= 10'} 509 + cpu: [x64] 510 + os: [freebsd] 511 + 512 + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.5': 513 + resolution: {integrity: sha512-1gtQJY9JzMAhgAfvd/ZaVOjh/Ju/nCoAsvOVJenWZfs05wb8zq+GOTnZALWGqKIYEtyNpCzvMk+ocGpxwdvaVg==} 514 + engines: {node: '>= 10'} 515 + cpu: [arm] 516 + os: [linux] 517 + 518 + '@tailwindcss/oxide-linux-arm64-gnu@4.1.5': 519 + resolution: {integrity: sha512-dtlaHU2v7MtdxBXoqhxwsWjav7oim7Whc6S9wq/i/uUMTWAzq/gijq1InSgn2yTnh43kR+SFvcSyEF0GCNu1PQ==} 520 + engines: {node: '>= 10'} 521 + cpu: [arm64] 522 + os: [linux] 523 + 524 + '@tailwindcss/oxide-linux-arm64-musl@4.1.5': 525 + resolution: {integrity: sha512-fg0F6nAeYcJ3CriqDT1iVrqALMwD37+sLzXs8Rjy8Z1ZHshJoYceodfyUwGJEsQoTyWbliFNRs2wMQNXtT7MVA==} 526 + engines: {node: '>= 10'} 527 + cpu: [arm64] 528 + os: [linux] 529 + 530 + '@tailwindcss/oxide-linux-x64-gnu@4.1.5': 531 + resolution: {integrity: sha512-SO+F2YEIAHa1AITwc8oPwMOWhgorPzzcbhWEb+4oLi953h45FklDmM8dPSZ7hNHpIk9p/SCZKUYn35t5fjGtHA==} 532 + engines: {node: '>= 10'} 533 + cpu: [x64] 534 + os: [linux] 535 + 536 + '@tailwindcss/oxide-linux-x64-musl@4.1.5': 537 + resolution: {integrity: sha512-6UbBBplywkk/R+PqqioskUeXfKcBht3KU7juTi1UszJLx0KPXUo10v2Ok04iBJIaDPkIFkUOVboXms5Yxvaz+g==} 538 + engines: {node: '>= 10'} 539 + cpu: [x64] 540 + os: [linux] 541 + 542 + '@tailwindcss/oxide-wasm32-wasi@4.1.5': 543 + resolution: {integrity: sha512-hwALf2K9FHuiXTPqmo1KeOb83fTRNbe9r/Ixv9ZNQ/R24yw8Ge1HOWDDgTdtzntIaIUJG5dfXCf4g9AD4RiyhQ==} 544 + engines: {node: '>=14.0.0'} 545 + cpu: [wasm32] 546 + bundledDependencies: 547 + - '@napi-rs/wasm-runtime' 548 + - '@emnapi/core' 549 + - '@emnapi/runtime' 550 + - '@tybys/wasm-util' 551 + - '@emnapi/wasi-threads' 552 + - tslib 553 + 554 + '@tailwindcss/oxide-win32-arm64-msvc@4.1.5': 555 + resolution: {integrity: sha512-oDKncffWzaovJbkuR7/OTNFRJQVdiw/n8HnzaCItrNQUeQgjy7oUiYpsm9HUBgpmvmDpSSbGaCa2Evzvk3eFmA==} 556 + engines: {node: '>= 10'} 557 + cpu: [arm64] 558 + os: [win32] 559 + 560 + '@tailwindcss/oxide-win32-x64-msvc@4.1.5': 561 + resolution: {integrity: sha512-WiR4dtyrFdbb+ov0LK+7XsFOsG+0xs0PKZKkt41KDn9jYpO7baE3bXiudPVkTqUEwNfiglCygQHl2jklvSBi7Q==} 562 + engines: {node: '>= 10'} 563 + cpu: [x64] 564 + os: [win32] 565 + 566 + '@tailwindcss/oxide@4.1.5': 567 + resolution: {integrity: sha512-1n4br1znquEvyW/QuqMKQZlBen+jxAbvyduU87RS8R3tUSvByAkcaMTkJepNIrTlYhD+U25K4iiCIxE6BGdRYA==} 568 + engines: {node: '>= 10'} 569 + 570 + '@tailwindcss/vite@4.1.5': 571 + resolution: {integrity: sha512-FE1stRoqdHSb7RxesMfCXE8icwI1W6zGE/512ae3ZDrpkQYTTYeSyUJPRCjZd8CwVAhpDUbi1YR8pcZioFJQ/w==} 572 + peerDependencies: 573 + vite: ^5.2.0 || ^6 574 + 575 + '@tanstack/history@1.115.0': 576 + resolution: {integrity: sha512-K7JJNrRVvyjAVnbXOH2XLRhFXDkeP54Kt2P4FR1Kl2KDGlIbkua5VqZQD2rot3qaDrpufyUa63nuLai1kOLTsQ==} 577 + engines: {node: '>=12'} 578 + 579 + '@tanstack/query-core@5.75.0': 580 + resolution: {integrity: sha512-rk8KQuCdhoRkzjRVF3QxLgAfFUyS0k7+GCQjlGEpEGco+qazJ0eMH6aO1DjDjibH7/ik383nnztua3BG+lOnwg==} 581 + 582 + '@tanstack/query-devtools@5.74.7': 583 + resolution: {integrity: sha512-nSNlfuGdnHf4yB0S+BoNYOE1o3oAH093weAYZolIHfS2stulyA/gWfSk/9H4ZFk5mAAHb5vNqAeJOmbdcGPEQw==} 584 + 585 + '@tanstack/react-query-devtools@5.75.1': 586 + resolution: {integrity: sha512-6S71fJRBlb0adlG5z/OHRqZqtHoPYVCklf/KCnOoZ3vdx9O/K9BLvqeeDeMUkZ6Rak/IupbEbvBsFoUiMHwZiQ==} 587 + peerDependencies: 588 + '@tanstack/react-query': ^5.75.1 589 + react: ^18 || ^19 590 + 591 + '@tanstack/react-query@5.75.1': 592 + resolution: {integrity: sha512-tN+gG+eXCHYm+VpmdXUP1rfE9LUrRzgYozTkBZtJV1/WFM3vwWNKQC8G6b2RKcs+2cPg+hdToZHZfjL3bF4yIQ==} 593 + peerDependencies: 594 + react: ^18 || ^19 595 + 596 + '@tanstack/react-router-devtools@1.119.1': 597 + resolution: {integrity: sha512-pM+80Yu5k2pe2LxW9kqk+r4j2RhJKol4mvH7Tdwr9R6LaR2ZNmnoMVPXikaIYOfCk/B4rmWMfk5M0DTlOm6iBg==} 598 + engines: {node: '>=12'} 599 + peerDependencies: 600 + '@tanstack/react-router': ^1.119.0 601 + react: '>=18.0.0 || >=19.0.0' 602 + react-dom: '>=18.0.0 || >=19.0.0' 603 + 604 + '@tanstack/react-router@1.119.0': 605 + resolution: {integrity: sha512-wjT8zQAXsCfsWXiKhqJcarAsvOIUjnTBIFb2tTtO/2AD7rjD7VPaRpkFhqs8TdvuSEqv+V/9xfN/eTeBLUdr1g==} 606 + engines: {node: '>=12'} 607 + peerDependencies: 608 + react: '>=18.0.0 || >=19.0.0' 609 + react-dom: '>=18.0.0 || >=19.0.0' 610 + 611 + '@tanstack/react-store@0.7.0': 612 + resolution: {integrity: sha512-S/Rq17HaGOk+tQHV/yrePMnG1xbsKZIl/VsNWnNXt4XW+tTY8dTlvpJH2ZQ3GRALsusG5K6Q3unAGJ2pd9W/Ng==} 613 + peerDependencies: 614 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 615 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 616 + 617 + '@tanstack/router-core@1.119.0': 618 + resolution: {integrity: sha512-3dZYP5cCq3jJYgnRDzKR3w4sYzrXP5sw1st303ye87VV26r31I8UaIuUEs7kiJaxgWBvqHglWCiygBWQODZXVw==} 619 + engines: {node: '>=12'} 620 + 621 + '@tanstack/router-devtools-core@1.119.0': 622 + resolution: {integrity: sha512-CH2Hx4J2UOigFtKR0anQfNiWQfidV2S7AZafkeo/S885IxwoFK7xXWzYxNbUhCDJC2tsBJ+XKjgxeBv5wGi62Q==} 623 + engines: {node: '>=12'} 624 + peerDependencies: 625 + '@tanstack/router-core': ^1.119.0 626 + csstype: ^3.0.10 627 + solid-js: '>=1.9.5' 628 + tiny-invariant: ^1.3.3 629 + peerDependenciesMeta: 630 + csstype: 631 + optional: true 632 + 633 + '@tanstack/router-generator@1.119.0': 634 + resolution: {integrity: sha512-wvHdDlWgodvlb6RE6j65j7LlH0Ex+CnxpHBkxKkJ0wPPXHow/run4/jeaF9cxUEXrp+wO4DvxZRxtzMmA6YzNA==} 635 + engines: {node: '>=12'} 636 + peerDependencies: 637 + '@tanstack/react-router': ^1.119.0 638 + peerDependenciesMeta: 639 + '@tanstack/react-router': 640 + optional: true 641 + 642 + '@tanstack/router-plugin@1.119.0': 643 + resolution: {integrity: sha512-c4vzCoWzXLjFfZwnGiVgrAtgM3DqkqiMxodlvlz1etj7C3Ulx44sitJmosF25HL7gwuUPfQCvFKDYFifT0GBAA==} 644 + engines: {node: '>=12'} 645 + peerDependencies: 646 + '@rsbuild/core': '>=1.0.2' 647 + '@tanstack/react-router': ^1.119.0 648 + vite: '>=5.0.0 || >=6.0.0' 649 + vite-plugin-solid: ^2.11.2 650 + webpack: '>=5.92.0' 651 + peerDependenciesMeta: 652 + '@rsbuild/core': 653 + optional: true 654 + '@tanstack/react-router': 655 + optional: true 656 + vite: 657 + optional: true 658 + vite-plugin-solid: 659 + optional: true 660 + webpack: 661 + optional: true 662 + 663 + '@tanstack/router-utils@1.115.0': 664 + resolution: {integrity: sha512-Dng4y+uLR9b5zPGg7dHReHOTHQa6x+G6nCoZshsDtWrYsrdCcJEtLyhwZ5wG8OyYS6dVr/Cn+E5Bd2b6BhJ89w==} 665 + engines: {node: '>=12'} 666 + 667 + '@tanstack/store@0.7.0': 668 + resolution: {integrity: sha512-CNIhdoUsmD2NolYuaIs8VfWM467RK6oIBAW4nPEKZhg1smZ+/CwtCdpURgp7nxSqOaV9oKkzdWD80+bC66F/Jg==} 669 + 670 + '@tanstack/virtual-file-routes@1.115.0': 671 + resolution: {integrity: sha512-XLUh1Py3AftcERrxkxC5Y5m5mfllRH3YR6YVlyjFgI2Tc2Ssy2NKmQFQIafoxfW459UJ8Dn81nWKETEIJifE4g==} 672 + engines: {node: '>=12'} 673 + 674 + '@testing-library/dom@10.4.0': 675 + resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} 676 + engines: {node: '>=18'} 677 + 678 + '@testing-library/react@16.3.0': 679 + resolution: {integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==} 680 + engines: {node: '>=18'} 681 + peerDependencies: 682 + '@testing-library/dom': ^10.0.0 683 + '@types/react': ^18.0.0 || ^19.0.0 684 + '@types/react-dom': ^18.0.0 || ^19.0.0 685 + react: ^18.0.0 || ^19.0.0 686 + react-dom: ^18.0.0 || ^19.0.0 687 + peerDependenciesMeta: 688 + '@types/react': 689 + optional: true 690 + '@types/react-dom': 691 + optional: true 692 + 693 + '@types/aria-query@5.0.4': 694 + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} 695 + 696 + '@types/babel__core@7.20.5': 697 + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 698 + 699 + '@types/babel__generator@7.27.0': 700 + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} 701 + 702 + '@types/babel__template@7.4.4': 703 + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 704 + 705 + '@types/babel__traverse@7.20.7': 706 + resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} 707 + 708 + '@types/estree@1.0.7': 709 + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} 710 + 711 + '@types/react-dom@19.1.3': 712 + resolution: {integrity: sha512-rJXC08OG0h3W6wDMFxQrZF00Kq6qQvw0djHRdzl3U5DnIERz0MRce3WVc7IS6JYBwtaP/DwYtRRjVlvivNveKg==} 713 + peerDependencies: 714 + '@types/react': ^19.0.0 715 + 716 + '@types/react@19.1.2': 717 + resolution: {integrity: sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==} 718 + 719 + '@vitejs/plugin-react@4.4.1': 720 + resolution: {integrity: sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==} 721 + engines: {node: ^14.18.0 || >=16.0.0} 722 + peerDependencies: 723 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 724 + 725 + '@vitest/expect@3.1.2': 726 + resolution: {integrity: sha512-O8hJgr+zREopCAqWl3uCVaOdqJwZ9qaDwUP7vy3Xigad0phZe9APxKhPcDNqYYi0rX5oMvwJMSCAXY2afqeTSA==} 727 + 728 + '@vitest/mocker@3.1.2': 729 + resolution: {integrity: sha512-kOtd6K2lc7SQ0mBqYv/wdGedlqPdM/B38paPY+OwJ1XiNi44w3Fpog82UfOibmHaV9Wod18A09I9SCKLyDMqgw==} 730 + peerDependencies: 731 + msw: ^2.4.9 732 + vite: ^5.0.0 || ^6.0.0 733 + peerDependenciesMeta: 734 + msw: 735 + optional: true 736 + vite: 737 + optional: true 738 + 739 + '@vitest/pretty-format@3.1.2': 740 + resolution: {integrity: sha512-R0xAiHuWeDjTSB3kQ3OQpT8Rx3yhdOAIm/JM4axXxnG7Q/fS8XUwggv/A4xzbQA+drYRjzkMnpYnOGAc4oeq8w==} 741 + 742 + '@vitest/runner@3.1.2': 743 + resolution: {integrity: sha512-bhLib9l4xb4sUMPXnThbnhX2Yi8OutBMA8Yahxa7yavQsFDtwY/jrUZwpKp2XH9DhRFJIeytlyGpXCqZ65nR+g==} 744 + 745 + '@vitest/snapshot@3.1.2': 746 + resolution: {integrity: sha512-Q1qkpazSF/p4ApZg1vfZSQ5Yw6OCQxVMVrLjslbLFA1hMDrT2uxtqMaw8Tc/jy5DLka1sNs1Y7rBcftMiaSH/Q==} 747 + 748 + '@vitest/spy@3.1.2': 749 + resolution: {integrity: sha512-OEc5fSXMws6sHVe4kOFyDSj/+4MSwst0ib4un0DlcYgQvRuYQ0+M2HyqGaauUMnjq87tmUaMNDxKQx7wNfVqPA==} 750 + 751 + '@vitest/utils@3.1.2': 752 + resolution: {integrity: sha512-5GGd0ytZ7BH3H6JTj9Kw7Prn1Nbg0wZVrIvou+UWxm54d+WoXXgAgjFJ8wn3LdagWLFSEfpPeyYrByZaGEZHLg==} 753 + 754 + acorn@8.14.1: 755 + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} 756 + engines: {node: '>=0.4.0'} 757 + hasBin: true 758 + 759 + agent-base@7.1.3: 760 + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} 761 + engines: {node: '>= 14'} 762 + 763 + ansi-regex@5.0.1: 764 + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 765 + engines: {node: '>=8'} 766 + 767 + ansi-styles@4.3.0: 768 + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 769 + engines: {node: '>=8'} 770 + 771 + ansi-styles@5.2.0: 772 + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 773 + engines: {node: '>=10'} 774 + 775 + ansis@3.17.0: 776 + resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} 777 + engines: {node: '>=14'} 778 + 779 + anymatch@3.1.3: 780 + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 781 + engines: {node: '>= 8'} 782 + 783 + aria-query@5.3.0: 784 + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 785 + 786 + assertion-error@2.0.1: 787 + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} 788 + engines: {node: '>=12'} 789 + 790 + babel-dead-code-elimination@1.0.10: 791 + resolution: {integrity: sha512-DV5bdJZTzZ0zn0DC24v3jD7Mnidh6xhKa4GfKCbq3sfW8kaWhDdZjP3i81geA8T33tdYqWKw4D3fVv0CwEgKVA==} 792 + 793 + binary-extensions@2.3.0: 794 + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 795 + engines: {node: '>=8'} 796 + 797 + braces@3.0.3: 798 + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 799 + engines: {node: '>=8'} 800 + 801 + browserslist@4.24.5: 802 + resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==} 803 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 804 + hasBin: true 805 + 806 + cac@6.7.14: 807 + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 808 + engines: {node: '>=8'} 809 + 810 + caniuse-lite@1.0.30001716: 811 + resolution: {integrity: sha512-49/c1+x3Kwz7ZIWt+4DvK3aMJy9oYXXG6/97JKsnjdCk/6n9vVyWL8NAwVt95Lwt9eigI10Hl782kDfZUUlRXw==} 812 + 813 + chai@5.2.0: 814 + resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} 815 + engines: {node: '>=12'} 816 + 817 + chalk@4.1.2: 818 + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 819 + engines: {node: '>=10'} 820 + 821 + check-error@2.1.1: 822 + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} 823 + engines: {node: '>= 16'} 824 + 825 + chokidar@3.6.0: 826 + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 827 + engines: {node: '>= 8.10.0'} 828 + 829 + class-variance-authority@0.7.1: 830 + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} 831 + 832 + clsx@2.1.1: 833 + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 834 + engines: {node: '>=6'} 835 + 836 + color-convert@2.0.1: 837 + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 838 + engines: {node: '>=7.0.0'} 839 + 840 + color-name@1.1.4: 841 + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 842 + 843 + convert-source-map@2.0.0: 844 + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 845 + 846 + cssstyle@4.3.1: 847 + resolution: {integrity: sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q==} 848 + engines: {node: '>=18'} 849 + 850 + csstype@3.1.3: 851 + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 852 + 853 + data-urls@5.0.0: 854 + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} 855 + engines: {node: '>=18'} 856 + 857 + debug@4.4.0: 858 + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 859 + engines: {node: '>=6.0'} 860 + peerDependencies: 861 + supports-color: '*' 862 + peerDependenciesMeta: 863 + supports-color: 864 + optional: true 865 + 866 + decimal.js@10.5.0: 867 + resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} 868 + 869 + deep-eql@5.0.2: 870 + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} 871 + engines: {node: '>=6'} 872 + 873 + dequal@2.0.3: 874 + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 875 + engines: {node: '>=6'} 876 + 877 + detect-libc@2.0.4: 878 + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} 879 + engines: {node: '>=8'} 880 + 881 + diff@7.0.0: 882 + resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} 883 + engines: {node: '>=0.3.1'} 884 + 885 + dom-accessibility-api@0.5.16: 886 + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} 887 + 888 + electron-to-chromium@1.5.149: 889 + resolution: {integrity: sha512-UyiO82eb9dVOx8YO3ajDf9jz2kKyt98DEITRdeLPstOEuTlLzDA4Gyq5K9he71TQziU5jUVu2OAu5N48HmQiyQ==} 890 + 891 + enhanced-resolve@5.18.1: 892 + resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} 893 + engines: {node: '>=10.13.0'} 894 + 895 + entities@6.0.0: 896 + resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==} 897 + engines: {node: '>=0.12'} 898 + 899 + es-module-lexer@1.7.0: 900 + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 901 + 902 + esbuild@0.25.3: 903 + resolution: {integrity: sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==} 904 + engines: {node: '>=18'} 905 + hasBin: true 906 + 907 + escalade@3.2.0: 908 + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 909 + engines: {node: '>=6'} 910 + 911 + estree-walker@3.0.3: 912 + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 913 + 914 + expect-type@1.2.1: 915 + resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} 916 + engines: {node: '>=12.0.0'} 917 + 918 + fdir@6.4.4: 919 + resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} 920 + peerDependencies: 921 + picomatch: ^3 || ^4 922 + peerDependenciesMeta: 923 + picomatch: 924 + optional: true 925 + 926 + fill-range@7.1.1: 927 + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 928 + engines: {node: '>=8'} 929 + 930 + fsevents@2.3.3: 931 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 932 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 933 + os: [darwin] 934 + 935 + gensync@1.0.0-beta.2: 936 + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 937 + engines: {node: '>=6.9.0'} 938 + 939 + get-tsconfig@4.10.0: 940 + resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} 941 + 942 + glob-parent@5.1.2: 943 + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 944 + engines: {node: '>= 6'} 945 + 946 + globals@11.12.0: 947 + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 948 + engines: {node: '>=4'} 949 + 950 + goober@2.1.16: 951 + resolution: {integrity: sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==} 952 + peerDependencies: 953 + csstype: ^3.0.10 954 + 955 + graceful-fs@4.2.11: 956 + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 957 + 958 + has-flag@4.0.0: 959 + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 960 + engines: {node: '>=8'} 961 + 962 + html-encoding-sniffer@4.0.0: 963 + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} 964 + engines: {node: '>=18'} 965 + 966 + http-proxy-agent@7.0.2: 967 + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 968 + engines: {node: '>= 14'} 969 + 970 + https-proxy-agent@7.0.6: 971 + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 972 + engines: {node: '>= 14'} 973 + 974 + iconv-lite@0.6.3: 975 + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 976 + engines: {node: '>=0.10.0'} 977 + 978 + is-binary-path@2.1.0: 979 + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 980 + engines: {node: '>=8'} 981 + 982 + is-extglob@2.1.1: 983 + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 984 + engines: {node: '>=0.10.0'} 985 + 986 + is-glob@4.0.3: 987 + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 988 + engines: {node: '>=0.10.0'} 989 + 990 + is-number@7.0.0: 991 + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 992 + engines: {node: '>=0.12.0'} 993 + 994 + is-potential-custom-element-name@1.0.1: 995 + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 996 + 997 + jiti@2.4.2: 998 + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} 999 + hasBin: true 1000 + 1001 + js-tokens@4.0.0: 1002 + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1003 + 1004 + jsdom@26.1.0: 1005 + resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} 1006 + engines: {node: '>=18'} 1007 + peerDependencies: 1008 + canvas: ^3.0.0 1009 + peerDependenciesMeta: 1010 + canvas: 1011 + optional: true 1012 + 1013 + jsesc@3.1.0: 1014 + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 1015 + engines: {node: '>=6'} 1016 + hasBin: true 1017 + 1018 + json5@2.2.3: 1019 + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1020 + engines: {node: '>=6'} 1021 + hasBin: true 1022 + 1023 + lightningcss-darwin-arm64@1.29.2: 1024 + resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==} 1025 + engines: {node: '>= 12.0.0'} 1026 + cpu: [arm64] 1027 + os: [darwin] 1028 + 1029 + lightningcss-darwin-x64@1.29.2: 1030 + resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==} 1031 + engines: {node: '>= 12.0.0'} 1032 + cpu: [x64] 1033 + os: [darwin] 1034 + 1035 + lightningcss-freebsd-x64@1.29.2: 1036 + resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==} 1037 + engines: {node: '>= 12.0.0'} 1038 + cpu: [x64] 1039 + os: [freebsd] 1040 + 1041 + lightningcss-linux-arm-gnueabihf@1.29.2: 1042 + resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==} 1043 + engines: {node: '>= 12.0.0'} 1044 + cpu: [arm] 1045 + os: [linux] 1046 + 1047 + lightningcss-linux-arm64-gnu@1.29.2: 1048 + resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} 1049 + engines: {node: '>= 12.0.0'} 1050 + cpu: [arm64] 1051 + os: [linux] 1052 + 1053 + lightningcss-linux-arm64-musl@1.29.2: 1054 + resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} 1055 + engines: {node: '>= 12.0.0'} 1056 + cpu: [arm64] 1057 + os: [linux] 1058 + 1059 + lightningcss-linux-x64-gnu@1.29.2: 1060 + resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} 1061 + engines: {node: '>= 12.0.0'} 1062 + cpu: [x64] 1063 + os: [linux] 1064 + 1065 + lightningcss-linux-x64-musl@1.29.2: 1066 + resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} 1067 + engines: {node: '>= 12.0.0'} 1068 + cpu: [x64] 1069 + os: [linux] 1070 + 1071 + lightningcss-win32-arm64-msvc@1.29.2: 1072 + resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==} 1073 + engines: {node: '>= 12.0.0'} 1074 + cpu: [arm64] 1075 + os: [win32] 1076 + 1077 + lightningcss-win32-x64-msvc@1.29.2: 1078 + resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==} 1079 + engines: {node: '>= 12.0.0'} 1080 + cpu: [x64] 1081 + os: [win32] 1082 + 1083 + lightningcss@1.29.2: 1084 + resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==} 1085 + engines: {node: '>= 12.0.0'} 1086 + 1087 + loupe@3.1.3: 1088 + resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} 1089 + 1090 + lru-cache@10.4.3: 1091 + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1092 + 1093 + lru-cache@5.1.1: 1094 + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1095 + 1096 + lucide-react@0.476.0: 1097 + resolution: {integrity: sha512-x6cLTk8gahdUPje0hSgLN1/MgiJH+Xl90Xoxy9bkPAsMPOUiyRSKR4JCDPGVCEpyqnZXH3exFWNItcvra9WzUQ==} 1098 + peerDependencies: 1099 + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 1100 + 1101 + lz-string@1.5.0: 1102 + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} 1103 + hasBin: true 1104 + 1105 + magic-string@0.30.17: 1106 + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} 1107 + 1108 + ms@2.1.3: 1109 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1110 + 1111 + nanoid@3.3.11: 1112 + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 1113 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1114 + hasBin: true 1115 + 1116 + node-releases@2.0.19: 1117 + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} 1118 + 1119 + normalize-path@3.0.0: 1120 + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1121 + engines: {node: '>=0.10.0'} 1122 + 1123 + nwsapi@2.2.20: 1124 + resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} 1125 + 1126 + parse5@7.3.0: 1127 + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} 1128 + 1129 + pathe@2.0.3: 1130 + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 1131 + 1132 + pathval@2.0.0: 1133 + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} 1134 + engines: {node: '>= 14.16'} 1135 + 1136 + picocolors@1.1.1: 1137 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1138 + 1139 + picomatch@2.3.1: 1140 + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1141 + engines: {node: '>=8.6'} 1142 + 1143 + picomatch@4.0.2: 1144 + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 1145 + engines: {node: '>=12'} 1146 + 1147 + postcss@8.5.3: 1148 + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} 1149 + engines: {node: ^10 || ^12 || >=14} 1150 + 1151 + prettier@3.5.3: 1152 + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} 1153 + engines: {node: '>=14'} 1154 + hasBin: true 1155 + 1156 + pretty-format@27.5.1: 1157 + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 1158 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 1159 + 1160 + punycode@2.3.1: 1161 + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1162 + engines: {node: '>=6'} 1163 + 1164 + react-dom@19.1.0: 1165 + resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} 1166 + peerDependencies: 1167 + react: ^19.1.0 1168 + 1169 + react-is@17.0.2: 1170 + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 1171 + 1172 + react-refresh@0.17.0: 1173 + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} 1174 + engines: {node: '>=0.10.0'} 1175 + 1176 + react@19.1.0: 1177 + resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} 1178 + engines: {node: '>=0.10.0'} 1179 + 1180 + readdirp@3.6.0: 1181 + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1182 + engines: {node: '>=8.10.0'} 1183 + 1184 + resolve-pkg-maps@1.0.0: 1185 + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 1186 + 1187 + rollup@4.40.1: 1188 + resolution: {integrity: sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==} 1189 + engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1190 + hasBin: true 1191 + 1192 + rrweb-cssom@0.8.0: 1193 + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} 1194 + 1195 + safer-buffer@2.1.2: 1196 + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1197 + 1198 + saxes@6.0.0: 1199 + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} 1200 + engines: {node: '>=v12.22.7'} 1201 + 1202 + scheduler@0.26.0: 1203 + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} 1204 + 1205 + semver@6.3.1: 1206 + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1207 + hasBin: true 1208 + 1209 + seroval-plugins@1.2.1: 1210 + resolution: {integrity: sha512-H5vs53+39+x4Udwp4J5rNZfgFuA+Lt+uU+09w1gYBVWomtAl98B+E9w7yC05Xc81/HgLvJdlyqJbU0fJCKCmdw==} 1211 + engines: {node: '>=10'} 1212 + peerDependencies: 1213 + seroval: ^1.0 1214 + 1215 + seroval@1.2.1: 1216 + resolution: {integrity: sha512-yBxFFs3zmkvKNmR0pFSU//rIsYjuX418TnlDmc2weaq5XFDqDIV/NOMPBoLrbxjLH42p4UzRuXHryXh9dYcKcw==} 1217 + engines: {node: '>=10'} 1218 + 1219 + siginfo@2.0.0: 1220 + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 1221 + 1222 + solid-js@1.9.6: 1223 + resolution: {integrity: sha512-PoasAJvLk60hRtOTe9ulvALOdLjjqxuxcGZRolBQqxOnXrBXHGzqMT4ijNhGsDAYdOgEa8ZYaAE94PSldrFSkA==} 1224 + 1225 + source-map-js@1.2.1: 1226 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1227 + engines: {node: '>=0.10.0'} 1228 + 1229 + stackback@0.0.2: 1230 + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 1231 + 1232 + std-env@3.9.0: 1233 + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} 1234 + 1235 + supports-color@7.2.0: 1236 + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1237 + engines: {node: '>=8'} 1238 + 1239 + symbol-tree@3.2.4: 1240 + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 1241 + 1242 + tailwind-merge@3.2.0: 1243 + resolution: {integrity: sha512-FQT/OVqCD+7edmmJpsgCsY820RTD5AkBryuG5IUqR5YQZSdj5xlH5nLgH7YPths7WsLPSpSBNneJdM8aS8aeFA==} 1244 + 1245 + tailwindcss-animate@1.0.7: 1246 + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} 1247 + peerDependencies: 1248 + tailwindcss: '>=3.0.0 || insiders' 1249 + 1250 + tailwindcss@4.1.5: 1251 + resolution: {integrity: sha512-nYtSPfWGDiWgCkwQG/m+aX83XCwf62sBgg3bIlNiiOcggnS1x3uVRDAuyelBFL+vJdOPPCGElxv9DjHJjRHiVA==} 1252 + 1253 + tapable@2.2.1: 1254 + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 1255 + engines: {node: '>=6'} 1256 + 1257 + tiny-invariant@1.3.3: 1258 + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} 1259 + 1260 + tiny-warning@1.0.3: 1261 + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} 1262 + 1263 + tinybench@2.9.0: 1264 + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} 1265 + 1266 + tinyexec@0.3.2: 1267 + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 1268 + 1269 + tinyglobby@0.2.13: 1270 + resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} 1271 + engines: {node: '>=12.0.0'} 1272 + 1273 + tinypool@1.0.2: 1274 + resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} 1275 + engines: {node: ^18.0.0 || >=20.0.0} 1276 + 1277 + tinyrainbow@2.0.0: 1278 + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} 1279 + engines: {node: '>=14.0.0'} 1280 + 1281 + tinyspy@3.0.2: 1282 + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} 1283 + engines: {node: '>=14.0.0'} 1284 + 1285 + tldts-core@6.1.86: 1286 + resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} 1287 + 1288 + tldts@6.1.86: 1289 + resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} 1290 + hasBin: true 1291 + 1292 + to-regex-range@5.0.1: 1293 + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1294 + engines: {node: '>=8.0'} 1295 + 1296 + tough-cookie@5.1.2: 1297 + resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} 1298 + engines: {node: '>=16'} 1299 + 1300 + tr46@5.1.1: 1301 + resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} 1302 + engines: {node: '>=18'} 1303 + 1304 + tsx@4.19.4: 1305 + resolution: {integrity: sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q==} 1306 + engines: {node: '>=18.0.0'} 1307 + hasBin: true 1308 + 1309 + typescript@5.8.3: 1310 + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} 1311 + engines: {node: '>=14.17'} 1312 + hasBin: true 1313 + 1314 + unplugin@2.3.2: 1315 + resolution: {integrity: sha512-3n7YA46rROb3zSj8fFxtxC/PqoyvYQ0llwz9wtUPUutr9ig09C8gGo5CWCwHrUzlqC1LLR43kxp5vEIyH1ac1w==} 1316 + engines: {node: '>=18.12.0'} 1317 + 1318 + update-browserslist-db@1.1.3: 1319 + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} 1320 + hasBin: true 1321 + peerDependencies: 1322 + browserslist: '>= 4.21.0' 1323 + 1324 + use-sync-external-store@1.5.0: 1325 + resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} 1326 + peerDependencies: 1327 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 1328 + 1329 + vite-node@3.1.2: 1330 + resolution: {integrity: sha512-/8iMryv46J3aK13iUXsei5G/A3CUlW4665THCPS+K8xAaqrVWiGB4RfXMQXCLjpK9P2eK//BczrVkn5JLAk6DA==} 1331 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1332 + hasBin: true 1333 + 1334 + vite@6.3.4: 1335 + resolution: {integrity: sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==} 1336 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1337 + hasBin: true 1338 + peerDependencies: 1339 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 1340 + jiti: '>=1.21.0' 1341 + less: '*' 1342 + lightningcss: ^1.21.0 1343 + sass: '*' 1344 + sass-embedded: '*' 1345 + stylus: '*' 1346 + sugarss: '*' 1347 + terser: ^5.16.0 1348 + tsx: ^4.8.1 1349 + yaml: ^2.4.2 1350 + peerDependenciesMeta: 1351 + '@types/node': 1352 + optional: true 1353 + jiti: 1354 + optional: true 1355 + less: 1356 + optional: true 1357 + lightningcss: 1358 + optional: true 1359 + sass: 1360 + optional: true 1361 + sass-embedded: 1362 + optional: true 1363 + stylus: 1364 + optional: true 1365 + sugarss: 1366 + optional: true 1367 + terser: 1368 + optional: true 1369 + tsx: 1370 + optional: true 1371 + yaml: 1372 + optional: true 1373 + 1374 + vitest@3.1.2: 1375 + resolution: {integrity: sha512-WaxpJe092ID1C0mr+LH9MmNrhfzi8I65EX/NRU/Ld016KqQNRgxSOlGNP1hHN+a/F8L15Mh8klwaF77zR3GeDQ==} 1376 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1377 + hasBin: true 1378 + peerDependencies: 1379 + '@edge-runtime/vm': '*' 1380 + '@types/debug': ^4.1.12 1381 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 1382 + '@vitest/browser': 3.1.2 1383 + '@vitest/ui': 3.1.2 1384 + happy-dom: '*' 1385 + jsdom: '*' 1386 + peerDependenciesMeta: 1387 + '@edge-runtime/vm': 1388 + optional: true 1389 + '@types/debug': 1390 + optional: true 1391 + '@types/node': 1392 + optional: true 1393 + '@vitest/browser': 1394 + optional: true 1395 + '@vitest/ui': 1396 + optional: true 1397 + happy-dom: 1398 + optional: true 1399 + jsdom: 1400 + optional: true 1401 + 1402 + w3c-xmlserializer@5.0.0: 1403 + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} 1404 + engines: {node: '>=18'} 1405 + 1406 + web-vitals@4.2.4: 1407 + resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} 1408 + 1409 + webidl-conversions@7.0.0: 1410 + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 1411 + engines: {node: '>=12'} 1412 + 1413 + webpack-virtual-modules@0.6.2: 1414 + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} 1415 + 1416 + whatwg-encoding@3.1.1: 1417 + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 1418 + engines: {node: '>=18'} 1419 + 1420 + whatwg-mimetype@4.0.0: 1421 + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 1422 + engines: {node: '>=18'} 1423 + 1424 + whatwg-url@14.2.0: 1425 + resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} 1426 + engines: {node: '>=18'} 1427 + 1428 + why-is-node-running@2.3.0: 1429 + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} 1430 + engines: {node: '>=8'} 1431 + hasBin: true 1432 + 1433 + ws@8.18.2: 1434 + resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} 1435 + engines: {node: '>=10.0.0'} 1436 + peerDependencies: 1437 + bufferutil: ^4.0.1 1438 + utf-8-validate: '>=5.0.2' 1439 + peerDependenciesMeta: 1440 + bufferutil: 1441 + optional: true 1442 + utf-8-validate: 1443 + optional: true 1444 + 1445 + xml-name-validator@5.0.0: 1446 + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} 1447 + engines: {node: '>=18'} 1448 + 1449 + xmlchars@2.2.0: 1450 + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 1451 + 1452 + yallist@3.1.1: 1453 + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1454 + 1455 + zod@3.24.3: 1456 + resolution: {integrity: sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==} 1457 + 1458 + snapshots: 1459 + 1460 + '@ampproject/remapping@2.3.0': 1461 + dependencies: 1462 + '@jridgewell/gen-mapping': 0.3.8 1463 + '@jridgewell/trace-mapping': 0.3.25 1464 + 1465 + '@asamuzakjp/css-color@3.1.7': 1466 + dependencies: 1467 + '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) 1468 + '@csstools/css-color-parser': 3.0.9(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) 1469 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) 1470 + '@csstools/css-tokenizer': 3.0.3 1471 + lru-cache: 10.4.3 1472 + 1473 + '@babel/code-frame@7.27.1': 1474 + dependencies: 1475 + '@babel/helper-validator-identifier': 7.27.1 1476 + js-tokens: 4.0.0 1477 + picocolors: 1.1.1 1478 + 1479 + '@babel/compat-data@7.27.1': {} 1480 + 1481 + '@babel/core@7.27.1': 1482 + dependencies: 1483 + '@ampproject/remapping': 2.3.0 1484 + '@babel/code-frame': 7.27.1 1485 + '@babel/generator': 7.27.1 1486 + '@babel/helper-compilation-targets': 7.27.1 1487 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) 1488 + '@babel/helpers': 7.27.1 1489 + '@babel/parser': 7.27.1 1490 + '@babel/template': 7.27.1 1491 + '@babel/traverse': 7.27.1 1492 + '@babel/types': 7.27.1 1493 + convert-source-map: 2.0.0 1494 + debug: 4.4.0 1495 + gensync: 1.0.0-beta.2 1496 + json5: 2.2.3 1497 + semver: 6.3.1 1498 + transitivePeerDependencies: 1499 + - supports-color 1500 + 1501 + '@babel/generator@7.27.1': 1502 + dependencies: 1503 + '@babel/parser': 7.27.1 1504 + '@babel/types': 7.27.1 1505 + '@jridgewell/gen-mapping': 0.3.8 1506 + '@jridgewell/trace-mapping': 0.3.25 1507 + jsesc: 3.1.0 1508 + 1509 + '@babel/helper-compilation-targets@7.27.1': 1510 + dependencies: 1511 + '@babel/compat-data': 7.27.1 1512 + '@babel/helper-validator-option': 7.27.1 1513 + browserslist: 4.24.5 1514 + lru-cache: 5.1.1 1515 + semver: 6.3.1 1516 + 1517 + '@babel/helper-module-imports@7.27.1': 1518 + dependencies: 1519 + '@babel/traverse': 7.27.1 1520 + '@babel/types': 7.27.1 1521 + transitivePeerDependencies: 1522 + - supports-color 1523 + 1524 + '@babel/helper-module-transforms@7.27.1(@babel/core@7.27.1)': 1525 + dependencies: 1526 + '@babel/core': 7.27.1 1527 + '@babel/helper-module-imports': 7.27.1 1528 + '@babel/helper-validator-identifier': 7.27.1 1529 + '@babel/traverse': 7.27.1 1530 + transitivePeerDependencies: 1531 + - supports-color 1532 + 1533 + '@babel/helper-plugin-utils@7.27.1': {} 1534 + 1535 + '@babel/helper-string-parser@7.27.1': {} 1536 + 1537 + '@babel/helper-validator-identifier@7.27.1': {} 1538 + 1539 + '@babel/helper-validator-option@7.27.1': {} 1540 + 1541 + '@babel/helpers@7.27.1': 1542 + dependencies: 1543 + '@babel/template': 7.27.1 1544 + '@babel/types': 7.27.1 1545 + 1546 + '@babel/parser@7.27.1': 1547 + dependencies: 1548 + '@babel/types': 7.27.1 1549 + 1550 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.1)': 1551 + dependencies: 1552 + '@babel/core': 7.27.1 1553 + '@babel/helper-plugin-utils': 7.27.1 1554 + 1555 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.1)': 1556 + dependencies: 1557 + '@babel/core': 7.27.1 1558 + '@babel/helper-plugin-utils': 7.27.1 1559 + 1560 + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.27.1)': 1561 + dependencies: 1562 + '@babel/core': 7.27.1 1563 + '@babel/helper-plugin-utils': 7.27.1 1564 + 1565 + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.27.1)': 1566 + dependencies: 1567 + '@babel/core': 7.27.1 1568 + '@babel/helper-plugin-utils': 7.27.1 1569 + 1570 + '@babel/runtime@7.27.1': {} 1571 + 1572 + '@babel/template@7.27.1': 1573 + dependencies: 1574 + '@babel/code-frame': 7.27.1 1575 + '@babel/parser': 7.27.1 1576 + '@babel/types': 7.27.1 1577 + 1578 + '@babel/traverse@7.27.1': 1579 + dependencies: 1580 + '@babel/code-frame': 7.27.1 1581 + '@babel/generator': 7.27.1 1582 + '@babel/parser': 7.27.1 1583 + '@babel/template': 7.27.1 1584 + '@babel/types': 7.27.1 1585 + debug: 4.4.0 1586 + globals: 11.12.0 1587 + transitivePeerDependencies: 1588 + - supports-color 1589 + 1590 + '@babel/types@7.27.1': 1591 + dependencies: 1592 + '@babel/helper-string-parser': 7.27.1 1593 + '@babel/helper-validator-identifier': 7.27.1 1594 + 1595 + '@csstools/color-helpers@5.0.2': {} 1596 + 1597 + '@csstools/css-calc@2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': 1598 + dependencies: 1599 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) 1600 + '@csstools/css-tokenizer': 3.0.3 1601 + 1602 + '@csstools/css-color-parser@3.0.9(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': 1603 + dependencies: 1604 + '@csstools/color-helpers': 5.0.2 1605 + '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) 1606 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) 1607 + '@csstools/css-tokenizer': 3.0.3 1608 + 1609 + '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': 1610 + dependencies: 1611 + '@csstools/css-tokenizer': 3.0.3 1612 + 1613 + '@csstools/css-tokenizer@3.0.3': {} 1614 + 1615 + '@esbuild/aix-ppc64@0.25.3': 1616 + optional: true 1617 + 1618 + '@esbuild/android-arm64@0.25.3': 1619 + optional: true 1620 + 1621 + '@esbuild/android-arm@0.25.3': 1622 + optional: true 1623 + 1624 + '@esbuild/android-x64@0.25.3': 1625 + optional: true 1626 + 1627 + '@esbuild/darwin-arm64@0.25.3': 1628 + optional: true 1629 + 1630 + '@esbuild/darwin-x64@0.25.3': 1631 + optional: true 1632 + 1633 + '@esbuild/freebsd-arm64@0.25.3': 1634 + optional: true 1635 + 1636 + '@esbuild/freebsd-x64@0.25.3': 1637 + optional: true 1638 + 1639 + '@esbuild/linux-arm64@0.25.3': 1640 + optional: true 1641 + 1642 + '@esbuild/linux-arm@0.25.3': 1643 + optional: true 1644 + 1645 + '@esbuild/linux-ia32@0.25.3': 1646 + optional: true 1647 + 1648 + '@esbuild/linux-loong64@0.25.3': 1649 + optional: true 1650 + 1651 + '@esbuild/linux-mips64el@0.25.3': 1652 + optional: true 1653 + 1654 + '@esbuild/linux-ppc64@0.25.3': 1655 + optional: true 1656 + 1657 + '@esbuild/linux-riscv64@0.25.3': 1658 + optional: true 1659 + 1660 + '@esbuild/linux-s390x@0.25.3': 1661 + optional: true 1662 + 1663 + '@esbuild/linux-x64@0.25.3': 1664 + optional: true 1665 + 1666 + '@esbuild/netbsd-arm64@0.25.3': 1667 + optional: true 1668 + 1669 + '@esbuild/netbsd-x64@0.25.3': 1670 + optional: true 1671 + 1672 + '@esbuild/openbsd-arm64@0.25.3': 1673 + optional: true 1674 + 1675 + '@esbuild/openbsd-x64@0.25.3': 1676 + optional: true 1677 + 1678 + '@esbuild/sunos-x64@0.25.3': 1679 + optional: true 1680 + 1681 + '@esbuild/win32-arm64@0.25.3': 1682 + optional: true 1683 + 1684 + '@esbuild/win32-ia32@0.25.3': 1685 + optional: true 1686 + 1687 + '@esbuild/win32-x64@0.25.3': 1688 + optional: true 1689 + 1690 + '@jridgewell/gen-mapping@0.3.8': 1691 + dependencies: 1692 + '@jridgewell/set-array': 1.2.1 1693 + '@jridgewell/sourcemap-codec': 1.5.0 1694 + '@jridgewell/trace-mapping': 0.3.25 1695 + 1696 + '@jridgewell/resolve-uri@3.1.2': {} 1697 + 1698 + '@jridgewell/set-array@1.2.1': {} 1699 + 1700 + '@jridgewell/sourcemap-codec@1.5.0': {} 1701 + 1702 + '@jridgewell/trace-mapping@0.3.25': 1703 + dependencies: 1704 + '@jridgewell/resolve-uri': 3.1.2 1705 + '@jridgewell/sourcemap-codec': 1.5.0 1706 + 1707 + '@rollup/rollup-android-arm-eabi@4.40.1': 1708 + optional: true 1709 + 1710 + '@rollup/rollup-android-arm64@4.40.1': 1711 + optional: true 1712 + 1713 + '@rollup/rollup-darwin-arm64@4.40.1': 1714 + optional: true 1715 + 1716 + '@rollup/rollup-darwin-x64@4.40.1': 1717 + optional: true 1718 + 1719 + '@rollup/rollup-freebsd-arm64@4.40.1': 1720 + optional: true 1721 + 1722 + '@rollup/rollup-freebsd-x64@4.40.1': 1723 + optional: true 1724 + 1725 + '@rollup/rollup-linux-arm-gnueabihf@4.40.1': 1726 + optional: true 1727 + 1728 + '@rollup/rollup-linux-arm-musleabihf@4.40.1': 1729 + optional: true 1730 + 1731 + '@rollup/rollup-linux-arm64-gnu@4.40.1': 1732 + optional: true 1733 + 1734 + '@rollup/rollup-linux-arm64-musl@4.40.1': 1735 + optional: true 1736 + 1737 + '@rollup/rollup-linux-loongarch64-gnu@4.40.1': 1738 + optional: true 1739 + 1740 + '@rollup/rollup-linux-powerpc64le-gnu@4.40.1': 1741 + optional: true 1742 + 1743 + '@rollup/rollup-linux-riscv64-gnu@4.40.1': 1744 + optional: true 1745 + 1746 + '@rollup/rollup-linux-riscv64-musl@4.40.1': 1747 + optional: true 1748 + 1749 + '@rollup/rollup-linux-s390x-gnu@4.40.1': 1750 + optional: true 1751 + 1752 + '@rollup/rollup-linux-x64-gnu@4.40.1': 1753 + optional: true 1754 + 1755 + '@rollup/rollup-linux-x64-musl@4.40.1': 1756 + optional: true 1757 + 1758 + '@rollup/rollup-win32-arm64-msvc@4.40.1': 1759 + optional: true 1760 + 1761 + '@rollup/rollup-win32-ia32-msvc@4.40.1': 1762 + optional: true 1763 + 1764 + '@rollup/rollup-win32-x64-msvc@4.40.1': 1765 + optional: true 1766 + 1767 + '@tailwindcss/node@4.1.5': 1768 + dependencies: 1769 + enhanced-resolve: 5.18.1 1770 + jiti: 2.4.2 1771 + lightningcss: 1.29.2 1772 + tailwindcss: 4.1.5 1773 + 1774 + '@tailwindcss/oxide-android-arm64@4.1.5': 1775 + optional: true 1776 + 1777 + '@tailwindcss/oxide-darwin-arm64@4.1.5': 1778 + optional: true 1779 + 1780 + '@tailwindcss/oxide-darwin-x64@4.1.5': 1781 + optional: true 1782 + 1783 + '@tailwindcss/oxide-freebsd-x64@4.1.5': 1784 + optional: true 1785 + 1786 + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.5': 1787 + optional: true 1788 + 1789 + '@tailwindcss/oxide-linux-arm64-gnu@4.1.5': 1790 + optional: true 1791 + 1792 + '@tailwindcss/oxide-linux-arm64-musl@4.1.5': 1793 + optional: true 1794 + 1795 + '@tailwindcss/oxide-linux-x64-gnu@4.1.5': 1796 + optional: true 1797 + 1798 + '@tailwindcss/oxide-linux-x64-musl@4.1.5': 1799 + optional: true 1800 + 1801 + '@tailwindcss/oxide-wasm32-wasi@4.1.5': 1802 + optional: true 1803 + 1804 + '@tailwindcss/oxide-win32-arm64-msvc@4.1.5': 1805 + optional: true 1806 + 1807 + '@tailwindcss/oxide-win32-x64-msvc@4.1.5': 1808 + optional: true 1809 + 1810 + '@tailwindcss/oxide@4.1.5': 1811 + optionalDependencies: 1812 + '@tailwindcss/oxide-android-arm64': 4.1.5 1813 + '@tailwindcss/oxide-darwin-arm64': 4.1.5 1814 + '@tailwindcss/oxide-darwin-x64': 4.1.5 1815 + '@tailwindcss/oxide-freebsd-x64': 4.1.5 1816 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.5 1817 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.5 1818 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.5 1819 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.5 1820 + '@tailwindcss/oxide-linux-x64-musl': 4.1.5 1821 + '@tailwindcss/oxide-wasm32-wasi': 4.1.5 1822 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.5 1823 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.5 1824 + 1825 + '@tailwindcss/vite@4.1.5(vite@6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4))': 1826 + dependencies: 1827 + '@tailwindcss/node': 4.1.5 1828 + '@tailwindcss/oxide': 4.1.5 1829 + tailwindcss: 4.1.5 1830 + vite: 6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4) 1831 + 1832 + '@tanstack/history@1.115.0': {} 1833 + 1834 + '@tanstack/query-core@5.75.0': {} 1835 + 1836 + '@tanstack/query-devtools@5.74.7': {} 1837 + 1838 + '@tanstack/react-query-devtools@5.75.1(@tanstack/react-query@5.75.1(react@19.1.0))(react@19.1.0)': 1839 + dependencies: 1840 + '@tanstack/query-devtools': 5.74.7 1841 + '@tanstack/react-query': 5.75.1(react@19.1.0) 1842 + react: 19.1.0 1843 + 1844 + '@tanstack/react-query@5.75.1(react@19.1.0)': 1845 + dependencies: 1846 + '@tanstack/query-core': 5.75.0 1847 + react: 19.1.0 1848 + 1849 + '@tanstack/react-router-devtools@1.119.1(@tanstack/react-router@1.119.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.119.0)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tiny-invariant@1.3.3)': 1850 + dependencies: 1851 + '@tanstack/react-router': 1.119.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) 1852 + '@tanstack/router-devtools-core': 1.119.0(@tanstack/router-core@1.119.0)(csstype@3.1.3)(solid-js@1.9.6)(tiny-invariant@1.3.3) 1853 + react: 19.1.0 1854 + react-dom: 19.1.0(react@19.1.0) 1855 + solid-js: 1.9.6 1856 + transitivePeerDependencies: 1857 + - '@tanstack/router-core' 1858 + - csstype 1859 + - tiny-invariant 1860 + 1861 + '@tanstack/react-router@1.119.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': 1862 + dependencies: 1863 + '@tanstack/history': 1.115.0 1864 + '@tanstack/react-store': 0.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) 1865 + '@tanstack/router-core': 1.119.0 1866 + jsesc: 3.1.0 1867 + react: 19.1.0 1868 + react-dom: 19.1.0(react@19.1.0) 1869 + tiny-invariant: 1.3.3 1870 + tiny-warning: 1.0.3 1871 + 1872 + '@tanstack/react-store@0.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': 1873 + dependencies: 1874 + '@tanstack/store': 0.7.0 1875 + react: 19.1.0 1876 + react-dom: 19.1.0(react@19.1.0) 1877 + use-sync-external-store: 1.5.0(react@19.1.0) 1878 + 1879 + '@tanstack/router-core@1.119.0': 1880 + dependencies: 1881 + '@tanstack/history': 1.115.0 1882 + '@tanstack/store': 0.7.0 1883 + tiny-invariant: 1.3.3 1884 + 1885 + '@tanstack/router-devtools-core@1.119.0(@tanstack/router-core@1.119.0)(csstype@3.1.3)(solid-js@1.9.6)(tiny-invariant@1.3.3)': 1886 + dependencies: 1887 + '@tanstack/router-core': 1.119.0 1888 + clsx: 2.1.1 1889 + goober: 2.1.16(csstype@3.1.3) 1890 + solid-js: 1.9.6 1891 + tiny-invariant: 1.3.3 1892 + optionalDependencies: 1893 + csstype: 3.1.3 1894 + 1895 + '@tanstack/router-generator@1.119.0(@tanstack/react-router@1.119.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))': 1896 + dependencies: 1897 + '@tanstack/virtual-file-routes': 1.115.0 1898 + prettier: 3.5.3 1899 + tsx: 4.19.4 1900 + zod: 3.24.3 1901 + optionalDependencies: 1902 + '@tanstack/react-router': 1.119.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) 1903 + 1904 + '@tanstack/router-plugin@1.119.0(@tanstack/react-router@1.119.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite@6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4))': 1905 + dependencies: 1906 + '@babel/core': 7.27.1 1907 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1) 1908 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1) 1909 + '@babel/template': 7.27.1 1910 + '@babel/traverse': 7.27.1 1911 + '@babel/types': 7.27.1 1912 + '@tanstack/router-core': 1.119.0 1913 + '@tanstack/router-generator': 1.119.0(@tanstack/react-router@1.119.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) 1914 + '@tanstack/router-utils': 1.115.0 1915 + '@tanstack/virtual-file-routes': 1.115.0 1916 + '@types/babel__core': 7.20.5 1917 + '@types/babel__template': 7.4.4 1918 + '@types/babel__traverse': 7.20.7 1919 + babel-dead-code-elimination: 1.0.10 1920 + chokidar: 3.6.0 1921 + unplugin: 2.3.2 1922 + zod: 3.24.3 1923 + optionalDependencies: 1924 + '@tanstack/react-router': 1.119.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) 1925 + vite: 6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4) 1926 + transitivePeerDependencies: 1927 + - supports-color 1928 + 1929 + '@tanstack/router-utils@1.115.0': 1930 + dependencies: 1931 + '@babel/generator': 7.27.1 1932 + '@babel/parser': 7.27.1 1933 + ansis: 3.17.0 1934 + diff: 7.0.0 1935 + 1936 + '@tanstack/store@0.7.0': {} 1937 + 1938 + '@tanstack/virtual-file-routes@1.115.0': {} 1939 + 1940 + '@testing-library/dom@10.4.0': 1941 + dependencies: 1942 + '@babel/code-frame': 7.27.1 1943 + '@babel/runtime': 7.27.1 1944 + '@types/aria-query': 5.0.4 1945 + aria-query: 5.3.0 1946 + chalk: 4.1.2 1947 + dom-accessibility-api: 0.5.16 1948 + lz-string: 1.5.0 1949 + pretty-format: 27.5.1 1950 + 1951 + '@testing-library/react@16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': 1952 + dependencies: 1953 + '@babel/runtime': 7.27.1 1954 + '@testing-library/dom': 10.4.0 1955 + react: 19.1.0 1956 + react-dom: 19.1.0(react@19.1.0) 1957 + optionalDependencies: 1958 + '@types/react': 19.1.2 1959 + '@types/react-dom': 19.1.3(@types/react@19.1.2) 1960 + 1961 + '@types/aria-query@5.0.4': {} 1962 + 1963 + '@types/babel__core@7.20.5': 1964 + dependencies: 1965 + '@babel/parser': 7.27.1 1966 + '@babel/types': 7.27.1 1967 + '@types/babel__generator': 7.27.0 1968 + '@types/babel__template': 7.4.4 1969 + '@types/babel__traverse': 7.20.7 1970 + 1971 + '@types/babel__generator@7.27.0': 1972 + dependencies: 1973 + '@babel/types': 7.27.1 1974 + 1975 + '@types/babel__template@7.4.4': 1976 + dependencies: 1977 + '@babel/parser': 7.27.1 1978 + '@babel/types': 7.27.1 1979 + 1980 + '@types/babel__traverse@7.20.7': 1981 + dependencies: 1982 + '@babel/types': 7.27.1 1983 + 1984 + '@types/estree@1.0.7': {} 1985 + 1986 + '@types/react-dom@19.1.3(@types/react@19.1.2)': 1987 + dependencies: 1988 + '@types/react': 19.1.2 1989 + 1990 + '@types/react@19.1.2': 1991 + dependencies: 1992 + csstype: 3.1.3 1993 + 1994 + '@vitejs/plugin-react@4.4.1(vite@6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4))': 1995 + dependencies: 1996 + '@babel/core': 7.27.1 1997 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.1) 1998 + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.1) 1999 + '@types/babel__core': 7.20.5 2000 + react-refresh: 0.17.0 2001 + vite: 6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4) 2002 + transitivePeerDependencies: 2003 + - supports-color 2004 + 2005 + '@vitest/expect@3.1.2': 2006 + dependencies: 2007 + '@vitest/spy': 3.1.2 2008 + '@vitest/utils': 3.1.2 2009 + chai: 5.2.0 2010 + tinyrainbow: 2.0.0 2011 + 2012 + '@vitest/mocker@3.1.2(vite@6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4))': 2013 + dependencies: 2014 + '@vitest/spy': 3.1.2 2015 + estree-walker: 3.0.3 2016 + magic-string: 0.30.17 2017 + optionalDependencies: 2018 + vite: 6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4) 2019 + 2020 + '@vitest/pretty-format@3.1.2': 2021 + dependencies: 2022 + tinyrainbow: 2.0.0 2023 + 2024 + '@vitest/runner@3.1.2': 2025 + dependencies: 2026 + '@vitest/utils': 3.1.2 2027 + pathe: 2.0.3 2028 + 2029 + '@vitest/snapshot@3.1.2': 2030 + dependencies: 2031 + '@vitest/pretty-format': 3.1.2 2032 + magic-string: 0.30.17 2033 + pathe: 2.0.3 2034 + 2035 + '@vitest/spy@3.1.2': 2036 + dependencies: 2037 + tinyspy: 3.0.2 2038 + 2039 + '@vitest/utils@3.1.2': 2040 + dependencies: 2041 + '@vitest/pretty-format': 3.1.2 2042 + loupe: 3.1.3 2043 + tinyrainbow: 2.0.0 2044 + 2045 + acorn@8.14.1: {} 2046 + 2047 + agent-base@7.1.3: {} 2048 + 2049 + ansi-regex@5.0.1: {} 2050 + 2051 + ansi-styles@4.3.0: 2052 + dependencies: 2053 + color-convert: 2.0.1 2054 + 2055 + ansi-styles@5.2.0: {} 2056 + 2057 + ansis@3.17.0: {} 2058 + 2059 + anymatch@3.1.3: 2060 + dependencies: 2061 + normalize-path: 3.0.0 2062 + picomatch: 2.3.1 2063 + 2064 + aria-query@5.3.0: 2065 + dependencies: 2066 + dequal: 2.0.3 2067 + 2068 + assertion-error@2.0.1: {} 2069 + 2070 + babel-dead-code-elimination@1.0.10: 2071 + dependencies: 2072 + '@babel/core': 7.27.1 2073 + '@babel/parser': 7.27.1 2074 + '@babel/traverse': 7.27.1 2075 + '@babel/types': 7.27.1 2076 + transitivePeerDependencies: 2077 + - supports-color 2078 + 2079 + binary-extensions@2.3.0: {} 2080 + 2081 + braces@3.0.3: 2082 + dependencies: 2083 + fill-range: 7.1.1 2084 + 2085 + browserslist@4.24.5: 2086 + dependencies: 2087 + caniuse-lite: 1.0.30001716 2088 + electron-to-chromium: 1.5.149 2089 + node-releases: 2.0.19 2090 + update-browserslist-db: 1.1.3(browserslist@4.24.5) 2091 + 2092 + cac@6.7.14: {} 2093 + 2094 + caniuse-lite@1.0.30001716: {} 2095 + 2096 + chai@5.2.0: 2097 + dependencies: 2098 + assertion-error: 2.0.1 2099 + check-error: 2.1.1 2100 + deep-eql: 5.0.2 2101 + loupe: 3.1.3 2102 + pathval: 2.0.0 2103 + 2104 + chalk@4.1.2: 2105 + dependencies: 2106 + ansi-styles: 4.3.0 2107 + supports-color: 7.2.0 2108 + 2109 + check-error@2.1.1: {} 2110 + 2111 + chokidar@3.6.0: 2112 + dependencies: 2113 + anymatch: 3.1.3 2114 + braces: 3.0.3 2115 + glob-parent: 5.1.2 2116 + is-binary-path: 2.1.0 2117 + is-glob: 4.0.3 2118 + normalize-path: 3.0.0 2119 + readdirp: 3.6.0 2120 + optionalDependencies: 2121 + fsevents: 2.3.3 2122 + 2123 + class-variance-authority@0.7.1: 2124 + dependencies: 2125 + clsx: 2.1.1 2126 + 2127 + clsx@2.1.1: {} 2128 + 2129 + color-convert@2.0.1: 2130 + dependencies: 2131 + color-name: 1.1.4 2132 + 2133 + color-name@1.1.4: {} 2134 + 2135 + convert-source-map@2.0.0: {} 2136 + 2137 + cssstyle@4.3.1: 2138 + dependencies: 2139 + '@asamuzakjp/css-color': 3.1.7 2140 + rrweb-cssom: 0.8.0 2141 + 2142 + csstype@3.1.3: {} 2143 + 2144 + data-urls@5.0.0: 2145 + dependencies: 2146 + whatwg-mimetype: 4.0.0 2147 + whatwg-url: 14.2.0 2148 + 2149 + debug@4.4.0: 2150 + dependencies: 2151 + ms: 2.1.3 2152 + 2153 + decimal.js@10.5.0: {} 2154 + 2155 + deep-eql@5.0.2: {} 2156 + 2157 + dequal@2.0.3: {} 2158 + 2159 + detect-libc@2.0.4: {} 2160 + 2161 + diff@7.0.0: {} 2162 + 2163 + dom-accessibility-api@0.5.16: {} 2164 + 2165 + electron-to-chromium@1.5.149: {} 2166 + 2167 + enhanced-resolve@5.18.1: 2168 + dependencies: 2169 + graceful-fs: 4.2.11 2170 + tapable: 2.2.1 2171 + 2172 + entities@6.0.0: {} 2173 + 2174 + es-module-lexer@1.7.0: {} 2175 + 2176 + esbuild@0.25.3: 2177 + optionalDependencies: 2178 + '@esbuild/aix-ppc64': 0.25.3 2179 + '@esbuild/android-arm': 0.25.3 2180 + '@esbuild/android-arm64': 0.25.3 2181 + '@esbuild/android-x64': 0.25.3 2182 + '@esbuild/darwin-arm64': 0.25.3 2183 + '@esbuild/darwin-x64': 0.25.3 2184 + '@esbuild/freebsd-arm64': 0.25.3 2185 + '@esbuild/freebsd-x64': 0.25.3 2186 + '@esbuild/linux-arm': 0.25.3 2187 + '@esbuild/linux-arm64': 0.25.3 2188 + '@esbuild/linux-ia32': 0.25.3 2189 + '@esbuild/linux-loong64': 0.25.3 2190 + '@esbuild/linux-mips64el': 0.25.3 2191 + '@esbuild/linux-ppc64': 0.25.3 2192 + '@esbuild/linux-riscv64': 0.25.3 2193 + '@esbuild/linux-s390x': 0.25.3 2194 + '@esbuild/linux-x64': 0.25.3 2195 + '@esbuild/netbsd-arm64': 0.25.3 2196 + '@esbuild/netbsd-x64': 0.25.3 2197 + '@esbuild/openbsd-arm64': 0.25.3 2198 + '@esbuild/openbsd-x64': 0.25.3 2199 + '@esbuild/sunos-x64': 0.25.3 2200 + '@esbuild/win32-arm64': 0.25.3 2201 + '@esbuild/win32-ia32': 0.25.3 2202 + '@esbuild/win32-x64': 0.25.3 2203 + 2204 + escalade@3.2.0: {} 2205 + 2206 + estree-walker@3.0.3: 2207 + dependencies: 2208 + '@types/estree': 1.0.7 2209 + 2210 + expect-type@1.2.1: {} 2211 + 2212 + fdir@6.4.4(picomatch@4.0.2): 2213 + optionalDependencies: 2214 + picomatch: 4.0.2 2215 + 2216 + fill-range@7.1.1: 2217 + dependencies: 2218 + to-regex-range: 5.0.1 2219 + 2220 + fsevents@2.3.3: 2221 + optional: true 2222 + 2223 + gensync@1.0.0-beta.2: {} 2224 + 2225 + get-tsconfig@4.10.0: 2226 + dependencies: 2227 + resolve-pkg-maps: 1.0.0 2228 + 2229 + glob-parent@5.1.2: 2230 + dependencies: 2231 + is-glob: 4.0.3 2232 + 2233 + globals@11.12.0: {} 2234 + 2235 + goober@2.1.16(csstype@3.1.3): 2236 + dependencies: 2237 + csstype: 3.1.3 2238 + 2239 + graceful-fs@4.2.11: {} 2240 + 2241 + has-flag@4.0.0: {} 2242 + 2243 + html-encoding-sniffer@4.0.0: 2244 + dependencies: 2245 + whatwg-encoding: 3.1.1 2246 + 2247 + http-proxy-agent@7.0.2: 2248 + dependencies: 2249 + agent-base: 7.1.3 2250 + debug: 4.4.0 2251 + transitivePeerDependencies: 2252 + - supports-color 2253 + 2254 + https-proxy-agent@7.0.6: 2255 + dependencies: 2256 + agent-base: 7.1.3 2257 + debug: 4.4.0 2258 + transitivePeerDependencies: 2259 + - supports-color 2260 + 2261 + iconv-lite@0.6.3: 2262 + dependencies: 2263 + safer-buffer: 2.1.2 2264 + 2265 + is-binary-path@2.1.0: 2266 + dependencies: 2267 + binary-extensions: 2.3.0 2268 + 2269 + is-extglob@2.1.1: {} 2270 + 2271 + is-glob@4.0.3: 2272 + dependencies: 2273 + is-extglob: 2.1.1 2274 + 2275 + is-number@7.0.0: {} 2276 + 2277 + is-potential-custom-element-name@1.0.1: {} 2278 + 2279 + jiti@2.4.2: {} 2280 + 2281 + js-tokens@4.0.0: {} 2282 + 2283 + jsdom@26.1.0: 2284 + dependencies: 2285 + cssstyle: 4.3.1 2286 + data-urls: 5.0.0 2287 + decimal.js: 10.5.0 2288 + html-encoding-sniffer: 4.0.0 2289 + http-proxy-agent: 7.0.2 2290 + https-proxy-agent: 7.0.6 2291 + is-potential-custom-element-name: 1.0.1 2292 + nwsapi: 2.2.20 2293 + parse5: 7.3.0 2294 + rrweb-cssom: 0.8.0 2295 + saxes: 6.0.0 2296 + symbol-tree: 3.2.4 2297 + tough-cookie: 5.1.2 2298 + w3c-xmlserializer: 5.0.0 2299 + webidl-conversions: 7.0.0 2300 + whatwg-encoding: 3.1.1 2301 + whatwg-mimetype: 4.0.0 2302 + whatwg-url: 14.2.0 2303 + ws: 8.18.2 2304 + xml-name-validator: 5.0.0 2305 + transitivePeerDependencies: 2306 + - bufferutil 2307 + - supports-color 2308 + - utf-8-validate 2309 + 2310 + jsesc@3.1.0: {} 2311 + 2312 + json5@2.2.3: {} 2313 + 2314 + lightningcss-darwin-arm64@1.29.2: 2315 + optional: true 2316 + 2317 + lightningcss-darwin-x64@1.29.2: 2318 + optional: true 2319 + 2320 + lightningcss-freebsd-x64@1.29.2: 2321 + optional: true 2322 + 2323 + lightningcss-linux-arm-gnueabihf@1.29.2: 2324 + optional: true 2325 + 2326 + lightningcss-linux-arm64-gnu@1.29.2: 2327 + optional: true 2328 + 2329 + lightningcss-linux-arm64-musl@1.29.2: 2330 + optional: true 2331 + 2332 + lightningcss-linux-x64-gnu@1.29.2: 2333 + optional: true 2334 + 2335 + lightningcss-linux-x64-musl@1.29.2: 2336 + optional: true 2337 + 2338 + lightningcss-win32-arm64-msvc@1.29.2: 2339 + optional: true 2340 + 2341 + lightningcss-win32-x64-msvc@1.29.2: 2342 + optional: true 2343 + 2344 + lightningcss@1.29.2: 2345 + dependencies: 2346 + detect-libc: 2.0.4 2347 + optionalDependencies: 2348 + lightningcss-darwin-arm64: 1.29.2 2349 + lightningcss-darwin-x64: 1.29.2 2350 + lightningcss-freebsd-x64: 1.29.2 2351 + lightningcss-linux-arm-gnueabihf: 1.29.2 2352 + lightningcss-linux-arm64-gnu: 1.29.2 2353 + lightningcss-linux-arm64-musl: 1.29.2 2354 + lightningcss-linux-x64-gnu: 1.29.2 2355 + lightningcss-linux-x64-musl: 1.29.2 2356 + lightningcss-win32-arm64-msvc: 1.29.2 2357 + lightningcss-win32-x64-msvc: 1.29.2 2358 + 2359 + loupe@3.1.3: {} 2360 + 2361 + lru-cache@10.4.3: {} 2362 + 2363 + lru-cache@5.1.1: 2364 + dependencies: 2365 + yallist: 3.1.1 2366 + 2367 + lucide-react@0.476.0(react@19.1.0): 2368 + dependencies: 2369 + react: 19.1.0 2370 + 2371 + lz-string@1.5.0: {} 2372 + 2373 + magic-string@0.30.17: 2374 + dependencies: 2375 + '@jridgewell/sourcemap-codec': 1.5.0 2376 + 2377 + ms@2.1.3: {} 2378 + 2379 + nanoid@3.3.11: {} 2380 + 2381 + node-releases@2.0.19: {} 2382 + 2383 + normalize-path@3.0.0: {} 2384 + 2385 + nwsapi@2.2.20: {} 2386 + 2387 + parse5@7.3.0: 2388 + dependencies: 2389 + entities: 6.0.0 2390 + 2391 + pathe@2.0.3: {} 2392 + 2393 + pathval@2.0.0: {} 2394 + 2395 + picocolors@1.1.1: {} 2396 + 2397 + picomatch@2.3.1: {} 2398 + 2399 + picomatch@4.0.2: {} 2400 + 2401 + postcss@8.5.3: 2402 + dependencies: 2403 + nanoid: 3.3.11 2404 + picocolors: 1.1.1 2405 + source-map-js: 1.2.1 2406 + 2407 + prettier@3.5.3: {} 2408 + 2409 + pretty-format@27.5.1: 2410 + dependencies: 2411 + ansi-regex: 5.0.1 2412 + ansi-styles: 5.2.0 2413 + react-is: 17.0.2 2414 + 2415 + punycode@2.3.1: {} 2416 + 2417 + react-dom@19.1.0(react@19.1.0): 2418 + dependencies: 2419 + react: 19.1.0 2420 + scheduler: 0.26.0 2421 + 2422 + react-is@17.0.2: {} 2423 + 2424 + react-refresh@0.17.0: {} 2425 + 2426 + react@19.1.0: {} 2427 + 2428 + readdirp@3.6.0: 2429 + dependencies: 2430 + picomatch: 2.3.1 2431 + 2432 + resolve-pkg-maps@1.0.0: {} 2433 + 2434 + rollup@4.40.1: 2435 + dependencies: 2436 + '@types/estree': 1.0.7 2437 + optionalDependencies: 2438 + '@rollup/rollup-android-arm-eabi': 4.40.1 2439 + '@rollup/rollup-android-arm64': 4.40.1 2440 + '@rollup/rollup-darwin-arm64': 4.40.1 2441 + '@rollup/rollup-darwin-x64': 4.40.1 2442 + '@rollup/rollup-freebsd-arm64': 4.40.1 2443 + '@rollup/rollup-freebsd-x64': 4.40.1 2444 + '@rollup/rollup-linux-arm-gnueabihf': 4.40.1 2445 + '@rollup/rollup-linux-arm-musleabihf': 4.40.1 2446 + '@rollup/rollup-linux-arm64-gnu': 4.40.1 2447 + '@rollup/rollup-linux-arm64-musl': 4.40.1 2448 + '@rollup/rollup-linux-loongarch64-gnu': 4.40.1 2449 + '@rollup/rollup-linux-powerpc64le-gnu': 4.40.1 2450 + '@rollup/rollup-linux-riscv64-gnu': 4.40.1 2451 + '@rollup/rollup-linux-riscv64-musl': 4.40.1 2452 + '@rollup/rollup-linux-s390x-gnu': 4.40.1 2453 + '@rollup/rollup-linux-x64-gnu': 4.40.1 2454 + '@rollup/rollup-linux-x64-musl': 4.40.1 2455 + '@rollup/rollup-win32-arm64-msvc': 4.40.1 2456 + '@rollup/rollup-win32-ia32-msvc': 4.40.1 2457 + '@rollup/rollup-win32-x64-msvc': 4.40.1 2458 + fsevents: 2.3.3 2459 + 2460 + rrweb-cssom@0.8.0: {} 2461 + 2462 + safer-buffer@2.1.2: {} 2463 + 2464 + saxes@6.0.0: 2465 + dependencies: 2466 + xmlchars: 2.2.0 2467 + 2468 + scheduler@0.26.0: {} 2469 + 2470 + semver@6.3.1: {} 2471 + 2472 + seroval-plugins@1.2.1(seroval@1.2.1): 2473 + dependencies: 2474 + seroval: 1.2.1 2475 + 2476 + seroval@1.2.1: {} 2477 + 2478 + siginfo@2.0.0: {} 2479 + 2480 + solid-js@1.9.6: 2481 + dependencies: 2482 + csstype: 3.1.3 2483 + seroval: 1.2.1 2484 + seroval-plugins: 1.2.1(seroval@1.2.1) 2485 + 2486 + source-map-js@1.2.1: {} 2487 + 2488 + stackback@0.0.2: {} 2489 + 2490 + std-env@3.9.0: {} 2491 + 2492 + supports-color@7.2.0: 2493 + dependencies: 2494 + has-flag: 4.0.0 2495 + 2496 + symbol-tree@3.2.4: {} 2497 + 2498 + tailwind-merge@3.2.0: {} 2499 + 2500 + tailwindcss-animate@1.0.7(tailwindcss@4.1.5): 2501 + dependencies: 2502 + tailwindcss: 4.1.5 2503 + 2504 + tailwindcss@4.1.5: {} 2505 + 2506 + tapable@2.2.1: {} 2507 + 2508 + tiny-invariant@1.3.3: {} 2509 + 2510 + tiny-warning@1.0.3: {} 2511 + 2512 + tinybench@2.9.0: {} 2513 + 2514 + tinyexec@0.3.2: {} 2515 + 2516 + tinyglobby@0.2.13: 2517 + dependencies: 2518 + fdir: 6.4.4(picomatch@4.0.2) 2519 + picomatch: 4.0.2 2520 + 2521 + tinypool@1.0.2: {} 2522 + 2523 + tinyrainbow@2.0.0: {} 2524 + 2525 + tinyspy@3.0.2: {} 2526 + 2527 + tldts-core@6.1.86: {} 2528 + 2529 + tldts@6.1.86: 2530 + dependencies: 2531 + tldts-core: 6.1.86 2532 + 2533 + to-regex-range@5.0.1: 2534 + dependencies: 2535 + is-number: 7.0.0 2536 + 2537 + tough-cookie@5.1.2: 2538 + dependencies: 2539 + tldts: 6.1.86 2540 + 2541 + tr46@5.1.1: 2542 + dependencies: 2543 + punycode: 2.3.1 2544 + 2545 + tsx@4.19.4: 2546 + dependencies: 2547 + esbuild: 0.25.3 2548 + get-tsconfig: 4.10.0 2549 + optionalDependencies: 2550 + fsevents: 2.3.3 2551 + 2552 + typescript@5.8.3: {} 2553 + 2554 + unplugin@2.3.2: 2555 + dependencies: 2556 + acorn: 8.14.1 2557 + picomatch: 4.0.2 2558 + webpack-virtual-modules: 0.6.2 2559 + 2560 + update-browserslist-db@1.1.3(browserslist@4.24.5): 2561 + dependencies: 2562 + browserslist: 4.24.5 2563 + escalade: 3.2.0 2564 + picocolors: 1.1.1 2565 + 2566 + use-sync-external-store@1.5.0(react@19.1.0): 2567 + dependencies: 2568 + react: 19.1.0 2569 + 2570 + vite-node@3.1.2(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4): 2571 + dependencies: 2572 + cac: 6.7.14 2573 + debug: 4.4.0 2574 + es-module-lexer: 1.7.0 2575 + pathe: 2.0.3 2576 + vite: 6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4) 2577 + transitivePeerDependencies: 2578 + - '@types/node' 2579 + - jiti 2580 + - less 2581 + - lightningcss 2582 + - sass 2583 + - sass-embedded 2584 + - stylus 2585 + - sugarss 2586 + - supports-color 2587 + - terser 2588 + - tsx 2589 + - yaml 2590 + 2591 + vite@6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4): 2592 + dependencies: 2593 + esbuild: 0.25.3 2594 + fdir: 6.4.4(picomatch@4.0.2) 2595 + picomatch: 4.0.2 2596 + postcss: 8.5.3 2597 + rollup: 4.40.1 2598 + tinyglobby: 0.2.13 2599 + optionalDependencies: 2600 + fsevents: 2.3.3 2601 + jiti: 2.4.2 2602 + lightningcss: 1.29.2 2603 + tsx: 4.19.4 2604 + 2605 + vitest@3.1.2(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.29.2)(tsx@4.19.4): 2606 + dependencies: 2607 + '@vitest/expect': 3.1.2 2608 + '@vitest/mocker': 3.1.2(vite@6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4)) 2609 + '@vitest/pretty-format': 3.1.2 2610 + '@vitest/runner': 3.1.2 2611 + '@vitest/snapshot': 3.1.2 2612 + '@vitest/spy': 3.1.2 2613 + '@vitest/utils': 3.1.2 2614 + chai: 5.2.0 2615 + debug: 4.4.0 2616 + expect-type: 1.2.1 2617 + magic-string: 0.30.17 2618 + pathe: 2.0.3 2619 + std-env: 3.9.0 2620 + tinybench: 2.9.0 2621 + tinyexec: 0.3.2 2622 + tinyglobby: 0.2.13 2623 + tinypool: 1.0.2 2624 + tinyrainbow: 2.0.0 2625 + vite: 6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4) 2626 + vite-node: 3.1.2(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4) 2627 + why-is-node-running: 2.3.0 2628 + optionalDependencies: 2629 + jsdom: 26.1.0 2630 + transitivePeerDependencies: 2631 + - jiti 2632 + - less 2633 + - lightningcss 2634 + - msw 2635 + - sass 2636 + - sass-embedded 2637 + - stylus 2638 + - sugarss 2639 + - supports-color 2640 + - terser 2641 + - tsx 2642 + - yaml 2643 + 2644 + w3c-xmlserializer@5.0.0: 2645 + dependencies: 2646 + xml-name-validator: 5.0.0 2647 + 2648 + web-vitals@4.2.4: {} 2649 + 2650 + webidl-conversions@7.0.0: {} 2651 + 2652 + webpack-virtual-modules@0.6.2: {} 2653 + 2654 + whatwg-encoding@3.1.1: 2655 + dependencies: 2656 + iconv-lite: 0.6.3 2657 + 2658 + whatwg-mimetype@4.0.0: {} 2659 + 2660 + whatwg-url@14.2.0: 2661 + dependencies: 2662 + tr46: 5.1.1 2663 + webidl-conversions: 7.0.0 2664 + 2665 + why-is-node-running@2.3.0: 2666 + dependencies: 2667 + siginfo: 2.0.0 2668 + stackback: 0.0.2 2669 + 2670 + ws@8.18.2: {} 2671 + 2672 + xml-name-validator@5.0.0: {} 2673 + 2674 + xmlchars@2.2.0: {} 2675 + 2676 + yallist@3.1.1: {} 2677 + 2678 + zod@3.24.3: {}
public/favicon.ico

This is a binary file and will not be displayed.

public/logo192.png

This is a binary file and will not be displayed.

public/logo512.png

This is a binary file and will not be displayed.

+25
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
public/robots.txt
··· 1 + # https://www.robotstxt.org/robotstxt.html 2 + User-agent: * 3 + Disallow:
+17
src/components/Header.tsx
··· 1 + import { Link } from '@tanstack/react-router' 2 + 3 + export default function Header() { 4 + return ( 5 + <header className="p-2 flex gap-2 bg-white text-black justify-between"> 6 + <nav className="flex flex-row"> 7 + <div className="px-2 font-bold"> 8 + <Link to="/">Home</Link> 9 + </div> 10 + 11 + <div className="px-2 font-bold"> 12 + <Link to="/demo/tanstack-query">TanStack Query</Link> 13 + </div> 14 + </nav> 15 + </header> 16 + ) 17 + }
+5
src/integrations/tanstack-query/layout.tsx
··· 1 + import { ReactQueryDevtools } from '@tanstack/react-query-devtools' 2 + 3 + export default function LayoutAddition() { 4 + return <ReactQueryDevtools buttonPosition="bottom-right" /> 5 + }
+15
src/integrations/tanstack-query/root-provider.tsx
··· 1 + import { QueryClient, QueryClientProvider } from '@tanstack/react-query' 2 + 3 + const queryClient = new QueryClient() 4 + 5 + export function getContext() { 6 + return { 7 + queryClient, 8 + } 9 + } 10 + 11 + export function Provider({ children }: { children: React.ReactNode }) { 12 + return ( 13 + <QueryClientProvider client={queryClient}>{children}</QueryClientProvider> 14 + ) 15 + }
+6
src/lib/utils.ts
··· 1 + import { clsx, type ClassValue } from "clsx" 2 + import { twMerge } from "tailwind-merge" 3 + 4 + export function cn(...inputs: ClassValue[]) { 5 + return twMerge(clsx(inputs)) 6 + }
+44
src/logo.svg
··· 1 + <?xml version="1.0" encoding="UTF-8"?> 2 + <svg id="Layer_1" 3 + xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 841.9 595.3"> 4 + <!-- Generator: Adobe Illustrator 29.3.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 146) --> 5 + <defs> 6 + <style> 7 + .st0 { 8 + fill: #9ae7fc; 9 + } 10 + 11 + .st1 { 12 + fill: #61dafb; 13 + } 14 + </style> 15 + </defs> 16 + <g> 17 + <path class="st1" d="M666.3,296.5c0-32.5-40.7-63.3-103.1-82.4,14.4-63.6,8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6,0,8.3.9,11.4,2.6,13.6,7.8,19.5,37.5,14.9,75.7-1.1,9.4-2.9,19.3-5.1,29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50,32.6-30.3,63.2-46.9,84-46.9v-22.3c-27.5,0-63.5,19.6-99.9,53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7,0,51.4,16.5,84,46.6-14,14.7-28,31.4-41.3,49.9-22.6,2.4-44,6.1-63.6,11-2.3-10-4-19.7-5.2-29-4.7-38.2,1.1-67.9,14.6-75.8,3-1.8,6.9-2.6,11.5-2.6v-22.3c-8.4,0-16,1.8-22.6,5.6-28.1,16.2-34.4,66.7-19.9,130.1-62.2,19.2-102.7,49.9-102.7,82.3s40.7,63.3,103.1,82.4c-14.4,63.6-8,114.2,20.2,130.4,6.5,3.8,14.1,5.6,22.5,5.6,27.5,0,63.5-19.6,99.9-53.6,36.4,33.8,72.4,53.2,99.9,53.2,8.4,0,16-1.8,22.6-5.6,28.1-16.2,34.4-66.7,19.9-130.1,62-19.1,102.5-49.9,102.5-82.3zm-130.2-66.7c-3.7,12.9-8.3,26.2-13.5,39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4,14.2,2.1,27.9,4.7,41,7.9zm-45.8,106.5c-7.8,13.5-15.8,26.3-24.1,38.2-14.9,1.3-30,2-45.2,2s-30.2-.7-45-1.9c-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8,6.2-13.4,13.2-26.8,20.7-39.9,7.8-13.5,15.8-26.3,24.1-38.2,14.9-1.3,30-2,45.2-2s30.2.7,45,1.9c8.3,11.9,16.4,24.6,24.2,38,7.6,13.1,14.5,26.4,20.8,39.8-6.3,13.4-13.2,26.8-20.7,39.9zm32.3-13c5.4,13.4,10,26.8,13.8,39.8-13.1,3.2-26.9,5.9-41.2,8,4.9-7.7,9.8-15.6,14.4-23.7,4.6-8,8.9-16.1,13-24.1zm-101.4,106.7c-9.3-9.6-18.6-20.3-27.8-32,9,.4,18.2.7,27.5.7s18.7-.2,27.8-.7c-9,11.7-18.3,22.4-27.5,32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9,3.7-12.9,8.3-26.2,13.5-39.5,4.1,8,8.4,16,13.1,24s9.5,15.8,14.4,23.4zm73.9-208.1c9.3,9.6,18.6,20.3,27.8,32-9-.4-18.2-.7-27.5-.7s-18.7.2-27.8.7c9-11.7,18.3-22.4,27.5-32zm-74,58.9c-4.9,7.7-9.8,15.6-14.4,23.7-4.6,8-8.9,16-13,24-5.4-13.4-10-26.8-13.8-39.8,13.1-3.1,26.9-5.8,41.2-7.9zm-90.5,125.2c-35.4-15.1-58.3-34.9-58.3-50.6s22.9-35.6,58.3-50.6c8.6-3.7,18-7,27.7-10.1,5.7,19.6,13.2,40,22.5,60.9-9.2,20.8-16.6,41.1-22.2,60.6-9.9-3.1-19.3-6.5-28-10.2zm53.8,142.9c-13.6-7.8-19.5-37.5-14.9-75.7,1.1-9.4,2.9-19.3,5.1-29.4,19.6,4.8,41,8.5,63.5,10.9,13.5,18.5,27.5,35.3,41.6,50-32.6,30.3-63.2,46.9-84,46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7,38.2-1.1,67.9-14.6,75.8-3,1.8-6.9,2.6-11.5,2.6-20.7,0-51.4-16.5-84-46.6,14-14.7,28-31.4,41.3-49.9,22.6-2.4,44-6.1,63.6-11,2.3,10.1,4.1,19.8,5.2,29.1zm38.5-66.7c-8.6,3.7-18,7-27.7,10.1-5.7-19.6-13.2-40-22.5-60.9,9.2-20.8,16.6-41.1,22.2-60.6,9.9,3.1,19.3,6.5,28.1,10.2,35.4,15.1,58.3,34.9,58.3,50.6,0,15.7-23,35.6-58.4,50.6zm-264.9-268.7z"/> 18 + <circle class="st1" cx="420.9" cy="296.5" r="45.7"/> 19 + <path class="st1" d="M520.5,78.1"/> 20 + </g> 21 + <circle class="st0" cx="420.8" cy="296.6" r="43"/> 22 + <path class="st1" d="M466.1,296.6c0,25-20.2,45.2-45.2,45.2s-45.2-20.2-45.2-45.2,20.2-45.2,45.2-45.2,45.2,20.2,45.2,45.2ZM386,295.6v-6.3c0-1.1,1.2-5.1,1.8-6.2,1-1.9,2.9-3.5,4.6-4.7l-3.4-3.4c4-3.6,9.4-3.7,13.7-.7,1.9-4.7,6.6-7.1,11.6-6.7l-.8,4.2c5.9.2,13.1,4.1,13.1,10.8s0,.5-.7.7c-1.7.3-3.4-.4-5-.6s-1.2-.4-1.2.3,2.5,4.1,3,5.5,1,3.5.8,5.3c-5.6-.8-10.5-3.2-14.8-6.7.3,2.6,4.1,21.7,5.3,21.9s.8-.6,1-1.1,1.3-6.3,1.3-6.7c0-1-1.7-1.8-2.2-2.8-1.2-2.7,1.3-4.7,3.7-3.3s5.2,6.2,7.5,7.3,13,1.4,14.8,3.3-2.9,4.6-1.5,7.6c6.7-2.6,13.5-3.3,20.6-2.5,3.1-9.7,3.1-20.3-.9-29.8-7.3,0-14.7-3.6-17.2-10.8-2.5-7.2-.7-8.6-1.3-9.3-.8-1-6.3.6-7.4-1.5s.3-1.1-.2-1.4-1.9-.6-2.6-.8c-26-6.4-51.3,15.7-49.7,42.1,0,1.6,1.6,10.3,2.4,11.1s4.8,0,6.3,0,3.7.3,5,.5c2.9.4,7.2,2.4,9.4,2.5s2.4-.8,2.7-2.4c.4-2.6.5-7.4.5-10.1s-1-7.8-1.3-11.6c-.9-.2-.7,0-.9.5-.7,1.3-1.1,3.2-1.9,4.8s-5.2,8.7-5.7,9-.7-.5-.8-.8c-1.6-3.5-2-7.9-1.9-11.8-.9-1-5.4,4.9-6.7,5.3l-.8-.4v-.3h-.2ZM455.6,276.4c1.1-1.2-6-8.9-7.2-10-3-2.7-5.4-4.5-3.5,1.4s5.7,7.8,10.6,8.5h.1ZM410.9,270.1c-.4-.5-6.1,2.9-5.5,4.6,1.9-1.3,5.9-1.7,5.5-4.6ZM400.4,276.4c-.3-2.4-6.3-2.7-7.2-1s1.6,1.4,1.9,1.4c1.8.3,3.5-.6,5.2-.4h.1ZM411.3,276.8c3.8,1.3,6.6,3.6,10.9,3.7s0-3-1.2-3.9c-2.2-1.7-5.1-2.4-7.8-2.4s-1.6-.3-1.4.4c2.8.6,7.3.7,8.4,3.8-2.3-.3-3.9-1.6-6.2-2s-2.5-.5-2.6.3h0ZM420.6,290.3c-.8-5.1-5.7-10.8-10.9-11.6s-1.3-.4-.8.5,4.7,3.2,5.7,4,4.5,4.2,2.1,3.8-8.4-7.8-9.4-6.7c.2.9,1.1,1.9,1.7,2.7,3,3.8,6.9,6.8,11.8,7.4h-.2ZM395.3,279.8c-5,1.1-6.9,6.3-6.7,11,.7.8,5-3.8,5.4-4.5s2.7-4.6,1.1-4-2.9,4.4-4.2,4.6.2-2.1.4-2.5c1.1-1.6,2.9-3.1,4-4.6h0ZM400.4,281.5c-.4-.5-2,1.3-2.3,1.7-2.9,3.9-2.6,10.2-1.5,14.8.8.2.8-.3,1.2-.7,3-3.8,5.5-10.5,4.5-15.4-2.1,3.1-3.1,7.3-3.6,11h-1.3c0-4,1.9-7.7,3-11.4h0ZM426.9,305.9c0-1.7-1.7-1.4-2.5-1.9s-1.3-1.9-3-1.4c1.3,2.1,3,3.2,5.5,3.4h0ZM417.2,308.5c7.6.7,5.5-1.9,1.4-5.5-1.3-.3-1.5,4.5-1.4,5.5ZM437,309.7c-3.5-.3-7.8-2-11.2-2.1s-1.3,0-1.9.7c4,1.3,8.4,1.7,12.1,4l1-2.5h0ZM420.5,312.8c-7.3,0-15.1,3.7-20.4,8.8s-4.8,5.3-4.8,6.2c0,1.8,8.6,6.2,10.5,6.8,12.1,4.8,27.5,3.5,38.2-4.2s3.1-2.7,0-6.2c-5.7-6.6-14.7-11.4-23.4-11.3h-.1ZM398.7,316.9c-1.4-1.4-5-1.9-7-2.1s-5.3-.3-6.9.6l13.9,1.4h0ZM456.9,314.8h-7.4c-.9,0-4.9,1.1-6,1.6s-.8.6,0,.5c2.4,0,5.1-1,7.6-1.3s3.5.2,5.1,0,1.3-.3.6-.8h0Z"/> 23 + <path class="st0" d="M386,295.6l.8.4c1.3-.3,5.8-6.2,6.7-5.3,0,3.9.3,8.3,1.9,11.8s0,1.2.8.8,5.1-7.8,5.7-9,1.3-3.5,1.9-4.8,0-.7.9-.5c.3,3.8,1.2,7.8,1.3,11.6s0,7.5-.5,10.1-1.1,2.4-2.7,2.4-6.5-2.1-9.4-2.5-3.7-.5-5-.5-5.4,1.1-6.3,0-2.2-9.5-2.4-11.1c-1.5-26.4,23.7-48.5,49.7-42.1s2.2.4,2.6.8,0,1,.2,1.4c1.1,2,6.5.5,7.4,1.5s.4,6.9,1.3,9.3c2.5,7.2,10,10.9,17.2,10.8,4,9.4,4,20.1.9,29.8-7.2-.7-13.9,0-20.6,2.5-1.3-3.1,4.1-5.1,1.5-7.6s-11.8-1.9-14.8-3.3-5.4-6.1-7.5-7.3-4.9.6-3.7,3.3,2.1,1.8,2.2,2.8-1,6.2-1.3,6.7-.3,1.3-1,1.1c-1.1-.3-5-19.3-5.3-21.9,4.3,3.5,9.2,5.9,14.8,6.7.2-1.9-.3-3.5-.8-5.3s-3-5.1-3-5.5c0-.8.9-.3,1.2-.3,1.6,0,3.3.8,5,.6s.7.3.7-.7c0-6.6-7.2-10.6-13.1-10.8l.8-4.2c-5.1-.3-9.6,2-11.6,6.7-4.3-3-9.8-3-13.7.7l3.4,3.4c-1.8,1.3-3.5,2.8-4.6,4.7s-1.8,5.1-1.8,6.2v6.6h.2ZM431.6,265c7.8,2.1,8.7-3.5.2-1.3l-.2,1.3ZM432.4,270.9c.3.6,6.4-.4,5.8-2.3s-4.6.6-5.7.6l-.2,1.7h.1ZM434.5,276c.8,1.2,5.7-1.8,5.5-2.7-.4-1.9-6.6,1.2-5.5,2.7ZM442.9,276.4c-.9-.9-5,2.8-4.6,4,.6,2.4,5.7-3,4.6-4ZM445.1,279.9c-.3.2-3.1,4.6-1.5,5s3.5-3.4,3.5-4-1.3-1.3-2-.9h0ZM448.9,287.4c2.1.8,3.8-5.1,2.3-5.5-1.9-.6-2.6,5.1-2.3,5.5ZM457.3,288.6c.5-1.7,1.1-4.7-1-5.5-1,.3-.6,3.9-.6,4.8l.3.5,1.3.2h0Z"/> 24 + <path class="st0" d="M455.6,276.4c-5-.8-9.1-3.6-10.6-8.5s.5-4,3.5-1.4,8.3,8.7,7.2,10h-.1Z"/> 25 + <path class="st0" d="M420.6,290.3c-4.9-.6-8.9-3.6-11.8-7.4s-1.5-1.8-1.7-2.7c1-1,8.5,6.6,9.4,6.7,2.4.4-1.8-3.5-2.1-3.8-1-.8-5.4-3.5-5.7-4-.4-.8.5-.5.8-.5,5.2.8,10.1,6.6,10.9,11.6h.2Z"/> 26 + <path class="st0" d="M400.4,281.5c-1.1,3.7-3,7.3-3,11.4h1.3c.5-3.7,1.5-7.8,3.6-11,1,4.8-1.5,11.6-4.5,15.4s-.4.8-1.2.7c-1.1-4.5-1.3-10.8,1.5-14.8s1.9-2.2,2.3-1.7h0Z"/> 27 + <path class="st0" d="M411.3,276.8c0-.8,2.1-.4,2.6-.3,2.4.4,4,1.7,6.2,2-1.2-3.1-5.7-3.2-8.4-3.8,0-.8.9-.4,1.4-.4,2.8,0,5.6.7,7.8,2.4,2.2,1.7,4,4,1.2,3.9-4.3,0-7.1-2.4-10.9-3.7h0Z"/> 28 + <path class="st0" d="M395.3,279.8c-1.1,1.6-3,3-4,4.6s-1.9,2.8-.4,2.5,2.8-4,4.2-4.6-.9,3.6-1.1,4c-.4.7-4.7,5.2-5.4,4.5-.2-4.6,1.8-9.9,6.7-11h0Z"/> 29 + <path class="st0" d="M437,309.7l-1,2.5c-3.6-2.3-8-2.8-12.1-4,.5-.7,1.1-.7,1.9-.7,3.4,0,7.8,1.8,11.2,2.1h0Z"/> 30 + <path class="st0" d="M417.2,308.5c0-1,0-5.8,1.4-5.5,4,3.5,6.1,6.2-1.4,5.5Z"/> 31 + <path class="st0" d="M400.4,276.4c-1.8-.3-3.5.7-5.2.4s-2.3-.8-1.9-1.4c.8-1.6,6.9-1.4,7.2,1h-.1Z"/> 32 + <path class="st0" d="M410.9,270.1c.4,3-3.6,3.3-5.5,4.6-.6-1.8,5-5.1,5.5-4.6Z"/> 33 + <path class="st0" d="M426.9,305.9c-2.5-.2-4.1-1.3-5.5-3.4,1.7-.4,2,.8,3,1.4s2.6.3,2.5,1.9h0Z"/> 34 + <path class="st1" d="M432.4,270.9l.2-1.7c1.1,0,5.1-2.2,5.7-.6s-5.5,2.9-5.8,2.3h-.1Z"/> 35 + <path class="st1" d="M431.6,265l.2-1.3c8.4-2.1,7.7,3.4-.2,1.3Z"/> 36 + <path class="st1" d="M434.5,276c-1.1-1.5,5.1-4.6,5.5-2.7s-4.6,4-5.5,2.7Z"/> 37 + <path class="st1" d="M442.9,276.4c1.1,1.1-4,6.4-4.6,4s3.7-4.9,4.6-4Z"/> 38 + <path class="st1" d="M445.1,279.9c.7-.4,2.1,0,2,.9s-2.4,4.4-3.5,4,1.3-4.8,1.5-5h0Z"/> 39 + <path class="st1" d="M448.9,287.4c-.3-.3.4-6.1,2.3-5.5,1.4.4-.2,6.2-2.3,5.5Z"/> 40 + <path class="st1" d="M457.3,288.6l-1.3-.2-.3-.5c0-.9-.4-4.6.6-4.8,2.1.8,1.5,3.8,1,5.5h0Z"/> 41 + <path class="st0" d="M420.5,312.8c8.9,0,17.9,4.7,23.4,11.3,5.6,6.6,3.8,3.5,0,6.2-10.7,7.7-26.1,9-38.2,4.2-1.9-.8-10.5-5.1-10.5-6.8s4-5.3,4.8-6.2c5.3-5,13.1-8.6,20.4-8.8h.1Z"/> 42 + <path class="st0" d="M398.7,316.9l-13.9-1.4c1.7-1,5-.8,6.9-.6s5.6.7,7,2.1h0Z"/> 43 + <path class="st0" d="M456.9,314.8c.7.5,0,.8-.6.8-1.6.2-3.5-.2-5.1,0-2.4.3-5.2,1.2-7.6,1.3s-1.1,0,0-.5,5.1-1.6,6-1.6h7.4,0Z"/> 44 + </svg>
+48
src/main.tsx
··· 1 + import { StrictMode } from 'react' 2 + import ReactDOM from 'react-dom/client' 3 + import { RouterProvider, createRouter } from '@tanstack/react-router' 4 + 5 + import * as TanstackQuery from './integrations/tanstack-query/root-provider' 6 + 7 + // Import the generated route tree 8 + import { routeTree } from './routeTree.gen' 9 + 10 + import './styles.css' 11 + import reportWebVitals from './reportWebVitals.ts' 12 + 13 + // Create a new router instance 14 + const router = createRouter({ 15 + routeTree, 16 + context: { 17 + ...TanstackQuery.getContext(), 18 + }, 19 + defaultPreload: 'intent', 20 + scrollRestoration: true, 21 + defaultStructuralSharing: true, 22 + defaultPreloadStaleTime: 0, 23 + }) 24 + 25 + // Register the router instance for type safety 26 + declare module '@tanstack/react-router' { 27 + interface Register { 28 + router: typeof router 29 + } 30 + } 31 + 32 + // Render the app 33 + const rootElement = document.getElementById('app') 34 + if (rootElement && !rootElement.innerHTML) { 35 + const root = ReactDOM.createRoot(rootElement) 36 + root.render( 37 + <StrictMode> 38 + <TanstackQuery.Provider> 39 + <RouterProvider router={router} /> 40 + </TanstackQuery.Provider> 41 + </StrictMode>, 42 + ) 43 + } 44 + 45 + // If you want to start measuring performance in your app, pass a function 46 + // to log results (for example: reportWebVitals(console.log)) 47 + // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 48 + reportWebVitals()
+13
src/reportWebVitals.ts
··· 1 + const reportWebVitals = (onPerfEntry?: () => void) => { 2 + if (onPerfEntry && onPerfEntry instanceof Function) { 3 + import('web-vitals').then(({ onCLS, onINP, onFCP, onLCP, onTTFB }) => { 4 + onCLS(onPerfEntry) 5 + onINP(onPerfEntry) 6 + onFCP(onPerfEntry) 7 + onLCP(onPerfEntry) 8 + onTTFB(onPerfEntry) 9 + }) 10 + } 11 + } 12 + 13 + export default reportWebVitals
+25
src/routes/__root.tsx
··· 1 + import { Outlet, createRootRouteWithContext } from '@tanstack/react-router' 2 + import { TanStackRouterDevtools } from '@tanstack/react-router-devtools' 3 + 4 + import Header from '../components/Header' 5 + 6 + import TanstackQueryLayout from '../integrations/tanstack-query/layout' 7 + 8 + import type { QueryClient } from '@tanstack/react-query' 9 + 10 + interface MyRouterContext { 11 + queryClient: QueryClient 12 + } 13 + 14 + export const Route = createRootRouteWithContext<MyRouterContext>()({ 15 + component: () => ( 16 + <> 17 + <Header /> 18 + 19 + <Outlet /> 20 + <TanStackRouterDevtools /> 21 + 22 + <TanstackQueryLayout /> 23 + </> 24 + ), 25 + })
+26
src/routes/demo.tanstack-query.tsx
··· 1 + import { createFileRoute } from '@tanstack/react-router' 2 + import { useQuery } from '@tanstack/react-query' 3 + 4 + export const Route = createFileRoute('/demo/tanstack-query')({ 5 + component: TanStackQueryDemo, 6 + }) 7 + 8 + function TanStackQueryDemo() { 9 + const { data } = useQuery({ 10 + queryKey: ['people'], 11 + queryFn: () => 12 + Promise.resolve([{ name: 'John Doe' }, { name: 'Jane Doe' }]), 13 + initialData: [], 14 + }) 15 + 16 + return ( 17 + <div className="p-4"> 18 + <h1 className="text-2xl mb-4">People list from Swapi</h1> 19 + <ul> 20 + {data.map((person) => ( 21 + <li key={person.name}>{person.name}</li> 22 + ))} 23 + </ul> 24 + </div> 25 + ) 26 + }
+39
src/routes/index.tsx
··· 1 + import { createFileRoute } from '@tanstack/react-router' 2 + import logo from '../logo.svg' 3 + 4 + export const Route = createFileRoute('/')({ 5 + component: App, 6 + }) 7 + 8 + function App() { 9 + return ( 10 + <div className="text-center"> 11 + <header className="min-h-screen flex flex-col items-center justify-center bg-[#282c34] text-white text-[calc(10px+2vmin)]"> 12 + <img 13 + src={logo} 14 + className="h-[40vmin] pointer-events-none animate-[spin_20s_linear_infinite]" 15 + alt="logo" 16 + /> 17 + <p> 18 + Edit <code>src/routes/index.tsx</code> and save to reload. 19 + </p> 20 + <a 21 + className="text-[#61dafb] hover:underline" 22 + href="https://reactjs.org" 23 + target="_blank" 24 + rel="noopener noreferrer" 25 + > 26 + Learn React 27 + </a> 28 + <a 29 + className="text-[#61dafb] hover:underline" 30 + href="https://tanstack.com" 31 + target="_blank" 32 + rel="noopener noreferrer" 33 + > 34 + Learn TanStack 35 + </a> 36 + </header> 37 + </div> 38 + ) 39 + }
+138
src/styles.css
··· 1 + @import 'tailwindcss'; 2 + 3 + @plugin "tailwindcss-animate"; 4 + 5 + @custom-variant dark (&:is(.dark *)); 6 + 7 + body { 8 + @apply m-0; 9 + font-family: 10 + -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 11 + 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; 12 + -webkit-font-smoothing: antialiased; 13 + -moz-osx-font-smoothing: grayscale; 14 + } 15 + 16 + code { 17 + font-family: 18 + source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; 19 + } 20 + 21 + :root { 22 + --background: oklch(1 0 0); 23 + --foreground: oklch(0.141 0.005 285.823); 24 + --card: oklch(1 0 0); 25 + --card-foreground: oklch(0.141 0.005 285.823); 26 + --popover: oklch(1 0 0); 27 + --popover-foreground: oklch(0.141 0.005 285.823); 28 + --primary: oklch(0.21 0.006 285.885); 29 + --primary-foreground: oklch(0.985 0 0); 30 + --secondary: oklch(0.967 0.001 286.375); 31 + --secondary-foreground: oklch(0.21 0.006 285.885); 32 + --muted: oklch(0.967 0.001 286.375); 33 + --muted-foreground: oklch(0.552 0.016 285.938); 34 + --accent: oklch(0.967 0.001 286.375); 35 + --accent-foreground: oklch(0.21 0.006 285.885); 36 + --destructive: oklch(0.577 0.245 27.325); 37 + --destructive-foreground: oklch(0.577 0.245 27.325); 38 + --border: oklch(0.92 0.004 286.32); 39 + --input: oklch(0.92 0.004 286.32); 40 + --ring: oklch(0.871 0.006 286.286); 41 + --chart-1: oklch(0.646 0.222 41.116); 42 + --chart-2: oklch(0.6 0.118 184.704); 43 + --chart-3: oklch(0.398 0.07 227.392); 44 + --chart-4: oklch(0.828 0.189 84.429); 45 + --chart-5: oklch(0.769 0.188 70.08); 46 + --radius: 0.625rem; 47 + --sidebar: oklch(0.985 0 0); 48 + --sidebar-foreground: oklch(0.141 0.005 285.823); 49 + --sidebar-primary: oklch(0.21 0.006 285.885); 50 + --sidebar-primary-foreground: oklch(0.985 0 0); 51 + --sidebar-accent: oklch(0.967 0.001 286.375); 52 + --sidebar-accent-foreground: oklch(0.21 0.006 285.885); 53 + --sidebar-border: oklch(0.92 0.004 286.32); 54 + --sidebar-ring: oklch(0.871 0.006 286.286); 55 + } 56 + 57 + .dark { 58 + --background: oklch(0.141 0.005 285.823); 59 + --foreground: oklch(0.985 0 0); 60 + --card: oklch(0.141 0.005 285.823); 61 + --card-foreground: oklch(0.985 0 0); 62 + --popover: oklch(0.141 0.005 285.823); 63 + --popover-foreground: oklch(0.985 0 0); 64 + --primary: oklch(0.985 0 0); 65 + --primary-foreground: oklch(0.21 0.006 285.885); 66 + --secondary: oklch(0.274 0.006 286.033); 67 + --secondary-foreground: oklch(0.985 0 0); 68 + --muted: oklch(0.274 0.006 286.033); 69 + --muted-foreground: oklch(0.705 0.015 286.067); 70 + --accent: oklch(0.274 0.006 286.033); 71 + --accent-foreground: oklch(0.985 0 0); 72 + --destructive: oklch(0.396 0.141 25.723); 73 + --destructive-foreground: oklch(0.637 0.237 25.331); 74 + --border: oklch(0.274 0.006 286.033); 75 + --input: oklch(0.274 0.006 286.033); 76 + --ring: oklch(0.442 0.017 285.786); 77 + --chart-1: oklch(0.488 0.243 264.376); 78 + --chart-2: oklch(0.696 0.17 162.48); 79 + --chart-3: oklch(0.769 0.188 70.08); 80 + --chart-4: oklch(0.627 0.265 303.9); 81 + --chart-5: oklch(0.645 0.246 16.439); 82 + --sidebar: oklch(0.21 0.006 285.885); 83 + --sidebar-foreground: oklch(0.985 0 0); 84 + --sidebar-primary: oklch(0.488 0.243 264.376); 85 + --sidebar-primary-foreground: oklch(0.985 0 0); 86 + --sidebar-accent: oklch(0.274 0.006 286.033); 87 + --sidebar-accent-foreground: oklch(0.985 0 0); 88 + --sidebar-border: oklch(0.274 0.006 286.033); 89 + --sidebar-ring: oklch(0.442 0.017 285.786); 90 + } 91 + 92 + @theme inline { 93 + --color-background: var(--background); 94 + --color-foreground: var(--foreground); 95 + --color-card: var(--card); 96 + --color-card-foreground: var(--card-foreground); 97 + --color-popover: var(--popover); 98 + --color-popover-foreground: var(--popover-foreground); 99 + --color-primary: var(--primary); 100 + --color-primary-foreground: var(--primary-foreground); 101 + --color-secondary: var(--secondary); 102 + --color-secondary-foreground: var(--secondary-foreground); 103 + --color-muted: var(--muted); 104 + --color-muted-foreground: var(--muted-foreground); 105 + --color-accent: var(--accent); 106 + --color-accent-foreground: var(--accent-foreground); 107 + --color-destructive: var(--destructive); 108 + --color-destructive-foreground: var(--destructive-foreground); 109 + --color-border: var(--border); 110 + --color-input: var(--input); 111 + --color-ring: var(--ring); 112 + --color-chart-1: var(--chart-1); 113 + --color-chart-2: var(--chart-2); 114 + --color-chart-3: var(--chart-3); 115 + --color-chart-4: var(--chart-4); 116 + --color-chart-5: var(--chart-5); 117 + --radius-sm: calc(var(--radius) - 4px); 118 + --radius-md: calc(var(--radius) - 2px); 119 + --radius-lg: var(--radius); 120 + --radius-xl: calc(var(--radius) + 4px); 121 + --color-sidebar: var(--sidebar); 122 + --color-sidebar-foreground: var(--sidebar-foreground); 123 + --color-sidebar-primary: var(--sidebar-primary); 124 + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); 125 + --color-sidebar-accent: var(--sidebar-accent); 126 + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); 127 + --color-sidebar-border: var(--sidebar-border); 128 + --color-sidebar-ring: var(--sidebar-ring); 129 + } 130 + 131 + @layer base { 132 + * { 133 + @apply border-border outline-ring/50; 134 + } 135 + body { 136 + @apply bg-background text-foreground; 137 + } 138 + }
+28
tsconfig.json
··· 1 + { 2 + "include": ["**/*.ts", "**/*.tsx"], 3 + "compilerOptions": { 4 + "target": "ES2022", 5 + "jsx": "react-jsx", 6 + "module": "ESNext", 7 + "lib": ["ES2022", "DOM", "DOM.Iterable"], 8 + "types": ["vite/client"], 9 + 10 + /* Bundler mode */ 11 + "moduleResolution": "bundler", 12 + "allowImportingTsExtensions": true, 13 + "verbatimModuleSyntax": true, 14 + "noEmit": true, 15 + 16 + /* Linting */ 17 + "skipLibCheck": true, 18 + "strict": true, 19 + "noUnusedLocals": true, 20 + "noUnusedParameters": true, 21 + "noFallthroughCasesInSwitch": true, 22 + "noUncheckedSideEffectImports": true, 23 + "baseUrl": ".", 24 + "paths": { 25 + "@/*": ["./src/*"], 26 + } 27 + } 28 + }
+20
vite.config.js
··· 1 + import { defineConfig } from "vite"; 2 + import viteReact from "@vitejs/plugin-react"; 3 + import tailwindcss from "@tailwindcss/vite"; 4 + 5 + import { TanStackRouterVite } from "@tanstack/router-plugin/vite"; 6 + import { resolve } from "node:path"; 7 + 8 + // https://vitejs.dev/config/ 9 + export default defineConfig({ 10 + plugins: [TanStackRouterVite({ autoCodeSplitting: true }), viteReact(), tailwindcss()], 11 + test: { 12 + globals: true, 13 + environment: "jsdom", 14 + }, 15 + resolve: { 16 + alias: { 17 + '@': resolve(__dirname, './src'), 18 + }, 19 + } 20 + });