The landing page for teal.fm

Initial commit

espeon 0dbd8938

+3
.bolt/config.json
··· 1 + { 2 + "template": "bolt-vite-react-ts" 3 + }
+8
.bolt/prompt
··· 1 + For all designs I ask you to make, have them be beautiful, not cookie cutter. Make webpages that are fully featured and worthy for production. 2 + 3 + By default, this template supports JSX syntax with Tailwind CSS classes, React hooks, and Lucide React for icons. Do not install other packages for UI themes, icons, etc unless absolutely necessary or I request them. 4 + 5 + Use icons from lucide-react for logos. 6 + 7 + Use stock photos from unsplash where appropriate, only valid URLs you know exist. Do not download the images, only link to them in image tags. 8 +
+24
.gitignore
··· 1 + # Logs 2 + logs 3 + *.log 4 + npm-debug.log* 5 + yarn-debug.log* 6 + yarn-error.log* 7 + pnpm-debug.log* 8 + lerna-debug.log* 9 + 10 + node_modules 11 + dist 12 + dist-ssr 13 + *.local 14 + 15 + # Editor directories and files 16 + .vscode/* 17 + !.vscode/extensions.json 18 + .idea 19 + .DS_Store 20 + *.suo 21 + *.ntvs* 22 + *.njsproj 23 + *.sln 24 + *.sw?
+3
README.md
··· 1 + # teal-landing 2 + 3 + [Edit in StackBlitz next generation editor ⚡️](https://stackblitz.com/~/github.com/espeon/teal-landing)
+28
eslint.config.js
··· 1 + import js from '@eslint/js'; 2 + import globals from 'globals'; 3 + import reactHooks from 'eslint-plugin-react-hooks'; 4 + import reactRefresh from 'eslint-plugin-react-refresh'; 5 + import tseslint from 'typescript-eslint'; 6 + 7 + export default tseslint.config( 8 + { ignores: ['dist'] }, 9 + { 10 + extends: [js.configs.recommended, ...tseslint.configs.recommended], 11 + files: ['**/*.{ts,tsx}'], 12 + languageOptions: { 13 + ecmaVersion: 2020, 14 + globals: globals.browser, 15 + }, 16 + plugins: { 17 + 'react-hooks': reactHooks, 18 + 'react-refresh': reactRefresh, 19 + }, 20 + rules: { 21 + ...reactHooks.configs.recommended.rules, 22 + 'react-refresh/only-export-components': [ 23 + 'warn', 24 + { allowConstantExport: true }, 25 + ], 26 + }, 27 + } 28 + );
+17
index.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="UTF-8" /> 5 + <link rel="icon" type="image/svg+xml" href="/vite.svg" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>teal.fm - Your music journey, beautifully tracked</title> 8 + <meta name="description" content="Track your music listening across all platforms with teal.fm - The most beautiful way to scrobble and analyze your music history. Coming soon." /> 9 + <link rel="preconnect" href="https://fonts.googleapis.com"> 10 + <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 11 + <link href="https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@0,200..900;1,200..900&family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Fraunces:ital,opsz,wght@0,9..144,100..900;1,9..144,100..900&display=swap" rel="stylesheet"> 12 + </head> 13 + <body> 14 + <div id="root"></div> 15 + <script type="module" src="/src/main.tsx"></script> 16 + </body> 17 + </html>
+4263
package-lock.json
··· 1 + { 2 + "name": "vite-react-typescript-starter", 3 + "version": "0.0.0", 4 + "lockfileVersion": 3, 5 + "requires": true, 6 + "packages": { 7 + "": { 8 + "name": "vite-react-typescript-starter", 9 + "version": "0.0.0", 10 + "dependencies": { 11 + "lucide-react": "^0.344.0", 12 + "react": "^18.3.1", 13 + "react-crossfade-simple": "^1.0.7", 14 + "react-dom": "^18.3.1", 15 + "react-icons": "^5.3.0" 16 + }, 17 + "devDependencies": { 18 + "@eslint/js": "^9.9.1", 19 + "@types/react": "^18.3.5", 20 + "@types/react-dom": "^18.3.0", 21 + "@vitejs/plugin-react": "^4.3.1", 22 + "autoprefixer": "^10.4.18", 23 + "eslint": "^9.9.1", 24 + "eslint-plugin-react-hooks": "^5.1.0-rc.0", 25 + "eslint-plugin-react-refresh": "^0.4.11", 26 + "globals": "^15.9.0", 27 + "postcss": "^8.4.35", 28 + "tailwindcss": "^3.4.1", 29 + "typescript": "^5.5.3", 30 + "typescript-eslint": "^8.3.0", 31 + "vite": "^5.4.2" 32 + } 33 + }, 34 + "node_modules/@alloc/quick-lru": { 35 + "version": "5.2.0", 36 + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", 37 + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", 38 + "dev": true, 39 + "engines": { 40 + "node": ">=10" 41 + }, 42 + "funding": { 43 + "url": "https://github.com/sponsors/sindresorhus" 44 + } 45 + }, 46 + "node_modules/@ampproject/remapping": { 47 + "version": "2.3.0", 48 + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 49 + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 50 + "dev": true, 51 + "dependencies": { 52 + "@jridgewell/gen-mapping": "^0.3.5", 53 + "@jridgewell/trace-mapping": "^0.3.24" 54 + }, 55 + "engines": { 56 + "node": ">=6.0.0" 57 + } 58 + }, 59 + "node_modules/@babel/code-frame": { 60 + "version": "7.25.7", 61 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", 62 + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", 63 + "dependencies": { 64 + "@babel/highlight": "^7.25.7", 65 + "picocolors": "^1.0.0" 66 + }, 67 + "engines": { 68 + "node": ">=6.9.0" 69 + } 70 + }, 71 + "node_modules/@babel/compat-data": { 72 + "version": "7.25.7", 73 + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.7.tgz", 74 + "integrity": "sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==", 75 + "dev": true, 76 + "engines": { 77 + "node": ">=6.9.0" 78 + } 79 + }, 80 + "node_modules/@babel/core": { 81 + "version": "7.25.7", 82 + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", 83 + "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", 84 + "dev": true, 85 + "dependencies": { 86 + "@ampproject/remapping": "^2.2.0", 87 + "@babel/code-frame": "^7.25.7", 88 + "@babel/generator": "^7.25.7", 89 + "@babel/helper-compilation-targets": "^7.25.7", 90 + "@babel/helper-module-transforms": "^7.25.7", 91 + "@babel/helpers": "^7.25.7", 92 + "@babel/parser": "^7.25.7", 93 + "@babel/template": "^7.25.7", 94 + "@babel/traverse": "^7.25.7", 95 + "@babel/types": "^7.25.7", 96 + "convert-source-map": "^2.0.0", 97 + "debug": "^4.1.0", 98 + "gensync": "^1.0.0-beta.2", 99 + "json5": "^2.2.3", 100 + "semver": "^6.3.1" 101 + }, 102 + "engines": { 103 + "node": ">=6.9.0" 104 + }, 105 + "funding": { 106 + "type": "opencollective", 107 + "url": "https://opencollective.com/babel" 108 + } 109 + }, 110 + "node_modules/@babel/generator": { 111 + "version": "7.25.7", 112 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", 113 + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", 114 + "dependencies": { 115 + "@babel/types": "^7.25.7", 116 + "@jridgewell/gen-mapping": "^0.3.5", 117 + "@jridgewell/trace-mapping": "^0.3.25", 118 + "jsesc": "^3.0.2" 119 + }, 120 + "engines": { 121 + "node": ">=6.9.0" 122 + } 123 + }, 124 + "node_modules/@babel/helper-compilation-targets": { 125 + "version": "7.25.7", 126 + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", 127 + "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", 128 + "dev": true, 129 + "dependencies": { 130 + "@babel/compat-data": "^7.25.7", 131 + "@babel/helper-validator-option": "^7.25.7", 132 + "browserslist": "^4.24.0", 133 + "lru-cache": "^5.1.1", 134 + "semver": "^6.3.1" 135 + }, 136 + "engines": { 137 + "node": ">=6.9.0" 138 + } 139 + }, 140 + "node_modules/@babel/helper-module-imports": { 141 + "version": "7.25.7", 142 + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", 143 + "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", 144 + "dependencies": { 145 + "@babel/traverse": "^7.25.7", 146 + "@babel/types": "^7.25.7" 147 + }, 148 + "engines": { 149 + "node": ">=6.9.0" 150 + } 151 + }, 152 + "node_modules/@babel/helper-module-transforms": { 153 + "version": "7.25.7", 154 + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", 155 + "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", 156 + "dev": true, 157 + "dependencies": { 158 + "@babel/helper-module-imports": "^7.25.7", 159 + "@babel/helper-simple-access": "^7.25.7", 160 + "@babel/helper-validator-identifier": "^7.25.7", 161 + "@babel/traverse": "^7.25.7" 162 + }, 163 + "engines": { 164 + "node": ">=6.9.0" 165 + }, 166 + "peerDependencies": { 167 + "@babel/core": "^7.0.0" 168 + } 169 + }, 170 + "node_modules/@babel/helper-plugin-utils": { 171 + "version": "7.25.7", 172 + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", 173 + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", 174 + "dev": true, 175 + "engines": { 176 + "node": ">=6.9.0" 177 + } 178 + }, 179 + "node_modules/@babel/helper-simple-access": { 180 + "version": "7.25.7", 181 + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", 182 + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", 183 + "dev": true, 184 + "dependencies": { 185 + "@babel/traverse": "^7.25.7", 186 + "@babel/types": "^7.25.7" 187 + }, 188 + "engines": { 189 + "node": ">=6.9.0" 190 + } 191 + }, 192 + "node_modules/@babel/helper-string-parser": { 193 + "version": "7.25.7", 194 + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", 195 + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", 196 + "engines": { 197 + "node": ">=6.9.0" 198 + } 199 + }, 200 + "node_modules/@babel/helper-validator-identifier": { 201 + "version": "7.25.7", 202 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", 203 + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", 204 + "engines": { 205 + "node": ">=6.9.0" 206 + } 207 + }, 208 + "node_modules/@babel/helper-validator-option": { 209 + "version": "7.25.7", 210 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", 211 + "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", 212 + "dev": true, 213 + "engines": { 214 + "node": ">=6.9.0" 215 + } 216 + }, 217 + "node_modules/@babel/helpers": { 218 + "version": "7.25.7", 219 + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", 220 + "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", 221 + "dev": true, 222 + "dependencies": { 223 + "@babel/template": "^7.25.7", 224 + "@babel/types": "^7.25.7" 225 + }, 226 + "engines": { 227 + "node": ">=6.9.0" 228 + } 229 + }, 230 + "node_modules/@babel/highlight": { 231 + "version": "7.25.7", 232 + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", 233 + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", 234 + "dependencies": { 235 + "@babel/helper-validator-identifier": "^7.25.7", 236 + "chalk": "^2.4.2", 237 + "js-tokens": "^4.0.0", 238 + "picocolors": "^1.0.0" 239 + }, 240 + "engines": { 241 + "node": ">=6.9.0" 242 + } 243 + }, 244 + "node_modules/@babel/parser": { 245 + "version": "7.25.7", 246 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz", 247 + "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", 248 + "dependencies": { 249 + "@babel/types": "^7.25.7" 250 + }, 251 + "bin": { 252 + "parser": "bin/babel-parser.js" 253 + }, 254 + "engines": { 255 + "node": ">=6.0.0" 256 + } 257 + }, 258 + "node_modules/@babel/plugin-transform-react-jsx-self": { 259 + "version": "7.25.7", 260 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.7.tgz", 261 + "integrity": "sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==", 262 + "dev": true, 263 + "dependencies": { 264 + "@babel/helper-plugin-utils": "^7.25.7" 265 + }, 266 + "engines": { 267 + "node": ">=6.9.0" 268 + }, 269 + "peerDependencies": { 270 + "@babel/core": "^7.0.0-0" 271 + } 272 + }, 273 + "node_modules/@babel/plugin-transform-react-jsx-source": { 274 + "version": "7.25.7", 275 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.7.tgz", 276 + "integrity": "sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==", 277 + "dev": true, 278 + "dependencies": { 279 + "@babel/helper-plugin-utils": "^7.25.7" 280 + }, 281 + "engines": { 282 + "node": ">=6.9.0" 283 + }, 284 + "peerDependencies": { 285 + "@babel/core": "^7.0.0-0" 286 + } 287 + }, 288 + "node_modules/@babel/runtime": { 289 + "version": "7.26.0", 290 + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", 291 + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", 292 + "dependencies": { 293 + "regenerator-runtime": "^0.14.0" 294 + }, 295 + "engines": { 296 + "node": ">=6.9.0" 297 + } 298 + }, 299 + "node_modules/@babel/template": { 300 + "version": "7.25.7", 301 + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", 302 + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", 303 + "dependencies": { 304 + "@babel/code-frame": "^7.25.7", 305 + "@babel/parser": "^7.25.7", 306 + "@babel/types": "^7.25.7" 307 + }, 308 + "engines": { 309 + "node": ">=6.9.0" 310 + } 311 + }, 312 + "node_modules/@babel/traverse": { 313 + "version": "7.25.7", 314 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", 315 + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", 316 + "dependencies": { 317 + "@babel/code-frame": "^7.25.7", 318 + "@babel/generator": "^7.25.7", 319 + "@babel/parser": "^7.25.7", 320 + "@babel/template": "^7.25.7", 321 + "@babel/types": "^7.25.7", 322 + "debug": "^4.3.1", 323 + "globals": "^11.1.0" 324 + }, 325 + "engines": { 326 + "node": ">=6.9.0" 327 + } 328 + }, 329 + "node_modules/@babel/traverse/node_modules/globals": { 330 + "version": "11.12.0", 331 + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 332 + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 333 + "engines": { 334 + "node": ">=4" 335 + } 336 + }, 337 + "node_modules/@babel/types": { 338 + "version": "7.25.7", 339 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz", 340 + "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", 341 + "dependencies": { 342 + "@babel/helper-string-parser": "^7.25.7", 343 + "@babel/helper-validator-identifier": "^7.25.7", 344 + "to-fast-properties": "^2.0.0" 345 + }, 346 + "engines": { 347 + "node": ">=6.9.0" 348 + } 349 + }, 350 + "node_modules/@emotion/babel-plugin": { 351 + "version": "11.12.0", 352 + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz", 353 + "integrity": "sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==", 354 + "dependencies": { 355 + "@babel/helper-module-imports": "^7.16.7", 356 + "@babel/runtime": "^7.18.3", 357 + "@emotion/hash": "^0.9.2", 358 + "@emotion/memoize": "^0.9.0", 359 + "@emotion/serialize": "^1.2.0", 360 + "babel-plugin-macros": "^3.1.0", 361 + "convert-source-map": "^1.5.0", 362 + "escape-string-regexp": "^4.0.0", 363 + "find-root": "^1.1.0", 364 + "source-map": "^0.5.7", 365 + "stylis": "4.2.0" 366 + } 367 + }, 368 + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { 369 + "version": "1.9.0", 370 + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", 371 + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" 372 + }, 373 + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { 374 + "version": "4.0.0", 375 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 376 + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 377 + "engines": { 378 + "node": ">=10" 379 + }, 380 + "funding": { 381 + "url": "https://github.com/sponsors/sindresorhus" 382 + } 383 + }, 384 + "node_modules/@emotion/cache": { 385 + "version": "11.13.1", 386 + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.1.tgz", 387 + "integrity": "sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==", 388 + "dependencies": { 389 + "@emotion/memoize": "^0.9.0", 390 + "@emotion/sheet": "^1.4.0", 391 + "@emotion/utils": "^1.4.0", 392 + "@emotion/weak-memoize": "^0.4.0", 393 + "stylis": "4.2.0" 394 + } 395 + }, 396 + "node_modules/@emotion/css": { 397 + "version": "11.13.4", 398 + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.13.4.tgz", 399 + "integrity": "sha512-CthbOD5EBw+iN0rfM96Tuv5kaZN4nxPyYDvGUs0bc7wZBBiU/0mse+l+0O9RshW2d+v5HH1cme+BAbLJ/3Folw==", 400 + "dependencies": { 401 + "@emotion/babel-plugin": "^11.12.0", 402 + "@emotion/cache": "^11.13.0", 403 + "@emotion/serialize": "^1.3.0", 404 + "@emotion/sheet": "^1.4.0", 405 + "@emotion/utils": "^1.4.0" 406 + } 407 + }, 408 + "node_modules/@emotion/hash": { 409 + "version": "0.9.2", 410 + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", 411 + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==" 412 + }, 413 + "node_modules/@emotion/memoize": { 414 + "version": "0.9.0", 415 + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", 416 + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" 417 + }, 418 + "node_modules/@emotion/serialize": { 419 + "version": "1.3.2", 420 + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.2.tgz", 421 + "integrity": "sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==", 422 + "dependencies": { 423 + "@emotion/hash": "^0.9.2", 424 + "@emotion/memoize": "^0.9.0", 425 + "@emotion/unitless": "^0.10.0", 426 + "@emotion/utils": "^1.4.1", 427 + "csstype": "^3.0.2" 428 + } 429 + }, 430 + "node_modules/@emotion/sheet": { 431 + "version": "1.4.0", 432 + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", 433 + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==" 434 + }, 435 + "node_modules/@emotion/unitless": { 436 + "version": "0.10.0", 437 + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", 438 + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==" 439 + }, 440 + "node_modules/@emotion/utils": { 441 + "version": "1.4.1", 442 + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.1.tgz", 443 + "integrity": "sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==" 444 + }, 445 + "node_modules/@emotion/weak-memoize": { 446 + "version": "0.4.0", 447 + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", 448 + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==" 449 + }, 450 + "node_modules/@esbuild/aix-ppc64": { 451 + "version": "0.21.5", 452 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", 453 + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", 454 + "cpu": [ 455 + "ppc64" 456 + ], 457 + "dev": true, 458 + "optional": true, 459 + "os": [ 460 + "aix" 461 + ], 462 + "engines": { 463 + "node": ">=12" 464 + } 465 + }, 466 + "node_modules/@esbuild/android-arm": { 467 + "version": "0.21.5", 468 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", 469 + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", 470 + "cpu": [ 471 + "arm" 472 + ], 473 + "dev": true, 474 + "optional": true, 475 + "os": [ 476 + "android" 477 + ], 478 + "engines": { 479 + "node": ">=12" 480 + } 481 + }, 482 + "node_modules/@esbuild/android-arm64": { 483 + "version": "0.21.5", 484 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", 485 + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", 486 + "cpu": [ 487 + "arm64" 488 + ], 489 + "dev": true, 490 + "optional": true, 491 + "os": [ 492 + "android" 493 + ], 494 + "engines": { 495 + "node": ">=12" 496 + } 497 + }, 498 + "node_modules/@esbuild/android-x64": { 499 + "version": "0.21.5", 500 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", 501 + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", 502 + "cpu": [ 503 + "x64" 504 + ], 505 + "dev": true, 506 + "optional": true, 507 + "os": [ 508 + "android" 509 + ], 510 + "engines": { 511 + "node": ">=12" 512 + } 513 + }, 514 + "node_modules/@esbuild/darwin-arm64": { 515 + "version": "0.21.5", 516 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", 517 + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", 518 + "cpu": [ 519 + "arm64" 520 + ], 521 + "dev": true, 522 + "optional": true, 523 + "os": [ 524 + "darwin" 525 + ], 526 + "engines": { 527 + "node": ">=12" 528 + } 529 + }, 530 + "node_modules/@esbuild/darwin-x64": { 531 + "version": "0.21.5", 532 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", 533 + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", 534 + "cpu": [ 535 + "x64" 536 + ], 537 + "dev": true, 538 + "optional": true, 539 + "os": [ 540 + "darwin" 541 + ], 542 + "engines": { 543 + "node": ">=12" 544 + } 545 + }, 546 + "node_modules/@esbuild/freebsd-arm64": { 547 + "version": "0.21.5", 548 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", 549 + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", 550 + "cpu": [ 551 + "arm64" 552 + ], 553 + "dev": true, 554 + "optional": true, 555 + "os": [ 556 + "freebsd" 557 + ], 558 + "engines": { 559 + "node": ">=12" 560 + } 561 + }, 562 + "node_modules/@esbuild/freebsd-x64": { 563 + "version": "0.21.5", 564 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", 565 + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", 566 + "cpu": [ 567 + "x64" 568 + ], 569 + "dev": true, 570 + "optional": true, 571 + "os": [ 572 + "freebsd" 573 + ], 574 + "engines": { 575 + "node": ">=12" 576 + } 577 + }, 578 + "node_modules/@esbuild/linux-arm": { 579 + "version": "0.21.5", 580 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", 581 + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", 582 + "cpu": [ 583 + "arm" 584 + ], 585 + "dev": true, 586 + "optional": true, 587 + "os": [ 588 + "linux" 589 + ], 590 + "engines": { 591 + "node": ">=12" 592 + } 593 + }, 594 + "node_modules/@esbuild/linux-arm64": { 595 + "version": "0.21.5", 596 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", 597 + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", 598 + "cpu": [ 599 + "arm64" 600 + ], 601 + "dev": true, 602 + "optional": true, 603 + "os": [ 604 + "linux" 605 + ], 606 + "engines": { 607 + "node": ">=12" 608 + } 609 + }, 610 + "node_modules/@esbuild/linux-ia32": { 611 + "version": "0.21.5", 612 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", 613 + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", 614 + "cpu": [ 615 + "ia32" 616 + ], 617 + "dev": true, 618 + "optional": true, 619 + "os": [ 620 + "linux" 621 + ], 622 + "engines": { 623 + "node": ">=12" 624 + } 625 + }, 626 + "node_modules/@esbuild/linux-loong64": { 627 + "version": "0.21.5", 628 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", 629 + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", 630 + "cpu": [ 631 + "loong64" 632 + ], 633 + "dev": true, 634 + "optional": true, 635 + "os": [ 636 + "linux" 637 + ], 638 + "engines": { 639 + "node": ">=12" 640 + } 641 + }, 642 + "node_modules/@esbuild/linux-mips64el": { 643 + "version": "0.21.5", 644 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", 645 + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", 646 + "cpu": [ 647 + "mips64el" 648 + ], 649 + "dev": true, 650 + "optional": true, 651 + "os": [ 652 + "linux" 653 + ], 654 + "engines": { 655 + "node": ">=12" 656 + } 657 + }, 658 + "node_modules/@esbuild/linux-ppc64": { 659 + "version": "0.21.5", 660 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", 661 + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", 662 + "cpu": [ 663 + "ppc64" 664 + ], 665 + "dev": true, 666 + "optional": true, 667 + "os": [ 668 + "linux" 669 + ], 670 + "engines": { 671 + "node": ">=12" 672 + } 673 + }, 674 + "node_modules/@esbuild/linux-riscv64": { 675 + "version": "0.21.5", 676 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", 677 + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", 678 + "cpu": [ 679 + "riscv64" 680 + ], 681 + "dev": true, 682 + "optional": true, 683 + "os": [ 684 + "linux" 685 + ], 686 + "engines": { 687 + "node": ">=12" 688 + } 689 + }, 690 + "node_modules/@esbuild/linux-s390x": { 691 + "version": "0.21.5", 692 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", 693 + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", 694 + "cpu": [ 695 + "s390x" 696 + ], 697 + "dev": true, 698 + "optional": true, 699 + "os": [ 700 + "linux" 701 + ], 702 + "engines": { 703 + "node": ">=12" 704 + } 705 + }, 706 + "node_modules/@esbuild/linux-x64": { 707 + "version": "0.21.5", 708 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", 709 + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", 710 + "cpu": [ 711 + "x64" 712 + ], 713 + "dev": true, 714 + "optional": true, 715 + "os": [ 716 + "linux" 717 + ], 718 + "engines": { 719 + "node": ">=12" 720 + } 721 + }, 722 + "node_modules/@esbuild/netbsd-x64": { 723 + "version": "0.21.5", 724 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", 725 + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", 726 + "cpu": [ 727 + "x64" 728 + ], 729 + "dev": true, 730 + "optional": true, 731 + "os": [ 732 + "netbsd" 733 + ], 734 + "engines": { 735 + "node": ">=12" 736 + } 737 + }, 738 + "node_modules/@esbuild/openbsd-x64": { 739 + "version": "0.21.5", 740 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", 741 + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", 742 + "cpu": [ 743 + "x64" 744 + ], 745 + "dev": true, 746 + "optional": true, 747 + "os": [ 748 + "openbsd" 749 + ], 750 + "engines": { 751 + "node": ">=12" 752 + } 753 + }, 754 + "node_modules/@esbuild/sunos-x64": { 755 + "version": "0.21.5", 756 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", 757 + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", 758 + "cpu": [ 759 + "x64" 760 + ], 761 + "dev": true, 762 + "optional": true, 763 + "os": [ 764 + "sunos" 765 + ], 766 + "engines": { 767 + "node": ">=12" 768 + } 769 + }, 770 + "node_modules/@esbuild/win32-arm64": { 771 + "version": "0.21.5", 772 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", 773 + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", 774 + "cpu": [ 775 + "arm64" 776 + ], 777 + "dev": true, 778 + "optional": true, 779 + "os": [ 780 + "win32" 781 + ], 782 + "engines": { 783 + "node": ">=12" 784 + } 785 + }, 786 + "node_modules/@esbuild/win32-ia32": { 787 + "version": "0.21.5", 788 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", 789 + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", 790 + "cpu": [ 791 + "ia32" 792 + ], 793 + "dev": true, 794 + "optional": true, 795 + "os": [ 796 + "win32" 797 + ], 798 + "engines": { 799 + "node": ">=12" 800 + } 801 + }, 802 + "node_modules/@esbuild/win32-x64": { 803 + "version": "0.21.5", 804 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", 805 + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", 806 + "cpu": [ 807 + "x64" 808 + ], 809 + "dev": true, 810 + "optional": true, 811 + "os": [ 812 + "win32" 813 + ], 814 + "engines": { 815 + "node": ">=12" 816 + } 817 + }, 818 + "node_modules/@eslint-community/eslint-utils": { 819 + "version": "4.4.0", 820 + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", 821 + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", 822 + "dev": true, 823 + "dependencies": { 824 + "eslint-visitor-keys": "^3.3.0" 825 + }, 826 + "engines": { 827 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 828 + }, 829 + "peerDependencies": { 830 + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 831 + } 832 + }, 833 + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { 834 + "version": "3.4.3", 835 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 836 + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 837 + "dev": true, 838 + "engines": { 839 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 840 + }, 841 + "funding": { 842 + "url": "https://opencollective.com/eslint" 843 + } 844 + }, 845 + "node_modules/@eslint-community/regexpp": { 846 + "version": "4.11.1", 847 + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", 848 + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", 849 + "dev": true, 850 + "engines": { 851 + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 852 + } 853 + }, 854 + "node_modules/@eslint/config-array": { 855 + "version": "0.18.0", 856 + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", 857 + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", 858 + "dev": true, 859 + "dependencies": { 860 + "@eslint/object-schema": "^2.1.4", 861 + "debug": "^4.3.1", 862 + "minimatch": "^3.1.2" 863 + }, 864 + "engines": { 865 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 866 + } 867 + }, 868 + "node_modules/@eslint/core": { 869 + "version": "0.6.0", 870 + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.6.0.tgz", 871 + "integrity": "sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==", 872 + "dev": true, 873 + "engines": { 874 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 875 + } 876 + }, 877 + "node_modules/@eslint/eslintrc": { 878 + "version": "3.1.0", 879 + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", 880 + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", 881 + "dev": true, 882 + "dependencies": { 883 + "ajv": "^6.12.4", 884 + "debug": "^4.3.2", 885 + "espree": "^10.0.1", 886 + "globals": "^14.0.0", 887 + "ignore": "^5.2.0", 888 + "import-fresh": "^3.2.1", 889 + "js-yaml": "^4.1.0", 890 + "minimatch": "^3.1.2", 891 + "strip-json-comments": "^3.1.1" 892 + }, 893 + "engines": { 894 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 895 + }, 896 + "funding": { 897 + "url": "https://opencollective.com/eslint" 898 + } 899 + }, 900 + "node_modules/@eslint/eslintrc/node_modules/globals": { 901 + "version": "14.0.0", 902 + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", 903 + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", 904 + "dev": true, 905 + "engines": { 906 + "node": ">=18" 907 + }, 908 + "funding": { 909 + "url": "https://github.com/sponsors/sindresorhus" 910 + } 911 + }, 912 + "node_modules/@eslint/js": { 913 + "version": "9.12.0", 914 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.12.0.tgz", 915 + "integrity": "sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==", 916 + "dev": true, 917 + "engines": { 918 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 919 + } 920 + }, 921 + "node_modules/@eslint/object-schema": { 922 + "version": "2.1.4", 923 + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", 924 + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", 925 + "dev": true, 926 + "engines": { 927 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 928 + } 929 + }, 930 + "node_modules/@eslint/plugin-kit": { 931 + "version": "0.2.0", 932 + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", 933 + "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", 934 + "dev": true, 935 + "dependencies": { 936 + "levn": "^0.4.1" 937 + }, 938 + "engines": { 939 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 940 + } 941 + }, 942 + "node_modules/@humanfs/core": { 943 + "version": "0.19.0", 944 + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", 945 + "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", 946 + "dev": true, 947 + "engines": { 948 + "node": ">=18.18.0" 949 + } 950 + }, 951 + "node_modules/@humanfs/node": { 952 + "version": "0.16.5", 953 + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz", 954 + "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", 955 + "dev": true, 956 + "dependencies": { 957 + "@humanfs/core": "^0.19.0", 958 + "@humanwhocodes/retry": "^0.3.0" 959 + }, 960 + "engines": { 961 + "node": ">=18.18.0" 962 + } 963 + }, 964 + "node_modules/@humanwhocodes/module-importer": { 965 + "version": "1.0.1", 966 + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 967 + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 968 + "dev": true, 969 + "engines": { 970 + "node": ">=12.22" 971 + }, 972 + "funding": { 973 + "type": "github", 974 + "url": "https://github.com/sponsors/nzakas" 975 + } 976 + }, 977 + "node_modules/@humanwhocodes/retry": { 978 + "version": "0.3.1", 979 + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", 980 + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", 981 + "dev": true, 982 + "engines": { 983 + "node": ">=18.18" 984 + }, 985 + "funding": { 986 + "type": "github", 987 + "url": "https://github.com/sponsors/nzakas" 988 + } 989 + }, 990 + "node_modules/@isaacs/cliui": { 991 + "version": "8.0.2", 992 + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 993 + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 994 + "dev": true, 995 + "dependencies": { 996 + "string-width": "^5.1.2", 997 + "string-width-cjs": "npm:string-width@^4.2.0", 998 + "strip-ansi": "^7.0.1", 999 + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 1000 + "wrap-ansi": "^8.1.0", 1001 + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 1002 + }, 1003 + "engines": { 1004 + "node": ">=12" 1005 + } 1006 + }, 1007 + "node_modules/@jridgewell/gen-mapping": { 1008 + "version": "0.3.5", 1009 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", 1010 + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", 1011 + "dependencies": { 1012 + "@jridgewell/set-array": "^1.2.1", 1013 + "@jridgewell/sourcemap-codec": "^1.4.10", 1014 + "@jridgewell/trace-mapping": "^0.3.24" 1015 + }, 1016 + "engines": { 1017 + "node": ">=6.0.0" 1018 + } 1019 + }, 1020 + "node_modules/@jridgewell/resolve-uri": { 1021 + "version": "3.1.2", 1022 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 1023 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 1024 + "engines": { 1025 + "node": ">=6.0.0" 1026 + } 1027 + }, 1028 + "node_modules/@jridgewell/set-array": { 1029 + "version": "1.2.1", 1030 + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 1031 + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 1032 + "engines": { 1033 + "node": ">=6.0.0" 1034 + } 1035 + }, 1036 + "node_modules/@jridgewell/sourcemap-codec": { 1037 + "version": "1.5.0", 1038 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 1039 + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" 1040 + }, 1041 + "node_modules/@jridgewell/trace-mapping": { 1042 + "version": "0.3.25", 1043 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 1044 + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 1045 + "dependencies": { 1046 + "@jridgewell/resolve-uri": "^3.1.0", 1047 + "@jridgewell/sourcemap-codec": "^1.4.14" 1048 + } 1049 + }, 1050 + "node_modules/@nodelib/fs.scandir": { 1051 + "version": "2.1.5", 1052 + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1053 + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1054 + "dev": true, 1055 + "dependencies": { 1056 + "@nodelib/fs.stat": "2.0.5", 1057 + "run-parallel": "^1.1.9" 1058 + }, 1059 + "engines": { 1060 + "node": ">= 8" 1061 + } 1062 + }, 1063 + "node_modules/@nodelib/fs.stat": { 1064 + "version": "2.0.5", 1065 + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1066 + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1067 + "dev": true, 1068 + "engines": { 1069 + "node": ">= 8" 1070 + } 1071 + }, 1072 + "node_modules/@nodelib/fs.walk": { 1073 + "version": "1.2.8", 1074 + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1075 + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1076 + "dev": true, 1077 + "dependencies": { 1078 + "@nodelib/fs.scandir": "2.1.5", 1079 + "fastq": "^1.6.0" 1080 + }, 1081 + "engines": { 1082 + "node": ">= 8" 1083 + } 1084 + }, 1085 + "node_modules/@pkgjs/parseargs": { 1086 + "version": "0.11.0", 1087 + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 1088 + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 1089 + "dev": true, 1090 + "optional": true, 1091 + "engines": { 1092 + "node": ">=14" 1093 + } 1094 + }, 1095 + "node_modules/@rollup/rollup-android-arm-eabi": { 1096 + "version": "4.24.0", 1097 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", 1098 + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", 1099 + "cpu": [ 1100 + "arm" 1101 + ], 1102 + "dev": true, 1103 + "optional": true, 1104 + "os": [ 1105 + "android" 1106 + ] 1107 + }, 1108 + "node_modules/@rollup/rollup-android-arm64": { 1109 + "version": "4.24.0", 1110 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", 1111 + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", 1112 + "cpu": [ 1113 + "arm64" 1114 + ], 1115 + "dev": true, 1116 + "optional": true, 1117 + "os": [ 1118 + "android" 1119 + ] 1120 + }, 1121 + "node_modules/@rollup/rollup-darwin-arm64": { 1122 + "version": "4.24.0", 1123 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", 1124 + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", 1125 + "cpu": [ 1126 + "arm64" 1127 + ], 1128 + "dev": true, 1129 + "optional": true, 1130 + "os": [ 1131 + "darwin" 1132 + ] 1133 + }, 1134 + "node_modules/@rollup/rollup-darwin-x64": { 1135 + "version": "4.24.0", 1136 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", 1137 + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", 1138 + "cpu": [ 1139 + "x64" 1140 + ], 1141 + "dev": true, 1142 + "optional": true, 1143 + "os": [ 1144 + "darwin" 1145 + ] 1146 + }, 1147 + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 1148 + "version": "4.24.0", 1149 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", 1150 + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", 1151 + "cpu": [ 1152 + "arm" 1153 + ], 1154 + "dev": true, 1155 + "optional": true, 1156 + "os": [ 1157 + "linux" 1158 + ] 1159 + }, 1160 + "node_modules/@rollup/rollup-linux-arm-musleabihf": { 1161 + "version": "4.24.0", 1162 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", 1163 + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", 1164 + "cpu": [ 1165 + "arm" 1166 + ], 1167 + "dev": true, 1168 + "optional": true, 1169 + "os": [ 1170 + "linux" 1171 + ] 1172 + }, 1173 + "node_modules/@rollup/rollup-linux-arm64-gnu": { 1174 + "version": "4.24.0", 1175 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", 1176 + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", 1177 + "cpu": [ 1178 + "arm64" 1179 + ], 1180 + "dev": true, 1181 + "optional": true, 1182 + "os": [ 1183 + "linux" 1184 + ] 1185 + }, 1186 + "node_modules/@rollup/rollup-linux-arm64-musl": { 1187 + "version": "4.24.0", 1188 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", 1189 + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", 1190 + "cpu": [ 1191 + "arm64" 1192 + ], 1193 + "dev": true, 1194 + "optional": true, 1195 + "os": [ 1196 + "linux" 1197 + ] 1198 + }, 1199 + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { 1200 + "version": "4.24.0", 1201 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", 1202 + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", 1203 + "cpu": [ 1204 + "ppc64" 1205 + ], 1206 + "dev": true, 1207 + "optional": true, 1208 + "os": [ 1209 + "linux" 1210 + ] 1211 + }, 1212 + "node_modules/@rollup/rollup-linux-riscv64-gnu": { 1213 + "version": "4.24.0", 1214 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", 1215 + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", 1216 + "cpu": [ 1217 + "riscv64" 1218 + ], 1219 + "dev": true, 1220 + "optional": true, 1221 + "os": [ 1222 + "linux" 1223 + ] 1224 + }, 1225 + "node_modules/@rollup/rollup-linux-s390x-gnu": { 1226 + "version": "4.24.0", 1227 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", 1228 + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", 1229 + "cpu": [ 1230 + "s390x" 1231 + ], 1232 + "dev": true, 1233 + "optional": true, 1234 + "os": [ 1235 + "linux" 1236 + ] 1237 + }, 1238 + "node_modules/@rollup/rollup-linux-x64-gnu": { 1239 + "version": "4.24.0", 1240 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", 1241 + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", 1242 + "cpu": [ 1243 + "x64" 1244 + ], 1245 + "dev": true, 1246 + "optional": true, 1247 + "os": [ 1248 + "linux" 1249 + ] 1250 + }, 1251 + "node_modules/@rollup/rollup-linux-x64-musl": { 1252 + "version": "4.24.0", 1253 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", 1254 + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", 1255 + "cpu": [ 1256 + "x64" 1257 + ], 1258 + "dev": true, 1259 + "optional": true, 1260 + "os": [ 1261 + "linux" 1262 + ] 1263 + }, 1264 + "node_modules/@rollup/rollup-win32-arm64-msvc": { 1265 + "version": "4.24.0", 1266 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", 1267 + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", 1268 + "cpu": [ 1269 + "arm64" 1270 + ], 1271 + "dev": true, 1272 + "optional": true, 1273 + "os": [ 1274 + "win32" 1275 + ] 1276 + }, 1277 + "node_modules/@rollup/rollup-win32-ia32-msvc": { 1278 + "version": "4.24.0", 1279 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", 1280 + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", 1281 + "cpu": [ 1282 + "ia32" 1283 + ], 1284 + "dev": true, 1285 + "optional": true, 1286 + "os": [ 1287 + "win32" 1288 + ] 1289 + }, 1290 + "node_modules/@rollup/rollup-win32-x64-msvc": { 1291 + "version": "4.24.0", 1292 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", 1293 + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", 1294 + "cpu": [ 1295 + "x64" 1296 + ], 1297 + "dev": true, 1298 + "optional": true, 1299 + "os": [ 1300 + "win32" 1301 + ] 1302 + }, 1303 + "node_modules/@types/babel__core": { 1304 + "version": "7.20.5", 1305 + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", 1306 + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", 1307 + "dev": true, 1308 + "dependencies": { 1309 + "@babel/parser": "^7.20.7", 1310 + "@babel/types": "^7.20.7", 1311 + "@types/babel__generator": "*", 1312 + "@types/babel__template": "*", 1313 + "@types/babel__traverse": "*" 1314 + } 1315 + }, 1316 + "node_modules/@types/babel__generator": { 1317 + "version": "7.6.8", 1318 + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", 1319 + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", 1320 + "dev": true, 1321 + "dependencies": { 1322 + "@babel/types": "^7.0.0" 1323 + } 1324 + }, 1325 + "node_modules/@types/babel__template": { 1326 + "version": "7.4.4", 1327 + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", 1328 + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", 1329 + "dev": true, 1330 + "dependencies": { 1331 + "@babel/parser": "^7.1.0", 1332 + "@babel/types": "^7.0.0" 1333 + } 1334 + }, 1335 + "node_modules/@types/babel__traverse": { 1336 + "version": "7.20.6", 1337 + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", 1338 + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", 1339 + "dev": true, 1340 + "dependencies": { 1341 + "@babel/types": "^7.20.7" 1342 + } 1343 + }, 1344 + "node_modules/@types/estree": { 1345 + "version": "1.0.6", 1346 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", 1347 + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", 1348 + "dev": true 1349 + }, 1350 + "node_modules/@types/json-schema": { 1351 + "version": "7.0.15", 1352 + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", 1353 + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", 1354 + "dev": true 1355 + }, 1356 + "node_modules/@types/parse-json": { 1357 + "version": "4.0.2", 1358 + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", 1359 + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" 1360 + }, 1361 + "node_modules/@types/prop-types": { 1362 + "version": "15.7.13", 1363 + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", 1364 + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", 1365 + "dev": true 1366 + }, 1367 + "node_modules/@types/react": { 1368 + "version": "18.3.11", 1369 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", 1370 + "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", 1371 + "dev": true, 1372 + "dependencies": { 1373 + "@types/prop-types": "*", 1374 + "csstype": "^3.0.2" 1375 + } 1376 + }, 1377 + "node_modules/@types/react-dom": { 1378 + "version": "18.3.0", 1379 + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", 1380 + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", 1381 + "dev": true, 1382 + "dependencies": { 1383 + "@types/react": "*" 1384 + } 1385 + }, 1386 + "node_modules/@typescript-eslint/eslint-plugin": { 1387 + "version": "8.8.1", 1388 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.8.1.tgz", 1389 + "integrity": "sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==", 1390 + "dev": true, 1391 + "dependencies": { 1392 + "@eslint-community/regexpp": "^4.10.0", 1393 + "@typescript-eslint/scope-manager": "8.8.1", 1394 + "@typescript-eslint/type-utils": "8.8.1", 1395 + "@typescript-eslint/utils": "8.8.1", 1396 + "@typescript-eslint/visitor-keys": "8.8.1", 1397 + "graphemer": "^1.4.0", 1398 + "ignore": "^5.3.1", 1399 + "natural-compare": "^1.4.0", 1400 + "ts-api-utils": "^1.3.0" 1401 + }, 1402 + "engines": { 1403 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1404 + }, 1405 + "funding": { 1406 + "type": "opencollective", 1407 + "url": "https://opencollective.com/typescript-eslint" 1408 + }, 1409 + "peerDependencies": { 1410 + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", 1411 + "eslint": "^8.57.0 || ^9.0.0" 1412 + }, 1413 + "peerDependenciesMeta": { 1414 + "typescript": { 1415 + "optional": true 1416 + } 1417 + } 1418 + }, 1419 + "node_modules/@typescript-eslint/parser": { 1420 + "version": "8.8.1", 1421 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.1.tgz", 1422 + "integrity": "sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==", 1423 + "dev": true, 1424 + "dependencies": { 1425 + "@typescript-eslint/scope-manager": "8.8.1", 1426 + "@typescript-eslint/types": "8.8.1", 1427 + "@typescript-eslint/typescript-estree": "8.8.1", 1428 + "@typescript-eslint/visitor-keys": "8.8.1", 1429 + "debug": "^4.3.4" 1430 + }, 1431 + "engines": { 1432 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1433 + }, 1434 + "funding": { 1435 + "type": "opencollective", 1436 + "url": "https://opencollective.com/typescript-eslint" 1437 + }, 1438 + "peerDependencies": { 1439 + "eslint": "^8.57.0 || ^9.0.0" 1440 + }, 1441 + "peerDependenciesMeta": { 1442 + "typescript": { 1443 + "optional": true 1444 + } 1445 + } 1446 + }, 1447 + "node_modules/@typescript-eslint/scope-manager": { 1448 + "version": "8.8.1", 1449 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.8.1.tgz", 1450 + "integrity": "sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==", 1451 + "dev": true, 1452 + "dependencies": { 1453 + "@typescript-eslint/types": "8.8.1", 1454 + "@typescript-eslint/visitor-keys": "8.8.1" 1455 + }, 1456 + "engines": { 1457 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1458 + }, 1459 + "funding": { 1460 + "type": "opencollective", 1461 + "url": "https://opencollective.com/typescript-eslint" 1462 + } 1463 + }, 1464 + "node_modules/@typescript-eslint/type-utils": { 1465 + "version": "8.8.1", 1466 + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.8.1.tgz", 1467 + "integrity": "sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==", 1468 + "dev": true, 1469 + "dependencies": { 1470 + "@typescript-eslint/typescript-estree": "8.8.1", 1471 + "@typescript-eslint/utils": "8.8.1", 1472 + "debug": "^4.3.4", 1473 + "ts-api-utils": "^1.3.0" 1474 + }, 1475 + "engines": { 1476 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1477 + }, 1478 + "funding": { 1479 + "type": "opencollective", 1480 + "url": "https://opencollective.com/typescript-eslint" 1481 + }, 1482 + "peerDependenciesMeta": { 1483 + "typescript": { 1484 + "optional": true 1485 + } 1486 + } 1487 + }, 1488 + "node_modules/@typescript-eslint/types": { 1489 + "version": "8.8.1", 1490 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.8.1.tgz", 1491 + "integrity": "sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==", 1492 + "dev": true, 1493 + "engines": { 1494 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1495 + }, 1496 + "funding": { 1497 + "type": "opencollective", 1498 + "url": "https://opencollective.com/typescript-eslint" 1499 + } 1500 + }, 1501 + "node_modules/@typescript-eslint/typescript-estree": { 1502 + "version": "8.8.1", 1503 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.8.1.tgz", 1504 + "integrity": "sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==", 1505 + "dev": true, 1506 + "dependencies": { 1507 + "@typescript-eslint/types": "8.8.1", 1508 + "@typescript-eslint/visitor-keys": "8.8.1", 1509 + "debug": "^4.3.4", 1510 + "fast-glob": "^3.3.2", 1511 + "is-glob": "^4.0.3", 1512 + "minimatch": "^9.0.4", 1513 + "semver": "^7.6.0", 1514 + "ts-api-utils": "^1.3.0" 1515 + }, 1516 + "engines": { 1517 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1518 + }, 1519 + "funding": { 1520 + "type": "opencollective", 1521 + "url": "https://opencollective.com/typescript-eslint" 1522 + }, 1523 + "peerDependenciesMeta": { 1524 + "typescript": { 1525 + "optional": true 1526 + } 1527 + } 1528 + }, 1529 + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { 1530 + "version": "2.0.1", 1531 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 1532 + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 1533 + "dev": true, 1534 + "dependencies": { 1535 + "balanced-match": "^1.0.0" 1536 + } 1537 + }, 1538 + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 1539 + "version": "9.0.5", 1540 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 1541 + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 1542 + "dev": true, 1543 + "dependencies": { 1544 + "brace-expansion": "^2.0.1" 1545 + }, 1546 + "engines": { 1547 + "node": ">=16 || 14 >=14.17" 1548 + }, 1549 + "funding": { 1550 + "url": "https://github.com/sponsors/isaacs" 1551 + } 1552 + }, 1553 + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { 1554 + "version": "7.6.3", 1555 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", 1556 + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", 1557 + "dev": true, 1558 + "bin": { 1559 + "semver": "bin/semver.js" 1560 + }, 1561 + "engines": { 1562 + "node": ">=10" 1563 + } 1564 + }, 1565 + "node_modules/@typescript-eslint/utils": { 1566 + "version": "8.8.1", 1567 + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.8.1.tgz", 1568 + "integrity": "sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==", 1569 + "dev": true, 1570 + "dependencies": { 1571 + "@eslint-community/eslint-utils": "^4.4.0", 1572 + "@typescript-eslint/scope-manager": "8.8.1", 1573 + "@typescript-eslint/types": "8.8.1", 1574 + "@typescript-eslint/typescript-estree": "8.8.1" 1575 + }, 1576 + "engines": { 1577 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1578 + }, 1579 + "funding": { 1580 + "type": "opencollective", 1581 + "url": "https://opencollective.com/typescript-eslint" 1582 + }, 1583 + "peerDependencies": { 1584 + "eslint": "^8.57.0 || ^9.0.0" 1585 + } 1586 + }, 1587 + "node_modules/@typescript-eslint/visitor-keys": { 1588 + "version": "8.8.1", 1589 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.8.1.tgz", 1590 + "integrity": "sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==", 1591 + "dev": true, 1592 + "dependencies": { 1593 + "@typescript-eslint/types": "8.8.1", 1594 + "eslint-visitor-keys": "^3.4.3" 1595 + }, 1596 + "engines": { 1597 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1598 + }, 1599 + "funding": { 1600 + "type": "opencollective", 1601 + "url": "https://opencollective.com/typescript-eslint" 1602 + } 1603 + }, 1604 + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { 1605 + "version": "3.4.3", 1606 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 1607 + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 1608 + "dev": true, 1609 + "engines": { 1610 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1611 + }, 1612 + "funding": { 1613 + "url": "https://opencollective.com/eslint" 1614 + } 1615 + }, 1616 + "node_modules/@vitejs/plugin-react": { 1617 + "version": "4.3.2", 1618 + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz", 1619 + "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==", 1620 + "dev": true, 1621 + "dependencies": { 1622 + "@babel/core": "^7.25.2", 1623 + "@babel/plugin-transform-react-jsx-self": "^7.24.7", 1624 + "@babel/plugin-transform-react-jsx-source": "^7.24.7", 1625 + "@types/babel__core": "^7.20.5", 1626 + "react-refresh": "^0.14.2" 1627 + }, 1628 + "engines": { 1629 + "node": "^14.18.0 || >=16.0.0" 1630 + }, 1631 + "peerDependencies": { 1632 + "vite": "^4.2.0 || ^5.0.0" 1633 + } 1634 + }, 1635 + "node_modules/acorn": { 1636 + "version": "8.12.1", 1637 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", 1638 + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", 1639 + "dev": true, 1640 + "bin": { 1641 + "acorn": "bin/acorn" 1642 + }, 1643 + "engines": { 1644 + "node": ">=0.4.0" 1645 + } 1646 + }, 1647 + "node_modules/acorn-jsx": { 1648 + "version": "5.3.2", 1649 + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 1650 + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 1651 + "dev": true, 1652 + "peerDependencies": { 1653 + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 1654 + } 1655 + }, 1656 + "node_modules/ajv": { 1657 + "version": "6.12.6", 1658 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 1659 + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 1660 + "dev": true, 1661 + "dependencies": { 1662 + "fast-deep-equal": "^3.1.1", 1663 + "fast-json-stable-stringify": "^2.0.0", 1664 + "json-schema-traverse": "^0.4.1", 1665 + "uri-js": "^4.2.2" 1666 + }, 1667 + "funding": { 1668 + "type": "github", 1669 + "url": "https://github.com/sponsors/epoberezkin" 1670 + } 1671 + }, 1672 + "node_modules/ansi-regex": { 1673 + "version": "6.1.0", 1674 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", 1675 + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", 1676 + "dev": true, 1677 + "engines": { 1678 + "node": ">=12" 1679 + }, 1680 + "funding": { 1681 + "url": "https://github.com/chalk/ansi-regex?sponsor=1" 1682 + } 1683 + }, 1684 + "node_modules/ansi-styles": { 1685 + "version": "3.2.1", 1686 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1687 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1688 + "dependencies": { 1689 + "color-convert": "^1.9.0" 1690 + }, 1691 + "engines": { 1692 + "node": ">=4" 1693 + } 1694 + }, 1695 + "node_modules/any-promise": { 1696 + "version": "1.3.0", 1697 + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 1698 + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", 1699 + "dev": true 1700 + }, 1701 + "node_modules/anymatch": { 1702 + "version": "3.1.3", 1703 + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 1704 + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 1705 + "dev": true, 1706 + "dependencies": { 1707 + "normalize-path": "^3.0.0", 1708 + "picomatch": "^2.0.4" 1709 + }, 1710 + "engines": { 1711 + "node": ">= 8" 1712 + } 1713 + }, 1714 + "node_modules/arg": { 1715 + "version": "5.0.2", 1716 + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 1717 + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", 1718 + "dev": true 1719 + }, 1720 + "node_modules/argparse": { 1721 + "version": "2.0.1", 1722 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 1723 + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 1724 + "dev": true 1725 + }, 1726 + "node_modules/autoprefixer": { 1727 + "version": "10.4.20", 1728 + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", 1729 + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", 1730 + "dev": true, 1731 + "funding": [ 1732 + { 1733 + "type": "opencollective", 1734 + "url": "https://opencollective.com/postcss/" 1735 + }, 1736 + { 1737 + "type": "tidelift", 1738 + "url": "https://tidelift.com/funding/github/npm/autoprefixer" 1739 + }, 1740 + { 1741 + "type": "github", 1742 + "url": "https://github.com/sponsors/ai" 1743 + } 1744 + ], 1745 + "dependencies": { 1746 + "browserslist": "^4.23.3", 1747 + "caniuse-lite": "^1.0.30001646", 1748 + "fraction.js": "^4.3.7", 1749 + "normalize-range": "^0.1.2", 1750 + "picocolors": "^1.0.1", 1751 + "postcss-value-parser": "^4.2.0" 1752 + }, 1753 + "bin": { 1754 + "autoprefixer": "bin/autoprefixer" 1755 + }, 1756 + "engines": { 1757 + "node": "^10 || ^12 || >=14" 1758 + }, 1759 + "peerDependencies": { 1760 + "postcss": "^8.1.0" 1761 + } 1762 + }, 1763 + "node_modules/babel-plugin-macros": { 1764 + "version": "3.1.0", 1765 + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", 1766 + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", 1767 + "dependencies": { 1768 + "@babel/runtime": "^7.12.5", 1769 + "cosmiconfig": "^7.0.0", 1770 + "resolve": "^1.19.0" 1771 + }, 1772 + "engines": { 1773 + "node": ">=10", 1774 + "npm": ">=6" 1775 + } 1776 + }, 1777 + "node_modules/balanced-match": { 1778 + "version": "1.0.2", 1779 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1780 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1781 + "dev": true 1782 + }, 1783 + "node_modules/binary-extensions": { 1784 + "version": "2.3.0", 1785 + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", 1786 + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", 1787 + "dev": true, 1788 + "engines": { 1789 + "node": ">=8" 1790 + }, 1791 + "funding": { 1792 + "url": "https://github.com/sponsors/sindresorhus" 1793 + } 1794 + }, 1795 + "node_modules/brace-expansion": { 1796 + "version": "1.1.11", 1797 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1798 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1799 + "dev": true, 1800 + "dependencies": { 1801 + "balanced-match": "^1.0.0", 1802 + "concat-map": "0.0.1" 1803 + } 1804 + }, 1805 + "node_modules/braces": { 1806 + "version": "3.0.3", 1807 + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 1808 + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 1809 + "dev": true, 1810 + "dependencies": { 1811 + "fill-range": "^7.1.1" 1812 + }, 1813 + "engines": { 1814 + "node": ">=8" 1815 + } 1816 + }, 1817 + "node_modules/browserslist": { 1818 + "version": "4.24.0", 1819 + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", 1820 + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", 1821 + "dev": true, 1822 + "funding": [ 1823 + { 1824 + "type": "opencollective", 1825 + "url": "https://opencollective.com/browserslist" 1826 + }, 1827 + { 1828 + "type": "tidelift", 1829 + "url": "https://tidelift.com/funding/github/npm/browserslist" 1830 + }, 1831 + { 1832 + "type": "github", 1833 + "url": "https://github.com/sponsors/ai" 1834 + } 1835 + ], 1836 + "dependencies": { 1837 + "caniuse-lite": "^1.0.30001663", 1838 + "electron-to-chromium": "^1.5.28", 1839 + "node-releases": "^2.0.18", 1840 + "update-browserslist-db": "^1.1.0" 1841 + }, 1842 + "bin": { 1843 + "browserslist": "cli.js" 1844 + }, 1845 + "engines": { 1846 + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 1847 + } 1848 + }, 1849 + "node_modules/callsites": { 1850 + "version": "3.1.0", 1851 + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 1852 + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 1853 + "engines": { 1854 + "node": ">=6" 1855 + } 1856 + }, 1857 + "node_modules/camelcase-css": { 1858 + "version": "2.0.1", 1859 + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", 1860 + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", 1861 + "dev": true, 1862 + "engines": { 1863 + "node": ">= 6" 1864 + } 1865 + }, 1866 + "node_modules/caniuse-lite": { 1867 + "version": "1.0.30001667", 1868 + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", 1869 + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", 1870 + "dev": true, 1871 + "funding": [ 1872 + { 1873 + "type": "opencollective", 1874 + "url": "https://opencollective.com/browserslist" 1875 + }, 1876 + { 1877 + "type": "tidelift", 1878 + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 1879 + }, 1880 + { 1881 + "type": "github", 1882 + "url": "https://github.com/sponsors/ai" 1883 + } 1884 + ] 1885 + }, 1886 + "node_modules/chalk": { 1887 + "version": "2.4.2", 1888 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1889 + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1890 + "dependencies": { 1891 + "ansi-styles": "^3.2.1", 1892 + "escape-string-regexp": "^1.0.5", 1893 + "supports-color": "^5.3.0" 1894 + }, 1895 + "engines": { 1896 + "node": ">=4" 1897 + } 1898 + }, 1899 + "node_modules/chokidar": { 1900 + "version": "3.6.0", 1901 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", 1902 + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", 1903 + "dev": true, 1904 + "dependencies": { 1905 + "anymatch": "~3.1.2", 1906 + "braces": "~3.0.2", 1907 + "glob-parent": "~5.1.2", 1908 + "is-binary-path": "~2.1.0", 1909 + "is-glob": "~4.0.1", 1910 + "normalize-path": "~3.0.0", 1911 + "readdirp": "~3.6.0" 1912 + }, 1913 + "engines": { 1914 + "node": ">= 8.10.0" 1915 + }, 1916 + "funding": { 1917 + "url": "https://paulmillr.com/funding/" 1918 + }, 1919 + "optionalDependencies": { 1920 + "fsevents": "~2.3.2" 1921 + } 1922 + }, 1923 + "node_modules/chokidar/node_modules/glob-parent": { 1924 + "version": "5.1.2", 1925 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1926 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1927 + "dev": true, 1928 + "dependencies": { 1929 + "is-glob": "^4.0.1" 1930 + }, 1931 + "engines": { 1932 + "node": ">= 6" 1933 + } 1934 + }, 1935 + "node_modules/clsx": { 1936 + "version": "1.2.1", 1937 + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", 1938 + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", 1939 + "engines": { 1940 + "node": ">=6" 1941 + } 1942 + }, 1943 + "node_modules/color-convert": { 1944 + "version": "1.9.3", 1945 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1946 + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1947 + "dependencies": { 1948 + "color-name": "1.1.3" 1949 + } 1950 + }, 1951 + "node_modules/color-name": { 1952 + "version": "1.1.3", 1953 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1954 + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 1955 + }, 1956 + "node_modules/commander": { 1957 + "version": "4.1.1", 1958 + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", 1959 + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", 1960 + "dev": true, 1961 + "engines": { 1962 + "node": ">= 6" 1963 + } 1964 + }, 1965 + "node_modules/concat-map": { 1966 + "version": "0.0.1", 1967 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1968 + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 1969 + "dev": true 1970 + }, 1971 + "node_modules/convert-source-map": { 1972 + "version": "2.0.0", 1973 + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", 1974 + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", 1975 + "dev": true 1976 + }, 1977 + "node_modules/cosmiconfig": { 1978 + "version": "7.1.0", 1979 + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", 1980 + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", 1981 + "dependencies": { 1982 + "@types/parse-json": "^4.0.0", 1983 + "import-fresh": "^3.2.1", 1984 + "parse-json": "^5.0.0", 1985 + "path-type": "^4.0.0", 1986 + "yaml": "^1.10.0" 1987 + }, 1988 + "engines": { 1989 + "node": ">=10" 1990 + } 1991 + }, 1992 + "node_modules/cosmiconfig/node_modules/yaml": { 1993 + "version": "1.10.2", 1994 + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 1995 + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 1996 + "engines": { 1997 + "node": ">= 6" 1998 + } 1999 + }, 2000 + "node_modules/cross-spawn": { 2001 + "version": "7.0.3", 2002 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 2003 + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 2004 + "dev": true, 2005 + "dependencies": { 2006 + "path-key": "^3.1.0", 2007 + "shebang-command": "^2.0.0", 2008 + "which": "^2.0.1" 2009 + }, 2010 + "engines": { 2011 + "node": ">= 8" 2012 + } 2013 + }, 2014 + "node_modules/cssesc": { 2015 + "version": "3.0.0", 2016 + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 2017 + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 2018 + "dev": true, 2019 + "bin": { 2020 + "cssesc": "bin/cssesc" 2021 + }, 2022 + "engines": { 2023 + "node": ">=4" 2024 + } 2025 + }, 2026 + "node_modules/csstype": { 2027 + "version": "3.1.3", 2028 + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", 2029 + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" 2030 + }, 2031 + "node_modules/debug": { 2032 + "version": "4.3.7", 2033 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", 2034 + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", 2035 + "dependencies": { 2036 + "ms": "^2.1.3" 2037 + }, 2038 + "engines": { 2039 + "node": ">=6.0" 2040 + }, 2041 + "peerDependenciesMeta": { 2042 + "supports-color": { 2043 + "optional": true 2044 + } 2045 + } 2046 + }, 2047 + "node_modules/deep-is": { 2048 + "version": "0.1.4", 2049 + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 2050 + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 2051 + "dev": true 2052 + }, 2053 + "node_modules/didyoumean": { 2054 + "version": "1.2.2", 2055 + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", 2056 + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", 2057 + "dev": true 2058 + }, 2059 + "node_modules/dlv": { 2060 + "version": "1.1.3", 2061 + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", 2062 + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 2063 + "dev": true 2064 + }, 2065 + "node_modules/eastasianwidth": { 2066 + "version": "0.2.0", 2067 + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 2068 + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 2069 + "dev": true 2070 + }, 2071 + "node_modules/electron-to-chromium": { 2072 + "version": "1.5.33", 2073 + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", 2074 + "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", 2075 + "dev": true 2076 + }, 2077 + "node_modules/emoji-regex": { 2078 + "version": "9.2.2", 2079 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 2080 + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 2081 + "dev": true 2082 + }, 2083 + "node_modules/error-ex": { 2084 + "version": "1.3.2", 2085 + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 2086 + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 2087 + "dependencies": { 2088 + "is-arrayish": "^0.2.1" 2089 + } 2090 + }, 2091 + "node_modules/esbuild": { 2092 + "version": "0.21.5", 2093 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", 2094 + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", 2095 + "dev": true, 2096 + "hasInstallScript": true, 2097 + "bin": { 2098 + "esbuild": "bin/esbuild" 2099 + }, 2100 + "engines": { 2101 + "node": ">=12" 2102 + }, 2103 + "optionalDependencies": { 2104 + "@esbuild/aix-ppc64": "0.21.5", 2105 + "@esbuild/android-arm": "0.21.5", 2106 + "@esbuild/android-arm64": "0.21.5", 2107 + "@esbuild/android-x64": "0.21.5", 2108 + "@esbuild/darwin-arm64": "0.21.5", 2109 + "@esbuild/darwin-x64": "0.21.5", 2110 + "@esbuild/freebsd-arm64": "0.21.5", 2111 + "@esbuild/freebsd-x64": "0.21.5", 2112 + "@esbuild/linux-arm": "0.21.5", 2113 + "@esbuild/linux-arm64": "0.21.5", 2114 + "@esbuild/linux-ia32": "0.21.5", 2115 + "@esbuild/linux-loong64": "0.21.5", 2116 + "@esbuild/linux-mips64el": "0.21.5", 2117 + "@esbuild/linux-ppc64": "0.21.5", 2118 + "@esbuild/linux-riscv64": "0.21.5", 2119 + "@esbuild/linux-s390x": "0.21.5", 2120 + "@esbuild/linux-x64": "0.21.5", 2121 + "@esbuild/netbsd-x64": "0.21.5", 2122 + "@esbuild/openbsd-x64": "0.21.5", 2123 + "@esbuild/sunos-x64": "0.21.5", 2124 + "@esbuild/win32-arm64": "0.21.5", 2125 + "@esbuild/win32-ia32": "0.21.5", 2126 + "@esbuild/win32-x64": "0.21.5" 2127 + } 2128 + }, 2129 + "node_modules/escalade": { 2130 + "version": "3.2.0", 2131 + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 2132 + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 2133 + "dev": true, 2134 + "engines": { 2135 + "node": ">=6" 2136 + } 2137 + }, 2138 + "node_modules/escape-string-regexp": { 2139 + "version": "1.0.5", 2140 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 2141 + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 2142 + "engines": { 2143 + "node": ">=0.8.0" 2144 + } 2145 + }, 2146 + "node_modules/eslint": { 2147 + "version": "9.12.0", 2148 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.12.0.tgz", 2149 + "integrity": "sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==", 2150 + "dev": true, 2151 + "dependencies": { 2152 + "@eslint-community/eslint-utils": "^4.2.0", 2153 + "@eslint-community/regexpp": "^4.11.0", 2154 + "@eslint/config-array": "^0.18.0", 2155 + "@eslint/core": "^0.6.0", 2156 + "@eslint/eslintrc": "^3.1.0", 2157 + "@eslint/js": "9.12.0", 2158 + "@eslint/plugin-kit": "^0.2.0", 2159 + "@humanfs/node": "^0.16.5", 2160 + "@humanwhocodes/module-importer": "^1.0.1", 2161 + "@humanwhocodes/retry": "^0.3.1", 2162 + "@types/estree": "^1.0.6", 2163 + "@types/json-schema": "^7.0.15", 2164 + "ajv": "^6.12.4", 2165 + "chalk": "^4.0.0", 2166 + "cross-spawn": "^7.0.2", 2167 + "debug": "^4.3.2", 2168 + "escape-string-regexp": "^4.0.0", 2169 + "eslint-scope": "^8.1.0", 2170 + "eslint-visitor-keys": "^4.1.0", 2171 + "espree": "^10.2.0", 2172 + "esquery": "^1.5.0", 2173 + "esutils": "^2.0.2", 2174 + "fast-deep-equal": "^3.1.3", 2175 + "file-entry-cache": "^8.0.0", 2176 + "find-up": "^5.0.0", 2177 + "glob-parent": "^6.0.2", 2178 + "ignore": "^5.2.0", 2179 + "imurmurhash": "^0.1.4", 2180 + "is-glob": "^4.0.0", 2181 + "json-stable-stringify-without-jsonify": "^1.0.1", 2182 + "lodash.merge": "^4.6.2", 2183 + "minimatch": "^3.1.2", 2184 + "natural-compare": "^1.4.0", 2185 + "optionator": "^0.9.3", 2186 + "text-table": "^0.2.0" 2187 + }, 2188 + "bin": { 2189 + "eslint": "bin/eslint.js" 2190 + }, 2191 + "engines": { 2192 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2193 + }, 2194 + "funding": { 2195 + "url": "https://eslint.org/donate" 2196 + }, 2197 + "peerDependencies": { 2198 + "jiti": "*" 2199 + }, 2200 + "peerDependenciesMeta": { 2201 + "jiti": { 2202 + "optional": true 2203 + } 2204 + } 2205 + }, 2206 + "node_modules/eslint-plugin-react-hooks": { 2207 + "version": "5.1.0-rc-fb9a90fa48-20240614", 2208 + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0-rc-fb9a90fa48-20240614.tgz", 2209 + "integrity": "sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==", 2210 + "dev": true, 2211 + "engines": { 2212 + "node": ">=10" 2213 + }, 2214 + "peerDependencies": { 2215 + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" 2216 + } 2217 + }, 2218 + "node_modules/eslint-plugin-react-refresh": { 2219 + "version": "0.4.12", 2220 + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.12.tgz", 2221 + "integrity": "sha512-9neVjoGv20FwYtCP6CB1dzR1vr57ZDNOXst21wd2xJ/cTlM2xLq0GWVlSNTdMn/4BtP6cHYBMCSp1wFBJ9jBsg==", 2222 + "dev": true, 2223 + "peerDependencies": { 2224 + "eslint": ">=7" 2225 + } 2226 + }, 2227 + "node_modules/eslint-scope": { 2228 + "version": "8.1.0", 2229 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", 2230 + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", 2231 + "dev": true, 2232 + "dependencies": { 2233 + "esrecurse": "^4.3.0", 2234 + "estraverse": "^5.2.0" 2235 + }, 2236 + "engines": { 2237 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2238 + }, 2239 + "funding": { 2240 + "url": "https://opencollective.com/eslint" 2241 + } 2242 + }, 2243 + "node_modules/eslint-visitor-keys": { 2244 + "version": "4.1.0", 2245 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", 2246 + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", 2247 + "dev": true, 2248 + "engines": { 2249 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2250 + }, 2251 + "funding": { 2252 + "url": "https://opencollective.com/eslint" 2253 + } 2254 + }, 2255 + "node_modules/eslint/node_modules/ansi-styles": { 2256 + "version": "4.3.0", 2257 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2258 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2259 + "dev": true, 2260 + "dependencies": { 2261 + "color-convert": "^2.0.1" 2262 + }, 2263 + "engines": { 2264 + "node": ">=8" 2265 + }, 2266 + "funding": { 2267 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2268 + } 2269 + }, 2270 + "node_modules/eslint/node_modules/chalk": { 2271 + "version": "4.1.2", 2272 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 2273 + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 2274 + "dev": true, 2275 + "dependencies": { 2276 + "ansi-styles": "^4.1.0", 2277 + "supports-color": "^7.1.0" 2278 + }, 2279 + "engines": { 2280 + "node": ">=10" 2281 + }, 2282 + "funding": { 2283 + "url": "https://github.com/chalk/chalk?sponsor=1" 2284 + } 2285 + }, 2286 + "node_modules/eslint/node_modules/color-convert": { 2287 + "version": "2.0.1", 2288 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2289 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2290 + "dev": true, 2291 + "dependencies": { 2292 + "color-name": "~1.1.4" 2293 + }, 2294 + "engines": { 2295 + "node": ">=7.0.0" 2296 + } 2297 + }, 2298 + "node_modules/eslint/node_modules/color-name": { 2299 + "version": "1.1.4", 2300 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2301 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2302 + "dev": true 2303 + }, 2304 + "node_modules/eslint/node_modules/escape-string-regexp": { 2305 + "version": "4.0.0", 2306 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 2307 + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 2308 + "dev": true, 2309 + "engines": { 2310 + "node": ">=10" 2311 + }, 2312 + "funding": { 2313 + "url": "https://github.com/sponsors/sindresorhus" 2314 + } 2315 + }, 2316 + "node_modules/eslint/node_modules/has-flag": { 2317 + "version": "4.0.0", 2318 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2319 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2320 + "dev": true, 2321 + "engines": { 2322 + "node": ">=8" 2323 + } 2324 + }, 2325 + "node_modules/eslint/node_modules/supports-color": { 2326 + "version": "7.2.0", 2327 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2328 + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2329 + "dev": true, 2330 + "dependencies": { 2331 + "has-flag": "^4.0.0" 2332 + }, 2333 + "engines": { 2334 + "node": ">=8" 2335 + } 2336 + }, 2337 + "node_modules/espree": { 2338 + "version": "10.2.0", 2339 + "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", 2340 + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", 2341 + "dev": true, 2342 + "dependencies": { 2343 + "acorn": "^8.12.0", 2344 + "acorn-jsx": "^5.3.2", 2345 + "eslint-visitor-keys": "^4.1.0" 2346 + }, 2347 + "engines": { 2348 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2349 + }, 2350 + "funding": { 2351 + "url": "https://opencollective.com/eslint" 2352 + } 2353 + }, 2354 + "node_modules/esquery": { 2355 + "version": "1.6.0", 2356 + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", 2357 + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", 2358 + "dev": true, 2359 + "dependencies": { 2360 + "estraverse": "^5.1.0" 2361 + }, 2362 + "engines": { 2363 + "node": ">=0.10" 2364 + } 2365 + }, 2366 + "node_modules/esrecurse": { 2367 + "version": "4.3.0", 2368 + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 2369 + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 2370 + "dev": true, 2371 + "dependencies": { 2372 + "estraverse": "^5.2.0" 2373 + }, 2374 + "engines": { 2375 + "node": ">=4.0" 2376 + } 2377 + }, 2378 + "node_modules/estraverse": { 2379 + "version": "5.3.0", 2380 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 2381 + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 2382 + "dev": true, 2383 + "engines": { 2384 + "node": ">=4.0" 2385 + } 2386 + }, 2387 + "node_modules/esutils": { 2388 + "version": "2.0.3", 2389 + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 2390 + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 2391 + "dev": true, 2392 + "engines": { 2393 + "node": ">=0.10.0" 2394 + } 2395 + }, 2396 + "node_modules/fast-deep-equal": { 2397 + "version": "3.1.3", 2398 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 2399 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 2400 + "dev": true 2401 + }, 2402 + "node_modules/fast-glob": { 2403 + "version": "3.3.2", 2404 + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", 2405 + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", 2406 + "dev": true, 2407 + "dependencies": { 2408 + "@nodelib/fs.stat": "^2.0.2", 2409 + "@nodelib/fs.walk": "^1.2.3", 2410 + "glob-parent": "^5.1.2", 2411 + "merge2": "^1.3.0", 2412 + "micromatch": "^4.0.4" 2413 + }, 2414 + "engines": { 2415 + "node": ">=8.6.0" 2416 + } 2417 + }, 2418 + "node_modules/fast-glob/node_modules/glob-parent": { 2419 + "version": "5.1.2", 2420 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2421 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2422 + "dev": true, 2423 + "dependencies": { 2424 + "is-glob": "^4.0.1" 2425 + }, 2426 + "engines": { 2427 + "node": ">= 6" 2428 + } 2429 + }, 2430 + "node_modules/fast-json-stable-stringify": { 2431 + "version": "2.1.0", 2432 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 2433 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 2434 + "dev": true 2435 + }, 2436 + "node_modules/fast-levenshtein": { 2437 + "version": "2.0.6", 2438 + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 2439 + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 2440 + "dev": true 2441 + }, 2442 + "node_modules/fastq": { 2443 + "version": "1.17.1", 2444 + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", 2445 + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", 2446 + "dev": true, 2447 + "dependencies": { 2448 + "reusify": "^1.0.4" 2449 + } 2450 + }, 2451 + "node_modules/file-entry-cache": { 2452 + "version": "8.0.0", 2453 + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", 2454 + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", 2455 + "dev": true, 2456 + "dependencies": { 2457 + "flat-cache": "^4.0.0" 2458 + }, 2459 + "engines": { 2460 + "node": ">=16.0.0" 2461 + } 2462 + }, 2463 + "node_modules/fill-range": { 2464 + "version": "7.1.1", 2465 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 2466 + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 2467 + "dev": true, 2468 + "dependencies": { 2469 + "to-regex-range": "^5.0.1" 2470 + }, 2471 + "engines": { 2472 + "node": ">=8" 2473 + } 2474 + }, 2475 + "node_modules/find-root": { 2476 + "version": "1.1.0", 2477 + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", 2478 + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" 2479 + }, 2480 + "node_modules/find-up": { 2481 + "version": "5.0.0", 2482 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 2483 + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 2484 + "dev": true, 2485 + "dependencies": { 2486 + "locate-path": "^6.0.0", 2487 + "path-exists": "^4.0.0" 2488 + }, 2489 + "engines": { 2490 + "node": ">=10" 2491 + }, 2492 + "funding": { 2493 + "url": "https://github.com/sponsors/sindresorhus" 2494 + } 2495 + }, 2496 + "node_modules/flat-cache": { 2497 + "version": "4.0.1", 2498 + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", 2499 + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", 2500 + "dev": true, 2501 + "dependencies": { 2502 + "flatted": "^3.2.9", 2503 + "keyv": "^4.5.4" 2504 + }, 2505 + "engines": { 2506 + "node": ">=16" 2507 + } 2508 + }, 2509 + "node_modules/flatted": { 2510 + "version": "3.3.1", 2511 + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", 2512 + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", 2513 + "dev": true 2514 + }, 2515 + "node_modules/foreground-child": { 2516 + "version": "3.3.0", 2517 + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", 2518 + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", 2519 + "dev": true, 2520 + "dependencies": { 2521 + "cross-spawn": "^7.0.0", 2522 + "signal-exit": "^4.0.1" 2523 + }, 2524 + "engines": { 2525 + "node": ">=14" 2526 + }, 2527 + "funding": { 2528 + "url": "https://github.com/sponsors/isaacs" 2529 + } 2530 + }, 2531 + "node_modules/fraction.js": { 2532 + "version": "4.3.7", 2533 + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", 2534 + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", 2535 + "dev": true, 2536 + "engines": { 2537 + "node": "*" 2538 + }, 2539 + "funding": { 2540 + "type": "patreon", 2541 + "url": "https://github.com/sponsors/rawify" 2542 + } 2543 + }, 2544 + "node_modules/fsevents": { 2545 + "version": "2.3.3", 2546 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 2547 + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 2548 + "dev": true, 2549 + "hasInstallScript": true, 2550 + "optional": true, 2551 + "os": [ 2552 + "darwin" 2553 + ], 2554 + "engines": { 2555 + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 2556 + } 2557 + }, 2558 + "node_modules/function-bind": { 2559 + "version": "1.1.2", 2560 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 2561 + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 2562 + "funding": { 2563 + "url": "https://github.com/sponsors/ljharb" 2564 + } 2565 + }, 2566 + "node_modules/gensync": { 2567 + "version": "1.0.0-beta.2", 2568 + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 2569 + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 2570 + "dev": true, 2571 + "engines": { 2572 + "node": ">=6.9.0" 2573 + } 2574 + }, 2575 + "node_modules/glob": { 2576 + "version": "10.4.5", 2577 + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", 2578 + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", 2579 + "dev": true, 2580 + "dependencies": { 2581 + "foreground-child": "^3.1.0", 2582 + "jackspeak": "^3.1.2", 2583 + "minimatch": "^9.0.4", 2584 + "minipass": "^7.1.2", 2585 + "package-json-from-dist": "^1.0.0", 2586 + "path-scurry": "^1.11.1" 2587 + }, 2588 + "bin": { 2589 + "glob": "dist/esm/bin.mjs" 2590 + }, 2591 + "funding": { 2592 + "url": "https://github.com/sponsors/isaacs" 2593 + } 2594 + }, 2595 + "node_modules/glob-parent": { 2596 + "version": "6.0.2", 2597 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 2598 + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 2599 + "dev": true, 2600 + "dependencies": { 2601 + "is-glob": "^4.0.3" 2602 + }, 2603 + "engines": { 2604 + "node": ">=10.13.0" 2605 + } 2606 + }, 2607 + "node_modules/glob/node_modules/brace-expansion": { 2608 + "version": "2.0.1", 2609 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 2610 + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 2611 + "dev": true, 2612 + "dependencies": { 2613 + "balanced-match": "^1.0.0" 2614 + } 2615 + }, 2616 + "node_modules/glob/node_modules/minimatch": { 2617 + "version": "9.0.5", 2618 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 2619 + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 2620 + "dev": true, 2621 + "dependencies": { 2622 + "brace-expansion": "^2.0.1" 2623 + }, 2624 + "engines": { 2625 + "node": ">=16 || 14 >=14.17" 2626 + }, 2627 + "funding": { 2628 + "url": "https://github.com/sponsors/isaacs" 2629 + } 2630 + }, 2631 + "node_modules/globals": { 2632 + "version": "15.11.0", 2633 + "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", 2634 + "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", 2635 + "dev": true, 2636 + "engines": { 2637 + "node": ">=18" 2638 + }, 2639 + "funding": { 2640 + "url": "https://github.com/sponsors/sindresorhus" 2641 + } 2642 + }, 2643 + "node_modules/graphemer": { 2644 + "version": "1.4.0", 2645 + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", 2646 + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", 2647 + "dev": true 2648 + }, 2649 + "node_modules/has-flag": { 2650 + "version": "3.0.0", 2651 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2652 + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 2653 + "engines": { 2654 + "node": ">=4" 2655 + } 2656 + }, 2657 + "node_modules/hasown": { 2658 + "version": "2.0.2", 2659 + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 2660 + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 2661 + "dependencies": { 2662 + "function-bind": "^1.1.2" 2663 + }, 2664 + "engines": { 2665 + "node": ">= 0.4" 2666 + } 2667 + }, 2668 + "node_modules/ignore": { 2669 + "version": "5.3.2", 2670 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", 2671 + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", 2672 + "dev": true, 2673 + "engines": { 2674 + "node": ">= 4" 2675 + } 2676 + }, 2677 + "node_modules/import-fresh": { 2678 + "version": "3.3.0", 2679 + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 2680 + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 2681 + "dependencies": { 2682 + "parent-module": "^1.0.0", 2683 + "resolve-from": "^4.0.0" 2684 + }, 2685 + "engines": { 2686 + "node": ">=6" 2687 + }, 2688 + "funding": { 2689 + "url": "https://github.com/sponsors/sindresorhus" 2690 + } 2691 + }, 2692 + "node_modules/imurmurhash": { 2693 + "version": "0.1.4", 2694 + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2695 + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 2696 + "dev": true, 2697 + "engines": { 2698 + "node": ">=0.8.19" 2699 + } 2700 + }, 2701 + "node_modules/is-arrayish": { 2702 + "version": "0.2.1", 2703 + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 2704 + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" 2705 + }, 2706 + "node_modules/is-binary-path": { 2707 + "version": "2.1.0", 2708 + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 2709 + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 2710 + "dev": true, 2711 + "dependencies": { 2712 + "binary-extensions": "^2.0.0" 2713 + }, 2714 + "engines": { 2715 + "node": ">=8" 2716 + } 2717 + }, 2718 + "node_modules/is-core-module": { 2719 + "version": "2.15.1", 2720 + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", 2721 + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", 2722 + "dependencies": { 2723 + "hasown": "^2.0.2" 2724 + }, 2725 + "engines": { 2726 + "node": ">= 0.4" 2727 + }, 2728 + "funding": { 2729 + "url": "https://github.com/sponsors/ljharb" 2730 + } 2731 + }, 2732 + "node_modules/is-extglob": { 2733 + "version": "2.1.1", 2734 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2735 + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 2736 + "dev": true, 2737 + "engines": { 2738 + "node": ">=0.10.0" 2739 + } 2740 + }, 2741 + "node_modules/is-fullwidth-code-point": { 2742 + "version": "3.0.0", 2743 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 2744 + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 2745 + "dev": true, 2746 + "engines": { 2747 + "node": ">=8" 2748 + } 2749 + }, 2750 + "node_modules/is-glob": { 2751 + "version": "4.0.3", 2752 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 2753 + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 2754 + "dev": true, 2755 + "dependencies": { 2756 + "is-extglob": "^2.1.1" 2757 + }, 2758 + "engines": { 2759 + "node": ">=0.10.0" 2760 + } 2761 + }, 2762 + "node_modules/is-number": { 2763 + "version": "7.0.0", 2764 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 2765 + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 2766 + "dev": true, 2767 + "engines": { 2768 + "node": ">=0.12.0" 2769 + } 2770 + }, 2771 + "node_modules/isexe": { 2772 + "version": "2.0.0", 2773 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2774 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 2775 + "dev": true 2776 + }, 2777 + "node_modules/jackspeak": { 2778 + "version": "3.4.3", 2779 + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", 2780 + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", 2781 + "dev": true, 2782 + "dependencies": { 2783 + "@isaacs/cliui": "^8.0.2" 2784 + }, 2785 + "funding": { 2786 + "url": "https://github.com/sponsors/isaacs" 2787 + }, 2788 + "optionalDependencies": { 2789 + "@pkgjs/parseargs": "^0.11.0" 2790 + } 2791 + }, 2792 + "node_modules/jiti": { 2793 + "version": "1.21.6", 2794 + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", 2795 + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", 2796 + "dev": true, 2797 + "bin": { 2798 + "jiti": "bin/jiti.js" 2799 + } 2800 + }, 2801 + "node_modules/js-tokens": { 2802 + "version": "4.0.0", 2803 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2804 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 2805 + }, 2806 + "node_modules/js-yaml": { 2807 + "version": "4.1.0", 2808 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 2809 + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 2810 + "dev": true, 2811 + "dependencies": { 2812 + "argparse": "^2.0.1" 2813 + }, 2814 + "bin": { 2815 + "js-yaml": "bin/js-yaml.js" 2816 + } 2817 + }, 2818 + "node_modules/jsesc": { 2819 + "version": "3.0.2", 2820 + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", 2821 + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", 2822 + "bin": { 2823 + "jsesc": "bin/jsesc" 2824 + }, 2825 + "engines": { 2826 + "node": ">=6" 2827 + } 2828 + }, 2829 + "node_modules/json-buffer": { 2830 + "version": "3.0.1", 2831 + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", 2832 + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", 2833 + "dev": true 2834 + }, 2835 + "node_modules/json-parse-even-better-errors": { 2836 + "version": "2.3.1", 2837 + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 2838 + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" 2839 + }, 2840 + "node_modules/json-schema-traverse": { 2841 + "version": "0.4.1", 2842 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2843 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 2844 + "dev": true 2845 + }, 2846 + "node_modules/json-stable-stringify-without-jsonify": { 2847 + "version": "1.0.1", 2848 + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 2849 + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 2850 + "dev": true 2851 + }, 2852 + "node_modules/json5": { 2853 + "version": "2.2.3", 2854 + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 2855 + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", 2856 + "dev": true, 2857 + "bin": { 2858 + "json5": "lib/cli.js" 2859 + }, 2860 + "engines": { 2861 + "node": ">=6" 2862 + } 2863 + }, 2864 + "node_modules/keyv": { 2865 + "version": "4.5.4", 2866 + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", 2867 + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", 2868 + "dev": true, 2869 + "dependencies": { 2870 + "json-buffer": "3.0.1" 2871 + } 2872 + }, 2873 + "node_modules/levn": { 2874 + "version": "0.4.1", 2875 + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 2876 + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 2877 + "dev": true, 2878 + "dependencies": { 2879 + "prelude-ls": "^1.2.1", 2880 + "type-check": "~0.4.0" 2881 + }, 2882 + "engines": { 2883 + "node": ">= 0.8.0" 2884 + } 2885 + }, 2886 + "node_modules/lilconfig": { 2887 + "version": "2.1.0", 2888 + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", 2889 + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", 2890 + "dev": true, 2891 + "engines": { 2892 + "node": ">=10" 2893 + } 2894 + }, 2895 + "node_modules/lines-and-columns": { 2896 + "version": "1.2.4", 2897 + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 2898 + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" 2899 + }, 2900 + "node_modules/locate-path": { 2901 + "version": "6.0.0", 2902 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 2903 + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 2904 + "dev": true, 2905 + "dependencies": { 2906 + "p-locate": "^5.0.0" 2907 + }, 2908 + "engines": { 2909 + "node": ">=10" 2910 + }, 2911 + "funding": { 2912 + "url": "https://github.com/sponsors/sindresorhus" 2913 + } 2914 + }, 2915 + "node_modules/lodash.merge": { 2916 + "version": "4.6.2", 2917 + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 2918 + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 2919 + "dev": true 2920 + }, 2921 + "node_modules/loose-envify": { 2922 + "version": "1.4.0", 2923 + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 2924 + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 2925 + "dependencies": { 2926 + "js-tokens": "^3.0.0 || ^4.0.0" 2927 + }, 2928 + "bin": { 2929 + "loose-envify": "cli.js" 2930 + } 2931 + }, 2932 + "node_modules/lru-cache": { 2933 + "version": "5.1.1", 2934 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 2935 + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 2936 + "dev": true, 2937 + "dependencies": { 2938 + "yallist": "^3.0.2" 2939 + } 2940 + }, 2941 + "node_modules/lucide-react": { 2942 + "version": "0.344.0", 2943 + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.344.0.tgz", 2944 + "integrity": "sha512-6YyBnn91GB45VuVT96bYCOKElbJzUHqp65vX8cDcu55MQL9T969v4dhGClpljamuI/+KMO9P6w9Acq1CVQGvIQ==", 2945 + "peerDependencies": { 2946 + "react": "^16.5.1 || ^17.0.0 || ^18.0.0" 2947 + } 2948 + }, 2949 + "node_modules/merge2": { 2950 + "version": "1.4.1", 2951 + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 2952 + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 2953 + "dev": true, 2954 + "engines": { 2955 + "node": ">= 8" 2956 + } 2957 + }, 2958 + "node_modules/micromatch": { 2959 + "version": "4.0.8", 2960 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 2961 + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 2962 + "dev": true, 2963 + "dependencies": { 2964 + "braces": "^3.0.3", 2965 + "picomatch": "^2.3.1" 2966 + }, 2967 + "engines": { 2968 + "node": ">=8.6" 2969 + } 2970 + }, 2971 + "node_modules/minimatch": { 2972 + "version": "3.1.2", 2973 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 2974 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 2975 + "dev": true, 2976 + "dependencies": { 2977 + "brace-expansion": "^1.1.7" 2978 + }, 2979 + "engines": { 2980 + "node": "*" 2981 + } 2982 + }, 2983 + "node_modules/minipass": { 2984 + "version": "7.1.2", 2985 + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", 2986 + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", 2987 + "dev": true, 2988 + "engines": { 2989 + "node": ">=16 || 14 >=14.17" 2990 + } 2991 + }, 2992 + "node_modules/ms": { 2993 + "version": "2.1.3", 2994 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 2995 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 2996 + }, 2997 + "node_modules/mz": { 2998 + "version": "2.7.0", 2999 + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", 3000 + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 3001 + "dev": true, 3002 + "dependencies": { 3003 + "any-promise": "^1.0.0", 3004 + "object-assign": "^4.0.1", 3005 + "thenify-all": "^1.0.0" 3006 + } 3007 + }, 3008 + "node_modules/nanoid": { 3009 + "version": "3.3.7", 3010 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", 3011 + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", 3012 + "dev": true, 3013 + "funding": [ 3014 + { 3015 + "type": "github", 3016 + "url": "https://github.com/sponsors/ai" 3017 + } 3018 + ], 3019 + "bin": { 3020 + "nanoid": "bin/nanoid.cjs" 3021 + }, 3022 + "engines": { 3023 + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 3024 + } 3025 + }, 3026 + "node_modules/natural-compare": { 3027 + "version": "1.4.0", 3028 + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 3029 + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 3030 + "dev": true 3031 + }, 3032 + "node_modules/node-releases": { 3033 + "version": "2.0.18", 3034 + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", 3035 + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", 3036 + "dev": true 3037 + }, 3038 + "node_modules/normalize-path": { 3039 + "version": "3.0.0", 3040 + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 3041 + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 3042 + "dev": true, 3043 + "engines": { 3044 + "node": ">=0.10.0" 3045 + } 3046 + }, 3047 + "node_modules/normalize-range": { 3048 + "version": "0.1.2", 3049 + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", 3050 + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", 3051 + "dev": true, 3052 + "engines": { 3053 + "node": ">=0.10.0" 3054 + } 3055 + }, 3056 + "node_modules/object-assign": { 3057 + "version": "4.1.1", 3058 + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 3059 + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 3060 + "dev": true, 3061 + "engines": { 3062 + "node": ">=0.10.0" 3063 + } 3064 + }, 3065 + "node_modules/object-hash": { 3066 + "version": "3.0.0", 3067 + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", 3068 + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", 3069 + "dev": true, 3070 + "engines": { 3071 + "node": ">= 6" 3072 + } 3073 + }, 3074 + "node_modules/optionator": { 3075 + "version": "0.9.4", 3076 + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", 3077 + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", 3078 + "dev": true, 3079 + "dependencies": { 3080 + "deep-is": "^0.1.3", 3081 + "fast-levenshtein": "^2.0.6", 3082 + "levn": "^0.4.1", 3083 + "prelude-ls": "^1.2.1", 3084 + "type-check": "^0.4.0", 3085 + "word-wrap": "^1.2.5" 3086 + }, 3087 + "engines": { 3088 + "node": ">= 0.8.0" 3089 + } 3090 + }, 3091 + "node_modules/p-limit": { 3092 + "version": "3.1.0", 3093 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 3094 + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 3095 + "dev": true, 3096 + "dependencies": { 3097 + "yocto-queue": "^0.1.0" 3098 + }, 3099 + "engines": { 3100 + "node": ">=10" 3101 + }, 3102 + "funding": { 3103 + "url": "https://github.com/sponsors/sindresorhus" 3104 + } 3105 + }, 3106 + "node_modules/p-locate": { 3107 + "version": "5.0.0", 3108 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 3109 + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 3110 + "dev": true, 3111 + "dependencies": { 3112 + "p-limit": "^3.0.2" 3113 + }, 3114 + "engines": { 3115 + "node": ">=10" 3116 + }, 3117 + "funding": { 3118 + "url": "https://github.com/sponsors/sindresorhus" 3119 + } 3120 + }, 3121 + "node_modules/package-json-from-dist": { 3122 + "version": "1.0.1", 3123 + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", 3124 + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", 3125 + "dev": true 3126 + }, 3127 + "node_modules/parent-module": { 3128 + "version": "1.0.1", 3129 + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 3130 + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 3131 + "dependencies": { 3132 + "callsites": "^3.0.0" 3133 + }, 3134 + "engines": { 3135 + "node": ">=6" 3136 + } 3137 + }, 3138 + "node_modules/parse-json": { 3139 + "version": "5.2.0", 3140 + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 3141 + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 3142 + "dependencies": { 3143 + "@babel/code-frame": "^7.0.0", 3144 + "error-ex": "^1.3.1", 3145 + "json-parse-even-better-errors": "^2.3.0", 3146 + "lines-and-columns": "^1.1.6" 3147 + }, 3148 + "engines": { 3149 + "node": ">=8" 3150 + }, 3151 + "funding": { 3152 + "url": "https://github.com/sponsors/sindresorhus" 3153 + } 3154 + }, 3155 + "node_modules/path-exists": { 3156 + "version": "4.0.0", 3157 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 3158 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 3159 + "dev": true, 3160 + "engines": { 3161 + "node": ">=8" 3162 + } 3163 + }, 3164 + "node_modules/path-key": { 3165 + "version": "3.1.1", 3166 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 3167 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 3168 + "dev": true, 3169 + "engines": { 3170 + "node": ">=8" 3171 + } 3172 + }, 3173 + "node_modules/path-parse": { 3174 + "version": "1.0.7", 3175 + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 3176 + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" 3177 + }, 3178 + "node_modules/path-scurry": { 3179 + "version": "1.11.1", 3180 + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", 3181 + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", 3182 + "dev": true, 3183 + "dependencies": { 3184 + "lru-cache": "^10.2.0", 3185 + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" 3186 + }, 3187 + "engines": { 3188 + "node": ">=16 || 14 >=14.18" 3189 + }, 3190 + "funding": { 3191 + "url": "https://github.com/sponsors/isaacs" 3192 + } 3193 + }, 3194 + "node_modules/path-scurry/node_modules/lru-cache": { 3195 + "version": "10.4.3", 3196 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", 3197 + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", 3198 + "dev": true 3199 + }, 3200 + "node_modules/path-type": { 3201 + "version": "4.0.0", 3202 + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 3203 + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 3204 + "engines": { 3205 + "node": ">=8" 3206 + } 3207 + }, 3208 + "node_modules/picocolors": { 3209 + "version": "1.1.0", 3210 + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", 3211 + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" 3212 + }, 3213 + "node_modules/picomatch": { 3214 + "version": "2.3.1", 3215 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 3216 + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 3217 + "dev": true, 3218 + "engines": { 3219 + "node": ">=8.6" 3220 + }, 3221 + "funding": { 3222 + "url": "https://github.com/sponsors/jonschlinkert" 3223 + } 3224 + }, 3225 + "node_modules/pify": { 3226 + "version": "2.3.0", 3227 + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 3228 + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", 3229 + "dev": true, 3230 + "engines": { 3231 + "node": ">=0.10.0" 3232 + } 3233 + }, 3234 + "node_modules/pirates": { 3235 + "version": "4.0.6", 3236 + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", 3237 + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", 3238 + "dev": true, 3239 + "engines": { 3240 + "node": ">= 6" 3241 + } 3242 + }, 3243 + "node_modules/postcss": { 3244 + "version": "8.4.47", 3245 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", 3246 + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", 3247 + "dev": true, 3248 + "funding": [ 3249 + { 3250 + "type": "opencollective", 3251 + "url": "https://opencollective.com/postcss/" 3252 + }, 3253 + { 3254 + "type": "tidelift", 3255 + "url": "https://tidelift.com/funding/github/npm/postcss" 3256 + }, 3257 + { 3258 + "type": "github", 3259 + "url": "https://github.com/sponsors/ai" 3260 + } 3261 + ], 3262 + "dependencies": { 3263 + "nanoid": "^3.3.7", 3264 + "picocolors": "^1.1.0", 3265 + "source-map-js": "^1.2.1" 3266 + }, 3267 + "engines": { 3268 + "node": "^10 || ^12 || >=14" 3269 + } 3270 + }, 3271 + "node_modules/postcss-import": { 3272 + "version": "15.1.0", 3273 + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", 3274 + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", 3275 + "dev": true, 3276 + "dependencies": { 3277 + "postcss-value-parser": "^4.0.0", 3278 + "read-cache": "^1.0.0", 3279 + "resolve": "^1.1.7" 3280 + }, 3281 + "engines": { 3282 + "node": ">=14.0.0" 3283 + }, 3284 + "peerDependencies": { 3285 + "postcss": "^8.0.0" 3286 + } 3287 + }, 3288 + "node_modules/postcss-js": { 3289 + "version": "4.0.1", 3290 + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", 3291 + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", 3292 + "dev": true, 3293 + "dependencies": { 3294 + "camelcase-css": "^2.0.1" 3295 + }, 3296 + "engines": { 3297 + "node": "^12 || ^14 || >= 16" 3298 + }, 3299 + "funding": { 3300 + "type": "opencollective", 3301 + "url": "https://opencollective.com/postcss/" 3302 + }, 3303 + "peerDependencies": { 3304 + "postcss": "^8.4.21" 3305 + } 3306 + }, 3307 + "node_modules/postcss-load-config": { 3308 + "version": "4.0.2", 3309 + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", 3310 + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", 3311 + "dev": true, 3312 + "funding": [ 3313 + { 3314 + "type": "opencollective", 3315 + "url": "https://opencollective.com/postcss/" 3316 + }, 3317 + { 3318 + "type": "github", 3319 + "url": "https://github.com/sponsors/ai" 3320 + } 3321 + ], 3322 + "dependencies": { 3323 + "lilconfig": "^3.0.0", 3324 + "yaml": "^2.3.4" 3325 + }, 3326 + "engines": { 3327 + "node": ">= 14" 3328 + }, 3329 + "peerDependencies": { 3330 + "postcss": ">=8.0.9", 3331 + "ts-node": ">=9.0.0" 3332 + }, 3333 + "peerDependenciesMeta": { 3334 + "postcss": { 3335 + "optional": true 3336 + }, 3337 + "ts-node": { 3338 + "optional": true 3339 + } 3340 + } 3341 + }, 3342 + "node_modules/postcss-load-config/node_modules/lilconfig": { 3343 + "version": "3.1.2", 3344 + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", 3345 + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", 3346 + "dev": true, 3347 + "engines": { 3348 + "node": ">=14" 3349 + }, 3350 + "funding": { 3351 + "url": "https://github.com/sponsors/antonk52" 3352 + } 3353 + }, 3354 + "node_modules/postcss-nested": { 3355 + "version": "6.2.0", 3356 + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", 3357 + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", 3358 + "dev": true, 3359 + "funding": [ 3360 + { 3361 + "type": "opencollective", 3362 + "url": "https://opencollective.com/postcss/" 3363 + }, 3364 + { 3365 + "type": "github", 3366 + "url": "https://github.com/sponsors/ai" 3367 + } 3368 + ], 3369 + "dependencies": { 3370 + "postcss-selector-parser": "^6.1.1" 3371 + }, 3372 + "engines": { 3373 + "node": ">=12.0" 3374 + }, 3375 + "peerDependencies": { 3376 + "postcss": "^8.2.14" 3377 + } 3378 + }, 3379 + "node_modules/postcss-selector-parser": { 3380 + "version": "6.1.2", 3381 + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", 3382 + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", 3383 + "dev": true, 3384 + "dependencies": { 3385 + "cssesc": "^3.0.0", 3386 + "util-deprecate": "^1.0.2" 3387 + }, 3388 + "engines": { 3389 + "node": ">=4" 3390 + } 3391 + }, 3392 + "node_modules/postcss-value-parser": { 3393 + "version": "4.2.0", 3394 + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 3395 + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 3396 + "dev": true 3397 + }, 3398 + "node_modules/prelude-ls": { 3399 + "version": "1.2.1", 3400 + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 3401 + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 3402 + "dev": true, 3403 + "engines": { 3404 + "node": ">= 0.8.0" 3405 + } 3406 + }, 3407 + "node_modules/punycode": { 3408 + "version": "2.3.1", 3409 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", 3410 + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", 3411 + "dev": true, 3412 + "engines": { 3413 + "node": ">=6" 3414 + } 3415 + }, 3416 + "node_modules/queue-microtask": { 3417 + "version": "1.2.3", 3418 + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 3419 + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 3420 + "dev": true, 3421 + "funding": [ 3422 + { 3423 + "type": "github", 3424 + "url": "https://github.com/sponsors/feross" 3425 + }, 3426 + { 3427 + "type": "patreon", 3428 + "url": "https://www.patreon.com/feross" 3429 + }, 3430 + { 3431 + "type": "consulting", 3432 + "url": "https://feross.org/support" 3433 + } 3434 + ] 3435 + }, 3436 + "node_modules/react": { 3437 + "version": "18.3.1", 3438 + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", 3439 + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", 3440 + "dependencies": { 3441 + "loose-envify": "^1.1.0" 3442 + }, 3443 + "engines": { 3444 + "node": ">=0.10.0" 3445 + } 3446 + }, 3447 + "node_modules/react-crossfade-simple": { 3448 + "version": "1.0.7", 3449 + "resolved": "https://registry.npmjs.org/react-crossfade-simple/-/react-crossfade-simple-1.0.7.tgz", 3450 + "integrity": "sha512-T/FR4S53E6jukgSBBU+3ud1j/Mz8ySK09hwLAwjsISCnyOdRXCCAwv4x9FFvg8XNgagYcjhH8N3nB/fv3R4fNQ==", 3451 + "dependencies": { 3452 + "@emotion/css": "^11.10.0", 3453 + "clsx": "^1.2.1" 3454 + }, 3455 + "engines": { 3456 + "node": ">=6" 3457 + }, 3458 + "peerDependencies": { 3459 + "react": ">=17.0.0" 3460 + } 3461 + }, 3462 + "node_modules/react-dom": { 3463 + "version": "18.3.1", 3464 + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", 3465 + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", 3466 + "dependencies": { 3467 + "loose-envify": "^1.1.0", 3468 + "scheduler": "^0.23.2" 3469 + }, 3470 + "peerDependencies": { 3471 + "react": "^18.3.1" 3472 + } 3473 + }, 3474 + "node_modules/react-icons": { 3475 + "version": "5.3.0", 3476 + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz", 3477 + "integrity": "sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg==", 3478 + "peerDependencies": { 3479 + "react": "*" 3480 + } 3481 + }, 3482 + "node_modules/react-refresh": { 3483 + "version": "0.14.2", 3484 + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", 3485 + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", 3486 + "dev": true, 3487 + "engines": { 3488 + "node": ">=0.10.0" 3489 + } 3490 + }, 3491 + "node_modules/read-cache": { 3492 + "version": "1.0.0", 3493 + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", 3494 + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", 3495 + "dev": true, 3496 + "dependencies": { 3497 + "pify": "^2.3.0" 3498 + } 3499 + }, 3500 + "node_modules/readdirp": { 3501 + "version": "3.6.0", 3502 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 3503 + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 3504 + "dev": true, 3505 + "dependencies": { 3506 + "picomatch": "^2.2.1" 3507 + }, 3508 + "engines": { 3509 + "node": ">=8.10.0" 3510 + } 3511 + }, 3512 + "node_modules/regenerator-runtime": { 3513 + "version": "0.14.1", 3514 + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", 3515 + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" 3516 + }, 3517 + "node_modules/resolve": { 3518 + "version": "1.22.8", 3519 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", 3520 + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", 3521 + "dependencies": { 3522 + "is-core-module": "^2.13.0", 3523 + "path-parse": "^1.0.7", 3524 + "supports-preserve-symlinks-flag": "^1.0.0" 3525 + }, 3526 + "bin": { 3527 + "resolve": "bin/resolve" 3528 + }, 3529 + "funding": { 3530 + "url": "https://github.com/sponsors/ljharb" 3531 + } 3532 + }, 3533 + "node_modules/resolve-from": { 3534 + "version": "4.0.0", 3535 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 3536 + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 3537 + "engines": { 3538 + "node": ">=4" 3539 + } 3540 + }, 3541 + "node_modules/reusify": { 3542 + "version": "1.0.4", 3543 + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 3544 + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 3545 + "dev": true, 3546 + "engines": { 3547 + "iojs": ">=1.0.0", 3548 + "node": ">=0.10.0" 3549 + } 3550 + }, 3551 + "node_modules/rollup": { 3552 + "version": "4.24.0", 3553 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", 3554 + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", 3555 + "dev": true, 3556 + "dependencies": { 3557 + "@types/estree": "1.0.6" 3558 + }, 3559 + "bin": { 3560 + "rollup": "dist/bin/rollup" 3561 + }, 3562 + "engines": { 3563 + "node": ">=18.0.0", 3564 + "npm": ">=8.0.0" 3565 + }, 3566 + "optionalDependencies": { 3567 + "@rollup/rollup-android-arm-eabi": "4.24.0", 3568 + "@rollup/rollup-android-arm64": "4.24.0", 3569 + "@rollup/rollup-darwin-arm64": "4.24.0", 3570 + "@rollup/rollup-darwin-x64": "4.24.0", 3571 + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", 3572 + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", 3573 + "@rollup/rollup-linux-arm64-gnu": "4.24.0", 3574 + "@rollup/rollup-linux-arm64-musl": "4.24.0", 3575 + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", 3576 + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", 3577 + "@rollup/rollup-linux-s390x-gnu": "4.24.0", 3578 + "@rollup/rollup-linux-x64-gnu": "4.24.0", 3579 + "@rollup/rollup-linux-x64-musl": "4.24.0", 3580 + "@rollup/rollup-win32-arm64-msvc": "4.24.0", 3581 + "@rollup/rollup-win32-ia32-msvc": "4.24.0", 3582 + "@rollup/rollup-win32-x64-msvc": "4.24.0", 3583 + "fsevents": "~2.3.2" 3584 + } 3585 + }, 3586 + "node_modules/run-parallel": { 3587 + "version": "1.2.0", 3588 + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 3589 + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 3590 + "dev": true, 3591 + "funding": [ 3592 + { 3593 + "type": "github", 3594 + "url": "https://github.com/sponsors/feross" 3595 + }, 3596 + { 3597 + "type": "patreon", 3598 + "url": "https://www.patreon.com/feross" 3599 + }, 3600 + { 3601 + "type": "consulting", 3602 + "url": "https://feross.org/support" 3603 + } 3604 + ], 3605 + "dependencies": { 3606 + "queue-microtask": "^1.2.2" 3607 + } 3608 + }, 3609 + "node_modules/scheduler": { 3610 + "version": "0.23.2", 3611 + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", 3612 + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", 3613 + "dependencies": { 3614 + "loose-envify": "^1.1.0" 3615 + } 3616 + }, 3617 + "node_modules/semver": { 3618 + "version": "6.3.1", 3619 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 3620 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 3621 + "dev": true, 3622 + "bin": { 3623 + "semver": "bin/semver.js" 3624 + } 3625 + }, 3626 + "node_modules/shebang-command": { 3627 + "version": "2.0.0", 3628 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 3629 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 3630 + "dev": true, 3631 + "dependencies": { 3632 + "shebang-regex": "^3.0.0" 3633 + }, 3634 + "engines": { 3635 + "node": ">=8" 3636 + } 3637 + }, 3638 + "node_modules/shebang-regex": { 3639 + "version": "3.0.0", 3640 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 3641 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 3642 + "dev": true, 3643 + "engines": { 3644 + "node": ">=8" 3645 + } 3646 + }, 3647 + "node_modules/signal-exit": { 3648 + "version": "4.1.0", 3649 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 3650 + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 3651 + "dev": true, 3652 + "engines": { 3653 + "node": ">=14" 3654 + }, 3655 + "funding": { 3656 + "url": "https://github.com/sponsors/isaacs" 3657 + } 3658 + }, 3659 + "node_modules/source-map": { 3660 + "version": "0.5.7", 3661 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 3662 + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", 3663 + "engines": { 3664 + "node": ">=0.10.0" 3665 + } 3666 + }, 3667 + "node_modules/source-map-js": { 3668 + "version": "1.2.1", 3669 + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 3670 + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 3671 + "dev": true, 3672 + "engines": { 3673 + "node": ">=0.10.0" 3674 + } 3675 + }, 3676 + "node_modules/string-width": { 3677 + "version": "5.1.2", 3678 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 3679 + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 3680 + "dev": true, 3681 + "dependencies": { 3682 + "eastasianwidth": "^0.2.0", 3683 + "emoji-regex": "^9.2.2", 3684 + "strip-ansi": "^7.0.1" 3685 + }, 3686 + "engines": { 3687 + "node": ">=12" 3688 + }, 3689 + "funding": { 3690 + "url": "https://github.com/sponsors/sindresorhus" 3691 + } 3692 + }, 3693 + "node_modules/string-width-cjs": { 3694 + "name": "string-width", 3695 + "version": "4.2.3", 3696 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 3697 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 3698 + "dev": true, 3699 + "dependencies": { 3700 + "emoji-regex": "^8.0.0", 3701 + "is-fullwidth-code-point": "^3.0.0", 3702 + "strip-ansi": "^6.0.1" 3703 + }, 3704 + "engines": { 3705 + "node": ">=8" 3706 + } 3707 + }, 3708 + "node_modules/string-width-cjs/node_modules/ansi-regex": { 3709 + "version": "5.0.1", 3710 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 3711 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 3712 + "dev": true, 3713 + "engines": { 3714 + "node": ">=8" 3715 + } 3716 + }, 3717 + "node_modules/string-width-cjs/node_modules/emoji-regex": { 3718 + "version": "8.0.0", 3719 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 3720 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 3721 + "dev": true 3722 + }, 3723 + "node_modules/string-width-cjs/node_modules/strip-ansi": { 3724 + "version": "6.0.1", 3725 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3726 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3727 + "dev": true, 3728 + "dependencies": { 3729 + "ansi-regex": "^5.0.1" 3730 + }, 3731 + "engines": { 3732 + "node": ">=8" 3733 + } 3734 + }, 3735 + "node_modules/strip-ansi": { 3736 + "version": "7.1.0", 3737 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 3738 + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 3739 + "dev": true, 3740 + "dependencies": { 3741 + "ansi-regex": "^6.0.1" 3742 + }, 3743 + "engines": { 3744 + "node": ">=12" 3745 + }, 3746 + "funding": { 3747 + "url": "https://github.com/chalk/strip-ansi?sponsor=1" 3748 + } 3749 + }, 3750 + "node_modules/strip-ansi-cjs": { 3751 + "name": "strip-ansi", 3752 + "version": "6.0.1", 3753 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3754 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3755 + "dev": true, 3756 + "dependencies": { 3757 + "ansi-regex": "^5.0.1" 3758 + }, 3759 + "engines": { 3760 + "node": ">=8" 3761 + } 3762 + }, 3763 + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { 3764 + "version": "5.0.1", 3765 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 3766 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 3767 + "dev": true, 3768 + "engines": { 3769 + "node": ">=8" 3770 + } 3771 + }, 3772 + "node_modules/strip-json-comments": { 3773 + "version": "3.1.1", 3774 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 3775 + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 3776 + "dev": true, 3777 + "engines": { 3778 + "node": ">=8" 3779 + }, 3780 + "funding": { 3781 + "url": "https://github.com/sponsors/sindresorhus" 3782 + } 3783 + }, 3784 + "node_modules/stylis": { 3785 + "version": "4.2.0", 3786 + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", 3787 + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" 3788 + }, 3789 + "node_modules/sucrase": { 3790 + "version": "3.35.0", 3791 + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", 3792 + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", 3793 + "dev": true, 3794 + "dependencies": { 3795 + "@jridgewell/gen-mapping": "^0.3.2", 3796 + "commander": "^4.0.0", 3797 + "glob": "^10.3.10", 3798 + "lines-and-columns": "^1.1.6", 3799 + "mz": "^2.7.0", 3800 + "pirates": "^4.0.1", 3801 + "ts-interface-checker": "^0.1.9" 3802 + }, 3803 + "bin": { 3804 + "sucrase": "bin/sucrase", 3805 + "sucrase-node": "bin/sucrase-node" 3806 + }, 3807 + "engines": { 3808 + "node": ">=16 || 14 >=14.17" 3809 + } 3810 + }, 3811 + "node_modules/supports-color": { 3812 + "version": "5.5.0", 3813 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 3814 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 3815 + "dependencies": { 3816 + "has-flag": "^3.0.0" 3817 + }, 3818 + "engines": { 3819 + "node": ">=4" 3820 + } 3821 + }, 3822 + "node_modules/supports-preserve-symlinks-flag": { 3823 + "version": "1.0.0", 3824 + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 3825 + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 3826 + "engines": { 3827 + "node": ">= 0.4" 3828 + }, 3829 + "funding": { 3830 + "url": "https://github.com/sponsors/ljharb" 3831 + } 3832 + }, 3833 + "node_modules/tailwindcss": { 3834 + "version": "3.4.13", 3835 + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz", 3836 + "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==", 3837 + "dev": true, 3838 + "dependencies": { 3839 + "@alloc/quick-lru": "^5.2.0", 3840 + "arg": "^5.0.2", 3841 + "chokidar": "^3.5.3", 3842 + "didyoumean": "^1.2.2", 3843 + "dlv": "^1.1.3", 3844 + "fast-glob": "^3.3.0", 3845 + "glob-parent": "^6.0.2", 3846 + "is-glob": "^4.0.3", 3847 + "jiti": "^1.21.0", 3848 + "lilconfig": "^2.1.0", 3849 + "micromatch": "^4.0.5", 3850 + "normalize-path": "^3.0.0", 3851 + "object-hash": "^3.0.0", 3852 + "picocolors": "^1.0.0", 3853 + "postcss": "^8.4.23", 3854 + "postcss-import": "^15.1.0", 3855 + "postcss-js": "^4.0.1", 3856 + "postcss-load-config": "^4.0.1", 3857 + "postcss-nested": "^6.0.1", 3858 + "postcss-selector-parser": "^6.0.11", 3859 + "resolve": "^1.22.2", 3860 + "sucrase": "^3.32.0" 3861 + }, 3862 + "bin": { 3863 + "tailwind": "lib/cli.js", 3864 + "tailwindcss": "lib/cli.js" 3865 + }, 3866 + "engines": { 3867 + "node": ">=14.0.0" 3868 + } 3869 + }, 3870 + "node_modules/text-table": { 3871 + "version": "0.2.0", 3872 + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 3873 + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", 3874 + "dev": true 3875 + }, 3876 + "node_modules/thenify": { 3877 + "version": "3.3.1", 3878 + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", 3879 + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", 3880 + "dev": true, 3881 + "dependencies": { 3882 + "any-promise": "^1.0.0" 3883 + } 3884 + }, 3885 + "node_modules/thenify-all": { 3886 + "version": "1.6.0", 3887 + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", 3888 + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", 3889 + "dev": true, 3890 + "dependencies": { 3891 + "thenify": ">= 3.1.0 < 4" 3892 + }, 3893 + "engines": { 3894 + "node": ">=0.8" 3895 + } 3896 + }, 3897 + "node_modules/to-fast-properties": { 3898 + "version": "2.0.0", 3899 + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 3900 + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", 3901 + "engines": { 3902 + "node": ">=4" 3903 + } 3904 + }, 3905 + "node_modules/to-regex-range": { 3906 + "version": "5.0.1", 3907 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 3908 + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 3909 + "dev": true, 3910 + "dependencies": { 3911 + "is-number": "^7.0.0" 3912 + }, 3913 + "engines": { 3914 + "node": ">=8.0" 3915 + } 3916 + }, 3917 + "node_modules/ts-api-utils": { 3918 + "version": "1.3.0", 3919 + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", 3920 + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", 3921 + "dev": true, 3922 + "engines": { 3923 + "node": ">=16" 3924 + }, 3925 + "peerDependencies": { 3926 + "typescript": ">=4.2.0" 3927 + } 3928 + }, 3929 + "node_modules/ts-interface-checker": { 3930 + "version": "0.1.13", 3931 + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", 3932 + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", 3933 + "dev": true 3934 + }, 3935 + "node_modules/type-check": { 3936 + "version": "0.4.0", 3937 + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 3938 + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 3939 + "dev": true, 3940 + "dependencies": { 3941 + "prelude-ls": "^1.2.1" 3942 + }, 3943 + "engines": { 3944 + "node": ">= 0.8.0" 3945 + } 3946 + }, 3947 + "node_modules/typescript": { 3948 + "version": "5.6.3", 3949 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", 3950 + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", 3951 + "dev": true, 3952 + "bin": { 3953 + "tsc": "bin/tsc", 3954 + "tsserver": "bin/tsserver" 3955 + }, 3956 + "engines": { 3957 + "node": ">=14.17" 3958 + } 3959 + }, 3960 + "node_modules/typescript-eslint": { 3961 + "version": "8.8.1", 3962 + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.8.1.tgz", 3963 + "integrity": "sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==", 3964 + "dev": true, 3965 + "dependencies": { 3966 + "@typescript-eslint/eslint-plugin": "8.8.1", 3967 + "@typescript-eslint/parser": "8.8.1", 3968 + "@typescript-eslint/utils": "8.8.1" 3969 + }, 3970 + "engines": { 3971 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3972 + }, 3973 + "funding": { 3974 + "type": "opencollective", 3975 + "url": "https://opencollective.com/typescript-eslint" 3976 + }, 3977 + "peerDependenciesMeta": { 3978 + "typescript": { 3979 + "optional": true 3980 + } 3981 + } 3982 + }, 3983 + "node_modules/update-browserslist-db": { 3984 + "version": "1.1.1", 3985 + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", 3986 + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", 3987 + "dev": true, 3988 + "funding": [ 3989 + { 3990 + "type": "opencollective", 3991 + "url": "https://opencollective.com/browserslist" 3992 + }, 3993 + { 3994 + "type": "tidelift", 3995 + "url": "https://tidelift.com/funding/github/npm/browserslist" 3996 + }, 3997 + { 3998 + "type": "github", 3999 + "url": "https://github.com/sponsors/ai" 4000 + } 4001 + ], 4002 + "dependencies": { 4003 + "escalade": "^3.2.0", 4004 + "picocolors": "^1.1.0" 4005 + }, 4006 + "bin": { 4007 + "update-browserslist-db": "cli.js" 4008 + }, 4009 + "peerDependencies": { 4010 + "browserslist": ">= 4.21.0" 4011 + } 4012 + }, 4013 + "node_modules/uri-js": { 4014 + "version": "4.4.1", 4015 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 4016 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 4017 + "dev": true, 4018 + "dependencies": { 4019 + "punycode": "^2.1.0" 4020 + } 4021 + }, 4022 + "node_modules/util-deprecate": { 4023 + "version": "1.0.2", 4024 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4025 + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 4026 + "dev": true 4027 + }, 4028 + "node_modules/vite": { 4029 + "version": "5.4.8", 4030 + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", 4031 + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", 4032 + "dev": true, 4033 + "dependencies": { 4034 + "esbuild": "^0.21.3", 4035 + "postcss": "^8.4.43", 4036 + "rollup": "^4.20.0" 4037 + }, 4038 + "bin": { 4039 + "vite": "bin/vite.js" 4040 + }, 4041 + "engines": { 4042 + "node": "^18.0.0 || >=20.0.0" 4043 + }, 4044 + "funding": { 4045 + "url": "https://github.com/vitejs/vite?sponsor=1" 4046 + }, 4047 + "optionalDependencies": { 4048 + "fsevents": "~2.3.3" 4049 + }, 4050 + "peerDependencies": { 4051 + "@types/node": "^18.0.0 || >=20.0.0", 4052 + "less": "*", 4053 + "lightningcss": "^1.21.0", 4054 + "sass": "*", 4055 + "sass-embedded": "*", 4056 + "stylus": "*", 4057 + "sugarss": "*", 4058 + "terser": "^5.4.0" 4059 + }, 4060 + "peerDependenciesMeta": { 4061 + "@types/node": { 4062 + "optional": true 4063 + }, 4064 + "less": { 4065 + "optional": true 4066 + }, 4067 + "lightningcss": { 4068 + "optional": true 4069 + }, 4070 + "sass": { 4071 + "optional": true 4072 + }, 4073 + "sass-embedded": { 4074 + "optional": true 4075 + }, 4076 + "stylus": { 4077 + "optional": true 4078 + }, 4079 + "sugarss": { 4080 + "optional": true 4081 + }, 4082 + "terser": { 4083 + "optional": true 4084 + } 4085 + } 4086 + }, 4087 + "node_modules/which": { 4088 + "version": "2.0.2", 4089 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 4090 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 4091 + "dev": true, 4092 + "dependencies": { 4093 + "isexe": "^2.0.0" 4094 + }, 4095 + "bin": { 4096 + "node-which": "bin/node-which" 4097 + }, 4098 + "engines": { 4099 + "node": ">= 8" 4100 + } 4101 + }, 4102 + "node_modules/word-wrap": { 4103 + "version": "1.2.5", 4104 + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", 4105 + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", 4106 + "dev": true, 4107 + "engines": { 4108 + "node": ">=0.10.0" 4109 + } 4110 + }, 4111 + "node_modules/wrap-ansi": { 4112 + "version": "8.1.0", 4113 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 4114 + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 4115 + "dev": true, 4116 + "dependencies": { 4117 + "ansi-styles": "^6.1.0", 4118 + "string-width": "^5.0.1", 4119 + "strip-ansi": "^7.0.1" 4120 + }, 4121 + "engines": { 4122 + "node": ">=12" 4123 + }, 4124 + "funding": { 4125 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 4126 + } 4127 + }, 4128 + "node_modules/wrap-ansi-cjs": { 4129 + "name": "wrap-ansi", 4130 + "version": "7.0.0", 4131 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 4132 + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 4133 + "dev": true, 4134 + "dependencies": { 4135 + "ansi-styles": "^4.0.0", 4136 + "string-width": "^4.1.0", 4137 + "strip-ansi": "^6.0.0" 4138 + }, 4139 + "engines": { 4140 + "node": ">=10" 4141 + }, 4142 + "funding": { 4143 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 4144 + } 4145 + }, 4146 + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { 4147 + "version": "5.0.1", 4148 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 4149 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 4150 + "dev": true, 4151 + "engines": { 4152 + "node": ">=8" 4153 + } 4154 + }, 4155 + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { 4156 + "version": "4.3.0", 4157 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 4158 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 4159 + "dev": true, 4160 + "dependencies": { 4161 + "color-convert": "^2.0.1" 4162 + }, 4163 + "engines": { 4164 + "node": ">=8" 4165 + }, 4166 + "funding": { 4167 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 4168 + } 4169 + }, 4170 + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { 4171 + "version": "2.0.1", 4172 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 4173 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 4174 + "dev": true, 4175 + "dependencies": { 4176 + "color-name": "~1.1.4" 4177 + }, 4178 + "engines": { 4179 + "node": ">=7.0.0" 4180 + } 4181 + }, 4182 + "node_modules/wrap-ansi-cjs/node_modules/color-name": { 4183 + "version": "1.1.4", 4184 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 4185 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 4186 + "dev": true 4187 + }, 4188 + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { 4189 + "version": "8.0.0", 4190 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 4191 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 4192 + "dev": true 4193 + }, 4194 + "node_modules/wrap-ansi-cjs/node_modules/string-width": { 4195 + "version": "4.2.3", 4196 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 4197 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 4198 + "dev": true, 4199 + "dependencies": { 4200 + "emoji-regex": "^8.0.0", 4201 + "is-fullwidth-code-point": "^3.0.0", 4202 + "strip-ansi": "^6.0.1" 4203 + }, 4204 + "engines": { 4205 + "node": ">=8" 4206 + } 4207 + }, 4208 + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { 4209 + "version": "6.0.1", 4210 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 4211 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 4212 + "dev": true, 4213 + "dependencies": { 4214 + "ansi-regex": "^5.0.1" 4215 + }, 4216 + "engines": { 4217 + "node": ">=8" 4218 + } 4219 + }, 4220 + "node_modules/wrap-ansi/node_modules/ansi-styles": { 4221 + "version": "6.2.1", 4222 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 4223 + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 4224 + "dev": true, 4225 + "engines": { 4226 + "node": ">=12" 4227 + }, 4228 + "funding": { 4229 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 4230 + } 4231 + }, 4232 + "node_modules/yallist": { 4233 + "version": "3.1.1", 4234 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 4235 + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", 4236 + "dev": true 4237 + }, 4238 + "node_modules/yaml": { 4239 + "version": "2.5.1", 4240 + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", 4241 + "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", 4242 + "dev": true, 4243 + "bin": { 4244 + "yaml": "bin.mjs" 4245 + }, 4246 + "engines": { 4247 + "node": ">= 14" 4248 + } 4249 + }, 4250 + "node_modules/yocto-queue": { 4251 + "version": "0.1.0", 4252 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 4253 + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 4254 + "dev": true, 4255 + "engines": { 4256 + "node": ">=10" 4257 + }, 4258 + "funding": { 4259 + "url": "https://github.com/sponsors/sindresorhus" 4260 + } 4261 + } 4262 + } 4263 + }
+35
package.json
··· 1 + { 2 + "name": "vite-react-typescript-starter", 3 + "private": true, 4 + "version": "0.0.0", 5 + "type": "module", 6 + "scripts": { 7 + "dev": "vite", 8 + "build": "vite build", 9 + "lint": "eslint .", 10 + "preview": "vite preview" 11 + }, 12 + "dependencies": { 13 + "lucide-react": "^0.344.0", 14 + "react": "^18.3.1", 15 + "react-crossfade-simple": "^1.0.7", 16 + "react-dom": "^18.3.1", 17 + "react-icons": "^5.3.0" 18 + }, 19 + "devDependencies": { 20 + "@eslint/js": "^9.9.1", 21 + "@types/react": "^18.3.5", 22 + "@types/react-dom": "^18.3.0", 23 + "@vitejs/plugin-react": "^4.3.1", 24 + "autoprefixer": "^10.4.18", 25 + "eslint": "^9.9.1", 26 + "eslint-plugin-react-hooks": "^5.1.0-rc.0", 27 + "eslint-plugin-react-refresh": "^0.4.11", 28 + "globals": "^15.9.0", 29 + "postcss": "^8.4.35", 30 + "tailwindcss": "^3.4.1", 31 + "typescript": "^5.5.3", 32 + "typescript-eslint": "^8.3.0", 33 + "vite": "^5.4.2" 34 + } 35 + }
+6
postcss.config.js
··· 1 + export default { 2 + plugins: { 3 + tailwindcss: {}, 4 + autoprefixer: {}, 5 + }, 6 + };
+198
src/App.tsx
··· 1 + import { useState, useEffect } from 'react'; 2 + import { 3 + Disc2, 4 + Music2, 5 + Radio, 6 + AudioLines, 7 + Mail, 8 + BarChart3, 9 + Users, 10 + BoomBox, 11 + Sparkles, 12 + Share2, 13 + ChevronDown, 14 + } from 'lucide-react'; 15 + import { ThemeToggle } from './components/ThemeToggle'; 16 + import { FeatureCard } from './components/FeatureCard'; 17 + import { CrossFade } from 'react-crossfade-simple'; 18 + 19 + import { SiDiscord, SiBluesky, SiGithub } from 'react-icons/si'; 20 + 21 + function App() { 22 + const [email, setEmail] = useState(''); 23 + const [isSubmitted, setIsSubmitted] = useState(false); 24 + const [currentIcon, setCurrentIcon] = useState(0); 25 + const [isDark, setIsDark] = useState(() => { 26 + if (typeof window !== 'undefined') { 27 + return window.matchMedia('(prefers-color-scheme: dark)').matches; 28 + } 29 + return true; 30 + }); 31 + 32 + const icons = [ 33 + <Music2 className="w-6 h-6" key="music" />, 34 + <Radio className="w-6 h-6" key="radio" />, 35 + <AudioLines className="w-6 h-6" key="lines" />, 36 + ]; 37 + 38 + const features = [ 39 + { 40 + title: 'Own your data', 41 + description: 42 + 'Built on ATProto, you can take control of your sound, connect with your audience, and share your tastes with the world.', 43 + icon: BarChart3, 44 + gradient: 'bg-gradient-to-r from-teal-400/30 to-emerald-500/30', 45 + }, 46 + { 47 + title: 'Social Discovery', 48 + description: 49 + 'Connect with music lovers who share your taste and discover new tracks through community recommendations.', 50 + icon: Users, 51 + gradient: 'bg-gradient-to-r from-blue-400/30 to-teal-500/30', 52 + }, 53 + { 54 + title: 'Universal Tracking', 55 + description: 56 + 'Seamlessly sync your listening history across Spotify, Apple Music, YouTube Music, and more platforms.', 57 + icon: Sparkles, 58 + gradient: 'bg-gradient-to-r from-purple-400/30 to-pink-500/30', 59 + }, 60 + { 61 + title: 'Share Your Taste', 62 + description: 63 + 'Create beautiful cards of your top tracks and artists to share your music taste with the world.', 64 + icon: Share2, 65 + gradient: 'bg-gradient-to-r from-orange-400/30 to-pink-500/30', 66 + }, 67 + ]; 68 + 69 + useEffect(() => { 70 + const interval = setInterval(() => { 71 + setCurrentIcon((prev) => (prev + 1) % icons.length); 72 + }, 2000); 73 + return () => clearInterval(interval); 74 + }, []); 75 + 76 + useEffect(() => { 77 + document.documentElement.classList.toggle('dark', isDark); 78 + }, [isDark]); 79 + 80 + const handleSubmit = (e: React.FormEvent) => { 81 + e.preventDefault(); 82 + setIsSubmitted(true); 83 + setEmail(''); 84 + }; 85 + 86 + return ( 87 + <div 88 + className={`min-h-screen transition-colors duration-300 bg-gradient-to-br dark:from-gray-900 dark:via-gray-950 dark:to-teal-950 89 + from-slate-200 via-purple-200/70 to-teal-200 90 + dark:text-white text-neutral-800`} 91 + > 92 + <ThemeToggle isDark={isDark} onToggle={() => setIsDark(!isDark)} /> 93 + 94 + {/* Hero Section */} 95 + <div 96 + className="h-[90vh] flex flex-col items-center justify-between" 97 + id="hero" 98 + > 99 + <div /> 100 + <div className="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8"> 101 + <div className="text-center space-y-6"> 102 + <div className="flex items-center justify-center space-x-1"> 103 + <CrossFade contentKey={String(currentIcon)} timeout={200}> 104 + <div className="bg-teal-500 rounded-full p-1"> 105 + {icons[currentIcon]} 106 + </div> 107 + </CrossFade> 108 + <h1 className="text-7xl sm:text-8xl font-semibold tracking-tight transition-scale"> 109 + teal<span className="text-teal-500 font-serif italic">.fm</span> 110 + </h1> 111 + </div> 112 + 113 + <p className="font-sans text-2xl sm:text-3xl text-teal-700 dark:text-teal-100 max-w-2xl mx-auto font-light transition-all"> 114 + Your music,{' '} 115 + <span className="font-modern-serif font-medium text-teal-500"> 116 + beautifully 117 + </span>{' '} 118 + tracked. 119 + <br /> All{' '} 120 + <span className="text-teal-500 font-modern-serif font-medium text-teal-500"> 121 + yours 122 + </span>{' '} 123 + <span className="">(soon)</span>. 124 + </p> 125 + </div> 126 + </div> 127 + <a href="#features"> 128 + <ChevronDown /> 129 + </a> 130 + </div> 131 + 132 + <div 133 + className="max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 pt-20" 134 + id="features" 135 + > 136 + {/* Features Grid */} 137 + <div className="grid grid-cols-1 md:grid-cols-2 gap-8 h-full"> 138 + {features.map((feature, index) => ( 139 + <FeatureCard key={index} {...feature} /> 140 + ))} 141 + </div> 142 + 143 + {/* Newsletter Signup */} 144 + <div className="mt-20 max-w-md mx-auto"> 145 + <div className="bg-white/10 backdrop-blur-lg rounded-xl p-6 border border-teal-500/20"> 146 + <h2 className="text-xl font-semibold mb-4 text-black/50 dark:text-white/50"> 147 + Stay updated (soon) 148 + </h2> 149 + <form onSubmit={handleSubmit} className="space-y-4"> 150 + <div className="relative"> 151 + <Mail className="absolute left-3 top-1/2 transform -translate-y-1/2 text-teal-400 w-5 h-5" /> 152 + <input 153 + type="email" 154 + value={email} 155 + onChange={(e) => setEmail(e.target.value)} 156 + placeholder="Enter your email" 157 + className="w-full pl-10 pr-4 py-2 disabled:dark:bg-teal-50/5 disabled:bg-teal-950/20 disabled:border-teal-300/10 bg-white/10 border border-teal-500/30 rounded-lg focus:outline-none focus:ring-2 focus:ring-teal-500 focus:border-transparent placeholder-teal-200/50" 158 + required 159 + disabled 160 + /> 161 + </div> 162 + <button 163 + type="submit" 164 + className="w-full bg-teal-500 hover:bg-teal-400 disabled:bg-teal-400/30 text-teal-900 font-semibold py-2 px-4 rounded-lg transition duration-200" 165 + disabled 166 + > 167 + {isSubmitted ? 'Thanks for joining!' : 'Join the waitlist'} 168 + </button> 169 + </form> 170 + </div> 171 + </div> 172 + 173 + <div className="mt-20 flex justify-center align-center gap-4"> 174 + <a href="https://bsky.app/profile/teal.fm"> 175 + <SiBluesky className="w-6 h-6" /> 176 + </a> 177 + <a href="https://discord.gg/DMSZ3xFUpk"> 178 + <SiDiscord className="w-6 h-6" /> 179 + </a> 180 + <a href="github.com/teal-fm"> 181 + <SiGithub className="w-6 h-6" /> 182 + </a> 183 + </div> 184 + 185 + {/* Footer */} 186 + <footer className="mt-10 pb-8 text-center text-teal-600 dark:text-teal-400/60"> 187 + <p>© 2024 teal.fm - coming soon</p> 188 + <p> 189 + <span className="italic font-modern-serif">forever</span> open 190 + source 191 + </p> 192 + </footer> 193 + </div> 194 + </div> 195 + ); 196 + } 197 + 198 + export default App;
+32
src/components/FeatureCard.tsx
··· 1 + import { LucideIcon } from 'lucide-react'; 2 + 3 + interface FeatureCardProps { 4 + title: string; 5 + description: string; 6 + icon: LucideIcon; 7 + gradient: string; 8 + } 9 + 10 + export function FeatureCard({ 11 + title, 12 + description, 13 + icon: Icon, 14 + gradient, 15 + }: FeatureCardProps) { 16 + return ( 17 + <div className="relative group h-full"> 18 + <div 19 + className={`absolute -inset-0.5 ${gradient} rounded-lg blur opacity-25 group-hover:opacity-100 transition duration-500`} 20 + /> 21 + <div className="relative p-6 bg-gray-100/50 dark:bg-gray-900/50 rounded-xl backdrop-blur-sm border border-neutral-400/20 hover:border-neutral-400/30 transition-all duration-300 h-full"> 22 + <div className="flex items-center space-x-3 mb-4"> 23 + <div className="p-2 bg-black/10 dark:bg-white/10 rounded-lg"> 24 + <Icon className="w-6 h-6 text-teal-400" /> 25 + </div> 26 + <h3 className="text-xl font-semibold">{title}</h3> 27 + </div> 28 + <p className="dark:text-teal-100 text-gray-700">{description}</p> 29 + </div> 30 + </div> 31 + ); 32 + }
+22
src/components/ThemeToggle.tsx
··· 1 + import { Moon, Sun } from 'lucide-react'; 2 + 3 + interface ThemeToggleProps { 4 + isDark: boolean; 5 + onToggle: () => void; 6 + } 7 + 8 + export function ThemeToggle({ isDark, onToggle }: ThemeToggleProps) { 9 + return ( 10 + <button 11 + onClick={onToggle} 12 + className="fixed top-4 right-4 p-2 rounded-full bg-white/10 backdrop-blur-sm hover:bg-white/20 transition-all duration-200" 13 + aria-label="Toggle theme" 14 + > 15 + {isDark ? ( 16 + <Sun className="w-5 h-5 text-teal-300" /> 17 + ) : ( 18 + <Moon className="w-5 h-5 text-teal-800" /> 19 + )} 20 + </button> 21 + ); 22 + }
+13
src/index.css
··· 1 + @tailwind base; 2 + @tailwind components; 3 + @tailwind utilities; 4 + 5 + html { 6 + scroll-behavior: smooth; 7 + } 8 + 9 + .font-style-soft { 10 + font-variation-settings: 11 + "SOFT" 1, 12 + "WONK" 0; 13 + }
+10
src/main.tsx
··· 1 + import { StrictMode } from 'react'; 2 + import { createRoot } from 'react-dom/client'; 3 + import App from './App.tsx'; 4 + import './index.css'; 5 + 6 + createRoot(document.getElementById('root')!).render( 7 + <StrictMode> 8 + <App /> 9 + </StrictMode> 10 + );
+1
src/vite-env.d.ts
··· 1 + /// <reference types="vite/client" />
+15
tailwind.config.js
··· 1 + /** @type {import('tailwindcss').Config} */ 2 + export default { 3 + content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'], 4 + darkMode: 'class', 5 + theme: { 6 + extend: { 7 + fontFamily: { 8 + serif: "Crimson Pro", 9 + sans: "DM Sans", 10 + "modern-serif": "Fraunces" 11 + } 12 + }, 13 + }, 14 + plugins: [], 15 + };
+24
tsconfig.app.json
··· 1 + { 2 + "compilerOptions": { 3 + "target": "ES2020", 4 + "useDefineForClassFields": true, 5 + "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 + "module": "ESNext", 7 + "skipLibCheck": true, 8 + 9 + /* Bundler mode */ 10 + "moduleResolution": "bundler", 11 + "allowImportingTsExtensions": true, 12 + "isolatedModules": true, 13 + "moduleDetection": "force", 14 + "noEmit": true, 15 + "jsx": "react-jsx", 16 + 17 + /* Linting */ 18 + "strict": true, 19 + "noUnusedLocals": true, 20 + "noUnusedParameters": true, 21 + "noFallthroughCasesInSwitch": true 22 + }, 23 + "include": ["src"] 24 + }
+7
tsconfig.json
··· 1 + { 2 + "files": [], 3 + "references": [ 4 + { "path": "./tsconfig.app.json" }, 5 + { "path": "./tsconfig.node.json" } 6 + ] 7 + }
+22
tsconfig.node.json
··· 1 + { 2 + "compilerOptions": { 3 + "target": "ES2022", 4 + "lib": ["ES2023"], 5 + "module": "ESNext", 6 + "skipLibCheck": true, 7 + 8 + /* Bundler mode */ 9 + "moduleResolution": "bundler", 10 + "allowImportingTsExtensions": true, 11 + "isolatedModules": true, 12 + "moduleDetection": "force", 13 + "noEmit": true, 14 + 15 + /* Linting */ 16 + "strict": true, 17 + "noUnusedLocals": true, 18 + "noUnusedParameters": true, 19 + "noFallthroughCasesInSwitch": true 20 + }, 21 + "include": ["vite.config.ts"] 22 + }
+10
vite.config.ts
··· 1 + import { defineConfig } from 'vite'; 2 + import react from '@vitejs/plugin-react'; 3 + 4 + // https://vitejs.dev/config/ 5 + export default defineConfig({ 6 + plugins: [react()], 7 + optimizeDeps: { 8 + exclude: ['lucide-react'], 9 + }, 10 + });