From 31967a2ecb325768f78cd2e34c925a79d9b4509c Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Tue, 14 Oct 2025 13:06:18 +0330 Subject: [PATCH] structure + layout header sidebar --- .env | 2 + .gitignore | 24 + README.md | 75 + eslint.config.js | 23 + index.html | 13 + package-lock.json | 4760 +++++++++++++++++ package.json | 43 + public/vite.svg | 1 + src/App.css | 42 + src/App.tsx | 20 + src/assets/fonts/irancell/irancell-bold.ttf | Bin 0 -> 82916 bytes .../fonts/irancell/irancell-extralight.ttf | Bin 0 -> 84116 bytes src/assets/fonts/irancell/irancell-light.ttf | Bin 0 -> 84028 bytes src/assets/fonts/irancell/style.css | 18 + src/assets/images/avatar_image.png | Bin 0 -> 5046 bytes src/assets/images/close-circle.svg | 4 + src/assets/images/logo.svg | 17 + src/assets/react.svg | 1 + src/components/Button.tsx | 41 + src/components/Error.tsx | 15 + src/components/Input.tsx | 117 + src/components/StatusCircle copy.tsx | 15 + src/components/StatusCircle.tsx | 15 + src/components/Toast.tsx | 67 + src/config/Paths.tsx | 16 + src/config/axios.ts | 33 + src/config/func.ts | 47 + src/helpers/types.ts | 20 + src/helpers/utils.ts | 11 + src/hooks/useOutSideClick.tsx | 24 + src/index.css | 47 + src/locale/fa.ts | 18 + src/locale/index.ts | 39 + src/main.tsx | 10 + src/pages/home/Home.tsx | 9 + src/pages/notification/Notification.tsx | 149 + .../notification/hooks/useNotificationData.ts | 22 + .../service/NotificationService.ts | 18 + .../notification/types/NotificationTypes.ts | 33 + src/pages/profile/hooks/useProfileData.ts | 21 + src/pages/wallet/hooks/useWalletData.ts | 16 + src/router/AuthRouter.tsx | 12 + src/router/MainRouter.tsx | 26 + src/shared/Header.tsx | 172 + src/shared/Sidebar.tsx | 121 + src/shared/SidebarItem.tsx | 45 + src/shared/store/useSharedStore.ts | 15 + src/shared/toast.ts | 21 + src/shared/types/Types.ts | 4 + tsconfig.app.json | 40 + tsconfig.json | 7 + tsconfig.node.json | 36 + vite.config.ts | 17 + 53 files changed, 6362 insertions(+) create mode 100644 .env create mode 100644 .gitignore create mode 100644 README.md create mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/vite.svg create mode 100644 src/App.css create mode 100644 src/App.tsx create mode 100644 src/assets/fonts/irancell/irancell-bold.ttf create mode 100644 src/assets/fonts/irancell/irancell-extralight.ttf create mode 100644 src/assets/fonts/irancell/irancell-light.ttf create mode 100644 src/assets/fonts/irancell/style.css create mode 100644 src/assets/images/avatar_image.png create mode 100644 src/assets/images/close-circle.svg create mode 100644 src/assets/images/logo.svg create mode 100644 src/assets/react.svg create mode 100644 src/components/Button.tsx create mode 100644 src/components/Error.tsx create mode 100644 src/components/Input.tsx create mode 100644 src/components/StatusCircle copy.tsx create mode 100644 src/components/StatusCircle.tsx create mode 100644 src/components/Toast.tsx create mode 100644 src/config/Paths.tsx create mode 100644 src/config/axios.ts create mode 100644 src/config/func.ts create mode 100644 src/helpers/types.ts create mode 100644 src/helpers/utils.ts create mode 100644 src/hooks/useOutSideClick.tsx create mode 100644 src/index.css create mode 100644 src/locale/fa.ts create mode 100644 src/locale/index.ts create mode 100644 src/main.tsx create mode 100644 src/pages/home/Home.tsx create mode 100644 src/pages/notification/Notification.tsx create mode 100644 src/pages/notification/hooks/useNotificationData.ts create mode 100644 src/pages/notification/service/NotificationService.ts create mode 100644 src/pages/notification/types/NotificationTypes.ts create mode 100644 src/pages/profile/hooks/useProfileData.ts create mode 100644 src/pages/wallet/hooks/useWalletData.ts create mode 100644 src/router/AuthRouter.tsx create mode 100644 src/router/MainRouter.tsx create mode 100644 src/shared/Header.tsx create mode 100644 src/shared/Sidebar.tsx create mode 100644 src/shared/SidebarItem.tsx create mode 100644 src/shared/store/useSharedStore.ts create mode 100644 src/shared/toast.ts create mode 100644 src/shared/types/Types.ts create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.env b/.env new file mode 100644 index 0000000..c2ef360 --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ +VITE_TOKEN_NAME = 'negareh_t' +VITE_REFRESH_TOKEN_NAME = 'negareh_rt' \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.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/README.md b/README.md new file mode 100644 index 0000000..86b2b11 --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## React Compiler + +The React Compiler is enabled on this template. See [this documentation](https://react.dev/learn/react-compiler) for more information. + +Note: This will impact Vite dev & build performances. + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: + +```js +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + // Other configs... + + // Remove tseslint.configs.recommended and replace with this + tseslint.configs.recommendedTypeChecked, + // Alternatively, use this for stricter rules + tseslint.configs.strictTypeChecked, + // Optionally, add this for stylistic rules + tseslint.configs.stylisticTypeChecked, + + // Other configs... + ], + languageOptions: { + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + // other options... + }, + }, +]) +``` + +You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: + +```js +// eslint.config.js +import reactX from 'eslint-plugin-react-x' +import reactDom from 'eslint-plugin-react-dom' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + // Other configs... + // Enable lint rules for React + reactX.configs['recommended-typescript'], + // Enable lint rules for React DOM + reactDom.configs.recommended, + ], + languageOptions: { + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + // other options... + }, + }, +]) +``` diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..b19330b --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,23 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' +import { defineConfig, globalIgnores } from 'eslint/config' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + js.configs.recommended, + tseslint.configs.recommended, + reactHooks.configs['recommended-latest'], + reactRefresh.configs.vite, + ], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + }, +]) diff --git a/index.html b/index.html new file mode 100644 index 0000000..26f94ef --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + negareh-console + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..3ab6ec9 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4760 @@ +{ + "name": "negareh-console", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "negareh-console", + "version": "0.0.0", + "dependencies": { + "@headlessui/react": "^2.2.9", + "@tailwindcss/vite": "^4.1.14", + "@tanstack/react-query": "^5.90.3", + "axios": "^1.12.2", + "iconsax-react": "^0.0.8", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "react-infinite-scroll-component": "^6.1.0", + "react-router-dom": "^7.9.4", + "react-spinners": "^0.17.0", + "tailwind-merge": "^3.3.1", + "tailwindcss": "^4.1.14", + "vite-tsconfig-paths": "^5.1.4", + "zustand": "^5.0.8" + }, + "devDependencies": { + "@eslint/js": "^9.36.0", + "@types/node": "^24.6.0", + "@types/react": "^19.2.2", + "@types/react-dom": "^19.2.2", + "@vitejs/plugin-react": "^5.0.4", + "babel-plugin-react-compiler": "^19.1.0-rc.3", + "eslint": "^9.36.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.22", + "globals": "^16.4.0", + "typescript": "~5.9.3", + "typescript-eslint": "^8.45.0", + "vite": "^7.1.7" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@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.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@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.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "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.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz", + "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz", + "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz", + "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz", + "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz", + "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz", + "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz", + "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz", + "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz", + "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz", + "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz", + "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz", + "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz", + "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz", + "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz", + "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz", + "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz", + "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz", + "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz", + "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz", + "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz", + "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz", + "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz", + "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz", + "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz", + "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz", + "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "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.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.0.tgz", + "integrity": "sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.16.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", + "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.37.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.37.0.tgz", + "integrity": "sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz", + "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.16.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/react": { + "version": "0.26.28", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz", + "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.2", + "@floating-ui/utils": "^0.2.8", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", + "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.4" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" + }, + "node_modules/@headlessui/react": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.2.9.tgz", + "integrity": "sha512-Mb+Un58gwBn0/yWZfyrCh0TJyurtT+dETj7YHleylHk5od3dv2XqETPGWMyQ5/7sYN7oWdyM1u9MvC0OC8UmzQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/react": "^0.26.16", + "@react-aria/focus": "^3.20.2", + "@react-aria/interactions": "^3.25.0", + "@tanstack/react-virtual": "^3.13.9", + "use-sync-external-store": "^1.5.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "react-dom": "^18 || ^19 || ^19.0.0-rc" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.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/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "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==", + "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "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==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@react-aria/focus": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.21.2.tgz", + "integrity": "sha512-JWaCR7wJVggj+ldmM/cb/DXFg47CXR55lznJhZBh4XVqJjMKwaOOqpT5vNN7kpC1wUpXicGNuDnJDN1S/+6dhQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.25.6", + "@react-aria/utils": "^3.31.0", + "@react-types/shared": "^3.32.1", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/interactions": { + "version": "3.25.6", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.25.6.tgz", + "integrity": "sha512-5UgwZmohpixwNMVkMvn9K1ceJe6TzlRlAfuYoQDUuOkk62/JVJNDLAPKIf5YMRc7d2B0rmfgaZLMtbREb0Zvkw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.10", + "@react-aria/utils": "^3.31.0", + "@react-stately/flags": "^3.1.2", + "@react-types/shared": "^3.32.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.10.tgz", + "integrity": "sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/utils": { + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.31.0.tgz", + "integrity": "sha512-ABOzCsZrWzf78ysswmguJbx3McQUja7yeGj6/vZo4JVsZNlxAN+E9rs381ExBRI0KzVo6iBTeX5De8eMZPJXig==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.10", + "@react-stately/flags": "^3.1.2", + "@react-stately/utils": "^3.10.8", + "@react-types/shared": "^3.32.1", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/flags": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.2.tgz", + "integrity": "sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@react-stately/utils": { + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.8.tgz", + "integrity": "sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/shared": { + "version": "3.32.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.32.1.tgz", + "integrity": "sha512-famxyD5emrGGpFuUlgOP6fVW2h/ZaF405G5KDi3zPHzyjAWys/8W6NAVJtNbkCkhedmvL0xOhvt8feGXyXaw5w==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.38", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.38.tgz", + "integrity": "sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.4.tgz", + "integrity": "sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.4.tgz", + "integrity": "sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.4.tgz", + "integrity": "sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.4.tgz", + "integrity": "sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.4.tgz", + "integrity": "sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.4.tgz", + "integrity": "sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.4.tgz", + "integrity": "sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.4.tgz", + "integrity": "sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.4.tgz", + "integrity": "sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.4.tgz", + "integrity": "sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.4.tgz", + "integrity": "sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.4.tgz", + "integrity": "sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.4.tgz", + "integrity": "sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.4.tgz", + "integrity": "sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.4.tgz", + "integrity": "sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.4.tgz", + "integrity": "sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.4.tgz", + "integrity": "sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.4.tgz", + "integrity": "sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.4.tgz", + "integrity": "sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.4.tgz", + "integrity": "sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.4.tgz", + "integrity": "sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.4.tgz", + "integrity": "sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/helpers": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz", + "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.14.tgz", + "integrity": "sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.6.0", + "lightningcss": "1.30.1", + "magic-string": "^0.30.19", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.14" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.14.tgz", + "integrity": "sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.5.1" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.14", + "@tailwindcss/oxide-darwin-arm64": "4.1.14", + "@tailwindcss/oxide-darwin-x64": "4.1.14", + "@tailwindcss/oxide-freebsd-x64": "4.1.14", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.14", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.14", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.14", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.14", + "@tailwindcss/oxide-linux-x64-musl": "4.1.14", + "@tailwindcss/oxide-wasm32-wasi": "4.1.14", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.14", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.14" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.14.tgz", + "integrity": "sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.14.tgz", + "integrity": "sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.14.tgz", + "integrity": "sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.14.tgz", + "integrity": "sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.14.tgz", + "integrity": "sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.14.tgz", + "integrity": "sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.14.tgz", + "integrity": "sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.14.tgz", + "integrity": "sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.14.tgz", + "integrity": "sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.14.tgz", + "integrity": "sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.5.0", + "@emnapi/runtime": "^1.5.0", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.0.5", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.14.tgz", + "integrity": "sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.14.tgz", + "integrity": "sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.14.tgz", + "integrity": "sha512-BoFUoU0XqgCUS1UXWhmDJroKKhNXeDzD7/XwabjkDIAbMnc4ULn5e2FuEuBbhZ6ENZoSYzKlzvZ44Yr6EUDUSA==", + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.14", + "@tailwindcss/oxide": "4.1.14", + "tailwindcss": "4.1.14" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.3.tgz", + "integrity": "sha512-HtPOnCwmx4dd35PfXU8jjkhwYrsHfuqgC8RCJIwWglmhIUIlzPP0ZcEkDAc+UtAWCiLm7T8rxeEfHZlz3hYMCA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.3.tgz", + "integrity": "sha512-i/LRL6DtuhG6bjGzavIMIVuKKPWx2AnEBIsBfuMm3YoHne0a20nWmsatOCBcVSaT0/8/5YFjNkebHAPLVUSi0Q==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.90.3" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@tanstack/react-virtual": { + "version": "3.13.12", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.12.tgz", + "integrity": "sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==", + "license": "MIT", + "dependencies": { + "@tanstack/virtual-core": "3.13.12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.13.12", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.12.tgz", + "integrity": "sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "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.7.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.2.tgz", + "integrity": "sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.14.0" + } + }, + "node_modules/@types/react": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz", + "integrity": "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.2.tgz", + "integrity": "sha512-9KQPoO6mZCi7jcIStSnlOWn2nEF3mNmyr3rIAsGnAbQKYbRLyqmeSc39EVgtxXVia+LMT8j3knZLAZAh+xLmrw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.0.tgz", + "integrity": "sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.46.0", + "@typescript-eslint/type-utils": "8.46.0", + "@typescript-eslint/utils": "8.46.0", + "@typescript-eslint/visitor-keys": "8.46.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.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.46.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.0.tgz", + "integrity": "sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.46.0", + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/typescript-estree": "8.46.0", + "@typescript-eslint/visitor-keys": "8.46.0", + "debug": "^4.3.4" + }, + "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", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.0.tgz", + "integrity": "sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.46.0", + "@typescript-eslint/types": "^8.46.0", + "debug": "^4.3.4" + }, + "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.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.0.tgz", + "integrity": "sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/visitor-keys": "8.46.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.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.0.tgz", + "integrity": "sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==", + "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.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.0.tgz", + "integrity": "sha512-hy+lvYV1lZpVs2jRaEYvgCblZxUoJiPyCemwbQZ+NGulWkQRy0HRPYAoef/CNSzaLt+MLvMptZsHXHlkEilaeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/typescript-estree": "8.46.0", + "@typescript-eslint/utils": "8.46.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.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", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.0.tgz", + "integrity": "sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==", + "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.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.0.tgz", + "integrity": "sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.46.0", + "@typescript-eslint/tsconfig-utils": "8.46.0", + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/visitor-keys": "8.46.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.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.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.0.tgz", + "integrity": "sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.46.0", + "@typescript-eslint/types": "8.46.0", + "@typescript-eslint/typescript-estree": "8.46.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", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.0.tgz", + "integrity": "sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.46.0", + "eslint-visitor-keys": "^4.2.1" + }, + "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": "5.0.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.4.tgz", + "integrity": "sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.4", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.38", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "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.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", + "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-plugin-react-compiler": { + "version": "19.1.0-rc.3", + "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-19.1.0-rc.3.tgz", + "integrity": "sha512-mjRn69WuTz4adL0bXGx8Rsyk1086zFJeKmes6aK0xPuK3aaXmDJdLHqwKKMrpm6KAI1MCoUK72d2VeqQbu8YIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.16", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.16.tgz", + "integrity": "sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.26.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", + "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", + "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.8.9", + "caniuse-lite": "^1.0.30001746", + "electron-to-chromium": "^1.5.227", + "node-releases": "^2.0.21", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001750", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001750.tgz", + "integrity": "sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==", + "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/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "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/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "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.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": 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==", + "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/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.234", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.234.tgz", + "integrity": "sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg==", + "dev": true, + "license": "ISC" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", + "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.10", + "@esbuild/android-arm": "0.25.10", + "@esbuild/android-arm64": "0.25.10", + "@esbuild/android-x64": "0.25.10", + "@esbuild/darwin-arm64": "0.25.10", + "@esbuild/darwin-x64": "0.25.10", + "@esbuild/freebsd-arm64": "0.25.10", + "@esbuild/freebsd-x64": "0.25.10", + "@esbuild/linux-arm": "0.25.10", + "@esbuild/linux-arm64": "0.25.10", + "@esbuild/linux-ia32": "0.25.10", + "@esbuild/linux-loong64": "0.25.10", + "@esbuild/linux-mips64el": "0.25.10", + "@esbuild/linux-ppc64": "0.25.10", + "@esbuild/linux-riscv64": "0.25.10", + "@esbuild/linux-s390x": "0.25.10", + "@esbuild/linux-x64": "0.25.10", + "@esbuild/netbsd-arm64": "0.25.10", + "@esbuild/netbsd-x64": "0.25.10", + "@esbuild/openbsd-arm64": "0.25.10", + "@esbuild/openbsd-x64": "0.25.10", + "@esbuild/openharmony-arm64": "0.25.10", + "@esbuild/sunos-x64": "0.25.10", + "@esbuild/win32-arm64": "0.25.10", + "@esbuild/win32-ia32": "0.25.10", + "@esbuild/win32-x64": "0.25.10" + } + }, + "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": "9.37.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.37.0.tgz", + "integrity": "sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.4.0", + "@eslint/core": "^0.16.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.37.0", + "@eslint/plugin-kit": "^0.4.0", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.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", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.23.tgz", + "integrity": "sha512-G4j+rv0NmbIR45kni5xJOrYvCtyD3/7LjpVH8MPPcudXDcNu8gv+4ATTDXTtbRR8rTCM5HxECvCSsRmxKnWDsA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "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-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "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/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "license": "MIT" + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/iconsax-react": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/iconsax-react/-/iconsax-react-0.0.8.tgz", + "integrity": "sha512-l3dVk4zGtkkJHgvNYqAf0wDKqnKxXykee5/DoESGo2JvSYwaxajJUHSX2YrPRXSov8Hd8ClGFwJxCEaEjrFD1Q==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "*" + } + }, + "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/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.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/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "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-darwin-arm64": "1.30.1", + "lightningcss-darwin-x64": "1.30.1", + "lightningcss-freebsd-x64": "1.30.1", + "lightningcss-linux-arm-gnueabihf": "1.30.1", + "lightningcss-linux-arm64-gnu": "1.30.1", + "lightningcss-linux-arm64-musl": "1.30.1", + "lightningcss-linux-x64-gnu": "1.30.1", + "lightningcss-linux-x64-musl": "1.30.1", + "lightningcss-win32-arm64-msvc": "1.30.1", + "lightningcss-win32-x64-msvc": "1.30.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "cpu": [ + "arm64" + ], + "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.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "cpu": [ + "x64" + ], + "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.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "cpu": [ + "x64" + ], + "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.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "cpu": [ + "arm" + ], + "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.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "cpu": [ + "arm64" + ], + "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.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "cpu": [ + "arm64" + ], + "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.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "cpu": [ + "x64" + ], + "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.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "cpu": [ + "x64" + ], + "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.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "cpu": [ + "arm64" + ], + "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.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "cpu": [ + "x64" + ], + "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/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "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/magic-string": { + "version": "0.30.19", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", + "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "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-releases": { + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.23.tgz", + "integrity": "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "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.11", + "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/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "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/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", + "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", + "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.0" + } + }, + "node_modules/react-infinite-scroll-component": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-infinite-scroll-component/-/react-infinite-scroll-component-6.1.0.tgz", + "integrity": "sha512-SQu5nCqy8DxQWpnUVLx7V7b7LcA37aM7tvoWjTLZp1dk6EJibM5/4EJKzOnl07/BsM1Y40sKLuqjCwwH/xV0TQ==", + "license": "MIT", + "dependencies": { + "throttle-debounce": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.0.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.4.tgz", + "integrity": "sha512-SD3G8HKviFHg9xj7dNODUKDFgpG4xqD5nhyd0mYoB5iISepuZAvzSr8ywxgxKJ52yRzf/HWtVHc9AWwoTbljvA==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.9.4.tgz", + "integrity": "sha512-f30P6bIkmYvnHHa5Gcu65deIXoA2+r3Eb6PJIAddvsT9aGlchMatJ51GgpU470aSqRRbFX22T70yQNUGuW3DfA==", + "license": "MIT", + "dependencies": { + "react-router": "7.9.4" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-spinners": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-spinners/-/react-spinners-0.17.0.tgz", + "integrity": "sha512-L/8HTylaBmIWwQzIjMq+0vyaRXuoAevzWoD35wKpNTxxtYXWZp+xtgkfD7Y4WItuX0YvdxMPU79+7VhhmbmuTQ==", + "license": "MIT", + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz", + "integrity": "sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.52.4", + "@rollup/rollup-android-arm64": "4.52.4", + "@rollup/rollup-darwin-arm64": "4.52.4", + "@rollup/rollup-darwin-x64": "4.52.4", + "@rollup/rollup-freebsd-arm64": "4.52.4", + "@rollup/rollup-freebsd-x64": "4.52.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.52.4", + "@rollup/rollup-linux-arm-musleabihf": "4.52.4", + "@rollup/rollup-linux-arm64-gnu": "4.52.4", + "@rollup/rollup-linux-arm64-musl": "4.52.4", + "@rollup/rollup-linux-loong64-gnu": "4.52.4", + "@rollup/rollup-linux-ppc64-gnu": "4.52.4", + "@rollup/rollup-linux-riscv64-gnu": "4.52.4", + "@rollup/rollup-linux-riscv64-musl": "4.52.4", + "@rollup/rollup-linux-s390x-gnu": "4.52.4", + "@rollup/rollup-linux-x64-gnu": "4.52.4", + "@rollup/rollup-linux-x64-musl": "4.52.4", + "@rollup/rollup-openharmony-arm64": "4.52.4", + "@rollup/rollup-win32-arm64-msvc": "4.52.4", + "@rollup/rollup-win32-ia32-msvc": "4.52.4", + "@rollup/rollup-win32-x64-gnu": "4.52.4", + "@rollup/rollup-win32-x64-msvc": "4.52.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "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/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "license": "MIT" + }, + "node_modules/tailwind-merge": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", + "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.14.tgz", + "integrity": "sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz", + "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/throttle-debounce": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz", + "integrity": "sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tsconfck": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", + "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", + "license": "MIT", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "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": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.46.0.tgz", + "integrity": "sha512-6+ZrB6y2bT2DX3K+Qd9vn7OFOJR+xSLDj+Aw/N3zBwUt27uTw2sw2TE2+UcY1RiyBZkaGbTkVg9SSdPNUG6aUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.46.0", + "@typescript-eslint/parser": "8.46.0", + "@typescript-eslint/typescript-estree": "8.46.0", + "@typescript-eslint/utils": "8.46.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", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/undici-types": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz", + "integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "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/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/vite": { + "version": "7.1.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.9.tgz", + "integrity": "sha512-4nVGliEpxmhCL8DslSAUdxlB6+SMrhB0a1v5ijlh1xB1nEPuy1mxaHxysVucLHuWryAxLWg6a5ei+U4TLn/rFg==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "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", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.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 + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "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/vite-tsconfig-paths": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-5.1.4.tgz", + "integrity": "sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.3" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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/zustand": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.8.tgz", + "integrity": "sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..62a9e31 --- /dev/null +++ b/package.json @@ -0,0 +1,43 @@ +{ + "name": "negareh-console", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@headlessui/react": "^2.2.9", + "@tailwindcss/vite": "^4.1.14", + "@tanstack/react-query": "^5.90.3", + "axios": "^1.12.2", + "iconsax-react": "^0.0.8", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "react-infinite-scroll-component": "^6.1.0", + "react-router-dom": "^7.9.4", + "react-spinners": "^0.17.0", + "tailwind-merge": "^3.3.1", + "tailwindcss": "^4.1.14", + "vite-tsconfig-paths": "^5.1.4", + "zustand": "^5.0.8" + }, + "devDependencies": { + "@eslint/js": "^9.36.0", + "@types/node": "^24.6.0", + "@types/react": "^19.2.2", + "@types/react-dom": "^19.2.2", + "@vitejs/plugin-react": "^5.0.4", + "babel-plugin-react-compiler": "^19.1.0-rc.3", + "eslint": "^9.36.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.22", + "globals": "^16.4.0", + "typescript": "~5.9.3", + "typescript-eslint": "^8.45.0", + "vite": "^7.1.7" + } +} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..c26f1b6 --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,20 @@ +import { type FC } from 'react' +import '@/assets/fonts/irancell/style.css' +import { BrowserRouter } from 'react-router-dom' +// import { getToken } from './config/func' +import MainRouter from './router/MainRouter' +// import AuthRouter from './router/AuthRouter' + +const App: FC = () => { + + // const isLoggedIn = getToken() + + return ( + + {/* {isLoggedIn ? : } */} + + + ) +} + +export default App \ No newline at end of file diff --git a/src/assets/fonts/irancell/irancell-bold.ttf b/src/assets/fonts/irancell/irancell-bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dac6c530a3812df93429b4268f87a5b2baf20b6e GIT binary patch literal 82916 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 literal 0 HcmV?d00001 diff --git a/src/assets/fonts/irancell/irancell-extralight.ttf b/src/assets/fonts/irancell/irancell-extralight.ttf new file mode 100644 index 0000000000000000000000000000000000000000..80e0d2622e40a9a5e3c4ec5666447712d4634bdd GIT binary patch literal 84116 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 + + + diff --git a/src/assets/images/logo.svg b/src/assets/images/logo.svg new file mode 100644 index 0000000..3b7f8e5 --- /dev/null +++ b/src/assets/images/logo.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/assets/react.svg b/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/Button.tsx b/src/components/Button.tsx new file mode 100644 index 0000000..91a1105 --- /dev/null +++ b/src/components/Button.tsx @@ -0,0 +1,41 @@ +import type { ButtonHTMLAttributes, FC, ReactNode } from 'react' +import { memo } from 'react' +import MoonLoader from "react-spinners/MoonLoader" +import { type XOR } from '@/helpers/types' +import { clx } from '@/helpers/utils' + +type Props = { + className?: string; + isLoading?: boolean, + percentage?: number, +} & ButtonHTMLAttributes & + XOR<{ children: ReactNode }, { label: string }>; + +const Button: FC = memo((props: Props) => { + + const buttonClass = clx( + 'flex rounded-xl items-center justify-center text-center h-10 text-sm bg-primary text-white w-full', + props.disabled && 'cursor-not-allowed opacity-60', + props.className + ); + + return ( + + ) +}) + +export default Button \ No newline at end of file diff --git a/src/components/Error.tsx b/src/components/Error.tsx new file mode 100644 index 0000000..dc6aeac --- /dev/null +++ b/src/components/Error.tsx @@ -0,0 +1,15 @@ +import { type FC } from 'react' + +type Props = { + errorText: string +} + +const Error: FC = (props: Props) => { + return ( +
+ {props.errorText} +
+ ) +} + +export default Error \ No newline at end of file diff --git a/src/components/Input.tsx b/src/components/Input.tsx new file mode 100644 index 0000000..8ec9e87 --- /dev/null +++ b/src/components/Input.tsx @@ -0,0 +1,117 @@ +import { type FC, type InputHTMLAttributes, useEffect, useState } from 'react' +import { clx } from '../helpers/utils'; +import { Eye, EyeSlash, SearchNormal } from 'iconsax-react'; +import Error from './Error'; + +type Variant = "floating_outlined" | "primary" | "search"; + +type Props = { + label?: string; + className?: string; + variant?: Variant; + error_text?: string; + onEnter?: () => void; + unit?: string; + seprator?: boolean; + isNotRequired?: boolean; + onChangeSearchFinal?: (value: string) => void; +} & InputHTMLAttributes + +const formatNumber = (value: string | number): string => { + if (!value) return ''; + const inputValue = String(value).replace(/,/g, ''); + return inputValue.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); +}; + +const Input: FC = (props: Props) => { + + const [formattedValue, setFormattedValue] = useState( + props.value ? formatNumber(props.value as string) : '' + ); + + const [showPassword, setShowPassword] = useState(false) + const [search, setSearch] = useState('') + + const inputClass = clx( + 'w-full h-10 text-black block px-4 text-xs rounded-xl border border-border', + props.readOnly && 'bg-gray-100 border-0 text-description', + props.variant === 'search' && 'bg-[#EEF0F7] border-0 ps-10', + props.className + ); + + const handleInputChange = (event: React.ChangeEvent) => { + if (props.seprator) { + const inputValue = event.target.value.replace(/,/g, ''); // حذف کاماها + const formatted = formatNumber(inputValue); + + // به‌روزرسانی مقدار قالب‌بندی‌شده + setFormattedValue(formatted); + + // ارسال مقدار خام به `onChange` والد + props.onChange?.({ + ...event, + target: { + ...event.target, + value: inputValue, + }, + }); + } else { + props.onChange?.(event); + } + }; + + useEffect(() => { + if (props.value) { + setFormattedValue(formatNumber(props.value as string)); + } else { + setFormattedValue(''); + } + }, [props.value]) + + useEffect(() => { + if (props.variant === 'search' && props.onChangeSearchFinal) { + const timeout = setTimeout(() => { + props.onChangeSearchFinal?.(search) + }, 1000) + return () => clearTimeout(timeout) + } + }, [search, props]) + + + return ( +
+ + +
+ { + setSearch(e.target.value) + handleInputChange(e) + }} value={props.seprator ? formattedValue : props.value} type={props.type === 'password' && showPassword ? 'text' : props.type === 'password' ? 'password' : undefined} className={inputClass} /> + + { + props.type === 'password' && + (showPassword ? + setShowPassword((oldValue) => !oldValue)} className='w-5 absolute top-0 bottom-0 cursor-pointer my-auto left-3' /> : + setShowPassword((oldValue) => !oldValue)} className='w-5 absolute top-0 bottom-0 cursor-pointer my-auto left-3' /> + ) + } + + { + props.variant === 'search' && + + } + + { + props.error_text && + + } +
+
+ ) +} + +export default Input \ No newline at end of file diff --git a/src/components/StatusCircle copy.tsx b/src/components/StatusCircle copy.tsx new file mode 100644 index 0000000..327d09b --- /dev/null +++ b/src/components/StatusCircle copy.tsx @@ -0,0 +1,15 @@ +import { type FC } from 'react' + +type Props = { + color: string +} + +const StatusCircle: FC = (props: Props) => { + return ( +
+ +
+ ) +} + +export default StatusCircle \ No newline at end of file diff --git a/src/components/StatusCircle.tsx b/src/components/StatusCircle.tsx new file mode 100644 index 0000000..327d09b --- /dev/null +++ b/src/components/StatusCircle.tsx @@ -0,0 +1,15 @@ +import { type FC } from 'react' + +type Props = { + color: string +} + +const StatusCircle: FC = (props: Props) => { + return ( +
+ +
+ ) +} + +export default StatusCircle \ No newline at end of file diff --git a/src/components/Toast.tsx b/src/components/Toast.tsx new file mode 100644 index 0000000..6d9eb9c --- /dev/null +++ b/src/components/Toast.tsx @@ -0,0 +1,67 @@ +import { CloseCircle, InfoCircle, TickCircle } from 'iconsax-react'; +import React, { useState, useEffect } from 'react'; +import { setAddToast } from '../shared/toast'; + +interface Toast { + id: string; + message: string; + type?: 'success' | 'error' | 'info'; + isExiting?: boolean; +} + +const ToastContainer: React.FC = () => { + const [toasts, setToasts] = useState([]); + + // ثبت toast جدید + const showToast = (toast: Toast) => { + setToasts((prev) => [...prev, toast]); + + // حذف خودکار بعد از ۳ ثانیه + setTimeout(() => { + setToasts((prev) => prev.map(t => + t.id === toast.id ? { ...t, isExiting: true } : t + )); + + // حذف از DOM بعد از اتمام انیمیشن + setTimeout(() => { + setToasts((prev) => prev.filter((t) => t.id !== toast.id)); + }, 300); // مدت زمان انیمیشن خروج + }, 3000); + }; + + // تخصیص تابع نمایش toast به متغیر سراسری + useEffect(() => { + setAddToast(showToast); + }, []); + + return ( +
+ {toasts.map((toast) => ( +
+ { + toast.type === 'success' ? : + toast.type === 'error' ? : + + } + {toast.message} +
+ ))} +
+ ); +}; + +export default ToastContainer; \ No newline at end of file diff --git a/src/config/Paths.tsx b/src/config/Paths.tsx new file mode 100644 index 0000000..b631dab --- /dev/null +++ b/src/config/Paths.tsx @@ -0,0 +1,16 @@ +export const Paths = { + home: '/home', + myOrders: '/my-orders', + preFactors: '/pre-factors', + tickets: { + list: '/tickets', + }, + announcement: { + list: '/announcement', + }, + criticisms: '/criticisms', + learning: '/learning', + auth: { + login: '/auth/login', + }, +} \ No newline at end of file diff --git a/src/config/axios.ts b/src/config/axios.ts new file mode 100644 index 0000000..231213b --- /dev/null +++ b/src/config/axios.ts @@ -0,0 +1,33 @@ +import axios from "axios"; +import { getToken } from "./func"; + +const instance = axios.create({ + baseURL: import.meta.env.VITE_API_URL || "http://localhost:3000/api", + timeout: 10000, +}); + +instance.interceptors.request.use( + (config) => { + const token = getToken(); + if (token) { + config.headers.Authorization = `Bearer ${token}`; + } + return config; + }, + (error) => { + return Promise.reject(error); + } +); + +instance.interceptors.response.use( + (response) => response, + (error) => { + if (error.response?.status === 401) { + // Handle unauthorized + console.log("Unauthorized"); + } + return Promise.reject(error); + } +); + +export default instance; diff --git a/src/config/func.ts b/src/config/func.ts new file mode 100644 index 0000000..f1fa83f --- /dev/null +++ b/src/config/func.ts @@ -0,0 +1,47 @@ +const TOKEN_NAME = import.meta.env.VITE_TOKEN_NAME; +const REFRESH_TOKEN_NAME = import.meta.env.VITE_REFRESH_TOKEN_NAME; + +export const getToken = () => { + return localStorage.getItem(TOKEN_NAME); +}; + +export const setToken = (token: string) => { + localStorage.setItem(TOKEN_NAME, token); +}; + +export const removeToken = () => { + localStorage.removeItem(TOKEN_NAME); +}; + +export const getRefreshToken = () => { + return localStorage.getItem(REFRESH_TOKEN_NAME); +}; + +export const setRefreshToken = (refreshToken: string) => { + localStorage.setItem(REFRESH_TOKEN_NAME, refreshToken); +}; + +export const removeRefreshToken = () => { + localStorage.removeItem(REFRESH_TOKEN_NAME); +}; + +export const timeAgo = (dateString: string): string => { + const date = new Date(dateString); + const now = new Date(); + const diffInMs = now.getTime() - date.getTime(); + const diffInMinutes = Math.floor(diffInMs / (1000 * 60)); + const diffInHours = Math.floor(diffInMinutes / 60); + const diffInDays = Math.floor(diffInHours / 24); + + if (diffInMinutes < 1) return "همین الان"; + if (diffInMinutes < 60) return `${diffInMinutes} دقیقه پیش`; + if (diffInHours < 24) return `${diffInHours} ساعت پیش`; + if (diffInDays < 7) return `${diffInDays} روز پیش`; + + return date.toLocaleDateString("fa-IR"); +}; + +export const NumberFormat = (num?: number): string => { + if (!num) return "0"; + return num.toLocaleString("fa-IR"); +}; diff --git a/src/helpers/types.ts b/src/helpers/types.ts new file mode 100644 index 0000000..d8f7039 --- /dev/null +++ b/src/helpers/types.ts @@ -0,0 +1,20 @@ +type Without = { [P in Exclude]?: never }; + +export type XOR = T | U extends object + ? (Without & U) | (Without & T) + : T | U; + +export type ItemsSelectType = { + value: string; + label: string; +}; + +export type ErrorType = Error & { + response?: { + data?: { + error: { + message: string[]; + }; + }; + }; +}; diff --git a/src/helpers/utils.ts b/src/helpers/utils.ts new file mode 100644 index 0000000..aa728fe --- /dev/null +++ b/src/helpers/utils.ts @@ -0,0 +1,11 @@ +import { twMerge } from "tailwind-merge"; + +/** + * Concatenates truthy classes into a space-separated string. + * + * @param classes - The classes to concatenate. + * @returns The concatenated classes. + */ +export const clx = (...classes: (string | boolean | undefined)[]): string => { + return twMerge(classes.filter(Boolean).join(" ")); +}; diff --git a/src/hooks/useOutSideClick.tsx b/src/hooks/useOutSideClick.tsx new file mode 100644 index 0000000..0ef2f1b --- /dev/null +++ b/src/hooks/useOutSideClick.tsx @@ -0,0 +1,24 @@ +import { useEffect, useRef } from 'react'; + +export const useOutsideClick = (callback: () => void) => { + const ref = useRef(null); + + useEffect(() => { + const handleClickOutside = (event: MouseEvent | TouchEvent) => { + if (ref.current && !ref.current.contains(event.target as Node)) { + callback(); + } + }; + + document.addEventListener('mouseup', handleClickOutside); + document.addEventListener('touchend', handleClickOutside); + + + return () => { + document.removeEventListener('mouseup', handleClickOutside); + document.removeEventListener('touchend', handleClickOutside); + }; + }, [callback]); + + return ref; +}; \ No newline at end of file diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..e2eec48 --- /dev/null +++ b/src/index.css @@ -0,0 +1,47 @@ +@import "tailwindcss"; + +html { + direction: rtl; + overflow: hidden; + max-width: 100%; +} + +body { + font-family: irancell; + margin: 0; + padding: 0; + width: 100%; + direction: rtl; + overflow: hidden !important; + background: #eceef6; + font-weight: 300; + overflow: hidden; + font-feature-settings: "lnum"; /* اطمینان از نمایش اعداد انگلیسی */ +} + +html, +body { + height: 100%; + margin: 0; + overflow: hidden !important; /* اعمال overflow: hidden با !important */ +} + +html, +body, +#root { + min-height: 100% !important; + height: 100%; +} +* { + outline: none; +} +input::placeholder, +textarea::placeholder { + color: #888888; +} + +@theme { + --color-primary: #ffa800; + --color-border: #f5f7fc; + --color-description: #c3c7dd; +} diff --git a/src/locale/fa.ts b/src/locale/fa.ts new file mode 100644 index 0000000..a4620d2 --- /dev/null +++ b/src/locale/fa.ts @@ -0,0 +1,18 @@ +export const fa = { + sidebar: { + menu: "منو", + mainPage: "صفحه اصلی", + other: "سایر", + logout: "خروج", + myOrders: "سفارشات من", + preFactors: "پیش فاکتورها", + tickets: "تیکت ها", + announcement: "انتشارات", + criticisms: "انتقادات", + learning: "آموزش", + }, + notif: { + natification: "اعلان‌ها", + all_read: "خواندن همه", + }, +}; diff --git a/src/locale/index.ts b/src/locale/index.ts new file mode 100644 index 0000000..f6eac72 --- /dev/null +++ b/src/locale/index.ts @@ -0,0 +1,39 @@ +import { fa } from "./fa"; + +export type LocaleKey = "fa"; +export interface TranslationsType { + [key: string]: string | TranslationsType; +} + +const locales: Record = { fa }; + +let currentLang: LocaleKey = "fa"; + +export const setLang = (lang: LocaleKey) => { + currentLang = lang; +}; + +export const getLang = (): LocaleKey => currentLang; + +const cache = new Map(); + +export const t = (key: string, fallback?: string): string => { + const cacheKey = `${currentLang}:${key}`; + if (cache.has(cacheKey)) return cache.get(cacheKey)!; + + const keys = key.split("."); + let value: string | TranslationsType | undefined = locales[currentLang]; + + for (const k of keys) { + if (typeof value === "object" && value !== null) { + value = value[k]; + } else { + value = undefined; + break; + } + } + + const result = typeof value === "string" ? value : fallback || key; + cache.set(cacheKey, result); + return result; +}; diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 0000000..bef5202 --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.tsx' + +createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/src/pages/home/Home.tsx b/src/pages/home/Home.tsx new file mode 100644 index 0000000..a456241 --- /dev/null +++ b/src/pages/home/Home.tsx @@ -0,0 +1,9 @@ +import { type FC } from 'react' + +const Home: FC = () => { + return ( +
صفحه اصلی
+ ) +} + +export default Home \ No newline at end of file diff --git a/src/pages/notification/Notification.tsx b/src/pages/notification/Notification.tsx new file mode 100644 index 0000000..45f52e7 --- /dev/null +++ b/src/pages/notification/Notification.tsx @@ -0,0 +1,149 @@ +import { Notification } from 'iconsax-react'; +import { type FC, useState } from 'react'; +import XIcon from '../../assets/images/close-circle.svg'; +import { clx } from '../../helpers/utils'; +import StatusCircle from '@/components/StatusCircle'; +import { useOutsideClick } from '@/hooks/useOutSideClick'; +import { type NotificationItemType, NotificationTypeEnum } from './types/NotificationTypes'; +import Button from '@/components/Button'; +import { t } from '@/locale'; + +const Notifications: FC = () => { + const ref = useOutsideClick(() => setShowModal(false)); + const [activeTab, setActiveTab] = useState<'read' | 'unread'>('unread'); + const [showModal, setShowModal] = useState(false); + const posts: NotificationItemType[] = []; + // const getDashboard = useGetNotification('all') + + const handleAllRead = () => { + // TODO: Implement read all functionality + } + + const handleRedirect = (type: NotificationTypeEnum) => { + switch (type) { + case NotificationTypeEnum.USER_LOGIN: + break; + case NotificationTypeEnum.ANNOUNCEMENT: + // navigate(Pages.announcement.list) + break; + case NotificationTypeEnum.WALLET_CHARGE: + // navigate(Pages.transactions) + break; + case NotificationTypeEnum.WALLET_DEDUCTION: + // navigate(Pages.transactions) + break; + case NotificationTypeEnum.BILL_INVOICE_REMINDER: + // navigate(Pages.receipts.index) + break; + case NotificationTypeEnum.BILL_INVOICE: + // navigate(Pages.receipts.index) + break; + case NotificationTypeEnum.CREATE_INVOICE: + // navigate(Pages.receipts.index) + break; + case NotificationTypeEnum.CREATE_SERVICE: + // navigate(Pages.services.other) + break; + case NotificationTypeEnum.UNBLOCK_SERVICE: + // navigate(Pages.services.other) + break; + case NotificationTypeEnum.BLOCK_SERVICE: + // navigate(Pages.services.other) + break; + case NotificationTypeEnum.ANSWER_TICKET: + // navigate(Pages.ticket.list) + break; + case NotificationTypeEnum.CREATE_TICKET: + // navigate(Pages.ticket.list) + break; + default: + break + } + setShowModal(false) + } + + return ( +
+
setShowModal(!showModal)} className='relative cursor-pointer'> + +
+ {/* {getDashboard.data?.pages?.[0]?.data?.notificationCount || 0} */} + 2 +
+
+ + {showModal && ( +
+
+
{t('notif.natification')}
+
+ close setShowModal(false)} /> +
+
+ + + +
+
setActiveTab('unread')} + className={clx( + 'flex-1 border-l cursor-pointer text-white border-white border-opacity-70 bg-transparent flex justify-center items-center', + activeTab === 'unread' ? 'bg-white bg-opacity-70 text-black' : '' + )} + > + خوانده نشده +
+
setActiveTab('read')} + className={clx( + 'flex-1 cursor-pointer text-white border-white bg-transparent flex justify-center items-center', + activeTab === 'read' ? 'bg-white bg-opacity-70 text-black' : '' + )} + > + خوانده شده +
+
+ +
+ +
+ +
+ { + posts.map((item: NotificationItemType) => ( +
handleRedirect(item.type)} className="bg-white cursor-pointer h-fit gap-4 items-start rounded-xl bg-opacity-60 p-3 mb-4 flex" key={item.id}> + { + !item.isRead && +
+ +
+ } +
+
{item.message}
+
+
{/* timeAgo(item.createdAt) */}
+
+ +
{item.title}
+
+
+
+
+ )) + } +
+
+ )} +
+ ); +}; + +export default Notifications; \ No newline at end of file diff --git a/src/pages/notification/hooks/useNotificationData.ts b/src/pages/notification/hooks/useNotificationData.ts new file mode 100644 index 0000000..56a0d63 --- /dev/null +++ b/src/pages/notification/hooks/useNotificationData.ts @@ -0,0 +1,22 @@ +import * as api from "../service/NotificationService"; +import { useInfiniteQuery, useMutation } from "@tanstack/react-query"; + +export const useGetNotification = (status: "all" | "read" | "unread") => { + return useInfiniteQuery({ + queryKey: ["notifications", status], + queryFn: ({ pageParam = 1 }) => api.getNotifications(pageParam, status), // فراخوانی API برای گرفتن داده‌ها + initialPageParam: 1, // صفحه اول به طور پیشفرض + getNextPageParam: (lastPage) => { + const currentPage = lastPage.data?.pager.page; + const totalPages = lastPage.data?.pager.totalPages; + + return currentPage < totalPages ? currentPage + 1 : undefined; + }, + }); +}; + +export const useReadAll = () => { + return useMutation({ + mutationFn: () => api.readAll(), + }); +}; diff --git a/src/pages/notification/service/NotificationService.ts b/src/pages/notification/service/NotificationService.ts new file mode 100644 index 0000000..8427851 --- /dev/null +++ b/src/pages/notification/service/NotificationService.ts @@ -0,0 +1,18 @@ +import axios from "../../../config/axios"; + +export const getNotifications = async ( + page: number, + status: "all" | "read" | "unread" +) => { + let query = ``; + if (status !== "all") { + query = `&isRead=${status === "read" ? 1 : 0}`; + } + const { data } = await axios.get(`/notifications?page=${page}${query}`); + return data; +}; + +export const readAll = async () => { + const { data } = await axios.patch(`/notifications/read-all`); + return data; +}; diff --git a/src/pages/notification/types/NotificationTypes.ts b/src/pages/notification/types/NotificationTypes.ts new file mode 100644 index 0000000..6db0b64 --- /dev/null +++ b/src/pages/notification/types/NotificationTypes.ts @@ -0,0 +1,33 @@ +export type NotificationItemType = { + id: string; + title: string; + message: string; + createdAt: string; + isRead: boolean; + type: NotificationTypeEnum; +}; + +export const NotificationTypeEnum = { + USER_LOGIN: "USER_LOGIN", + ANNOUNCEMENT: "ANNOUNCEMENT", + + // Finance category + WALLET_CHARGE: "WALLET_CHARGE", + WALLET_DEDUCTION: "WALLET_DEDUCTION", + + //Invoice + BILL_INVOICE_REMINDER: "BILL_INVOICE_REMINDER", + BILL_INVOICE: "BILL_INVOICE", + CREATE_INVOICE: "CREATE_INVOICE", + + // Service category + CREATE_SERVICE: "CREATE_SERVICE", + UNBLOCK_SERVICE: "UNBLOCK_SERVICE", + BLOCK_SERVICE: "BLOCK_SERVICE", + + // Support category + ANSWER_TICKET: "ANSWER_TICKET", + CREATE_TICKET: "CREATE_TICKET", +} as const; + +export type NotificationTypeEnum = typeof NotificationTypeEnum[keyof typeof NotificationTypeEnum]; diff --git a/src/pages/profile/hooks/useProfileData.ts b/src/pages/profile/hooks/useProfileData.ts new file mode 100644 index 0000000..3c724b4 --- /dev/null +++ b/src/pages/profile/hooks/useProfileData.ts @@ -0,0 +1,21 @@ +import { useQuery } from "@tanstack/react-query"; +import axios from "@/config/axios"; + +export interface ProfileData { + user: { + firstName: string; + lastName: string; + email: string; + profilePic?: string; + }; +} + +export const useGetProfile = () => { + return useQuery({ + queryKey: ["profile"], + queryFn: async (): Promise<{ data: ProfileData }> => { + const response = await axios.get("/profile"); + return response.data; + }, + }); +}; diff --git a/src/pages/wallet/hooks/useWalletData.ts b/src/pages/wallet/hooks/useWalletData.ts new file mode 100644 index 0000000..efd16c4 --- /dev/null +++ b/src/pages/wallet/hooks/useWalletData.ts @@ -0,0 +1,16 @@ +import { useQuery } from "@tanstack/react-query"; +import axios from "@/config/axios"; + +export interface WalletBalanceData { + balance: number; +} + +export const useGetWalletBalance = () => { + return useQuery({ + queryKey: ["wallet-balance"], + queryFn: async (): Promise<{ data: WalletBalanceData }> => { + const response = await axios.get("/wallet/balance"); + return response.data; + }, + }); +}; diff --git a/src/router/AuthRouter.tsx b/src/router/AuthRouter.tsx new file mode 100644 index 0000000..3a10b61 --- /dev/null +++ b/src/router/AuthRouter.tsx @@ -0,0 +1,12 @@ +import { type FC } from 'react' +import { Routes } from 'react-router-dom' + +const AuthRouter: FC = () => { + return ( + + {/* } /> */} + + ) +} + +export default AuthRouter \ No newline at end of file diff --git a/src/router/MainRouter.tsx b/src/router/MainRouter.tsx new file mode 100644 index 0000000..1447a8c --- /dev/null +++ b/src/router/MainRouter.tsx @@ -0,0 +1,26 @@ +import { type FC } from 'react' +import { Route, Routes } from 'react-router-dom' +import Home from '../pages/home/Home' +import SideBar from '../shared/Sidebar' +import Header from '../shared/Header' + +const MainRouter: FC = () => { + return ( +
+
+ +
+
+
+ + + } /> + +
+
+
+
+ ) +} + +export default MainRouter \ No newline at end of file diff --git a/src/shared/Header.tsx b/src/shared/Header.tsx new file mode 100644 index 0000000..8073938 --- /dev/null +++ b/src/shared/Header.tsx @@ -0,0 +1,172 @@ +import { type FC, useEffect } from 'react' +import Input from '@/components/Input' +import { HambergerMenu, Wallet } from 'iconsax-react' +// import AvatarImage from '@/assets/images/avatar_image.png' +import { useLocation } from 'react-router-dom' +import Notifications from '@/pages/notification/Notification' +import { useSharedStore } from './store/useSharedStore' +// import { useGetProfile } from '@/pages/profile/hooks/useProfileData' +// import { Popover, PopoverButton, PopoverPanel } from '@headlessui/react' +// import SidebarItem from './SidebarItem' +// import { useGetWalletBalance } from '@/pages/wallet/hooks/useWalletData' +// import { NumberFormat } from '../config/func' +import { t } from '@/locale' + +const Header: FC = () => { + + const location = useLocation(); + // const [popoverKey, setPopoverKey] = useState(0); + const { setOpenSidebar, openSidebar } = useSharedStore() + // const { data } = useGetProfile() + // const getWalletBalance = useGetWalletBalance() + + useEffect(() => { + // setPopoverKey((prevKey) => prevKey + 1); + }, [location.pathname]); + + return ( +
+ +
+ +
+
setOpenSidebar(!openSidebar)} className='xl:hidden block'> + +
+ {/* */} +
+ {/* + + + + + + */} +
+
+ {/* {NumberFormat(getWalletBalance.data?.data?.balance) + ' ' + t('toman')} */} + 20,132 +
+
+ +
+
+ {/* */} + + {/* { + data && ( + + +
+
+ +
+
+
+ {data?.data?.user?.firstName + ' ' + data?.data?.user?.lastName} +
+ +
+
+
+ + +
+ setPopoverKey((prevKey) => prevKey + 1)} size={20} color='black' /> +
+ +
+ +
+ +
+ {data?.data?.user?.firstName + ' ' + data?.data?.user?.lastName} +
+ +
+ {data?.data?.user?.email} +
+ + +
+
+ } + title={t('header.wallet')} + link={Pages.wallet} + isActive + isWithoutLine + /> +
+
{t('home.balance')}
+
+ {NumberFormat(getWalletBalance.data?.data?.balance) + ' ' + t('toman')} +
+
+
+ + } + title={t('sidebar.transactions')} + isActive + link={Pages.transactions} + isWithoutLine + /> + + } + title={t('header.discounts')} + isActive + link={Pages.discounts} + isWithoutLine + /> + + } + title={t('header.financial_info')} + isActive + link={Pages.financial} + isWithoutLine + /> + + } + title={t('header.profile')} + isActive + link={Pages.profile} + isWithoutLine + /> + + } + title={t('header.setting')} + isActive + link={Pages.setting} + isWithoutLine + /> +
+ +
+ } + title={t('sidebar.logout')} + isActive + link={Pages.setting} + isWithoutLine + isLogout + /> +
+ +
+
+ ) + } */} +
+
+ ) +} + +export default Header \ No newline at end of file diff --git a/src/shared/Sidebar.tsx b/src/shared/Sidebar.tsx new file mode 100644 index 0000000..fb8cc3f --- /dev/null +++ b/src/shared/Sidebar.tsx @@ -0,0 +1,121 @@ +import { type FC } from 'react' +import LogoImage from '@/assets/images/logo.svg' +import { DocumentText, Element3, Home2, Logout, Messages3, NotificationStatus, Receipt21, Teacher } from 'iconsax-react' +import SideBarItem from './SidebarItem' +import { useLocation } from 'react-router-dom' +import { Paths } from '../config/Paths' +import { useSharedStore } from './store/useSharedStore' +import { clx } from '../helpers/utils' +import { t } from '../locale' + +const SideBar: FC = () => { + + const { openSidebar, setOpenSidebar } = useSharedStore() + const location = useLocation() + + const isActive = (name: string) => { + return location.pathname.includes(name) + } + + const iconSizeSideBar = 20 + + return ( + <> + { + openSidebar &&
setOpenSidebar(false)} /> + } +
+
+
+ +
+
+ +
+
+ {t('sidebar.menu')} +
+ +
+ } + title={t('sidebar.mainPage')} + isActive={isActive('/home')} + link={Paths.home} + /> + + } + title={t('sidebar.myOrders')} + isActive={isActive('/my-orders')} + link={Paths.myOrders} + /> + + } + title={t('sidebar.preFactors')} + isActive={isActive('/pre-factors')} + link={Paths.preFactors} + /> + +
+ +
+ {t('sidebar.other')} +
+ +
+ } + title={t('sidebar.tickets')} + isActive={isActive('/tickets')} + link={Paths.tickets.list} + /> + + } + title={t('sidebar.announcement')} + isActive={isActive('/announcement')} + link={Paths.announcement.list} + /> + + } + title={t('sidebar.criticisms')} + isActive={isActive('/criticisms')} + link={Paths.criticisms} + /> + + } + title={t('sidebar.learning')} + isActive={isActive('/learning')} + link={Paths.learning} + /> +
+ + +
+ +
+ } + title={t('sidebar.logout')} + isActive={isActive('logout')} + link={`#`} + isLogout + /> +
+
+
+
+ + ) +} + +export default SideBar \ No newline at end of file diff --git a/src/shared/SidebarItem.tsx b/src/shared/SidebarItem.tsx new file mode 100644 index 0000000..b91ffbb --- /dev/null +++ b/src/shared/SidebarItem.tsx @@ -0,0 +1,45 @@ +import type { FC, ReactNode } from 'react' +import { Link } from 'react-router-dom' +import { clx } from '../helpers/utils' +import { Paths } from '../config/Paths' +// import { useLogout } from '../pages/auth/hooks/useAuthData' +import { removeToken } from '../config/func' +import { removeRefreshToken } from '../config/func' + +type Props = { + icon: ReactNode, + title: string, + isActive: boolean, + link: string, + isLogout?: boolean, + isWithoutLine?: boolean +} + +const SideBarItem: FC = (props: Props) => { + + // const logout = useLogout() + + const handleLogout = async () => { + // await logout.mutateAsync() + removeToken() + removeRefreshToken() + window.location.href = Paths.auth.login + } + + return ( + +
+ {props.icon} +
+ {props.title} +
+
+ + + ) +} + +export default SideBarItem \ No newline at end of file diff --git a/src/shared/store/useSharedStore.ts b/src/shared/store/useSharedStore.ts new file mode 100644 index 0000000..94afa0e --- /dev/null +++ b/src/shared/store/useSharedStore.ts @@ -0,0 +1,15 @@ +import { create } from "zustand"; +import { persist } from "zustand/middleware"; +import type { SharedStoreType } from "../types/Types"; + +export const useSharedStore = create()( + persist( + (set): SharedStoreType => ({ + openSidebar: false, + setOpenSidebar: (open) => set({ openSidebar: open }), + }), + { + name: "negareh-share-store", + } + ) +); diff --git a/src/shared/toast.ts b/src/shared/toast.ts new file mode 100644 index 0000000..ccede92 --- /dev/null +++ b/src/shared/toast.ts @@ -0,0 +1,21 @@ +interface Toast { + id: string; + message: string; + type?: "success" | "error" | "info"; + isExiting?: boolean; +} + +let addToast: (toast: Toast) => void; + +export const toast = ( + message?: string, + type: "success" | "error" | "info" = "info" +) => { + if (addToast) { + addToast({ id: Date.now().toString(), message: message || "", type }); + } +}; + +export const setAddToast = (fn: (toast: Toast) => void) => { + addToast = fn; +}; diff --git a/src/shared/types/Types.ts b/src/shared/types/Types.ts new file mode 100644 index 0000000..99a81ed --- /dev/null +++ b/src/shared/types/Types.ts @@ -0,0 +1,4 @@ +export type SharedStoreType = { + openSidebar: boolean; + setOpenSidebar: (open: boolean) => void; +}; diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..51b7e95 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,40 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2022", + "useDefineForClassFields": true, + "lib": [ + "ES2022", + "DOM", + "DOM.Iterable" + ], + "module": "ESNext", + "types": [ + "vite/client" + ], + "skipLibCheck": true, + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true, + "baseUrl": "./", + "paths": { + "@/*": [ + "src/*" + ] + } + }, + "include": [ + "src" + ] +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..1ffef60 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..2d86ad5 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,36 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2023", + "lib": [ + "ES2023" + ], + "module": "ESNext", + "types": [ + "node" + ], + "skipLibCheck": true, + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true, + "baseUrl": "./", + "paths": { + "@/*": [ + "src/*" + ] + } + }, + "include": [ + "vite.config.ts" + ] +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..b274707 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,17 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; +import tailwindcss from "@tailwindcss/vite"; +import tsconfigPaths from "vite-tsconfig-paths"; + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [ + react({ + babel: { + plugins: [["babel-plugin-react-compiler"]], + }, + }), + tailwindcss(), + tsconfigPaths(), + ], +});