Commit c0103bcb2af57dafad7e8e4cb48a3b6c7980a6ca

Authored by zichun
1 parent e54407c2

chore(frontend): scaffold Vite + React + TS app with auth/usr pages

Initial frontend setup: Vite + React 19 + TypeScript, ESLint,
Redux store (auth, tabs), React Router with RequireAuth guard,
AppShell layout, TopBar/NavOverlay components, plus first-pass
pages (Login, Dashboard, UserList, UserDetail) and API layer
(request/types/usr) wired to the user backend module.

Establishes the frontend foundation so future module loops can
add their own pages under frontend/src/pages/<module>/ per
docs/08 path convention.

Too many changes to show.

To preserve performance only 18 of 33 files are displayed.

frontend/.gitignore 0 → 100644
  1 +# Logs
  2 +logs
  3 +*.log
  4 +npm-debug.log*
  5 +yarn-debug.log*
  6 +yarn-error.log*
  7 +pnpm-debug.log*
  8 +lerna-debug.log*
  9 +
  10 +node_modules
  11 +dist
  12 +dist-ssr
  13 +*.local
  14 +
  15 +# Editor directories and files
  16 +.vscode/*
  17 +!.vscode/extensions.json
  18 +.idea
  19 +.DS_Store
  20 +*.suo
  21 +*.ntvs*
  22 +*.njsproj
  23 +*.sln
  24 +*.sw?
... ...
frontend/README.md 0 → 100644
  1 +# React + TypeScript + Vite
  2 +
  3 +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
  4 +
  5 +Currently, two official plugins are available:
  6 +
  7 +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs)
  8 +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/)
  9 +
  10 +## React Compiler
  11 +
  12 +The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
  13 +
  14 +## Expanding the ESLint configuration
  15 +
  16 +If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
  17 +
  18 +```js
  19 +export default defineConfig([
  20 + globalIgnores(['dist']),
  21 + {
  22 + files: ['**/*.{ts,tsx}'],
  23 + extends: [
  24 + // Other configs...
  25 +
  26 + // Remove tseslint.configs.recommended and replace with this
  27 + tseslint.configs.recommendedTypeChecked,
  28 + // Alternatively, use this for stricter rules
  29 + tseslint.configs.strictTypeChecked,
  30 + // Optionally, add this for stylistic rules
  31 + tseslint.configs.stylisticTypeChecked,
  32 +
  33 + // Other configs...
  34 + ],
  35 + languageOptions: {
  36 + parserOptions: {
  37 + project: ['./tsconfig.node.json', './tsconfig.app.json'],
  38 + tsconfigRootDir: import.meta.dirname,
  39 + },
  40 + // other options...
  41 + },
  42 + },
  43 +])
  44 +```
  45 +
  46 +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:
  47 +
  48 +```js
  49 +// eslint.config.js
  50 +import reactX from 'eslint-plugin-react-x'
  51 +import reactDom from 'eslint-plugin-react-dom'
  52 +
  53 +export default defineConfig([
  54 + globalIgnores(['dist']),
  55 + {
  56 + files: ['**/*.{ts,tsx}'],
  57 + extends: [
  58 + // Other configs...
  59 + // Enable lint rules for React
  60 + reactX.configs['recommended-typescript'],
  61 + // Enable lint rules for React DOM
  62 + reactDom.configs.recommended,
  63 + ],
  64 + languageOptions: {
  65 + parserOptions: {
  66 + project: ['./tsconfig.node.json', './tsconfig.app.json'],
  67 + tsconfigRootDir: import.meta.dirname,
  68 + },
  69 + // other options...
  70 + },
  71 + },
  72 +])
  73 +```
... ...
frontend/eslint.config.js 0 → 100644
  1 +import js from '@eslint/js'
  2 +import globals from 'globals'
  3 +import reactHooks from 'eslint-plugin-react-hooks'
  4 +import reactRefresh from 'eslint-plugin-react-refresh'
  5 +import tseslint from 'typescript-eslint'
  6 +import { defineConfig, globalIgnores } from 'eslint/config'
  7 +
  8 +export default defineConfig([
  9 + globalIgnores(['dist']),
  10 + {
  11 + files: ['**/*.{ts,tsx}'],
  12 + extends: [
  13 + js.configs.recommended,
  14 + tseslint.configs.recommended,
  15 + reactHooks.configs.flat.recommended,
  16 + reactRefresh.configs.vite,
  17 + ],
  18 + languageOptions: {
  19 + globals: globals.browser,
  20 + },
  21 + },
  22 +])
... ...
frontend/index.html 0 → 100644
  1 +<!doctype html>
  2 +<html lang="zh-CN">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
  6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7 + <title>小羚羊 ERP</title>
  8 + </head>
  9 + <body>
  10 + <div id="root"></div>
  11 + <script type="module" src="/src/main.tsx"></script>
  12 + </body>
  13 +</html>
... ...
frontend/package-lock.json 0 → 100644
  1 +{
  2 + "name": "frontend",
  3 + "version": "0.0.0",
  4 + "lockfileVersion": 3,
  5 + "requires": true,
  6 + "packages": {
  7 + "": {
  8 + "name": "frontend",
  9 + "version": "0.0.0",
  10 + "dependencies": {
  11 + "@reduxjs/toolkit": "^2.11.2",
  12 + "antd": "^6.3.7",
  13 + "axios": "^1.16.0",
  14 + "react": "^19.2.5",
  15 + "react-dom": "^19.2.5",
  16 + "react-redux": "^9.2.0",
  17 + "react-router-dom": "^7.15.0"
  18 + },
  19 + "devDependencies": {
  20 + "@eslint/js": "^10.0.1",
  21 + "@types/node": "^24.12.2",
  22 + "@types/react": "^19.2.14",
  23 + "@types/react-dom": "^19.2.3",
  24 + "@vitejs/plugin-react": "^6.0.1",
  25 + "eslint": "^10.2.1",
  26 + "eslint-plugin-react-hooks": "^7.1.1",
  27 + "eslint-plugin-react-refresh": "^0.5.2",
  28 + "globals": "^17.5.0",
  29 + "typescript": "~6.0.2",
  30 + "typescript-eslint": "^8.58.2",
  31 + "vite": "^8.0.10"
  32 + }
  33 + },
  34 + "node_modules/@ant-design/colors": {
  35 + "version": "8.0.1",
  36 + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-8.0.1.tgz",
  37 + "integrity": "sha512-foPVl0+SWIslGUtD/xBr1p9U4AKzPhNYEseXYRRo5QSzGACYZrQbe11AYJbYfAWnWSpGBx6JjBmSeugUsD9vqQ==",
  38 + "license": "MIT",
  39 + "dependencies": {
  40 + "@ant-design/fast-color": "^3.0.0"
  41 + }
  42 + },
  43 + "node_modules/@ant-design/cssinjs": {
  44 + "version": "2.1.2",
  45 + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-2.1.2.tgz",
  46 + "integrity": "sha512-2Hy8BnCEH31xPeSLbhhB2ctCPXE2ZnASdi+KbSeS79BNbUhL9hAEe20SkUk+BR8aKTmqb6+FKFruk7w8z0VoRQ==",
  47 + "license": "MIT",
  48 + "dependencies": {
  49 + "@babel/runtime": "^7.11.1",
  50 + "@emotion/hash": "^0.8.0",
  51 + "@emotion/unitless": "^0.7.5",
  52 + "@rc-component/util": "^1.4.0",
  53 + "clsx": "^2.1.1",
  54 + "csstype": "^3.1.3",
  55 + "stylis": "^4.3.4"
  56 + },
  57 + "peerDependencies": {
  58 + "react": ">=16.0.0",
  59 + "react-dom": ">=16.0.0"
  60 + }
  61 + },
  62 + "node_modules/@ant-design/cssinjs-utils": {
  63 + "version": "2.1.2",
  64 + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-2.1.2.tgz",
  65 + "integrity": "sha512-5fTHQ158jJJ5dC/ECeyIdZUzKxE/mpEMRZxthyG1sw/AKRHKgJBg00Yi6ACVXgycdje7KahRNvNET/uBccwCnA==",
  66 + "license": "MIT",
  67 + "dependencies": {
  68 + "@ant-design/cssinjs": "^2.1.2",
  69 + "@babel/runtime": "^7.23.2",
  70 + "@rc-component/util": "^1.4.0"
  71 + },
  72 + "peerDependencies": {
  73 + "react": ">=18",
  74 + "react-dom": ">=18"
  75 + }
  76 + },
  77 + "node_modules/@ant-design/fast-color": {
  78 + "version": "3.0.1",
  79 + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-3.0.1.tgz",
  80 + "integrity": "sha512-esKJegpW4nckh0o6kV3Tkb7NPIZYbPnnFxmQDUmL08ukXZAvV85TZBr70eGuke/CIArLaP6aw8lt9KILjnWuOw==",
  81 + "license": "MIT",
  82 + "engines": {
  83 + "node": ">=8.x"
  84 + }
  85 + },
  86 + "node_modules/@ant-design/icons": {
  87 + "version": "6.2.2",
  88 + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-6.2.2.tgz",
  89 + "integrity": "sha512-zlJtE7AMbG12TeYVPhtBXwNpFInNy8mjLzcIm+0BPw16/b8ODG87YJ1G37VIF5VFscdgfsf6EweAFPTobu/3iQ==",
  90 + "license": "MIT",
  91 + "dependencies": {
  92 + "@ant-design/colors": "^8.0.1",
  93 + "@ant-design/icons-svg": "^4.4.2",
  94 + "@rc-component/util": "^1.10.1",
  95 + "clsx": "^2.1.1"
  96 + },
  97 + "engines": {
  98 + "node": ">=8"
  99 + },
  100 + "peerDependencies": {
  101 + "react": ">=16.0.0",
  102 + "react-dom": ">=16.0.0"
  103 + }
  104 + },
  105 + "node_modules/@ant-design/icons-svg": {
  106 + "version": "4.4.2",
  107 + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz",
  108 + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==",
  109 + "license": "MIT"
  110 + },
  111 + "node_modules/@ant-design/react-slick": {
  112 + "version": "2.0.0",
  113 + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-2.0.0.tgz",
  114 + "integrity": "sha512-HMS9sRoEmZey8LsE/Yo6+klhlzU12PisjrVcydW3So7RdklyEd2qehyU6a7Yp+OYN72mgsYs3NFCyP2lCPFVqg==",
  115 + "license": "MIT",
  116 + "dependencies": {
  117 + "@babel/runtime": "^7.28.4",
  118 + "clsx": "^2.1.1",
  119 + "json2mq": "^0.2.0",
  120 + "throttle-debounce": "^5.0.0"
  121 + },
  122 + "peerDependencies": {
  123 + "react": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
  124 + "react-dom": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
  125 + }
  126 + },
  127 + "node_modules/@babel/code-frame": {
  128 + "version": "7.29.0",
  129 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
  130 + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
  131 + "dev": true,
  132 + "license": "MIT",
  133 + "dependencies": {
  134 + "@babel/helper-validator-identifier": "^7.28.5",
  135 + "js-tokens": "^4.0.0",
  136 + "picocolors": "^1.1.1"
  137 + },
  138 + "engines": {
  139 + "node": ">=6.9.0"
  140 + }
  141 + },
  142 + "node_modules/@babel/compat-data": {
  143 + "version": "7.29.3",
  144 + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.3.tgz",
  145 + "integrity": "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==",
  146 + "dev": true,
  147 + "license": "MIT",
  148 + "engines": {
  149 + "node": ">=6.9.0"
  150 + }
  151 + },
  152 + "node_modules/@babel/core": {
  153 + "version": "7.29.0",
  154 + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
  155 + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
  156 + "dev": true,
  157 + "license": "MIT",
  158 + "dependencies": {
  159 + "@babel/code-frame": "^7.29.0",
  160 + "@babel/generator": "^7.29.0",
  161 + "@babel/helper-compilation-targets": "^7.28.6",
  162 + "@babel/helper-module-transforms": "^7.28.6",
  163 + "@babel/helpers": "^7.28.6",
  164 + "@babel/parser": "^7.29.0",
  165 + "@babel/template": "^7.28.6",
  166 + "@babel/traverse": "^7.29.0",
  167 + "@babel/types": "^7.29.0",
  168 + "@jridgewell/remapping": "^2.3.5",
  169 + "convert-source-map": "^2.0.0",
  170 + "debug": "^4.1.0",
  171 + "gensync": "^1.0.0-beta.2",
  172 + "json5": "^2.2.3",
  173 + "semver": "^6.3.1"
  174 + },
  175 + "engines": {
  176 + "node": ">=6.9.0"
  177 + },
  178 + "funding": {
  179 + "type": "opencollective",
  180 + "url": "https://opencollective.com/babel"
  181 + }
  182 + },
  183 + "node_modules/@babel/generator": {
  184 + "version": "7.29.1",
  185 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
  186 + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
  187 + "dev": true,
  188 + "license": "MIT",
  189 + "dependencies": {
  190 + "@babel/parser": "^7.29.0",
  191 + "@babel/types": "^7.29.0",
  192 + "@jridgewell/gen-mapping": "^0.3.12",
  193 + "@jridgewell/trace-mapping": "^0.3.28",
  194 + "jsesc": "^3.0.2"
  195 + },
  196 + "engines": {
  197 + "node": ">=6.9.0"
  198 + }
  199 + },
  200 + "node_modules/@babel/helper-compilation-targets": {
  201 + "version": "7.28.6",
  202 + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
  203 + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
  204 + "dev": true,
  205 + "license": "MIT",
  206 + "dependencies": {
  207 + "@babel/compat-data": "^7.28.6",
  208 + "@babel/helper-validator-option": "^7.27.1",
  209 + "browserslist": "^4.24.0",
  210 + "lru-cache": "^5.1.1",
  211 + "semver": "^6.3.1"
  212 + },
  213 + "engines": {
  214 + "node": ">=6.9.0"
  215 + }
  216 + },
  217 + "node_modules/@babel/helper-globals": {
  218 + "version": "7.28.0",
  219 + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
  220 + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
  221 + "dev": true,
  222 + "license": "MIT",
  223 + "engines": {
  224 + "node": ">=6.9.0"
  225 + }
  226 + },
  227 + "node_modules/@babel/helper-module-imports": {
  228 + "version": "7.28.6",
  229 + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
  230 + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
  231 + "dev": true,
  232 + "license": "MIT",
  233 + "dependencies": {
  234 + "@babel/traverse": "^7.28.6",
  235 + "@babel/types": "^7.28.6"
  236 + },
  237 + "engines": {
  238 + "node": ">=6.9.0"
  239 + }
  240 + },
  241 + "node_modules/@babel/helper-module-transforms": {
  242 + "version": "7.28.6",
  243 + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
  244 + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
  245 + "dev": true,
  246 + "license": "MIT",
  247 + "dependencies": {
  248 + "@babel/helper-module-imports": "^7.28.6",
  249 + "@babel/helper-validator-identifier": "^7.28.5",
  250 + "@babel/traverse": "^7.28.6"
  251 + },
  252 + "engines": {
  253 + "node": ">=6.9.0"
  254 + },
  255 + "peerDependencies": {
  256 + "@babel/core": "^7.0.0"
  257 + }
  258 + },
  259 + "node_modules/@babel/helper-string-parser": {
  260 + "version": "7.27.1",
  261 + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
  262 + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
  263 + "dev": true,
  264 + "license": "MIT",
  265 + "engines": {
  266 + "node": ">=6.9.0"
  267 + }
  268 + },
  269 + "node_modules/@babel/helper-validator-identifier": {
  270 + "version": "7.28.5",
  271 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
  272 + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
  273 + "dev": true,
  274 + "license": "MIT",
  275 + "engines": {
  276 + "node": ">=6.9.0"
  277 + }
  278 + },
  279 + "node_modules/@babel/helper-validator-option": {
  280 + "version": "7.27.1",
  281 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
  282 + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
  283 + "dev": true,
  284 + "license": "MIT",
  285 + "engines": {
  286 + "node": ">=6.9.0"
  287 + }
  288 + },
  289 + "node_modules/@babel/helpers": {
  290 + "version": "7.29.2",
  291 + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
  292 + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
  293 + "dev": true,
  294 + "license": "MIT",
  295 + "dependencies": {
  296 + "@babel/template": "^7.28.6",
  297 + "@babel/types": "^7.29.0"
  298 + },
  299 + "engines": {
  300 + "node": ">=6.9.0"
  301 + }
  302 + },
  303 + "node_modules/@babel/parser": {
  304 + "version": "7.29.3",
  305 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz",
  306 + "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==",
  307 + "dev": true,
  308 + "license": "MIT",
  309 + "dependencies": {
  310 + "@babel/types": "^7.29.0"
  311 + },
  312 + "bin": {
  313 + "parser": "bin/babel-parser.js"
  314 + },
  315 + "engines": {
  316 + "node": ">=6.0.0"
  317 + }
  318 + },
  319 + "node_modules/@babel/runtime": {
  320 + "version": "7.29.2",
  321 + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz",
  322 + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==",
  323 + "license": "MIT",
  324 + "engines": {
  325 + "node": ">=6.9.0"
  326 + }
  327 + },
  328 + "node_modules/@babel/template": {
  329 + "version": "7.28.6",
  330 + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
  331 + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
  332 + "dev": true,
  333 + "license": "MIT",
  334 + "dependencies": {
  335 + "@babel/code-frame": "^7.28.6",
  336 + "@babel/parser": "^7.28.6",
  337 + "@babel/types": "^7.28.6"
  338 + },
  339 + "engines": {
  340 + "node": ">=6.9.0"
  341 + }
  342 + },
  343 + "node_modules/@babel/traverse": {
  344 + "version": "7.29.0",
  345 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
  346 + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
  347 + "dev": true,
  348 + "license": "MIT",
  349 + "dependencies": {
  350 + "@babel/code-frame": "^7.29.0",
  351 + "@babel/generator": "^7.29.0",
  352 + "@babel/helper-globals": "^7.28.0",
  353 + "@babel/parser": "^7.29.0",
  354 + "@babel/template": "^7.28.6",
  355 + "@babel/types": "^7.29.0",
  356 + "debug": "^4.3.1"
  357 + },
  358 + "engines": {
  359 + "node": ">=6.9.0"
  360 + }
  361 + },
  362 + "node_modules/@babel/types": {
  363 + "version": "7.29.0",
  364 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
  365 + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
  366 + "dev": true,
  367 + "license": "MIT",
  368 + "dependencies": {
  369 + "@babel/helper-string-parser": "^7.27.1",
  370 + "@babel/helper-validator-identifier": "^7.28.5"
  371 + },
  372 + "engines": {
  373 + "node": ">=6.9.0"
  374 + }
  375 + },
  376 + "node_modules/@emnapi/core": {
  377 + "version": "1.10.0",
  378 + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
  379 + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
  380 + "dev": true,
  381 + "license": "MIT",
  382 + "optional": true,
  383 + "dependencies": {
  384 + "@emnapi/wasi-threads": "1.2.1",
  385 + "tslib": "^2.4.0"
  386 + }
  387 + },
  388 + "node_modules/@emnapi/runtime": {
  389 + "version": "1.10.0",
  390 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
  391 + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
  392 + "dev": true,
  393 + "license": "MIT",
  394 + "optional": true,
  395 + "dependencies": {
  396 + "tslib": "^2.4.0"
  397 + }
  398 + },
  399 + "node_modules/@emnapi/wasi-threads": {
  400 + "version": "1.2.1",
  401 + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
  402 + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
  403 + "dev": true,
  404 + "license": "MIT",
  405 + "optional": true,
  406 + "dependencies": {
  407 + "tslib": "^2.4.0"
  408 + }
  409 + },
  410 + "node_modules/@emotion/hash": {
  411 + "version": "0.8.0",
  412 + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
  413 + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==",
  414 + "license": "MIT"
  415 + },
  416 + "node_modules/@emotion/unitless": {
  417 + "version": "0.7.5",
  418 + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
  419 + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==",
  420 + "license": "MIT"
  421 + },
  422 + "node_modules/@eslint-community/eslint-utils": {
  423 + "version": "4.9.1",
  424 + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
  425 + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
  426 + "dev": true,
  427 + "license": "MIT",
  428 + "dependencies": {
  429 + "eslint-visitor-keys": "^3.4.3"
  430 + },
  431 + "engines": {
  432 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
  433 + },
  434 + "funding": {
  435 + "url": "https://opencollective.com/eslint"
  436 + },
  437 + "peerDependencies": {
  438 + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
  439 + }
  440 + },
  441 + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
  442 + "version": "3.4.3",
  443 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
  444 + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
  445 + "dev": true,
  446 + "license": "Apache-2.0",
  447 + "engines": {
  448 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
  449 + },
  450 + "funding": {
  451 + "url": "https://opencollective.com/eslint"
  452 + }
  453 + },
  454 + "node_modules/@eslint-community/regexpp": {
  455 + "version": "4.12.2",
  456 + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
  457 + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
  458 + "dev": true,
  459 + "license": "MIT",
  460 + "engines": {
  461 + "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
  462 + }
  463 + },
  464 + "node_modules/@eslint/config-array": {
  465 + "version": "0.23.5",
  466 + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz",
  467 + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==",
  468 + "dev": true,
  469 + "license": "Apache-2.0",
  470 + "dependencies": {
  471 + "@eslint/object-schema": "^3.0.5",
  472 + "debug": "^4.3.1",
  473 + "minimatch": "^10.2.4"
  474 + },
  475 + "engines": {
  476 + "node": "^20.19.0 || ^22.13.0 || >=24"
  477 + }
  478 + },
  479 + "node_modules/@eslint/config-helpers": {
  480 + "version": "0.5.5",
  481 + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.5.tgz",
  482 + "integrity": "sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==",
  483 + "dev": true,
  484 + "license": "Apache-2.0",
  485 + "dependencies": {
  486 + "@eslint/core": "^1.2.1"
  487 + },
  488 + "engines": {
  489 + "node": "^20.19.0 || ^22.13.0 || >=24"
  490 + }
  491 + },
  492 + "node_modules/@eslint/core": {
  493 + "version": "1.2.1",
  494 + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz",
  495 + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==",
  496 + "dev": true,
  497 + "license": "Apache-2.0",
  498 + "dependencies": {
  499 + "@types/json-schema": "^7.0.15"
  500 + },
  501 + "engines": {
  502 + "node": "^20.19.0 || ^22.13.0 || >=24"
  503 + }
  504 + },
  505 + "node_modules/@eslint/js": {
  506 + "version": "10.0.1",
  507 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz",
  508 + "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==",
  509 + "dev": true,
  510 + "license": "MIT",
  511 + "engines": {
  512 + "node": "^20.19.0 || ^22.13.0 || >=24"
  513 + },
  514 + "funding": {
  515 + "url": "https://eslint.org/donate"
  516 + },
  517 + "peerDependencies": {
  518 + "eslint": "^10.0.0"
  519 + },
  520 + "peerDependenciesMeta": {
  521 + "eslint": {
  522 + "optional": true
  523 + }
  524 + }
  525 + },
  526 + "node_modules/@eslint/object-schema": {
  527 + "version": "3.0.5",
  528 + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz",
  529 + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==",
  530 + "dev": true,
  531 + "license": "Apache-2.0",
  532 + "engines": {
  533 + "node": "^20.19.0 || ^22.13.0 || >=24"
  534 + }
  535 + },
  536 + "node_modules/@eslint/plugin-kit": {
  537 + "version": "0.7.1",
  538 + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.1.tgz",
  539 + "integrity": "sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==",
  540 + "dev": true,
  541 + "license": "Apache-2.0",
  542 + "dependencies": {
  543 + "@eslint/core": "^1.2.1",
  544 + "levn": "^0.4.1"
  545 + },
  546 + "engines": {
  547 + "node": "^20.19.0 || ^22.13.0 || >=24"
  548 + }
  549 + },
  550 + "node_modules/@humanfs/core": {
  551 + "version": "0.19.2",
  552 + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz",
  553 + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==",
  554 + "dev": true,
  555 + "license": "Apache-2.0",
  556 + "dependencies": {
  557 + "@humanfs/types": "^0.15.0"
  558 + },
  559 + "engines": {
  560 + "node": ">=18.18.0"
  561 + }
  562 + },
  563 + "node_modules/@humanfs/node": {
  564 + "version": "0.16.8",
  565 + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz",
  566 + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==",
  567 + "dev": true,
  568 + "license": "Apache-2.0",
  569 + "dependencies": {
  570 + "@humanfs/core": "^0.19.2",
  571 + "@humanfs/types": "^0.15.0",
  572 + "@humanwhocodes/retry": "^0.4.0"
  573 + },
  574 + "engines": {
  575 + "node": ">=18.18.0"
  576 + }
  577 + },
  578 + "node_modules/@humanfs/types": {
  579 + "version": "0.15.0",
  580 + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz",
  581 + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==",
  582 + "dev": true,
  583 + "license": "Apache-2.0",
  584 + "engines": {
  585 + "node": ">=18.18.0"
  586 + }
  587 + },
  588 + "node_modules/@humanwhocodes/module-importer": {
  589 + "version": "1.0.1",
  590 + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
  591 + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
  592 + "dev": true,
  593 + "license": "Apache-2.0",
  594 + "engines": {
  595 + "node": ">=12.22"
  596 + },
  597 + "funding": {
  598 + "type": "github",
  599 + "url": "https://github.com/sponsors/nzakas"
  600 + }
  601 + },
  602 + "node_modules/@humanwhocodes/retry": {
  603 + "version": "0.4.3",
  604 + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
  605 + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
  606 + "dev": true,
  607 + "license": "Apache-2.0",
  608 + "engines": {
  609 + "node": ">=18.18"
  610 + },
  611 + "funding": {
  612 + "type": "github",
  613 + "url": "https://github.com/sponsors/nzakas"
  614 + }
  615 + },
  616 + "node_modules/@jridgewell/gen-mapping": {
  617 + "version": "0.3.13",
  618 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
  619 + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
  620 + "dev": true,
  621 + "license": "MIT",
  622 + "dependencies": {
  623 + "@jridgewell/sourcemap-codec": "^1.5.0",
  624 + "@jridgewell/trace-mapping": "^0.3.24"
  625 + }
  626 + },
  627 + "node_modules/@jridgewell/remapping": {
  628 + "version": "2.3.5",
  629 + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
  630 + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
  631 + "dev": true,
  632 + "license": "MIT",
  633 + "dependencies": {
  634 + "@jridgewell/gen-mapping": "^0.3.5",
  635 + "@jridgewell/trace-mapping": "^0.3.24"
  636 + }
  637 + },
  638 + "node_modules/@jridgewell/resolve-uri": {
  639 + "version": "3.1.2",
  640 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
  641 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
  642 + "dev": true,
  643 + "license": "MIT",
  644 + "engines": {
  645 + "node": ">=6.0.0"
  646 + }
  647 + },
  648 + "node_modules/@jridgewell/sourcemap-codec": {
  649 + "version": "1.5.5",
  650 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
  651 + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
  652 + "dev": true,
  653 + "license": "MIT"
  654 + },
  655 + "node_modules/@jridgewell/trace-mapping": {
  656 + "version": "0.3.31",
  657 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
  658 + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
  659 + "dev": true,
  660 + "license": "MIT",
  661 + "dependencies": {
  662 + "@jridgewell/resolve-uri": "^3.1.0",
  663 + "@jridgewell/sourcemap-codec": "^1.4.14"
  664 + }
  665 + },
  666 + "node_modules/@napi-rs/wasm-runtime": {
  667 + "version": "1.1.4",
  668 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz",
  669 + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==",
  670 + "dev": true,
  671 + "license": "MIT",
  672 + "optional": true,
  673 + "dependencies": {
  674 + "@tybys/wasm-util": "^0.10.1"
  675 + },
  676 + "funding": {
  677 + "type": "github",
  678 + "url": "https://github.com/sponsors/Brooooooklyn"
  679 + },
  680 + "peerDependencies": {
  681 + "@emnapi/core": "^1.7.1",
  682 + "@emnapi/runtime": "^1.7.1"
  683 + }
  684 + },
  685 + "node_modules/@oxc-project/types": {
  686 + "version": "0.127.0",
  687 + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.127.0.tgz",
  688 + "integrity": "sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==",
  689 + "dev": true,
  690 + "license": "MIT",
  691 + "funding": {
  692 + "url": "https://github.com/sponsors/Boshen"
  693 + }
  694 + },
  695 + "node_modules/@rc-component/async-validator": {
  696 + "version": "5.1.0",
  697 + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.1.0.tgz",
  698 + "integrity": "sha512-n4HcR5siNUXRX23nDizbZBQPO0ZM/5oTtmKZ6/eqL0L2bo747cklFdZGRN2f+c9qWGICwDzrhW0H7tE9PptdcA==",
  699 + "license": "MIT",
  700 + "dependencies": {
  701 + "@babel/runtime": "^7.24.4"
  702 + },
  703 + "engines": {
  704 + "node": ">=14.x"
  705 + }
  706 + },
  707 + "node_modules/@rc-component/cascader": {
  708 + "version": "1.14.0",
  709 + "resolved": "https://registry.npmjs.org/@rc-component/cascader/-/cascader-1.14.0.tgz",
  710 + "integrity": "sha512-Ip9356xwZUR2nbW5PRVGif4B/bDve4pLa/N+PGbvBaTnjbvmN4PFMBGQSmlDlzKP1ovxaYMvwF/dI9lXNLT4iQ==",
  711 + "license": "MIT",
  712 + "dependencies": {
  713 + "@rc-component/select": "~1.6.0",
  714 + "@rc-component/tree": "~1.2.0",
  715 + "@rc-component/util": "^1.4.0",
  716 + "clsx": "^2.1.1"
  717 + },
  718 + "peerDependencies": {
  719 + "react": ">=18.0.0",
  720 + "react-dom": ">=18.0.0"
  721 + }
  722 + },
  723 + "node_modules/@rc-component/checkbox": {
  724 + "version": "2.0.0",
  725 + "resolved": "https://registry.npmjs.org/@rc-component/checkbox/-/checkbox-2.0.0.tgz",
  726 + "integrity": "sha512-3CXGPpAR9gsPKeO2N78HAPOzU30UdemD6HGJoWVJOpa6WleaGB5kzZj3v6bdTZab31YuWgY/RxV3VKPctn0DwQ==",
  727 + "license": "MIT",
  728 + "dependencies": {
  729 + "@rc-component/util": "^1.3.0",
  730 + "clsx": "^2.1.1"
  731 + },
  732 + "peerDependencies": {
  733 + "react": ">=16.9.0",
  734 + "react-dom": ">=16.9.0"
  735 + }
  736 + },
  737 + "node_modules/@rc-component/collapse": {
  738 + "version": "1.2.0",
  739 + "resolved": "https://registry.npmjs.org/@rc-component/collapse/-/collapse-1.2.0.tgz",
  740 + "integrity": "sha512-ZRYSKSS39qsFx93p26bde7JUZJshsUBEQRlRXPuJYlAiNX0vyYlF5TsAm8JZN3LcF8XvKikdzPbgAtXSbkLUkw==",
  741 + "license": "MIT",
  742 + "dependencies": {
  743 + "@babel/runtime": "^7.10.1",
  744 + "@rc-component/motion": "^1.1.4",
  745 + "@rc-component/util": "^1.3.0",
  746 + "clsx": "^2.1.1"
  747 + },
  748 + "peerDependencies": {
  749 + "react": ">=18.0.0",
  750 + "react-dom": ">=18.0.0"
  751 + }
  752 + },
  753 + "node_modules/@rc-component/color-picker": {
  754 + "version": "3.1.1",
  755 + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-3.1.1.tgz",
  756 + "integrity": "sha512-OHaCHLHszCegdXmIq2ZRIZBN/EtpT6Wm8SG/gpzLATHbVKc/avvuKi+zlOuk05FTWvgaMmpxAko44uRJ3M+2pg==",
  757 + "license": "MIT",
  758 + "dependencies": {
  759 + "@ant-design/fast-color": "^3.0.1",
  760 + "@rc-component/util": "^1.3.0",
  761 + "clsx": "^2.1.1"
  762 + },
  763 + "peerDependencies": {
  764 + "react": ">=16.9.0",
  765 + "react-dom": ">=16.9.0"
  766 + }
  767 + },
  768 + "node_modules/@rc-component/context": {
  769 + "version": "2.0.1",
  770 + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-2.0.1.tgz",
  771 + "integrity": "sha512-HyZbYm47s/YqtP6pKXNMjPEMaukyg7P0qVfgMLzr7YiFNMHbK2fKTAGzms9ykfGHSfyf75nBbgWw+hHkp+VImw==",
  772 + "license": "MIT",
  773 + "dependencies": {
  774 + "@rc-component/util": "^1.3.0"
  775 + },
  776 + "peerDependencies": {
  777 + "react": ">=16.9.0",
  778 + "react-dom": ">=16.9.0"
  779 + }
  780 + },
  781 + "node_modules/@rc-component/dialog": {
  782 + "version": "1.8.4",
  783 + "resolved": "https://registry.npmjs.org/@rc-component/dialog/-/dialog-1.8.4.tgz",
  784 + "integrity": "sha512-Ay6PM7phkTkquplG8fWfUGFZ2GTLx9diTl4f0d8Eqxd7W1u1KjE9AQooFQHOHnhZf0Ya3z51+5EKCWHmt/dNEw==",
  785 + "license": "MIT",
  786 + "dependencies": {
  787 + "@rc-component/motion": "^1.1.3",
  788 + "@rc-component/portal": "^2.1.0",
  789 + "@rc-component/util": "^1.9.0",
  790 + "clsx": "^2.1.1"
  791 + },
  792 + "peerDependencies": {
  793 + "react": ">=18.0.0",
  794 + "react-dom": ">=18.0.0"
  795 + }
  796 + },
  797 + "node_modules/@rc-component/drawer": {
  798 + "version": "1.4.2",
  799 + "resolved": "https://registry.npmjs.org/@rc-component/drawer/-/drawer-1.4.2.tgz",
  800 + "integrity": "sha512-1ib+fZEp6FBu+YvcIktm+nCQ+Q+qIpwpoaJH6opGr4ofh2QMq+qdr5DLC4oCf5qf3pcWX9lUWPYX652k4ini8Q==",
  801 + "license": "MIT",
  802 + "dependencies": {
  803 + "@rc-component/motion": "^1.1.4",
  804 + "@rc-component/portal": "^2.1.3",
  805 + "@rc-component/util": "^1.9.0",
  806 + "clsx": "^2.1.1"
  807 + },
  808 + "peerDependencies": {
  809 + "react": ">=18.0.0",
  810 + "react-dom": ">=18.0.0"
  811 + }
  812 + },
  813 + "node_modules/@rc-component/dropdown": {
  814 + "version": "1.0.2",
  815 + "resolved": "https://registry.npmjs.org/@rc-component/dropdown/-/dropdown-1.0.2.tgz",
  816 + "integrity": "sha512-6PY2ecUSYhDPhkNHHb4wfeAya04WhpmUSKzdR60G+kMNVUCX2vjT/AgTS0Lz0I/K6xrPMJ3enQbwVpeN3sHCgg==",
  817 + "license": "MIT",
  818 + "dependencies": {
  819 + "@rc-component/trigger": "^3.0.0",
  820 + "@rc-component/util": "^1.2.1",
  821 + "clsx": "^2.1.1"
  822 + },
  823 + "peerDependencies": {
  824 + "react": ">=16.11.0",
  825 + "react-dom": ">=16.11.0"
  826 + }
  827 + },
  828 + "node_modules/@rc-component/form": {
  829 + "version": "1.8.1",
  830 + "resolved": "https://registry.npmjs.org/@rc-component/form/-/form-1.8.1.tgz",
  831 + "integrity": "sha512-8O7TB55Fi2mWIGvSnwZjk8jFqVNYyKDAswglwGShcbndxqzKz4cHwNtNaLjZlAeRge9wcB0LL8IWsC/Bl18raQ==",
  832 + "license": "MIT",
  833 + "dependencies": {
  834 + "@rc-component/async-validator": "^5.1.0",
  835 + "@rc-component/util": "^1.6.2",
  836 + "clsx": "^2.1.1"
  837 + },
  838 + "engines": {
  839 + "node": ">=8.x"
  840 + },
  841 + "peerDependencies": {
  842 + "react": ">=16.9.0",
  843 + "react-dom": ">=16.9.0"
  844 + }
  845 + },
  846 + "node_modules/@rc-component/image": {
  847 + "version": "1.9.0",
  848 + "resolved": "https://registry.npmjs.org/@rc-component/image/-/image-1.9.0.tgz",
  849 + "integrity": "sha512-khF7w7xkBH5B1bsBcI1FSUZdkyd1aqpl2eYyILCqCzzQH3XdfehGUaZTnptyaJJfs09/R5hv9jXWyazOMFIClQ==",
  850 + "license": "MIT",
  851 + "dependencies": {
  852 + "@rc-component/motion": "^1.0.0",
  853 + "@rc-component/portal": "^2.1.2",
  854 + "@rc-component/util": "^1.10.1",
  855 + "clsx": "^2.1.1"
  856 + },
  857 + "peerDependencies": {
  858 + "react": ">=16.9.0",
  859 + "react-dom": ">=16.9.0"
  860 + }
  861 + },
  862 + "node_modules/@rc-component/input": {
  863 + "version": "1.1.2",
  864 + "resolved": "https://registry.npmjs.org/@rc-component/input/-/input-1.1.2.tgz",
  865 + "integrity": "sha512-Q61IMR47piUBudgixJ30CciKIy9b1H95qe7GgEKOmSJVJXvFRWJllJfQry9tif+MX2cWFXWJf/RXz4kaCeq/Fg==",
  866 + "license": "MIT",
  867 + "dependencies": {
  868 + "@rc-component/util": "^1.4.0",
  869 + "clsx": "^2.1.1"
  870 + },
  871 + "peerDependencies": {
  872 + "react": ">=16.0.0",
  873 + "react-dom": ">=16.0.0"
  874 + }
  875 + },
  876 + "node_modules/@rc-component/input-number": {
  877 + "version": "1.6.2",
  878 + "resolved": "https://registry.npmjs.org/@rc-component/input-number/-/input-number-1.6.2.tgz",
  879 + "integrity": "sha512-Gjcq7meZlCOiWN1t1xCC+7/s85humHVokTBI7PJgTfoyw5OWF74y3e6P8PHX104g9+b54jsodFIzyaj6p8LI9w==",
  880 + "license": "MIT",
  881 + "dependencies": {
  882 + "@rc-component/mini-decimal": "^1.0.1",
  883 + "@rc-component/util": "^1.4.0",
  884 + "clsx": "^2.1.1"
  885 + },
  886 + "peerDependencies": {
  887 + "react": ">=16.9.0",
  888 + "react-dom": ">=16.9.0"
  889 + }
  890 + },
  891 + "node_modules/@rc-component/mentions": {
  892 + "version": "1.6.0",
  893 + "resolved": "https://registry.npmjs.org/@rc-component/mentions/-/mentions-1.6.0.tgz",
  894 + "integrity": "sha512-KIkQNP6habNuTsLhUv0UGEOwG67tlmE7KNIJoQZZNggEZl5lQJTytFDb69sl5CK3TDdISCTjKP3nGEBKgT61CQ==",
  895 + "license": "MIT",
  896 + "dependencies": {
  897 + "@rc-component/input": "~1.1.0",
  898 + "@rc-component/menu": "~1.2.0",
  899 + "@rc-component/textarea": "~1.1.0",
  900 + "@rc-component/trigger": "^3.0.0",
  901 + "@rc-component/util": "^1.3.0",
  902 + "clsx": "^2.1.1"
  903 + },
  904 + "peerDependencies": {
  905 + "react": ">=16.9.0",
  906 + "react-dom": ">=16.9.0"
  907 + }
  908 + },
  909 + "node_modules/@rc-component/menu": {
  910 + "version": "1.2.0",
  911 + "resolved": "https://registry.npmjs.org/@rc-component/menu/-/menu-1.2.0.tgz",
  912 + "integrity": "sha512-VWwDuhvYHSnTGj4n6bV3ISrLACcPAzdPOq3d0BzkeiM5cve8BEYfvkEhNoM0PLzv51jpcejeyrLXeMVIJ+QJlg==",
  913 + "license": "MIT",
  914 + "dependencies": {
  915 + "@rc-component/motion": "^1.1.4",
  916 + "@rc-component/overflow": "^1.0.0",
  917 + "@rc-component/trigger": "^3.0.0",
  918 + "@rc-component/util": "^1.3.0",
  919 + "clsx": "^2.1.1"
  920 + },
  921 + "peerDependencies": {
  922 + "react": ">=16.9.0",
  923 + "react-dom": ">=16.9.0"
  924 + }
  925 + },
  926 + "node_modules/@rc-component/mini-decimal": {
  927 + "version": "1.1.3",
  928 + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.3.tgz",
  929 + "integrity": "sha512-bk/FJ09fLf+NLODMAFll6CfYrHPBioTedhW6lxDBuuWucJEqFUd4l/D/5JgIi3dina6sYahB8iuPAZTNz2pMxw==",
  930 + "license": "MIT",
  931 + "dependencies": {
  932 + "@babel/runtime": "^7.18.0"
  933 + },
  934 + "engines": {
  935 + "node": ">=8.x"
  936 + }
  937 + },
  938 + "node_modules/@rc-component/motion": {
  939 + "version": "1.3.2",
  940 + "resolved": "https://registry.npmjs.org/@rc-component/motion/-/motion-1.3.2.tgz",
  941 + "integrity": "sha512-itfd+GztzJYAb04Z4RkEub1TbJAfZc2Iuy8p44U44xD1F5+fNYFKI3897ijlbIyfvXkTmMm+KGcjkQQGMHywEQ==",
  942 + "license": "MIT",
  943 + "dependencies": {
  944 + "@rc-component/util": "^1.2.0",
  945 + "clsx": "^2.1.1"
  946 + },
  947 + "peerDependencies": {
  948 + "react": ">=16.9.0",
  949 + "react-dom": ">=16.9.0"
  950 + }
  951 + },
  952 + "node_modules/@rc-component/mutate-observer": {
  953 + "version": "2.0.1",
  954 + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-2.0.1.tgz",
  955 + "integrity": "sha512-AyarjoLU5YlxuValRi+w8JRH2Z84TBbFO2RoGWz9d8bSu0FqT8DtugH3xC3BV7mUwlmROFauyWuXFuq4IFbH+w==",
  956 + "license": "MIT",
  957 + "dependencies": {
  958 + "@rc-component/util": "^1.2.0"
  959 + },
  960 + "engines": {
  961 + "node": ">=8.x"
  962 + },
  963 + "peerDependencies": {
  964 + "react": ">=16.9.0",
  965 + "react-dom": ">=16.9.0"
  966 + }
  967 + },
  968 + "node_modules/@rc-component/notification": {
  969 + "version": "1.2.0",
  970 + "resolved": "https://registry.npmjs.org/@rc-component/notification/-/notification-1.2.0.tgz",
  971 + "integrity": "sha512-OX3J+zVU7rvoJCikjrfW7qOUp7zlDeFBK2eA3SFbGSkDqo63Sl4Ss8A04kFP+fxHSxMDIS9jYVEZtU1FNCFuBA==",
  972 + "license": "MIT",
  973 + "dependencies": {
  974 + "@rc-component/motion": "^1.1.4",
  975 + "@rc-component/util": "^1.2.1",
  976 + "clsx": "^2.1.1"
  977 + },
  978 + "engines": {
  979 + "node": ">=8.x"
  980 + },
  981 + "peerDependencies": {
  982 + "react": ">=16.9.0",
  983 + "react-dom": ">=16.9.0"
  984 + }
  985 + },
  986 + "node_modules/@rc-component/overflow": {
  987 + "version": "1.0.1",
  988 + "resolved": "https://registry.npmjs.org/@rc-component/overflow/-/overflow-1.0.1.tgz",
  989 + "integrity": "sha512-syfmgAABaHCnCDzPwHZ/2tuvIcpOO3jefYZMmfkN+pmo8HKTzsfhS57vxo4ksPdN0By+uWVJhJWNFozNBxi2eA==",
  990 + "license": "MIT",
  991 + "dependencies": {
  992 + "@babel/runtime": "^7.11.1",
  993 + "@rc-component/resize-observer": "^1.0.1",
  994 + "@rc-component/util": "^1.4.0",
  995 + "clsx": "^2.1.1"
  996 + },
  997 + "peerDependencies": {
  998 + "react": ">=16.9.0",
  999 + "react-dom": ">=16.9.0"
  1000 + }
  1001 + },
  1002 + "node_modules/@rc-component/pagination": {
  1003 + "version": "1.2.0",
  1004 + "resolved": "https://registry.npmjs.org/@rc-component/pagination/-/pagination-1.2.0.tgz",
  1005 + "integrity": "sha512-YcpUFE8dMLfSo6OARJlK6DbHHvrxz7pMGPGmC/caZSJJz6HRKHC1RPP001PRHCvG9Z/veD039uOQmazVuLJzlw==",
  1006 + "license": "MIT",
  1007 + "dependencies": {
  1008 + "@rc-component/util": "^1.3.0",
  1009 + "clsx": "^2.1.1"
  1010 + },
  1011 + "peerDependencies": {
  1012 + "react": ">=16.9.0",
  1013 + "react-dom": ">=16.9.0"
  1014 + }
  1015 + },
  1016 + "node_modules/@rc-component/picker": {
  1017 + "version": "1.9.1",
  1018 + "resolved": "https://registry.npmjs.org/@rc-component/picker/-/picker-1.9.1.tgz",
  1019 + "integrity": "sha512-9FBYYsvH3HMLICaPDA/1Th5FLaDkFa7qAtangIdlhKb3ZALaR745e9PsOhheJb6asS4QXc12ffiAcjdkZ4C5/g==",
  1020 + "license": "MIT",
  1021 + "dependencies": {
  1022 + "@rc-component/overflow": "^1.0.0",
  1023 + "@rc-component/resize-observer": "^1.0.0",
  1024 + "@rc-component/trigger": "^3.6.15",
  1025 + "@rc-component/util": "^1.3.0",
  1026 + "clsx": "^2.1.1"
  1027 + },
  1028 + "engines": {
  1029 + "node": ">=12.x"
  1030 + },
  1031 + "peerDependencies": {
  1032 + "date-fns": ">= 2.x",
  1033 + "dayjs": ">= 1.x",
  1034 + "luxon": ">= 3.x",
  1035 + "moment": ">= 2.x",
  1036 + "react": ">=16.9.0",
  1037 + "react-dom": ">=16.9.0"
  1038 + },
  1039 + "peerDependenciesMeta": {
  1040 + "date-fns": {
  1041 + "optional": true
  1042 + },
  1043 + "dayjs": {
  1044 + "optional": true
  1045 + },
  1046 + "luxon": {
  1047 + "optional": true
  1048 + },
  1049 + "moment": {
  1050 + "optional": true
  1051 + }
  1052 + }
  1053 + },
  1054 + "node_modules/@rc-component/portal": {
  1055 + "version": "2.2.0",
  1056 + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-2.2.0.tgz",
  1057 + "integrity": "sha512-oc6FlA+uXCMiwArHsJyHcIkX4q6uKyndrPol2eWX8YPkAnztHOPsFIRtmWG4BMlGE5h7YIRE3NiaJ5VS8Lb1QQ==",
  1058 + "license": "MIT",
  1059 + "dependencies": {
  1060 + "@rc-component/util": "^1.2.1",
  1061 + "clsx": "^2.1.1"
  1062 + },
  1063 + "engines": {
  1064 + "node": ">=12.x"
  1065 + },
  1066 + "peerDependencies": {
  1067 + "react": ">=18.0.0",
  1068 + "react-dom": ">=18.0.0"
  1069 + }
  1070 + },
  1071 + "node_modules/@rc-component/progress": {
  1072 + "version": "1.0.2",
  1073 + "resolved": "https://registry.npmjs.org/@rc-component/progress/-/progress-1.0.2.tgz",
  1074 + "integrity": "sha512-WZUnH9eGxH1+xodZKqdrHke59uyGZSWgj5HBM5Kwk5BrTMuAORO7VJ2IP5Qbm9aH3n9x3IcesqHHR0NWPBC7fQ==",
  1075 + "license": "MIT",
  1076 + "dependencies": {
  1077 + "@rc-component/util": "^1.2.1",
  1078 + "clsx": "^2.1.1"
  1079 + },
  1080 + "peerDependencies": {
  1081 + "react": ">=16.9.0",
  1082 + "react-dom": ">=16.9.0"
  1083 + }
  1084 + },
  1085 + "node_modules/@rc-component/qrcode": {
  1086 + "version": "1.1.1",
  1087 + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.1.1.tgz",
  1088 + "integrity": "sha512-LfLGNymzKdUPjXUbRP+xOhIWY4jQ+YMj5MmWAcgcAq1Ij8XP7tRmAXqyuv96XvLUBE/5cA8hLFl9eO1JQMujrA==",
  1089 + "license": "MIT",
  1090 + "dependencies": {
  1091 + "@babel/runtime": "^7.24.7"
  1092 + },
  1093 + "engines": {
  1094 + "node": ">=8.x"
  1095 + },
  1096 + "peerDependencies": {
  1097 + "react": ">=16.9.0",
  1098 + "react-dom": ">=16.9.0"
  1099 + }
  1100 + },
  1101 + "node_modules/@rc-component/rate": {
  1102 + "version": "1.0.1",
  1103 + "resolved": "https://registry.npmjs.org/@rc-component/rate/-/rate-1.0.1.tgz",
  1104 + "integrity": "sha512-bkXxeBqDpl5IOC7yL7GcSYjQx9G8H+6kLYQnNZWeBYq2OYIv1MONd6mqKTjnnJYpV0cQIU2z3atdW0j1kttpTw==",
  1105 + "license": "MIT",
  1106 + "dependencies": {
  1107 + "@rc-component/util": "^1.3.0",
  1108 + "clsx": "^2.1.1"
  1109 + },
  1110 + "engines": {
  1111 + "node": ">=8.x"
  1112 + },
  1113 + "peerDependencies": {
  1114 + "react": ">=16.9.0",
  1115 + "react-dom": ">=16.9.0"
  1116 + }
  1117 + },
  1118 + "node_modules/@rc-component/resize-observer": {
  1119 + "version": "1.1.2",
  1120 + "resolved": "https://registry.npmjs.org/@rc-component/resize-observer/-/resize-observer-1.1.2.tgz",
  1121 + "integrity": "sha512-t/Bb0W8uvL4PYKAB3YcChC+DlHh0Wt5kM7q/J+0qpVEUMLe7Hk5zuvc9km0hMnTFPSx5Z7Wu/fzCLN6erVLE8Q==",
  1122 + "license": "MIT",
  1123 + "dependencies": {
  1124 + "@rc-component/util": "^1.2.0"
  1125 + },
  1126 + "peerDependencies": {
  1127 + "react": ">=16.9.0",
  1128 + "react-dom": ">=16.9.0"
  1129 + }
  1130 + },
  1131 + "node_modules/@rc-component/segmented": {
  1132 + "version": "1.3.0",
  1133 + "resolved": "https://registry.npmjs.org/@rc-component/segmented/-/segmented-1.3.0.tgz",
  1134 + "integrity": "sha512-5J/bJ01mbDnoA6P/FW8SxUvKn+OgUSTZJPzCNnTBntG50tzoP7DydGhqxp7ggZXZls7me3mc2EQDXakU3iTVFg==",
  1135 + "license": "MIT",
  1136 + "dependencies": {
  1137 + "@babel/runtime": "^7.11.1",
  1138 + "@rc-component/motion": "^1.1.4",
  1139 + "@rc-component/util": "^1.3.0",
  1140 + "clsx": "^2.1.1"
  1141 + },
  1142 + "peerDependencies": {
  1143 + "react": ">=16.0.0",
  1144 + "react-dom": ">=16.0.0"
  1145 + }
  1146 + },
  1147 + "node_modules/@rc-component/select": {
  1148 + "version": "1.6.15",
  1149 + "resolved": "https://registry.npmjs.org/@rc-component/select/-/select-1.6.15.tgz",
  1150 + "integrity": "sha512-SyVCWnqxCQZZcQvQJ/CxSjx2bGma6ds/HtnpkIfZVnt6RoEgbqUmHgD6vrzNarNXwbLXerwVzWwq8F3d1sst7g==",
  1151 + "license": "MIT",
  1152 + "dependencies": {
  1153 + "@rc-component/overflow": "^1.0.0",
  1154 + "@rc-component/trigger": "^3.0.0",
  1155 + "@rc-component/util": "^1.3.0",
  1156 + "@rc-component/virtual-list": "^1.0.1",
  1157 + "clsx": "^2.1.1"
  1158 + },
  1159 + "engines": {
  1160 + "node": ">=8.x"
  1161 + },
  1162 + "peerDependencies": {
  1163 + "react": "*",
  1164 + "react-dom": "*"
  1165 + }
  1166 + },
  1167 + "node_modules/@rc-component/slider": {
  1168 + "version": "1.0.1",
  1169 + "resolved": "https://registry.npmjs.org/@rc-component/slider/-/slider-1.0.1.tgz",
  1170 + "integrity": "sha512-uDhEPU1z3WDfCJhaL9jfd2ha/Eqpdfxsn0Zb0Xcq1NGQAman0TWaR37OWp2vVXEOdV2y0njSILTMpTfPV1454g==",
  1171 + "license": "MIT",
  1172 + "dependencies": {
  1173 + "@rc-component/util": "^1.3.0",
  1174 + "clsx": "^2.1.1"
  1175 + },
  1176 + "engines": {
  1177 + "node": ">=8.x"
  1178 + },
  1179 + "peerDependencies": {
  1180 + "react": ">=16.9.0",
  1181 + "react-dom": ">=16.9.0"
  1182 + }
  1183 + },
  1184 + "node_modules/@rc-component/steps": {
  1185 + "version": "1.2.2",
  1186 + "resolved": "https://registry.npmjs.org/@rc-component/steps/-/steps-1.2.2.tgz",
  1187 + "integrity": "sha512-/yVIZ00gDYYPHSY0JP+M+s3ZvuXLu2f9rEjQqiUDs7EcYsUYrpJ/1bLj9aI9R7MBR3fu/NGh6RM9u2qGfqp+Nw==",
  1188 + "license": "MIT",
  1189 + "dependencies": {
  1190 + "@rc-component/util": "^1.2.1",
  1191 + "clsx": "^2.1.1"
  1192 + },
  1193 + "engines": {
  1194 + "node": ">=8.x"
  1195 + },
  1196 + "peerDependencies": {
  1197 + "react": ">=16.9.0",
  1198 + "react-dom": ">=16.9.0"
  1199 + }
  1200 + },
  1201 + "node_modules/@rc-component/switch": {
  1202 + "version": "1.0.3",
  1203 + "resolved": "https://registry.npmjs.org/@rc-component/switch/-/switch-1.0.3.tgz",
  1204 + "integrity": "sha512-Jgi+EbOBquje/XNdofr7xbJQZPYJP+BlPfR0h+WN4zFkdtB2EWqEfvkXJWeipflwjWip0/17rNbxEAqs8hVHfw==",
  1205 + "license": "MIT",
  1206 + "dependencies": {
  1207 + "@rc-component/util": "^1.3.0",
  1208 + "clsx": "^2.1.1"
  1209 + },
  1210 + "peerDependencies": {
  1211 + "react": ">=16.9.0",
  1212 + "react-dom": ">=16.9.0"
  1213 + }
  1214 + },
  1215 + "node_modules/@rc-component/table": {
  1216 + "version": "1.9.1",
  1217 + "resolved": "https://registry.npmjs.org/@rc-component/table/-/table-1.9.1.tgz",
  1218 + "integrity": "sha512-FVI5ZS/GdB3BcgexfCYKi3iHhZS3Fr59EtsxORszYGrfpH1eWr33eDNSYkVfLI6tfJ7vftJDd9D5apfFWqkdJg==",
  1219 + "license": "MIT",
  1220 + "dependencies": {
  1221 + "@rc-component/context": "^2.0.1",
  1222 + "@rc-component/resize-observer": "^1.0.0",
  1223 + "@rc-component/util": "^1.1.0",
  1224 + "@rc-component/virtual-list": "^1.0.1",
  1225 + "clsx": "^2.1.1"
  1226 + },
  1227 + "engines": {
  1228 + "node": ">=8.x"
  1229 + },
  1230 + "peerDependencies": {
  1231 + "react": ">=18.0.0",
  1232 + "react-dom": ">=18.0.0"
  1233 + }
  1234 + },
  1235 + "node_modules/@rc-component/tabs": {
  1236 + "version": "1.7.0",
  1237 + "resolved": "https://registry.npmjs.org/@rc-component/tabs/-/tabs-1.7.0.tgz",
  1238 + "integrity": "sha512-J48cs2iBi7Ho3nptBxxIqizEliUC+ExE23faspUQKGQ550vaBlv3aGF8Epv/UB1vFWeoJDTW/dNzgIU0Qj5i/w==",
  1239 + "license": "MIT",
  1240 + "dependencies": {
  1241 + "@rc-component/dropdown": "~1.0.0",
  1242 + "@rc-component/menu": "~1.2.0",
  1243 + "@rc-component/motion": "^1.1.3",
  1244 + "@rc-component/resize-observer": "^1.0.0",
  1245 + "@rc-component/util": "^1.3.0",
  1246 + "clsx": "^2.1.1"
  1247 + },
  1248 + "engines": {
  1249 + "node": ">=8.x"
  1250 + },
  1251 + "peerDependencies": {
  1252 + "react": ">=16.9.0",
  1253 + "react-dom": ">=16.9.0"
  1254 + }
  1255 + },
  1256 + "node_modules/@rc-component/textarea": {
  1257 + "version": "1.1.2",
  1258 + "resolved": "https://registry.npmjs.org/@rc-component/textarea/-/textarea-1.1.2.tgz",
  1259 + "integrity": "sha512-9rMUEODWZDMovfScIEHXWlVZuPljZ2pd1LKNjslJVitn4SldEzq5vO1CL3yy3Dnib6zZal2r2DPtjy84VVpF6A==",
  1260 + "license": "MIT",
  1261 + "dependencies": {
  1262 + "@rc-component/input": "~1.1.0",
  1263 + "@rc-component/resize-observer": "^1.0.0",
  1264 + "@rc-component/util": "^1.3.0",
  1265 + "clsx": "^2.1.1"
  1266 + },
  1267 + "peerDependencies": {
  1268 + "react": ">=16.9.0",
  1269 + "react-dom": ">=16.9.0"
  1270 + }
  1271 + },
  1272 + "node_modules/@rc-component/tooltip": {
  1273 + "version": "1.4.0",
  1274 + "resolved": "https://registry.npmjs.org/@rc-component/tooltip/-/tooltip-1.4.0.tgz",
  1275 + "integrity": "sha512-8Rx5DCctIlLI4raR0I0xHjVTf1aF48+gKCNeAAo5bmF5VoR5YED+A/XEqzXv9KKqrJDRcd3Wndpxh2hyzrTtSg==",
  1276 + "license": "MIT",
  1277 + "dependencies": {
  1278 + "@rc-component/trigger": "^3.7.1",
  1279 + "@rc-component/util": "^1.3.0",
  1280 + "clsx": "^2.1.1"
  1281 + },
  1282 + "peerDependencies": {
  1283 + "react": ">=18.0.0",
  1284 + "react-dom": ">=18.0.0"
  1285 + }
  1286 + },
  1287 + "node_modules/@rc-component/tour": {
  1288 + "version": "2.3.0",
  1289 + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-2.3.0.tgz",
  1290 + "integrity": "sha512-K04K9r32kUC+auBSQfr+Fss4SpSIS9JGe56oq/ALAX0p+i2ylYOI1MgR83yBY7v96eO6ZFXcM/igCQmubps0Ow==",
  1291 + "license": "MIT",
  1292 + "dependencies": {
  1293 + "@rc-component/portal": "^2.2.0",
  1294 + "@rc-component/trigger": "^3.0.0",
  1295 + "@rc-component/util": "^1.7.0",
  1296 + "clsx": "^2.1.1"
  1297 + },
  1298 + "engines": {
  1299 + "node": ">=8.x"
  1300 + },
  1301 + "peerDependencies": {
  1302 + "react": ">=16.9.0",
  1303 + "react-dom": ">=16.9.0"
  1304 + }
  1305 + },
  1306 + "node_modules/@rc-component/tree": {
  1307 + "version": "1.2.4",
  1308 + "resolved": "https://registry.npmjs.org/@rc-component/tree/-/tree-1.2.4.tgz",
  1309 + "integrity": "sha512-5Gli43+m4R7NhpYYz3Z61I6LOw9yI6CNChxgVtvrO6xB1qML7iE6QMLVMB3+FTjo2yF6uFdAHtqWPECz/zbX5w==",
  1310 + "license": "MIT",
  1311 + "dependencies": {
  1312 + "@rc-component/motion": "^1.0.0",
  1313 + "@rc-component/util": "^1.8.1",
  1314 + "@rc-component/virtual-list": "^1.0.1",
  1315 + "clsx": "^2.1.1"
  1316 + },
  1317 + "engines": {
  1318 + "node": ">=10.x"
  1319 + },
  1320 + "peerDependencies": {
  1321 + "react": "*",
  1322 + "react-dom": "*"
  1323 + }
  1324 + },
  1325 + "node_modules/@rc-component/tree-select": {
  1326 + "version": "1.8.0",
  1327 + "resolved": "https://registry.npmjs.org/@rc-component/tree-select/-/tree-select-1.8.0.tgz",
  1328 + "integrity": "sha512-iYsPq3nuLYvGqdvFAW+l+I9ASRIOVbMXyA8FGZg2lGym/GwkaWeJGzI4eJ7c9IOEhRj0oyfIN4S92Fl3J05mjQ==",
  1329 + "license": "MIT",
  1330 + "dependencies": {
  1331 + "@rc-component/select": "~1.6.0",
  1332 + "@rc-component/tree": "~1.2.0",
  1333 + "@rc-component/util": "^1.4.0",
  1334 + "clsx": "^2.1.1"
  1335 + },
  1336 + "peerDependencies": {
  1337 + "react": "*",
  1338 + "react-dom": "*"
  1339 + }
  1340 + },
  1341 + "node_modules/@rc-component/trigger": {
  1342 + "version": "3.9.0",
  1343 + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-3.9.0.tgz",
  1344 + "integrity": "sha512-X8btpwfrT27AgrZVOz4swclhEHTZcqaHeQMXXBgveagOiakTa36uObXbdwerXffgV8G9dH1fAAE0DHtVQs8EHg==",
  1345 + "license": "MIT",
  1346 + "dependencies": {
  1347 + "@rc-component/motion": "^1.1.4",
  1348 + "@rc-component/portal": "^2.2.0",
  1349 + "@rc-component/resize-observer": "^1.1.1",
  1350 + "@rc-component/util": "^1.2.1",
  1351 + "clsx": "^2.1.1"
  1352 + },
  1353 + "engines": {
  1354 + "node": ">=8.x"
  1355 + },
  1356 + "peerDependencies": {
  1357 + "react": ">=18.0.0",
  1358 + "react-dom": ">=18.0.0"
  1359 + }
  1360 + },
  1361 + "node_modules/@rc-component/upload": {
  1362 + "version": "1.1.0",
  1363 + "resolved": "https://registry.npmjs.org/@rc-component/upload/-/upload-1.1.0.tgz",
  1364 + "integrity": "sha512-LIBV90mAnUE6VK5N4QvForoxZc4XqEYZimcp7fk+lkE4XwHHyJWxpIXQQwMU8hJM+YwBbsoZkGksL1sISWHQxw==",
  1365 + "license": "MIT",
  1366 + "dependencies": {
  1367 + "@rc-component/util": "^1.3.0",
  1368 + "clsx": "^2.1.1"
  1369 + },
  1370 + "peerDependencies": {
  1371 + "react": ">=16.9.0",
  1372 + "react-dom": ">=16.9.0"
  1373 + }
  1374 + },
  1375 + "node_modules/@rc-component/util": {
  1376 + "version": "1.10.1",
  1377 + "resolved": "https://registry.npmjs.org/@rc-component/util/-/util-1.10.1.tgz",
  1378 + "integrity": "sha512-q++9S6rUa5Idb/xIBNz6jtvumw5+O5YV5V0g4iK9mn9jWs4oGJheE3ZN1kAnE723AXyaD8v95yeOASmdk8Jnng==",
  1379 + "license": "MIT",
  1380 + "dependencies": {
  1381 + "is-mobile": "^5.0.0",
  1382 + "react-is": "^18.2.0"
  1383 + },
  1384 + "peerDependencies": {
  1385 + "react": ">=18.0.0",
  1386 + "react-dom": ">=18.0.0"
  1387 + }
  1388 + },
  1389 + "node_modules/@rc-component/virtual-list": {
  1390 + "version": "1.0.2",
  1391 + "resolved": "https://registry.npmjs.org/@rc-component/virtual-list/-/virtual-list-1.0.2.tgz",
  1392 + "integrity": "sha512-uvTol/mH74FYsn5loDGJxo+7kjkO4i+y4j87Re1pxJBs0FaeuMuLRzQRGaXwnMcV1CxpZLi2Z56Rerj2M00fjQ==",
  1393 + "license": "MIT",
  1394 + "dependencies": {
  1395 + "@babel/runtime": "^7.20.0",
  1396 + "@rc-component/resize-observer": "^1.0.1",
  1397 + "@rc-component/util": "^1.4.0",
  1398 + "clsx": "^2.1.1"
  1399 + },
  1400 + "engines": {
  1401 + "node": ">=8.x"
  1402 + },
  1403 + "peerDependencies": {
  1404 + "react": ">=16.9.0",
  1405 + "react-dom": ">=16.9.0"
  1406 + }
  1407 + },
  1408 + "node_modules/@reduxjs/toolkit": {
  1409 + "version": "2.11.2",
  1410 + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz",
  1411 + "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==",
  1412 + "license": "MIT",
  1413 + "dependencies": {
  1414 + "@standard-schema/spec": "^1.0.0",
  1415 + "@standard-schema/utils": "^0.3.0",
  1416 + "immer": "^11.0.0",
  1417 + "redux": "^5.0.1",
  1418 + "redux-thunk": "^3.1.0",
  1419 + "reselect": "^5.1.0"
  1420 + },
  1421 + "peerDependencies": {
  1422 + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19",
  1423 + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0"
  1424 + },
  1425 + "peerDependenciesMeta": {
  1426 + "react": {
  1427 + "optional": true
  1428 + },
  1429 + "react-redux": {
  1430 + "optional": true
  1431 + }
  1432 + }
  1433 + },
  1434 + "node_modules/@rolldown/binding-android-arm64": {
  1435 + "version": "1.0.0-rc.17",
  1436 + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.17.tgz",
  1437 + "integrity": "sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==",
  1438 + "cpu": [
  1439 + "arm64"
  1440 + ],
  1441 + "dev": true,
  1442 + "license": "MIT",
  1443 + "optional": true,
  1444 + "os": [
  1445 + "android"
  1446 + ],
  1447 + "engines": {
  1448 + "node": "^20.19.0 || >=22.12.0"
  1449 + }
  1450 + },
  1451 + "node_modules/@rolldown/binding-darwin-arm64": {
  1452 + "version": "1.0.0-rc.17",
  1453 + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.17.tgz",
  1454 + "integrity": "sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==",
  1455 + "cpu": [
  1456 + "arm64"
  1457 + ],
  1458 + "dev": true,
  1459 + "license": "MIT",
  1460 + "optional": true,
  1461 + "os": [
  1462 + "darwin"
  1463 + ],
  1464 + "engines": {
  1465 + "node": "^20.19.0 || >=22.12.0"
  1466 + }
  1467 + },
  1468 + "node_modules/@rolldown/binding-darwin-x64": {
  1469 + "version": "1.0.0-rc.17",
  1470 + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.17.tgz",
  1471 + "integrity": "sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==",
  1472 + "cpu": [
  1473 + "x64"
  1474 + ],
  1475 + "dev": true,
  1476 + "license": "MIT",
  1477 + "optional": true,
  1478 + "os": [
  1479 + "darwin"
  1480 + ],
  1481 + "engines": {
  1482 + "node": "^20.19.0 || >=22.12.0"
  1483 + }
  1484 + },
  1485 + "node_modules/@rolldown/binding-freebsd-x64": {
  1486 + "version": "1.0.0-rc.17",
  1487 + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.17.tgz",
  1488 + "integrity": "sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==",
  1489 + "cpu": [
  1490 + "x64"
  1491 + ],
  1492 + "dev": true,
  1493 + "license": "MIT",
  1494 + "optional": true,
  1495 + "os": [
  1496 + "freebsd"
  1497 + ],
  1498 + "engines": {
  1499 + "node": "^20.19.0 || >=22.12.0"
  1500 + }
  1501 + },
  1502 + "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
  1503 + "version": "1.0.0-rc.17",
  1504 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.17.tgz",
  1505 + "integrity": "sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==",
  1506 + "cpu": [
  1507 + "arm"
  1508 + ],
  1509 + "dev": true,
  1510 + "license": "MIT",
  1511 + "optional": true,
  1512 + "os": [
  1513 + "linux"
  1514 + ],
  1515 + "engines": {
  1516 + "node": "^20.19.0 || >=22.12.0"
  1517 + }
  1518 + },
  1519 + "node_modules/@rolldown/binding-linux-arm64-gnu": {
  1520 + "version": "1.0.0-rc.17",
  1521 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.17.tgz",
  1522 + "integrity": "sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==",
  1523 + "cpu": [
  1524 + "arm64"
  1525 + ],
  1526 + "dev": true,
  1527 + "libc": [
  1528 + "glibc"
  1529 + ],
  1530 + "license": "MIT",
  1531 + "optional": true,
  1532 + "os": [
  1533 + "linux"
  1534 + ],
  1535 + "engines": {
  1536 + "node": "^20.19.0 || >=22.12.0"
  1537 + }
  1538 + },
  1539 + "node_modules/@rolldown/binding-linux-arm64-musl": {
  1540 + "version": "1.0.0-rc.17",
  1541 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.17.tgz",
  1542 + "integrity": "sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==",
  1543 + "cpu": [
  1544 + "arm64"
  1545 + ],
  1546 + "dev": true,
  1547 + "libc": [
  1548 + "musl"
  1549 + ],
  1550 + "license": "MIT",
  1551 + "optional": true,
  1552 + "os": [
  1553 + "linux"
  1554 + ],
  1555 + "engines": {
  1556 + "node": "^20.19.0 || >=22.12.0"
  1557 + }
  1558 + },
  1559 + "node_modules/@rolldown/binding-linux-ppc64-gnu": {
  1560 + "version": "1.0.0-rc.17",
  1561 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.17.tgz",
  1562 + "integrity": "sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==",
  1563 + "cpu": [
  1564 + "ppc64"
  1565 + ],
  1566 + "dev": true,
  1567 + "libc": [
  1568 + "glibc"
  1569 + ],
  1570 + "license": "MIT",
  1571 + "optional": true,
  1572 + "os": [
  1573 + "linux"
  1574 + ],
  1575 + "engines": {
  1576 + "node": "^20.19.0 || >=22.12.0"
  1577 + }
  1578 + },
  1579 + "node_modules/@rolldown/binding-linux-s390x-gnu": {
  1580 + "version": "1.0.0-rc.17",
  1581 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.17.tgz",
  1582 + "integrity": "sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==",
  1583 + "cpu": [
  1584 + "s390x"
  1585 + ],
  1586 + "dev": true,
  1587 + "libc": [
  1588 + "glibc"
  1589 + ],
  1590 + "license": "MIT",
  1591 + "optional": true,
  1592 + "os": [
  1593 + "linux"
  1594 + ],
  1595 + "engines": {
  1596 + "node": "^20.19.0 || >=22.12.0"
  1597 + }
  1598 + },
  1599 + "node_modules/@rolldown/binding-linux-x64-gnu": {
  1600 + "version": "1.0.0-rc.17",
  1601 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.17.tgz",
  1602 + "integrity": "sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==",
  1603 + "cpu": [
  1604 + "x64"
  1605 + ],
  1606 + "dev": true,
  1607 + "libc": [
  1608 + "glibc"
  1609 + ],
  1610 + "license": "MIT",
  1611 + "optional": true,
  1612 + "os": [
  1613 + "linux"
  1614 + ],
  1615 + "engines": {
  1616 + "node": "^20.19.0 || >=22.12.0"
  1617 + }
  1618 + },
  1619 + "node_modules/@rolldown/binding-linux-x64-musl": {
  1620 + "version": "1.0.0-rc.17",
  1621 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.17.tgz",
  1622 + "integrity": "sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==",
  1623 + "cpu": [
  1624 + "x64"
  1625 + ],
  1626 + "dev": true,
  1627 + "libc": [
  1628 + "musl"
  1629 + ],
  1630 + "license": "MIT",
  1631 + "optional": true,
  1632 + "os": [
  1633 + "linux"
  1634 + ],
  1635 + "engines": {
  1636 + "node": "^20.19.0 || >=22.12.0"
  1637 + }
  1638 + },
  1639 + "node_modules/@rolldown/binding-openharmony-arm64": {
  1640 + "version": "1.0.0-rc.17",
  1641 + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.17.tgz",
  1642 + "integrity": "sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==",
  1643 + "cpu": [
  1644 + "arm64"
  1645 + ],
  1646 + "dev": true,
  1647 + "license": "MIT",
  1648 + "optional": true,
  1649 + "os": [
  1650 + "openharmony"
  1651 + ],
  1652 + "engines": {
  1653 + "node": "^20.19.0 || >=22.12.0"
  1654 + }
  1655 + },
  1656 + "node_modules/@rolldown/binding-wasm32-wasi": {
  1657 + "version": "1.0.0-rc.17",
  1658 + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.17.tgz",
  1659 + "integrity": "sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==",
  1660 + "cpu": [
  1661 + "wasm32"
  1662 + ],
  1663 + "dev": true,
  1664 + "license": "MIT",
  1665 + "optional": true,
  1666 + "dependencies": {
  1667 + "@emnapi/core": "1.10.0",
  1668 + "@emnapi/runtime": "1.10.0",
  1669 + "@napi-rs/wasm-runtime": "^1.1.4"
  1670 + },
  1671 + "engines": {
  1672 + "node": "^20.19.0 || >=22.12.0"
  1673 + }
  1674 + },
  1675 + "node_modules/@rolldown/binding-win32-arm64-msvc": {
  1676 + "version": "1.0.0-rc.17",
  1677 + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.17.tgz",
  1678 + "integrity": "sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==",
  1679 + "cpu": [
  1680 + "arm64"
  1681 + ],
  1682 + "dev": true,
  1683 + "license": "MIT",
  1684 + "optional": true,
  1685 + "os": [
  1686 + "win32"
  1687 + ],
  1688 + "engines": {
  1689 + "node": "^20.19.0 || >=22.12.0"
  1690 + }
  1691 + },
  1692 + "node_modules/@rolldown/binding-win32-x64-msvc": {
  1693 + "version": "1.0.0-rc.17",
  1694 + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.17.tgz",
  1695 + "integrity": "sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==",
  1696 + "cpu": [
  1697 + "x64"
  1698 + ],
  1699 + "dev": true,
  1700 + "license": "MIT",
  1701 + "optional": true,
  1702 + "os": [
  1703 + "win32"
  1704 + ],
  1705 + "engines": {
  1706 + "node": "^20.19.0 || >=22.12.0"
  1707 + }
  1708 + },
  1709 + "node_modules/@rolldown/pluginutils": {
  1710 + "version": "1.0.0-rc.7",
  1711 + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz",
  1712 + "integrity": "sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==",
  1713 + "dev": true,
  1714 + "license": "MIT"
  1715 + },
  1716 + "node_modules/@standard-schema/spec": {
  1717 + "version": "1.1.0",
  1718 + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
  1719 + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
  1720 + "license": "MIT"
  1721 + },
  1722 + "node_modules/@standard-schema/utils": {
  1723 + "version": "0.3.0",
  1724 + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz",
  1725 + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==",
  1726 + "license": "MIT"
  1727 + },
  1728 + "node_modules/@tybys/wasm-util": {
  1729 + "version": "0.10.2",
  1730 + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz",
  1731 + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==",
  1732 + "dev": true,
  1733 + "license": "MIT",
  1734 + "optional": true,
  1735 + "dependencies": {
  1736 + "tslib": "^2.4.0"
  1737 + }
  1738 + },
  1739 + "node_modules/@types/esrecurse": {
  1740 + "version": "4.3.1",
  1741 + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz",
  1742 + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==",
  1743 + "dev": true,
  1744 + "license": "MIT"
  1745 + },
  1746 + "node_modules/@types/estree": {
  1747 + "version": "1.0.9",
  1748 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz",
  1749 + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
  1750 + "dev": true,
  1751 + "license": "MIT"
  1752 + },
  1753 + "node_modules/@types/json-schema": {
  1754 + "version": "7.0.15",
  1755 + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
  1756 + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
  1757 + "dev": true,
  1758 + "license": "MIT"
  1759 + },
  1760 + "node_modules/@types/node": {
  1761 + "version": "24.12.2",
  1762 + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz",
  1763 + "integrity": "sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==",
  1764 + "dev": true,
  1765 + "license": "MIT",
  1766 + "dependencies": {
  1767 + "undici-types": "~7.16.0"
  1768 + }
  1769 + },
  1770 + "node_modules/@types/react": {
  1771 + "version": "19.2.14",
  1772 + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
  1773 + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
  1774 + "devOptional": true,
  1775 + "license": "MIT",
  1776 + "dependencies": {
  1777 + "csstype": "^3.2.2"
  1778 + }
  1779 + },
  1780 + "node_modules/@types/react-dom": {
  1781 + "version": "19.2.3",
  1782 + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz",
  1783 + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
  1784 + "dev": true,
  1785 + "license": "MIT",
  1786 + "peerDependencies": {
  1787 + "@types/react": "^19.2.0"
  1788 + }
  1789 + },
  1790 + "node_modules/@types/use-sync-external-store": {
  1791 + "version": "0.0.6",
  1792 + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz",
  1793 + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
  1794 + "license": "MIT"
  1795 + },
  1796 + "node_modules/@typescript-eslint/eslint-plugin": {
  1797 + "version": "8.59.2",
  1798 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.2.tgz",
  1799 + "integrity": "sha512-j/bwmkBvHUtPNxzuWe5z6BEk3q54YRyGlBXkSsmfoih7zNrBvl5A9A98anlp/7JbyZcWIJ8KXo/3Tq/DjFLtuQ==",
  1800 + "dev": true,
  1801 + "license": "MIT",
  1802 + "dependencies": {
  1803 + "@eslint-community/regexpp": "^4.12.2",
  1804 + "@typescript-eslint/scope-manager": "8.59.2",
  1805 + "@typescript-eslint/type-utils": "8.59.2",
  1806 + "@typescript-eslint/utils": "8.59.2",
  1807 + "@typescript-eslint/visitor-keys": "8.59.2",
  1808 + "ignore": "^7.0.5",
  1809 + "natural-compare": "^1.4.0",
  1810 + "ts-api-utils": "^2.5.0"
  1811 + },
  1812 + "engines": {
  1813 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
  1814 + },
  1815 + "funding": {
  1816 + "type": "opencollective",
  1817 + "url": "https://opencollective.com/typescript-eslint"
  1818 + },
  1819 + "peerDependencies": {
  1820 + "@typescript-eslint/parser": "^8.59.2",
  1821 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
  1822 + "typescript": ">=4.8.4 <6.1.0"
  1823 + }
  1824 + },
  1825 + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
  1826 + "version": "7.0.5",
  1827 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
  1828 + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
  1829 + "dev": true,
  1830 + "license": "MIT",
  1831 + "engines": {
  1832 + "node": ">= 4"
  1833 + }
  1834 + },
  1835 + "node_modules/@typescript-eslint/parser": {
  1836 + "version": "8.59.2",
  1837 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.2.tgz",
  1838 + "integrity": "sha512-plR3pp6D+SSUn1HM7xvSkx12/DhoHInI2YF35KAcVFNZvlC0gtrWqx7Qq1oH2Ssgi0vlFRCTbP+DZc7B9+TtsQ==",
  1839 + "dev": true,
  1840 + "license": "MIT",
  1841 + "dependencies": {
  1842 + "@typescript-eslint/scope-manager": "8.59.2",
  1843 + "@typescript-eslint/types": "8.59.2",
  1844 + "@typescript-eslint/typescript-estree": "8.59.2",
  1845 + "@typescript-eslint/visitor-keys": "8.59.2",
  1846 + "debug": "^4.4.3"
  1847 + },
  1848 + "engines": {
  1849 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
  1850 + },
  1851 + "funding": {
  1852 + "type": "opencollective",
  1853 + "url": "https://opencollective.com/typescript-eslint"
  1854 + },
  1855 + "peerDependencies": {
  1856 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
  1857 + "typescript": ">=4.8.4 <6.1.0"
  1858 + }
  1859 + },
  1860 + "node_modules/@typescript-eslint/project-service": {
  1861 + "version": "8.59.2",
  1862 + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.2.tgz",
  1863 + "integrity": "sha512-+2hqvEkeyf/0FBor67duF0Ll7Ot8jyKzDQOSrxazF/danillRq2DwR9dLptsXpoZQqxE1UisSmoZewrlPas9Vw==",
  1864 + "dev": true,
  1865 + "license": "MIT",
  1866 + "dependencies": {
  1867 + "@typescript-eslint/tsconfig-utils": "^8.59.2",
  1868 + "@typescript-eslint/types": "^8.59.2",
  1869 + "debug": "^4.4.3"
  1870 + },
  1871 + "engines": {
  1872 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
  1873 + },
  1874 + "funding": {
  1875 + "type": "opencollective",
  1876 + "url": "https://opencollective.com/typescript-eslint"
  1877 + },
  1878 + "peerDependencies": {
  1879 + "typescript": ">=4.8.4 <6.1.0"
  1880 + }
  1881 + },
  1882 + "node_modules/@typescript-eslint/scope-manager": {
  1883 + "version": "8.59.2",
  1884 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.2.tgz",
  1885 + "integrity": "sha512-JzfyEpEtOU89CcFSwyNS3mu4MLvLSXqnmX05+aKBDM+TdR5jzcGOEBwxwGNxrEQ7p/z6kK2WyioCGBf2zZBnvg==",
  1886 + "dev": true,
  1887 + "license": "MIT",
  1888 + "dependencies": {
  1889 + "@typescript-eslint/types": "8.59.2",
  1890 + "@typescript-eslint/visitor-keys": "8.59.2"
  1891 + },
  1892 + "engines": {
  1893 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
  1894 + },
  1895 + "funding": {
  1896 + "type": "opencollective",
  1897 + "url": "https://opencollective.com/typescript-eslint"
  1898 + }
  1899 + },
  1900 + "node_modules/@typescript-eslint/tsconfig-utils": {
  1901 + "version": "8.59.2",
  1902 + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.2.tgz",
  1903 + "integrity": "sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw==",
  1904 + "dev": true,
  1905 + "license": "MIT",
  1906 + "engines": {
  1907 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
  1908 + },
  1909 + "funding": {
  1910 + "type": "opencollective",
  1911 + "url": "https://opencollective.com/typescript-eslint"
  1912 + },
  1913 + "peerDependencies": {
  1914 + "typescript": ">=4.8.4 <6.1.0"
  1915 + }
  1916 + },
  1917 + "node_modules/@typescript-eslint/type-utils": {
  1918 + "version": "8.59.2",
  1919 + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.2.tgz",
  1920 + "integrity": "sha512-nhqaj1nmTdVVl/BP5omXNRGO38jn5iosis2vbdmupF2txCf8ylWT8lx+JlvMYYVqzGVKtjojUFoQ3JRWK+mfzQ==",
  1921 + "dev": true,
  1922 + "license": "MIT",
  1923 + "dependencies": {
  1924 + "@typescript-eslint/types": "8.59.2",
  1925 + "@typescript-eslint/typescript-estree": "8.59.2",
  1926 + "@typescript-eslint/utils": "8.59.2",
  1927 + "debug": "^4.4.3",
  1928 + "ts-api-utils": "^2.5.0"
  1929 + },
  1930 + "engines": {
  1931 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
  1932 + },
  1933 + "funding": {
  1934 + "type": "opencollective",
  1935 + "url": "https://opencollective.com/typescript-eslint"
  1936 + },
  1937 + "peerDependencies": {
  1938 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
  1939 + "typescript": ">=4.8.4 <6.1.0"
  1940 + }
  1941 + },
  1942 + "node_modules/@typescript-eslint/types": {
  1943 + "version": "8.59.2",
  1944 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.2.tgz",
  1945 + "integrity": "sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==",
  1946 + "dev": true,
  1947 + "license": "MIT",
  1948 + "engines": {
  1949 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
  1950 + },
  1951 + "funding": {
  1952 + "type": "opencollective",
  1953 + "url": "https://opencollective.com/typescript-eslint"
  1954 + }
  1955 + },
  1956 + "node_modules/@typescript-eslint/typescript-estree": {
  1957 + "version": "8.59.2",
  1958 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.2.tgz",
  1959 + "integrity": "sha512-o0XPGNwcWw+FIwStOWn+BwBuEmL6QXP0rsvAFg7ET1dey1Nr6Wb1ac8p5HEsK0ygO/6mUxlk+YWQD9xcb/nnXg==",
  1960 + "dev": true,
  1961 + "license": "MIT",
  1962 + "dependencies": {
  1963 + "@typescript-eslint/project-service": "8.59.2",
  1964 + "@typescript-eslint/tsconfig-utils": "8.59.2",
  1965 + "@typescript-eslint/types": "8.59.2",
  1966 + "@typescript-eslint/visitor-keys": "8.59.2",
  1967 + "debug": "^4.4.3",
  1968 + "minimatch": "^10.2.2",
  1969 + "semver": "^7.7.3",
  1970 + "tinyglobby": "^0.2.15",
  1971 + "ts-api-utils": "^2.5.0"
  1972 + },
  1973 + "engines": {
  1974 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
  1975 + },
  1976 + "funding": {
  1977 + "type": "opencollective",
  1978 + "url": "https://opencollective.com/typescript-eslint"
  1979 + },
  1980 + "peerDependencies": {
  1981 + "typescript": ">=4.8.4 <6.1.0"
  1982 + }
  1983 + },
  1984 + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
  1985 + "version": "7.7.4",
  1986 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
  1987 + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
  1988 + "dev": true,
  1989 + "license": "ISC",
  1990 + "bin": {
  1991 + "semver": "bin/semver.js"
  1992 + },
  1993 + "engines": {
  1994 + "node": ">=10"
  1995 + }
  1996 + },
  1997 + "node_modules/@typescript-eslint/utils": {
  1998 + "version": "8.59.2",
  1999 + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.2.tgz",
  2000 + "integrity": "sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q==",
  2001 + "dev": true,
  2002 + "license": "MIT",
  2003 + "dependencies": {
  2004 + "@eslint-community/eslint-utils": "^4.9.1",
  2005 + "@typescript-eslint/scope-manager": "8.59.2",
  2006 + "@typescript-eslint/types": "8.59.2",
  2007 + "@typescript-eslint/typescript-estree": "8.59.2"
  2008 + },
  2009 + "engines": {
  2010 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
  2011 + },
  2012 + "funding": {
  2013 + "type": "opencollective",
  2014 + "url": "https://opencollective.com/typescript-eslint"
  2015 + },
  2016 + "peerDependencies": {
  2017 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
  2018 + "typescript": ">=4.8.4 <6.1.0"
  2019 + }
  2020 + },
  2021 + "node_modules/@typescript-eslint/visitor-keys": {
  2022 + "version": "8.59.2",
  2023 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.2.tgz",
  2024 + "integrity": "sha512-NwjLUnGy8/Zfx23fl50tRC8rYaYnM52xNRYFAXvmiil9yh1+K6aRVQMnzW6gQB/1DLgWt977lYQn7C+wtgXZiA==",
  2025 + "dev": true,
  2026 + "license": "MIT",
  2027 + "dependencies": {
  2028 + "@typescript-eslint/types": "8.59.2",
  2029 + "eslint-visitor-keys": "^5.0.0"
  2030 + },
  2031 + "engines": {
  2032 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
  2033 + },
  2034 + "funding": {
  2035 + "type": "opencollective",
  2036 + "url": "https://opencollective.com/typescript-eslint"
  2037 + }
  2038 + },
  2039 + "node_modules/@vitejs/plugin-react": {
  2040 + "version": "6.0.1",
  2041 + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz",
  2042 + "integrity": "sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==",
  2043 + "dev": true,
  2044 + "license": "MIT",
  2045 + "dependencies": {
  2046 + "@rolldown/pluginutils": "1.0.0-rc.7"
  2047 + },
  2048 + "engines": {
  2049 + "node": "^20.19.0 || >=22.12.0"
  2050 + },
  2051 + "peerDependencies": {
  2052 + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0",
  2053 + "babel-plugin-react-compiler": "^1.0.0",
  2054 + "vite": "^8.0.0"
  2055 + },
  2056 + "peerDependenciesMeta": {
  2057 + "@rolldown/plugin-babel": {
  2058 + "optional": true
  2059 + },
  2060 + "babel-plugin-react-compiler": {
  2061 + "optional": true
  2062 + }
  2063 + }
  2064 + },
  2065 + "node_modules/acorn": {
  2066 + "version": "8.16.0",
  2067 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
  2068 + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
  2069 + "dev": true,
  2070 + "license": "MIT",
  2071 + "bin": {
  2072 + "acorn": "bin/acorn"
  2073 + },
  2074 + "engines": {
  2075 + "node": ">=0.4.0"
  2076 + }
  2077 + },
  2078 + "node_modules/acorn-jsx": {
  2079 + "version": "5.3.2",
  2080 + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
  2081 + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
  2082 + "dev": true,
  2083 + "license": "MIT",
  2084 + "peerDependencies": {
  2085 + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
  2086 + }
  2087 + },
  2088 + "node_modules/ajv": {
  2089 + "version": "6.15.0",
  2090 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz",
  2091 + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==",
  2092 + "dev": true,
  2093 + "license": "MIT",
  2094 + "dependencies": {
  2095 + "fast-deep-equal": "^3.1.1",
  2096 + "fast-json-stable-stringify": "^2.0.0",
  2097 + "json-schema-traverse": "^0.4.1",
  2098 + "uri-js": "^4.2.2"
  2099 + },
  2100 + "funding": {
  2101 + "type": "github",
  2102 + "url": "https://github.com/sponsors/epoberezkin"
  2103 + }
  2104 + },
  2105 + "node_modules/antd": {
  2106 + "version": "6.3.7",
  2107 + "resolved": "https://registry.npmjs.org/antd/-/antd-6.3.7.tgz",
  2108 + "integrity": "sha512-WTHi4bHVNKpYXLHESzU0Tts7rRNQeL84Bph9dfI3Qw7mHbTulExDcYKNHny5CTXcrBBOpraXbU9miBAwUR5vaw==",
  2109 + "license": "MIT",
  2110 + "dependencies": {
  2111 + "@ant-design/colors": "^8.0.1",
  2112 + "@ant-design/cssinjs": "^2.1.2",
  2113 + "@ant-design/cssinjs-utils": "^2.1.2",
  2114 + "@ant-design/fast-color": "^3.0.1",
  2115 + "@ant-design/icons": "^6.1.1",
  2116 + "@ant-design/react-slick": "~2.0.0",
  2117 + "@babel/runtime": "^7.28.4",
  2118 + "@rc-component/cascader": "~1.14.0",
  2119 + "@rc-component/checkbox": "~2.0.0",
  2120 + "@rc-component/collapse": "~1.2.0",
  2121 + "@rc-component/color-picker": "~3.1.1",
  2122 + "@rc-component/dialog": "~1.8.4",
  2123 + "@rc-component/drawer": "~1.4.2",
  2124 + "@rc-component/dropdown": "~1.0.2",
  2125 + "@rc-component/form": "~1.8.1",
  2126 + "@rc-component/image": "~1.9.0",
  2127 + "@rc-component/input": "~1.1.2",
  2128 + "@rc-component/input-number": "~1.6.2",
  2129 + "@rc-component/mentions": "~1.6.0",
  2130 + "@rc-component/menu": "~1.2.0",
  2131 + "@rc-component/motion": "^1.3.2",
  2132 + "@rc-component/mutate-observer": "^2.0.1",
  2133 + "@rc-component/notification": "~1.2.0",
  2134 + "@rc-component/pagination": "~1.2.0",
  2135 + "@rc-component/picker": "~1.9.1",
  2136 + "@rc-component/progress": "~1.0.2",
  2137 + "@rc-component/qrcode": "~1.1.1",
  2138 + "@rc-component/rate": "~1.0.1",
  2139 + "@rc-component/resize-observer": "^1.1.2",
  2140 + "@rc-component/segmented": "~1.3.0",
  2141 + "@rc-component/select": "~1.6.15",
  2142 + "@rc-component/slider": "~1.0.1",
  2143 + "@rc-component/steps": "~1.2.2",
  2144 + "@rc-component/switch": "~1.0.3",
  2145 + "@rc-component/table": "~1.9.1",
  2146 + "@rc-component/tabs": "~1.7.0",
  2147 + "@rc-component/textarea": "~1.1.2",
  2148 + "@rc-component/tooltip": "~1.4.0",
  2149 + "@rc-component/tour": "~2.3.0",
  2150 + "@rc-component/tree": "~1.2.4",
  2151 + "@rc-component/tree-select": "~1.8.0",
  2152 + "@rc-component/trigger": "^3.9.0",
  2153 + "@rc-component/upload": "~1.1.0",
  2154 + "@rc-component/util": "^1.10.1",
  2155 + "clsx": "^2.1.1",
  2156 + "dayjs": "^1.11.11",
  2157 + "scroll-into-view-if-needed": "^3.1.0",
  2158 + "throttle-debounce": "^5.0.2"
  2159 + },
  2160 + "funding": {
  2161 + "type": "opencollective",
  2162 + "url": "https://opencollective.com/ant-design"
  2163 + },
  2164 + "peerDependencies": {
  2165 + "react": ">=18.0.0",
  2166 + "react-dom": ">=18.0.0"
  2167 + }
  2168 + },
  2169 + "node_modules/asynckit": {
  2170 + "version": "0.4.0",
  2171 + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
  2172 + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
  2173 + "license": "MIT"
  2174 + },
  2175 + "node_modules/axios": {
  2176 + "version": "1.16.0",
  2177 + "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz",
  2178 + "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==",
  2179 + "license": "MIT",
  2180 + "dependencies": {
  2181 + "follow-redirects": "^1.16.0",
  2182 + "form-data": "^4.0.5",
  2183 + "proxy-from-env": "^2.1.0"
  2184 + }
  2185 + },
  2186 + "node_modules/balanced-match": {
  2187 + "version": "4.0.4",
  2188 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
  2189 + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
  2190 + "dev": true,
  2191 + "license": "MIT",
  2192 + "engines": {
  2193 + "node": "18 || 20 || >=22"
  2194 + }
  2195 + },
  2196 + "node_modules/baseline-browser-mapping": {
  2197 + "version": "2.10.27",
  2198 + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.27.tgz",
  2199 + "integrity": "sha512-zEs/ufmZoUd7WftKpKyXaT6RFxpQ5Qm9xytKRHvJfxFV9DFJkZph9RvJ1LcOUi0Z1ZVijMte65JbILeV+8QQEA==",
  2200 + "dev": true,
  2201 + "license": "Apache-2.0",
  2202 + "bin": {
  2203 + "baseline-browser-mapping": "dist/cli.cjs"
  2204 + },
  2205 + "engines": {
  2206 + "node": ">=6.0.0"
  2207 + }
  2208 + },
  2209 + "node_modules/brace-expansion": {
  2210 + "version": "5.0.5",
  2211 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
  2212 + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
  2213 + "dev": true,
  2214 + "license": "MIT",
  2215 + "dependencies": {
  2216 + "balanced-match": "^4.0.2"
  2217 + },
  2218 + "engines": {
  2219 + "node": "18 || 20 || >=22"
  2220 + }
  2221 + },
  2222 + "node_modules/browserslist": {
  2223 + "version": "4.28.2",
  2224 + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz",
  2225 + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==",
  2226 + "dev": true,
  2227 + "funding": [
  2228 + {
  2229 + "type": "opencollective",
  2230 + "url": "https://opencollective.com/browserslist"
  2231 + },
  2232 + {
  2233 + "type": "tidelift",
  2234 + "url": "https://tidelift.com/funding/github/npm/browserslist"
  2235 + },
  2236 + {
  2237 + "type": "github",
  2238 + "url": "https://github.com/sponsors/ai"
  2239 + }
  2240 + ],
  2241 + "license": "MIT",
  2242 + "dependencies": {
  2243 + "baseline-browser-mapping": "^2.10.12",
  2244 + "caniuse-lite": "^1.0.30001782",
  2245 + "electron-to-chromium": "^1.5.328",
  2246 + "node-releases": "^2.0.36",
  2247 + "update-browserslist-db": "^1.2.3"
  2248 + },
  2249 + "bin": {
  2250 + "browserslist": "cli.js"
  2251 + },
  2252 + "engines": {
  2253 + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
  2254 + }
  2255 + },
  2256 + "node_modules/call-bind-apply-helpers": {
  2257 + "version": "1.0.2",
  2258 + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
  2259 + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
  2260 + "license": "MIT",
  2261 + "dependencies": {
  2262 + "es-errors": "^1.3.0",
  2263 + "function-bind": "^1.1.2"
  2264 + },
  2265 + "engines": {
  2266 + "node": ">= 0.4"
  2267 + }
  2268 + },
  2269 + "node_modules/caniuse-lite": {
  2270 + "version": "1.0.30001792",
  2271 + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001792.tgz",
  2272 + "integrity": "sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==",
  2273 + "dev": true,
  2274 + "funding": [
  2275 + {
  2276 + "type": "opencollective",
  2277 + "url": "https://opencollective.com/browserslist"
  2278 + },
  2279 + {
  2280 + "type": "tidelift",
  2281 + "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
  2282 + },
  2283 + {
  2284 + "type": "github",
  2285 + "url": "https://github.com/sponsors/ai"
  2286 + }
  2287 + ],
  2288 + "license": "CC-BY-4.0"
  2289 + },
  2290 + "node_modules/clsx": {
  2291 + "version": "2.1.1",
  2292 + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
  2293 + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
  2294 + "license": "MIT",
  2295 + "engines": {
  2296 + "node": ">=6"
  2297 + }
  2298 + },
  2299 + "node_modules/combined-stream": {
  2300 + "version": "1.0.8",
  2301 + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
  2302 + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
  2303 + "license": "MIT",
  2304 + "dependencies": {
  2305 + "delayed-stream": "~1.0.0"
  2306 + },
  2307 + "engines": {
  2308 + "node": ">= 0.8"
  2309 + }
  2310 + },
  2311 + "node_modules/compute-scroll-into-view": {
  2312 + "version": "3.1.1",
  2313 + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz",
  2314 + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==",
  2315 + "license": "MIT"
  2316 + },
  2317 + "node_modules/convert-source-map": {
  2318 + "version": "2.0.0",
  2319 + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
  2320 + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
  2321 + "dev": true,
  2322 + "license": "MIT"
  2323 + },
  2324 + "node_modules/cookie": {
  2325 + "version": "1.1.1",
  2326 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz",
  2327 + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==",
  2328 + "license": "MIT",
  2329 + "engines": {
  2330 + "node": ">=18"
  2331 + },
  2332 + "funding": {
  2333 + "type": "opencollective",
  2334 + "url": "https://opencollective.com/express"
  2335 + }
  2336 + },
  2337 + "node_modules/cross-spawn": {
  2338 + "version": "7.0.6",
  2339 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
  2340 + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
  2341 + "dev": true,
  2342 + "license": "MIT",
  2343 + "dependencies": {
  2344 + "path-key": "^3.1.0",
  2345 + "shebang-command": "^2.0.0",
  2346 + "which": "^2.0.1"
  2347 + },
  2348 + "engines": {
  2349 + "node": ">= 8"
  2350 + }
  2351 + },
  2352 + "node_modules/csstype": {
  2353 + "version": "3.2.3",
  2354 + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
  2355 + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
  2356 + "license": "MIT"
  2357 + },
  2358 + "node_modules/dayjs": {
  2359 + "version": "1.11.20",
  2360 + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz",
  2361 + "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==",
  2362 + "license": "MIT"
  2363 + },
  2364 + "node_modules/debug": {
  2365 + "version": "4.4.3",
  2366 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
  2367 + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
  2368 + "dev": true,
  2369 + "license": "MIT",
  2370 + "dependencies": {
  2371 + "ms": "^2.1.3"
  2372 + },
  2373 + "engines": {
  2374 + "node": ">=6.0"
  2375 + },
  2376 + "peerDependenciesMeta": {
  2377 + "supports-color": {
  2378 + "optional": true
  2379 + }
  2380 + }
  2381 + },
  2382 + "node_modules/deep-is": {
  2383 + "version": "0.1.4",
  2384 + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
  2385 + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
  2386 + "dev": true,
  2387 + "license": "MIT"
  2388 + },
  2389 + "node_modules/delayed-stream": {
  2390 + "version": "1.0.0",
  2391 + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
  2392 + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
  2393 + "license": "MIT",
  2394 + "engines": {
  2395 + "node": ">=0.4.0"
  2396 + }
  2397 + },
  2398 + "node_modules/detect-libc": {
  2399 + "version": "2.1.2",
  2400 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
  2401 + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
  2402 + "dev": true,
  2403 + "license": "Apache-2.0",
  2404 + "engines": {
  2405 + "node": ">=8"
  2406 + }
  2407 + },
  2408 + "node_modules/dunder-proto": {
  2409 + "version": "1.0.1",
  2410 + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
  2411 + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
  2412 + "license": "MIT",
  2413 + "dependencies": {
  2414 + "call-bind-apply-helpers": "^1.0.1",
  2415 + "es-errors": "^1.3.0",
  2416 + "gopd": "^1.2.0"
  2417 + },
  2418 + "engines": {
  2419 + "node": ">= 0.4"
  2420 + }
  2421 + },
  2422 + "node_modules/electron-to-chromium": {
  2423 + "version": "1.5.352",
  2424 + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.352.tgz",
  2425 + "integrity": "sha512-9wHk8x6dyuimoe18EdiDPWKExNdxYqo4fn4FwOVVper6RxT3cmpBwBkWWfSOCYJjQdIco/nPhJhNLmn4Ufg1Yg==",
  2426 + "dev": true,
  2427 + "license": "ISC"
  2428 + },
  2429 + "node_modules/es-define-property": {
  2430 + "version": "1.0.1",
  2431 + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
  2432 + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
  2433 + "license": "MIT",
  2434 + "engines": {
  2435 + "node": ">= 0.4"
  2436 + }
  2437 + },
  2438 + "node_modules/es-errors": {
  2439 + "version": "1.3.0",
  2440 + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
  2441 + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
  2442 + "license": "MIT",
  2443 + "engines": {
  2444 + "node": ">= 0.4"
  2445 + }
  2446 + },
  2447 + "node_modules/es-object-atoms": {
  2448 + "version": "1.1.1",
  2449 + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
  2450 + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
  2451 + "license": "MIT",
  2452 + "dependencies": {
  2453 + "es-errors": "^1.3.0"
  2454 + },
  2455 + "engines": {
  2456 + "node": ">= 0.4"
  2457 + }
  2458 + },
  2459 + "node_modules/es-set-tostringtag": {
  2460 + "version": "2.1.0",
  2461 + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
  2462 + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
  2463 + "license": "MIT",
  2464 + "dependencies": {
  2465 + "es-errors": "^1.3.0",
  2466 + "get-intrinsic": "^1.2.6",
  2467 + "has-tostringtag": "^1.0.2",
  2468 + "hasown": "^2.0.2"
  2469 + },
  2470 + "engines": {
  2471 + "node": ">= 0.4"
  2472 + }
  2473 + },
  2474 + "node_modules/escalade": {
  2475 + "version": "3.2.0",
  2476 + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
  2477 + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
  2478 + "dev": true,
  2479 + "license": "MIT",
  2480 + "engines": {
  2481 + "node": ">=6"
  2482 + }
  2483 + },
  2484 + "node_modules/escape-string-regexp": {
  2485 + "version": "4.0.0",
  2486 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
  2487 + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
  2488 + "dev": true,
  2489 + "license": "MIT",
  2490 + "engines": {
  2491 + "node": ">=10"
  2492 + },
  2493 + "funding": {
  2494 + "url": "https://github.com/sponsors/sindresorhus"
  2495 + }
  2496 + },
  2497 + "node_modules/eslint": {
  2498 + "version": "10.3.0",
  2499 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.3.0.tgz",
  2500 + "integrity": "sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==",
  2501 + "dev": true,
  2502 + "license": "MIT",
  2503 + "dependencies": {
  2504 + "@eslint-community/eslint-utils": "^4.8.0",
  2505 + "@eslint-community/regexpp": "^4.12.2",
  2506 + "@eslint/config-array": "^0.23.5",
  2507 + "@eslint/config-helpers": "^0.5.5",
  2508 + "@eslint/core": "^1.2.1",
  2509 + "@eslint/plugin-kit": "^0.7.1",
  2510 + "@humanfs/node": "^0.16.6",
  2511 + "@humanwhocodes/module-importer": "^1.0.1",
  2512 + "@humanwhocodes/retry": "^0.4.2",
  2513 + "@types/estree": "^1.0.6",
  2514 + "ajv": "^6.14.0",
  2515 + "cross-spawn": "^7.0.6",
  2516 + "debug": "^4.3.2",
  2517 + "escape-string-regexp": "^4.0.0",
  2518 + "eslint-scope": "^9.1.2",
  2519 + "eslint-visitor-keys": "^5.0.1",
  2520 + "espree": "^11.2.0",
  2521 + "esquery": "^1.7.0",
  2522 + "esutils": "^2.0.2",
  2523 + "fast-deep-equal": "^3.1.3",
  2524 + "file-entry-cache": "^8.0.0",
  2525 + "find-up": "^5.0.0",
  2526 + "glob-parent": "^6.0.2",
  2527 + "ignore": "^5.2.0",
  2528 + "imurmurhash": "^0.1.4",
  2529 + "is-glob": "^4.0.0",
  2530 + "json-stable-stringify-without-jsonify": "^1.0.1",
  2531 + "minimatch": "^10.2.4",
  2532 + "natural-compare": "^1.4.0",
  2533 + "optionator": "^0.9.3"
  2534 + },
  2535 + "bin": {
  2536 + "eslint": "bin/eslint.js"
  2537 + },
  2538 + "engines": {
  2539 + "node": "^20.19.0 || ^22.13.0 || >=24"
  2540 + },
  2541 + "funding": {
  2542 + "url": "https://eslint.org/donate"
  2543 + },
  2544 + "peerDependencies": {
  2545 + "jiti": "*"
  2546 + },
  2547 + "peerDependenciesMeta": {
  2548 + "jiti": {
  2549 + "optional": true
  2550 + }
  2551 + }
  2552 + },
  2553 + "node_modules/eslint-plugin-react-hooks": {
  2554 + "version": "7.1.1",
  2555 + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz",
  2556 + "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==",
  2557 + "dev": true,
  2558 + "license": "MIT",
  2559 + "dependencies": {
  2560 + "@babel/core": "^7.24.4",
  2561 + "@babel/parser": "^7.24.4",
  2562 + "hermes-parser": "^0.25.1",
  2563 + "zod": "^3.25.0 || ^4.0.0",
  2564 + "zod-validation-error": "^3.5.0 || ^4.0.0"
  2565 + },
  2566 + "engines": {
  2567 + "node": ">=18"
  2568 + },
  2569 + "peerDependencies": {
  2570 + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0"
  2571 + }
  2572 + },
  2573 + "node_modules/eslint-plugin-react-refresh": {
  2574 + "version": "0.5.2",
  2575 + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.5.2.tgz",
  2576 + "integrity": "sha512-hmgTH57GfzoTFjVN0yBwTggnsVUF2tcqi7RJZHqi9lIezSs4eFyAMktA68YD4r5kNw1mxyY4dmkyoFDb3FIqrA==",
  2577 + "dev": true,
  2578 + "license": "MIT",
  2579 + "peerDependencies": {
  2580 + "eslint": "^9 || ^10"
  2581 + }
  2582 + },
  2583 + "node_modules/eslint-scope": {
  2584 + "version": "9.1.2",
  2585 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz",
  2586 + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==",
  2587 + "dev": true,
  2588 + "license": "BSD-2-Clause",
  2589 + "dependencies": {
  2590 + "@types/esrecurse": "^4.3.1",
  2591 + "@types/estree": "^1.0.8",
  2592 + "esrecurse": "^4.3.0",
  2593 + "estraverse": "^5.2.0"
  2594 + },
  2595 + "engines": {
  2596 + "node": "^20.19.0 || ^22.13.0 || >=24"
  2597 + },
  2598 + "funding": {
  2599 + "url": "https://opencollective.com/eslint"
  2600 + }
  2601 + },
  2602 + "node_modules/eslint-visitor-keys": {
  2603 + "version": "5.0.1",
  2604 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
  2605 + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
  2606 + "dev": true,
  2607 + "license": "Apache-2.0",
  2608 + "engines": {
  2609 + "node": "^20.19.0 || ^22.13.0 || >=24"
  2610 + },
  2611 + "funding": {
  2612 + "url": "https://opencollective.com/eslint"
  2613 + }
  2614 + },
  2615 + "node_modules/espree": {
  2616 + "version": "11.2.0",
  2617 + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz",
  2618 + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==",
  2619 + "dev": true,
  2620 + "license": "BSD-2-Clause",
  2621 + "dependencies": {
  2622 + "acorn": "^8.16.0",
  2623 + "acorn-jsx": "^5.3.2",
  2624 + "eslint-visitor-keys": "^5.0.1"
  2625 + },
  2626 + "engines": {
  2627 + "node": "^20.19.0 || ^22.13.0 || >=24"
  2628 + },
  2629 + "funding": {
  2630 + "url": "https://opencollective.com/eslint"
  2631 + }
  2632 + },
  2633 + "node_modules/esquery": {
  2634 + "version": "1.7.0",
  2635 + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
  2636 + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
  2637 + "dev": true,
  2638 + "license": "BSD-3-Clause",
  2639 + "dependencies": {
  2640 + "estraverse": "^5.1.0"
  2641 + },
  2642 + "engines": {
  2643 + "node": ">=0.10"
  2644 + }
  2645 + },
  2646 + "node_modules/esrecurse": {
  2647 + "version": "4.3.0",
  2648 + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
  2649 + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
  2650 + "dev": true,
  2651 + "license": "BSD-2-Clause",
  2652 + "dependencies": {
  2653 + "estraverse": "^5.2.0"
  2654 + },
  2655 + "engines": {
  2656 + "node": ">=4.0"
  2657 + }
  2658 + },
  2659 + "node_modules/estraverse": {
  2660 + "version": "5.3.0",
  2661 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
  2662 + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
  2663 + "dev": true,
  2664 + "license": "BSD-2-Clause",
  2665 + "engines": {
  2666 + "node": ">=4.0"
  2667 + }
  2668 + },
  2669 + "node_modules/esutils": {
  2670 + "version": "2.0.3",
  2671 + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
  2672 + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
  2673 + "dev": true,
  2674 + "license": "BSD-2-Clause",
  2675 + "engines": {
  2676 + "node": ">=0.10.0"
  2677 + }
  2678 + },
  2679 + "node_modules/fast-deep-equal": {
  2680 + "version": "3.1.3",
  2681 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
  2682 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
  2683 + "dev": true,
  2684 + "license": "MIT"
  2685 + },
  2686 + "node_modules/fast-json-stable-stringify": {
  2687 + "version": "2.1.0",
  2688 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
  2689 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
  2690 + "dev": true,
  2691 + "license": "MIT"
  2692 + },
  2693 + "node_modules/fast-levenshtein": {
  2694 + "version": "2.0.6",
  2695 + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
  2696 + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
  2697 + "dev": true,
  2698 + "license": "MIT"
  2699 + },
  2700 + "node_modules/fdir": {
  2701 + "version": "6.5.0",
  2702 + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
  2703 + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
  2704 + "dev": true,
  2705 + "license": "MIT",
  2706 + "engines": {
  2707 + "node": ">=12.0.0"
  2708 + },
  2709 + "peerDependencies": {
  2710 + "picomatch": "^3 || ^4"
  2711 + },
  2712 + "peerDependenciesMeta": {
  2713 + "picomatch": {
  2714 + "optional": true
  2715 + }
  2716 + }
  2717 + },
  2718 + "node_modules/file-entry-cache": {
  2719 + "version": "8.0.0",
  2720 + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
  2721 + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
  2722 + "dev": true,
  2723 + "license": "MIT",
  2724 + "dependencies": {
  2725 + "flat-cache": "^4.0.0"
  2726 + },
  2727 + "engines": {
  2728 + "node": ">=16.0.0"
  2729 + }
  2730 + },
  2731 + "node_modules/find-up": {
  2732 + "version": "5.0.0",
  2733 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
  2734 + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
  2735 + "dev": true,
  2736 + "license": "MIT",
  2737 + "dependencies": {
  2738 + "locate-path": "^6.0.0",
  2739 + "path-exists": "^4.0.0"
  2740 + },
  2741 + "engines": {
  2742 + "node": ">=10"
  2743 + },
  2744 + "funding": {
  2745 + "url": "https://github.com/sponsors/sindresorhus"
  2746 + }
  2747 + },
  2748 + "node_modules/flat-cache": {
  2749 + "version": "4.0.1",
  2750 + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
  2751 + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
  2752 + "dev": true,
  2753 + "license": "MIT",
  2754 + "dependencies": {
  2755 + "flatted": "^3.2.9",
  2756 + "keyv": "^4.5.4"
  2757 + },
  2758 + "engines": {
  2759 + "node": ">=16"
  2760 + }
  2761 + },
  2762 + "node_modules/flatted": {
  2763 + "version": "3.4.2",
  2764 + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz",
  2765 + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",
  2766 + "dev": true,
  2767 + "license": "ISC"
  2768 + },
  2769 + "node_modules/follow-redirects": {
  2770 + "version": "1.16.0",
  2771 + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz",
  2772 + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==",
  2773 + "funding": [
  2774 + {
  2775 + "type": "individual",
  2776 + "url": "https://github.com/sponsors/RubenVerborgh"
  2777 + }
  2778 + ],
  2779 + "license": "MIT",
  2780 + "engines": {
  2781 + "node": ">=4.0"
  2782 + },
  2783 + "peerDependenciesMeta": {
  2784 + "debug": {
  2785 + "optional": true
  2786 + }
  2787 + }
  2788 + },
  2789 + "node_modules/form-data": {
  2790 + "version": "4.0.5",
  2791 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
  2792 + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
  2793 + "license": "MIT",
  2794 + "dependencies": {
  2795 + "asynckit": "^0.4.0",
  2796 + "combined-stream": "^1.0.8",
  2797 + "es-set-tostringtag": "^2.1.0",
  2798 + "hasown": "^2.0.2",
  2799 + "mime-types": "^2.1.12"
  2800 + },
  2801 + "engines": {
  2802 + "node": ">= 6"
  2803 + }
  2804 + },
  2805 + "node_modules/fsevents": {
  2806 + "version": "2.3.3",
  2807 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
  2808 + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
  2809 + "dev": true,
  2810 + "hasInstallScript": true,
  2811 + "license": "MIT",
  2812 + "optional": true,
  2813 + "os": [
  2814 + "darwin"
  2815 + ],
  2816 + "engines": {
  2817 + "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
  2818 + }
  2819 + },
  2820 + "node_modules/function-bind": {
  2821 + "version": "1.1.2",
  2822 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
  2823 + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
  2824 + "license": "MIT",
  2825 + "funding": {
  2826 + "url": "https://github.com/sponsors/ljharb"
  2827 + }
  2828 + },
  2829 + "node_modules/gensync": {
  2830 + "version": "1.0.0-beta.2",
  2831 + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
  2832 + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
  2833 + "dev": true,
  2834 + "license": "MIT",
  2835 + "engines": {
  2836 + "node": ">=6.9.0"
  2837 + }
  2838 + },
  2839 + "node_modules/get-intrinsic": {
  2840 + "version": "1.3.0",
  2841 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
  2842 + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
  2843 + "license": "MIT",
  2844 + "dependencies": {
  2845 + "call-bind-apply-helpers": "^1.0.2",
  2846 + "es-define-property": "^1.0.1",
  2847 + "es-errors": "^1.3.0",
  2848 + "es-object-atoms": "^1.1.1",
  2849 + "function-bind": "^1.1.2",
  2850 + "get-proto": "^1.0.1",
  2851 + "gopd": "^1.2.0",
  2852 + "has-symbols": "^1.1.0",
  2853 + "hasown": "^2.0.2",
  2854 + "math-intrinsics": "^1.1.0"
  2855 + },
  2856 + "engines": {
  2857 + "node": ">= 0.4"
  2858 + },
  2859 + "funding": {
  2860 + "url": "https://github.com/sponsors/ljharb"
  2861 + }
  2862 + },
  2863 + "node_modules/get-proto": {
  2864 + "version": "1.0.1",
  2865 + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
  2866 + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
  2867 + "license": "MIT",
  2868 + "dependencies": {
  2869 + "dunder-proto": "^1.0.1",
  2870 + "es-object-atoms": "^1.0.0"
  2871 + },
  2872 + "engines": {
  2873 + "node": ">= 0.4"
  2874 + }
  2875 + },
  2876 + "node_modules/glob-parent": {
  2877 + "version": "6.0.2",
  2878 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
  2879 + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
  2880 + "dev": true,
  2881 + "license": "ISC",
  2882 + "dependencies": {
  2883 + "is-glob": "^4.0.3"
  2884 + },
  2885 + "engines": {
  2886 + "node": ">=10.13.0"
  2887 + }
  2888 + },
  2889 + "node_modules/globals": {
  2890 + "version": "17.6.0",
  2891 + "resolved": "https://registry.npmjs.org/globals/-/globals-17.6.0.tgz",
  2892 + "integrity": "sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==",
  2893 + "dev": true,
  2894 + "license": "MIT",
  2895 + "engines": {
  2896 + "node": ">=18"
  2897 + },
  2898 + "funding": {
  2899 + "url": "https://github.com/sponsors/sindresorhus"
  2900 + }
  2901 + },
  2902 + "node_modules/gopd": {
  2903 + "version": "1.2.0",
  2904 + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
  2905 + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
  2906 + "license": "MIT",
  2907 + "engines": {
  2908 + "node": ">= 0.4"
  2909 + },
  2910 + "funding": {
  2911 + "url": "https://github.com/sponsors/ljharb"
  2912 + }
  2913 + },
  2914 + "node_modules/has-symbols": {
  2915 + "version": "1.1.0",
  2916 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
  2917 + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
  2918 + "license": "MIT",
  2919 + "engines": {
  2920 + "node": ">= 0.4"
  2921 + },
  2922 + "funding": {
  2923 + "url": "https://github.com/sponsors/ljharb"
  2924 + }
  2925 + },
  2926 + "node_modules/has-tostringtag": {
  2927 + "version": "1.0.2",
  2928 + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
  2929 + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
  2930 + "license": "MIT",
  2931 + "dependencies": {
  2932 + "has-symbols": "^1.0.3"
  2933 + },
  2934 + "engines": {
  2935 + "node": ">= 0.4"
  2936 + },
  2937 + "funding": {
  2938 + "url": "https://github.com/sponsors/ljharb"
  2939 + }
  2940 + },
  2941 + "node_modules/hasown": {
  2942 + "version": "2.0.3",
  2943 + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
  2944 + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",
  2945 + "license": "MIT",
  2946 + "dependencies": {
  2947 + "function-bind": "^1.1.2"
  2948 + },
  2949 + "engines": {
  2950 + "node": ">= 0.4"
  2951 + }
  2952 + },
  2953 + "node_modules/hermes-estree": {
  2954 + "version": "0.25.1",
  2955 + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz",
  2956 + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==",
  2957 + "dev": true,
  2958 + "license": "MIT"
  2959 + },
  2960 + "node_modules/hermes-parser": {
  2961 + "version": "0.25.1",
  2962 + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz",
  2963 + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==",
  2964 + "dev": true,
  2965 + "license": "MIT",
  2966 + "dependencies": {
  2967 + "hermes-estree": "0.25.1"
  2968 + }
  2969 + },
  2970 + "node_modules/ignore": {
  2971 + "version": "5.3.2",
  2972 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
  2973 + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
  2974 + "dev": true,
  2975 + "license": "MIT",
  2976 + "engines": {
  2977 + "node": ">= 4"
  2978 + }
  2979 + },
  2980 + "node_modules/immer": {
  2981 + "version": "11.1.7",
  2982 + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.7.tgz",
  2983 + "integrity": "sha512-LFVFtAROHcDy1er5UI6nodRFnZ2SgdCXhfNSI+DpObO8N7Pur/muBGsjzH5wpnFHCYhYVQxZskCkV4koQ//3/Q==",
  2984 + "license": "MIT",
  2985 + "funding": {
  2986 + "type": "opencollective",
  2987 + "url": "https://opencollective.com/immer"
  2988 + }
  2989 + },
  2990 + "node_modules/imurmurhash": {
  2991 + "version": "0.1.4",
  2992 + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
  2993 + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
  2994 + "dev": true,
  2995 + "license": "MIT",
  2996 + "engines": {
  2997 + "node": ">=0.8.19"
  2998 + }
  2999 + },
  3000 + "node_modules/is-extglob": {
  3001 + "version": "2.1.1",
  3002 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
  3003 + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
  3004 + "dev": true,
  3005 + "license": "MIT",
  3006 + "engines": {
  3007 + "node": ">=0.10.0"
  3008 + }
  3009 + },
  3010 + "node_modules/is-glob": {
  3011 + "version": "4.0.3",
  3012 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
  3013 + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
  3014 + "dev": true,
  3015 + "license": "MIT",
  3016 + "dependencies": {
  3017 + "is-extglob": "^2.1.1"
  3018 + },
  3019 + "engines": {
  3020 + "node": ">=0.10.0"
  3021 + }
  3022 + },
  3023 + "node_modules/is-mobile": {
  3024 + "version": "5.0.0",
  3025 + "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-5.0.0.tgz",
  3026 + "integrity": "sha512-Tz/yndySvLAEXh+Uk8liFCxOwVH6YutuR74utvOcu7I9Di+DwM0mtdPVZNaVvvBUM2OXxne/NhOs1zAO7riusQ==",
  3027 + "license": "MIT"
  3028 + },
  3029 + "node_modules/isexe": {
  3030 + "version": "2.0.0",
  3031 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
  3032 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
  3033 + "dev": true,
  3034 + "license": "ISC"
  3035 + },
  3036 + "node_modules/js-tokens": {
  3037 + "version": "4.0.0",
  3038 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
  3039 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
  3040 + "dev": true,
  3041 + "license": "MIT"
  3042 + },
  3043 + "node_modules/jsesc": {
  3044 + "version": "3.1.0",
  3045 + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
  3046 + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
  3047 + "dev": true,
  3048 + "license": "MIT",
  3049 + "bin": {
  3050 + "jsesc": "bin/jsesc"
  3051 + },
  3052 + "engines": {
  3053 + "node": ">=6"
  3054 + }
  3055 + },
  3056 + "node_modules/json-buffer": {
  3057 + "version": "3.0.1",
  3058 + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
  3059 + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
  3060 + "dev": true,
  3061 + "license": "MIT"
  3062 + },
  3063 + "node_modules/json-schema-traverse": {
  3064 + "version": "0.4.1",
  3065 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
  3066 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
  3067 + "dev": true,
  3068 + "license": "MIT"
  3069 + },
  3070 + "node_modules/json-stable-stringify-without-jsonify": {
  3071 + "version": "1.0.1",
  3072 + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
  3073 + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
  3074 + "dev": true,
  3075 + "license": "MIT"
  3076 + },
  3077 + "node_modules/json2mq": {
  3078 + "version": "0.2.0",
  3079 + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz",
  3080 + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==",
  3081 + "license": "MIT",
  3082 + "dependencies": {
  3083 + "string-convert": "^0.2.0"
  3084 + }
  3085 + },
  3086 + "node_modules/json5": {
  3087 + "version": "2.2.3",
  3088 + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
  3089 + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
  3090 + "dev": true,
  3091 + "license": "MIT",
  3092 + "bin": {
  3093 + "json5": "lib/cli.js"
  3094 + },
  3095 + "engines": {
  3096 + "node": ">=6"
  3097 + }
  3098 + },
  3099 + "node_modules/keyv": {
  3100 + "version": "4.5.4",
  3101 + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
  3102 + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
  3103 + "dev": true,
  3104 + "license": "MIT",
  3105 + "dependencies": {
  3106 + "json-buffer": "3.0.1"
  3107 + }
  3108 + },
  3109 + "node_modules/levn": {
  3110 + "version": "0.4.1",
  3111 + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
  3112 + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
  3113 + "dev": true,
  3114 + "license": "MIT",
  3115 + "dependencies": {
  3116 + "prelude-ls": "^1.2.1",
  3117 + "type-check": "~0.4.0"
  3118 + },
  3119 + "engines": {
  3120 + "node": ">= 0.8.0"
  3121 + }
  3122 + },
  3123 + "node_modules/lightningcss": {
  3124 + "version": "1.32.0",
  3125 + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
  3126 + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
  3127 + "dev": true,
  3128 + "license": "MPL-2.0",
  3129 + "dependencies": {
  3130 + "detect-libc": "^2.0.3"
  3131 + },
  3132 + "engines": {
  3133 + "node": ">= 12.0.0"
  3134 + },
  3135 + "funding": {
  3136 + "type": "opencollective",
  3137 + "url": "https://opencollective.com/parcel"
  3138 + },
  3139 + "optionalDependencies": {
  3140 + "lightningcss-android-arm64": "1.32.0",
  3141 + "lightningcss-darwin-arm64": "1.32.0",
  3142 + "lightningcss-darwin-x64": "1.32.0",
  3143 + "lightningcss-freebsd-x64": "1.32.0",
  3144 + "lightningcss-linux-arm-gnueabihf": "1.32.0",
  3145 + "lightningcss-linux-arm64-gnu": "1.32.0",
  3146 + "lightningcss-linux-arm64-musl": "1.32.0",
  3147 + "lightningcss-linux-x64-gnu": "1.32.0",
  3148 + "lightningcss-linux-x64-musl": "1.32.0",
  3149 + "lightningcss-win32-arm64-msvc": "1.32.0",
  3150 + "lightningcss-win32-x64-msvc": "1.32.0"
  3151 + }
  3152 + },
  3153 + "node_modules/lightningcss-android-arm64": {
  3154 + "version": "1.32.0",
  3155 + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
  3156 + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
  3157 + "cpu": [
  3158 + "arm64"
  3159 + ],
  3160 + "dev": true,
  3161 + "license": "MPL-2.0",
  3162 + "optional": true,
  3163 + "os": [
  3164 + "android"
  3165 + ],
  3166 + "engines": {
  3167 + "node": ">= 12.0.0"
  3168 + },
  3169 + "funding": {
  3170 + "type": "opencollective",
  3171 + "url": "https://opencollective.com/parcel"
  3172 + }
  3173 + },
  3174 + "node_modules/lightningcss-darwin-arm64": {
  3175 + "version": "1.32.0",
  3176 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
  3177 + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
  3178 + "cpu": [
  3179 + "arm64"
  3180 + ],
  3181 + "dev": true,
  3182 + "license": "MPL-2.0",
  3183 + "optional": true,
  3184 + "os": [
  3185 + "darwin"
  3186 + ],
  3187 + "engines": {
  3188 + "node": ">= 12.0.0"
  3189 + },
  3190 + "funding": {
  3191 + "type": "opencollective",
  3192 + "url": "https://opencollective.com/parcel"
  3193 + }
  3194 + },
  3195 + "node_modules/lightningcss-darwin-x64": {
  3196 + "version": "1.32.0",
  3197 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
  3198 + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
  3199 + "cpu": [
  3200 + "x64"
  3201 + ],
  3202 + "dev": true,
  3203 + "license": "MPL-2.0",
  3204 + "optional": true,
  3205 + "os": [
  3206 + "darwin"
  3207 + ],
  3208 + "engines": {
  3209 + "node": ">= 12.0.0"
  3210 + },
  3211 + "funding": {
  3212 + "type": "opencollective",
  3213 + "url": "https://opencollective.com/parcel"
  3214 + }
  3215 + },
  3216 + "node_modules/lightningcss-freebsd-x64": {
  3217 + "version": "1.32.0",
  3218 + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
  3219 + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
  3220 + "cpu": [
  3221 + "x64"
  3222 + ],
  3223 + "dev": true,
  3224 + "license": "MPL-2.0",
  3225 + "optional": true,
  3226 + "os": [
  3227 + "freebsd"
  3228 + ],
  3229 + "engines": {
  3230 + "node": ">= 12.0.0"
  3231 + },
  3232 + "funding": {
  3233 + "type": "opencollective",
  3234 + "url": "https://opencollective.com/parcel"
  3235 + }
  3236 + },
  3237 + "node_modules/lightningcss-linux-arm-gnueabihf": {
  3238 + "version": "1.32.0",
  3239 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
  3240 + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
  3241 + "cpu": [
  3242 + "arm"
  3243 + ],
  3244 + "dev": true,
  3245 + "license": "MPL-2.0",
  3246 + "optional": true,
  3247 + "os": [
  3248 + "linux"
  3249 + ],
  3250 + "engines": {
  3251 + "node": ">= 12.0.0"
  3252 + },
  3253 + "funding": {
  3254 + "type": "opencollective",
  3255 + "url": "https://opencollective.com/parcel"
  3256 + }
  3257 + },
  3258 + "node_modules/lightningcss-linux-arm64-gnu": {
  3259 + "version": "1.32.0",
  3260 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
  3261 + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
  3262 + "cpu": [
  3263 + "arm64"
  3264 + ],
  3265 + "dev": true,
  3266 + "libc": [
  3267 + "glibc"
  3268 + ],
  3269 + "license": "MPL-2.0",
  3270 + "optional": true,
  3271 + "os": [
  3272 + "linux"
  3273 + ],
  3274 + "engines": {
  3275 + "node": ">= 12.0.0"
  3276 + },
  3277 + "funding": {
  3278 + "type": "opencollective",
  3279 + "url": "https://opencollective.com/parcel"
  3280 + }
  3281 + },
  3282 + "node_modules/lightningcss-linux-arm64-musl": {
  3283 + "version": "1.32.0",
  3284 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
  3285 + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
  3286 + "cpu": [
  3287 + "arm64"
  3288 + ],
  3289 + "dev": true,
  3290 + "libc": [
  3291 + "musl"
  3292 + ],
  3293 + "license": "MPL-2.0",
  3294 + "optional": true,
  3295 + "os": [
  3296 + "linux"
  3297 + ],
  3298 + "engines": {
  3299 + "node": ">= 12.0.0"
  3300 + },
  3301 + "funding": {
  3302 + "type": "opencollective",
  3303 + "url": "https://opencollective.com/parcel"
  3304 + }
  3305 + },
  3306 + "node_modules/lightningcss-linux-x64-gnu": {
  3307 + "version": "1.32.0",
  3308 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
  3309 + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
  3310 + "cpu": [
  3311 + "x64"
  3312 + ],
  3313 + "dev": true,
  3314 + "libc": [
  3315 + "glibc"
  3316 + ],
  3317 + "license": "MPL-2.0",
  3318 + "optional": true,
  3319 + "os": [
  3320 + "linux"
  3321 + ],
  3322 + "engines": {
  3323 + "node": ">= 12.0.0"
  3324 + },
  3325 + "funding": {
  3326 + "type": "opencollective",
  3327 + "url": "https://opencollective.com/parcel"
  3328 + }
  3329 + },
  3330 + "node_modules/lightningcss-linux-x64-musl": {
  3331 + "version": "1.32.0",
  3332 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
  3333 + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
  3334 + "cpu": [
  3335 + "x64"
  3336 + ],
  3337 + "dev": true,
  3338 + "libc": [
  3339 + "musl"
  3340 + ],
  3341 + "license": "MPL-2.0",
  3342 + "optional": true,
  3343 + "os": [
  3344 + "linux"
  3345 + ],
  3346 + "engines": {
  3347 + "node": ">= 12.0.0"
  3348 + },
  3349 + "funding": {
  3350 + "type": "opencollective",
  3351 + "url": "https://opencollective.com/parcel"
  3352 + }
  3353 + },
  3354 + "node_modules/lightningcss-win32-arm64-msvc": {
  3355 + "version": "1.32.0",
  3356 + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
  3357 + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
  3358 + "cpu": [
  3359 + "arm64"
  3360 + ],
  3361 + "dev": true,
  3362 + "license": "MPL-2.0",
  3363 + "optional": true,
  3364 + "os": [
  3365 + "win32"
  3366 + ],
  3367 + "engines": {
  3368 + "node": ">= 12.0.0"
  3369 + },
  3370 + "funding": {
  3371 + "type": "opencollective",
  3372 + "url": "https://opencollective.com/parcel"
  3373 + }
  3374 + },
  3375 + "node_modules/lightningcss-win32-x64-msvc": {
  3376 + "version": "1.32.0",
  3377 + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
  3378 + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
  3379 + "cpu": [
  3380 + "x64"
  3381 + ],
  3382 + "dev": true,
  3383 + "license": "MPL-2.0",
  3384 + "optional": true,
  3385 + "os": [
  3386 + "win32"
  3387 + ],
  3388 + "engines": {
  3389 + "node": ">= 12.0.0"
  3390 + },
  3391 + "funding": {
  3392 + "type": "opencollective",
  3393 + "url": "https://opencollective.com/parcel"
  3394 + }
  3395 + },
  3396 + "node_modules/locate-path": {
  3397 + "version": "6.0.0",
  3398 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
  3399 + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
  3400 + "dev": true,
  3401 + "license": "MIT",
  3402 + "dependencies": {
  3403 + "p-locate": "^5.0.0"
  3404 + },
  3405 + "engines": {
  3406 + "node": ">=10"
  3407 + },
  3408 + "funding": {
  3409 + "url": "https://github.com/sponsors/sindresorhus"
  3410 + }
  3411 + },
  3412 + "node_modules/lru-cache": {
  3413 + "version": "5.1.1",
  3414 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
  3415 + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
  3416 + "dev": true,
  3417 + "license": "ISC",
  3418 + "dependencies": {
  3419 + "yallist": "^3.0.2"
  3420 + }
  3421 + },
  3422 + "node_modules/math-intrinsics": {
  3423 + "version": "1.1.0",
  3424 + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
  3425 + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
  3426 + "license": "MIT",
  3427 + "engines": {
  3428 + "node": ">= 0.4"
  3429 + }
  3430 + },
  3431 + "node_modules/mime-db": {
  3432 + "version": "1.52.0",
  3433 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
  3434 + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
  3435 + "license": "MIT",
  3436 + "engines": {
  3437 + "node": ">= 0.6"
  3438 + }
  3439 + },
  3440 + "node_modules/mime-types": {
  3441 + "version": "2.1.35",
  3442 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
  3443 + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
  3444 + "license": "MIT",
  3445 + "dependencies": {
  3446 + "mime-db": "1.52.0"
  3447 + },
  3448 + "engines": {
  3449 + "node": ">= 0.6"
  3450 + }
  3451 + },
  3452 + "node_modules/minimatch": {
  3453 + "version": "10.2.5",
  3454 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
  3455 + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
  3456 + "dev": true,
  3457 + "license": "BlueOak-1.0.0",
  3458 + "dependencies": {
  3459 + "brace-expansion": "^5.0.5"
  3460 + },
  3461 + "engines": {
  3462 + "node": "18 || 20 || >=22"
  3463 + },
  3464 + "funding": {
  3465 + "url": "https://github.com/sponsors/isaacs"
  3466 + }
  3467 + },
  3468 + "node_modules/ms": {
  3469 + "version": "2.1.3",
  3470 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
  3471 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
  3472 + "dev": true,
  3473 + "license": "MIT"
  3474 + },
  3475 + "node_modules/nanoid": {
  3476 + "version": "3.3.12",
  3477 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz",
  3478 + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==",
  3479 + "dev": true,
  3480 + "funding": [
  3481 + {
  3482 + "type": "github",
  3483 + "url": "https://github.com/sponsors/ai"
  3484 + }
  3485 + ],
  3486 + "license": "MIT",
  3487 + "bin": {
  3488 + "nanoid": "bin/nanoid.cjs"
  3489 + },
  3490 + "engines": {
  3491 + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
  3492 + }
  3493 + },
  3494 + "node_modules/natural-compare": {
  3495 + "version": "1.4.0",
  3496 + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
  3497 + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
  3498 + "dev": true,
  3499 + "license": "MIT"
  3500 + },
  3501 + "node_modules/node-releases": {
  3502 + "version": "2.0.38",
  3503 + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.38.tgz",
  3504 + "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==",
  3505 + "dev": true,
  3506 + "license": "MIT"
  3507 + },
  3508 + "node_modules/optionator": {
  3509 + "version": "0.9.4",
  3510 + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
  3511 + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
  3512 + "dev": true,
  3513 + "license": "MIT",
  3514 + "dependencies": {
  3515 + "deep-is": "^0.1.3",
  3516 + "fast-levenshtein": "^2.0.6",
  3517 + "levn": "^0.4.1",
  3518 + "prelude-ls": "^1.2.1",
  3519 + "type-check": "^0.4.0",
  3520 + "word-wrap": "^1.2.5"
  3521 + },
  3522 + "engines": {
  3523 + "node": ">= 0.8.0"
  3524 + }
  3525 + },
  3526 + "node_modules/p-limit": {
  3527 + "version": "3.1.0",
  3528 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
  3529 + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
  3530 + "dev": true,
  3531 + "license": "MIT",
  3532 + "dependencies": {
  3533 + "yocto-queue": "^0.1.0"
  3534 + },
  3535 + "engines": {
  3536 + "node": ">=10"
  3537 + },
  3538 + "funding": {
  3539 + "url": "https://github.com/sponsors/sindresorhus"
  3540 + }
  3541 + },
  3542 + "node_modules/p-locate": {
  3543 + "version": "5.0.0",
  3544 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
  3545 + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
  3546 + "dev": true,
  3547 + "license": "MIT",
  3548 + "dependencies": {
  3549 + "p-limit": "^3.0.2"
  3550 + },
  3551 + "engines": {
  3552 + "node": ">=10"
  3553 + },
  3554 + "funding": {
  3555 + "url": "https://github.com/sponsors/sindresorhus"
  3556 + }
  3557 + },
  3558 + "node_modules/path-exists": {
  3559 + "version": "4.0.0",
  3560 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
  3561 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
  3562 + "dev": true,
  3563 + "license": "MIT",
  3564 + "engines": {
  3565 + "node": ">=8"
  3566 + }
  3567 + },
  3568 + "node_modules/path-key": {
  3569 + "version": "3.1.1",
  3570 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
  3571 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
  3572 + "dev": true,
  3573 + "license": "MIT",
  3574 + "engines": {
  3575 + "node": ">=8"
  3576 + }
  3577 + },
  3578 + "node_modules/picocolors": {
  3579 + "version": "1.1.1",
  3580 + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
  3581 + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
  3582 + "dev": true,
  3583 + "license": "ISC"
  3584 + },
  3585 + "node_modules/picomatch": {
  3586 + "version": "4.0.4",
  3587 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
  3588 + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
  3589 + "dev": true,
  3590 + "license": "MIT",
  3591 + "engines": {
  3592 + "node": ">=12"
  3593 + },
  3594 + "funding": {
  3595 + "url": "https://github.com/sponsors/jonschlinkert"
  3596 + }
  3597 + },
  3598 + "node_modules/postcss": {
  3599 + "version": "8.5.14",
  3600 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz",
  3601 + "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==",
  3602 + "dev": true,
  3603 + "funding": [
  3604 + {
  3605 + "type": "opencollective",
  3606 + "url": "https://opencollective.com/postcss/"
  3607 + },
  3608 + {
  3609 + "type": "tidelift",
  3610 + "url": "https://tidelift.com/funding/github/npm/postcss"
  3611 + },
  3612 + {
  3613 + "type": "github",
  3614 + "url": "https://github.com/sponsors/ai"
  3615 + }
  3616 + ],
  3617 + "license": "MIT",
  3618 + "dependencies": {
  3619 + "nanoid": "^3.3.11",
  3620 + "picocolors": "^1.1.1",
  3621 + "source-map-js": "^1.2.1"
  3622 + },
  3623 + "engines": {
  3624 + "node": "^10 || ^12 || >=14"
  3625 + }
  3626 + },
  3627 + "node_modules/prelude-ls": {
  3628 + "version": "1.2.1",
  3629 + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
  3630 + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
  3631 + "dev": true,
  3632 + "license": "MIT",
  3633 + "engines": {
  3634 + "node": ">= 0.8.0"
  3635 + }
  3636 + },
  3637 + "node_modules/proxy-from-env": {
  3638 + "version": "2.1.0",
  3639 + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz",
  3640 + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==",
  3641 + "license": "MIT",
  3642 + "engines": {
  3643 + "node": ">=10"
  3644 + }
  3645 + },
  3646 + "node_modules/punycode": {
  3647 + "version": "2.3.1",
  3648 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
  3649 + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
  3650 + "dev": true,
  3651 + "license": "MIT",
  3652 + "engines": {
  3653 + "node": ">=6"
  3654 + }
  3655 + },
  3656 + "node_modules/react": {
  3657 + "version": "19.2.6",
  3658 + "resolved": "https://registry.npmjs.org/react/-/react-19.2.6.tgz",
  3659 + "integrity": "sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==",
  3660 + "license": "MIT",
  3661 + "engines": {
  3662 + "node": ">=0.10.0"
  3663 + }
  3664 + },
  3665 + "node_modules/react-dom": {
  3666 + "version": "19.2.6",
  3667 + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.6.tgz",
  3668 + "integrity": "sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==",
  3669 + "license": "MIT",
  3670 + "dependencies": {
  3671 + "scheduler": "^0.27.0"
  3672 + },
  3673 + "peerDependencies": {
  3674 + "react": "^19.2.6"
  3675 + }
  3676 + },
  3677 + "node_modules/react-is": {
  3678 + "version": "18.3.1",
  3679 + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
  3680 + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
  3681 + "license": "MIT"
  3682 + },
  3683 + "node_modules/react-redux": {
  3684 + "version": "9.2.0",
  3685 + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz",
  3686 + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==",
  3687 + "license": "MIT",
  3688 + "dependencies": {
  3689 + "@types/use-sync-external-store": "^0.0.6",
  3690 + "use-sync-external-store": "^1.4.0"
  3691 + },
  3692 + "peerDependencies": {
  3693 + "@types/react": "^18.2.25 || ^19",
  3694 + "react": "^18.0 || ^19",
  3695 + "redux": "^5.0.0"
  3696 + },
  3697 + "peerDependenciesMeta": {
  3698 + "@types/react": {
  3699 + "optional": true
  3700 + },
  3701 + "redux": {
  3702 + "optional": true
  3703 + }
  3704 + }
  3705 + },
  3706 + "node_modules/react-router": {
  3707 + "version": "7.15.0",
  3708 + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.15.0.tgz",
  3709 + "integrity": "sha512-HW9vYwuM8f4yx66Izy8xfrzCM+SBJluoZcCbww9A1TySax11S5Vgw6fi3ZjMONw9J4gQwngL7PzkyIpJJpJ7RQ==",
  3710 + "license": "MIT",
  3711 + "dependencies": {
  3712 + "cookie": "^1.0.1",
  3713 + "set-cookie-parser": "^2.6.0"
  3714 + },
  3715 + "engines": {
  3716 + "node": ">=20.0.0"
  3717 + },
  3718 + "peerDependencies": {
  3719 + "react": ">=18",
  3720 + "react-dom": ">=18"
  3721 + },
  3722 + "peerDependenciesMeta": {
  3723 + "react-dom": {
  3724 + "optional": true
  3725 + }
  3726 + }
  3727 + },
  3728 + "node_modules/react-router-dom": {
  3729 + "version": "7.15.0",
  3730 + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.15.0.tgz",
  3731 + "integrity": "sha512-VcrVg64Fo8nwBvDscajG8gRTLIuTC6N50nb22l2HOOV4PTOHgoGp8mUjy9wLiHYoYTSYI36tUnXZgasSRFZorQ==",
  3732 + "license": "MIT",
  3733 + "dependencies": {
  3734 + "react-router": "7.15.0"
  3735 + },
  3736 + "engines": {
  3737 + "node": ">=20.0.0"
  3738 + },
  3739 + "peerDependencies": {
  3740 + "react": ">=18",
  3741 + "react-dom": ">=18"
  3742 + }
  3743 + },
  3744 + "node_modules/redux": {
  3745 + "version": "5.0.1",
  3746 + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz",
  3747 + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==",
  3748 + "license": "MIT"
  3749 + },
  3750 + "node_modules/redux-thunk": {
  3751 + "version": "3.1.0",
  3752 + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz",
  3753 + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==",
  3754 + "license": "MIT",
  3755 + "peerDependencies": {
  3756 + "redux": "^5.0.0"
  3757 + }
  3758 + },
  3759 + "node_modules/reselect": {
  3760 + "version": "5.1.1",
  3761 + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz",
  3762 + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==",
  3763 + "license": "MIT"
  3764 + },
  3765 + "node_modules/rolldown": {
  3766 + "version": "1.0.0-rc.17",
  3767 + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.17.tgz",
  3768 + "integrity": "sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==",
  3769 + "dev": true,
  3770 + "license": "MIT",
  3771 + "dependencies": {
  3772 + "@oxc-project/types": "=0.127.0",
  3773 + "@rolldown/pluginutils": "1.0.0-rc.17"
  3774 + },
  3775 + "bin": {
  3776 + "rolldown": "bin/cli.mjs"
  3777 + },
  3778 + "engines": {
  3779 + "node": "^20.19.0 || >=22.12.0"
  3780 + },
  3781 + "optionalDependencies": {
  3782 + "@rolldown/binding-android-arm64": "1.0.0-rc.17",
  3783 + "@rolldown/binding-darwin-arm64": "1.0.0-rc.17",
  3784 + "@rolldown/binding-darwin-x64": "1.0.0-rc.17",
  3785 + "@rolldown/binding-freebsd-x64": "1.0.0-rc.17",
  3786 + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.17",
  3787 + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.17",
  3788 + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.17",
  3789 + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.17",
  3790 + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.17",
  3791 + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17",
  3792 + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.17",
  3793 + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.17",
  3794 + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.17",
  3795 + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.17",
  3796 + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.17"
  3797 + }
  3798 + },
  3799 + "node_modules/rolldown/node_modules/@rolldown/pluginutils": {
  3800 + "version": "1.0.0-rc.17",
  3801 + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.17.tgz",
  3802 + "integrity": "sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==",
  3803 + "dev": true,
  3804 + "license": "MIT"
  3805 + },
  3806 + "node_modules/scheduler": {
  3807 + "version": "0.27.0",
  3808 + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
  3809 + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
  3810 + "license": "MIT"
  3811 + },
  3812 + "node_modules/scroll-into-view-if-needed": {
  3813 + "version": "3.1.0",
  3814 + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz",
  3815 + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==",
  3816 + "license": "MIT",
  3817 + "dependencies": {
  3818 + "compute-scroll-into-view": "^3.0.2"
  3819 + }
  3820 + },
  3821 + "node_modules/semver": {
  3822 + "version": "6.3.1",
  3823 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
  3824 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
  3825 + "dev": true,
  3826 + "license": "ISC",
  3827 + "bin": {
  3828 + "semver": "bin/semver.js"
  3829 + }
  3830 + },
  3831 + "node_modules/set-cookie-parser": {
  3832 + "version": "2.7.2",
  3833 + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz",
  3834 + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==",
  3835 + "license": "MIT"
  3836 + },
  3837 + "node_modules/shebang-command": {
  3838 + "version": "2.0.0",
  3839 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
  3840 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
  3841 + "dev": true,
  3842 + "license": "MIT",
  3843 + "dependencies": {
  3844 + "shebang-regex": "^3.0.0"
  3845 + },
  3846 + "engines": {
  3847 + "node": ">=8"
  3848 + }
  3849 + },
  3850 + "node_modules/shebang-regex": {
  3851 + "version": "3.0.0",
  3852 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
  3853 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
  3854 + "dev": true,
  3855 + "license": "MIT",
  3856 + "engines": {
  3857 + "node": ">=8"
  3858 + }
  3859 + },
  3860 + "node_modules/source-map-js": {
  3861 + "version": "1.2.1",
  3862 + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
  3863 + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
  3864 + "dev": true,
  3865 + "license": "BSD-3-Clause",
  3866 + "engines": {
  3867 + "node": ">=0.10.0"
  3868 + }
  3869 + },
  3870 + "node_modules/string-convert": {
  3871 + "version": "0.2.1",
  3872 + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz",
  3873 + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==",
  3874 + "license": "MIT"
  3875 + },
  3876 + "node_modules/stylis": {
  3877 + "version": "4.4.0",
  3878 + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.4.0.tgz",
  3879 + "integrity": "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==",
  3880 + "license": "MIT"
  3881 + },
  3882 + "node_modules/throttle-debounce": {
  3883 + "version": "5.0.2",
  3884 + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz",
  3885 + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==",
  3886 + "license": "MIT",
  3887 + "engines": {
  3888 + "node": ">=12.22"
  3889 + }
  3890 + },
  3891 + "node_modules/tinyglobby": {
  3892 + "version": "0.2.16",
  3893 + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz",
  3894 + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",
  3895 + "dev": true,
  3896 + "license": "MIT",
  3897 + "dependencies": {
  3898 + "fdir": "^6.5.0",
  3899 + "picomatch": "^4.0.4"
  3900 + },
  3901 + "engines": {
  3902 + "node": ">=12.0.0"
  3903 + },
  3904 + "funding": {
  3905 + "url": "https://github.com/sponsors/SuperchupuDev"
  3906 + }
  3907 + },
  3908 + "node_modules/ts-api-utils": {
  3909 + "version": "2.5.0",
  3910 + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz",
  3911 + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==",
  3912 + "dev": true,
  3913 + "license": "MIT",
  3914 + "engines": {
  3915 + "node": ">=18.12"
  3916 + },
  3917 + "peerDependencies": {
  3918 + "typescript": ">=4.8.4"
  3919 + }
  3920 + },
  3921 + "node_modules/tslib": {
  3922 + "version": "2.8.1",
  3923 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
  3924 + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
  3925 + "dev": true,
  3926 + "license": "0BSD",
  3927 + "optional": true
  3928 + },
  3929 + "node_modules/type-check": {
  3930 + "version": "0.4.0",
  3931 + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
  3932 + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
  3933 + "dev": true,
  3934 + "license": "MIT",
  3935 + "dependencies": {
  3936 + "prelude-ls": "^1.2.1"
  3937 + },
  3938 + "engines": {
  3939 + "node": ">= 0.8.0"
  3940 + }
  3941 + },
  3942 + "node_modules/typescript": {
  3943 + "version": "6.0.3",
  3944 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
  3945 + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
  3946 + "dev": true,
  3947 + "license": "Apache-2.0",
  3948 + "bin": {
  3949 + "tsc": "bin/tsc",
  3950 + "tsserver": "bin/tsserver"
  3951 + },
  3952 + "engines": {
  3953 + "node": ">=14.17"
  3954 + }
  3955 + },
  3956 + "node_modules/typescript-eslint": {
  3957 + "version": "8.59.2",
  3958 + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.2.tgz",
  3959 + "integrity": "sha512-pJw051uomb3ZeCzGTpRb8RbEqB5Y4WWet8gl/GcTlU35BSx0PVdZ86/bqkQCyKKuraVQEK7r6kBHQXF+fBhkoQ==",
  3960 + "dev": true,
  3961 + "license": "MIT",
  3962 + "dependencies": {
  3963 + "@typescript-eslint/eslint-plugin": "8.59.2",
  3964 + "@typescript-eslint/parser": "8.59.2",
  3965 + "@typescript-eslint/typescript-estree": "8.59.2",
  3966 + "@typescript-eslint/utils": "8.59.2"
  3967 + },
  3968 + "engines": {
  3969 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
  3970 + },
  3971 + "funding": {
  3972 + "type": "opencollective",
  3973 + "url": "https://opencollective.com/typescript-eslint"
  3974 + },
  3975 + "peerDependencies": {
  3976 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
  3977 + "typescript": ">=4.8.4 <6.1.0"
  3978 + }
  3979 + },
  3980 + "node_modules/undici-types": {
  3981 + "version": "7.16.0",
  3982 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
  3983 + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
  3984 + "dev": true,
  3985 + "license": "MIT"
  3986 + },
  3987 + "node_modules/update-browserslist-db": {
  3988 + "version": "1.2.3",
  3989 + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
  3990 + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
  3991 + "dev": true,
  3992 + "funding": [
  3993 + {
  3994 + "type": "opencollective",
  3995 + "url": "https://opencollective.com/browserslist"
  3996 + },
  3997 + {
  3998 + "type": "tidelift",
  3999 + "url": "https://tidelift.com/funding/github/npm/browserslist"
  4000 + },
  4001 + {
  4002 + "type": "github",
  4003 + "url": "https://github.com/sponsors/ai"
  4004 + }
  4005 + ],
  4006 + "license": "MIT",
  4007 + "dependencies": {
  4008 + "escalade": "^3.2.0",
  4009 + "picocolors": "^1.1.1"
  4010 + },
  4011 + "bin": {
  4012 + "update-browserslist-db": "cli.js"
  4013 + },
  4014 + "peerDependencies": {
  4015 + "browserslist": ">= 4.21.0"
  4016 + }
  4017 + },
  4018 + "node_modules/uri-js": {
  4019 + "version": "4.4.1",
  4020 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
  4021 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
  4022 + "dev": true,
  4023 + "license": "BSD-2-Clause",
  4024 + "dependencies": {
  4025 + "punycode": "^2.1.0"
  4026 + }
  4027 + },
  4028 + "node_modules/use-sync-external-store": {
  4029 + "version": "1.6.0",
  4030 + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
  4031 + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
  4032 + "license": "MIT",
  4033 + "peerDependencies": {
  4034 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
  4035 + }
  4036 + },
  4037 + "node_modules/vite": {
  4038 + "version": "8.0.10",
  4039 + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.10.tgz",
  4040 + "integrity": "sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw==",
  4041 + "dev": true,
  4042 + "license": "MIT",
  4043 + "dependencies": {
  4044 + "lightningcss": "^1.32.0",
  4045 + "picomatch": "^4.0.4",
  4046 + "postcss": "^8.5.10",
  4047 + "rolldown": "1.0.0-rc.17",
  4048 + "tinyglobby": "^0.2.16"
  4049 + },
  4050 + "bin": {
  4051 + "vite": "bin/vite.js"
  4052 + },
  4053 + "engines": {
  4054 + "node": "^20.19.0 || >=22.12.0"
  4055 + },
  4056 + "funding": {
  4057 + "url": "https://github.com/vitejs/vite?sponsor=1"
  4058 + },
  4059 + "optionalDependencies": {
  4060 + "fsevents": "~2.3.3"
  4061 + },
  4062 + "peerDependencies": {
  4063 + "@types/node": "^20.19.0 || >=22.12.0",
  4064 + "@vitejs/devtools": "^0.1.0",
  4065 + "esbuild": "^0.27.0 || ^0.28.0",
  4066 + "jiti": ">=1.21.0",
  4067 + "less": "^4.0.0",
  4068 + "sass": "^1.70.0",
  4069 + "sass-embedded": "^1.70.0",
  4070 + "stylus": ">=0.54.8",
  4071 + "sugarss": "^5.0.0",
  4072 + "terser": "^5.16.0",
  4073 + "tsx": "^4.8.1",
  4074 + "yaml": "^2.4.2"
  4075 + },
  4076 + "peerDependenciesMeta": {
  4077 + "@types/node": {
  4078 + "optional": true
  4079 + },
  4080 + "@vitejs/devtools": {
  4081 + "optional": true
  4082 + },
  4083 + "esbuild": {
  4084 + "optional": true
  4085 + },
  4086 + "jiti": {
  4087 + "optional": true
  4088 + },
  4089 + "less": {
  4090 + "optional": true
  4091 + },
  4092 + "sass": {
  4093 + "optional": true
  4094 + },
  4095 + "sass-embedded": {
  4096 + "optional": true
  4097 + },
  4098 + "stylus": {
  4099 + "optional": true
  4100 + },
  4101 + "sugarss": {
  4102 + "optional": true
  4103 + },
  4104 + "terser": {
  4105 + "optional": true
  4106 + },
  4107 + "tsx": {
  4108 + "optional": true
  4109 + },
  4110 + "yaml": {
  4111 + "optional": true
  4112 + }
  4113 + }
  4114 + },
  4115 + "node_modules/which": {
  4116 + "version": "2.0.2",
  4117 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
  4118 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
  4119 + "dev": true,
  4120 + "license": "ISC",
  4121 + "dependencies": {
  4122 + "isexe": "^2.0.0"
  4123 + },
  4124 + "bin": {
  4125 + "node-which": "bin/node-which"
  4126 + },
  4127 + "engines": {
  4128 + "node": ">= 8"
  4129 + }
  4130 + },
  4131 + "node_modules/word-wrap": {
  4132 + "version": "1.2.5",
  4133 + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
  4134 + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
  4135 + "dev": true,
  4136 + "license": "MIT",
  4137 + "engines": {
  4138 + "node": ">=0.10.0"
  4139 + }
  4140 + },
  4141 + "node_modules/yallist": {
  4142 + "version": "3.1.1",
  4143 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
  4144 + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
  4145 + "dev": true,
  4146 + "license": "ISC"
  4147 + },
  4148 + "node_modules/yocto-queue": {
  4149 + "version": "0.1.0",
  4150 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
  4151 + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
  4152 + "dev": true,
  4153 + "license": "MIT",
  4154 + "engines": {
  4155 + "node": ">=10"
  4156 + },
  4157 + "funding": {
  4158 + "url": "https://github.com/sponsors/sindresorhus"
  4159 + }
  4160 + },
  4161 + "node_modules/zod": {
  4162 + "version": "4.4.3",
  4163 + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
  4164 + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
  4165 + "dev": true,
  4166 + "license": "MIT",
  4167 + "funding": {
  4168 + "url": "https://github.com/sponsors/colinhacks"
  4169 + }
  4170 + },
  4171 + "node_modules/zod-validation-error": {
  4172 + "version": "4.0.2",
  4173 + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz",
  4174 + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==",
  4175 + "dev": true,
  4176 + "license": "MIT",
  4177 + "engines": {
  4178 + "node": ">=18.0.0"
  4179 + },
  4180 + "peerDependencies": {
  4181 + "zod": "^3.25.0 || ^4.0.0"
  4182 + }
  4183 + }
  4184 + }
  4185 +}
... ...
frontend/package.json 0 → 100644
  1 +{
  2 + "name": "frontend",
  3 + "private": true,
  4 + "version": "0.0.0",
  5 + "type": "module",
  6 + "scripts": {
  7 + "dev": "vite",
  8 + "build": "tsc -b && vite build",
  9 + "lint": "eslint .",
  10 + "preview": "vite preview"
  11 + },
  12 + "dependencies": {
  13 + "@reduxjs/toolkit": "^2.11.2",
  14 + "antd": "^6.3.7",
  15 + "axios": "^1.16.0",
  16 + "react": "^19.2.5",
  17 + "react-dom": "^19.2.5",
  18 + "react-redux": "^9.2.0",
  19 + "react-router-dom": "^7.15.0"
  20 + },
  21 + "devDependencies": {
  22 + "@eslint/js": "^10.0.1",
  23 + "@types/node": "^24.12.2",
  24 + "@types/react": "^19.2.14",
  25 + "@types/react-dom": "^19.2.3",
  26 + "@vitejs/plugin-react": "^6.0.1",
  27 + "eslint": "^10.2.1",
  28 + "eslint-plugin-react-hooks": "^7.1.1",
  29 + "eslint-plugin-react-refresh": "^0.5.2",
  30 + "globals": "^17.5.0",
  31 + "typescript": "~6.0.2",
  32 + "typescript-eslint": "^8.58.2",
  33 + "vite": "^8.0.10"
  34 + }
  35 +}
... ...
frontend/public/favicon.svg 0 → 100644
  1 +<svg xmlns="http://www.w3.org/2000/svg" width="48" height="46" fill="none" viewBox="0 0 48 46"><path fill="#863bff" d="M25.946 44.938c-.664.845-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.287c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.497 0-3.578-1.842-3.578H1.237c-.92 0-1.456-1.04-.92-1.788L10.013.474c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.579 1.842 3.579h11.377c.943 0 1.473 1.088.89 1.83L25.947 44.94z" style="fill:#863bff;fill:color(display-p3 .5252 .23 1);fill-opacity:1"/><mask id="a" width="48" height="46" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#000" d="M25.842 44.938c-.664.844-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.183c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.498 0-3.579-1.842-3.579H1.133c-.92 0-1.456-1.04-.92-1.787L9.91.473c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.578 1.842 3.578h11.377c.943 0 1.473 1.088.89 1.832L25.843 44.94z" style="fill:#000;fill-opacity:1"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="5.508" cy="14.704" fill="#ede6ff" rx="5.508" ry="14.704" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -4.47 31.516)"/></g><g filter="url(#c)"><ellipse cx="10.399" cy="29.851" fill="#ede6ff" rx="10.399" ry="29.851" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -39.328 7.883)"/></g><g filter="url(#d)"><ellipse cx="5.508" cy="30.487" fill="#7e14ff" rx="5.508" ry="30.487" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -25.913 -14.639)scale(1 -1)"/></g><g filter="url(#e)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -32.644 -3.334)scale(1 -1)"/></g><g filter="url(#f)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -34.34 30.47)"/></g><g filter="url(#g)"><ellipse cx="14.072" cy="22.078" fill="#ede6ff" rx="14.072" ry="22.078" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="rotate(93.35 24.506 48.493)scale(-1 1)"/></g><g filter="url(#h)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#i)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#j)"><ellipse cx=".387" cy="8.972" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(39.51 .387 8.972)"/></g><g filter="url(#k)"><ellipse cx="47.523" cy="-6.092" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 47.523 -6.092)"/></g><g filter="url(#l)"><ellipse cx="41.412" cy="6.333" fill="#47bfff" rx="5.971" ry="9.665" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 41.412 6.333)"/></g><g filter="url(#m)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#n)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#o)"><ellipse cx="35.651" cy="29.907" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 35.651 29.907)"/></g><g filter="url(#p)"><ellipse cx="38.418" cy="32.4" fill="#47bfff" rx="5.971" ry="15.297" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 38.418 32.4)"/></g></g><defs><filter id="b" width="60.045" height="41.654" x="-19.77" y="16.149" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="c" width="90.34" height="51.437" x="-54.613" y="-7.533" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="d" width="79.355" height="29.4" x="-49.64" y="2.03" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="e" width="79.579" height="29.4" x="-45.045" y="20.029" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="f" width="79.579" height="29.4" x="-43.513" y="21.178" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="g" width="74.749" height="58.852" x="15.756" y="-17.901" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="h" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="i" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="j" width="56.045" height="63.649" x="-27.636" y="-22.853" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="k" width="54.814" height="64.646" x="20.116" y="-38.415" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="l" width="33.541" height="35.313" x="24.641" y="-11.323" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="m" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="n" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="o" width="54.814" height="64.646" x="8.244" y="-2.416" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="p" width="39.409" height="43.623" x="18.713" y="10.588" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter></defs></svg>
0 2 \ No newline at end of file
... ...
frontend/public/icons.svg 0 → 100644
  1 +<svg xmlns="http://www.w3.org/2000/svg">
  2 + <symbol id="bluesky-icon" viewBox="0 0 16 17">
  3 + <g clip-path="url(#bluesky-clip)"><path fill="#08060d" d="M7.75 7.735c-.693-1.348-2.58-3.86-4.334-5.097-1.68-1.187-2.32-.981-2.74-.79C.188 2.065.1 2.812.1 3.251s.241 3.602.398 4.13c.52 1.744 2.367 2.333 4.07 2.145-2.495.37-4.71 1.278-1.805 4.512 3.196 3.309 4.38-.71 4.987-2.746.608 2.036 1.307 5.91 4.93 2.746 2.72-2.746.747-4.143-1.747-4.512 1.702.189 3.55-.4 4.07-2.145.156-.528.397-3.691.397-4.13s-.088-1.186-.575-1.406c-.42-.19-1.06-.395-2.741.79-1.755 1.24-3.64 3.752-4.334 5.099"/></g>
  4 + <defs><clipPath id="bluesky-clip"><path fill="#fff" d="M.1.85h15.3v15.3H.1z"/></clipPath></defs>
  5 + </symbol>
  6 + <symbol id="discord-icon" viewBox="0 0 20 19">
  7 + <path fill="#08060d" d="M16.224 3.768a14.5 14.5 0 0 0-3.67-1.153c-.158.286-.343.67-.47.976a13.5 13.5 0 0 0-4.067 0c-.128-.306-.317-.69-.476-.976A14.4 14.4 0 0 0 3.868 3.77C1.546 7.28.916 10.703 1.231 14.077a14.7 14.7 0 0 0 4.5 2.306q.545-.748.965-1.587a9.5 9.5 0 0 1-1.518-.74q.191-.14.372-.293c2.927 1.369 6.107 1.369 8.999 0q.183.152.372.294-.723.437-1.52.74.418.838.963 1.588a14.6 14.6 0 0 0 4.504-2.308c.37-3.911-.63-7.302-2.644-10.309m-9.13 8.234c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.894 0 1.614.82 1.599 1.82.001 1-.705 1.82-1.6 1.82m5.91 0c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.893 0 1.614.82 1.599 1.82 0 1-.706 1.82-1.6 1.82"/>
  8 + </symbol>
  9 + <symbol id="documentation-icon" viewBox="0 0 21 20">
  10 + <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="m15.5 13.333 1.533 1.322c.645.555.967.833.967 1.178s-.322.623-.967 1.179L15.5 18.333m-3.333-5-1.534 1.322c-.644.555-.966.833-.966 1.178s.322.623.966 1.179l1.534 1.321"/>
  11 + <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M17.167 10.836v-4.32c0-1.41 0-2.117-.224-2.68-.359-.906-1.118-1.621-2.08-1.96-.599-.21-1.349-.21-2.848-.21-2.623 0-3.935 0-4.983.369-1.684.591-3.013 1.842-3.641 3.428C3 6.449 3 7.684 3 10.154v2.122c0 2.558 0 3.838.706 4.726q.306.383.713.671c.76.536 1.79.64 3.581.66"/>
  12 + <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M3 10a2.78 2.78 0 0 1 2.778-2.778c.555 0 1.209.097 1.748-.047.48-.129.854-.503.982-.982.145-.54.048-1.194.048-1.749a2.78 2.78 0 0 1 2.777-2.777"/>
  13 + </symbol>
  14 + <symbol id="github-icon" viewBox="0 0 19 19">
  15 + <path fill="#08060d" fill-rule="evenodd" d="M9.356 1.85C5.05 1.85 1.57 5.356 1.57 9.694a7.84 7.84 0 0 0 5.324 7.44c.387.079.528-.168.528-.376 0-.182-.013-.805-.013-1.454-2.165.467-2.616-.935-2.616-.935-.349-.91-.864-1.143-.864-1.143-.71-.48.051-.48.051-.48.787.051 1.2.805 1.2.805.695 1.194 1.817.857 2.268.649.064-.507.27-.857.49-1.052-1.728-.182-3.545-.857-3.545-3.87 0-.857.31-1.558.8-2.104-.078-.195-.349-1 .077-2.078 0 0 .657-.208 2.14.805a7.5 7.5 0 0 1 1.946-.26c.657 0 1.328.092 1.946.26 1.483-1.013 2.14-.805 2.14-.805.426 1.078.155 1.883.078 2.078.502.546.799 1.247.799 2.104 0 3.013-1.818 3.675-3.558 3.87.284.247.528.714.528 1.454 0 1.052-.012 1.896-.012 2.156 0 .208.142.455.528.377a7.84 7.84 0 0 0 5.324-7.441c.013-4.338-3.48-7.844-7.773-7.844" clip-rule="evenodd"/>
  16 + </symbol>
  17 + <symbol id="social-icon" viewBox="0 0 20 20">
  18 + <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M12.5 6.667a4.167 4.167 0 1 0-8.334 0 4.167 4.167 0 0 0 8.334 0"/>
  19 + <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M2.5 16.667a5.833 5.833 0 0 1 8.75-5.053m3.837.474.513 1.035c.07.144.257.282.414.309l.93.155c.596.1.736.536.307.965l-.723.73a.64.64 0 0 0-.152.531l.207.903c.164.715-.213.991-.84.618l-.872-.52a.63.63 0 0 0-.577 0l-.872.52c-.624.373-1.003.094-.84-.618l.207-.903a.64.64 0 0 0-.152-.532l-.723-.729c-.426-.43-.289-.864.306-.964l.93-.156a.64.64 0 0 0 .412-.31l.513-1.034c.28-.562.735-.562 1.012 0"/>
  20 + </symbol>
  21 + <symbol id="x-icon" viewBox="0 0 19 19">
  22 + <path fill="#08060d" fill-rule="evenodd" d="M1.893 1.98c.052.072 1.245 1.769 2.653 3.77l2.892 4.114c.183.261.333.48.333.486s-.068.089-.152.183l-.522.593-.765.867-3.597 4.087c-.375.426-.734.834-.798.905a1 1 0 0 0-.118.148c0 .01.236.017.664.017h.663l.729-.83c.4-.457.796-.906.879-.999a692 692 0 0 0 1.794-2.038c.034-.037.301-.34.594-.675l.551-.624.345-.392a7 7 0 0 1 .34-.374c.006 0 .93 1.306 2.052 2.903l2.084 2.965.045.063h2.275c1.87 0 2.273-.003 2.266-.021-.008-.02-1.098-1.572-3.894-5.547-2.013-2.862-2.28-3.246-2.273-3.266.008-.019.282-.332 2.085-2.38l2-2.274 1.567-1.782c.022-.028-.016-.03-.65-.03h-.674l-.3.342a871 871 0 0 1-1.782 2.025c-.067.075-.405.458-.75.852a100 100 0 0 1-.803.91c-.148.172-.299.344-.99 1.127-.304.343-.32.358-.345.327-.015-.019-.904-1.282-1.976-2.808L6.365 1.85H1.8zm1.782.91 8.078 11.294c.772 1.08 1.413 1.973 1.425 1.984.016.017.241.02 1.05.017l1.03-.004-2.694-3.766L7.796 5.75 5.722 2.852l-1.039-.004-1.039-.004z" clip-rule="evenodd"/>
  23 + </symbol>
  24 +</svg>
... ...
frontend/src/api/request.ts 0 → 100644
  1 +import axios, { type AxiosError, type AxiosResponse, type InternalAxiosRequestConfig } from 'axios'
  2 +import type { ApiResponse } from './types'
  3 +
  4 +export const TOKEN_KEY = 'erp.accessToken'
  5 +
  6 +const instance = axios.create({
  7 + baseURL: '/api',
  8 + timeout: 15000,
  9 +})
  10 +
  11 +instance.interceptors.request.use((cfg: InternalAxiosRequestConfig) => {
  12 + const token = sessionStorage.getItem(TOKEN_KEY)
  13 + if (token) cfg.headers.set('Authorization', `Bearer ${token}`)
  14 + return cfg
  15 +})
  16 +
  17 +let onUnauthorized: (() => void) | null = null
  18 +export function setUnauthorizedHandler(fn: () => void) {
  19 + onUnauthorized = fn
  20 +}
  21 +
  22 +instance.interceptors.response.use(
  23 + (res: AxiosResponse<ApiResponse<unknown>>) => res,
  24 + (err: AxiosError) => {
  25 + if (err.response?.status === 401) onUnauthorized?.()
  26 + return Promise.reject(err)
  27 + },
  28 +)
  29 +
  30 +/** Throws BizError when code !== 200; returns data on success. */
  31 +export class BizError extends Error {
  32 + code: number
  33 + payload: unknown
  34 + constructor(code: number, message: string, payload: unknown) {
  35 + super(message)
  36 + this.code = code
  37 + this.payload = payload
  38 + }
  39 +}
  40 +
  41 +export async function call<T>(req: () => Promise<AxiosResponse<ApiResponse<T>>>): Promise<T> {
  42 + const res = await req()
  43 + const body = res.data
  44 + if (body.code !== 200) {
  45 + throw new BizError(body.code, body.message, body.data)
  46 + }
  47 + return body.data
  48 +}
  49 +
  50 +export default instance
... ...
frontend/src/api/types.ts 0 → 100644
  1 +export interface ApiResponse<T> {
  2 + code: number
  3 + message: string
  4 + data: T
  5 + timestamp: number
  6 +}
  7 +
  8 +export interface UserInfo {
  9 + iIncrement: number
  10 + sUserNo: string
  11 + sUserName: string
  12 + sUserType: string
  13 + sLanguage: string
  14 +}
  15 +
  16 +export interface LoginRequest {
  17 + sUserName: string
  18 + sPassword: string
  19 + sVersion: 'standard'
  20 +}
  21 +
  22 +export interface LoginResponse {
  23 + accessToken: string
  24 + expiresIn: number
  25 + user: UserInfo
  26 +}
  27 +
  28 +export interface UserListItem {
  29 + iIncrement: number
  30 + sUserName: string
  31 + sStaffName: string | null
  32 + sUserNo: string
  33 + sDepartment: string | null
  34 + sUserType: string
  35 + sLanguage: string
  36 + bDeleted: boolean
  37 + tLastLoginDate: string | null
  38 + sCreatedBy: string | null
  39 + tCreateDate: string | null
  40 +}
  41 +
  42 +export interface UserListPage {
  43 + total: number
  44 + list: UserListItem[]
  45 + pageNum: number
  46 + pageSize: number
  47 +}
  48 +
  49 +export type QueryField = 'username' | 'userno' | 'staff' | 'department' | 'usertype' | 'language' | 'deleted'
  50 +export type MatchType = 'contains' | 'equals' | 'startsWith' | 'endsWith'
  51 +
  52 +export interface UserQuery {
  53 + pageNum: number
  54 + pageSize: number
  55 + queryField?: QueryField
  56 + matchType?: MatchType
  57 + queryValue?: string
  58 +}
  59 +
  60 +export interface UserCreate {
  61 + sUserNo: string
  62 + sUserName: string
  63 + iStaffId?: number | null
  64 + sUserType: string
  65 + sLanguage: string
  66 + bCanModifyDocs?: boolean
  67 + permissionCategoryIds?: number[]
  68 +}
  69 +
  70 +export interface UserUpdate {
  71 + iStaffId?: number | null
  72 + sUserType: string
  73 + sLanguage: string
  74 + bCanModifyDocs?: boolean
  75 + permissionCategoryIds?: number[]
  76 +}
  77 +
  78 +export interface ErrorPayload {
  79 + cooldownSeconds?: number
  80 + [key: string]: unknown
  81 +}
... ...
frontend/src/api/usr.ts 0 → 100644
  1 +import http, { call } from './request'
  2 +import type { ApiResponse, LoginRequest, LoginResponse, UserCreate, UserListItem, UserListPage, UserQuery, UserUpdate } from './types'
  3 +
  4 +export function login(req: LoginRequest) {
  5 + return call<LoginResponse>(() => http.post<ApiResponse<LoginResponse>>('/auth/login', req))
  6 +}
  7 +
  8 +export function listUsers(q: UserQuery) {
  9 + return call<UserListPage>(() =>
  10 + http.get<ApiResponse<UserListPage>>('/users', { params: q }),
  11 + )
  12 +}
  13 +
  14 +export function createUser(body: UserCreate) {
  15 + return call<UserListItem>(() => http.post<ApiResponse<UserListItem>>('/users', body))
  16 +}
  17 +
  18 +export function updateUser(id: number, body: UserUpdate) {
  19 + return call<UserListItem>(() => http.put<ApiResponse<UserListItem>>(`/users/${id}`, body))
  20 +}
... ...
frontend/src/assets/hero.png 0 → 100644

12.8 KB

frontend/src/assets/vite.svg 0 → 100644
  1 +<svg xmlns="http://www.w3.org/2000/svg" width="77" height="47" fill="none" aria-labelledby="vite-logo-title" viewBox="0 0 77 47"><title id="vite-logo-title">Vite</title><style>.parenthesis{fill:#000}@media (prefers-color-scheme:dark){.parenthesis{fill:#fff}}</style><path fill="#9135ff" d="M40.151 45.71c-.663.844-2.02.374-2.02-.699V34.708a2.26 2.26 0 0 0-2.262-2.262H24.493c-.92 0-1.457-1.04-.92-1.788l7.479-10.471c1.07-1.498 0-3.578-1.842-3.578H15.443c-.92 0-1.456-1.04-.92-1.788l9.696-13.576c.213-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.472c-1.07 1.497 0 3.578 1.842 3.578h11.376c.944 0 1.474 1.087.89 1.83L40.153 45.712z"/><mask id="a" width="48" height="47" x="14" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#000" d="M40.047 45.71c-.663.843-2.02.374-2.02-.699V34.708a2.26 2.26 0 0 0-2.262-2.262H24.389c-.92 0-1.457-1.04-.92-1.788l7.479-10.472c1.07-1.497 0-3.578-1.842-3.578H15.34c-.92 0-1.456-1.04-.92-1.788l9.696-13.575c.213-.297.556-.474.92-.474H53.93c.92 0 1.456 1.04.92 1.788L47.37 13.03c-1.07 1.498 0 3.578 1.842 3.578h11.376c.944 0 1.474 1.088.89 1.831L40.049 45.712z"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="5.508" cy="14.704" fill="#eee6ff" rx="5.508" ry="14.704" transform="rotate(269.814 20.96 11.29)scale(-1 1)"/></g><g filter="url(#c)"><ellipse cx="10.399" cy="29.851" fill="#eee6ff" rx="10.399" ry="29.851" transform="rotate(89.814 -16.902 -8.275)scale(1 -1)"/></g><g filter="url(#d)"><ellipse cx="5.508" cy="30.487" fill="#8900ff" rx="5.508" ry="30.487" transform="rotate(89.814 -19.197 -7.127)scale(1 -1)"/></g><g filter="url(#e)"><ellipse cx="5.508" cy="30.599" fill="#8900ff" rx="5.508" ry="30.599" transform="rotate(89.814 -25.928 4.177)scale(1 -1)"/></g><g filter="url(#f)"><ellipse cx="5.508" cy="30.599" fill="#8900ff" rx="5.508" ry="30.599" transform="rotate(89.814 -25.738 5.52)scale(1 -1)"/></g><g filter="url(#g)"><ellipse cx="14.072" cy="22.078" fill="#eee6ff" rx="14.072" ry="22.078" transform="rotate(93.35 31.245 55.578)scale(-1 1)"/></g><g filter="url(#h)"><ellipse cx="3.47" cy="21.501" fill="#8900ff" rx="3.47" ry="21.501" transform="rotate(89.009 35.419 55.202)scale(-1 1)"/></g><g filter="url(#i)"><ellipse cx="3.47" cy="21.501" fill="#8900ff" rx="3.47" ry="21.501" transform="rotate(89.009 35.419 55.202)scale(-1 1)"/></g><g filter="url(#j)"><ellipse cx="14.592" cy="9.743" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(39.51 14.592 9.743)"/></g><g filter="url(#k)"><ellipse cx="61.728" cy="-5.321" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(37.892 61.728 -5.32)"/></g><g filter="url(#l)"><ellipse cx="55.618" cy="7.104" fill="#00c2ff" rx="5.971" ry="9.665" transform="rotate(37.892 55.618 7.104)"/></g><g filter="url(#m)"><ellipse cx="12.326" cy="39.103" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(37.892 12.326 39.103)"/></g><g filter="url(#n)"><ellipse cx="12.326" cy="39.103" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(37.892 12.326 39.103)"/></g><g filter="url(#o)"><ellipse cx="49.857" cy="30.678" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(37.892 49.857 30.678)"/></g><g filter="url(#p)"><ellipse cx="52.623" cy="33.171" fill="#00c2ff" rx="5.971" ry="15.297" transform="rotate(37.892 52.623 33.17)"/></g></g><path d="M6.919 0c-9.198 13.166-9.252 33.575 0 46.789h6.215c-9.25-13.214-9.196-33.623 0-46.789zm62.424 0h-6.215c9.198 13.166 9.252 33.575 0 46.789h6.215c9.25-13.214 9.196-33.623 0-46.789" class="parenthesis"/><defs><filter id="b" width="60.045" height="41.654" x="-5.564" y="16.92" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="7.659"/></filter><filter id="c" width="90.34" height="51.437" x="-40.407" y="-6.762" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="7.659"/></filter><filter id="d" width="79.355" height="29.4" x="-35.435" y="2.801" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="e" width="79.579" height="29.4" x="-30.84" y="20.8" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="f" width="79.579" height="29.4" x="-29.307" y="21.949" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="g" width="74.749" height="58.852" x="29.961" y="-17.13" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="7.659"/></filter><filter id="h" width="61.377" height="25.362" x="37.754" y="3.055" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="i" width="61.377" height="25.362" x="37.754" y="3.055" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="j" width="56.045" height="63.649" x="-13.43" y="-22.082" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="k" width="54.814" height="64.646" x="34.321" y="-37.644" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="l" width="33.541" height="35.313" x="38.847" y="-10.552" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="m" width="54.814" height="64.646" x="-15.081" y="6.78" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="n" width="54.814" height="64.646" x="-15.081" y="6.78" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="o" width="54.814" height="64.646" x="22.45" y="-1.645" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="p" width="39.409" height="43.623" x="32.919" y="11.36" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter></defs></svg>
... ...
frontend/src/components/NavOverlay.tsx 0 → 100644
  1 +import { useNavigate } from 'react-router-dom'
  2 +import { message } from 'antd'
  3 +import { useAppDispatch } from '@/store'
  4 +import { openTab } from '@/store/tabs'
  5 +
  6 +const navSide = [
  7 + { ico: 'sales', label: '销售管理' }, { ico: 'dcs', label: 'DCS系统' }, { ico: 'prod', label: '产品管理' },
  8 + { ico: 'ops', label: '生产运营' }, { ico: 'exec', label: '生产执行' }, { ico: 'mold', label: '模具管理' },
  9 + { ico: 'cart', label: '采购管理' }, { ico: 'mat', label: '材料库存' }, { ico: 'fg', label: '成品库存' },
  10 + { ico: 'out', label: '外协管理' }, { ico: 'logi', label: '物流管理' }, { ico: 'qa', label: '质量管理' },
  11 + { ico: 'fin', label: '财务管理' }, { ico: 'cost1', label: '成本管理(专)' }, { ico: 'cost2', label: '成本管理' },
  12 + { ico: 'eq', label: '设备管理' }, { ico: 'hr', label: '人事行政' }, { ico: 'oa', label: 'OA系统' },
  13 + { ico: 'base', label: '基础设置' }, { ico: 'sys', label: '系统设置', active: true },
  14 +]
  15 +
  16 +const sideIco: Record<string, string> = {
  17 + sales: 'M3 7l3 10h12l3-10M5 7l1-3h12l1 3M9 21a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm8 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2z',
  18 + dcs: 'M12 2l9 5-9 5-9-5z M3 12l9 5 9-5 M3 17l9 5 9-5',
  19 + prod: 'M3 7l9-5 9 5v10l-9 5-9-5z',
  20 + ops: 'M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h6v6h-6z',
  21 + exec: 'M5 4h14v16H5z M5 9h14 M9 4v5',
  22 + mold: 'M4 7h16v10H4z M8 7v10 M16 7v10',
  23 + cart: 'M5 5h2l3 11h10l2-8H8 M9 20a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm9 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2z',
  24 + mat: 'M4 21V8l8-5 8 5v13z M9 21v-7h6v7',
  25 + fg: 'M3 21V9l9-6 9 6v12z',
  26 + out: 'M12 12c2 0 4-1 4-4s-2-4-4-4-4 1-4 4 2 4 4 4z M4 21c0-4 4-7 8-7s8 3 8 7',
  27 + logi: 'M3 7h11v9H3z M14 10h5l3 3v3h-8z M7 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm10 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2z',
  28 + qa: 'M12 2l8 4v6c0 5-4 8-8 10-4-2-8-5-8-10V6z M9 12l2 2 4-4',
  29 + fin: 'M12 2v20 M7 6h10 M7 10h10',
  30 + cost1: 'M4 20V8 M9 20V4 M14 20v-8 M19 20v-6 M2 20h20',
  31 + cost2: 'M4 20V8 M9 20V4 M14 20v-8 M19 20v-6 M2 20h20',
  32 + eq: 'M12 8a4 4 0 1 1 0 8 4 4 0 0 1 0-8z M19 12a7 7 0 0 0-.5-2.5l1.5-1.5-2-2-1.5 1.5A7 7 0 0 0 14 7l-.5-2h-3l-.5 2A7 7 0 0 0 7.5 7.5L6 6 4 8l1.5 1.5A7 7 0 0 0 5 12',
  33 + hr: 'M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z M2 21c0-4 3-7 7-7s7 3 7 7 M17 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6z M22 21c0-3-2-5-5-5',
  34 + oa: 'M3 7h18v12H3z M3 11h18 M8 7V4h8v3',
  35 + base: 'M4 6h16 M4 12h16 M4 18h16 M8 6v12 M14 6v12',
  36 + sys: 'M12 8a4 4 0 1 1 0 8 4 4 0 0 1 0-8z M19 12a7 7 0 0 0-.5-2.5l1.5-1.5-2-2-1.5 1.5A7 7 0 0 0 14 7l-.5-2h-3l-.5 2A7 7 0 0 0 7.5 7.5L6 6 4 8l1.5 1.5A7 7 0 0 0 5 12',
  37 +}
  38 +
  39 +interface NavLink {
  40 + label: string
  41 + star?: boolean
  42 + go?: 'userlist'
  43 +}
  44 +
  45 +const navCols: { title: string; items: (string | NavLink)[] }[] = [
  46 + { title: '期初设置', items: ['客户期初', '供应商期初', '材料期初', '产品期初', '数据导入', '离线导出下载'] },
  47 + { title: '用户管理', items: [{ label: '用户列表', star: true, go: 'userlist' }, '系统权限', '系统权限稽查表', '权限组'] },
  48 + { title: '系统参数', items: ['系统参数', '财务结账', '系统常量配置'] },
  49 + { title: '计算方案', items: ['方案列表', '计算参数'] },
  50 + { title: '日志', items: ['个性化模块', '操作日志', '异常清除KPI任务表', 'MYSQL监听器'] },
  51 + { title: '开发平台', items: ['自定义开发范例', { label: '系统功能模块设置', star: true }, 'EBC流程清单', '功能模块界面设置', '增删改存业务处理'] },
  52 + { title: 'API对接管理', items: ['调用第三方接口(TOKEN配置)', '调用第三方接口(接口定义)', '被第三方调用(生成token)', '数据同步', '被第三方调用(API定义)'] },
  53 +]
  54 +
  55 +interface Props {
  56 + onClose: () => void
  57 +}
  58 +
  59 +export default function NavOverlay({ onClose }: Props) {
  60 + const navigate = useNavigate()
  61 + const dispatch = useAppDispatch()
  62 +
  63 + const handleClick = (it: string | NavLink) => {
  64 + if (typeof it !== 'string' && it.go === 'userlist') {
  65 + dispatch(openTab({ key: 'userlist', title: '用户列表', path: '/users' }))
  66 + navigate('/users')
  67 + onClose()
  68 + } else {
  69 + const label = typeof it === 'string' ? it : it.label
  70 + message.info(`${label} - 未实现`)
  71 + }
  72 + }
  73 +
  74 + return (
  75 + <div className="nav-overlay">
  76 + <div className="side">
  77 + {navSide.map(s => (
  78 + <div key={s.label} className={`si ${s.active ? 'active' : ''}`}>
  79 + <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={1.6}>
  80 + <path d={sideIco[s.ico] || ''} />
  81 + </svg>
  82 + {s.label}
  83 + </div>
  84 + ))}
  85 + </div>
  86 + <div className="grid">
  87 + {navCols.map(c => (
  88 + <div key={c.title} className="col">
  89 + <h3>{c.title}</h3>
  90 + {c.items.map((it, i) => {
  91 + const label = typeof it === 'string' ? it : it.label
  92 + const star = typeof it !== 'string' && it.star
  93 + return (
  94 + <a key={i} onClick={() => handleClick(it)}>
  95 + {label}
  96 + {star && <span className="star">★</span>}
  97 + </a>
  98 + )
  99 + })}
  100 + </div>
  101 + ))}
  102 + </div>
  103 + </div>
  104 + )
  105 +}
... ...
frontend/src/components/TopBar.tsx 0 → 100644
  1 +import { useLocation, useNavigate } from 'react-router-dom'
  2 +import { useAppDispatch, useAppSelector } from '@/store'
  3 +import { closeTab, type TabItem } from '@/store/tabs'
  4 +import { loggedOut } from '@/store/auth'
  5 +import { IconAntler, IconBell, IconHome, IconMenu, IconSearch, IconUser } from './icons'
  6 +
  7 +interface Props {
  8 + navOpen: boolean
  9 + onToggleNav: () => void
  10 +}
  11 +
  12 +export default function TopBar({ navOpen, onToggleNav }: Props) {
  13 + const navigate = useNavigate()
  14 + const location = useLocation()
  15 + const dispatch = useAppDispatch()
  16 + const tabs = useAppSelector(s => s.tabs.items)
  17 + const user = useAppSelector(s => s.auth.user)
  18 +
  19 + const isHome = location.pathname === '/'
  20 +
  21 + const handleTabClick = (t: TabItem) => navigate(t.path)
  22 + const handleClose = (e: React.MouseEvent, t: TabItem) => {
  23 + e.stopPropagation()
  24 + const idx = tabs.findIndex(x => x.key === t.key)
  25 + dispatch(closeTab(t.key))
  26 + if (location.pathname === t.path) {
  27 + const next = tabs[idx + 1] || tabs[idx - 1]
  28 + navigate(next ? next.path : '/')
  29 + }
  30 + }
  31 +
  32 + const handleLogout = () => {
  33 + dispatch(loggedOut())
  34 + navigate('/login', { replace: true })
  35 + }
  36 +
  37 + return (
  38 + <div className="topbar">
  39 + <div className="logo" title="主页" onClick={() => navigate('/')}>
  40 + <IconAntler />
  41 + </div>
  42 + <div className="tabs">
  43 + <button className={`nav-btn ${navOpen ? 'active' : ''}`} onClick={onToggleNav}>
  44 + <IconMenu />
  45 + 全部导航
  46 + </button>
  47 + <div className={`tab ${isHome ? 'active' : ''}`} onClick={() => navigate('/')}>
  48 + <span className="ic"><IconHome /></span>
  49 + 主页
  50 + </div>
  51 + {tabs.map(t => (
  52 + <div
  53 + key={t.key}
  54 + className={`tab ${location.pathname === t.path ? 'active' : ''}`}
  55 + onClick={() => handleTabClick(t)}
  56 + >
  57 + {t.title}
  58 + <span className="close" onClick={e => handleClose(e, t)}>✕</span>
  59 + </div>
  60 + ))}
  61 + </div>
  62 + <div className="right">
  63 + <span className="ic" title="搜索"><IconSearch /></span>
  64 + <span className="ic" title="通知"><IconBell /></span>
  65 + <div className="user" onClick={handleLogout} title="点击退出登录">
  66 + <span className="ic"><IconUser /></span>
  67 + {user ? `${user.sUserName}(${user.sUserType})` : '未登录'}
  68 + <span style={{ fontSize: 10 }}>▾</span>
  69 + </div>
  70 + <span className="more">⋯</span>
  71 + </div>
  72 + </div>
  73 + )
  74 +}
... ...
frontend/src/components/icons.tsx 0 → 100644
  1 +import type { SVGProps } from 'react'
  2 +
  3 +const stroke: SVGProps<SVGSVGElement> = {
  4 + fill: 'none',
  5 + stroke: 'currentColor',
  6 + strokeWidth: 2,
  7 + viewBox: '0 0 24 24',
  8 +}
  9 +
  10 +export const IconAntler = (p: SVGProps<SVGSVGElement>) => (
  11 + <svg viewBox="0 0 64 64" fill="currentColor" {...p}>
  12 + <path d="M14 10c2 4 1 8-1 11 3-1 7 0 10 3 1-4 4-7 8-7-3 3-4 7-3 11l4 1c-1 3 0 6 3 8-3 0-6 1-8 4-1-3-4-5-8-5 2-3 2-7 0-10-3 1-7 0-10-3 3 0 5-2 6-5l-1-8z" />
  13 + <path d="M48 14c-2 3-2 6-1 9-2-2-5-2-8-1 1 3 1 6-1 9 3 0 5 2 6 5 1-3 4-5 7-5-2-3-2-6 0-9 2 1 5 1 7-1-2 0-4-1-5-3-1-2-3-4-5-4z" />
  14 + <path d="M28 38c2 3 5 5 9 5 1 4 4 7 8 8-3 2-5 5-5 9-3-2-7-3-11-2 1-3 1-7-1-10-3 0-6-1-8-4 3-1 6-3 8-6z" />
  15 + </svg>
  16 +)
  17 +
  18 +export const IconMenu = (p: SVGProps<SVGSVGElement>) => (
  19 + <svg width="18" height="18" {...stroke} {...p}>
  20 + <line x1="4" y1="7" x2="20" y2="7" />
  21 + <line x1="4" y1="12" x2="20" y2="12" />
  22 + <line x1="4" y1="17" x2="20" y2="17" />
  23 + </svg>
  24 +)
  25 +
  26 +export const IconHome = (p: SVGProps<SVGSVGElement>) => (
  27 + <svg width="16" height="16" {...stroke} {...p}>
  28 + <path d="M3 11l9-8 9 8" />
  29 + <path d="M5 10v10h14V10" />
  30 + </svg>
  31 +)
  32 +
  33 +export const IconSearch = (p: SVGProps<SVGSVGElement>) => (
  34 + <svg width="18" height="18" {...stroke} {...p}>
  35 + <circle cx="11" cy="11" r="7" />
  36 + <line x1="21" y1="21" x2="16.5" y2="16.5" />
  37 + </svg>
  38 +)
  39 +
  40 +export const IconBell = (p: SVGProps<SVGSVGElement>) => (
  41 + <svg width="18" height="18" {...stroke} {...p}>
  42 + <path d="M6 8a6 6 0 0 1 12 0v5l1.5 3h-15L6 13z" />
  43 + <path d="M10 19a2 2 0 0 0 4 0" />
  44 + </svg>
  45 +)
  46 +
  47 +export const IconUser = (p: SVGProps<SVGSVGElement>) => (
  48 + <svg width="18" height="18" {...stroke} {...p}>
  49 + <rect x="3" y="5" width="18" height="14" rx="1" />
  50 + <path d="M3 9h18" />
  51 + </svg>
  52 +)
  53 +
  54 +export const IconRefresh = (p: SVGProps<SVGSVGElement>) => (
  55 + <svg width="14" height="14" {...stroke} {...p}>
  56 + <path d="M21 12a9 9 0 1 1-3-6.7" />
  57 + <path d="M21 4v5h-5" />
  58 + </svg>
  59 +)
  60 +
  61 +export const IconPlus = (p: SVGProps<SVGSVGElement>) => (
  62 + <svg width="14" height="14" {...stroke} {...p}>
  63 + <circle cx="12" cy="12" r="9" />
  64 + <path d="M12 8v8M8 12h8" />
  65 + </svg>
  66 +)
  67 +
  68 +export const IconExport = (p: SVGProps<SVGSVGElement>) => (
  69 + <svg width="14" height="14" {...stroke} {...p}>
  70 + <path d="M4 4h12l4 4v12H4z" />
  71 + <path d="M16 4v4h4" />
  72 + <path d="M8 12h8M8 16h8" />
  73 + </svg>
  74 +)
  75 +
  76 +export const IconEdit = (p: SVGProps<SVGSVGElement>) => (
  77 + <svg width="14" height="14" {...stroke} {...p}>
  78 + <path d="M14 3l7 7-11 11H3v-7z" />
  79 + </svg>
  80 +)
  81 +
  82 +export const IconDelete = (p: SVGProps<SVGSVGElement>) => (
  83 + <svg width="14" height="14" {...stroke} {...p}>
  84 + <circle cx="12" cy="12" r="9" />
  85 + <path d="M8 8l8 8M16 8l-8 8" />
  86 + </svg>
  87 +)
  88 +
  89 +export const IconSave = (p: SVGProps<SVGSVGElement>) => (
  90 + <svg width="14" height="14" {...stroke} {...p}>
  91 + <path d="M5 4h11l3 3v13H5z" />
  92 + <rect x="8" y="4" width="8" height="5" />
  93 + </svg>
  94 +)
  95 +
  96 +export const IconCancel = (p: SVGProps<SVGSVGElement>) => (
  97 + <svg width="14" height="14" {...stroke} {...p}>
  98 + <circle cx="12" cy="12" r="9" />
  99 + <path d="M9 9l6 6M15 9l-6 6" />
  100 + </svg>
  101 +)
  102 +
  103 +export const IconGrid = (p: SVGProps<SVGSVGElement>) => (
  104 + <svg width="14" height="14" {...stroke} {...p}>
  105 + <rect x="3" y="3" width="7" height="7" />
  106 + <rect x="14" y="3" width="7" height="7" />
  107 + <rect x="3" y="14" width="7" height="7" />
  108 + <rect x="14" y="14" width="7" height="7" />
  109 + </svg>
  110 +)
  111 +
  112 +export const IconLock = (p: SVGProps<SVGSVGElement>) => (
  113 + <svg width="16" height="16" {...stroke} {...p}>
  114 + <rect x="4" y="11" width="16" height="10" rx="1" />
  115 + <path d="M8 11V7a4 4 0 0 1 8 0v4" />
  116 + </svg>
  117 +)
  118 +
  119 +export const IconAvatar = (p: SVGProps<SVGSVGElement>) => (
  120 + <svg width="16" height="16" {...stroke} {...p}>
  121 + <circle cx="12" cy="8" r="4" />
  122 + <path d="M4 21c0-4 4-7 8-7s8 3 8 7" />
  123 + </svg>
  124 +)
  125 +
  126 +export const IconAi = (p: SVGProps<SVGSVGElement>) => (
  127 + <svg width="14" height="14" {...stroke} {...p}>
  128 + <path d="M12 2l2 5 5 2-5 2-2 5-2-5-5-2 5-2z" />
  129 + </svg>
  130 +)
... ...
frontend/src/layouts/AppShell.tsx 0 → 100644
  1 +import { useState } from 'react'
  2 +import { Outlet } from 'react-router-dom'
  3 +import TopBar from '@/components/TopBar'
  4 +import NavOverlay from '@/components/NavOverlay'
  5 +
  6 +export default function AppShell() {
  7 + const [navOpen, setNavOpen] = useState(false)
  8 +
  9 + return (
  10 + <div className="app">
  11 + <TopBar navOpen={navOpen} onToggleNav={() => setNavOpen(o => !o)} />
  12 + <div className="stage">
  13 + {navOpen && <NavOverlay onClose={() => setNavOpen(false)} />}
  14 + <Outlet />
  15 + </div>
  16 + </div>
  17 + )
  18 +}
... ...
frontend/src/main.tsx 0 → 100644
  1 +import { StrictMode } from 'react'
  2 +import { createRoot } from 'react-dom/client'
  3 +import { Provider } from 'react-redux'
  4 +import { RouterProvider } from 'react-router-dom'
  5 +import { ConfigProvider } from 'antd'
  6 +import zhCN from 'antd/locale/zh_CN'
  7 +import { store } from '@/store'
  8 +import { router } from '@/router'
  9 +import { setUnauthorizedHandler } from '@/api/request'
  10 +import { loggedOut } from '@/store/auth'
  11 +import './styles/global.css'
  12 +
  13 +setUnauthorizedHandler(() => {
  14 + store.dispatch(loggedOut())
  15 + if (location.pathname !== '/login') location.assign('/login')
  16 +})
  17 +
  18 +createRoot(document.getElementById('root')!).render(
  19 + <StrictMode>
  20 + <Provider store={store}>
  21 + <ConfigProvider locale={zhCN} theme={{ token: { colorPrimary: '#2f7adf', borderRadius: 2 } }}>
  22 + <RouterProvider router={router} />
  23 + </ConfigProvider>
  24 + </Provider>
  25 + </StrictMode>,
  26 +)
... ...