From b7f6d9da1a734a8be955a71c95f6790025c02ede Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 28 Aug 2026 14:42:58 +0000 Subject: [PATCH 1/2] feature: scaffold React + TypeScript app alongside Angular Adds a Vite React+TS app in react-app/ with ESLint, Prettier (matching the Angular app's prettier settings), SCSS support, the ported global stylesheet and theme partials, static assets, and a placeholder App component. Co-Authored-By: Charity Quinn --- react-app/.gitignore | 24 + react-app/.prettierignore | 4 + react-app/.prettierrc.json | 6 + react-app/README.md | 24 + react-app/eslint.config.js | 25 + react-app/index.html | 79 + react-app/package-lock.json | 3060 +++++++++++++++++ react-app/package.json | 35 + .../assets/icons/android-chrome-144x144.png | Bin 0 -> 29992 bytes .../assets/icons/android-chrome-192x192.png | Bin 0 -> 5033 bytes .../assets/icons/android-chrome-256x256.png | Bin 0 -> 6756 bytes .../assets/icons/android-chrome-512x512.png | Bin 0 -> 30053 bytes .../assets/icons/apple-touch-icon-120x120.png | Bin 0 -> 2629 bytes .../assets/icons/apple-touch-icon-152x152.png | Bin 0 -> 3304 bytes .../assets/icons/apple-touch-icon-180x180.png | Bin 0 -> 3846 bytes .../assets/icons/apple-touch-icon-60x60.png | Bin 0 -> 1699 bytes .../assets/icons/apple-touch-icon-76x76.png | Bin 0 -> 1993 bytes .../public/assets/icons/apple-touch-icon.png | Bin 0 -> 3846 bytes .../public/assets/icons/browserconfig.xml | 9 + .../public/assets/icons/favicon-16x16.png | Bin 0 -> 694 bytes .../public/assets/icons/favicon-32x32.png | Bin 0 -> 1371 bytes .../public/assets/icons/mstile-150x150.png | Bin 0 -> 3656 bytes .../public/assets/icons/safari-pinned-tab.svg | 1 + react-app/public/assets/images/cog.svg | 1 + .../public/assets/images/logo-header.png | Bin 0 -> 4109 bytes react-app/public/assets/images/logo.svg | 1 + react-app/public/favicon.ico | Bin 0 -> 5430 bytes react-app/public/manifest.json | 30 + react-app/src/App.tsx | 19 + react-app/src/main.tsx | 10 + react-app/src/styles/_media.scss | 3 + react-app/src/styles/_theme_variables.scss | 37 + react-app/src/styles/_themes.scss | 255 ++ react-app/src/styles/styles.scss | 44 + react-app/tsconfig.app.json | 26 + react-app/tsconfig.json | 4 + react-app/tsconfig.node.json | 23 + react-app/vite.config.ts | 7 + 38 files changed, 3727 insertions(+) create mode 100644 react-app/.gitignore create mode 100644 react-app/.prettierignore create mode 100644 react-app/.prettierrc.json create mode 100644 react-app/README.md create mode 100644 react-app/eslint.config.js create mode 100644 react-app/index.html create mode 100644 react-app/package-lock.json create mode 100644 react-app/package.json create mode 100644 react-app/public/assets/icons/android-chrome-144x144.png create mode 100644 react-app/public/assets/icons/android-chrome-192x192.png create mode 100644 react-app/public/assets/icons/android-chrome-256x256.png create mode 100644 react-app/public/assets/icons/android-chrome-512x512.png create mode 100644 react-app/public/assets/icons/apple-touch-icon-120x120.png create mode 100644 react-app/public/assets/icons/apple-touch-icon-152x152.png create mode 100644 react-app/public/assets/icons/apple-touch-icon-180x180.png create mode 100644 react-app/public/assets/icons/apple-touch-icon-60x60.png create mode 100644 react-app/public/assets/icons/apple-touch-icon-76x76.png create mode 100644 react-app/public/assets/icons/apple-touch-icon.png create mode 100644 react-app/public/assets/icons/browserconfig.xml create mode 100644 react-app/public/assets/icons/favicon-16x16.png create mode 100644 react-app/public/assets/icons/favicon-32x32.png create mode 100644 react-app/public/assets/icons/mstile-150x150.png create mode 100644 react-app/public/assets/icons/safari-pinned-tab.svg create mode 100755 react-app/public/assets/images/cog.svg create mode 100644 react-app/public/assets/images/logo-header.png create mode 100644 react-app/public/assets/images/logo.svg create mode 100644 react-app/public/favicon.ico create mode 100644 react-app/public/manifest.json create mode 100644 react-app/src/App.tsx create mode 100644 react-app/src/main.tsx create mode 100644 react-app/src/styles/_media.scss create mode 100644 react-app/src/styles/_theme_variables.scss create mode 100644 react-app/src/styles/_themes.scss create mode 100644 react-app/src/styles/styles.scss create mode 100644 react-app/tsconfig.app.json create mode 100644 react-app/tsconfig.json create mode 100644 react-app/tsconfig.node.json create mode 100644 react-app/vite.config.ts diff --git a/react-app/.gitignore b/react-app/.gitignore new file mode 100644 index 000000000..a547bf36d --- /dev/null +++ b/react-app/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/react-app/.prettierignore b/react-app/.prettierignore new file mode 100644 index 000000000..342136eca --- /dev/null +++ b/react-app/.prettierignore @@ -0,0 +1,4 @@ +dist +node_modules +public +package-lock.json diff --git a/react-app/.prettierrc.json b/react-app/.prettierrc.json new file mode 100644 index 000000000..6c5c81dc1 --- /dev/null +++ b/react-app/.prettierrc.json @@ -0,0 +1,6 @@ +{ + "trailingComma": "es5", + "tabWidth": 4, + "singleQuote": true, + "printWidth": 120 +} diff --git a/react-app/README.md b/react-app/README.md new file mode 100644 index 000000000..bc3adddb6 --- /dev/null +++ b/react-app/README.md @@ -0,0 +1,24 @@ +# react-app + +React + TypeScript + Vite rewrite of the Hacker News client. It lives alongside the Angular app +(`../src`) while the migration is in progress; the Angular sources are removed in the final PR of +the migration series, at which point this app moves to the repository root. + +## Scripts + +Run from this directory (`react-app/`), it has its own `package.json` and `node_modules`: + +```bash +npm install +npm run dev # dev server on http://localhost:5173 +npm run build # type-check + production build into dist/ +npm run lint # ESLint +npm run format # Prettier (settings match the Angular app's prettier config) +``` + +## Styles and assets + +`src/styles/` holds the global stylesheet and theme partials ported from `../src/styles.scss` and +`../src/app/shared/scss/`. Deprecated Sass APIs (`@import`, `darken()`, `/` division) were replaced +with their `@use` / `sass:color` / `sass:math` equivalents so the stylesheet compiles warning-free +with modern dart-sass. Icons, images, `favicon.ico` and `manifest.json` are copied into `public/`. diff --git a/react-app/eslint.config.js b/react-app/eslint.config.js new file mode 100644 index 000000000..691ad91a6 --- /dev/null +++ b/react-app/eslint.config.js @@ -0,0 +1,25 @@ +import js from '@eslint/js'; +import prettier from 'eslint-config-prettier'; +import reactHooks from 'eslint-plugin-react-hooks'; +import reactRefresh from 'eslint-plugin-react-refresh'; +import { globalIgnores } from 'eslint/config'; +import globals from 'globals'; +import tseslint from 'typescript-eslint'; + +export default tseslint.config([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + js.configs.recommended, + tseslint.configs.recommended, + reactHooks.configs.flat['recommended-latest'], + reactRefresh.configs.vite, + prettier, + ], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + }, +]); diff --git a/react-app/index.html b/react-app/index.html new file mode 100644 index 000000000..96567e714 --- /dev/null +++ b/react-app/index.html @@ -0,0 +1,79 @@ + + + + + Angular 2 HN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + + diff --git a/react-app/package-lock.json b/react-app/package-lock.json new file mode 100644 index 000000000..3401b9e8f --- /dev/null +++ b/react-app/package-lock.json @@ -0,0 +1,3060 @@ +{ + "name": "react-app", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "react-app", + "version": "0.0.0", + "dependencies": { + "react": "^19.2.8", + "react-dom": "^19.2.8" + }, + "devDependencies": { + "@eslint/js": "^10.0.1", + "@types/node": "^24.13.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", + "@vitejs/plugin-react": "^6.1.0", + "eslint": "^10.9.1", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-react-hooks": "^7.1.1", + "eslint-plugin-react-refresh": "^0.5.5", + "globals": "^17.11.0", + "prettier": "^3.9.6", + "sass": "^1.103.1", + "typescript": "~6.0.2", + "typescript-eslint": "^8.68.0", + "vite": "^8.2.2" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", + "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", + "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.8", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^3.0.5", + "debug": "^4.3.1", + "minimatch": "^10.2.4" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.7.0.tgz", + "integrity": "sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/js": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz", + "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "eslint": "^10.0.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/object-schema": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", + "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.147.0.tgz", + "integrity": "sha512-IJ3s6ltHLp45S0bh7phkX+gJO7A1Wuz2EaqpAhb8WjqDwbzMiWKHhyyT42tskaWjEYXtHtVCPpnBJVT9+dcRLg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", + "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.6.0", + "@parcel/watcher-darwin-arm64": "2.6.0", + "@parcel/watcher-darwin-x64": "2.6.0", + "@parcel/watcher-freebsd-x64": "2.6.0", + "@parcel/watcher-linux-arm-glibc": "2.6.0", + "@parcel/watcher-linux-arm-musl": "2.6.0", + "@parcel/watcher-linux-arm64-glibc": "2.6.0", + "@parcel/watcher-linux-arm64-musl": "2.6.0", + "@parcel/watcher-linux-x64-glibc": "2.6.0", + "@parcel/watcher-linux-x64-musl": "2.6.0", + "@parcel/watcher-win32-arm64": "2.6.0", + "@parcel/watcher-win32-x64": "2.6.0" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", + "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", + "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", + "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", + "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", + "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", + "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", + "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", + "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", + "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", + "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", + "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", + "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@rolldown/binding-android-arm-eabi": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.6.tgz", + "integrity": "sha512-b+jTcARdTiFLI6jB4a5XjTm0RWd6KcRfQj/I2356fxUZemiho9zQLxo0RtCuMDAyKcLo6cEltkgbQp6d1+sjjQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.6.tgz", + "integrity": "sha512-lkWU8ZJaRk9q3CIEY1Tc7vIFALp3Xw5NfGJo2hQg5oIqNgxWi1zI+IiDEK3r70BF5Dzol1tcXsnzsRc8NLhG+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.6.tgz", + "integrity": "sha512-dgR56NYnvAszm7Ob1B2/Vn0e8bUQYZH2UjVaMMtMVOCKFSfjhfLmuA/9+O+F+ajUdG6B/bSssrKW6JJYASa8jA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.6.tgz", + "integrity": "sha512-vpVxFvUCFioJqug7OTvqptkc4yb8UX0AwfDmJpaR/0sWz+BUmqSVAf7c8JkUgnN8YLspb4a/N6NhTyMAmdyQ7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.6.tgz", + "integrity": "sha512-h1wG6Y6K3JlRswxsI64qQJqBAy4vrLuHgRbc8CZMGSWTOFRY6ghMApM1NKzB2I0n5xV1fjkE18SuVl2QpLeNpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.6.tgz", + "integrity": "sha512-tbCiqub0q2MVWJKgF5PoAlNWCtQydiOYSLIkd8sByqK/6MMYLJRcSXSYodqYtd0O+Fw7QaVmKKlS4oL94YRZ0w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.6.tgz", + "integrity": "sha512-oxK9+baEBPhZG5HB4URY+uU04zJWeZlH6Tb9rB5DK4DF9XR1uXNLXt5Q5ZsugTKayNCNLhkcwz/ye74hRI98dg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.6.tgz", + "integrity": "sha512-muWCk27FVBEZtv0MsK8gnfSmgczA8KQ0uRVJbTABKhkRfQc38aUrcb7fhi3BNiyseFmgcRsoMfQsSNJ+DbZdSw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.6.tgz", + "integrity": "sha512-eWDoSfU7Co2qj3vgB3Dt4lj1mG6CoWbcJQkRMP3XJplyCMtuaq3LHvPFjS9QIPvMGWVadJC04Xiy0IdcVPtnwQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.6.tgz", + "integrity": "sha512-2bWNjRSIayvupRKxXUY2tWG9fYdoUlTqWywHRvE8Eq3GvuQ+f2HeIkve697fIt+IQs/PV8yFsdWuhp1aJ1PdnA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.6.tgz", + "integrity": "sha512-KekI0gS0wLxe1UBSQSjenBVwou/JkcQPDzBPICGZjxUv9k3RteHDPBQaiOicZUFKRIH2wKEimGwVpnJsbPzu7w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.6.tgz", + "integrity": "sha512-TvtPnfVr+HtyGiDmPK4VWmlNm7QhNNAcK5Q9A7aOXsI8545yCyaoMaicXrFZ72JzeYjaUVk7yT243zT0jzjFKQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.6.tgz", + "integrity": "sha512-iOo0VEay2XFhaCcH0sps5XIimkSuOnNaZrf6+ZkoSOQBJPKNU48RkmJv0/lSpipexu5P+ouFgafe5IGr/DiQfg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.6.tgz", + "integrity": "sha512-y5NTmmasMS455JlOCO4ZM9krIchv3Mvm1crL1iUPGOPgEzSkves9n0SdC5Sjz6+qWDFhd8/JpfWMH8NSWNHe+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.6.tgz", + "integrity": "sha512-np8iZSLfXlAD4kWhiyq/u0Yt8oZDtRQ8lGhQaCXo2rl37KNjeU0GjJuwr4P3oeZ++ROfofsKNBqR5LTO8aXyWQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/esrecurse": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.13.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.3.tgz", + "integrity": "sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/@types/react": { + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.5.tgz", + "integrity": "sha512-fMPwH9v7r/pp43yUd2/Mbiex5KouJwwR3dzHkhLREUC6764VyDsqxhAxv6OFEYR1RhjOyD1naqba8ECDBe7ZQg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.68.0.tgz", + "integrity": "sha512-WASHDpCm6qO5jj9g1a+8NiW5+GCkAyLReR56/4VruYmNgfUmqpxOfZ2Yfb8xGfJPWv5Qi6LSD8sXdces3vbp/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.68.0", + "@typescript-eslint/type-utils": "8.68.0", + "@typescript-eslint/utils": "8.68.0", + "@typescript-eslint/visitor-keys": "8.68.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.68.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.68.0.tgz", + "integrity": "sha512-fHq2VC1kpyYfvEcbiMjOpySY4WS7voEp89yAThrHRX5sm9j2lzYppCb2umFMEed4fWcyeLjHxrz0mpjNBaBxMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.68.0", + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/typescript-estree": "8.68.0", + "@typescript-eslint/visitor-keys": "8.68.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.68.0.tgz", + "integrity": "sha512-5GQtWZCXFcFYux955pvoS02WLc49pXNlvIxocKjS0clvwo3in1RdlzVKyiqQH9vE5AKWFLTaUgeQkOrTS+0Qxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.68.0", + "@typescript-eslint/types": "^8.68.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.68.0.tgz", + "integrity": "sha512-T5eXpcaJNg8bhjHJ8Rjp68Vq/QBteYtTKY8TZqVNPaUbuz0f6jI9t6aDkylwvalpAB9XTTFeFOjrjXAZ3YvmVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/visitor-keys": "8.68.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.68.0.tgz", + "integrity": "sha512-F7zrGQfiJHojPwi8vhxZQC1tWtJzvL74cK/nqri2lk8YUXvYaYwl263xOJ69jDWPUk1hmcdoayFwk9lX09npVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.68.0.tgz", + "integrity": "sha512-X77zqoY1EjeWGs/0JNxeaMfp5C5lIz4Tw8y66F1Ne8Faq6g424sBNYM6xBAqElfGZPLpWS+CZAp0DXyKDzWiHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/typescript-estree": "8.68.0", + "@typescript-eslint/utils": "8.68.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.68.0.tgz", + "integrity": "sha512-9RnpsGJjrAllCMefGVVsImJM24YurhC0Q1h4UbvivtvOqXmR/vEJge2OoE++z9m6hyg8T1Q8t5SNT6tHSbrxcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.68.0.tgz", + "integrity": "sha512-OKKsD0tYmoNiU5PW2zehO1yO56jYOm1ShYlxon/Z0SJNidAkdVg86eg9ruRuoXf8xfnuWZGbwDsStkoXbZtIIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.68.0", + "@typescript-eslint/tsconfig-utils": "8.68.0", + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/visitor-keys": "8.68.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.68.0.tgz", + "integrity": "sha512-PB5gJMMOg0Q5P1tsgWtEAqQacJXq0qEqRHDX/YJ4FaTMLfZPpHB3gjl2EJuiZyPABxmj4ZQYiY9m1bdAJ5y7tQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.68.0", + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/typescript-estree": "8.68.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.68.0.tgz", + "integrity": "sha512-YR65gGdGvTUAWLldC3xLOvOzamdGzB4A5/N8rehEaHs3Zvoe39BhgY+u0SPch1OvrVTfLcc55wsSgK2NcnTS/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.68.0", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.1.1.tgz", + "integrity": "sha512-yxLaQV9gkhS8ezJqCM6+ndU7mDY6gqAg75NQ+0IjwEI8IYOmQCgkRwHKVSfWXW076DsqMo0Dk+0FK1U+M5RgFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "oxc-transform-react": "^0.145.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "oxc-transform-react": { + "optional": true + } + } + }, + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.20", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.20.tgz", + "integrity": "sha512-H0ulySigv6icDJ1F7SjtdCD6PrhTpdYCmP0CactWy1+ekh0AFd0o1Wn5T8b+hnTmdBx19u9yhL6wvCylXMY7zw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/browserslist": { + "version": "4.28.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz", + "integrity": "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.11.12", + "caniuse-lite": "^1.0.30001809", + "electron-to-chromium": "^1.5.402", + "node-releases": "^2.0.53", + "update-browserslist-db": "^1.3.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001810", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz", + "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.416", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.416.tgz", + "integrity": "sha512-K6bvB2BjnNrugtIih6ewlbBI9DXa976jIdiIlRLHhBoEI9a4JaQjjHyF+A1IQI543aQYR4LnmOrT/K5fZj0aPA==", + "dev": true, + "license": "ISC" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.9.1.tgz", + "integrity": "sha512-9VaAkDURekixUQJy0oJYl2DcN6oKMfxay7XzaGYAWQwsb6qfKf+x76R2k1L8kb1boc+FyCAaTA9GmiKaaiaF+A==", + "dev": true, + "license": "MIT", + "workspaces": [ + "packages/*" + ], + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.7.0", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.2", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "minimatch": "^10.2.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", + "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "hermes-parser": "^0.25.1", + "zod": "^3.25.0 || ^4.0.0", + "zod-validation-error": "^3.5.0 || ^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.5.5.tgz", + "integrity": "sha512-vG7yLURXNvCHy0FBdbZRwIu0BLPJMlUUJS2Ep7ud9w1YCLftFZtuEjyjhym0Qq9yuZ6LJUitNlu/hMk0gakXAw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": "^9 || ^10" + } + }, + "node_modules/eslint-scope": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.16.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^5.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "17.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.11.0.tgz", + "integrity": "sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "dev": true, + "license": "MIT" + }, + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hermes-estree": "0.25.1" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", + "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-releases": { + "version": "2.0.54", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.54.tgz", + "integrity": "sha512-YHs7BmmcsdAI5Ozuf8JZo6PT0mv2GIWC9vMfvUC3dp65M8hn7Ux8CPL+2oBI7juNuj9d0ndhTcznq2ODBps9cQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.17", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz", + "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.8" + } + }, + "node_modules/readdirp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/rolldown": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.6.tgz", + "integrity": "sha512-vMM4q3aixf46GiF1Kok8jDPFsEpXgFWGjUHXNkNHNm+Y2adXAG2dbX91jkti3i0ZRsOlcmbuzAz1poObSHCmUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.147.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm-eabi": "1.2.6", + "@rolldown/binding-android-arm64": "1.2.6", + "@rolldown/binding-darwin-arm64": "1.2.6", + "@rolldown/binding-darwin-x64": "1.2.6", + "@rolldown/binding-freebsd-x64": "1.2.6", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.6", + "@rolldown/binding-linux-arm64-gnu": "1.2.6", + "@rolldown/binding-linux-arm64-musl": "1.2.6", + "@rolldown/binding-linux-ppc64-gnu": "1.2.6", + "@rolldown/binding-linux-s390x-gnu": "1.2.6", + "@rolldown/binding-linux-x64-gnu": "1.2.6", + "@rolldown/binding-linux-x64-musl": "1.2.6", + "@rolldown/binding-openharmony-arm64": "1.2.6", + "@rolldown/binding-win32-arm64-msvc": "1.2.6", + "@rolldown/binding-win32-x64-msvc": "1.2.6" + } + }, + "node_modules/sass": { + "version": "1.103.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.103.1.tgz", + "integrity": "sha512-9icZURbP51S6S0QGoyaeqk9uB06GNWxsFYWfH5RgpFgqK5FA8tJcM3AdVxrZEVJ7dz+L87nG95gBKf4VuaMHGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^5.0.0", + "immutable": "^5.1.5", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=20.19.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.68.0.tgz", + "integrity": "sha512-MHy0Y0ynqeEbx/S45+i/bBssdy3X6KNBfmJAP35GrgtNxu2TQ5K5xsFDhAnmsq1jvpdoZOPG1LGtJo0HWqYCrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.68.0", + "@typescript-eslint/parser": "8.68.0", + "@typescript-eslint/typescript-estree": "8.68.0", + "@typescript-eslint/utils": "8.68.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.2.tgz", + "integrity": "sha512-UQ+MSxlhRm1bzjhU+DcuXfjFO1FzNtqhK5+9Yvlp90ItDLk5vT932A0rFu619nf7RVS+Y/VeaUW1jaRDqZ8VJw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.2.tgz", + "integrity": "sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.26", + "rolldown": "~1.2.4", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.4.0 || ^0.5.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + } + } +} diff --git a/react-app/package.json b/react-app/package.json new file mode 100644 index 000000000..a7919d22b --- /dev/null +++ b/react-app/package.json @@ -0,0 +1,35 @@ +{ + "name": "react-app", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "preview": "vite preview", + "lint": "eslint .", + "format": "prettier --write .", + "format:check": "prettier --check ." + }, + "dependencies": { + "react": "^19.2.8", + "react-dom": "^19.2.8" + }, + "devDependencies": { + "@eslint/js": "^10.0.1", + "@types/node": "^24.13.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", + "@vitejs/plugin-react": "^6.1.0", + "eslint": "^10.9.1", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-react-hooks": "^7.1.1", + "eslint-plugin-react-refresh": "^0.5.5", + "globals": "^17.11.0", + "prettier": "^3.9.6", + "sass": "^1.103.1", + "typescript": "~6.0.2", + "typescript-eslint": "^8.68.0", + "vite": "^8.2.2" + } +} diff --git a/react-app/public/assets/icons/android-chrome-144x144.png b/react-app/public/assets/icons/android-chrome-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..833fcf97ffa8be01d9efa488b6a927f62fb0ebf2 GIT binary patch literal 29992 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
mg~B#bqT^yv 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 literal 0 HcmV?d00001 diff --git a/react-app/public/assets/icons/android-chrome-512x512.png b/react-app/public/assets/icons/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..5baddb33011b10828e9539a0a7b662993b8b3928 GIT binary patch literal 30053 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 RoCydo9Zh|W3N>8l{{d*_(P;nx literal 0 HcmV?d00001 diff --git a/react-app/public/assets/icons/apple-touch-icon-120x120.png b/react-app/public/assets/icons/apple-touch-icon-120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b71708cef98a9cefe018f9bb7027b057e331ec GIT binary patch literal 2629 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 literal 0 HcmV?d00001 diff --git a/react-app/public/assets/icons/apple-touch-icon-152x152.png b/react-app/public/assets/icons/apple-touch-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..cb316f56ac9ace3deee6195a062f82766609ab73 GIT binary patch literal 3304 zcmVWi>P)0{{R3FC5Sl0008_P)t-s|NsC0 z{{H{_`~Ug)|LN)c#K!uRmhhLF_0G@y>+ApR?*G-*|D&b;V`%?GO7tu;*DW#JLq_6g zYw@S3`P9_@@$vul_5H1_{d<4^PgDOkJpU>&|0gc>DK69{Dbpe+(sv!~c$u{!&-} zI6l)ODDttg``Fq3oSyw?Z2v(<|12}nU{r}*xRP-|S^Y<9mJfrIObuChTNIvUTmFcIb|B!_L_V54t^U@q4|6)x4Wl;a?+WW+^_Tb?8 z#kl**y69d_+%zozXIKARSNg`d|F@0*G9~})-0!Te|2HcCHYxthwd`e3;dFQQ^Yj1v z_3zf#+)GdWu7dy9xc{JJ|A1!ojc5POqwHNZ|1K{7NG$(PH|9+<>a(@vl9d00dG3LA z?|yFSyS)4S{P&5B=&rE!qownZllWm}^;1{-ZbcXX012!~L_t(|0qoX=lG`v4fZ;mK z%<|dJvBT&KGaoZEmD~3pYPO7)gU)pPKfxzyXI3wyq@<*zr2e}InQRtWa)nZ*)@WzU zM(FegqseTs+UyP|F*7Qc-tF=F5IINDjDLP%(czqhdvh%dJ09L@P7#kG|aJ7!+hI z)?>A%douQMFB^=NQyvut1~$&Jeb&D>VvMTw<#TW0f<(MwU=T-Bdkc2WrEEMqCvkpt zT|oHoFtCOEH^;Y*QSVKrOPp_BS6L*W)gLgd?JjC}xQO9ZdPBp6NI@)sZM7(Y1u4sX ze`Psk!|j}VFO0k3gu@`NzZRm41AgBK`MSGdscq_4dXr?*pF53KPvIV);C{* zYN{}ZwmSG>kIy6$1r~Y0Jmm%}3XF?t`C+fJ1yNvB8}skzy%q-+eDf9qdsh_$#=QT4 zgSk&x5n!C<76*H}76rCl>+!=rIyOlWVDzVU?E<=OBn{yBEc0$?Db<;dJgYLeVU9QT z%Z1C#bxI1y*-)7o9Vjz12bP(+%*;%8w<8tZSkgC<;X(c-m47dqnT*G3n8qRL5&}B8 z0hZn&Lk7lW_RMkvEITJx4ra-dfZ zsE1Yx7MEO%WHP7vio&wqeWi(1tt1*UG+hFw^)}1FhW)E67KQzLII3+UMoPfgB$?HM zWO^>p4KSVTYJs?3qee@@o*6S%tZ^cZc}51N>X3nCdnrIK3HxW!c(EqfuffDgadCy*ypSnQ|vFW>C|z+(prlkDR{C657z{spsg6naUX5>~#Qa^qjf#=FOWg?A@689o8Og_myw(W@Lr>L!Z6~k|3wCH8z;=RQ1-pt7pw6*a35;AW zQPaRk$rTV-#cW0yY{bxXI@qB1K``_4SQ%`?_8l4;n1O5)K`?*4G8n3?Qd7Y^tF0hd zYBW{``|zV|8kk!5F$aMS=o82&gRNS>g9eta`ve5ze42Ms21Dbj)HJXTpTb}nT@=E| zy_`w`Gd8jy7_6^S*s9NVP{88ep9Ot$O>LZ%N-QwSiSuuHxq<00w$dX}gDo!O)lA35|H_@mu-* z0^%I9WEvROa5)fG8d`)Qu*b52jhsZtAHiWAegML_kS_HUzPve}=-;UKvnW z0u=VvM!rcOuCjssGMC)T%7v|fu=>e`2ncKS8gTHh{Pj1!r5hfH{T?@Q3t3~AZUn+S zJ|6&uz0?y3`{U0n5?L;6U>=Lfz1*<-OCU_U#{`9Sj)lVZ^1s|^wJl7m=I`ZGPr+bp zgO*SjGN-l&!uAQj{3I-&9Pf~TF#gaEn6*y}MKJZ^{cxCCS6&K*l`4c83dp?#!@M#O z7?#o%D}t#HOoHFagN1O|bFV9d87Az9!?qoQ!^j&-ieRc8!o9SG<=clDgNqTkm!hyT zSpI?Cz>gT~(SH^kRvgPHgBgDL9STc|7zT&UQVJvY@-PtQSEdCzVIEK;?M-AA~k2yHZ{B{dD*qmd>j~_oFz?hTd@{bjx z3G5WPI#y=j|3m)r^cl4+tY&PR3<{XFbr>TBBb_~W{`~oKXN6y%bDngT9CfM|U$}6g zYLJRVE=j*=x;90t|4(4|p-2 zh{a&O{j%&gIXi!Kp-(7}5B$DuH>jiScp@hsT!1!Ic}((|xMhrg;_hqu^;vD!V9u!I1{*2Tj{kH0M0 z6^X7^8SG8U_!1MMsxY?R6EOaJoF&x<>G@Mdv;WXhI)64s)qvD+=RBrmG}^#&auHpo zfzb~h(3I}TRg7UpH4g}wdo_(Jc*2iw@T)G(1}36#J9+e82?C6IAGjP>Ylri5|5 z`ZCzrFxIFmw<5}BrS$BIoeDFk;EN~8>l~twJM`j>*Y(&r zFxDgI=BH*j%T{(hHzKdAQ(ztq`yZ*`P_468eA=>S3yd8LV~yRC%MY25k_hdSTcg4m z2f|pE3@!_ZB||$@e!F?J-cc}P1FwspR#=e(;>?!v=bHy%2n;ahKmP>E0?PZt^p&gwiiD&Tao*+7NA0GqY6*>~GO_BO7k m<(AieZ&O!Yb=6f@U4H>fl$@Z$Iq`M?0000g)gi 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 IM6N<$f*L6ZVE_OC literal 0 HcmV?d00001 diff --git a/react-app/public/assets/icons/apple-touch-icon-60x60.png b/react-app/public/assets/icons/apple-touch-icon-60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..7b588a9cdbf967c6d44a2a8c66de09e196be5bf5 GIT binary patch literal 1699 zcmV;U23+}xP)DBoG5;to)hR6h{P_O=|Nk*I|4L8)K}FX#Isg9t)FLPUEj0f# zIsaZ_|NQ*_Qdj>qIsNhR)+{g6A|?Iz_tPIE{P6JqI6nU*EdKiX|MvF%?(YBc^4mj3 z-9C@$!blK;24|LExb+}+kGE8%Qz|Ni~#i-r2<=+q=7?W?T+ zPE-Ex>(?X+kdyyvV(OEX|L^bmDPH`>n6xVPyT&)cW%B{Z(7?EHc?UJ^uau|H8ZNsHxaML;XEM z|LW@dzrgtA<^TKp|0gZ~!NULa^!?}F|5!}ZASCl6DgJ72_0Q1p$H?xWq4Fs%{QLX< z>*4?T_W$?u|LpAHR8HJKI{(wp?Uj-KmYMy4gywg4|F5q5;M)Jh!~ctp?2?Z8?Cjxi zbMz%F|42;#M@0QnSO4+r;9FhSEiC^sIMpvQ|Ni>@OHkx(YyR2V<$i(MM@#;amDD9F z;(mebm6zvoY5$_7@~)=kW@7)js`I)@REJ=v#a~X z$Mwm|_Qt>eSX||1Vfo+S?2n57TwLL3YX9`>|Mm3$k&XYjs{f3T^SHMEx2gZ7pWIzv z+)q*eEHK_zTI6qS^T5FQ)z;M|D(r}U|F^3D@$mig^zf;w_|wk)Xl&IZC;y?O@0N@I zL^}7tvi+#4{_*hLQ&r$nP5F?F_|H{Gt&d~6`!206e|9NHMWoPcV zx#x9m_{hroadqjUr1-+M+BY%yy1V;iXz-qw_2A*uBq`Q4IQCIh|8{QpmYMuTOz*_S z|B8p}va|Wh%jlt^_v`EYW^3e+koDo=@`Z>Cysx$Z00U=9L_t(|UhURHxFbsdhT&?) z&Y^AFwlTDA+qP}nxVCNEwz0U$Io)08=}B_e^F2?N?;?MtIt{RH*EgwfYnbW($kfDy z5`A0FqKb>2dQ;_$nOQo99~n(kIg8d0d)j>({@&ymEAPmGDT<;gW7CLTZu!ua8*M=x z!$a)!ti#8Kx|nF^w4nw;LM-_9k50z=D@l8=gnfF8Q$qYWg+!|lr95*r2sdpCUkZC6wh$6 z9l_c)5O5Y)n;OO3c1H>MPSqgTScl;x1H^aU6U;LV}62=P<}T<@Q!zn3^}^(MV6iP@`S+{zJXt^ka`?% z8K)1vKKA}0n>EuXQ1_0G48U-42Zl{kaD4Z;d7b#m7|jMViK%#irJc+xV6Z8f#A~|) zyhe`1wJ}|IdSo7feX9xFTZiMy^7%hH@z~>IJ|S^?EP+=VFnk|axMv}7;xDq#lY>R{ zA@Bh`jy2t;%}8|)_RXcyharZy87-`pLGhD!4C)$8Gb?SGW+24yn34R4D&g0&0fAT9 z2^_Lt0Z&?dkib+0Akvoc3OFE*z-)IJt`YI&&Z9!`_-uSI-}eF8F$;=6%zsHWKfiqL zsnci7i_f0>61^D4VKRJS33??}Du!oNs<`M3nxZl?DD+CMPM6{4APLW`RSC^~-rQ9H zd>FuEh9zc+c)$x;UP3=SD3qJFOu{MtG8}Fbad_!dVz2s$g#rn$GC_s^N;t;w>s?ZB zT!W3LWydUk95DT0Z~4I-mUY^-nR2Xs+s(gN^*cab!E$#ny>w1GkY`FN>dCmkwEBUM z6<&)PKK;zf+zPX~pU(!0wS4upg;B&k;=kP7( literal 0 HcmV?d00001 diff --git a/react-app/public/assets/icons/apple-touch-icon-76x76.png b/react-app/public/assets/icons/apple-touch-icon-76x76.png new file mode 100644 index 0000000000000000000000000000000000000000..22094f6e1c6c2118c487b17298069bc955f1d2e9 GIT binary patch literal 1993 zcmV;)2R8VLP){{JmB)F&$c_4U&t zCD}Yc`}z6*GC1v)mi_SX-(Fz%&(Hnz^#3(G;Ad(7d3^u&_U@pf;ACg_*xCO?O8+b~ z|4B~TKtuod`2FVQIp#|2IAS>FU}=Nbaw&{?*j~ zJVM<{O#l7;{j9FmEH2kDGW{qo-X|*mCoTW_`uOPS`tkAoc6$G>u>L|w>zSMXEi(WA z{{AU2;3g{nGBe&uL)Q&#up=l0*<`0wxka&_^>$NwxY*e)&OdVJniSl=lv{gRaV%*6lC(D>2N;V?4( z!^Hn3EdJcv|5aPlAtdwB(*K{L|4K&xL_YprWB-Yb_R7oub9ejP-T&|8{-vn@@$cMH zROo?!{Z?H6j*0*C>*HKg*D^HyWN7b~jQsca{BU*u{QUhYG1Da}|CEXFyS)GE>-o>e z|I^CpjgS81+4kY$|GB&Jtflq2uJx*x+)hycb8zc^bN~AF|KQ>M=HLE)g4Zf4|NQ#Y zBPa39&HJ;p?0s$gxS`%8DgR7T)+Z>}DJSHDh5VM8{xmq>S6bRgO#L}O?YzAD_V(LU zSNmdS=9roJ^z`?|$M~qL=4xaAT3+sxhyL#7_`k6Bz`6O+%;r~G=Vn#^w65@}qT_3B z{Mp+4_V)iwJpXK8=xts9i+JjGW8OnK_p+MgRzv#o^58Q!|CpQTY+d4Sa?>9o=X-ePQ&!zl zRR2y(|Cp2i&&l(ml>aq2@Tsc*xVQhx#pI>eMd_)l z__@0O+soKEJo`{p^4Qt;k(2n;)&GQj|7mXjucG>fiTAItqm(Bd000DpNkl9j~N5gt0j19#YZ@%F02$P;o zWYoB5d{E?MG>7D|!Eq6pj3bYq_(uZ75*wpES>oLA7!u1(P*4($u{}o;OIFYZjj{70 zvC$4zV=1diEY!_vEVYxw?(v0IV#)v?5{qdOV5$s$X-91Ni3AurlSN`qQv{g*je>3; z!s~RROn^COlUQI5A5-Ld+IaH1pO>r6gM*ZOY_OWdG{Xegr(o=7yoP^;3jtpXv3x)^ zOCiKO3c_%sQjE!Ea|ul6MOj?3R)}?s!FExxNNH^RlLRKmYep;@#-{7B?%yg@K|Lly z`ujv8rI^Ab6KE_xfx=2AP127W{r=>lVo7P4SS%|mEvF~5^P#aBd62;1cR$Aasxp3` z`Da1pO*h|CE=s+%>JD2HLvyNWta=`asUDcQ#$S~&A3R)8`3P9B(00+tr(d8k=htY= zb+LJ@aLG07O&WV^DUB^%W*!5>%Tt+HjfTc*qx!&RFO;(|aXv?5Tpb%5W5mD`=42`1 zfPv*|X{@59q-2!=t8Z9a=EA^!ngAF@M$=g4y2i#02CT8F{stBnyOD+MYN9dF(9lq5 zz&39ITW_N=v@MH;1s$ca`c>Pv-)X?^+L5%OYA21k--`+2@kn3`?rUzI--DIzE=*!z z!D<#}pToc&>RpY^d$$0L?V)`;$)^Ug3jxeRqlFlp{LHh@LDlnzUsP1SbodYwy}b36S4G{} zO1x&RY-~mz`PlC2l3u%X6%`*leoTMoas8E;%-fZXMKnPI!+$8fqmbAMycyKiVyvS% z16OI=+uQH(G39!Wjj28OSX9e6+`Dt$Gq%kUV|dM|xF|jrXv52uS0EpguQr99G*VK< z2kSoMw^qlnh}$Rea!FFsMK;^gL*9#&_+A-t0?3pO*v?kDk#P zu*57=Sfrb!Z;tz&+f89Xi~XQQ7_$3(xhYH&bTZEZ3`qtbum`5IclqKh>>q~Y?&r<} zvvKFY`Suj-8$+@S-?ww1uekOfE^1*Pm@f8Gs|NHZuC?xG1vG;pyP99rpug3&{n}&_ zLz3W5dtgcG-|#mfz>wVe++_|}7I*o|GB=1ZeD2j8u%hgP7abrUL%K7UHfn%%X{xWz z(_&0%cLJZgHC#lUzrui-*mn!RiN6xyigZz`H{SOFWPc^+?9dBwc;5#Um;HBsTP^s{ bcfEfA%Vtu$eB;+100000NkvXXu0mjf%o|-k literal 0 HcmV?d00001 diff --git a/react-app/public/assets/icons/apple-touch-icon.png b/react-app/public/assets/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9b8d8d0da36f3f4834c8ebd2d1d7ba6ee36a82cf GIT binary patch literal 3846 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 IM6N<$f*L6ZVE_OC literal 0 HcmV?d00001 diff --git a/react-app/public/assets/icons/browserconfig.xml b/react-app/public/assets/icons/browserconfig.xml new file mode 100644 index 000000000..daef18b07 --- /dev/null +++ b/react-app/public/assets/icons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #b92b27 + + + diff --git a/react-app/public/assets/icons/favicon-16x16.png b/react-app/public/assets/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..110da42ea2659e34108caa6a19b68ca009654a22 GIT binary patch literal 694 zcmV;n0!jUeP)RN?y+s#PS*DBOuD=9t@&$~-tDP#ZoH87 zUauTs`1s4+nQfe#W?4sXu&FB)pN(4E-`eZsW4g|r`o^)&V!-?%&5u8B!|>#Br2k(? z?oP)0oima6KbPZ_yI!Qj(rSj{#()!t6mtQ_`?x#fFc&xp6%j^ZA>vd%0f={KR&IuZ2vtoCdLK$^jxyFhADTh*!Vus!MEAbxBV zv5pl=M>DF{I0Diej0)-L%IiPc#8{xc-w6$R4S}ObpaRvfnETtg@Jz9e}4!bEl>;& z59lNz`{zFZL@QBoG_V>FN`w~@_WZ*CvE-~T=}o0++*SHh%gt2}(b=_h?X cU**6ibIKnlOlX*}hyVZp07*qoM6N<$f?Tjl$p8QV literal 0 HcmV?d00001 diff --git a/react-app/public/assets/icons/favicon-32x32.png b/react-app/public/assets/icons/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..903146b7bc7719f79899f7df2e6d81e95af34abf GIT binary patch literal 1371 zcmV-h1*H0kP)^%FBIAX z5Xv8dAA;8+0Q>hmSYOG);g=DNQ>xfaFpktLIh|1>fOC^3{Si%D3s5V%B{YWZ5X)~t zAoT?UvjZ?hFm|5k7Qwi~B065IS1$ysSO1w60696o_cU((B@)vcBGkAX64hmY052mb z13`rd*8mKC%Yj3#+(xnKS^d^$44+?NAOhovSoQn|A?)A$0LwSuv#C-D zyIMD&V!!l2sX2ORg~20Yffj98Rn)vSt~70q%PhKBr!MSbNreDTW7v?O3BBg1#;i`K ze>!Or;4TDq?*jJhE+_AvU3j{CC!XxyQBKc~9YTrQ0e83=mTx(%K5*$x^@9MV(MfTv z1|)!KGl04C0iiS?u^c4&ej$>=!4ty96Tl`AfqqHu*jN->a^a2)X9wW&JWl-vB^CE<9;zcr<4Qd`}+YQf4~kA2++VuM~iupj|4@ zcXl4|zaYTH0R#T!Rq2kC>uU@!YZ`zu+?zDES^y;bs~S+Q6#LZr71g?dvpK--EhxKr znNmOi^i63X_v1#lc2xq{6zXY=W>orcAmB1)Q41j~% zfnnu6KmhmW&cgL}t$?CuRo?(lSmaDfN@M^OC1)j2F{%_`!(yOMCm>W$Fz_TL;^D+m zWIz;ZH7LqCgzIgZR0?3@iyzR`!~pO#Y!>RT1rIANLXv6{pAhFRaTOh|)lfse(D+Hw*v(zb)07=d;cPTrsPH z1If1>hO8vE*)Tl1SA|pY<9bbhC^AIM@`fnxzsr$~-o8a7wOUQ)cGLr^9LpbN)eSG! z8rS(m@@H=iAdpz?1pr8w73+R!uxq8ib6I3DzR3X@_0c^ zOx+y+9{G-zQ|4w&TMczipMPZ|0Gr?0uML*dvE#?@YddBb^;t?r1S!GW0zI^_HqCK002ovPDHLkV1m80er*5% literal 0 HcmV?d00001 diff --git a/react-app/public/assets/icons/mstile-150x150.png b/react-app/public/assets/icons/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..63ed11d6b21007676dbb19175a474ec53d2665d0 GIT binary patch literal 3656 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 \ No newline at end of file diff --git a/react-app/public/assets/images/cog.svg b/react-app/public/assets/images/cog.svg new file mode 100755 index 000000000..3e270d2b7 --- /dev/null +++ b/react-app/public/assets/images/cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/react-app/public/assets/images/logo-header.png b/react-app/public/assets/images/logo-header.png new file mode 100644 index 0000000000000000000000000000000000000000..8e7a2bdc45678c29aaad257d63b12e9fd4f8c454 GIT binary patch literal 4109 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 LNkvXXu0mjfOh?KC literal 0 HcmV?d00001 diff --git a/react-app/public/assets/images/logo.svg b/react-app/public/assets/images/logo.svg new file mode 100644 index 000000000..f88f9e31d --- /dev/null +++ b/react-app/public/assets/images/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/react-app/public/favicon.ico b/react-app/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8081c7ceaf2be08bf59010158c586170d9d2d517 GIT binary patch literal 5430 zcmc(je{54#6vvCoAI3i*G5%$U7!sA3wtMZ$fH6V9C`=eXGJb@R1%(I_{vnZtpD{6n z5Pl{DmxzBDbrB>}`90e12m8T*36WoeDLA&SD_hw{H^wM!cl_RWcVA!I+x87ee975; z@4kD^=bYPn&pmG@(+JZ`rqQEKxW<}RzhW}I!|ulN=fmjVi@x{p$cC`)5$a!)X&U+blKNvN5tg=uLvuLnuqRM;Yc*swiexsoh#XPNu{9F#c`G zQLe{yWA(Y6(;>y|-efAy11k<09(@Oo1B2@0`PtZSkqK&${ zgEY}`W@t{%?9u5rF?}Y7OL{338l*JY#P!%MVQY@oqnItpZ}?s z!r?*kwuR{A@jg2Chlf0^{q*>8n5Ir~YWf*wmsh7B5&EpHfd5@xVaj&gqsdui^spyL zB|kUoblGoO7G(MuKTfa9?pGH0@QP^b#!lM1yHWLh*2iq#`C1TdrnO-d#?Oh@XV2HK zKA{`eo{--^K&MW66Lgsktfvn#cCAc*(}qsfhrvOjMGLE?`dHVipu1J3Kgr%g?cNa8 z)pkmC8DGH~fG+dlrp(5^-QBeEvkOvv#q7MBVLtm2oD^$lJZx--_=K&Ttd=-krx(Bb zcEoKJda@S!%%@`P-##$>*u%T*mh+QjV@)Qa=Mk1?#zLk+M4tIt%}wagT{5J%!tXAE;r{@=bb%nNVxvI+C+$t?!VJ@0d@HIyMJTI{vEw0Ul ze(ha!e&qANbTL1ZneNl45t=#Ot??C0MHjjgY8%*mGisN|S6%g3;Hlx#fMNcL<87MW zZ>6moo1YD?P!fJ#Jb(4)_cc50X5n0KoDYfdPoL^iV`k&o{LPyaoqMqk92wVM#_O0l z09$(A-D+gVIlq4TA&{1T@BsUH`Bm=r#l$Z51J-U&F32+hfUP-iLo=jg7Xmy+WLq6_tWv&`wDlz#`&)Jp~iQf zZP)tu>}pIIJKuw+$&t}GQuqMd%Z>0?t%&BM&Wo^4P^Y z)c6h^f2R>X8*}q|bblAF?@;%?2>$y+cMQbN{X$)^R>vtNq_5AB|0N5U*d^T?X9{xQnJYeU{ zoZL#obI;~Pp95f1`%X3D$Mh*4^?O?IT~7HqlWguezmg?Ybq|7>qQ(@pPHbE9V?f|( z+0xo!#m@Np9PljsyxBY-UA*{U*la#8Wz2sO|48_-5t8%_!n?S$zlGe+NA%?vmxjS- zHE5O3ZarU=X}$7>;Okp(UWXJxI%G_J-@IH;%5#Rt$(WUX?6*Ux!IRd$dLP6+SmPn= z8zjm4jGjN772R{FGkXwcNv8GBcZI#@Y2m{RNF_w8(Z%^A*!bS*!}s6sh*NnURytky humW;*g7R+&|Ledvc- +
+
+ +
+

React migration in progress. Feature components are ported in later changes.

+
+
+
+ + ); +} + +export default App; diff --git a/react-app/src/main.tsx b/react-app/src/main.tsx new file mode 100644 index 000000000..6bfc0b127 --- /dev/null +++ b/react-app/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; +import App from './App.tsx'; +import './styles/styles.scss'; + +createRoot(document.getElementById('root')!).render( + + + +); diff --git a/react-app/src/styles/_media.scss b/react-app/src/styles/_media.scss new file mode 100644 index 000000000..865cc6a4a --- /dev/null +++ b/react-app/src/styles/_media.scss @@ -0,0 +1,3 @@ +$mobile-only: 'only screen and (max-width : 768px)'; +$laptop-only: 'only screen and (min-width : 769px)'; +$tablet-only: 'only screen and (max-width : 1024px)'; diff --git a/react-app/src/styles/_theme_variables.scss b/react-app/src/styles/_theme_variables.scss new file mode 100644 index 000000000..8b483af05 --- /dev/null +++ b/react-app/src/styles/_theme_variables.scss @@ -0,0 +1,37 @@ +$skull-size: 200px; + +// ------------------------------------------------------------------------------------------- +// Theme Engine +// ------------------------------------------------------------------------------------------- + +// Day theme colors +$theme-day-body-background-color: #fff; +$theme-day-wrapper-background-color: #f5f5f5; +$theme-day-wrapper-mobile-background-color: #fff; +$theme-day-text-color: #000; +$theme-day-subtext-color: #696969; +$theme-day-secondary-color: #b92b27; +$theme-day-header-background-color: $theme-day-secondary-color; +$theme-day-logo-inner: #fff; + +// Day theme extras +$theme-day-border: 2px solid #b92b27; + +// Night theme colors +$theme-night-body-background-color: #37474f; +$theme-night-wrapper-background-color: #263238; +$theme-night-wrapper-mobile-background-color: $theme-night-wrapper-background-color; +$theme-night-text-color: rgba(255, 255, 255, 0.7); +$theme-night-subtext-color: #999; +$theme-night-secondary-color: #00c0ff; +$theme-night-header-background-color: #263238; +$theme-night-logo-inner: $theme-night-header-background-color; + +// Night theme extras +$theme-night-border: 2px solid #00c0ff; + +// Black theme colors +$theme-amoledblack-body-background-color: #000; +$theme-amoledblack-text-color: rgba(255, 255, 255, 0.75); +$theme-amoledblack-subtext-color: rgba(255, 255, 255, 0.5); +$theme-amoledblack-secondary-color: rgba(255, 255, 255, 0.6); diff --git a/react-app/src/styles/_themes.scss b/react-app/src/styles/_themes.scss new file mode 100644 index 000000000..8d829ac68 --- /dev/null +++ b/react-app/src/styles/_themes.scss @@ -0,0 +1,255 @@ +@use 'sass:color'; +@use 'sass:math'; +@use './media' as *; +@use './theme_variables' as *; + +/* ---------------------------------- + + Want a new theme? Add your new theme variables here! + +---------------------------------- */ + +@mixin theme( + $name, + $body-background-color, + $wrapper-background-color, + $wrapper-mobile-background-color, + $wrapper-color, + $item-a-color, + $item-a-visited-color, + $header-background-color, + $subtext-color, + $secondary-link-color, + $logo-inner-color, + $border +) { + .#{$name} { + .body-cover { + background: $body-background-color; + + @media #{$mobile-only} { + background: $wrapper-mobile-background-color; + } + } + + .wrapper { + background: $wrapper-background-color; + color: $wrapper-color; + + @media #{$mobile-only} { + background: $wrapper-mobile-background-color; + } + + a { + color: $item-a-color; + + &:visited { + color: $item-a-visited-color; + } + } + + #header { + background: $header-background-color; + border-bottom: $border; + } + + .logo-inner { + background: $logo-inner-color; + } + + .nav { + a { + color: $secondary-link-color; + + @media #{$mobile-only} { + color: $secondary-link-color; + } + } + } + + #footer { + border-top: $border; + + a { + color: $secondary-link-color; + } + } + + .subtext, + .subtext-palm, + .subtext-laptop, + .domain, + .meta, + .deleted-meta { + color: $subtext-color; + + a { + color: $secondary-link-color; + } + } + + .popup { + background: $header-background-color; + } + + .item-header { + border-bottom: $border; + + @media #{$mobile-only} { + background: $wrapper-mobile-background-color; + } + } + + .pollContent { + .pollBar { + background: $secondary-link-color; + } + } + + .loader { + color: $secondary-link-color; + background: $secondary-link-color; + + &:before, + &:after { + background: $secondary-link-color; + } + } + + .job-header { + @media #{$mobile-only} { + border-bottom: $border; + } + } + + .back-button { + @media #{$mobile-only} { + border-top: 0.3rem solid $secondary-link-color; + border-right: 0.3rem solid $secondary-link-color; + } + } + + .error-section { + .skull { + .head { + background-color: $secondary-link-color; + + &:before, + &:after { + background-color: $wrapper-background-color; + + @media #{$mobile-only} { + background-color: $wrapper-mobile-background-color; + } + } + + .crack { + background-color: $wrapper-background-color; + + @media #{$mobile-only} { + background-color: $wrapper-mobile-background-color; + } + + &:before { + border-top: math.div($skull-size, 8) solid $wrapper-background-color; + + @media #{$mobile-only} { + border-top: math.div($skull-size, 8) solid $wrapper-mobile-background-color; + } + } + } + } + + .mouth { + background-color: $secondary-link-color; + + &:before { + background-color: $wrapper-background-color; + + @media #{$mobile-only} { + background-color: $wrapper-mobile-background-color; + } + } + } + + .teeth { + background-color: $wrapper-background-color; + + @media #{$mobile-only} { + background-color: $wrapper-mobile-background-color; + } + + &:before, + &:after { + background-color: $wrapper-background-color; + + @media #{$mobile-only} { + background-color: $wrapper-mobile-background-color; + } + } + } + } + } + + .main-details { + .name { + color: $secondary-link-color; + } + .right { + color: $secondary-link-color; + } + } + } + } +} + +@include theme( + default, + $theme-day-body-background-color, + $theme-day-wrapper-background-color, + $theme-day-wrapper-mobile-background-color, + $theme-day-text-color, + $theme-day-text-color, + $theme-day-subtext-color, + $theme-day-header-background-color, + $theme-day-subtext-color, + $theme-day-secondary-color, + $theme-day-logo-inner, + $theme-day-border +); + +@include theme( + night, + $theme-night-body-background-color, + $theme-night-wrapper-background-color, + $theme-night-wrapper-mobile-background-color, + $theme-night-text-color, + $theme-night-text-color, + $theme-night-subtext-color, + $theme-night-header-background-color, + $theme-night-subtext-color, + $theme-night-secondary-color, + $theme-night-logo-inner, + $theme-night-border +); + +@include theme( + amoledblack, + $theme-amoledblack-body-background-color, + $theme-amoledblack-body-background-color, + $theme-amoledblack-body-background-color, + $theme-amoledblack-text-color, + $theme-amoledblack-text-color, + color.adjust($theme-amoledblack-text-color, $lightness: -33%), + $theme-amoledblack-body-background-color, + $theme-amoledblack-subtext-color, + $theme-amoledblack-secondary-color, + $theme-amoledblack-body-background-color, + $theme-amoledblack-secondary-color +); + +/* ---------------------------------- + + Include your new theme here as well as the settings component + +---------------------------------- */ diff --git a/react-app/src/styles/styles.scss b/react-app/src/styles/styles.scss new file mode 100644 index 000000000..1b73af9ea --- /dev/null +++ b/react-app/src/styles/styles.scss @@ -0,0 +1,44 @@ +@use './themes'; + +html { + height: 100%; + width: 100%; +} + +body { + margin: 0; + height: 100%; + width: 100%; +} + +pre { + white-space: pre-wrap; +} + +.app-loader { + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + position: fixed; + height: 100%; + width: 100%; + top: 0; + left: 0; + z-index: -1; +} + +@media screen and (max-width: 768px) { + .app-loader { + background-color: #fff; + } +} + +#root:empty + .app-loader { + opacity: 1; + z-index: 100; +} + +#root:empty + .app-loader .logo { + width: 20vh; +} diff --git a/react-app/tsconfig.app.json b/react-app/tsconfig.app.json new file mode 100644 index 000000000..13f7fe516 --- /dev/null +++ b/react-app/tsconfig.app.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "es2023", + "lib": ["ES2023", "DOM"], + "module": "esnext", + "types": ["vite/client"], + "allowArbitraryExtensions": true, + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/react-app/tsconfig.json b/react-app/tsconfig.json new file mode 100644 index 000000000..eb69b0d08 --- /dev/null +++ b/react-app/tsconfig.json @@ -0,0 +1,4 @@ +{ + "files": [], + "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }] +} diff --git a/react-app/tsconfig.node.json b/react-app/tsconfig.node.json new file mode 100644 index 000000000..59a44923a --- /dev/null +++ b/react-app/tsconfig.node.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "es2023", + "lib": ["ES2023"], + "types": ["node"], + "skipLibCheck": true, + + /* Bundler mode */ + "module": "nodenext", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["vite.config.ts"] +} diff --git a/react-app/vite.config.ts b/react-app/vite.config.ts new file mode 100644 index 000000000..ddee8c49a --- /dev/null +++ b/react-app/vite.config.ts @@ -0,0 +1,7 @@ +import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +}); From 33c9f25a35a705ad800b3a16f653ba3ccb0cbb26 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 28 Aug 2026 14:51:49 +0000 Subject: [PATCH 2/2] bug: use root-absolute asset paths so images resolve on nested routes Co-Authored-By: Charity Quinn --- react-app/index.html | 24 ++++++++++++------------ react-app/src/App.tsx | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/react-app/index.html b/react-app/index.html index 96567e714..c11ae4c1a 100644 --- a/react-app/index.html +++ b/react-app/index.html @@ -11,12 +11,12 @@ - + - + @@ -26,23 +26,23 @@ - - + + - + - - + + - - - - + + + +