diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 35af9a1..8e0c48f 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.10.0 +current_version = 1.10.1 commit = False tag = False diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a6920d6..1596fca 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -32,6 +32,7 @@ repos: - id: pretty-format-json args: - --autofix + exclude: ^ui/ - repo: https://github.com/psf/black rev: 25.11.0 hooks: @@ -86,7 +87,6 @@ repos: hooks: - id: prettier files: ^ui/ - exclude: \.json$ - repo: https://github.com/pre-commit/mirrors-eslint rev: v8.50.0 hooks: diff --git a/pyproject.toml b/pyproject.toml index 086761c..24c2de2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "takrmapi" -version = "1.10.0" +version = "1.10.1" description = "RASENMAEHER integration API for TAK server" authors = ["Eero af Heurlin ", "Ari Karhunen "] homepage = "https://github.com/pvarki/python-tak-rmapi" diff --git a/src/takrmapi/__init__.py b/src/takrmapi/__init__.py index f1151c9..d3d45d2 100644 --- a/src/takrmapi/__init__.py +++ b/src/takrmapi/__init__.py @@ -1,3 +1,3 @@ """RASENMAEHER integration API for TAK server""" -__version__ = "1.10.0" # NOTE Use `bump2version --config-file patch` to bump versions correctly +__version__ = "1.10.1" # NOTE Use `bump2version --config-file patch` to bump versions correctly diff --git a/src/takrmapi/api/description.py b/src/takrmapi/api/description.py index ff2bb4c..3424ac5 100644 --- a/src/takrmapi/api/description.py +++ b/src/takrmapi/api/description.py @@ -90,7 +90,7 @@ async def return_product_description_extended(language: str) -> ProductDescripti icon="/ui/tak/taklogo.svg", description="Tilannekuvajärjestelmä", language="fi", - docs="https://pvarki.github.io/Docusaurus-docs/docs/android/deployapp/home/", + docs="https://docs.pvarki.fi/", component=ProductComponent(type="component", ref="/ui/tak/remoteEntry.js"), ) if language == "sv": @@ -100,7 +100,7 @@ async def return_product_description_extended(language: str) -> ProductDescripti icon="/ui/tak/taklogo.svg", description="Situationsbildsystem", language="sv", - docs="https://pvarki.github.io/Docusaurus-docs/docs/android/deployapp/home/", + docs="https://docs.pvarki.fi/", component=ProductComponent(type="component", ref="/ui/tak/remoteEntry.js"), ) # Fall back to English @@ -110,7 +110,7 @@ async def return_product_description_extended(language: str) -> ProductDescripti icon="/ui/tak/taklogo.svg", description="Situational awareness system", language="en", - docs="https://pvarki.github.io/Docusaurus-docs/docs/android/deployapp/home/", + docs="https://docs.pvarki.fi/", component=ProductComponent(type="component", ref="/ui/tak/remoteEntry.js"), ) diff --git a/tests/test_takrmapi.py b/tests/test_takrmapi.py index 620f0c5..495f599 100644 --- a/tests/test_takrmapi.py +++ b/tests/test_takrmapi.py @@ -18,7 +18,7 @@ def test_version() -> None: """Make sure version matches expected""" - assert __version__ == "1.10.0" + assert __version__ == "1.10.1" @pytest.fixture(autouse=True) diff --git a/ui/package-lock.json b/ui/package-lock.json new file mode 100644 index 0000000..e5ef51c --- /dev/null +++ b/ui/package-lock.json @@ -0,0 +1,7742 @@ +{ + "lockfileVersion": 3, + "name": "takintegration-module-federation", + "packages": { + "": { + "dependencies": { + "@module-federation/enhanced": "^0.21.2", + "@radix-ui/react-accordion": "^1.2.12", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-progress": "^1.1.8", + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-tabs": "^1.1.13", + "@tailwindcss/vite": "^4.1.16", + "@tanstack/react-router": "^1.133.22", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "i18next": "^25.6.2", + "lucide-react": "^0.552.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-i18next": "^16.3.3", + "tailwind-merge": "^3.3.1", + "tailwindcss": "^4.1.16" + }, + "devDependencies": { + "@module-federation/enhanced": "^0.21.2", + "@module-federation/vite": "1.7.1", + "@tailwindcss/typography": "^0.5.19", + "@types/react": "^18.2.79", + "@types/react-dom": "18.2.25", + "@typescript-eslint/eslint-plugin": "^5.61.0", + "@typescript-eslint/parser": "^5.61.0", + "@vitejs/plugin-react": "4.2.1", + "eslint": "^8.44.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.1", + "prettier": "3.6.2", + "tw-animate-css": "^1.4.0", + "typescript": "5.4.5", + "typescript-eslint": "^8.48.1", + "vite": "5.2.10" + }, + "name": "takintegration-module-federation", + "version": "0.0.0" + }, + "node_modules/@babel/code-frame": { + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "version": "7.27.1" + }, + "node_modules/@babel/compat-data": { + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "version": "7.28.5" + }, + "node_modules/@babel/core": { + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + }, + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "version": "7.28.5" + }, + "node_modules/@babel/core/node_modules/semver": { + "bin": { + "semver": "bin/semver.js" + }, + "dev": true, + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "version": "6.3.1" + }, + "node_modules/@babel/generator": { + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "version": "7.28.5" + }, + "node_modules/@babel/helper-compilation-targets": { + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "version": "7.27.2" + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "bin": { + "semver": "bin/semver.js" + }, + "dev": true, + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "version": "6.3.1" + }, + "node_modules/@babel/helper-globals": { + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "version": "7.28.0" + }, + "node_modules/@babel/helper-module-imports": { + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "version": "7.27.1" + }, + "node_modules/@babel/helper-module-transforms": { + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "license": "MIT", + "peerDependencies": { + "@babel/core": "^7.0.0" + }, + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "version": "7.28.3" + }, + "node_modules/@babel/helper-plugin-utils": { + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "version": "7.27.1" + }, + "node_modules/@babel/helper-string-parser": { + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "version": "7.27.1" + }, + "node_modules/@babel/helper-validator-identifier": { + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "version": "7.28.5" + }, + "node_modules/@babel/helper-validator-option": { + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "version": "7.27.1" + }, + "node_modules/@babel/helpers": { + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "version": "7.28.4" + }, + "node_modules/@babel/parser": { + "bin": { + "parser": "bin/babel-parser.js" + }, + "dependencies": { + "@babel/types": "^7.28.5" + }, + "dev": true, + "engines": { + "node": ">=6.0.0" + }, + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "version": "7.28.5" + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "license": "MIT", + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "version": "7.27.1" + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "license": "MIT", + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "version": "7.27.1" + }, + "node_modules/@babel/runtime": { + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "version": "7.28.4" + }, + "node_modules/@babel/template": { + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "version": "7.27.2" + }, + "node_modules/@babel/traverse": { + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "version": "7.28.5" + }, + "node_modules/@babel/types": { + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "version": "7.28.5" + }, + "node_modules/@emnapi/core": { + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + }, + "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", + "license": "MIT", + "optional": true, + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", + "version": "1.8.1" + }, + "node_modules/@emnapi/runtime": { + "dependencies": { + "tslib": "^2.4.0" + }, + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "license": "MIT", + "optional": true, + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "version": "1.8.1" + }, + "node_modules/@emnapi/wasi-threads": { + "dependencies": { + "tslib": "^2.4.0" + }, + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "license": "MIT", + "optional": true, + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "version": "1.1.0" + }, + "node_modules/@esbuild/aix-ppc64": { + "cpu": [ + "ppc64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/android-arm": { + "cpu": [ + "arm" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/android-arm64": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/android-x64": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/darwin-arm64": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/darwin-x64": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/freebsd-arm64": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/freebsd-x64": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/linux-arm": { + "cpu": [ + "arm" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/linux-arm64": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/linux-ia32": { + "cpu": [ + "ia32" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/linux-loong64": { + "cpu": [ + "loong64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/linux-mips64el": { + "cpu": [ + "mips64el" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/linux-ppc64": { + "cpu": [ + "ppc64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/linux-riscv64": { + "cpu": [ + "riscv64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/linux-s390x": { + "cpu": [ + "s390x" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/linux-x64": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/netbsd-x64": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/openbsd-x64": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/sunos-x64": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/win32-arm64": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/win32-ia32": { + "cpu": [ + "ia32" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@esbuild/win32-x64": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">=12" + }, + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/@eslint-community/eslint-utils": { + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "license": "MIT", + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + }, + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "version": "4.9.1" + }, + "node_modules/@eslint-community/regexpp": { + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + }, + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "version": "4.12.2" + }, + "node_modules/@eslint/eslintrc": { + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "version": "2.1.4" + }, + "node_modules/@eslint/js": { + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "version": "8.57.1" + }, + "node_modules/@floating-ui/core": { + "dependencies": { + "@floating-ui/utils": "^0.2.10" + }, + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "version": "1.7.3" + }, + "node_modules/@floating-ui/dom": { + "dependencies": { + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" + }, + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "version": "1.7.4" + }, + "node_modules/@floating-ui/react-dom": { + "dependencies": { + "@floating-ui/dom": "^1.7.4" + }, + "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + }, + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", + "version": "2.1.6" + }, + "node_modules/@floating-ui/utils": { + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "version": "0.2.10" + }, + "node_modules/@humanwhocodes/config-array": { + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "engines": { + "node": ">=10.10.0" + }, + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "version": "0.13.0" + }, + "node_modules/@humanwhocodes/module-importer": { + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + }, + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "version": "1.0.1" + }, + "node_modules/@humanwhocodes/object-schema": { + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "version": "2.0.3" + }, + "node_modules/@jridgewell/gen-mapping": { + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "version": "0.3.13" + }, + "node_modules/@jridgewell/remapping": { + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "version": "2.3.5" + }, + "node_modules/@jridgewell/resolve-uri": { + "engines": { + "node": ">=6.0.0" + }, + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "version": "3.1.2" + }, + "node_modules/@jridgewell/sourcemap-codec": { + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "version": "1.5.5" + }, + "node_modules/@jridgewell/trace-mapping": { + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + }, + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "version": "0.3.31" + }, + "node_modules/@module-federation/bridge-react-webpack-plugin": { + "dependencies": { + "@module-federation/sdk": "0.21.6", + "@types/semver": "7.5.8", + "semver": "7.6.3" + }, + "dev": true, + "integrity": "sha512-lJMmdhD4VKVkeg8RHb+Jwe6Ou9zKVgjtb1inEURDG/sSS2ksdZA8pVKLYbRPRbdmjr193Y8gJfqFbI2dqoyc/g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/bridge-react-webpack-plugin/-/bridge-react-webpack-plugin-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/cli": { + "bin": { + "mf": "bin/mf.js" + }, + "dependencies": { + "@module-federation/dts-plugin": "0.21.6", + "@module-federation/sdk": "0.21.6", + "chalk": "3.0.0", + "commander": "11.1.0", + "jiti": "2.4.2" + }, + "dev": true, + "engines": { + "node": ">=16.0.0" + }, + "integrity": "sha512-qNojnlc8pTyKtK7ww3i/ujLrgWwgXqnD5DcDPsjADVIpu7STaoaVQ0G5GJ7WWS/ajXw6EyIAAGW/AMFh4XUxsQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/cli/-/cli-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/data-prefetch": { + "dependencies": { + "@module-federation/runtime": "0.21.6", + "@module-federation/sdk": "0.21.6", + "fs-extra": "9.1.0" + }, + "dev": true, + "integrity": "sha512-8HD7ZhtWZ9vl6i3wA7M8cEeCRdtvxt09SbMTfqIPm+5eb/V4ijb8zGTYSRhNDb5RCB+BAixaPiZOWKXJ63/rVw==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "resolved": "https://registry.npmjs.org/@module-federation/data-prefetch/-/data-prefetch-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/dts-plugin": { + "dependencies": { + "@module-federation/error-codes": "0.21.6", + "@module-federation/managers": "0.21.6", + "@module-federation/sdk": "0.21.6", + "@module-federation/third-party-dts-extractor": "0.21.6", + "adm-zip": "^0.5.10", + "ansi-colors": "^4.1.3", + "axios": "^1.12.0", + "chalk": "3.0.0", + "fs-extra": "9.1.0", + "isomorphic-ws": "5.0.0", + "koa": "3.0.3", + "lodash.clonedeepwith": "4.5.0", + "log4js": "6.9.1", + "node-schedule": "2.1.1", + "rambda": "^9.1.0", + "ws": "8.18.0" + }, + "dev": true, + "integrity": "sha512-YIsDk8/7QZIWn0I1TAYULniMsbyi2LgKTi9OInzVmZkwMC6644x/ratTWBOUDbdY1Co+feNkoYeot1qIWv2L7w==", + "license": "MIT", + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24" + }, + "peerDependenciesMeta": { + "vue-tsc": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@module-federation/dts-plugin/-/dts-plugin-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/enhanced": { + "bin": { + "mf": "bin/mf.js" + }, + "dependencies": { + "@module-federation/bridge-react-webpack-plugin": "0.21.6", + "@module-federation/cli": "0.21.6", + "@module-federation/data-prefetch": "0.21.6", + "@module-federation/dts-plugin": "0.21.6", + "@module-federation/error-codes": "0.21.6", + "@module-federation/inject-external-runtime-core-plugin": "0.21.6", + "@module-federation/managers": "0.21.6", + "@module-federation/manifest": "0.21.6", + "@module-federation/rspack": "0.21.6", + "@module-federation/runtime-tools": "0.21.6", + "@module-federation/sdk": "0.21.6", + "btoa": "^1.2.1", + "schema-utils": "^4.3.0", + "upath": "2.0.1" + }, + "dev": true, + "integrity": "sha512-8PFQxtmXc6ukBC4CqGIoc96M2Ly9WVwCPu4Ffvt+K/SB6rGbeFeZoYAwREV1zGNMJ5v5ly6+AHIEOBxNuSnzSg==", + "license": "MIT", + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + }, + "webpack": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@module-federation/enhanced/-/enhanced-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/error-codes": { + "dev": true, + "integrity": "sha512-MLJUCQ05KnoVl8xd6xs9a5g2/8U+eWmVxg7xiBMeR0+7OjdWUbHwcwgVFatRIwSZvFgKHfWEiI7wsU1q1XbTRQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/inject-external-runtime-core-plugin": { + "dev": true, + "integrity": "sha512-DJQne7NQ988AVi3QB8byn12FkNb+C2lBeU1NRf8/WbL0gmHsr6kW8hiEJCm8LYaURwtsQqtsEV7i+8+51qjSmQ==", + "license": "MIT", + "peerDependencies": { + "@module-federation/runtime-tools": "0.21.6" + }, + "resolved": "https://registry.npmjs.org/@module-federation/inject-external-runtime-core-plugin/-/inject-external-runtime-core-plugin-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/managers": { + "dependencies": { + "@module-federation/sdk": "0.21.6", + "find-pkg": "2.0.0", + "fs-extra": "9.1.0" + }, + "dev": true, + "integrity": "sha512-BeV6m2/7kF5MDVz9JJI5T8h8lMosnXkH2bOxxFewcra7ZjvDOgQu7WIio0mgk5l1zjNPvnEVKhnhrenEdcCiWg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/managers/-/managers-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/manifest": { + "dependencies": { + "@module-federation/dts-plugin": "0.21.6", + "@module-federation/managers": "0.21.6", + "@module-federation/sdk": "0.21.6", + "chalk": "3.0.0", + "find-pkg": "2.0.0" + }, + "dev": true, + "integrity": "sha512-yg93+I1qjRs5B5hOSvjbjmIoI2z3th8/yst9sfwvx4UDOG1acsE3HHMyPN0GdoIGwplC/KAnU5NmUz4tREUTGQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/manifest/-/manifest-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/rspack": { + "dependencies": { + "@module-federation/bridge-react-webpack-plugin": "0.21.6", + "@module-federation/dts-plugin": "0.21.6", + "@module-federation/inject-external-runtime-core-plugin": "0.21.6", + "@module-federation/managers": "0.21.6", + "@module-federation/manifest": "0.21.6", + "@module-federation/runtime-tools": "0.21.6", + "@module-federation/sdk": "0.21.6", + "btoa": "1.2.1" + }, + "dev": true, + "integrity": "sha512-SB+z1P+Bqe3R6geZje9dp0xpspX6uash+zO77nodmUy8PTTBlkL7800Cq2FMLKUdoTZHJTBVXf0K6CqQWSlItg==", + "license": "MIT", + "peerDependencies": { + "@rspack/core": ">=0.7", + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@module-federation/rspack/-/rspack-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/runtime": { + "dependencies": { + "@module-federation/error-codes": "0.21.6", + "@module-federation/runtime-core": "0.21.6", + "@module-federation/sdk": "0.21.6" + }, + "dev": true, + "integrity": "sha512-+caXwaQqwTNh+CQqyb4mZmXq7iEemRDrTZQGD+zyeH454JAYnJ3s/3oDFizdH6245pk+NiqDyOOkHzzFQorKhQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/runtime-core": { + "dependencies": { + "@module-federation/error-codes": "0.21.6", + "@module-federation/sdk": "0.21.6" + }, + "dev": true, + "integrity": "sha512-5Hd1Y5qp5lU/aTiK66lidMlM/4ji2gr3EXAtJdreJzkY+bKcI5+21GRcliZ4RAkICmvdxQU5PHPL71XmNc7Lsw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-core/-/runtime-core-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/runtime-tools": { + "dependencies": { + "@module-federation/runtime": "0.21.6", + "@module-federation/webpack-bundler-runtime": "0.21.6" + }, + "dev": true, + "integrity": "sha512-fnP+ZOZTFeBGiTAnxve+axGmiYn2D60h86nUISXjXClK3LUY1krUfPgf6MaD4YDJ4i51OGXZWPekeMe16pkd8Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/sdk": { + "dev": true, + "integrity": "sha512-x6hARETb8iqHVhEsQBysuWpznNZViUh84qV2yE7AD+g7uIzHKiYdoWqj10posbo5XKf/147qgWDzKZoKoEP2dw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/third-party-dts-extractor": { + "dependencies": { + "find-pkg": "2.0.0", + "fs-extra": "9.1.0", + "resolve": "1.22.8" + }, + "dev": true, + "integrity": "sha512-Il6x4hLsvCgZNk1DFwuMBNeoxD1BsZ5AW2BI/nUgu0k5FiAvfcz1OFawRFEHtaM/kVrCsymMOW7pCao90DaX3A==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/third-party-dts-extractor/-/third-party-dts-extractor-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@module-federation/vite": { + "dependencies": { + "@module-federation/runtime": "^0.17.1", + "@rollup/pluginutils": "^5.1.0", + "defu": "^6.1.4", + "estree-walker": "^2", + "magic-string": "^0.30.11", + "pathe": "^1.1.2" + }, + "dev": true, + "integrity": "sha512-SIjmBXOPqh9nH+Qb2nROWpOlIeWek/8WHYD6yhpDSGnGEeWzobymru6c5hab9nyWhkYSzjGxOEsBZ4HDZZXB9Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/vite/-/vite-1.7.1.tgz", + "version": "1.7.1" + }, + "node_modules/@module-federation/vite/node_modules/@module-federation/error-codes": { + "dev": true, + "integrity": "sha512-n6Elm4qKSjwAPxLUGtwnl7qt4y1dxB8OpSgVvXBIzqI9p27a3ZXshLPLnumlpPg1Qudaj8sLnSnFtt9yGpt5yQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.17.1.tgz", + "version": "0.17.1" + }, + "node_modules/@module-federation/vite/node_modules/@module-federation/runtime": { + "dependencies": { + "@module-federation/error-codes": "0.17.1", + "@module-federation/runtime-core": "0.17.1", + "@module-federation/sdk": "0.17.1" + }, + "dev": true, + "integrity": "sha512-vKEN32MvUbpeuB/s6UXfkHDZ9N5jFyDDJnj83UTJ8n4N1jHIJu9VZ6Yi4/Ac8cfdvU8UIK9bIbfVXWbUYZUDsw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.17.1.tgz", + "version": "0.17.1" + }, + "node_modules/@module-federation/vite/node_modules/@module-federation/runtime-core": { + "dependencies": { + "@module-federation/error-codes": "0.17.1", + "@module-federation/sdk": "0.17.1" + }, + "dev": true, + "integrity": "sha512-LCtIFuKgWPQ3E+13OyrVpuTPOWBMI/Ggwsq1Q874YeT8Px28b8tJRCj09DjyRFyhpSPyV/uG80T6iXPAUoLIfQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-core/-/runtime-core-0.17.1.tgz", + "version": "0.17.1" + }, + "node_modules/@module-federation/vite/node_modules/@module-federation/sdk": { + "dev": true, + "integrity": "sha512-nlUcN6UTEi+3HWF+k8wPy7gH0yUOmCT+xNatihkIVR9REAnr7BUvHFGlPJmx7WEbLPL46+zJUbtQHvLzXwFhng==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.17.1.tgz", + "version": "0.17.1" + }, + "node_modules/@module-federation/webpack-bundler-runtime": { + "dependencies": { + "@module-federation/runtime": "0.21.6", + "@module-federation/sdk": "0.21.6" + }, + "dev": true, + "integrity": "sha512-7zIp3LrcWbhGuFDTUMLJ2FJvcwjlddqhWGxi/MW3ur1a+HaO8v5tF2nl+vElKmbG1DFLU/52l3PElVcWf/YcsQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.21.6.tgz", + "version": "0.21.6" + }, + "node_modules/@napi-rs/wasm-runtime": { + "dependencies": { + "@emnapi/core": "^1.5.0", + "@emnapi/runtime": "^1.5.0", + "@tybys/wasm-util": "^0.10.1" + }, + "integrity": "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==", + "license": "MIT", + "optional": true, + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz", + "version": "1.0.7" + }, + "node_modules/@nodelib/fs.scandir": { + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "dev": true, + "engines": { + "node": ">= 8" + }, + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "version": "2.1.5" + }, + "node_modules/@nodelib/fs.stat": { + "dev": true, + "engines": { + "node": ">= 8" + }, + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "version": "2.0.5" + }, + "node_modules/@nodelib/fs.walk": { + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "dev": true, + "engines": { + "node": ">= 8" + }, + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "version": "1.2.8" + }, + "node_modules/@radix-ui/number": { + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", + "version": "1.1.1" + }, + "node_modules/@radix-ui/primitive": { + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "version": "1.1.3" + }, + "node_modules/@radix-ui/react-accordion": { + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collapsible": "1.1.12", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz", + "version": "1.2.12" + }, + "node_modules/@radix-ui/react-arrow": { + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "version": "1.1.7" + }, + "node_modules/@radix-ui/react-collapsible": { + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz", + "version": "1.1.12" + }, + "node_modules/@radix-ui/react-collection": { + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "version": "1.1.7" + }, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "version": "1.2.3" + }, + "node_modules/@radix-ui/react-compose-refs": { + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "version": "1.1.2" + }, + "node_modules/@radix-ui/react-context": { + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "version": "1.1.2" + }, + "node_modules/@radix-ui/react-dialog": { + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", + "version": "1.1.15" + }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot": { + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "version": "1.2.3" + }, + "node_modules/@radix-ui/react-direction": { + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "version": "1.1.1" + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", + "version": "1.1.11" + }, + "node_modules/@radix-ui/react-focus-guards": { + "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", + "version": "1.1.3" + }, + "node_modules/@radix-ui/react-focus-scope": { + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "version": "1.1.7" + }, + "node_modules/@radix-ui/react-id": { + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "version": "1.1.1" + }, + "node_modules/@radix-ui/react-popper": { + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-rect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/rect": "1.1.1" + }, + "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", + "version": "1.2.8" + }, + "node_modules/@radix-ui/react-portal": { + "dependencies": { + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "version": "1.1.9" + }, + "node_modules/@radix-ui/react-presence": { + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "version": "1.1.5" + }, + "node_modules/@radix-ui/react-primitive": { + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "version": "2.1.3" + }, + "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "version": "1.2.3" + }, + "node_modules/@radix-ui/react-progress": { + "dependencies": { + "@radix-ui/react-context": "1.1.3", + "@radix-ui/react-primitive": "2.1.4" + }, + "integrity": "sha512-+gISHcSPUJ7ktBy9RnTqbdKW78bcGke3t6taawyZ71pio1JewwGSJizycs7rLhGTvMJYCQB1DBK4KQsxs7U8dA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.8.tgz", + "version": "1.1.8" + }, + "node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-context": { + "integrity": "sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.3.tgz", + "version": "1.1.3" + }, + "node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-primitive": { + "dependencies": { + "@radix-ui/react-slot": "1.2.4" + }, + "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz", + "version": "2.1.4" + }, + "node_modules/@radix-ui/react-roving-focus": { + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", + "version": "1.1.11" + }, + "node_modules/@radix-ui/react-scroll-area": { + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz", + "version": "1.2.10" + }, + "node_modules/@radix-ui/react-select": { + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "integrity": "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz", + "version": "2.2.6" + }, + "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-slot": { + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "version": "1.2.3" + }, + "node_modules/@radix-ui/react-slot": { + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", + "version": "1.2.4" + }, + "node_modules/@radix-ui/react-tabs": { + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", + "version": "1.1.13" + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "version": "1.1.1" + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "version": "1.2.2" + }, + "node_modules/@radix-ui/react-use-effect-event": { + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "version": "0.0.2" + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "version": "1.1.1" + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "version": "1.1.1" + }, + "node_modules/@radix-ui/react-use-previous": { + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", + "version": "1.1.1" + }, + "node_modules/@radix-ui/react-use-rect": { + "dependencies": { + "@radix-ui/rect": "1.1.1" + }, + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", + "version": "1.1.1" + }, + "node_modules/@radix-ui/react-use-size": { + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", + "version": "1.1.1" + }, + "node_modules/@radix-ui/react-visually-hidden": { + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "version": "1.2.3" + }, + "node_modules/@radix-ui/rect": { + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", + "version": "1.1.1" + }, + "node_modules/@rollup/pluginutils": { + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "dev": true, + "engines": { + "node": ">=14.0.0" + }, + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "license": "MIT", + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "version": "5.3.0" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "cpu": [ + "arm" + ], + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-android-arm64": { + "cpu": [ + "arm64" + ], + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "cpu": [ + "arm64" + ], + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-darwin-x64": { + "cpu": [ + "x64" + ], + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "cpu": [ + "arm64" + ], + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "cpu": [ + "x64" + ], + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "cpu": [ + "arm" + ], + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "cpu": [ + "arm" + ], + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "cpu": [ + "arm64" + ], + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "cpu": [ + "arm64" + ], + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "cpu": [ + "loong64" + ], + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "cpu": [ + "loong64" + ], + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "cpu": [ + "ppc64" + ], + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "cpu": [ + "ppc64" + ], + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "cpu": [ + "riscv64" + ], + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "cpu": [ + "riscv64" + ], + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "cpu": [ + "s390x" + ], + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "cpu": [ + "x64" + ], + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "cpu": [ + "x64" + ], + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "cpu": [ + "x64" + ], + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "cpu": [ + "arm64" + ], + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "cpu": [ + "arm64" + ], + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "cpu": [ + "ia32" + ], + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "cpu": [ + "x64" + ], + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "cpu": [ + "x64" + ], + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/@rspack/binding": { + "dev": true, + "integrity": "sha512-qVTV1/UWpMSZktvK5A8+HolgR1Qf0nYR3Gg4Vax5x3/BcHDpwGZ0fbdFRUirGVWH/XwxZ81zoI6F2SZq7xbX+w==", + "license": "MIT", + "optionalDependencies": { + "@rspack/binding-darwin-arm64": "1.7.1", + "@rspack/binding-darwin-x64": "1.7.1", + "@rspack/binding-linux-arm64-gnu": "1.7.1", + "@rspack/binding-linux-arm64-musl": "1.7.1", + "@rspack/binding-linux-x64-gnu": "1.7.1", + "@rspack/binding-linux-x64-musl": "1.7.1", + "@rspack/binding-wasm32-wasi": "1.7.1", + "@rspack/binding-win32-arm64-msvc": "1.7.1", + "@rspack/binding-win32-ia32-msvc": "1.7.1", + "@rspack/binding-win32-x64-msvc": "1.7.1" + }, + "peer": true, + "resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.7.1.tgz", + "version": "1.7.1" + }, + "node_modules/@rspack/binding-darwin-arm64": { + "cpu": [ + "arm64" + ], + "dev": true, + "integrity": "sha512-3C0w0kfCHfgOH+AP/Dx1bm/b3AR/or5CmU22Abevek0m95ndU3iT902eLcm9JNiMQnDQLBQbolfj5P591t0oPg==", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.7.1.tgz", + "version": "1.7.1" + }, + "node_modules/@rspack/binding-darwin-x64": { + "cpu": [ + "x64" + ], + "dev": true, + "integrity": "sha512-HTrBpdw2gWwcpJ3c8h4JF8B1YRNvrFT+K620ycttrlu/HvI4/U770BBJ/ej36R/hdh59JvMCGe+w49FyXv6rzg==", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.7.1.tgz", + "version": "1.7.1" + }, + "node_modules/@rspack/binding-linux-arm64-gnu": { + "cpu": [ + "arm64" + ], + "dev": true, + "integrity": "sha512-BX9yAPCO0WBFyOzKl9bSXT/cH27nnOJp02smIQMxfv7RNfwGkJg5GgakYcuYG+9U1HEFitBSzmwS2+dxDcAxlg==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.7.1.tgz", + "version": "1.7.1" + }, + "node_modules/@rspack/binding-linux-arm64-musl": { + "cpu": [ + "arm64" + ], + "dev": true, + "integrity": "sha512-maBX19XyiVkxzh/NA79ALetCobc4zUyoWkWLeCGyW5xKzhPVFatJp+qCiHqHkqUZcgRo+1i5ihoZ2bXmelIeZg==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.7.1.tgz", + "version": "1.7.1" + }, + "node_modules/@rspack/binding-linux-x64-gnu": { + "cpu": [ + "x64" + ], + "dev": true, + "integrity": "sha512-8KJAeBLiWcN7zEc9aaS7LRJPZVtZuQU8mCsn+fRhdQDSc+a9FcTN8b6Lw29z8cejwbU6Gxr/8wk5XGexMWFaZA==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.7.1.tgz", + "version": "1.7.1" + }, + "node_modules/@rspack/binding-linux-x64-musl": { + "cpu": [ + "x64" + ], + "dev": true, + "integrity": "sha512-Gn9x5vhKRELvSoZ3ZjquY8eWtCXur0OsYnZ2/ump8mofM6IDaL7Qqu3Hf4Kud31PDH0tfz0jWf9piX32HHPmgg==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.7.1.tgz", + "version": "1.7.1" + }, + "node_modules/@rspack/binding-wasm32-wasi": { + "cpu": [ + "wasm32" + ], + "dependencies": { + "@napi-rs/wasm-runtime": "1.0.7" + }, + "dev": true, + "integrity": "sha512-2r9M5iVchmsFkp3sz7A5YnMm2TfpkB71LK3AoaRWKMfvf5oFky0GSGISYd2TCBASO+X2Qskaq+B24Szo8zH5FA==", + "license": "MIT", + "optional": true, + "peer": true, + "resolved": "https://registry.npmjs.org/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.7.1.tgz", + "version": "1.7.1" + }, + "node_modules/@rspack/binding-win32-arm64-msvc": { + "cpu": [ + "arm64" + ], + "dev": true, + "integrity": "sha512-/WIHp982yqqqAuiz2WLtf1ofo9d1lHDGZJ7flxFllb1iMgnUeSRyX6stxEi11K3Rg6pQa7FdCZGKX/engyj2bw==", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.7.1.tgz", + "version": "1.7.1" + }, + "node_modules/@rspack/binding-win32-ia32-msvc": { + "cpu": [ + "ia32" + ], + "dev": true, + "integrity": "sha512-Kpela29n+kDGGsss6q/3qTd6n9VW7TOQaiA7t1YLdCCl8qqcdKlz/vWjFMd2MqgcSGC/16PvChE4sgpUvryfCQ==", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.7.1.tgz", + "version": "1.7.1" + }, + "node_modules/@rspack/binding-win32-x64-msvc": { + "cpu": [ + "x64" + ], + "dev": true, + "integrity": "sha512-B/y4MWqP2Xeto1/HV0qtZNOMPSLrEVOqi2b7JSIXG/bhlf+3IAkDzEEoHs+ZikLR4C8hMaS0pVJsDGKFmGzC9A==", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.7.1.tgz", + "version": "1.7.1" + }, + "node_modules/@rspack/core": { + "dependencies": { + "@module-federation/runtime-tools": "0.22.0", + "@rspack/binding": "1.7.1", + "@rspack/lite-tapable": "1.1.0" + }, + "dev": true, + "engines": { + "node": ">=18.12.0" + }, + "integrity": "sha512-kRxfY8RRa6nU3/viDvAIP6CRpx+0rfXFRonPL0pHBx8u6HhV7m9rLEyaN6MWsLgNIAWkleFGb7tdo4ux2ljRJQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@swc/helpers": ">=0.5.1" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.7.1.tgz", + "version": "1.7.1" + }, + "node_modules/@rspack/core/node_modules/@module-federation/error-codes": { + "dev": true, + "integrity": "sha512-xF9SjnEy7vTdx+xekjPCV5cIHOGCkdn3pIxo9vU7gEZMIw0SvAEdsy6Uh17xaCpm8V0FWvR0SZoK9Ik6jGOaug==", + "license": "MIT", + "peer": true, + "resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.22.0.tgz", + "version": "0.22.0" + }, + "node_modules/@rspack/core/node_modules/@module-federation/runtime": { + "dependencies": { + "@module-federation/error-codes": "0.22.0", + "@module-federation/runtime-core": "0.22.0", + "@module-federation/sdk": "0.22.0" + }, + "dev": true, + "integrity": "sha512-38g5iPju2tPC3KHMPxRKmy4k4onNp6ypFPS1eKGsNLUkXgHsPMBFqAjDw96iEcjri91BrahG4XcdyKi97xZzlA==", + "license": "MIT", + "peer": true, + "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.22.0.tgz", + "version": "0.22.0" + }, + "node_modules/@rspack/core/node_modules/@module-federation/runtime-core": { + "dependencies": { + "@module-federation/error-codes": "0.22.0", + "@module-federation/sdk": "0.22.0" + }, + "dev": true, + "integrity": "sha512-GR1TcD6/s7zqItfhC87zAp30PqzvceoeDGYTgF3Vx2TXvsfDrhP6Qw9T4vudDQL3uJRne6t7CzdT29YyVxlgIA==", + "license": "MIT", + "peer": true, + "resolved": "https://registry.npmjs.org/@module-federation/runtime-core/-/runtime-core-0.22.0.tgz", + "version": "0.22.0" + }, + "node_modules/@rspack/core/node_modules/@module-federation/runtime-tools": { + "dependencies": { + "@module-federation/runtime": "0.22.0", + "@module-federation/webpack-bundler-runtime": "0.22.0" + }, + "dev": true, + "integrity": "sha512-4ScUJ/aUfEernb+4PbLdhM/c60VHl698Gn1gY21m9vyC1Ucn69fPCA1y2EwcCB7IItseRMoNhdcWQnzt/OPCNA==", + "license": "MIT", + "peer": true, + "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.22.0.tgz", + "version": "0.22.0" + }, + "node_modules/@rspack/core/node_modules/@module-federation/sdk": { + "dev": true, + "integrity": "sha512-x4aFNBKn2KVQRuNVC5A7SnrSCSqyfIWmm1DvubjbO9iKFe7ith5niw8dqSFBekYBg2Fwy+eMg4sEFNVvCAdo6g==", + "license": "MIT", + "peer": true, + "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.22.0.tgz", + "version": "0.22.0" + }, + "node_modules/@rspack/core/node_modules/@module-federation/webpack-bundler-runtime": { + "dependencies": { + "@module-federation/runtime": "0.22.0", + "@module-federation/sdk": "0.22.0" + }, + "dev": true, + "integrity": "sha512-aM8gCqXu+/4wBmJtVeMeeMN5guw3chf+2i6HajKtQv7SJfxV/f4IyNQJUeUQu9HfiAZHjqtMV5Lvq/Lvh8LdyA==", + "license": "MIT", + "peer": true, + "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.22.0.tgz", + "version": "0.22.0" + }, + "node_modules/@rspack/lite-tapable": { + "dev": true, + "integrity": "sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw==", + "license": "MIT", + "peer": true, + "resolved": "https://registry.npmjs.org/@rspack/lite-tapable/-/lite-tapable-1.1.0.tgz", + "version": "1.1.0" + }, + "node_modules/@tailwindcss/node": { + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.6.1", + "lightningcss": "1.30.2", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.18" + }, + "integrity": "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/node/node_modules/jiti": { + "bin": { + "jiti": "lib/jiti-cli.mjs" + }, + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "version": "2.6.1" + }, + "node_modules/@tailwindcss/oxide": { + "engines": { + "node": ">= 10" + }, + "integrity": "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==", + "license": "MIT", + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.18", + "@tailwindcss/oxide-darwin-arm64": "4.1.18", + "@tailwindcss/oxide-darwin-x64": "4.1.18", + "@tailwindcss/oxide-freebsd-x64": "4.1.18", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.18", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.18", + "@tailwindcss/oxide-linux-x64-musl": "4.1.18", + "@tailwindcss/oxide-wasm32-wasi": "4.1.18", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.18" + }, + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">= 10" + }, + "integrity": "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==", + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">= 10" + }, + "integrity": "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">= 10" + }, + "integrity": "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">= 10" + }, + "integrity": "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==", + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "cpu": [ + "arm" + ], + "engines": { + "node": ">= 10" + }, + "integrity": "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">= 10" + }, + "integrity": "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">= 10" + }, + "integrity": "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">= 10" + }, + "integrity": "sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">= 10" + }, + "integrity": "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.0", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "integrity": "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==", + "license": "MIT", + "optional": true, + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">= 10" + }, + "integrity": "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">= 10" + }, + "integrity": "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tailwindcss/typography": { + "dependencies": { + "postcss-selector-parser": "6.0.10" + }, + "dev": true, + "integrity": "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" + }, + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.19.tgz", + "version": "0.5.19" + }, + "node_modules/@tailwindcss/vite": { + "dependencies": { + "@tailwindcss/node": "4.1.18", + "@tailwindcss/oxide": "4.1.18", + "tailwindcss": "4.1.18" + }, + "integrity": "sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==", + "license": "MIT", + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7" + }, + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/@tanstack/history": { + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "integrity": "sha512-gMo/ReTUp0a3IOcZoI3hH6PLDC2R/5ELQ7P2yu9F6aEkA0wSQh+Q4qzMrtcKvF2ut0oE+16xWCGDo/TdYd6cEQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@tanstack/history/-/history-1.145.7.tgz", + "version": "1.145.7" + }, + "node_modules/@tanstack/react-router": { + "dependencies": { + "@tanstack/history": "1.145.7", + "@tanstack/react-store": "^0.8.0", + "@tanstack/router-core": "1.147.1", + "isbot": "^5.1.22", + "tiny-invariant": "^1.3.3", + "tiny-warning": "^1.0.3" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "integrity": "sha512-Fp9DoszYiIJclwxU43kyP/cqcWD418DPmV6yhmIOuVedsSMnfh2g7uRQ+bOoaWn996JjuU9yt/x48h66aCQSQA==", + "license": "MIT", + "peerDependencies": { + "react": ">=18.0.0 || >=19.0.0", + "react-dom": ">=18.0.0 || >=19.0.0" + }, + "resolved": "https://registry.npmjs.org/@tanstack/react-router/-/react-router-1.147.3.tgz", + "version": "1.147.3" + }, + "node_modules/@tanstack/react-store": { + "dependencies": { + "@tanstack/store": "0.8.0", + "use-sync-external-store": "^1.6.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "integrity": "sha512-1vG9beLIuB7q69skxK9r5xiLN3ztzIPfSQSs0GfeqWGO2tGIyInZx0x1COhpx97RKaONSoAb8C3dxacWksm1ow==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "resolved": "https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.8.0.tgz", + "version": "0.8.0" + }, + "node_modules/@tanstack/router-core": { + "dependencies": { + "@tanstack/history": "1.145.7", + "@tanstack/store": "^0.8.0", + "cookie-es": "^2.0.0", + "seroval": "^1.4.1", + "seroval-plugins": "^1.4.0", + "tiny-invariant": "^1.3.3", + "tiny-warning": "^1.0.3" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "integrity": "sha512-yf8o3CNgJVGO5JnIqiTe0y2eChxEM0w7TrEs1VSumL/zz2bQroYGNr1mOXJ2VeN+7YfJJwjEqq71P5CzWwMzRg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@tanstack/router-core/-/router-core-1.147.1.tgz", + "version": "1.147.1" + }, + "node_modules/@tanstack/store": { + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "integrity": "sha512-Om+BO0YfMZe//X2z0uLF2j+75nQga6TpTJgLJQBiq85aOyZNIhkCgleNcud2KQg4k4v9Y9l+Uhru3qWMPGTOzQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@tanstack/store/-/store-0.8.0.tgz", + "version": "0.8.0" + }, + "node_modules/@tybys/wasm-util": { + "dependencies": { + "tslib": "^2.4.0" + }, + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "license": "MIT", + "optional": true, + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "version": "0.10.1" + }, + "node_modules/@types/babel__core": { + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + }, + "dev": true, + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "version": "7.20.5" + }, + "node_modules/@types/babel__generator": { + "dependencies": { + "@babel/types": "^7.0.0" + }, + "dev": true, + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "version": "7.27.0" + }, + "node_modules/@types/babel__template": { + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + }, + "dev": true, + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "version": "7.4.4" + }, + "node_modules/@types/babel__traverse": { + "dependencies": { + "@babel/types": "^7.28.2" + }, + "dev": true, + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "version": "7.28.0" + }, + "node_modules/@types/estree": { + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "version": "1.0.8" + }, + "node_modules/@types/json-schema": { + "dev": true, + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "version": "7.0.15" + }, + "node_modules/@types/prop-types": { + "devOptional": true, + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "version": "15.7.15" + }, + "node_modules/@types/react": { + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + }, + "devOptional": true, + "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz", + "version": "18.2.79" + }, + "node_modules/@types/react-dom": { + "dependencies": { + "@types/react": "*" + }, + "devOptional": true, + "integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz", + "version": "18.2.25" + }, + "node_modules/@types/semver": { + "dev": true, + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "version": "7.5.8" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "license": "MIT", + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "version": "5.62.0" + }, + "node_modules/@typescript-eslint/parser": { + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "license": "BSD-2-Clause", + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "version": "5.62.0" + }, + "node_modules/@typescript-eslint/project-service": { + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.52.0", + "@typescript-eslint/types": "^8.52.0", + "debug": "^4.4.3" + }, + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==", + "license": "MIT", + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + }, + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.52.0.tgz", + "version": "8.52.0" + }, + "node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": { + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.52.0.tgz", + "version": "8.52.0" + }, + "node_modules/@typescript-eslint/scope-manager": { + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "version": "5.62.0" + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==", + "license": "MIT", + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + }, + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.52.0.tgz", + "version": "8.52.0" + }, + "node_modules/@typescript-eslint/type-utils": { + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "license": "MIT", + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "version": "5.62.0" + }, + "node_modules/@typescript-eslint/types": { + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "version": "5.62.0" + }, + "node_modules/@typescript-eslint/typescript-estree": { + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "license": "BSD-2-Clause", + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "version": "5.62.0" + }, + "node_modules/@typescript-eslint/utils": { + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "license": "MIT", + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "version": "5.62.0" + }, + "node_modules/@typescript-eslint/visitor-keys": { + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "version": "5.62.0" + }, + "node_modules/@ungap/structured-clone": { + "dev": true, + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "version": "1.3.0" + }, + "node_modules/@vitejs/plugin-react": { + "dependencies": { + "@babel/core": "^7.23.5", + "@babel/plugin-transform-react-jsx-self": "^7.23.3", + "@babel/plugin-transform-react-jsx-source": "^7.23.3", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.0" + }, + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", + "license": "MIT", + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + }, + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", + "version": "4.2.1" + }, + "node_modules/accepts": { + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "version": "1.3.8" + }, + "node_modules/acorn": { + "bin": { + "acorn": "bin/acorn" + }, + "dev": true, + "engines": { + "node": ">=0.4.0" + }, + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "version": "8.15.0" + }, + "node_modules/acorn-jsx": { + "dev": true, + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "version": "5.3.2" + }, + "node_modules/adm-zip": { + "dev": true, + "engines": { + "node": ">=12.0" + }, + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", + "version": "0.5.16" + }, + "node_modules/ajv": { + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "version": "6.12.6" + }, + "node_modules/ajv-formats": { + "dependencies": { + "ajv": "^8.0.0" + }, + "dev": true, + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "version": "2.1.1" + }, + "node_modules/ajv-formats/node_modules/ajv": { + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "version": "8.17.1" + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "dev": true, + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "version": "1.0.0" + }, + "node_modules/ansi-colors": { + "dev": true, + "engines": { + "node": ">=6" + }, + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "version": "4.1.3" + }, + "node_modules/ansi-regex": { + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "version": "5.0.1" + }, + "node_modules/ansi-styles": { + "dependencies": { + "color-convert": "^2.0.1" + }, + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + }, + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "version": "4.3.0" + }, + "node_modules/argparse": { + "dev": true, + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "version": "2.0.1" + }, + "node_modules/aria-hidden": { + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "version": "1.2.6" + }, + "node_modules/array-union": { + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "version": "2.1.0" + }, + "node_modules/asynckit": { + "dev": true, + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "version": "0.4.0" + }, + "node_modules/at-least-node": { + "dev": true, + "engines": { + "node": ">= 4.0.0" + }, + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "version": "1.0.0" + }, + "node_modules/axios": { + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + }, + "dev": true, + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "version": "1.13.2" + }, + "node_modules/balanced-match": { + "dev": true, + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "version": "1.0.2" + }, + "node_modules/baseline-browser-mapping": { + "bin": { + "baseline-browser-mapping": "dist/cli.js" + }, + "dev": true, + "integrity": "sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==", + "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz", + "version": "2.9.14" + }, + "node_modules/brace-expansion": { + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + }, + "dev": true, + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "version": "1.1.12" + }, + "node_modules/braces": { + "dependencies": { + "fill-range": "^7.1.1" + }, + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "version": "3.0.3" + }, + "node_modules/browserslist": { + "bin": { + "browserslist": "cli.js" + }, + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "dev": true, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "version": "4.28.1" + }, + "node_modules/btoa": { + "bin": { + "btoa": "bin/btoa.js" + }, + "dev": true, + "engines": { + "node": ">= 0.4.0" + }, + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "license": "(MIT OR Apache-2.0)", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "version": "1.2.1" + }, + "node_modules/call-bind-apply-helpers": { + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "version": "1.0.2" + }, + "node_modules/callsites": { + "dev": true, + "engines": { + "node": ">=6" + }, + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "version": "3.1.0" + }, + "node_modules/caniuse-lite": { + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "integrity": "sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==", + "license": "CC-BY-4.0", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz", + "version": "1.0.30001764" + }, + "node_modules/chalk": { + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "version": "3.0.0" + }, + "node_modules/class-variance-authority": { + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + }, + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "version": "0.7.1" + }, + "node_modules/clsx": { + "engines": { + "node": ">=6" + }, + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "version": "2.1.1" + }, + "node_modules/color-convert": { + "dependencies": { + "color-name": "~1.1.4" + }, + "dev": true, + "engines": { + "node": ">=7.0.0" + }, + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "version": "2.0.1" + }, + "node_modules/color-name": { + "dev": true, + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "version": "1.1.4" + }, + "node_modules/combined-stream": { + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "dev": true, + "engines": { + "node": ">= 0.8" + }, + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "version": "1.0.8" + }, + "node_modules/commander": { + "dev": true, + "engines": { + "node": ">=16" + }, + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "version": "11.1.0" + }, + "node_modules/concat-map": { + "dev": true, + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "version": "0.0.1" + }, + "node_modules/content-disposition": { + "dependencies": { + "safe-buffer": "5.2.1" + }, + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "version": "0.5.4" + }, + "node_modules/content-type": { + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "version": "1.0.5" + }, + "node_modules/convert-source-map": { + "dev": true, + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "version": "2.0.0" + }, + "node_modules/cookie-es": { + "integrity": "sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.0.tgz", + "version": "2.0.0" + }, + "node_modules/cookies": { + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "dev": true, + "engines": { + "node": ">= 0.8" + }, + "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", + "version": "0.9.1" + }, + "node_modules/cron-parser": { + "dependencies": { + "luxon": "^3.2.1" + }, + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz", + "version": "4.9.0" + }, + "node_modules/cross-spawn": { + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "dev": true, + "engines": { + "node": ">= 8" + }, + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "version": "7.0.6" + }, + "node_modules/cssesc": { + "bin": { + "cssesc": "bin/cssesc" + }, + "dev": true, + "engines": { + "node": ">=4" + }, + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "version": "3.0.0" + }, + "node_modules/csstype": { + "devOptional": true, + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "version": "3.2.3" + }, + "node_modules/date-format": { + "dev": true, + "engines": { + "node": ">=4.0" + }, + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "version": "4.0.14" + }, + "node_modules/debug": { + "dependencies": { + "ms": "^2.1.3" + }, + "dev": true, + "engines": { + "node": ">=6.0" + }, + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "version": "4.4.3" + }, + "node_modules/deep-equal": { + "dev": true, + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "version": "1.0.1" + }, + "node_modules/deep-is": { + "dev": true, + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "version": "0.1.4" + }, + "node_modules/defu": { + "dev": true, + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "version": "6.1.4" + }, + "node_modules/delayed-stream": { + "dev": true, + "engines": { + "node": ">=0.4.0" + }, + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "version": "1.0.0" + }, + "node_modules/delegates": { + "dev": true, + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "version": "1.0.0" + }, + "node_modules/depd": { + "dev": true, + "engines": { + "node": ">= 0.8" + }, + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "version": "2.0.0" + }, + "node_modules/destroy": { + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + }, + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "version": "1.2.0" + }, + "node_modules/detect-libc": { + "engines": { + "node": ">=8" + }, + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "version": "2.1.2" + }, + "node_modules/detect-node-es": { + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "version": "1.1.0" + }, + "node_modules/dir-glob": { + "dependencies": { + "path-type": "^4.0.0" + }, + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "version": "3.0.1" + }, + "node_modules/doctrine": { + "dependencies": { + "esutils": "^2.0.2" + }, + "dev": true, + "engines": { + "node": ">=6.0.0" + }, + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "version": "3.0.0" + }, + "node_modules/dunder-proto": { + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "version": "1.0.1" + }, + "node_modules/ee-first": { + "dev": true, + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "version": "1.1.1" + }, + "node_modules/electron-to-chromium": { + "dev": true, + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "version": "1.5.267" + }, + "node_modules/encodeurl": { + "dev": true, + "engines": { + "node": ">= 0.8" + }, + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "version": "2.0.0" + }, + "node_modules/enhanced-resolve": { + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", + "version": "5.18.4" + }, + "node_modules/es-define-property": { + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "version": "1.0.1" + }, + "node_modules/es-errors": { + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "version": "1.3.0" + }, + "node_modules/es-object-atoms": { + "dependencies": { + "es-errors": "^1.3.0" + }, + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "version": "1.1.1" + }, + "node_modules/es-set-tostringtag": { + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "version": "2.1.0" + }, + "node_modules/esbuild": { + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "hasInstallScript": true, + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "license": "MIT", + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + }, + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/escalade": { + "dev": true, + "engines": { + "node": ">=6" + }, + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "version": "3.2.0" + }, + "node_modules/escape-html": { + "dev": true, + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "version": "1.0.3" + }, + "node_modules/escape-string-regexp": { + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "version": "4.0.0" + }, + "node_modules/eslint": { + "bin": { + "eslint": "bin/eslint.js" + }, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "version": "8.57.1" + }, + "node_modules/eslint-plugin-react-hooks": { + "dev": true, + "engines": { + "node": ">=10" + }, + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "license": "MIT", + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + }, + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "version": "4.6.2" + }, + "node_modules/eslint-plugin-react-refresh": { + "dev": true, + "integrity": "sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==", + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + }, + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.26.tgz", + "version": "0.4.26" + }, + "node_modules/eslint-scope": { + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "dev": true, + "engines": { + "node": ">=8.0.0" + }, + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "version": "5.1.1" + }, + "node_modules/eslint-visitor-keys": { + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "version": "3.4.3" + }, + "node_modules/eslint/node_modules/chalk": { + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + }, + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "version": "4.1.2" + }, + "node_modules/eslint/node_modules/eslint-scope": { + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "version": "7.2.2" + }, + "node_modules/eslint/node_modules/estraverse": { + "dev": true, + "engines": { + "node": ">=4.0" + }, + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "version": "5.3.0" + }, + "node_modules/espree": { + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "version": "9.6.1" + }, + "node_modules/esquery": { + "dependencies": { + "estraverse": "^5.1.0" + }, + "dev": true, + "engines": { + "node": ">=0.10" + }, + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "version": "1.7.0" + }, + "node_modules/esquery/node_modules/estraverse": { + "dev": true, + "engines": { + "node": ">=4.0" + }, + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "version": "5.3.0" + }, + "node_modules/esrecurse": { + "dependencies": { + "estraverse": "^5.2.0" + }, + "dev": true, + "engines": { + "node": ">=4.0" + }, + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "version": "4.3.0" + }, + "node_modules/esrecurse/node_modules/estraverse": { + "dev": true, + "engines": { + "node": ">=4.0" + }, + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "version": "5.3.0" + }, + "node_modules/estraverse": { + "dev": true, + "engines": { + "node": ">=4.0" + }, + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "version": "4.3.0" + }, + "node_modules/estree-walker": { + "dev": true, + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "version": "2.0.2" + }, + "node_modules/esutils": { + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "version": "2.0.3" + }, + "node_modules/expand-tilde": { + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "version": "2.0.2" + }, + "node_modules/fast-deep-equal": { + "dev": true, + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "version": "3.1.3" + }, + "node_modules/fast-glob": { + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "dev": true, + "engines": { + "node": ">=8.6.0" + }, + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "version": "3.3.3" + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "dependencies": { + "is-glob": "^4.0.1" + }, + "dev": true, + "engines": { + "node": ">= 6" + }, + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "version": "5.1.2" + }, + "node_modules/fast-json-stable-stringify": { + "dev": true, + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "version": "2.1.0" + }, + "node_modules/fast-levenshtein": { + "dev": true, + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "version": "2.0.6" + }, + "node_modules/fast-uri": { + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "version": "3.1.0" + }, + "node_modules/fastq": { + "dependencies": { + "reusify": "^1.0.4" + }, + "dev": true, + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "version": "1.20.1" + }, + "node_modules/fdir": { + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "version": "6.5.0" + }, + "node_modules/file-entry-cache": { + "dependencies": { + "flat-cache": "^3.0.4" + }, + "dev": true, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "version": "6.0.1" + }, + "node_modules/fill-range": { + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "version": "7.1.1" + }, + "node_modules/find-file-up": { + "dependencies": { + "resolve-dir": "^1.0.1" + }, + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-qVdaUhYO39zmh28/JLQM5CoYN9byEOKEH4qfa8K1eNV17W0UUMJ9WgbR/hHFH+t5rcl+6RTb5UC7ck/I+uRkpQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-2.0.1.tgz", + "version": "2.0.1" + }, + "node_modules/find-pkg": { + "dependencies": { + "find-file-up": "^2.0.1" + }, + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-WgZ+nKbELDa6N3i/9nrHeNznm+lY3z4YfhDDWgW+5P0pdmMj26bxaxU11ookgY3NyP9GC7HvZ9etp0jRFqGEeQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-2.0.0.tgz", + "version": "2.0.0" + }, + "node_modules/find-up": { + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "version": "5.0.0" + }, + "node_modules/flat-cache": { + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "dev": true, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "version": "3.2.0" + }, + "node_modules/flatted": { + "dev": true, + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "version": "3.3.3" + }, + "node_modules/follow-redirects": { + "dev": true, + "engines": { + "node": ">=4.0" + }, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "license": "MIT", + "peerDependenciesMeta": { + "debug": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "version": "1.15.11" + }, + "node_modules/form-data": { + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "dev": true, + "engines": { + "node": ">= 6" + }, + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "version": "4.0.5" + }, + "node_modules/fresh": { + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "version": "0.5.2" + }, + "node_modules/fs-extra": { + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "dev": true, + "engines": { + "node": ">=10" + }, + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "version": "9.1.0" + }, + "node_modules/fs.realpath": { + "dev": true, + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "version": "1.0.0" + }, + "node_modules/fsevents": { + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + }, + "hasInstallScript": true, + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "version": "2.3.3" + }, + "node_modules/function-bind": { + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "version": "1.1.2" + }, + "node_modules/gensync": { + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "version": "1.0.0-beta.2" + }, + "node_modules/get-intrinsic": { + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "version": "1.3.0" + }, + "node_modules/get-nonce": { + "engines": { + "node": ">=6" + }, + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "version": "1.0.1" + }, + "node_modules/get-proto": { + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "version": "1.0.1" + }, + "node_modules/glob": { + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "version": "7.2.3" + }, + "node_modules/glob-parent": { + "dependencies": { + "is-glob": "^4.0.3" + }, + "dev": true, + "engines": { + "node": ">=10.13.0" + }, + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "version": "6.0.2" + }, + "node_modules/global-modules": { + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "version": "1.0.0" + }, + "node_modules/global-prefix": { + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "version": "1.0.2" + }, + "node_modules/global-prefix/node_modules/which": { + "bin": { + "which": "bin/which" + }, + "dependencies": { + "isexe": "^2.0.0" + }, + "dev": true, + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "version": "1.3.1" + }, + "node_modules/globals": { + "dependencies": { + "type-fest": "^0.20.2" + }, + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "version": "13.24.0" + }, + "node_modules/globby": { + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "version": "11.1.0" + }, + "node_modules/gopd": { + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "version": "1.2.0" + }, + "node_modules/graceful-fs": { + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "version": "4.2.11" + }, + "node_modules/graphemer": { + "dev": true, + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "version": "1.4.0" + }, + "node_modules/has-flag": { + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "version": "4.0.0" + }, + "node_modules/has-symbols": { + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "version": "1.1.0" + }, + "node_modules/has-tostringtag": { + "dependencies": { + "has-symbols": "^1.0.3" + }, + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "version": "1.0.2" + }, + "node_modules/hasown": { + "dependencies": { + "function-bind": "^1.1.2" + }, + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "version": "2.0.2" + }, + "node_modules/homedir-polyfill": { + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "version": "1.0.3" + }, + "node_modules/html-parse-stringify": { + "dependencies": { + "void-elements": "3.1.0" + }, + "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", + "version": "3.0.1" + }, + "node_modules/http-assert": { + "dependencies": { + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" + }, + "dev": true, + "engines": { + "node": ">= 0.8" + }, + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "version": "1.5.0" + }, + "node_modules/http-assert/node_modules/depd": { + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "version": "1.1.2" + }, + "node_modules/http-assert/node_modules/http-errors": { + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "version": "1.8.1" + }, + "node_modules/http-assert/node_modules/statuses": { + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "version": "1.5.0" + }, + "node_modules/http-errors": { + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "dev": true, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + }, + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "version": "2.0.1" + }, + "node_modules/i18next": { + "dependencies": { + "@babel/runtime": "^7.28.4" + }, + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "integrity": "sha512-hRkpEblXXcXSNbw8mBNq9042OEetgyB/ahc/X17uV/khPwzV+uB8RHceHh3qavyrkPJvmXFKXME2Sy1E0KjAfw==", + "license": "MIT", + "peerDependencies": { + "typescript": "^5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.7.4.tgz", + "version": "25.7.4" + }, + "node_modules/ignore": { + "dev": true, + "engines": { + "node": ">= 4" + }, + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "version": "5.3.2" + }, + "node_modules/import-fresh": { + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "version": "3.3.1" + }, + "node_modules/imurmurhash": { + "dev": true, + "engines": { + "node": ">=0.8.19" + }, + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "version": "0.1.4" + }, + "node_modules/inflight": { + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + }, + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "version": "1.0.6" + }, + "node_modules/inherits": { + "dev": true, + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "version": "2.0.4" + }, + "node_modules/ini": { + "dev": true, + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "version": "1.3.8" + }, + "node_modules/is-core-module": { + "dependencies": { + "hasown": "^2.0.2" + }, + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "version": "2.16.1" + }, + "node_modules/is-extglob": { + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "version": "2.1.1" + }, + "node_modules/is-glob": { + "dependencies": { + "is-extglob": "^2.1.1" + }, + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "version": "4.0.3" + }, + "node_modules/is-number": { + "dev": true, + "engines": { + "node": ">=0.12.0" + }, + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "version": "7.0.0" + }, + "node_modules/is-path-inside": { + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "version": "3.0.3" + }, + "node_modules/is-windows": { + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "version": "1.0.2" + }, + "node_modules/isbot": { + "engines": { + "node": ">=18" + }, + "integrity": "sha512-VNfjM73zz2IBZmdShMfAUg10prm6t7HFUQmNAEOAVS4YH92ZrZcvkMcGX6cIgBJAzWDzPent/EeAtYEHNPNPBQ==", + "license": "Unlicense", + "resolved": "https://registry.npmjs.org/isbot/-/isbot-5.1.32.tgz", + "version": "5.1.32" + }, + "node_modules/isexe": { + "dev": true, + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "version": "2.0.0" + }, + "node_modules/isomorphic-ws": { + "dev": true, + "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "license": "MIT", + "peerDependencies": { + "ws": "*" + }, + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", + "version": "5.0.0" + }, + "node_modules/jiti": { + "bin": { + "jiti": "lib/jiti-cli.mjs" + }, + "dev": true, + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "version": "2.4.2" + }, + "node_modules/js-tokens": { + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "version": "4.0.0" + }, + "node_modules/js-yaml": { + "bin": { + "js-yaml": "bin/js-yaml.js" + }, + "dependencies": { + "argparse": "^2.0.1" + }, + "dev": true, + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "version": "4.1.1" + }, + "node_modules/jsesc": { + "bin": { + "jsesc": "bin/jsesc" + }, + "dev": true, + "engines": { + "node": ">=6" + }, + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "version": "3.1.0" + }, + "node_modules/json-buffer": { + "dev": true, + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "version": "3.0.1" + }, + "node_modules/json-schema-traverse": { + "dev": true, + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "version": "0.4.1" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "dev": true, + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "version": "1.0.1" + }, + "node_modules/json5": { + "bin": { + "json5": "lib/cli.js" + }, + "dev": true, + "engines": { + "node": ">=6" + }, + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "version": "2.2.3" + }, + "node_modules/jsonfile": { + "dependencies": { + "universalify": "^2.0.0" + }, + "dev": true, + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + }, + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "version": "6.2.0" + }, + "node_modules/keygrip": { + "dependencies": { + "tsscmp": "1.0.6" + }, + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "version": "1.1.0" + }, + "node_modules/keyv": { + "dependencies": { + "json-buffer": "3.0.1" + }, + "dev": true, + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "version": "4.5.4" + }, + "node_modules/koa": { + "dependencies": { + "accepts": "^1.3.8", + "content-disposition": "~0.5.4", + "content-type": "^1.0.5", + "cookies": "~0.9.1", + "delegates": "^1.0.0", + "destroy": "^1.2.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.5.0", + "http-errors": "^2.0.0", + "koa-compose": "^4.1.0", + "mime-types": "^3.0.1", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "dev": true, + "engines": { + "node": ">= 18" + }, + "integrity": "sha512-MeuwbCoN1daWS32/Ni5qkzmrOtQO2qrnfdxDHjrm6s4b59yG4nexAJ0pTEFyzjLp0pBVO80CZp0vW8Ze30Ebow==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/koa/-/koa-3.0.3.tgz", + "version": "3.0.3" + }, + "node_modules/koa-compose": { + "dev": true, + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "version": "4.1.0" + }, + "node_modules/koa/node_modules/mime-db": { + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "version": "1.54.0" + }, + "node_modules/koa/node_modules/mime-types": { + "dependencies": { + "mime-db": "^1.54.0" + }, + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + }, + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "version": "3.0.2" + }, + "node_modules/levn": { + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "dev": true, + "engines": { + "node": ">= 0.8.0" + }, + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "version": "0.4.1" + }, + "node_modules/lightningcss": { + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", + "license": "MPL-2.0", + "optionalDependencies": { + "lightningcss-android-arm64": "1.30.2", + "lightningcss-darwin-arm64": "1.30.2", + "lightningcss-darwin-x64": "1.30.2", + "lightningcss-freebsd-x64": "1.30.2", + "lightningcss-linux-arm-gnueabihf": "1.30.2", + "lightningcss-linux-arm64-gnu": "1.30.2", + "lightningcss-linux-arm64-musl": "1.30.2", + "lightningcss-linux-x64-gnu": "1.30.2", + "lightningcss-linux-x64-musl": "1.30.2", + "lightningcss-win32-arm64-msvc": "1.30.2", + "lightningcss-win32-x64-msvc": "1.30.2" + }, + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", + "version": "1.30.2" + }, + "node_modules/lightningcss-android-arm64": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", + "version": "1.30.2" + }, + "node_modules/lightningcss-darwin-arm64": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", + "version": "1.30.2" + }, + "node_modules/lightningcss-darwin-x64": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", + "version": "1.30.2" + }, + "node_modules/lightningcss-freebsd-x64": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", + "version": "1.30.2" + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "cpu": [ + "arm" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", + "version": "1.30.2" + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", + "version": "1.30.2" + }, + "node_modules/lightningcss-linux-arm64-musl": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", + "version": "1.30.2" + }, + "node_modules/lightningcss-linux-x64-gnu": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", + "version": "1.30.2" + }, + "node_modules/lightningcss-linux-x64-musl": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", + "version": "1.30.2" + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "cpu": [ + "arm64" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", + "version": "1.30.2" + }, + "node_modules/lightningcss-win32-x64-msvc": { + "cpu": [ + "x64" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", + "version": "1.30.2" + }, + "node_modules/locate-path": { + "dependencies": { + "p-locate": "^5.0.0" + }, + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "version": "6.0.0" + }, + "node_modules/lodash.clonedeepwith": { + "dev": true, + "integrity": "sha512-QRBRSxhbtsX1nc0baxSkkK5WlVTTm/s48DSukcGcWZwIyI8Zz+lB+kFiELJXtzfH4Aj6kMWQ1VWW4U5uUDgZMA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz", + "version": "4.5.0" + }, + "node_modules/lodash.merge": { + "dev": true, + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "version": "4.6.2" + }, + "node_modules/log4js": { + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "dev": true, + "engines": { + "node": ">=8.0" + }, + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "version": "6.9.1" + }, + "node_modules/long-timeout": { + "dev": true, + "integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", + "version": "0.1.1" + }, + "node_modules/loose-envify": { + "bin": { + "loose-envify": "cli.js" + }, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "version": "1.4.0" + }, + "node_modules/lru-cache": { + "dependencies": { + "yallist": "^3.0.2" + }, + "dev": true, + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "version": "5.1.1" + }, + "node_modules/lucide-react": { + "integrity": "sha512-g9WCjmfwqbexSnZE+2cl21PCfXOcqnGeWeMTNAOGEfpPbm/ZF4YIq77Z8qWrxbu660EKuLB4nSLggoKnCb+isw==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.552.0.tgz", + "version": "0.552.0" + }, + "node_modules/luxon": { + "dev": true, + "engines": { + "node": ">=12" + }, + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "version": "3.7.2" + }, + "node_modules/magic-string": { + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + }, + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "version": "0.30.21" + }, + "node_modules/math-intrinsics": { + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "version": "1.1.0" + }, + "node_modules/media-typer": { + "dev": true, + "engines": { + "node": ">= 0.8" + }, + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "version": "1.1.0" + }, + "node_modules/merge2": { + "dev": true, + "engines": { + "node": ">= 8" + }, + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "version": "1.4.1" + }, + "node_modules/micromatch": { + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "dev": true, + "engines": { + "node": ">=8.6" + }, + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "version": "4.0.8" + }, + "node_modules/micromatch/node_modules/picomatch": { + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + }, + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "version": "2.3.1" + }, + "node_modules/mime-db": { + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "version": "1.52.0" + }, + "node_modules/mime-types": { + "dependencies": { + "mime-db": "1.52.0" + }, + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "version": "2.1.35" + }, + "node_modules/minimatch": { + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "dev": true, + "engines": { + "node": "*" + }, + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "version": "3.1.2" + }, + "node_modules/ms": { + "dev": true, + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "version": "2.1.3" + }, + "node_modules/nanoid": { + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "version": "3.3.11" + }, + "node_modules/natural-compare": { + "dev": true, + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "version": "1.4.0" + }, + "node_modules/natural-compare-lite": { + "dev": true, + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "version": "1.4.0" + }, + "node_modules/negotiator": { + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "version": "0.6.3" + }, + "node_modules/node-releases": { + "dev": true, + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "version": "2.0.27" + }, + "node_modules/node-schedule": { + "dependencies": { + "cron-parser": "^4.2.0", + "long-timeout": "0.1.1", + "sorted-array-functions": "^1.3.0" + }, + "dev": true, + "engines": { + "node": ">=6" + }, + "integrity": "sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/node-schedule/-/node-schedule-2.1.1.tgz", + "version": "2.1.1" + }, + "node_modules/on-finished": { + "dependencies": { + "ee-first": "1.1.1" + }, + "dev": true, + "engines": { + "node": ">= 0.8" + }, + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "version": "2.4.1" + }, + "node_modules/once": { + "dependencies": { + "wrappy": "1" + }, + "dev": true, + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "version": "1.4.0" + }, + "node_modules/optionator": { + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "dev": true, + "engines": { + "node": ">= 0.8.0" + }, + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "version": "0.9.4" + }, + "node_modules/p-limit": { + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "version": "3.1.0" + }, + "node_modules/p-locate": { + "dependencies": { + "p-limit": "^3.0.2" + }, + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "version": "5.0.0" + }, + "node_modules/parent-module": { + "dependencies": { + "callsites": "^3.0.0" + }, + "dev": true, + "engines": { + "node": ">=6" + }, + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "version": "1.0.1" + }, + "node_modules/parse-passwd": { + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "version": "1.0.0" + }, + "node_modules/parseurl": { + "dev": true, + "engines": { + "node": ">= 0.8" + }, + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "version": "1.3.3" + }, + "node_modules/path-exists": { + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "version": "4.0.0" + }, + "node_modules/path-is-absolute": { + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "version": "1.0.1" + }, + "node_modules/path-key": { + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "version": "3.1.1" + }, + "node_modules/path-parse": { + "dev": true, + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "version": "1.0.7" + }, + "node_modules/path-type": { + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "version": "4.0.0" + }, + "node_modules/pathe": { + "dev": true, + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "version": "1.1.2" + }, + "node_modules/picocolors": { + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "version": "1.1.1" + }, + "node_modules/picomatch": { + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + }, + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "version": "4.0.3" + }, + "node_modules/postcss": { + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "version": "8.5.6" + }, + "node_modules/postcss-selector-parser": { + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "dev": true, + "engines": { + "node": ">=4" + }, + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "version": "6.0.10" + }, + "node_modules/prelude-ls": { + "dev": true, + "engines": { + "node": ">= 0.8.0" + }, + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "version": "1.2.1" + }, + "node_modules/prettier": { + "bin": { + "prettier": "bin/prettier.cjs" + }, + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + }, + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "version": "3.6.2" + }, + "node_modules/proxy-from-env": { + "dev": true, + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "version": "1.1.0" + }, + "node_modules/punycode": { + "dev": true, + "engines": { + "node": ">=6" + }, + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "version": "2.3.1" + }, + "node_modules/queue-microtask": { + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "version": "1.2.3" + }, + "node_modules/rambda": { + "dev": true, + "integrity": "sha512-++euMfxnl7OgaEKwXh9QqThOjMeta2HH001N1v4mYQzBjJBnmXBh2BCK6dZAbICFVXOFUVD3xFG0R3ZPU0mxXw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-9.4.2.tgz", + "version": "9.4.2" + }, + "node_modules/react": { + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "version": "18.3.1" + }, + "node_modules/react-dom": { + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "peerDependencies": { + "react": "^18.3.1" + }, + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "version": "18.3.1" + }, + "node_modules/react-i18next": { + "dependencies": { + "@babel/runtime": "^7.28.4", + "html-parse-stringify": "^3.0.1", + "use-sync-external-store": "^1.6.0" + }, + "integrity": "sha512-GG/SBVxx9dvrO1uCs8VYdKfOP8NEBUhNP+2VDQLCifRJ8DL1qPq296k2ACNGyZMDe7iyIlz/LMJTQOs8HXSRvw==", + "license": "MIT", + "peerDependencies": { + "i18next": ">= 25.6.2", + "react": ">= 16.8.0", + "typescript": "^5" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + }, + "typescript": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-16.5.2.tgz", + "version": "16.5.2" + }, + "node_modules/react-refresh": { + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "version": "0.14.2" + }, + "node_modules/react-remove-scroll": { + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "version": "2.7.2" + }, + "node_modules/react-remove-scroll-bar": { + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "version": "2.3.8" + }, + "node_modules/react-style-singleton": { + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "version": "2.2.3" + }, + "node_modules/require-from-string": { + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "version": "2.0.2" + }, + "node_modules/resolve": { + "bin": { + "resolve": "bin/resolve" + }, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "version": "1.22.8" + }, + "node_modules/resolve-dir": { + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "version": "1.0.1" + }, + "node_modules/resolve-from": { + "dev": true, + "engines": { + "node": ">=4" + }, + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "version": "4.0.0" + }, + "node_modules/reusify": { + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + }, + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "version": "1.1.0" + }, + "node_modules/rfdc": { + "dev": true, + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "version": "1.4.1" + }, + "node_modules/rimraf": { + "bin": { + "rimraf": "bin.js" + }, + "dependencies": { + "glob": "^7.1.3" + }, + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "version": "3.0.2" + }, + "node_modules/rollup": { + "bin": { + "rollup": "dist/bin/rollup" + }, + "dependencies": { + "@types/estree": "1.0.8" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", + "license": "MIT", + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", + "fsevents": "~2.3.2" + }, + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", + "version": "4.55.1" + }, + "node_modules/run-parallel": { + "dependencies": { + "queue-microtask": "^1.2.2" + }, + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "version": "1.2.0" + }, + "node_modules/safe-buffer": { + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "version": "5.2.1" + }, + "node_modules/scheduler": { + "dependencies": { + "loose-envify": "^1.1.0" + }, + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "version": "0.23.2" + }, + "node_modules/schema-utils": { + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "dev": true, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "version": "4.3.3" + }, + "node_modules/schema-utils/node_modules/ajv": { + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "version": "8.17.1" + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "dev": true, + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.8.2" + }, + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "version": "5.1.0" + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "dev": true, + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "version": "1.0.0" + }, + "node_modules/semver": { + "bin": { + "semver": "bin/semver.js" + }, + "dev": true, + "engines": { + "node": ">=10" + }, + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "version": "7.6.3" + }, + "node_modules/seroval": { + "engines": { + "node": ">=10" + }, + "integrity": "sha512-N3HEHRCZYn3cQbsC4B5ldj9j+tHdf4JZoYPlcI4rRYu0Xy4qN8MQf1Z08EibzB0WpgRG5BGK08FTrmM66eSzKQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.4.2.tgz", + "version": "1.4.2" + }, + "node_modules/seroval-plugins": { + "engines": { + "node": ">=10" + }, + "integrity": "sha512-X7p4MEDTi+60o2sXZ4bnDBhgsUYDSkQEvzYZuJyFqWg9jcoPsHts5nrg5O956py2wyt28lUrBxk0M0/wU8URpA==", + "license": "MIT", + "peerDependencies": { + "seroval": "^1.0" + }, + "resolved": "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.4.2.tgz", + "version": "1.4.2" + }, + "node_modules/setprototypeof": { + "dev": true, + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "version": "1.2.0" + }, + "node_modules/shebang-command": { + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "version": "2.0.0" + }, + "node_modules/shebang-regex": { + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "version": "3.0.0" + }, + "node_modules/slash": { + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "version": "3.0.0" + }, + "node_modules/sorted-array-functions": { + "dev": true, + "integrity": "sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz", + "version": "1.3.0" + }, + "node_modules/source-map-js": { + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "version": "1.2.1" + }, + "node_modules/statuses": { + "dev": true, + "engines": { + "node": ">= 0.8" + }, + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "version": "2.0.2" + }, + "node_modules/streamroller": { + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "dev": true, + "engines": { + "node": ">=8.0" + }, + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "version": "3.1.5" + }, + "node_modules/streamroller/node_modules/fs-extra": { + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "dev": true, + "engines": { + "node": ">=6 <7 || >=8" + }, + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "version": "8.1.0" + }, + "node_modules/streamroller/node_modules/jsonfile": { + "dev": true, + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + }, + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "version": "4.0.0" + }, + "node_modules/streamroller/node_modules/universalify": { + "dev": true, + "engines": { + "node": ">= 4.0.0" + }, + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "version": "0.1.2" + }, + "node_modules/strip-ansi": { + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "version": "6.0.1" + }, + "node_modules/strip-json-comments": { + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "version": "3.1.1" + }, + "node_modules/supports-color": { + "dependencies": { + "has-flag": "^4.0.0" + }, + "dev": true, + "engines": { + "node": ">=8" + }, + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "version": "7.2.0" + }, + "node_modules/supports-preserve-symlinks-flag": { + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "version": "1.0.0" + }, + "node_modules/tailwind-merge": { + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + }, + "integrity": "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz", + "version": "3.4.0" + }, + "node_modules/tailwindcss": { + "integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz", + "version": "4.1.18" + }, + "node_modules/tapable": { + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "version": "2.3.0" + }, + "node_modules/text-table": { + "dev": true, + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "version": "0.2.0" + }, + "node_modules/tiny-invariant": { + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "version": "1.3.3" + }, + "node_modules/tiny-warning": { + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "version": "1.0.3" + }, + "node_modules/tinyglobby": { + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + }, + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "version": "0.2.15" + }, + "node_modules/to-regex-range": { + "dependencies": { + "is-number": "^7.0.0" + }, + "dev": true, + "engines": { + "node": ">=8.0" + }, + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "version": "5.0.1" + }, + "node_modules/toidentifier": { + "dev": true, + "engines": { + "node": ">=0.6" + }, + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "version": "1.0.1" + }, + "node_modules/ts-api-utils": { + "dev": true, + "engines": { + "node": ">=18.12" + }, + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "license": "MIT", + "peerDependencies": { + "typescript": ">=4.8.4" + }, + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "version": "2.4.0" + }, + "node_modules/tslib": { + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "version": "2.8.1" + }, + "node_modules/tsscmp": { + "dev": true, + "engines": { + "node": ">=0.6.x" + }, + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "version": "1.0.6" + }, + "node_modules/tsutils": { + "dependencies": { + "tslib": "^1.8.1" + }, + "dev": true, + "engines": { + "node": ">= 6" + }, + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "license": "MIT", + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + }, + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "version": "3.21.0" + }, + "node_modules/tsutils/node_modules/tslib": { + "dev": true, + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "version": "1.14.1" + }, + "node_modules/tw-animate-css": { + "dev": true, + "funding": { + "url": "https://github.com/sponsors/Wombosvideo" + }, + "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz", + "version": "1.4.0" + }, + "node_modules/type-check": { + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "dev": true, + "engines": { + "node": ">= 0.8.0" + }, + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "version": "0.4.0" + }, + "node_modules/type-fest": { + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "version": "0.20.2" + }, + "node_modules/type-is": { + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "version": "2.0.1" + }, + "node_modules/type-is/node_modules/mime-db": { + "dev": true, + "engines": { + "node": ">= 0.6" + }, + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "version": "1.54.0" + }, + "node_modules/type-is/node_modules/mime-types": { + "dependencies": { + "mime-db": "^1.54.0" + }, + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + }, + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "version": "3.0.2" + }, + "node_modules/typescript": { + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "devOptional": true, + "engines": { + "node": ">=14.17" + }, + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "version": "5.4.5" + }, + "node_modules/typescript-eslint": { + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.52.0", + "@typescript-eslint/parser": "8.52.0", + "@typescript-eslint/typescript-estree": "8.52.0", + "@typescript-eslint/utils": "8.52.0" + }, + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==", + "license": "MIT", + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + }, + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.52.0.tgz", + "version": "8.52.0" + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.52.0", + "@typescript-eslint/type-utils": "8.52.0", + "@typescript-eslint/utils": "8.52.0", + "@typescript-eslint/visitor-keys": "8.52.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.4.0" + }, + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==", + "license": "MIT", + "peerDependencies": { + "@typescript-eslint/parser": "^8.52.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + }, + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.52.0.tgz", + "version": "8.52.0" + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { + "dependencies": { + "@typescript-eslint/scope-manager": "8.52.0", + "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/typescript-estree": "8.52.0", + "@typescript-eslint/visitor-keys": "8.52.0", + "debug": "^4.4.3" + }, + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==", + "license": "MIT", + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + }, + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.52.0.tgz", + "version": "8.52.0" + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/scope-manager": { + "dependencies": { + "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/visitor-keys": "8.52.0" + }, + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.52.0.tgz", + "version": "8.52.0" + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/type-utils": { + "dependencies": { + "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/typescript-estree": "8.52.0", + "@typescript-eslint/utils": "8.52.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" + }, + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==", + "license": "MIT", + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + }, + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.52.0.tgz", + "version": "8.52.0" + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": { + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.52.0.tgz", + "version": "8.52.0" + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": { + "dependencies": { + "@typescript-eslint/project-service": "8.52.0", + "@typescript-eslint/tsconfig-utils": "8.52.0", + "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/visitor-keys": "8.52.0", + "debug": "^4.4.3", + "minimatch": "^9.0.5", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" + }, + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==", + "license": "MIT", + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + }, + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.52.0.tgz", + "version": "8.52.0" + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.52.0", + "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/typescript-estree": "8.52.0" + }, + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==", + "license": "MIT", + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + }, + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.52.0.tgz", + "version": "8.52.0" + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/visitor-keys": { + "dependencies": { + "@typescript-eslint/types": "8.52.0", + "eslint-visitor-keys": "^4.2.1" + }, + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "integrity": "sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.52.0.tgz", + "version": "8.52.0" + }, + "node_modules/typescript-eslint/node_modules/brace-expansion": { + "dependencies": { + "balanced-match": "^1.0.0" + }, + "dev": true, + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "version": "2.0.2" + }, + "node_modules/typescript-eslint/node_modules/eslint-visitor-keys": { + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "version": "4.2.1" + }, + "node_modules/typescript-eslint/node_modules/ignore": { + "dev": true, + "engines": { + "node": ">= 4" + }, + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "version": "7.0.5" + }, + "node_modules/typescript-eslint/node_modules/minimatch": { + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "version": "9.0.5" + }, + "node_modules/typescript-eslint/node_modules/semver": { + "bin": { + "semver": "bin/semver.js" + }, + "dev": true, + "engines": { + "node": ">=10" + }, + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "version": "7.7.3" + }, + "node_modules/universalify": { + "dev": true, + "engines": { + "node": ">= 10.0.0" + }, + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "version": "2.0.1" + }, + "node_modules/upath": { + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + }, + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "version": "2.0.1" + }, + "node_modules/update-browserslist-db": { + "bin": { + "update-browserslist-db": "cli.js" + }, + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "license": "MIT", + "peerDependencies": { + "browserslist": ">= 4.21.0" + }, + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "version": "1.2.3" + }, + "node_modules/uri-js": { + "dependencies": { + "punycode": "^2.1.0" + }, + "dev": true, + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "version": "4.4.1" + }, + "node_modules/use-callback-ref": { + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "version": "1.3.3" + }, + "node_modules/use-sidecar": { + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "version": "1.1.3" + }, + "node_modules/use-sync-external-store": { + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "version": "1.6.0" + }, + "node_modules/util-deprecate": { + "dev": true, + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "version": "1.0.2" + }, + "node_modules/vary": { + "dev": true, + "engines": { + "node": ">= 0.8" + }, + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "version": "1.1.2" + }, + "node_modules/vite": { + "bin": { + "vite": "bin/vite.js" + }, + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", + "license": "MIT", + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", + "version": "5.2.10" + }, + "node_modules/void-elements": { + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "version": "3.1.0" + }, + "node_modules/which": { + "bin": { + "node-which": "bin/node-which" + }, + "dependencies": { + "isexe": "^2.0.0" + }, + "dev": true, + "engines": { + "node": ">= 8" + }, + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "version": "2.0.2" + }, + "node_modules/word-wrap": { + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "version": "1.2.5" + }, + "node_modules/wrappy": { + "dev": true, + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "version": "1.0.2" + }, + "node_modules/ws": { + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + }, + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "version": "8.18.0" + }, + "node_modules/yallist": { + "dev": true, + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "version": "3.1.1" + }, + "node_modules/yocto-queue": { + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "version": "0.1.0" + } + }, + "requires": true, + "version": "0.0.0" +} diff --git a/ui/package.json b/ui/package.json index 1af9aa8..36dfd7a 100644 --- a/ui/package.json +++ b/ui/package.json @@ -14,17 +14,20 @@ "clsx": "^2.1.1", "i18next": "^25.6.2", "lucide-react": "^0.552.0", + "next-themes": "^0.4.6", "react": "^18.3.1", "react-dom": "^18.3.1", "react-i18next": "^16.3.3", + "sonner": "^2.0.7", "tailwind-merge": "^3.3.1", - "tailwindcss": "^4.1.16" + "tailwindcss": "^4.1.16", + "vaul": "^1.1.2" }, "devDependencies": { "@module-federation/enhanced": "^0.21.2", "@module-federation/vite": "1.7.1", "@tailwindcss/typography": "^0.5.19", - "@types/react": "18.2.79", + "@types/react": "^18.2.79", "@types/react-dom": "18.2.25", "@typescript-eslint/eslint-plugin": "^5.61.0", "@typescript-eslint/parser": "^5.61.0", diff --git a/ui/pnpm-lock.yaml b/ui/pnpm-lock.yaml index 64ac32a..e77e929 100644 --- a/ui/pnpm-lock.yaml +++ b/ui/pnpm-lock.yaml @@ -49,6 +49,9 @@ importers: lucide-react: specifier: ^0.552.0 version: 0.552.0(react@18.3.1) + next-themes: + specifier: ^0.4.6 + version: 0.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -58,12 +61,18 @@ importers: react-i18next: specifier: ^16.3.3 version: 16.3.3(i18next@25.6.2(typescript@5.4.5))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5) + sonner: + specifier: ^2.0.7 + version: 2.0.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tailwind-merge: specifier: ^3.3.1 version: 3.3.1 tailwindcss: specifier: ^4.1.16 version: 4.1.16 + vaul: + specifier: ^1.1.2 + version: 1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: "@module-federation/vite": specifier: 1.7.1 @@ -72,7 +81,7 @@ importers: specifier: ^0.5.19 version: 0.5.19(tailwindcss@4.1.16) "@types/react": - specifier: 18.2.79 + specifier: ^18.2.79 version: 18.2.79 "@types/react-dom": specifier: 18.2.25 @@ -3690,6 +3699,15 @@ packages: } engines: { node: ">= 0.6" } + next-themes@0.4.6: + resolution: + { + integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==, + } + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + node-releases@2.0.27: resolution: { @@ -4098,6 +4116,15 @@ packages: } engines: { node: ">=8" } + sonner@2.0.7: + resolution: + { + integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==, + } + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + sorted-array-functions@1.3.0: resolution: { @@ -4396,6 +4423,15 @@ packages: } engines: { node: ">= 0.8" } + vaul@1.1.2: + resolution: + { + integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + vite@5.2.10: resolution: { @@ -6709,6 +6745,11 @@ snapshots: negotiator@0.6.3: {} + next-themes@0.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + node-releases@2.0.27: {} node-schedule@2.1.1: @@ -6931,6 +6972,11 @@ snapshots: slash@3.0.0: {} + sonner@2.0.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + sorted-array-functions@1.3.0: {} source-map-js@1.2.1: {} @@ -7068,6 +7114,15 @@ snapshots: vary@1.1.2: {} + vaul@1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + "@radix-ui/react-dialog": 1.1.15(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - "@types/react" + - "@types/react-dom" + vite@5.2.10(@types/node@24.10.0)(lightningcss@1.30.2): dependencies: esbuild: 0.20.2 diff --git a/ui/public/assets/Onboarding/AUTO_IMPORT.png b/ui/public/assets/Onboarding/AUTO_IMPORT.png new file mode 100644 index 0000000..97705b8 Binary files /dev/null and b/ui/public/assets/Onboarding/AUTO_IMPORT.png differ diff --git a/ui/public/assets/Onboarding/RETURN.png b/ui/public/assets/Onboarding/RETURN.png new file mode 100644 index 0000000..2d15c23 Binary files /dev/null and b/ui/public/assets/Onboarding/RETURN.png differ diff --git a/ui/public/assets/Onboarding/WELCOME.png b/ui/public/assets/Onboarding/WELCOME.png new file mode 100644 index 0000000..5f7a708 Binary files /dev/null and b/ui/public/assets/Onboarding/WELCOME.png differ diff --git a/ui/public/assets/Onboarding/android/default/auto_connect.webp b/ui/public/assets/Onboarding/android/default/auto_connect.webp new file mode 100644 index 0000000..4c0a4f5 Binary files /dev/null and b/ui/public/assets/Onboarding/android/default/auto_connect.webp differ diff --git a/ui/public/assets/Onboarding/android/default/auto_import.png b/ui/public/assets/Onboarding/android/default/auto_import.png new file mode 100644 index 0000000..76951cd Binary files /dev/null and b/ui/public/assets/Onboarding/android/default/auto_import.png differ diff --git a/ui/public/assets/Onboarding/android/default/auto_import_connect.png b/ui/public/assets/Onboarding/android/default/auto_import_connect.png new file mode 100644 index 0000000..4438225 Binary files /dev/null and b/ui/public/assets/Onboarding/android/default/auto_import_connect.png differ diff --git a/ui/public/assets/Onboarding/android/fdf/Group 2.png b/ui/public/assets/Onboarding/android/fdf/Group 2.png new file mode 100644 index 0000000..5f7a708 Binary files /dev/null and b/ui/public/assets/Onboarding/android/fdf/Group 2.png differ diff --git a/ui/public/assets/Onboarding/android/fdf/Group 4.png b/ui/public/assets/Onboarding/android/fdf/Group 4.png new file mode 100644 index 0000000..97705b8 Binary files /dev/null and b/ui/public/assets/Onboarding/android/fdf/Group 4.png differ diff --git a/ui/public/assets/Onboarding/android/fdf/auto_import.png b/ui/public/assets/Onboarding/android/fdf/auto_import.png new file mode 100644 index 0000000..8cd10b8 Binary files /dev/null and b/ui/public/assets/Onboarding/android/fdf/auto_import.png differ diff --git a/ui/public/assets/Onboarding/android/fdf/auto_import_connect.png b/ui/public/assets/Onboarding/android/fdf/auto_import_connect.png new file mode 100644 index 0000000..fc48071 Binary files /dev/null and b/ui/public/assets/Onboarding/android/fdf/auto_import_connect.png differ diff --git a/ui/public/assets/Onboarding/android/fdf/auto_import_fi.png b/ui/public/assets/Onboarding/android/fdf/auto_import_fi.png new file mode 100644 index 0000000..d6972b8 Binary files /dev/null and b/ui/public/assets/Onboarding/android/fdf/auto_import_fi.png differ diff --git a/ui/public/assets/Onboarding/android/tak/atak_home(1).png b/ui/public/assets/Onboarding/android/tak/atak_home(1).png new file mode 100644 index 0000000..caeb6b3 Binary files /dev/null and b/ui/public/assets/Onboarding/android/tak/atak_home(1).png differ diff --git a/ui/public/assets/Onboarding/android/tak/atak_home.png b/ui/public/assets/Onboarding/android/tak/atak_home.png new file mode 100644 index 0000000..18616cf Binary files /dev/null and b/ui/public/assets/Onboarding/android/tak/atak_home.png differ diff --git a/ui/public/assets/Onboarding/android/tak/atak_install.png b/ui/public/assets/Onboarding/android/tak/atak_install.png new file mode 100644 index 0000000..d07dcba Binary files /dev/null and b/ui/public/assets/Onboarding/android/tak/atak_install.png differ diff --git a/ui/public/assets/Onboarding/android/tak/atak_plugin_load.png b/ui/public/assets/Onboarding/android/tak/atak_plugin_load.png new file mode 100644 index 0000000..2213c4f Binary files /dev/null and b/ui/public/assets/Onboarding/android/tak/atak_plugin_load.png differ diff --git a/ui/public/assets/Onboarding/android/tak/atak_plugins(1).png b/ui/public/assets/Onboarding/android/tak/atak_plugins(1).png new file mode 100644 index 0000000..85caccc Binary files /dev/null and b/ui/public/assets/Onboarding/android/tak/atak_plugins(1).png differ diff --git a/ui/public/assets/Onboarding/android/tak/atak_plugins.png b/ui/public/assets/Onboarding/android/tak/atak_plugins.png new file mode 100644 index 0000000..5250ef9 Binary files /dev/null and b/ui/public/assets/Onboarding/android/tak/atak_plugins.png differ diff --git a/ui/public/assets/Onboarding/general/download.png b/ui/public/assets/Onboarding/general/download.png new file mode 100644 index 0000000..d3d641e Binary files /dev/null and b/ui/public/assets/Onboarding/general/download.png differ diff --git a/ui/public/assets/Onboarding/general/wintak.png b/ui/public/assets/Onboarding/general/wintak.png new file mode 100644 index 0000000..f07c62f Binary files /dev/null and b/ui/public/assets/Onboarding/general/wintak.png differ diff --git a/ui/public/assets/Onboarding/ios/download.png b/ui/public/assets/Onboarding/ios/download.png new file mode 100644 index 0000000..42066ab Binary files /dev/null and b/ui/public/assets/Onboarding/ios/download.png differ diff --git a/ui/public/assets/Onboarding/ios/itak_package.webp b/ui/public/assets/Onboarding/ios/itak_package.webp new file mode 100644 index 0000000..77f2282 Binary files /dev/null and b/ui/public/assets/Onboarding/ios/itak_package.webp differ diff --git a/ui/public/assets/Onboarding/ios/itak_pages.webp b/ui/public/assets/Onboarding/ios/itak_pages.webp new file mode 100644 index 0000000..66d1d3d Binary files /dev/null and b/ui/public/assets/Onboarding/ios/itak_pages.webp differ diff --git a/ui/public/assets/Onboarding/ios/itak_settings.webp b/ui/public/assets/Onboarding/ios/itak_settings.webp new file mode 100644 index 0000000..9698329 Binary files /dev/null and b/ui/public/assets/Onboarding/ios/itak_settings.webp differ diff --git a/ui/public/assets/Onboarding/ios/itak_sync1.webp b/ui/public/assets/Onboarding/ios/itak_sync1.webp new file mode 100644 index 0000000..a9f2696 Binary files /dev/null and b/ui/public/assets/Onboarding/ios/itak_sync1.webp differ diff --git a/ui/public/assets/Onboarding/ios/itak_sync2.webp b/ui/public/assets/Onboarding/ios/itak_sync2.webp new file mode 100644 index 0000000..7d8a633 Binary files /dev/null and b/ui/public/assets/Onboarding/ios/itak_sync2.webp differ diff --git a/ui/public/assets/Onboarding/ios/package_download.png b/ui/public/assets/Onboarding/ios/package_download.png new file mode 100644 index 0000000..4bf4a39 Binary files /dev/null and b/ui/public/assets/Onboarding/ios/package_download.png differ diff --git a/ui/public/themes/default/localization/en.json b/ui/public/themes/default/localization/en.json new file mode 100644 index 0000000..b43ee5c --- /dev/null +++ b/ui/public/themes/default/localization/en.json @@ -0,0 +1,6 @@ +{ + "common": { + "copyright": "\u00a9 2025 PVARKI. All rights reserved.", + "rmUi": "RM-UI, Logo, and Background Images \u00a9 PVARKI" + } +} diff --git a/ui/public/themes/default/localization/fi.json b/ui/public/themes/default/localization/fi.json new file mode 100644 index 0000000..4c964d0 --- /dev/null +++ b/ui/public/themes/default/localization/fi.json @@ -0,0 +1,6 @@ +{ + "common": { + "copyright": "\u00a9 2025 PVARKI. Kaikki oikeudet pid\u00e4tet\u00e4\u00e4n.", + "rmUi": "RM-UI, logo ja taustakuvat \u00a9 PVARKI" + } +} diff --git a/ui/public/themes/default/localization/sv.json b/ui/public/themes/default/localization/sv.json new file mode 100644 index 0000000..5ec6afa --- /dev/null +++ b/ui/public/themes/default/localization/sv.json @@ -0,0 +1,6 @@ +{ + "common": { + "copyright": "\u00a9 2025 PVARKI. Alla r\u00e4ttigheter f\u00f6rbeh\u00e5llna.", + "rmUi": "RM-UI, logotyp och bakgrundsbilder \u00a9 PVARKI" + } +} diff --git a/ui/src/App.tsx b/ui/src/App.tsx index a597e5e..0d7e435 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -1,5 +1,5 @@ import { TAK_Zip } from "./lib/interfaces"; -import { useEffect, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import enLang from "./locales/en.json"; @@ -11,7 +11,6 @@ import { createRoute, createRouter, Outlet, - redirect, RouterProvider, } from "@tanstack/react-router"; import { HomePage } from "./components/routes/HomePage"; @@ -22,6 +21,7 @@ import { IosPhasePage } from "./components/routes/IosPhasePage"; import { IosInstructionPage } from "./components/routes/IosInstructionPage"; import { WindowsInstructionPage } from "./components/routes/WindowsInstructionPage"; import { WindowsPhasePage } from "./components/routes/WindowsPhasePage"; +import { MetaData, MetadataProvider } from "./hooks/use-metadata"; const RootLayoutComponent = () => (
@@ -92,15 +92,19 @@ interface Props { data: { tak_zips: TAK_Zip[]; }; + meta: MetaData; } const PRODUCT_SHORTNAME = "tak"; -export default ({ data }: Props) => { +export default function App({ data, meta }: Props) { const [ready, setReady] = useState(false); const { t, i18n } = useTranslation(PRODUCT_SHORTNAME); - const router = createRouter({ routeTree, basepath: "/product/tak" }); + const router = useMemo( + () => createRouter({ routeTree, basepath: "/product/tak" }), + [data], + ); useEffect(() => { async function load() { @@ -115,8 +119,8 @@ export default ({ data }: Props) => { setReady(true); } - load(); - }, []); + void load(); + }, [i18n]); if (!ready) { return ( @@ -127,5 +131,9 @@ export default ({ data }: Props) => { ); } - return ; -}; + return ( + + + + ); +} diff --git a/ui/src/components/instructions/onboarding/OnboardingHandler.tsx b/ui/src/components/instructions/onboarding/OnboardingHandler.tsx new file mode 100644 index 0000000..6fbf58a --- /dev/null +++ b/ui/src/components/instructions/onboarding/OnboardingHandler.tsx @@ -0,0 +1,534 @@ +import { useState, useEffect, useCallback, useMemo } from "react"; +import { Drawer, DrawerContent } from "@/components/ui/drawer"; +import { Dialog, DialogContent, DialogTitle } from "@/components/ui/dialog"; +import { Button } from "@/components/ui/button"; +import { ChevronRight, ChevronLeft, Info } from "lucide-react"; +import { useIsMobile } from "@/hooks/use-mobile"; +import { toast } from "sonner"; +import { useTranslation } from "react-i18next"; +import useHealthCheck from "@/hooks/helpers/useHealthcheck"; +import { cn } from "@/lib/utils"; +import { AndroidDownload } from "./android/AndroidDownload"; +import { IosDownload } from "./ios/IosDownload"; +import { useMetadata } from "@/hooks/use-metadata"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; +import { detectPlatform, Platform } from "@/lib/detectPlatform"; + +const hashString = (str: string): string => { + let hash = 0; + for (let i = 0; i < str.length; i++) { + const char = str.charCodeAt(i); + hash = (hash << 5) - hash + char; + hash = hash & hash; + } + return Math.abs(hash).toString(36).padStart(8, "0").slice(0, 8); +}; + +interface OnboardingStep { + id: string; + title: string; + description: string; + image: string; + mobileImage?: string; + customComponent?: React.ComponentType; +} + +const ONBOARDING_STEPS: Record = { + [Platform.Android]: [ + { + id: "atak-welcome", + title: "onboarding.android.steps.tak-welcome.title", + description: "onboarding.android.steps.tak-welcome.description", + image: "/ui/tak/assets/Onboarding/WELCOME.png", + mobileImage: "/ui/tak/assets/Onboarding/WELCOME.png", + }, + { + id: "atak-download", + title: "onboarding.android.steps.tak-download.title", + description: "onboarding.android.steps.tak-download.description", + image: "/ui/tak/assets/Onboarding/android/tak/atak_install.png", + mobileImage: "/ui/tak/assets/Onboarding/android/tak/atak_install.png", + customComponent: AndroidDownload, + }, + { + id: "atak-return", + title: "onboarding.general.steps.return.title", + description: "onboarding.general.steps.return.description", + image: "/ui/tak/assets/Onboarding/RETURN.png", + mobileImage: "/ui/tak/assets/Onboarding/RETURN.png", + }, + { + id: "atak-auto-import", + title: "onboarding.android.steps.tak-auto-import.title", + description: "onboarding.android.steps.tak-auto-import.description", + image: "/ui/tak/assets/Onboarding/AUTO_IMPORT.png", + mobileImage: + "/ui/tak/assets/Onboarding/android/default/auto_connect.webp", + }, + { + id: "atak-home", + title: "onboarding.android.steps.tak-home.title", + description: "onboarding.android.steps.tak-home.description", + image: "/ui/tak/assets/Onboarding/android/tak/atak_home(1).png", + mobileImage: "/ui/tak/assets/Onboarding/android/tak/atak_home(1).png", + }, + { + id: "atak-plugins", + title: "onboarding.android.steps.tak-plugins.title", + description: "onboarding.android.steps.tak-plugins.description", + image: "/ui/tak/assets/Onboarding/android/tak/atak_plugins(1).png", + mobileImage: "/ui/tak/assets/Onboarding/android/tak/atak_plugins(1).png", + }, + { + id: "atak-data-sync", + title: "onboarding.android.steps.tak-data-sync.title", + description: "onboarding.android.steps.tak-data-sync.description", + image: "/ui/tak/assets/Onboarding/android/tak/atak_plugin_load.png", + mobileImage: "/ui/tak/assets/Onboarding/android/tak/atak_plugin_load.png", + }, + ], + [Platform.iOS]: [ + { + id: "ios-welcome", + title: "onboarding.ios.steps.welcome.title", + description: "onboarding.ios.steps.welcome.description", + image: "/ui/tak/assets/Onboarding/WELCOME.png", + mobileImage: "/ui/tak/assets/Onboarding/WELCOME.png", + }, + { + id: "ios-download", + title: "onboarding.ios.steps.tak-download.title", + description: "onboarding.ios.steps.tak-download.description", + image: "/ui/tak/assets/Onboarding/ios/download.png", + mobileImage: "/ui/tak/assets/Onboarding/ios/download.png", + customComponent: IosDownload, + }, + { + id: "ios-return", + title: "onboarding.general.steps.return.title", + description: "onboarding.general.steps.return.description", + image: "/ui/tak/assets/Onboarding/RETURN.png", + mobileImage: "/ui/tak/assets/Onboarding/RETURN.png", + }, + { + id: "ios-package", + title: "onboarding.ios.steps.tak-package.title", + description: "onboarding.ios.steps.tak-package.description", + image: "/ui/tak/assets/Onboarding/ios/package_download.png", + mobileImage: "/ui/tak/assets/Onboarding/ios/package_download.png", + }, + { + id: "ios-setup", + title: "onboarding.ios.steps.itak-setup.title", + description: "onboarding.ios.steps.itak-setup.description", + image: "/ui/tak/assets/Onboarding/ios/itak_pages.webp", + mobileImage: "/ui/tak/assets/Onboarding/ios/itak_pages.webp", + }, + { + id: "ios-settings", + title: "onboarding.ios.steps.itak-settings.title", + description: "onboarding.ios.steps.itak-settings.description", + image: "/ui/tak/assets/Onboarding/ios/itak_settings.webp", + mobileImage: "/ui/tak/assets/Onboarding/ios/itak_settings.webp", + }, + { + id: "ios-import", + title: "onboarding.ios.steps.itak-import.title", + description: "onboarding.ios.steps.itak-import.description", + image: "/ui/tak/assets/Onboarding/ios/itak_package.webp", + mobileImage: "/ui/tak/assets/Onboarding/ios/itak_package.webp", + }, + + { + id: "ios-sync1", + title: "onboarding.ios.steps.itak-sync1.title", + description: "onboarding.ios.steps.itak-sync1.description", + image: "/ui/tak/assets/Onboarding/ios/itak_sync1.webp", + mobileImage: "/ui/tak/assets/Onboarding/ios/itak_sync1.webp", + }, + { + id: "ios-sync2", + title: "onboarding.ios.steps.itak-sync2.title", + description: "onboarding.ios.steps.itak-sync2.description", + image: "/ui/tak/assets/Onboarding/ios/itak_sync2.webp", + mobileImage: "/ui/tak/assets/Onboarding/ios/itak_sync2.webp", + }, + ], + [Platform.Windows]: [ + { + id: "tak-welcome", + title: "onboarding.general.steps.welcome.title", + description: "onboarding.general.steps.welcome.description", + image: "/ui/tak/assets/Onboarding/WELCOME.png", + mobileImage: "/ui/tak/assets/Onboarding/WELCOME.png", + }, + { + id: "windows-import", + title: "onboarding.general.steps.install.title", + description: "onboarding.wintak.description", + image: "/ui/tak/assets/Onboarding/general/wintak.png", + mobileImage: "/ui/tak/assets/Onboarding/general/wintak.png", + }, + ], + [Platform.Tracker]: [ + { + id: "tracker-welcome", + title: "onboarding.general.steps.welcome.title", + description: "onboarding.general.steps.welcome.description", + image: "/ui/tak/assets/Onboarding/WELCOME.png", + mobileImage: "/ui/tak/assets/Onboarding/WELCOME.png", + }, + { + id: "tracker-import", + title: "onboarding.general.steps.install.title", + description: "onboarding.general.steps.install.description", + image: "/ui/tak/assets/Onboarding/general/download.png", + mobileImage: "/ui/tak/assets/Onboarding/general/download.png", + }, + ], +}; + +export function OnboardingHandler() { + const { t } = useTranslation("tak"); + const { deployment } = useHealthCheck(); + const isMobile = useIsMobile(); + const metadata = useMetadata(); + + const defaultPlatform = detectPlatform(); + const [platform, setPlatform] = useState(defaultPlatform); + + const [open, setOpen] = useState(false); + const [currentStep, setCurrentStep] = useState(0); + const [completed, setCompleted] = useState([]); + const [initialized, setInitialized] = useState(false); + + const [imageEnlarged, setImageEnlarged] = useState(false); + const [imageError, setImageError] = useState(false); + const [imageLoading, setImageLoading] = useState(true); + + const relevantSteps = useMemo( + () => ONBOARDING_STEPS[platform] || [], + [platform], + ); + + const storageKeys = useMemo(() => { + console.log("Storage key change"); + if (!metadata.callsign || !deployment) return null; + const deploymentHash = hashString(deployment); + const base = `${deploymentHash}-tak-onboarding-${metadata.callsign}-${platform}`; + return { + finished: `${base}-finished`, + steps: `${base}-steps`, + session: `${base}-session`, + platform: `${deploymentHash}-tak-onboarding-${metadata.callsign}-platform`, + }; + }, [deployment, metadata.callsign, platform]); + + useEffect(() => { + if (!storageKeys || initialized) return; + + const finished = localStorage.getItem(storageKeys.finished) === "true"; + const stepsRaw = localStorage.getItem(storageKeys.steps); + const sessionRaw = localStorage.getItem(storageKeys.session); + + let savedSteps: string[] = []; + if (stepsRaw) { + try { + savedSteps = JSON.parse(stepsRaw) as string[]; + setCompleted(savedSteps); + } catch (e) { + console.error(e); + } + } + + const firstIncomplete = relevantSteps.findIndex( + (s) => !savedSteps.includes(s.id), + ); + const targetStep = + firstIncomplete !== -1 + ? firstIncomplete + : Math.max(0, relevantSteps.length - 1); + + if (sessionRaw) { + try { + const { stepIndex } = JSON.parse(sessionRaw) as { stepIndex: number }; + const shouldRestoreStep = + stepIndex >= 0 && + stepIndex < relevantSteps.length && + !savedSteps.includes(relevantSteps[stepIndex].id); + setCurrentStep(shouldRestoreStep ? stepIndex : targetStep); + } catch (e) { + console.error(e); + setCurrentStep(targetStep); + } + } else { + setCurrentStep(targetStep); + } + + if (!finished && firstIncomplete !== -1) { + setOpen(true); + } + + setInitialized(true); + }, [storageKeys, initialized, relevantSteps]); + + useEffect(() => { + if (storageKeys && initialized) { + localStorage.setItem( + storageKeys.session, + JSON.stringify({ + stepIndex: currentStep, + }), + ); + } + }, [currentStep, storageKeys, initialized]); + + useEffect(() => { + if (!initialized || !storageKeys) return; + + setImageLoading(true); + setImageError(false); + + const stepsRaw = localStorage.getItem(storageKeys.steps); + if (stepsRaw) { + try { + const savedSteps = JSON.parse(stepsRaw) as string[]; + setCompleted(savedSteps); + + const firstIncomplete = relevantSteps.findIndex( + (s) => !savedSteps.includes(s.id), + ); + if (firstIncomplete !== -1) { + setCurrentStep(firstIncomplete); + } else { + setCurrentStep(0); + } + } catch (e) { + console.error(e); + setCurrentStep(0); + setCompleted([]); + } + } else { + setCurrentStep(0); + setCompleted([]); + } + }, [platform, initialized, storageKeys, relevantSteps]); + + const handleOpenChange = useCallback((newOpen: boolean) => { + setOpen(newOpen); + // Don't auto-complete steps when just closing the dialog + }, []); + + const handleNext = () => { + if (currentStep < relevantSteps.length - 1) { + setImageLoading(true); + setImageError(false); + setImageEnlarged(false); + setCurrentStep((prev) => prev + 1); + } + }; + + const handleComplete = () => { + const step = relevantSteps[currentStep]; + const nextCompleted = Array.from(new Set([...completed, step.id])); + setCompleted(nextCompleted); + + if (storageKeys) { + localStorage.setItem(storageKeys.steps, JSON.stringify(nextCompleted)); + if (currentStep === relevantSteps.length - 1) { + localStorage.setItem(storageKeys.finished, "true"); + setOpen(false); + toast.success(t("onboarding.completion")); + } else { + handleNext(); + } + } + }; + + if (!initialized || !storageKeys || isMobile === undefined) return null; + + const step = relevantSteps[currentStep]; + if (!step) return null; + + const progress = ((currentStep + 1) / relevantSteps.length) * 100; + const imageUrl = isMobile && step.mobileImage ? step.mobileImage : step.image; + + const contentComponent = ( +
+
+
+

{t(step.title)}

+

+ {t("onboarding.step")} {currentStep + 1} / {relevantSteps.length} +

+
+ +
+
+ +
!imageError && !imageLoading && setImageEnlarged(true)} + > + {imageLoading && !imageError && ( +
+
+
+ )} + Onboarding setImageLoading(false)} + onError={() => { + setImageError(true); + setImageLoading(false); + }} + /> +
+ +
+ {t(step.description)} + {step.customComponent && ( +
+ +
+ )} +
+
+ +
+ + +
+ +
+
+
+
+ ); + + return ( + <> + {!open && ( + + )} + + + + + Preview + + + + {isMobile ? ( + + {contentComponent} + + ) : ( + + + {contentComponent} + + + )} + + ); +} diff --git a/ui/src/components/instructions/onboarding/android/AndroidDownload.tsx b/ui/src/components/instructions/onboarding/android/AndroidDownload.tsx new file mode 100644 index 0000000..1d52167 --- /dev/null +++ b/ui/src/components/instructions/onboarding/android/AndroidDownload.tsx @@ -0,0 +1,32 @@ +import { useTranslation } from "react-i18next"; + +export const AndroidDownload = () => { + const { t } = useTranslation("tak"); + + return ( + + ); +}; diff --git a/ui/src/components/instructions/onboarding/ios/IosDownload.tsx b/ui/src/components/instructions/onboarding/ios/IosDownload.tsx new file mode 100644 index 0000000..6a87777 --- /dev/null +++ b/ui/src/components/instructions/onboarding/ios/IosDownload.tsx @@ -0,0 +1,31 @@ +import { useTranslation } from "react-i18next"; + +export const IosDownload = () => { + const { t } = useTranslation("tak"); + + return ( + + ); +}; diff --git a/ui/src/components/routes/HomePage.tsx b/ui/src/components/routes/HomePage.tsx index b6beaf9..ea8ad3a 100644 --- a/ui/src/components/routes/HomePage.tsx +++ b/ui/src/components/routes/HomePage.tsx @@ -1,6 +1,6 @@ import { detectPlatform, Platform } from "@/lib/detectPlatform"; import { TAK_Zip } from "@/lib/interfaces"; -import { useState } from "react"; +import { useState, useMemo, useCallback } from "react"; import { useTranslation } from "react-i18next"; import { Select, @@ -13,8 +13,9 @@ import { AndroidTab } from "../tabs/AndroidTab"; import { TrackerTab } from "../tabs/TrackerTab"; import { Spinner } from "../ui/spinner"; import { IosTab } from "../tabs/IosTab"; -import { useRouter, useRouterState } from "@tanstack/react-router"; +import { useRouter } from "@tanstack/react-router"; import { WindowsTab } from "../tabs/WindowsTab"; +import { OnboardingHandler } from "../instructions/onboarding/OnboardingHandler"; interface Data { tak_zips: TAK_Zip[]; @@ -30,18 +31,44 @@ const platformToIndex: Record = { const PRODUCT_SHORTNAME = "tak"; export const HomePage = () => { - //@ts-ignore const router = useRouter(); - const defaultPlatform = detectPlatform(); + const defaultPlatform = useMemo(() => detectPlatform(), []); const [platform, setPlatform] = useState(defaultPlatform); - const { t, i18n } = useTranslation(PRODUCT_SHORTNAME); + const { t } = useTranslation(PRODUCT_SHORTNAME); const data = router.options.context ? (router.options.context as Data) : undefined; + const handlePlatformChange = useCallback((value: string) => { + setPlatform(value as Platform); + }, []); + + const currentTab = useMemo(() => { + if (!data?.tak_zips) return null; + + switch (platform) { + case Platform.Android: + return ( + + ); + case Platform.iOS: + return ; + case Platform.Windows: + return ( + + ); + case Platform.Tracker: + return ( + + ); + default: + return null; + } + }, [platform, data?.tak_zips]); + return (
@@ -55,10 +82,7 @@ export const HomePage = () => {

{t("platform.choose")}

- @@ -83,26 +107,11 @@ export const HomePage = () => { -
- {platform === Platform.Android && ( - - )} - {platform === Platform.iOS && ( - - )} - {platform === Platform.Windows && ( - - )} - {platform === Platform.Tracker && ( - - )} -
+
{currentTab}
+
+ +
+
) : ( diff --git a/ui/src/components/tabs/AndroidTab.tsx b/ui/src/components/tabs/AndroidTab.tsx index 4730328..6bedbae 100644 --- a/ui/src/components/tabs/AndroidTab.tsx +++ b/ui/src/components/tabs/AndroidTab.tsx @@ -77,20 +77,19 @@ export function AndroidTab({ zip }: Props) { - ATAK Mission Package Auto Import + + {t("tabs.android.open_atak_dialog.title")} + - Click the button below to open in ATAK + {t("tabs.android.open_atak_dialog.description")} -
- When ATAK opens and asks about importing a package with a long link, - choose "Yes" -
+
{t("tabs.android.open_atak_dialog.note")}
diff --git a/ui/src/components/tabs/IosTab.tsx b/ui/src/components/tabs/IosTab.tsx index e52cf3a..a86f22e 100644 --- a/ui/src/components/tabs/IosTab.tsx +++ b/ui/src/components/tabs/IosTab.tsx @@ -26,6 +26,7 @@ export function IosTab({ zip }: Props) {

{t("tabs.ios.instructions_short")}

diff --git a/ui/src/components/ui/drawer.tsx b/ui/src/components/ui/drawer.tsx new file mode 100644 index 0000000..8848866 --- /dev/null +++ b/ui/src/components/ui/drawer.tsx @@ -0,0 +1,135 @@ +"use client"; + +import * as React from "react"; +import { Drawer as DrawerPrimitive } from "vaul"; + +import { cn } from "@/lib/utils"; + +function Drawer({ + ...props +}: React.ComponentProps) { + return ; +} + +function DrawerTrigger({ + ...props +}: React.ComponentProps) { + return ; +} + +function DrawerPortal({ + ...props +}: React.ComponentProps) { + return ; +} + +function DrawerClose({ + ...props +}: React.ComponentProps) { + return ; +} + +function DrawerOverlay({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function DrawerContent({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + + +
+ {children} + + + ); +} + +function DrawerHeader({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ); +} + +function DrawerFooter({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ); +} + +function DrawerTitle({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function DrawerDescription({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +export { + Drawer, + DrawerPortal, + DrawerOverlay, + DrawerTrigger, + DrawerClose, + DrawerContent, + DrawerHeader, + DrawerFooter, + DrawerTitle, + DrawerDescription, +}; diff --git a/ui/src/components/ui/sonner.tsx b/ui/src/components/ui/sonner.tsx new file mode 100644 index 0000000..c9cd094 --- /dev/null +++ b/ui/src/components/ui/sonner.tsx @@ -0,0 +1,38 @@ +import { + CircleCheckIcon, + InfoIcon, + Loader2Icon, + OctagonXIcon, + TriangleAlertIcon, +} from "lucide-react"; +import { useTheme } from "next-themes"; +import { Toaster as Sonner, type ToasterProps } from "sonner"; + +const Toaster = ({ ...props }: ToasterProps) => { + const { theme = "system" } = useTheme(); + + return ( + , + info: , + warning: , + error: , + loading: , + }} + style={ + { + "--normal-bg": "var(--popover)", + "--normal-text": "var(--popover-foreground)", + "--normal-border": "var(--border)", + "--border-radius": "var(--radius)", + } as React.CSSProperties + } + {...props} + /> + ); +}; + +export { Toaster }; diff --git a/ui/src/hooks/auth/useUserType.tsx b/ui/src/hooks/auth/useUserType.tsx new file mode 100644 index 0000000..7b5c08b --- /dev/null +++ b/ui/src/hooks/auth/useUserType.tsx @@ -0,0 +1,6 @@ +import { useContext } from "react"; +import { UserTypeContext } from "./userTypeContext"; + +export function useUserType() { + return useContext(UserTypeContext); +} diff --git a/ui/src/hooks/auth/userTypeContext.ts b/ui/src/hooks/auth/userTypeContext.ts new file mode 100644 index 0000000..8b318a2 --- /dev/null +++ b/ui/src/hooks/auth/userTypeContext.ts @@ -0,0 +1,27 @@ +import { createContext } from "react"; + +interface UserTypeContextProps { + userType: "admin" | "user" | null; + isLoading: boolean; + error: string | null; + authType: "mtls" | "jwt" | null; + otpVerified: boolean; + setOtpVerified: (verified: boolean) => void; + redirectTo?: string | null; + callsign: string | null; + isValidUser: boolean; +} + +export const UserTypeContext = createContext({ + userType: null, + isLoading: true, + error: null, + authType: null, + otpVerified: false, + setOtpVerified: () => { + // Placeholder function + }, + redirectTo: null, + callsign: null, + isValidUser: false, +}); diff --git a/ui/src/hooks/helpers/useHealthcheck.ts b/ui/src/hooks/helpers/useHealthcheck.ts new file mode 100644 index 0000000..5784077 --- /dev/null +++ b/ui/src/hooks/helpers/useHealthcheck.ts @@ -0,0 +1,35 @@ +import { useState, useEffect } from "react"; + +const useHealthCheck = () => { + const [fqdn, setFqdn] = useState(""); + const [version, setVersion] = useState(""); + const [deployment, setDeployment] = useState(""); + + interface HealthCheckResponse { + dns: string; + version: string; + deployment: string; + } + + useEffect(() => { + fetch("/api/v1/healthcheck") + .then((response) => { + if (!response.ok) { + throw new Error("Network response was not ok"); + } + return response.json(); + }) + .then((data: HealthCheckResponse) => { + setFqdn(data.dns); + setVersion(data.version); + setDeployment(data.deployment); + }) + .catch((error) => { + console.error("Failed to fetch health check data", error); + }); + }, []); + + return { fqdn, version, deployment }; +}; + +export default useHealthCheck; diff --git a/ui/src/hooks/use-metadata.tsx b/ui/src/hooks/use-metadata.tsx new file mode 100644 index 0000000..2a6787b --- /dev/null +++ b/ui/src/hooks/use-metadata.tsx @@ -0,0 +1,34 @@ +import { createContext, useContext, ReactNode, useMemo } from "react"; + +export interface MetaData { + theme: string; + callsign: string; +} + +const MetaContext = createContext( + undefined, +) as React.Context; + +export const MetadataProvider = ({ + children, + meta, +}: { + children: ReactNode; + meta: MetaData; +}) => { + const value = useMemo(() => meta, [meta.theme, meta.callsign]); + + return ( + + {children} + + ); +}; + +export const useMetadata = () => { + const context = useContext(MetaContext); + if (context === undefined) { + throw new Error("useMetadata must be used within a MetadataProvider"); + } + return context; +}; diff --git a/ui/src/hooks/use-mobile.tsx b/ui/src/hooks/use-mobile.tsx new file mode 100644 index 0000000..a93d583 --- /dev/null +++ b/ui/src/hooks/use-mobile.tsx @@ -0,0 +1,21 @@ +import * as React from "react"; + +const MOBILE_BREAKPOINT = 768; + +export function useIsMobile() { + const [isMobile, setIsMobile] = React.useState( + undefined, + ); + + React.useEffect(() => { + const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`); + const onChange = () => { + setIsMobile(window.innerWidth < MOBILE_BREAKPOINT); + }; + mql.addEventListener("change", onChange); + setIsMobile(window.innerWidth < MOBILE_BREAKPOINT); + return () => mql.removeEventListener("change", onChange); + }, []); + + return !!isMobile; +} diff --git a/ui/src/locales/en.json b/ui/src/locales/en.json index db49f88..a70cf52 100644 --- a/ui/src/locales/en.json +++ b/ui/src/locales/en.json @@ -6,6 +6,149 @@ "loading": { "user_data": "Loading user data..." }, + "onboarding": { + "android": { + "downloadFromPlayStore": "Download from Google Play", + "steps": { + "tak-auto-import": { + "description": "To connect to the server, just comlete the steps shown above, make sure ATAK opens a popup, press \"yes\" when prompted. \n If ATAK did not open popup window, please try again.", + "title": "Auto Import" + }, + "tak-data-sync": { + "description": "You need to enable Data Sync plugin order for ATAK to work.", + "title": "Data Sync" + }, + "tak-download": { + "description": "Download the ATAK-CIV app from the Play Store and install it:", + "title": "Download" + }, + "tak-home": { + "description": "Inside ATAK you have few options. Use the Messages tab for communication with your team. Feeds tab helps you follow traffic and events inside ATAK . Tap the Tools menu for more options including the Plugins tab. At the bottom you can see the Status of your current ATAK.", + "title": "ATAK tools" + }, + "tak-manual-import": { + "description": "You can also manually import the configuration package", + "title": "Manual Import" + }, + "tak-plugins": { + "description": "You can find Plugins-tab from the Tools-menu.", + "title": "ATAK Plugins" + }, + "tak-welcome": { + "description": "Welcome to ATAK Installation", + "title": "Welcome" + } + } + }, + "back": "Back", + "clickToEnlarge": "Click to enlarge", + "completion": "Onboarding Completed!", + "completionDesc": "You're all set and ready to operate at full capacity.", + "finish": "Finish", + "general": { + "steps": { + "install": { + "description": "Remember to choose the platform you are using (1), if it isn't detected correctly. After downloading your package (2) and importing it you are ready to go!", + "title": "Package Download" + }, + "return": { + "description": "You can always re-open to this guide by pressing the button in the bottom right corner.", + "title": "Opening guide" + }, + "welcome": { + "description": "Welcome to TAK!", + "title": "Welcome" + } + } + }, + "imageMissing": "Image not available", + "ios": { + "downloadFromAppStore": "Download from the App Store", + "steps": { + "itak-import": { + "description": "Open the \"Packages\"-menu and add a new package from local device. Select the file you downloaded previously.", + "title": "Import the package" + }, + "itak-settings": { + "description": "Settings can be accessed from the top right corner. There you can change the map and preferences. Recommended: Change units inside preferences to use MGRS and metric units.", + "title": "Change settings" + }, + "itak-setup": { + "description": "Open up iTAK. When prompted for permission to access devices in local networks, don't allow it. ALLOW all other permissions. You should set up your callsign match the one inside Deploy App.", + "title": "Setup iTAK" + }, + "itak-sync1": { + "description": "Open the \"Data Sync\"-menu and subscribe to the \"RECON\"-feed.", + "title": "Data Sync (1/2)" + }, + "itak-sync2": { + "description": "Go back to the \"Data Sync\"-menu and do a full sync.", + "title": "Data Sync (2/2)" + }, + "tak-download": { + "description": "Download the iTAK app from the App Store and install it:", + "title": "Download" + }, + "tak-package": { + "description": "Check that your platform is set right. After that download your client package.", + "title": "Package download" + }, + "welcome": { + "description": "Welcome to iTAK Installation", + "title": "Welcome" + } + } + }, + "next": "Next", + "of": "of", + "progressSaved": "Your onboarding progress has been saved.", + "review": "Review onboarding", + "step": "Step", + "title": "Onboard to TAK", + "windows": { + "back": "Back", + "clickToEnlarge": "Click to enlarge", + "completion": "Onboarding Completed!", + "completionDesc": "You're all set and ready to operate at full capacity.", + "finish": "Finish", + "imageMissing": "Image not available", + "next": "Next", + "of": "of", + "progressSaved": "Your onboarding progress has been saved.", + "review": "Review onboarding", + "step": "Step", + "steps": { + "health": { + "description": "See how everything's running at a glance. Check if your systems are healthy and your network is connected.", + "title": "System Status" + }, + "instructions": { + "description": "Need help getting started? Find step-by-step guides and tips for making the most of Modular Apps.", + "title": "Help & Guides" + }, + "invite": { + "description": "Bring new people onto your team with secure invite codes or QR codes. Share them however works best for you.", + "title": "Invite People" + }, + "products": { + "description": "Launch the Team Awareness Kit and other apps you need. Everything's ready to go when you are.", + "title": "Your Apps" + }, + "users": { + "description": "See who's on your team, approve new members, and manage everyone's access. Keep things secure and organized.", + "title": "Team Members" + }, + "welcome": { + "description": "This is your home base for managing everything. Launch apps, check system status, and keep your team organized\u2014all in one place.", + "title": "Welcome!" + } + }, + "title": "Onboard to Deploy App" + }, + "wintak": { + "description": "Choose the platform you are using (1), if it isn't detected correctly. Download your package (2). Read the instructions for importing your package (3)." + } + }, "platform": { "android": "ATAK", "choose": "Choose your platform", @@ -18,6 +161,12 @@ "android": { "instructions_short": "Need help importing the package?", "open_atak": "ATAK: Auto import package", + "open_atak_dialog": { + "description": "Click the button below to open in ATAK", + "note": "When ATAK opens and asks about importing a package with a long link, choose \"Yes\"", + "open": "Open ATAK and connect to service", + "title": "ATAK Mission Package Auto Import" + }, "open_atak_manual_note": "Or import manually", "open_instructions": "Open instructions", "phase1": { diff --git a/ui/src/locales/fi.json b/ui/src/locales/fi.json index 3a7e38a..305a1c3 100644 --- a/ui/src/locales/fi.json +++ b/ui/src/locales/fi.json @@ -1,10 +1,153 @@ { "intro": { - "description": "TAK (Team Awareness Kit): GPS-pohjainen alusta reaaliaikaiseen omien joukkojen seurantaan, havaintojen jakamiseen ja tilannep\u00e4ivitysten vastaanottamiseen.", + "description": "TAK (Team Awareness Kit): GPS-pohjainen alusta reaaliaikaiseen omien joukkojen seurantaan, havaintojen jakamiseen ja tilannepäivitysten vastaanottamiseen.", "title": "TAK" }, "loading": { - "user_data": "Ladataan k\u00e4ytt\u00e4j\u00e4n tietoja..." + "user_data": "Ladataan käyttäjän tietoja..." + }, + "onboarding": { + "android": { + "downloadFromPlayStore": "Lataa Google Play:stä", + "steps": { + "tak-auto-import": { + "description": "Yhdistä palvelimeen painamalla kuvan mukaisia painikkeita. Varmista, että ATAK avaa ponnahdusikkunan ja valitse siinä \"Yes\".\n\nJos ATAK ei avaa ponnahdusikkunaa, yritä uudelleen.", + "title": "Automaattinen tuonti" + }, + "tak-data-sync": { + "description": "Sinun tulee ottaa käyttöön Data Sync lisäosa, saadaksesi ATAK käyttöön", + "title": "Data Sync" + }, + "tak-download": { + "description": "Lataa ATAK-CIV-sovellus laitteellesi: ", + "title": "Lataus" + }, + "tak-home": { + "description": "ATAK:ista löydät näkymiä eri tarpeisiisi. Messages välilehdellä voit viestitellä tiimisi kanssa. Feeds-näkymä auttaa seuraamaan liikettä ja tapahtumia yhdellä silmäyksellä. Tools-valikosta löydät kaikki muut ominaisuudet. Alakulman Status-kuvake kertoo onko ATAK-sovelluksessi toimintakunnossa.", + "title": "ATAK:in työkalut" + }, + "tak-manual-import": { + "description": "Voit myös tuoda määrityspaketin manuaalisesti.", + "title": "Manuaalinen tuonti" + }, + "tak-plugins": { + "description": "Tools-valikosta löydät Plugins välilehden", + "title": "ATAK Plugins (lisäosat)" + }, + "tak-welcome": { + "description": "Tervetuloa ATAK:in asennukseen", + "title": "Tervetuloa" + } + } + }, + "back": "Takaisin", + "clickToEnlarge": "Klikkaa suurentaaksesi", + "completion": "Käyttöönotto valmis!", + "completionDesc": "Kaikki on valmista ja voit nyt toimia täydellä kapasiteetilla.", + "finish": "Lopeta", + "general": { + "steps": { + "install": { + "description": "Muista valita käyttämäsi alusta (1), jos sitä ei tunnisteta oikein. Kun olet ladannut paketin (2) ja tuonut sen, olet valmis aloittamaan!", + "title": "Paketin lataus" + }, + "return": { + "description": "Voit aina avata tämän oppaan uudelleen painamalla painiketta oikeassa alakulmassa.", + "title": "Oppaan avaaminen" + }, + "welcome": { + "description": "Tervetuloa TAK-järjestelmään!", + "title": "Tervetuloa" + } + } + }, + "imageMissing": "Kuvaa ei ole saatavilla", + "ios": { + "downloadFromAppStore": "Lataa App Storesta", + "steps": { + "itak-import": { + "description": "Avaa \"Packages\"-valikko ja lisää uusi paketti paikallisesta laitteesta. Valitse tiedosto, jonka latasit aiemmin.", + "title": "Tuo paketti" + }, + "itak-settings": { + "description": "Asetukset löytyvät oikeasta yläkulmasta. Sieltä voit vaihtaa karttaa ja mieltymysasetuksia. Suositus: Muuta mieltymysasetuksista (preferences) yksiköt käyttämään MGRS-koordinaatteja ja metrisiä yksiköitä.", + "title": "Muuta asetuksia" + }, + "itak-setup": { + "description": "Avaa iTAK. Kun sovellus pyytää lupaa käyttää paikallisen verkon laitteita, älä salli sitä. SALLI kaikki muut luvat. Aseta kutsunimesi (callsign) vastaamaan Deploy App -sovelluksessa olevaa nimeä.", + "title": "iTAK-asennus" + }, + "itak-sync1": { + "description": "Avaa \"Data Sync\"-valikko ja tilaa \"RECON\"-syöte.", + "title": "Data Sync (1/2)" + }, + "itak-sync2": { + "description": "Palaa \"Data Sync\"-valikkoon ja suorita täysi synkronointi.", + "title": "Data Sync (2/2)" + }, + "tak-download": { + "description": "Lataa iTAK-sovellus App Storesta ja asenna se:", + "title": "Lataa" + }, + "tak-package": { + "description": "Varmista, että alustasi on valittu oikein. Lataa sen jälkeen pakettisi.", + "title": "Paketin lataus" + }, + "welcome": { + "description": "Tervetuloa iTAK-asennukseen", + "title": "Tervetuloa" + } + } + }, + "next": "Next", + "of": "/", + "progressSaved": "Your onboarding progress has been saved.", + "review": "Review onboarding", + "step": "Vaihe", + "title": "Onboard to TAK", + "windows": { + "back": "Back", + "clickToEnlarge": "Click to enlarge", + "completion": "Onboarding Completed!", + "completionDesc": "You're all set and ready to operate at full capacity.", + "finish": "Finish", + "imageMissing": "Image not available", + "next": "Next", + "of": "of", + "progressSaved": "Your onboarding progress has been saved.", + "review": "Review onboarding", + "step": "Step", + "steps": { + "health": { + "description": "See how everything's running at a glance. Check if your systems are healthy and your network is connected.", + "title": "System Status" + }, + "instructions": { + "description": "Need help getting started? Find step-by-step guides and tips for making the most of Modular Apps.", + "title": "Help & Guides" + }, + "invite": { + "description": "Bring new people onto your team with secure invite codes or QR codes. Share them however works best for you.", + "title": "Invite People" + }, + "products": { + "description": "Launch the Team Awareness Kit and other apps you need. Everything's ready to go when you are.", + "title": "Your Apps" + }, + "users": { + "description": "See who's on your team, approve new members, and manage everyone's access. Keep things secure and organized.", + "title": "Team Members" + }, + "welcome": { + "description": "This is your home base for managing everything. Launch apps, check system status, and keep your team organized—all in one place.", + "title": "Welcome!" + } + }, + "title": "Onboard to Deploy App" + }, + "wintak": { + "description": "Valitse käyttämäsi alusta (1), jos sitä ei tunnisteta oikein. Lataa pakettisi (2). Lue paketin tuomista koskevat ohjeet (3)." + } }, "platform": { "android": "ATAK", @@ -18,6 +161,12 @@ "android": { "instructions_short": "Tarvitsetko apua paketin tuonnissa?", "open_atak": "ATAK: Tuo paketti automaattisesti", + "open_atak_dialog": { + "description": "Avaa ATAK painamalla alla olevaa painiketta", + "note": "Kun ATAK avautuu ja kysyy pitkän linkin sisältävän paketin tuonnista, valitse \"Kyllä\"", + "open": "Avaa ATAK ja yhdistä palveluun", + "title": "ATAK-tehtäväpaketin automaattinen tuonti" + }, "open_atak_manual_note": "Tai tuo paketti manuaalisesti", "open_instructions": "Avaa ohjeet", "phase1": { @@ -25,84 +174,84 @@ "step1_desc_sync": "Lataa ATAK Data Sync -Laajennus ja asenna se:", "step1_title": "Lataa sovellukset", "step2_desc_error": "Jos sovellus antaa virheilmoituksen, valitse \"Wait\" (Odota).", - "step2_desc_permissions": "Avaa sovellus ja my\u00f6nn\u00e4 kaikki pyydetyt k\u00e4ytt\u00f6oikeudet.", - "step2_title": "Avaa ATAK-sovellus ja my\u00f6nn\u00e4 luvat" + "step2_desc_permissions": "Avaa sovellus ja myönnä kaikki pyydetyt käyttöoikeudet.", + "step2_title": "Avaa ATAK-sovellus ja myönnä luvat" }, "phase2": { - "step1_desc_1": "Kun avaat TAK-sovelluksen ensimm\u00e4ist\u00e4 kertaa, TAK Device Setup (Laitteen asennus) aukeaa.", + "step1_desc_1": "Kun avaat TAK-sovelluksen ensimmäistä kertaa, TAK Device Setup (Laitteen asennus) aukeaa.", "step1_desc_2": "Valitse Data Package (Datapaketti) jatkaaksesi.", "step1_desc_3": "Valitse Datapaketti -valikko aukeaa.", "step1_title": "1. Avaa Datapaketti-valikko", "step2_desc_1": "Etsi kansio, johon latasit asiakas-pakettitiedoston 'Nimi.zip'.", - "step2_desc_2": "Vinkki: Paina Date (P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4) n\u00e4hd\u00e4ksesi viimeisimm\u00e4n ladatun tiedoston; se on todenn\u00e4k\u00f6isesti pakettisi.", + "step2_desc_2": "Vinkki: Paina Date (Päivämäärä) nähdäksesi viimeisimmän ladatun tiedoston; se on todennäköisesti pakettisi.", "step2_desc_3": "Valitse tiedosto jatkaaksesi.", "step2_title": "2. Etsi ja valitse zip-tiedosto", "step3_desc_1": "Paina Done (Valmis).", "step3_desc_2": "Saat useita ilmoituksia asetustiedostojen latautumisesta.", "step3_desc_3": "Alustava konfigurointi on valmis.", - "step3_desc_4": "Tarkista oikeasta alakulmasta, ett\u00e4 palvelinyhteytesi on aktiivinen (vihre\u00e4 valo).", + "step3_desc_4": "Tarkista oikeasta alakulmasta, että palvelinyhteytesi on aktiivinen (vihreä valo).", "step3_title": "3. Paina Done - asetukset latautuvat" }, "phase3": { - "step1_desc_1": "Paina kolmea viivaa (hampurilaiskuvake) oikeassa yl\u00e4kulmassa.", - "step1_desc_2": "Vierit\u00e4 valikon alaosaan ja valitse Settings (Asetukset).", + "step1_desc_1": "Paina kolmea viivaa (hampurilaiskuvake) oikeassa yläkulmassa.", + "step1_desc_2": "Vieritä valikon alaosaan ja valitse Settings (Asetukset).", "step1_title": "1. Avaa Asetukset", - "step2_desc_1": "Valitse My Team (Oma tiimi) ja valitse v\u00e4ri, jota sinua on ohjeistettu k\u00e4ytt\u00e4m\u00e4\u00e4n.", - "step2_desc_2": "Valitse My Role (Oma rooli). Ellei esimiehesi toisin m\u00e4\u00e4r\u00e4\u00e4, kaikkien komentopaikkak\u00e4ytt\u00e4jien tulisi k\u00e4ytt\u00e4\u00e4 roolia Team Member (Tiimin j\u00e4sen).", + "step2_desc_1": "Valitse My Team (Oma tiimi) ja valitse väri, jota sinua on ohjeistettu käyttämään.", + "step2_desc_2": "Valitse My Role (Oma rooli). Ellei esimiehesi toisin määrää, kaikkien komentopaikkakäyttäjien tulisi käyttää roolia Team Member (Tiimin jäsen).", "step2_desc_3": "Roolisi ja tiimisi on nyt asetettu.", "step2_title": "2. Aseta Tiimi ja Rooli" }, "phase4": { - "step1_desc_1": "a. Avaa p\u00e4\u00e4n\u00e4kym\u00e4ss\u00e4 hampurilaisvalikko ja etsi Plugins (Laajennukset). (Sinulla on oltava Data Sync -laajennus asennettuna Google Playsta.)", - "step1_desc_2": "b. Laajennukset-valikko aukeaa. Paina rivi\u00e4 Data Sync, kohdasta jossa lukee \"Status: Not loaded.\"", + "step1_desc_1": "a. Avaa päänäkymässä hampurilaisvalikko ja etsi Plugins (Laajennukset). (Sinulla on oltava Data Sync -laajennus asennettuna Google Playsta.)", + "step1_desc_2": "b. Laajennukset-valikko aukeaa. Paina riviä Data Sync, kohdasta jossa lukee \"Status: Not loaded.\"", "step1_desc_3": "c. Sovellus kysyy, haluatko ladata Data Syncin. Paina Load (Lataa).", "step1_desc_4": "d. Data Syncin tilaksi vaihtuu Loaded (Ladattu).", "step1_desc_5": "Valmis! Voit poistua valikosta.", "step1_title": "1. Avaa Data Sync -valikko", - "step2_desc_1": "Avaa p\u00e4\u00e4n\u00e4kym\u00e4ss\u00e4 hampurilaisvalikko ja valitse Data Sync.", - "step2_desc_2": "Data Sync -valikon avaaminen paljastaa palvelimelta saatavilla olevat sy\u00f6tteet.", - "step2_desc_3": "Valitse sy\u00f6te/sy\u00f6tteet, jotka sinua on ohjeistettu tilaamaan (esimerkki: RECON).", + "step2_desc_1": "Avaa päänäkymässä hampurilaisvalikko ja valitse Data Sync.", + "step2_desc_2": "Data Sync -valikon avaaminen paljastaa palvelimelta saatavilla olevat syötteet.", + "step2_desc_3": "Valitse syöte/syötteet, jotka sinua on ohjeistettu tilaamaan (esimerkki: RECON).", "step2_desc_4": "Valitse ponnahdusikkunasta Download & Sync (Lataa & Synkronoi).", - "step2_desc_5": "Tiedustelusy\u00f6te (Recon) on nyt k\u00e4yt\u00f6ss\u00e4. Saat kartallesi merkint\u00f6j\u00e4 komentopaikalta.", - "step2_title": "2. Ota k\u00e4ytt\u00f6\u00f6n Tiedustelusy\u00f6te & muut sy\u00f6tteet", - "step3_desc_1": "Varmista, ett\u00e4 Auto Download on p\u00e4\u00e4ll\u00e4. Palaa p\u00e4\u00e4n\u00e4kym\u00e4\u00e4n ja avaa hampurilaisvalikko.", + "step2_desc_5": "Tiedustelusyöte (Recon) on nyt käytössä. Saat kartallesi merkintöjä komentopaikalta.", + "step2_title": "2. Ota käyttöön Tiedustelusyöte & muut syötteet", + "step3_desc_1": "Varmista, että Auto Download on päällä. Palaa päänäkymään ja avaa hampurilaisvalikko.", "step3_desc_2": "Etsi Settings (Asetukset).", - "step3_desc_3": "Etsi asetus Auto Download Updates ja varmista, ett\u00e4 se on kytketty p\u00e4\u00e4lle.", - "step3_desc_4": "T\u00e4m\u00e4 varmistaa, ett\u00e4 ATAK lataa p\u00e4ivitykset tilaamiisi sy\u00f6tteisiin automaattisesti.", - "step3_title": "3. Kytke automaattinen lataus p\u00e4\u00e4lle" + "step3_desc_3": "Etsi asetus Auto Download Updates ja varmista, että se on kytketty päälle.", + "step3_desc_4": "Tämä varmistaa, että ATAK lataa päivitykset tilaamiisi syötteisiin automaattisesti.", + "step3_title": "3. Kytke automaattinen lataus päälle" }, "phase5": { - "step1_desc_1": "Valitaksesi karttapohjan, avaa Maps (Kartat) ty\u00f6kalurivilt\u00e4 (oikea yl\u00e4kulma).", + "step1_desc_1": "Valitaksesi karttapohjan, avaa Maps (Kartat) työkaluriviltä (oikea yläkulma).", "step1_desc_2": "Kuittaa mahdolliset ilmoitukset painamalla OK.", - "step1_desc_3": "Valitse Mobile -v\u00e4lilehti ja aktivoi 02 Google Hybrid -karttapohja.", + "step1_desc_3": "Valitse Mobile -välilehti ja aktivoi 02 Google Hybrid -karttapohja.", "step1_desc_4": "Poistu valikosta painamalla Back (Takaisin) -painiketta muutaman kerran.", "step1_title": "1. Valitse haluamasi karttapohja", - "step2_desc_1": "ATAKissa yksikk\u00f6asetukset on yleens\u00e4 esikonfiguroitu asentamassasi asiakaspaketissa. Tarkista tai s\u00e4\u00e4d\u00e4 niit\u00e4 seuraavasti:", - "step2_desc_2_1": "Palaa Settings (Asetukset) -p\u00e4\u00e4valikkoon.", - "step2_desc_2_2": "Valitse Display Preferences (N\u00e4ytt\u00f6asetukset).", - "step2_desc_2_3": "Valitse Basic Display Preferences (Perusn\u00e4ytt\u00f6asetukset).", - "step2_desc_2_4": "Valitse Unit Display Format Preferences (Yksik\u00f6iden n\u00e4ytt\u00f6muotoasetukset).", - "step2_desc_2_5": "Valitse Altitude Units (Korkeusyksik\u00f6t) ja aseta arvoksi Meters (m).", - "step2_desc_2_6": "Valitse Speed Units (Nopeusyksik\u00f6t) ja valitse KM per Hour (kmph).", - "step2_desc_2_7": "Vierit\u00e4 kohtaan UNIT THRESHOLD, valitse Meters to Kilometers, aseta arvoksi 1000, ja paina OK.", - "step2_desc_3": "Yksik\u00f6t on nyt asetettu. Poistu valikosta painamalla takaisin-painiketta useita kertoja.", - "step2_title": "2. Tarkista yksik\u00f6t tarvittaessa", - "step3_desc_1": "Kutsumanimesi on yleens\u00e4 asetettu asentamassasi asiakaspaketissa. Vaihtaaksesi sen:", + "step2_desc_1": "ATAKissa yksikköasetukset on yleensä esikonfiguroitu asentamassasi asiakaspaketissa. Tarkista tai säädä niitä seuraavasti:", + "step2_desc_2_1": "Palaa Settings (Asetukset) -päävalikkoon.", + "step2_desc_2_2": "Valitse Display Preferences (Näyttöasetukset).", + "step2_desc_2_3": "Valitse Basic Display Preferences (Perusnäyttöasetukset).", + "step2_desc_2_4": "Valitse Unit Display Format Preferences (Yksiköiden näyttömuotoasetukset).", + "step2_desc_2_5": "Valitse Altitude Units (Korkeusyksiköt) ja aseta arvoksi Meters (m).", + "step2_desc_2_6": "Valitse Speed Units (Nopeusyksiköt) ja valitse KM per Hour (kmph).", + "step2_desc_2_7": "Vieritä kohtaan UNIT THRESHOLD, valitse Meters to Kilometers, aseta arvoksi 1000, ja paina OK.", + "step2_desc_3": "Yksiköt on nyt asetettu. Poistu valikosta painamalla takaisin-painiketta useita kertoja.", + "step2_title": "2. Tarkista yksiköt tarvittaessa", + "step3_desc_1": "Kutsumanimesi on yleensä asetettu asentamassasi asiakaspaketissa. Vaihtaaksesi sen:", "step3_desc_2_1": "Valitse Callsign and Device Preferences (Kutsumanimi- ja laiteasetukset).", "step3_desc_2_2": "Valitse Callsign Preferences (Kutsuminimiasetukset).", "step3_desc_2_3": "Valitse My Callsign (Oma kutsumanimi).", - "step3_desc_2_4": "Sy\u00f6t\u00e4 sinulle m\u00e4\u00e4r\u00e4tty kutsumanimi (esimerkki: Rambo).", + "step3_desc_2_4": "Syötä sinulle määrätty kutsumanimi (esimerkki: Rambo).", "step3_desc_2_5": "Paina OK.", "step3_title": "3. Tarkista ja vaihda kutsumanimi tarvittaessa" }, "step1_download": "Lataa zip-paketti:", "step2_install": "Tuo paketti sovellukseen.", - "step3_done": "ATAK on k\u00e4ytt\u00f6valmis.", + "step3_done": "ATAK on käyttövalmis.", "title": "ATAK-paketin asennus", "wizard_title": { "phase1": "Asenna Android-sovellukset", "phase2": "Tuo datapaketti", - "phase3": "S\u00e4\u00e4d\u00e4 asetukset", + "phase3": "Säädä asetukset", "phase4": "Data Sync", "phase5": "Viimeistely" } @@ -116,108 +265,108 @@ "step1_desc_2": "Paina alla olevaa painiketta ladataksesi sovelluksen.", "step1_desc_title": "Lataa iTAK", "step1_title": "1. Lataa sovellukset", - "step2_desc_1": "Lataa asiakaspakettisi painamalla alla olevaa vihre\u00e4\u00e4 painiketta.", - "step2_desc_2": "L\u00f6yd\u00e4t saman painikkeen my\u00f6s etusivulta.", + "step2_desc_1": "Lataa asiakaspakettisi painamalla alla olevaa vihreää painiketta.", + "step2_desc_2": "Löydät saman painikkeen myös etusivulta.", "step2_desc_title": "Lataa asiakaspaketti", "step2_title": "2. Lataa asiakaspaketti", "zip_file_warning": "HUOM! Zip-tiedostoa ei tarvitse purkaa!" }, "phase2": { "step1_desc_1": "Avaa iTAK-sovellus.", - "step1_desc_2": "Kun sovellus kysyy: \"iTAK haluaa l\u00f6yt\u00e4\u00e4 ja yhdist\u00e4\u00e4 laitteisiin paikallisverkossasi...\", valitse \u00c4l\u00e4 salli.", + "step1_desc_2": "Kun sovellus kysyy: \"iTAK haluaa löytää ja yhdistää laitteisiin paikallisverkossasi...\", valitse Älä salli.", "step1_title": "Avaa sovellus", - "step2_desc_1": "T\u00e4yt\u00e4 profiilin asetukset:", - "step2_desc_2": "Sy\u00f6t\u00e4 kutsunimesi 'Kutsunimi'-kentt\u00e4\u00e4n, esimerkiksi Rambo. \u00c4l\u00e4 t\u00e4yt\u00e4 Puhelin-kentt\u00e4\u00e4. Paina lopuksi Seuraava.", - "step2_title": "Sy\u00f6t\u00e4 kutsunimi", - "step3_desc_1": "T\u00e4yt\u00e4 tiimin asetukset:", - "step3_desc_2": "Valitse 'Valitse tiimi' -kent\u00e4st\u00e4 tiimisi (kuten sinulle on ohjeistettu) v\u00e4ri pudotusvalikosta. Valitse 'Valitse tiimin rooli' -kent\u00e4st\u00e4 rooli 'Tiimin j\u00e4sen', ellei toisin ole ohjeistettu.\nP\u00e4\u00e4majak\u00e4ytt\u00e4j\u00e4t asettavat roolinsa p\u00e4\u00e4majaksi.\nPaina lopuksi Seuraava.", + "step2_desc_1": "Täytä profiilin asetukset:", + "step2_desc_2": "Syötä kutsunimesi 'Kutsunimi'-kenttään, esimerkiksi Rambo. Älä täytä Puhelin-kenttää. Paina lopuksi Seuraava.", + "step2_title": "Syötä kutsunimi", + "step3_desc_1": "Täytä tiimin asetukset:", + "step3_desc_2": "Valitse 'Valitse tiimi' -kentästä tiimisi (kuten sinulle on ohjeistettu) väri pudotusvalikosta. Valitse 'Valitse tiimin rooli' -kentästä rooli 'Tiimin jäsen', ellei toisin ole ohjeistettu.\nPäämajakäyttäjät asettavat roolinsa päämajaksi.\nPaina lopuksi Seuraava.", "step3_title": "Aseta tiimin asetukset", "step4_desc_1": "a. Aseta tietosuoja-asetukset sallimaan ilmoitukset ja sijaintipalvelut.", - "step4_desc_2": "iOS kysyy sitten, sallitko iTAK:lle ilmoitukset ja sijaintisi k\u00e4yt\u00f6n. Valitse Salli ilmoitukset.", - "step4_desc_3": "Valitse Salli sovelluksen k\u00e4yt\u00f6n aikana sijainnille.", - "step4_desc_4": "T\u00e4m\u00e4n j\u00e4lkeen siirryt\u00e4\u00e4n luomaan palvelinyhteys asiakaspaketillasi.", - "step4_title": "Anna sovellukselle tarvittavat k\u00e4ytt\u00f6oikeudet" + "step4_desc_2": "iOS kysyy sitten, sallitko iTAK:lle ilmoitukset ja sijaintisi käytön. Valitse Salli ilmoitukset.", + "step4_desc_3": "Valitse Salli sovelluksen käytön aikana sijainnille.", + "step4_desc_4": "Tämän jälkeen siirrytään luomaan palvelinyhteys asiakaspaketillasi.", + "step4_title": "Anna sovellukselle tarvittavat käyttöoikeudet" }, "phase3": { - "step1_desc_1": "a. Mene karttan\u00e4kym\u00e4\u00e4n ja vierit\u00e4 ty\u00f6kalupalkkia oikealle, kunnes l\u00f6yd\u00e4t Paketti-kuvakkeen.", - "step1_important": "T\u00e4rke\u00e4\u00e4! \u00c4l\u00e4 yrit\u00e4 asentaa asiakaspakettia iTAK Asetukset->Verkko->Palvelin!-valikosta. Se ei toimi.", + "step1_desc_1": "a. Mene karttanäkymään ja vieritä työkalupalkkia oikealle, kunnes löydät Paketti-kuvakkeen.", + "step1_important": "Tärkeää! Älä yritä asentaa asiakaspakettia iTAK Asetukset->Verkko->Palvelin!-valikosta. Se ei toimi.", "step1_title": "Avaa Paketit-valikko", - "step2_desc_1": "b. Paketti-valikko avautuu ja se on tyhj\u00e4. Paina alareunassa olevaa plus-kuvaketta lis\u00e4t\u00e4ksesi viestipohjapaketti.", + "step2_desc_1": "b. Paketti-valikko avautuu ja se on tyhjä. Paina alareunassa olevaa plus-kuvaketta lisätäksesi viestipohjapaketti.", "step2_desc_2": "c. Valitse Paikallinen laite.", - "step2_desc_3": "d. Valitse pakettisi. Se on zip-tiedosto nimelt\u00e4 YourCallsign.zip.", - "step2_desc_4": "e. Onnistuneen lis\u00e4yksen merkkin\u00e4 Paketit-valikon listalla n\u00e4kyy palvelimen kutsunimi ja vihre\u00e4 valo. Palaa karttan\u00e4kym\u00e4\u00e4n.", - "step2_desc_5": "Palvelinyhteys on nyt luotu. Merkkin\u00e4 t\u00e4st\u00e4 kartan oikeassa alakulmassa lukee Yhteydess\u00e4 vihre\u00e4n\u00e4.", - "step2_title": "Lis\u00e4\u00e4 viestipohjapaketti iTAK:iin" + "step2_desc_3": "d. Valitse pakettisi. Se on zip-tiedosto nimeltä YourCallsign.zip.", + "step2_desc_4": "e. Onnistuneen lisäyksen merkkinä Paketit-valikon listalla näkyy palvelimen kutsunimi ja vihreä valo. Palaa karttanäkymään.", + "step2_desc_5": "Palvelinyhteys on nyt luotu. Merkkinä tästä kartan oikeassa alakulmassa lukee Yhteydessä vihreänä.", + "step2_title": "Lisää viestipohjapaketti iTAK:iin" }, "phase4": { - "step1_desc_1": "a. Avaa Asetukset uudelleen yl\u00e4vasemmassa kulmassa olevasta hammasrataskuvakkeesta.", + "step1_desc_1": "a. Avaa Asetukset uudelleen ylävasemmassa kulmassa olevasta hammasrataskuvakkeesta.", "step1_desc_2": "b. Valitse Asetuksista Asetukset-vaihtoehto.", - "step1_desc_3": "Valmistaudu asettamaan oikeat mittayksik\u00f6t ja koordinaattij\u00e4rjestelm\u00e4.", + "step1_desc_3": "Valmistaudu asettamaan oikeat mittayksiköt ja koordinaattijärjestelmä.", "step1_title": "Avaa asetukset", - "step2_desc_1": "Valitse mittayksik\u00f6t:", - "step2_desc_2": "Valitse MGRS koordinaattimuodoksi ja Metrit et\u00e4isyysmuodoksi.", - "step2_title": "Aseta yksik\u00f6t", - "step3_desc_1": "a. Jos haluat vaihtaa kartan l\u00e4hteen, valitse Kartan l\u00e4hde Asetuksista.", - "step3_desc_2": "b. Valitse haluamasi kartan l\u00e4hde. Huom! Saatavuus voi vaihdella.", - "step3_desc_3": "Hienoa! Olet nyt valmistanut iTAK:in k\u00e4ytt\u00f6\u00f6n.\nJos tarvitset kutsunimesi muokkaamista, voit tehd\u00e4 sen Asetukset-valikosta valitsemalla kutsunimesi.", - "step3_title": "Vaihtoehtoisesti muuta kartan l\u00e4hde" + "step2_desc_1": "Valitse mittayksiköt:", + "step2_desc_2": "Valitse MGRS koordinaattimuodoksi ja Metrit etäisyysmuodoksi.", + "step2_title": "Aseta yksiköt", + "step3_desc_1": "a. Jos haluat vaihtaa kartan lähteen, valitse Kartan lähde Asetuksista.", + "step3_desc_2": "b. Valitse haluamasi kartan lähde. Huom! Saatavuus voi vaihdella.", + "step3_desc_3": "Hienoa! Olet nyt valmistanut iTAK:in käyttöön.\nJos tarvitset kutsunimesi muokkaamista, voit tehdä sen Asetukset-valikosta valitsemalla kutsunimesi.", + "step3_title": "Vaihtoehtoisesti muuta kartan lähde" }, "phase5": { - "step1_desc_1": "P\u00e4\u00e4valikossa avaa ty\u00f6kalupalkki (alareunassa) ja vierit\u00e4 oikealle l\u00f6yt\u00e4\u00e4ksesi Tiedonsiirron synkronointi -valikon.", + "step1_desc_1": "Päävalikossa avaa työkalupalkki (alareunassa) ja vieritä oikealle löytääksesi Tiedonsiirron synkronointi -valikon.", "step1_title": "Avaa tiedonsiirron synkronointi -valikko", "step2_desc_1": "Tiedonsiirron synkronointi -valikossa, paina Tilaa-painiketta.", - "step2_desc_2": "Valitse saatavilla oleva palvelin (tulee n\u00e4kyviin suorituspaikkasi nimi, kuten 'positive-beetle.').", - "step2_desc_3": "Seuraavassa n\u00e4kym\u00e4ss\u00e4 valitse RECON-sy\u00f6te ja muut sy\u00f6tteet, joihin sinut on ohjeistettu tilaamaan.", - "step2_title": "Tilaa sy\u00f6te", - "step3_desc_1": "T\u00e4st\u00e4 eteenp\u00e4in Command Postin k\u00e4ytt\u00e4jien luoma ja p\u00e4ivitt\u00e4m\u00e4 Recon-sy\u00f6te on k\u00e4ytett\u00e4viss\u00e4si.", - "step3_desc_2": "Sy\u00f6te n\u00e4kyy Tiedonsiirron synkronointi -valikossasi. Ohjeet sy\u00f6tteen k\u00e4yt\u00f6st\u00e4 l\u00f6ytyv\u00e4t ryhm\u00e4n k\u00e4yt\u00f6n ohjeista.", - "step3_title": "Sy\u00f6te k\u00e4ytett\u00e4viss\u00e4si" + "step2_desc_2": "Valitse saatavilla oleva palvelin (tulee näkyviin suorituspaikkasi nimi, kuten 'positive-beetle.').", + "step2_desc_3": "Seuraavassa näkymässä valitse RECON-syöte ja muut syötteet, joihin sinut on ohjeistettu tilaamaan.", + "step2_title": "Tilaa syöte", + "step3_desc_1": "Tästä eteenpäin Command Postin käyttäjien luoma ja päivittämä Recon-syöte on käytettävissäsi.", + "step3_desc_2": "Syöte näkyy Tiedonsiirron synkronointi -valikossasi. Ohjeet syötteen käytöstä löytyvät ryhmän käytön ohjeista.", + "step3_title": "Syöte käytettävissäsi" }, "step1_download": "Lataa zip-paketti:", "step2_install": "Tuo paketti.", - "step3_done": "Valmis, ITAK on valmis k\u00e4ytt\u00f6\u00f6n.", + "step3_done": "Valmis, ITAK on valmis käyttöön.", "title": "ITAK-paketin asennus", "wizard_title": { "phase1": "Asenna iOS-sovellukset", "phase2": "Tee perusasetukset", - "phase3": "Yhdist\u00e4 palvelimeen", - "phase4": "Aseta yksik\u00f6t", - "phase5": "Ota tiedonsynkronointi k\u00e4ytt\u00f6\u00f6n" + "phase3": "Yhdistä palvelimeen", + "phase4": "Aseta yksiköt", + "phase5": "Ota tiedonsynkronointi käyttöön" } }, "tracker": { "step1_download": "Lataa zip-paketti:", "step2_install": "Tuo paketti.", - "step3_done": "Valmis, TAK Tracker on valmis k\u00e4ytt\u00f6\u00f6n.", + "step3_done": "Valmis, TAK Tracker on valmis käyttöön.", "title": "TAK Tracker -paketin asennus" }, "windows": { "instructions_short": "Tarvitsetko apua paketin tuonnissa?", "open_instructions": "Avaa ohjeet", "phase1": { - "step1_desc_1": "WinTAK vaatii ty\u00f6aseman kielen olevan englanti ja alueasetukseksi Yhdysvallat.", + "step1_desc_1": "WinTAK vaatii työaseman kielen olevan englanti ja alueasetukseksi Yhdysvallat.", "step1_desc_2": "Ennen sovelluksen asentamista etsi Aika ja kieli -asetukset hakupalkista (vasemmasta alakulmasta).", "step1_desc_3": "Aloita alueen asetuksen muuttaminen. Valitse Alue Aika ja kieli -valikon sivupalkista.", - "step1_desc_4": "Valitse Yhdysvallat maaksi tai alueeksi. Varmista, ett\u00e4 alueellinen formaatti on my\u00f6s asetettu englanniksi (Yhdysvallat).", + "step1_desc_4": "Valitse Yhdysvallat maaksi tai alueeksi. Varmista, että alueellinen formaatti on myös asetettu englanniksi (Yhdysvallat).", "step1_title": "1. Aseta alueeksi Yhdysvallat", "step2_desc_1": "Valitse Aika ja kieli -valikon sivupalkista Kieli.", - "step2_desc_2": "Aseta Windowsin n\u00e4ytt\u00f6kieleksi Englanti (Yhdysvallat).", - "step2_desc_3": "Viimeistele kieliasetusten muuttaminen kirjautumalla ulos ja takaisin sis\u00e4\u00e4n.", + "step2_desc_2": "Aseta Windowsin näyttökieleksi Englanti (Yhdysvallat).", + "step2_desc_3": "Viimeistele kieliasetusten muuttaminen kirjautumalla ulos ja takaisin sisään.", "step2_title": "2. Aseta kieli Englanti (Yhdysvallat)", - "step3_desc_1": "Jos englanti ei ole saatavilla n\u00e4ytt\u00f6kielen\u00e4, paina Lis\u00e4\u00e4 kieli ja etsi se.", - "step3_desc_2": "Paina Asenna kielipaketti. Odota, ett\u00e4 kielipaketti asennetaan.", - "step3_desc_3": "Sen j\u00e4lkeen voit valita englannin n\u00e4ytt\u00f6kieleksi kuten vaiheessa 2 on kuvattu.", + "step3_desc_1": "Jos englanti ei ole saatavilla näyttökielenä, paina Lisää kieli ja etsi se.", + "step3_desc_2": "Paina Asenna kielipaketti. Odota, että kielipaketti asennetaan.", + "step3_desc_3": "Sen jälkeen voit valita englannin näyttökieleksi kuten vaiheessa 2 on kuvattu.", "step3_desc_4": "Kieliasetukset ovat nyt valmiit.", - "step3_title": "3. Lis\u00e4\u00e4 kielipaketti tarvittaessa" + "step3_title": "3. Lisää kielipaketti tarvittaessa" }, "phase2": { - "step1_desc_1": "Lataa WinTAK-sovellus puolustusvoimien m\u00e4\u00e4ritt\u00e4m\u00e4st\u00e4 sijainnista.", - "step1_desc_2": "T\u00e4rke\u00e4\u00e4! Lataa Windows-sovelluksia vain ohjeistetusta sijainnista.", + "step1_desc_1": "Lataa WinTAK-sovellus puolustusvoimien määrittämästä sijainnista.", + "step1_desc_2": "Tärkeää! Lataa Windows-sovelluksia vain ohjeistetusta sijainnista.", "step1_title": "1. Lataa WinTAK", "step3_desc_1": "Etsi ladattu zip-tiedosto ja pura se. Etsi .msi-asennustiedosto zip-tiedoston Products-kansiosta.", "step3_desc_2": "Kaksoispaina .msi-tiedostoa avataksesi asennusohjelman.", "step3_title": "2. Avaa asennusohjelma", - "step4_desc_1": "Asenna WinTAK k\u00e4ytt\u00e4m\u00e4ll\u00e4 asennusohjelmaa.", + "step4_desc_1": "Asenna WinTAK käyttämällä asennusohjelmaa.", "step4_desc_2": "Paina Seuraava. Valitse asennuspaikka.", "step4_desc_3": "Vaihtoehtoisesti voit muuttaa asennuspaikkaa Selaa-painikkeen avulla. Paina Seuraava.", "step4_desc_4": "Valitse asennettavat komponentit asennusohjelmasta. Valitse ainakin seuraava komponentti: Tiedonsiirron synkronointi.", @@ -225,50 +374,50 @@ "step4_title": "3. Asenna asennusohjelmalla" }, "phase3": { - "step1_desc": "Avaa WinTAK-sovellus ty\u00f6p\u00f6yd\u00e4lt\u00e4.", + "step1_desc": "Avaa WinTAK-sovellus työpöydältä.", "step1_title": "1. Avaa sovellus", "step2_desc_1": "Hetken kuluttua Laitteen asetusten asennusohjelma avautuu.", - "step2_desc_2": "Ensimm\u00e4iseksi hyv\u00e4ksy EULA.", - "step2_title": "2. Hyv\u00e4ksy EULA", + "step2_desc_2": "Ensimmäiseksi hyväksy EULA.", + "step2_title": "2. Hyväksy EULA", "step3_desc_1": "Seuraavaksi luodaan palvelinyhteys.", "step3_desc_2": "a. Sovellus kysyy, haluatko tuoda datapaketin.", - "step3_desc_3": "b. Valitse 'Kyll\u00e4'. Suuntaa asiakaspakettiin.", + "step3_desc_3": "b. Valitse 'Kyllä'. Suuntaa asiakaspakettiin.", "step3_desc_4": "Kun olet valinnut paketin ja painanut Avaa, valintaikkuna 'Valitse tuontistrategia' avautuu.", "step3_desc_5": "c. Valitse 'UserPreferenceImportStrategy', ja paina OK.", "step3_title": "3. Luo palvelinyhteys", "step4_desc_1": "Viestipohjapaketin mukana voi tulla erilaisia kartan pohjia.", "step4_title": "4. Valitse kartan pohja", - "step5_desc_1": "Laitteen asetusten asennusohjelma kysyy, haluatko m\u00e4\u00e4ritt\u00e4\u00e4 kutsunimesi.", - "step5_desc_2": "N\u00e4it\u00e4 ei tarvita, poista valinnat ja paina OK.", + "step5_desc_1": "Laitteen asetusten asennusohjelma kysyy, haluatko määrittää kutsunimesi.", + "step5_desc_2": "Näitä ei tarvita, poista valinnat ja paina OK.", "step5_title": "5. Aseta kutsunimi", "step6_desc_1": "Sovellus kysyy, halutaanko laajennuksia asentaa.", "step6_desc_2": "Seuraavaksi sovellus kysyy, halutaanko DTED-0 korkeustieto-mallit ladata automaattisesti.", "step6_title": "6. Aseta laajennukset", "step7_desc_1": "Nyt WinTAK:in perusasetukset on tehty. Tarkista 'Omat asetukset'.", - "step7_desc_2": "Tarkista my\u00f6s TAK-verkko-tila. Vihre\u00e4 pilvi tarkoittaa, ett\u00e4 palvelinyhteys on kunnossa, punainen tarkoittaa, ett\u00e4 se on katkennut.", + "step7_desc_2": "Tarkista myös TAK-verkko-tila. Vihreä pilvi tarkoittaa, että palvelinyhteys on kunnossa, punainen tarkoittaa, että se on katkennut.", "step7_title": "7. Tarkista asetukset" }, "phase4": { - "step1_desc_1": "Tarkista WinTAK:n yksikk\u00f6asetukset.", - "step1_desc_2": "Paina kolmea pinoa, hampurilaisvalikkoa yl\u00e4vasemmassa kulmassa.", + "step1_desc_1": "Tarkista WinTAK:n yksikköasetukset.", + "step1_desc_2": "Paina kolmea pinoa, hampurilaisvalikkoa ylävasemmassa kulmassa.", "step1_desc_3": "Valitse Asetukset.", - "step1_desc_4": "Valitse N\u00e4ytt\u00f6asetukset.", - "step1_desc_5": "N\u00e4ytt\u00f6asetukset avautuvat. Valitse Yksikk\u00f6n\u00e4ytt\u00f6asetukset.", - "step1_desc_6": "Tarkista, ett\u00e4 asetukset ovat kuvassa n\u00e4kyvien kaltaisia. Muuta tarvittaessa.", - "step1_title": "1. Tarkista yksikk\u00f6asetukset", - "step2_desc": "TBD: Vianetsint\u00e4.", - "step2_title": "2. Vianetsint\u00e4" + "step1_desc_4": "Valitse Näyttöasetukset.", + "step1_desc_5": "Näyttöasetukset avautuvat. Valitse Yksikkönäyttöasetukset.", + "step1_desc_6": "Tarkista, että asetukset ovat kuvassa näkyvien kaltaisia. Muuta tarvittaessa.", + "step1_title": "1. Tarkista yksikköasetukset", + "step2_desc": "TBD: Vianetsintä.", + "step2_title": "2. Vianetsintä" }, "step1_download": "Lataa zip-paketti:", - "step1_note": "WinTAK k\u00e4ytt\u00e4\u00e4 samaa pakettia kuin ATAK", + "step1_note": "WinTAK käyttää samaa pakettia kuin ATAK", "step2_install": "Tuo paketti.", - "step3_done": "Valmis, WinTAK on valmis k\u00e4ytt\u00f6\u00f6n.", + "step3_done": "Valmis, WinTAK on valmis käyttöön.", "title": "WinTAK-paketin asennus", "wizard_title": { "phase1": "Aseta Windows-tietokoneesi kieli englanniksi", "phase2": "Lataa ja asenna WinTAK", - "phase3": "M\u00e4\u00e4rit\u00e4 WinTAK", - "phase4": "Aseta mittayksik\u00f6t" + "phase3": "Määritä WinTAK", + "phase4": "Aseta mittayksiköt" } } }, diff --git a/ui/src/locales/sv.json b/ui/src/locales/sv.json index 6cd27cf..5bfaa18 100644 --- a/ui/src/locales/sv.json +++ b/ui/src/locales/sv.json @@ -1,281 +1,430 @@ { "intro": { - "description": "TAK (Team Awareness Kit): En GPS-baserad plattform f\u00f6r sp\u00e5rning av egna styrkor i realtid, delning av observationer och mottagning av l\u00e4gesuppdateringar.", + "description": "TAK (Team Awareness Kit): En GPS-baserad plattform för spårning av egna styrkor i realtid, delning av observationer och mottagning av lägesuppdateringar.", "title": "TAK" }, "loading": { - "user_data": "Laddar anv\u00e4ndardata..." + "user_data": "Laddar användardata..." + }, + "onboarding": { + "android": { + "downloadFromPlayStore": "Ladda ner från Google Play Store", + "steps": { + "tak-auto-import": { + "description": "För att ansluta till servern, tryck på knappen. Kontrollera att ATAK öppnar ett popup-fönster och välj \"Ja\".\n\nOm ATAK inte öppnar ett popup-fönster, försök igen.", + "title": "Automatisk import" + }, + "tak-data-sync": { + "description": "Du behöver aktivera tillägget Data Sync för att kunna använda ATAK", + "title": "Data Sync" + }, + "tak-download": { + "description": "Ladda ner ATAK-CIV-appen från Google Play Butik och installera den.", + "title": "Ladda ner" + }, + "tak-home": { + "description": "I ATAK har du flera alternativ. Använd fliken Meddelanden för att kommunicera med ditt team. Fliken Flöden hjälper dig att följa trafik och händelser i ATAK. Tryck på menyn Verktyg för fler alternativ, inklusive fliken Plugins. Längst ner ser du statusen för din aktuella ATAK.", + "title": "ATAK-verktyg" + }, + "tak-manual-import": { + "description": "Du kan också importera konfigurationspaketet manuellt.", + "title": "Manuell import" + }, + "tak-plugins": { + "description": "I menyn Verktyg hittar du fliken Plugins.", + "title": "ATAK-plugins (tillägg)" + }, + "tak-welcome": { + "description": "Välkommen till installationen av ATAK", + "title": "Välkommen" + } + } + }, + "back": "Bakåt", + "clickToEnlarge": "Klicka för att förstora", + "completion": "Onboarding slutförd!", + "completionDesc": "Du är nu redo att arbeta med full kapacitet.", + "finish": "Slutför", + "general": { + "steps": { + "install": { + "description": "Kom ihåg att välja den plattform du använder (1) om den inte upptäcks automatiskt. När du har laddat ner ditt paket (2) och importerat det är du redo att köra!", + "title": "Nedladdning av paket" + }, + "return": { + "description": "Du kan alltid öppna den här guiden igen genom att trycka på knappen i det nedre högra hörnet.", + "title": "Öppna guide" + }, + "welcome": { + "description": "Välkommen till TAK!", + "title": "Välkommen" + } + } + }, + "imageMissing": "Bild saknas", + "ios": { + "downloadFromAppStore": "Ladda ner från App Store", + "steps": { + "itak-import": { + "description": "Öppna menyn \"Packages\" och lägg till ett nytt paket från din lokala enhet. Välj filen som du laddade ned tidigare.", + "title": "Importera paketet" + }, + "itak-settings": { + "description": "Inställningar nås från det övre högra hörnet. Där kan du ändra karta och preferenser. Rekommenderas: Ändra enheter i inställningarna till att använda MGRS och metriska enheter.", + "title": "Ändra inställningar" + }, + "itak-setup": { + "description": "Öppna iTAK. När du tillfrågas om tillåtelse att komma åt enheter i lokala nätverk, välj 'tillåt inte'. TILLÅT alla andra behörigheter. Du bör ställa in din anropssignal (callsign) så att den matchar den i Deploy App.", + "title": "Konfigurera iTAK" + }, + "itak-sync1": { + "description": "Öppna menyn \"Data Sync\" och prenumerera på \"RECON\"-flödet.", + "title": "Data Sync (1/2)" + }, + "itak-sync2": { + "description": "Gå tillbaka till menyn \"Data Sync\" och gör en fullständig synkronisering.", + "title": "Data Sync (2/2)" + }, + "tak-download": { + "description": "Ladda ner iTAK-appen från App Store och installera den:", + "title": "Ladda ner" + }, + "tak-package": { + "description": "Kontrollera att din plattform är rätt inställd. Ladda därefter ner ditt klientpaket.", + "title": "Nedladdning av paket" + }, + "welcome": { + "description": "Välkommen till iTAK-installationen", + "title": "Välkommen" + } + } + }, + "next": "Next", + "of": "av", + "progressSaved": "Your onboarding progress has been saved.", + "review": "Review onboarding", + "step": "Steg", + "title": "Onboard to TAK", + "windows": { + "back": "Back", + "clickToEnlarge": "Click to enlarge", + "completion": "Onboarding Completed!", + "completionDesc": "You're all set and ready to operate at full capacity.", + "finish": "Finish", + "imageMissing": "Image not available", + "next": "Next", + "of": "of", + "progressSaved": "Your onboarding progress has been saved.", + "review": "Review onboarding", + "step": "Step", + "steps": { + "health": { + "description": "See how everything's running at a glance. Check if your systems are healthy and your network is connected.", + "title": "System Status" + }, + "instructions": { + "description": "Need help getting started? Find step-by-step guides and tips for making the most of Modular Apps.", + "title": "Help & Guides" + }, + "invite": { + "description": "Bring new people onto your team with secure invite codes or QR codes. Share them however works best for you.", + "title": "Invite People" + }, + "products": { + "description": "Launch the Team Awareness Kit and other apps you need. Everything's ready to go when you are.", + "title": "Your Apps" + }, + "users": { + "description": "See who's on your team, approve new members, and manage everyone's access. Keep things secure and organized.", + "title": "Team Members" + }, + "welcome": { + "description": "This is your home base for managing everything. Launch apps, check system status, and keep your team organized—all in one place.", + "title": "Welcome!" + } + }, + "title": "Onboard to Deploy App" + }, + "wintak": { + "description": "Välj den plattform du använder (1) om den inte detekteras korrekt. Ladda ner ditt paket (2). Läs instruktionerna för hur du importerar ditt paket (3)." + } }, "platform": { "android": "ATAK", - "choose": "V\u00e4lj plattform", + "choose": "Välj plattform", "ios": "iTAK", - "select_placeholder": "V\u00e4lj plattform", + "select_placeholder": "Välj plattform", "tracker": "TAK Tracker", "windows": "WinTAK" }, "tabs": { "android": { - "instructions_short": "Beh\u00f6ver du hj\u00e4lp med att importera paketet?", + "instructions_short": "Behöver du hjälp med att importera paketet?", "open_atak": "ATAK: Importera paketet automatiskt", + "open_atak_dialog": { + "description": "Klicka på knappen nedan för att öppna i ATAK", + "note": "När ATAK öppnas och frågar om import av ett paket med en lång länk, välj \"Yes\"", + "open": "Öppna ATAK och anslut till tjänsten", + "title": "Automatisk import av ATAK-uppdragspaket" + }, "open_atak_manual_note": "Eller importera paketet manuellt", - "open_instructions": "\u00d6ppna instruktioner", + "open_instructions": "Öppna instruktioner", "phase1": { - "step1_desc_civ": "Ladda ner appen ATAK-CIV fr\u00e5n Play Store och installera den:", + "step1_desc_civ": "Ladda ner appen ATAK-CIV från Play Store och installera den:", "step1_desc_sync": "Ladda ner ATAK Data Sync-pluginet och installera det:", "step1_title": "Ladda ner applikationerna", - "step2_desc_error": "Om applikationen ger ett felmeddelande, v\u00e4lj \"Wait\" (V\u00e4nta).", - "step2_desc_permissions": "\u00d6ppna appen och bevilja alla beg\u00e4rda beh\u00f6righeter.", - "step2_title": "\u00d6ppna ATAK-appen och ge beh\u00f6righeter" + "step2_desc_error": "Om applikationen ger ett felmeddelande, välj \"Wait\" (Vänta).", + "step2_desc_permissions": "Öppna appen och bevilja alla begärda behörigheter.", + "step2_title": "Öppna ATAK-appen och ge behörigheter" }, "phase2": { - "step1_desc_1": "N\u00e4r du \u00f6ppnar TAK-appen f\u00f6r f\u00f6rsta g\u00e5ngen visas TAK Device Setup.", - "step1_desc_2": "V\u00e4lj Data Package (Datapaket) f\u00f6r att forts\u00e4tta.", - "step1_desc_3": "Menyn f\u00f6r att v\u00e4lja datapaket \u00f6ppnas.", - "step1_title": "1. \u00d6ppna menyn Select Data Package", - "step2_desc_1": "Leta reda p\u00e5 mappen d\u00e4r du laddade ner din klientpaketfil 'Namn.zip'.", - "step2_desc_2": "Tips: Tryck p\u00e5 Date (Datum) f\u00f6r att se den senast nedladdade filen, troligen ditt klientpaket.", - "step2_desc_3": "V\u00e4lj filen f\u00f6r att forts\u00e4tta.", - "step2_title": "2. Hitta och v\u00e4lj zip-filen", - "step3_desc_1": "Tryck p\u00e5 Done (Klar).", - "step3_desc_2": "Du kommer att f\u00e5 flera notiser om att konfigurationsfiler laddas.", - "step3_desc_3": "Den initiala konfigurationen \u00e4r klar.", - "step3_desc_4": "Kontrollera det nedre h\u00f6gra h\u00f6rnet f\u00f6r att bekr\u00e4fta att din serveranslutning \u00e4r aktiv (gr\u00f6n lampa).", - "step3_title": "3. Tryck p\u00e5 Done - inst\u00e4llningar laddas" + "step1_desc_1": "När du öppnar TAK-appen för första gången visas TAK Device Setup.", + "step1_desc_2": "Välj Data Package (Datapaket) för att fortsätta.", + "step1_desc_3": "Menyn för att välja datapaket öppnas.", + "step1_title": "1. Öppna menyn Select Data Package", + "step2_desc_1": "Leta reda på mappen där du laddade ner din klientpaketfil 'Namn.zip'.", + "step2_desc_2": "Tips: Tryck på Date (Datum) för att se den senast nedladdade filen, troligen ditt klientpaket.", + "step2_desc_3": "Välj filen för att fortsätta.", + "step2_title": "2. Hitta och välj zip-filen", + "step3_desc_1": "Tryck på Done (Klar).", + "step3_desc_2": "Du kommer att få flera notiser om att konfigurationsfiler laddas.", + "step3_desc_3": "Den initiala konfigurationen är klar.", + "step3_desc_4": "Kontrollera det nedre högra hörnet för att bekräfta att din serveranslutning är aktiv (grön lampa).", + "step3_title": "3. Tryck på Done - inställningar laddas" }, "phase3": { - "step1_desc_1": "Tryck p\u00e5 de tre linjerna (hamburgermenyn) i det \u00f6vre h\u00f6gra h\u00f6rnet.", - "step1_desc_2": "Skrolla till botten av menyn och v\u00e4lj Settings (Inst\u00e4llningar).", - "step1_title": "1. \u00d6ppna Inst\u00e4llningar", - "step2_desc_1": "V\u00e4lj My Team (Mitt team) och v\u00e4lj den f\u00e4rg du instruerats att anv\u00e4nda.", - "step2_desc_2": "V\u00e4lj My Role (Min roll). Om inte annat anges av dina \u00f6verordnade b\u00f6r alla anv\u00e4ndare p\u00e5 ledningsplats anv\u00e4nda rollen Team Member (Teammedlem).", - "step2_desc_3": "Din roll och ditt team \u00e4r nu inst\u00e4llda.", - "step2_title": "2. St\u00e4ll in Team och Roll" + "step1_desc_1": "Tryck på de tre linjerna (hamburgermenyn) i det övre högra hörnet.", + "step1_desc_2": "Skrolla till botten av menyn och välj Settings (Inställningar).", + "step1_title": "1. Öppna Inställningar", + "step2_desc_1": "Välj My Team (Mitt team) och välj den färg du instruerats att använda.", + "step2_desc_2": "Välj My Role (Min roll). Om inte annat anges av dina överordnade bör alla användare på ledningsplats använda rollen Team Member (Teammedlem).", + "step2_desc_3": "Din roll och ditt team är nu inställda.", + "step2_title": "2. Ställ in Team och Roll" }, "phase4": { - "step1_desc_1": "a. \u00d6ppna hamburgermenyn i huvudvyn och hitta Plugins (Till\u00e4gg). (Du m\u00e5ste ha Data Sync-pluginet installerat fr\u00e5n Google Play.)", - "step1_desc_2": "b. Plugins-menyn \u00f6ppnas. Tryck p\u00e5 raden f\u00f6r Data Sync d\u00e4r det st\u00e5r \"Status: Not loaded.\"", - "step1_desc_3": "c. Appen fr\u00e5gar om du vill ladda Data Sync. Tryck p\u00e5 Load (Ladda).", - "step1_desc_4": "d. Statusen f\u00f6r Data Sync \u00e4ndras till Loaded (Laddad).", - "step1_desc_5": "Klart! Du kan st\u00e4nga menyn.", - "step1_title": "1. \u00d6ppna Data Sync-menyn", - "step2_desc_1": "\u00d6ppna hamburgermenyn i huvudvyn och v\u00e4lj Data Sync.", - "step2_desc_2": "N\u00e4r du \u00f6ppnar Data Sync-menyn visas tillg\u00e4ngliga fl\u00f6den fr\u00e5n servern.", - "step2_desc_3": "V\u00e4lj det/de fl\u00f6de(n) du instruerats att prenumerera p\u00e5 (exempel: RECON).", - "step2_desc_4": "V\u00e4lj Download & Sync (Ladda ner & Synkronisera) fr\u00e5n popup-f\u00f6nstret.", - "step2_desc_5": "Spaningsfl\u00f6det (Recon Feed) \u00e4r nu aktiverat. Du kommer att f\u00e5 mark\u00f6rer p\u00e5 din karta fr\u00e5n ledningsplatsen.", - "step2_title": "2. Aktivera Spaningsfl\u00f6de & andra fl\u00f6den", - "step3_desc_1": "Se till att Auto Download \u00e4r p\u00e5. \u00c5terg\u00e5 till huvudvyn och \u00f6ppna hamburgermenyn.", - "step3_desc_2": "Hitta Settings (Inst\u00e4llningar).", - "step3_desc_3": "Hitta inst\u00e4llningen Auto Download Updates och se till att den \u00e4r p\u00e5slagen.", - "step3_desc_4": "Detta s\u00e4kerst\u00e4ller att ATAK automatiskt laddar ner uppdateringar f\u00f6r dina prenumererade fl\u00f6den.", - "step3_title": "3. Sl\u00e5 p\u00e5 automatisk nedladdning" + "step1_desc_1": "a. Öppna hamburgermenyn i huvudvyn och hitta Plugins (Tillägg). (Du måste ha Data Sync-pluginet installerat från Google Play.)", + "step1_desc_2": "b. Plugins-menyn öppnas. Tryck på raden för Data Sync där det står \"Status: Not loaded.\"", + "step1_desc_3": "c. Appen frågar om du vill ladda Data Sync. Tryck på Load (Ladda).", + "step1_desc_4": "d. Statusen för Data Sync ändras till Loaded (Laddad).", + "step1_desc_5": "Klart! Du kan stänga menyn.", + "step1_title": "1. Öppna Data Sync-menyn", + "step2_desc_1": "Öppna hamburgermenyn i huvudvyn och välj Data Sync.", + "step2_desc_2": "När du öppnar Data Sync-menyn visas tillgängliga flöden från servern.", + "step2_desc_3": "Välj det/de flöde(n) du instruerats att prenumerera på (exempel: RECON).", + "step2_desc_4": "Välj Download & Sync (Ladda ner & Synkronisera) från popup-fönstret.", + "step2_desc_5": "Spaningsflödet (Recon Feed) är nu aktiverat. Du kommer att få markörer på din karta från ledningsplatsen.", + "step2_title": "2. Aktivera Spaningsflöde & andra flöden", + "step3_desc_1": "Se till att Auto Download är på. Återgå till huvudvyn och öppna hamburgermenyn.", + "step3_desc_2": "Hitta Settings (Inställningar).", + "step3_desc_3": "Hitta inställningen Auto Download Updates och se till att den är påslagen.", + "step3_desc_4": "Detta säkerställer att ATAK automatiskt laddar ner uppdateringar för dina prenumererade flöden.", + "step3_title": "3. Slå på automatisk nedladdning" }, "phase5": { - "step1_desc_1": "F\u00f6r att v\u00e4lja en kartbas, \u00f6ppna Maps (Kartor) fr\u00e5n verktygsf\u00e4ltet (\u00f6vre h\u00f6gra h\u00f6rnet).", - "step1_desc_2": "Bekr\u00e4fta eventuella notiser genom att trycka p\u00e5 OK.", - "step1_desc_3": "V\u00e4lj fliken Mobile och aktivera kartbasen 02 Google Hybrid.", - "step1_desc_4": "St\u00e4ng menyn genom att trycka p\u00e5 Back (Tillbaka) n\u00e5gra g\u00e5nger.", - "step1_title": "1. V\u00e4lj \u00f6nskad kartbas", - "step2_desc_1": "I ATAK \u00e4r enhetsinst\u00e4llningar vanligtvis f\u00f6rkonfigurerade av ditt installerade klientpaket. Kontrollera eller justera dem enligt f\u00f6ljande:", - "step2_desc_2_1": "\u00c5terg\u00e5 till huvudmenyn Settings (Inst\u00e4llningar).", - "step2_desc_2_2": "V\u00e4lj Display Preferences (Sk\u00e4rminst\u00e4llningar).", - "step2_desc_2_3": "V\u00e4lj Basic Display Preferences (Grundl\u00e4ggande sk\u00e4rminst\u00e4llningar).", - "step2_desc_2_4": "V\u00e4lj Unit Display Format Preferences (Enhetsformat).", - "step2_desc_2_5": "V\u00e4lj Altitude Units (H\u00f6jdenheter) och st\u00e4ll in p\u00e5 Meters (m).", - "step2_desc_2_6": "V\u00e4lj Speed Units (Hastighetsenheter) och v\u00e4lj KM per Hour (kmph).", - "step2_desc_2_7": "Skrolla till UNIT THRESHOLD, v\u00e4lj Meters to Kilometers, st\u00e4ll in p\u00e5 1000, och tryck p\u00e5 OK.", - "step2_desc_3": "Enheter \u00e4r nu inst\u00e4llda. St\u00e4ng menyn genom att trycka p\u00e5 tillbaka-knappen flera g\u00e5nger.", + "step1_desc_1": "För att välja en kartbas, öppna Maps (Kartor) från verktygsfältet (övre högra hörnet).", + "step1_desc_2": "Bekräfta eventuella notiser genom att trycka på OK.", + "step1_desc_3": "Välj fliken Mobile och aktivera kartbasen 02 Google Hybrid.", + "step1_desc_4": "Stäng menyn genom att trycka på Back (Tillbaka) några gånger.", + "step1_title": "1. Välj önskad kartbas", + "step2_desc_1": "I ATAK är enhetsinställningar vanligtvis förkonfigurerade av ditt installerade klientpaket. Kontrollera eller justera dem enligt följande:", + "step2_desc_2_1": "Återgå till huvudmenyn Settings (Inställningar).", + "step2_desc_2_2": "Välj Display Preferences (Skärminställningar).", + "step2_desc_2_3": "Välj Basic Display Preferences (Grundläggande skärminställningar).", + "step2_desc_2_4": "Välj Unit Display Format Preferences (Enhetsformat).", + "step2_desc_2_5": "Välj Altitude Units (Höjdenheter) och ställ in på Meters (m).", + "step2_desc_2_6": "Välj Speed Units (Hastighetsenheter) och välj KM per Hour (kmph).", + "step2_desc_2_7": "Skrolla till UNIT THRESHOLD, välj Meters to Kilometers, ställ in på 1000, och tryck på OK.", + "step2_desc_3": "Enheter är nu inställda. Stäng menyn genom att trycka på tillbaka-knappen flera gånger.", "step2_title": "2. Kontrollera enheter vid behov", - "step3_desc_1": "Din anropssignal \u00e4r vanligtvis inst\u00e4lld av ditt installerade klientpaket. F\u00f6r att \u00e4ndra den:", - "step3_desc_2_1": "V\u00e4lj Callsign and Device Preferences (Anropssignal och enhetsinst\u00e4llningar).", - "step3_desc_2_2": "V\u00e4lj Callsign Preferences (Inst\u00e4llningar f\u00f6r anropssignal).", - "step3_desc_2_3": "V\u00e4lj My Callsign (Min anropssignal).", + "step3_desc_1": "Din anropssignal är vanligtvis inställd av ditt installerade klientpaket. För att ändra den:", + "step3_desc_2_1": "Välj Callsign and Device Preferences (Anropssignal och enhetsinställningar).", + "step3_desc_2_2": "Välj Callsign Preferences (Inställningar för anropssignal).", + "step3_desc_2_3": "Välj My Callsign (Min anropssignal).", "step3_desc_2_4": "Ange din tilldelade anropssignal (exempel: Rambo).", - "step3_desc_2_5": "Tryck p\u00e5 OK.", - "step3_title": "3. Kontrollera och \u00e4ndra anropssignal vid behov" + "step3_desc_2_5": "Tryck på OK.", + "step3_title": "3. Kontrollera och ändra anropssignal vid behov" }, "step1_download": "Ladda ner zip-paketet:", "step2_install": "Importera paketet till appen.", - "step3_done": "ATAK \u00e4r redo att anv\u00e4ndas.", + "step3_done": "ATAK är redo att användas.", "title": "Installation av ATAK-paket", "wizard_title": { "phase1": "Installera Android-appar", "phase2": "Importera datapaket", - "phase3": "Justera inst\u00e4llningar", + "phase3": "Justera inställningar", "phase4": "Data Sync", - "phase5": "Slutf\u00f6r installation" + "phase5": "Slutför installation" } }, "ios": { - "instructions_short": "Beh\u00f6ver du hj\u00e4lp med att importera paketet?", - "open_instructions": "\u00d6ppna instruktioner", + "instructions_short": "Behöver du hjälp med att importera paketet?", + "open_instructions": "Öppna instruktioner", "phase1": { "download_client_package": "Ladda ner ditt klientpaket", - "step1_desc_1": "Ladda ner iTAK-appen fr\u00e5n App Store och installera den.", - "step1_desc_2": "Tryck p\u00e5 knappen nedan f\u00f6r att h\u00e4mta appen.", + "step1_desc_1": "Ladda ner iTAK-appen från App Store och installera den.", + "step1_desc_2": "Tryck på knappen nedan för att hämta appen.", "step1_desc_title": "Ladda ner iTAK", "step1_title": "1. Ladda ner applikationerna", - "step2_desc_1": "Ladda ner ditt klientpaket genom att trycka p\u00e5 den gr\u00f6na knappen nedan.", - "step2_desc_2": "Du kan \u00e4ven hitta samma knapp p\u00e5 framsidan.", + "step2_desc_1": "Ladda ner ditt klientpaket genom att trycka på den gröna knappen nedan.", + "step2_desc_2": "Du kan även hitta samma knapp på framsidan.", "step2_desc_title": "Ladda ner ditt klientpaket", "step2_title": "2. Ladda ner ditt klientpaket", - "zip_file_warning": "OBS! Zip-filen beh\u00f6ver inte extraheras!" + "zip_file_warning": "OBS! Zip-filen behöver inte extraheras!" }, "phase2": { - "step1_desc_1": "\u00d6ppna iTAK-appen.", - "step1_desc_2": "N\u00e4r appen fr\u00e5gar: \"iTAK vill hitta och ansluta till enheter p\u00e5 ditt lokala n\u00e4tverk...\", v\u00e4lj Inte till\u00e5t.", + "step1_desc_1": "Öppna iTAK-appen.", + "step1_desc_2": "När appen frågar: \"iTAK vill hitta och ansluta till enheter på ditt lokala nätverk...\", välj Inte tillåt.", "step1_title": "Starta applikationen", - "step2_desc_1": "Fyll i profilinst\u00e4llningarna:", - "step2_desc_2": "Ange ditt alias i f\u00e4ltet Callsign, till exempel, Rambo. Fyll inte i telefonf\u00e4ltet. Tryck sedan p\u00e5 N\u00e4sta.", + "step2_desc_1": "Fyll i profilinställningarna:", + "step2_desc_2": "Ange ditt alias i fältet Callsign, till exempel, Rambo. Fyll inte i telefonfältet. Tryck sedan på Nästa.", "step2_title": "Ange ditt callsign", - "step3_desc_1": "Fyll i teaminst\u00e4llningarna:", - "step3_desc_2": "I f\u00e4ltet V\u00e4lj team, v\u00e4lj din teams f\u00e4rg fr\u00e5n rullgardinsmenyn (som du b\u00f6r ha blivit instruerad att v\u00e4lja). I f\u00e4ltet V\u00e4lj teamroll, v\u00e4lj rollen Teammedlem, om inte annat instruerats.\nAnv\u00e4ndare av kommandopost kommer att s\u00e4tta sin roll till HQ.\nTryck sedan p\u00e5 N\u00e4sta.", - "step3_title": "St\u00e4ll in teaminst\u00e4llningar", - "step4_desc_1": "a. St\u00e4ll in integritetsinst\u00e4llningarna f\u00f6r att till\u00e5ta aviseringar och platsinformation.", - "step4_desc_2": "iOS kommer sedan att fr\u00e5ga om du till\u00e5ter iTAK att skicka aviseringar och anv\u00e4nda din plats. V\u00e4lj Till\u00e5t f\u00f6r aviseringar.", - "step4_desc_3": "V\u00e4lj Till\u00e5t medan appen anv\u00e4nds f\u00f6r platsinformation.", - "step4_desc_4": "Efter detta, g\u00e5 vidare f\u00f6r att etablera serveranslutningen med ditt klientpaket.", - "step4_title": "Ge appen de n\u00f6dv\u00e4ndiga beh\u00f6righeterna" + "step3_desc_1": "Fyll i teaminställningarna:", + "step3_desc_2": "I fältet Välj team, välj din teams färg från rullgardinsmenyn (som du bör ha blivit instruerad att välja). I fältet Välj teamroll, välj rollen Teammedlem, om inte annat instruerats.\nAnvändare av kommandopost kommer att sätta sin roll till HQ.\nTryck sedan på Nästa.", + "step3_title": "Ställ in teaminställningar", + "step4_desc_1": "a. Ställ in integritetsinställningarna för att tillåta aviseringar och platsinformation.", + "step4_desc_2": "iOS kommer sedan att fråga om du tillåter iTAK att skicka aviseringar och använda din plats. Välj Tillåt för aviseringar.", + "step4_desc_3": "Välj Tillåt medan appen används för platsinformation.", + "step4_desc_4": "Efter detta, gå vidare för att etablera serveranslutningen med ditt klientpaket.", + "step4_title": "Ge appen de nödvändiga behörigheterna" }, "phase3": { - "step1_desc_1": "a. G\u00e5 till kartvyn och scrolla verktygsf\u00e4ltet \u00e5t h\u00f6ger tills du hittar Paketikonen.", - "step1_important": "Viktigt! F\u00f6rs\u00f6k inte installera klientpaketet via iTAK Inst\u00e4llningar->N\u00e4tverk->Server!. Det kommer inte att fungera.", - "step1_title": "\u00d6ppna Pakethanteraren", - "step2_desc_1": "b. Pakethanteraren \u00f6ppnas, den kommer att vara tom. Tryck p\u00e5 plusikonen l\u00e4ngst ner till h\u00f6ger f\u00f6r att l\u00e4gga till ditt meddelandemallpaket.", - "step2_desc_2": "c. V\u00e4lj Lokal enhet.", - "step2_desc_3": "d. V\u00e4lj ditt paket. Det kommer att vara en zip-fil som heter DittCallsign.zip.", - "step2_desc_4": "e. Som en bekr\u00e4ftelse p\u00e5 att det lyckades, kommer listan i Pakethanteraren att visa serverns callsign och ett gr\u00f6nt ljus. \u00c5terg\u00e5 till kartvyn.", - "step2_desc_5": "Serveranslutningen \u00e4r nu etablerad. Som en bekr\u00e4ftelse kommer l\u00e4ngst ner till h\u00f6ger p\u00e5 kartan att visas gr\u00f6nt \"Ansluten\".", - "step2_title": "L\u00e4gg till ditt meddelandemallpaket till iTAK" + "step1_desc_1": "a. Gå till kartvyn och scrolla verktygsfältet åt höger tills du hittar Paketikonen.", + "step1_important": "Viktigt! Försök inte installera klientpaketet via iTAK Inställningar->Nätverk->Server!. Det kommer inte att fungera.", + "step1_title": "Öppna Pakethanteraren", + "step2_desc_1": "b. Pakethanteraren öppnas, den kommer att vara tom. Tryck på plusikonen längst ner till höger för att lägga till ditt meddelandemallpaket.", + "step2_desc_2": "c. Välj Lokal enhet.", + "step2_desc_3": "d. Välj ditt paket. Det kommer att vara en zip-fil som heter DittCallsign.zip.", + "step2_desc_4": "e. Som en bekräftelse på att det lyckades, kommer listan i Pakethanteraren att visa serverns callsign och ett grönt ljus. Återgå till kartvyn.", + "step2_desc_5": "Serveranslutningen är nu etablerad. Som en bekräftelse kommer längst ner till höger på kartan att visas grönt \"Ansluten\".", + "step2_title": "Lägg till ditt meddelandemallpaket till iTAK" }, "phase4": { - "step1_desc_1": "a. \u00d6ppna inst\u00e4llningar igen fr\u00e5n kugghjulsikonen uppe till v\u00e4nster.", - "step1_desc_2": "b. V\u00e4lj Preferenser fr\u00e5n huvudinst\u00e4llningsmenyn.", - "step1_desc_3": "F\u00f6rbered f\u00f6r att st\u00e4lla in korrekta m\u00e5ttenheter och koordinatsystem.", - "step1_title": "\u00d6ppna inst\u00e4llningar", - "step2_desc_1": "V\u00e4lj Enheter:", - "step2_desc_2": "V\u00e4lj MGRS f\u00f6r koordinatformat och Meter f\u00f6r avst\u00e5ndsformat.", - "step2_title": "St\u00e4ll in enheter", - "step3_desc_1": "a. Om du vill \u00e4ndra kartk\u00e4lla, v\u00e4lj Kartk\u00e4lla fr\u00e5n huvudinst\u00e4llningsmenyn.", - "step3_desc_2": "b. V\u00e4lj den kartk\u00e4lla du \u00f6nskar. Observera! Tillg\u00e4nglighet kan variera.", - "step3_desc_3": "Bra! Du har nu st\u00e4llt in iTAK f\u00f6r anv\u00e4ndning.\nOm du beh\u00f6ver redigera ditt callsign kan du g\u00f6ra det fr\u00e5n inst\u00e4llningsmenyn genom att klicka p\u00e5 ditt callsign.", - "step3_title": "\u00c4ndra eventuellt kartk\u00e4lla" + "step1_desc_1": "a. Öppna inställningar igen från kugghjulsikonen uppe till vänster.", + "step1_desc_2": "b. Välj Preferenser från huvudinställningsmenyn.", + "step1_desc_3": "Förbered för att ställa in korrekta måttenheter och koordinatsystem.", + "step1_title": "Öppna inställningar", + "step2_desc_1": "Välj Enheter:", + "step2_desc_2": "Välj MGRS för koordinatformat och Meter för avståndsformat.", + "step2_title": "Ställ in enheter", + "step3_desc_1": "a. Om du vill ändra kartkälla, välj Kartkälla från huvudinställningsmenyn.", + "step3_desc_2": "b. Välj den kartkälla du önskar. Observera! Tillgänglighet kan variera.", + "step3_desc_3": "Bra! Du har nu ställt in iTAK för användning.\nOm du behöver redigera ditt callsign kan du göra det från inställningsmenyn genom att klicka på ditt callsign.", + "step3_title": "Ändra eventuellt kartkälla" }, "phase5": { - "step1_desc_1": "I huvudvyn, \u00f6ppna verktygsmenyn (l\u00e4ngst ner) och scrolla till h\u00f6ger f\u00f6r att hitta Data Synkronisering-menyn.", - "step1_title": "\u00d6ppna Data Synkronisering-menyn", - "step2_desc_1": "I Data Synkronisering-menyn, tryck p\u00e5 Prenumerera-knappen.", - "step2_desc_2": "V\u00e4lj den tillg\u00e4ngliga servern (namnet p\u00e5 din insats b\u00f6r dyka upp, t.ex. 'positive-beetle.').", - "step2_desc_3": "I den kommande vyn, v\u00e4lj RECON-fl\u00f6det och eventuellt n\u00e5got annat fl\u00f6de du blivit instruerad att prenumerera p\u00e5.", - "step2_title": "Prenumerera p\u00e5 fl\u00f6det", - "step3_desc_1": "Fr\u00e5n och med nu \u00e4r Recon-fl\u00f6det, som skapats och uppdaterats av anv\u00e4ndarna p\u00e5 kommandoposten, tillg\u00e4ngligt f\u00f6r dig.", - "step3_desc_2": "Fl\u00f6det kommer att visas i din Data Synkronisering-meny. Instruktioner f\u00f6r att anv\u00e4nda fl\u00f6det finns i gruppinstruktionerna.", - "step3_title": "Fl\u00f6det \u00e4r tillg\u00e4ngligt" + "step1_desc_1": "I huvudvyn, öppna verktygsmenyn (längst ner) och scrolla till höger för att hitta Data Synkronisering-menyn.", + "step1_title": "Öppna Data Synkronisering-menyn", + "step2_desc_1": "I Data Synkronisering-menyn, tryck på Prenumerera-knappen.", + "step2_desc_2": "Välj den tillgängliga servern (namnet på din insats bör dyka upp, t.ex. 'positive-beetle.').", + "step2_desc_3": "I den kommande vyn, välj RECON-flödet och eventuellt något annat flöde du blivit instruerad att prenumerera på.", + "step2_title": "Prenumerera på flödet", + "step3_desc_1": "Från och med nu är Recon-flödet, som skapats och uppdaterats av användarna på kommandoposten, tillgängligt för dig.", + "step3_desc_2": "Flödet kommer att visas i din Data Synkronisering-meny. Instruktioner för att använda flödet finns i gruppinstruktionerna.", + "step3_title": "Flödet är tillgängligt" }, "step1_download": "Ladda ner zip-paketet:", "step2_install": "Importera paketet.", - "step3_done": "Klart, iTAK \u00e4r redo att anv\u00e4ndas.", + "step3_done": "Klart, iTAK är redo att användas.", "title": "iTAK Paketinstallation", "wizard_title": { "phase1": "Installera iOS-appar", - "phase2": "G\u00f6r de grundl\u00e4ggande inst\u00e4llningarna", + "phase2": "Gör de grundläggande inställningarna", "phase3": "Anslut till servern", - "phase4": "St\u00e4ll in enheter", + "phase4": "Ställ in enheter", "phase5": "Aktivera Data Synkronisering" } }, "tracker": { "step1_download": "Ladda ner zip-paketet:", "step2_install": "Importera paketet.", - "step3_done": "Klart, TAK Tracker \u00e4r redo att anv\u00e4ndas.", + "step3_done": "Klart, TAK Tracker är redo att användas.", "title": "TAK Tracker Paketinstallation" }, "windows": { - "instructions_short": "Beh\u00f6ver du hj\u00e4lp med att importera paketet?", - "open_instructions": "\u00d6ppna instruktioner", + "instructions_short": "Behöver du hjälp med att importera paketet?", + "open_instructions": "Öppna instruktioner", "phase1": { - "step1_desc_1": "WinTAK kr\u00e4ver att arbetsstationens spr\u00e5k \u00e4r engelska och regioninst\u00e4llningen \u00e4r USA.", - "step1_desc_2": "Innan du installerar applikationen, s\u00f6k efter Tid och Spr\u00e5k fr\u00e5n s\u00f6kf\u00e4ltet (nere till v\u00e4nster).", - "step1_desc_3": "F\u00f6rst, l\u00e5t oss \u00e4ndra regioninst\u00e4llningen. V\u00e4lj Region fr\u00e5n sidomenyn i Tid och Spr\u00e5k.", - "step1_desc_4": "V\u00e4lj USA f\u00f6r land eller region. Se till att regionalformatet ocks\u00e5 \u00e4r inst\u00e4llt p\u00e5 Engelska (USA).", - "step1_title": "1. St\u00e4ll in din region till USA", - "step2_desc_1": "Fr\u00e5n sidomenyn i Tid och Spr\u00e5k-menyn, v\u00e4lj Spr\u00e5k.", - "step2_desc_2": "St\u00e4ll in Windows visningsspr\u00e5k till Engelska (USA).", - "step2_desc_3": "Slutf\u00f6r \u00e4ndringen av visningsspr\u00e5ket genom att logga ut och logga in igen.", - "step2_title": "2. St\u00e4ll in spr\u00e5k till Engelska (US)", - "step3_desc_1": "Om engelska inte finns tillg\u00e4ngligt i visningsspr\u00e5kalternativen, tryck p\u00e5 L\u00e4gg till ett spr\u00e5k och s\u00f6k efter det.", - "step3_desc_2": "Tryck p\u00e5 Installera spr\u00e5kpaket. V\u00e4nta p\u00e5 att spr\u00e5kpaketet installeras.", - "step3_desc_3": "D\u00e4refter kan du v\u00e4lja Engelska som visningsspr\u00e5k enligt steg 2.", - "step3_desc_4": "Spr\u00e5kinst\u00e4llningarna \u00e4r nu klara.", - "step3_title": "3. Om n\u00f6dv\u00e4ndigt, l\u00e4gg till spr\u00e5kpaket (Engelska)" + "step1_desc_1": "WinTAK kräver att arbetsstationens språk är engelska och regioninställningen är USA.", + "step1_desc_2": "Innan du installerar applikationen, sök efter Tid och Språk från sökfältet (nere till vänster).", + "step1_desc_3": "Först, låt oss ändra regioninställningen. Välj Region från sidomenyn i Tid och Språk.", + "step1_desc_4": "Välj USA för land eller region. Se till att regionalformatet också är inställt på Engelska (USA).", + "step1_title": "1. Ställ in din region till USA", + "step2_desc_1": "Från sidomenyn i Tid och Språk-menyn, välj Språk.", + "step2_desc_2": "Ställ in Windows visningsspråk till Engelska (USA).", + "step2_desc_3": "Slutför ändringen av visningsspråket genom att logga ut och logga in igen.", + "step2_title": "2. Ställ in språk till Engelska (US)", + "step3_desc_1": "Om engelska inte finns tillgängligt i visningsspråkalternativen, tryck på Lägg till ett språk och sök efter det.", + "step3_desc_2": "Tryck på Installera språkpaket. Vänta på att språkpaketet installeras.", + "step3_desc_3": "Därefter kan du välja Engelska som visningsspråk enligt steg 2.", + "step3_desc_4": "Språkinställningarna är nu klara.", + "step3_title": "3. Om nödvändigt, lägg till språkpaket (Engelska)" }, "phase2": { - "step1_desc_1": "Ladda ner WinTAK-applikationen fr\u00e5n F\u00f6rsvarsmaktens angivna plats.", - "step1_desc_2": "Viktigt! Ladda bara ner Windows-applikationer fr\u00e5n den angivna platsen.", + "step1_desc_1": "Ladda ner WinTAK-applikationen från Försvarsmaktens angivna plats.", + "step1_desc_2": "Viktigt! Ladda bara ner Windows-applikationer från den angivna platsen.", "step1_title": "1. Ladda ner WinTAK", "step3_desc_1": "Hitta den nedladdade zip-filen och extrahera den. Lokalisera .msi installationsfilen i zip:ens Produkter-mapp.", - "step3_desc_2": "Dubbelklicka p\u00e5 .msi-filen f\u00f6r att \u00f6ppna installationsprogrammet.", - "step3_title": "2. \u00d6ppna Installationsprogrammet", - "step4_desc_1": "Installera WinTAK med Hj\u00e4lpmedelsguiden.", - "step4_desc_2": "Tryck p\u00e5 N\u00e4sta. V\u00e4lj installationsmapp f\u00f6r applikationen.", - "step4_desc_3": "Valfritt, \u00e4ndra installationsmappen via knappen Bl\u00e4ddra. Tryck p\u00e5 N\u00e4sta.", - "step4_desc_4": "V\u00e4lj komponenter som ska installeras i Hj\u00e4lpmedelsguiden. V\u00e4lj \u00e5tminstone f\u00f6ljande komponent: Data Synk.", - "step4_desc_5": "Tryck p\u00e5 N\u00e4sta. Guiden \u00e4r redo att b\u00f6rja installationen, tryck p\u00e5 Installera.", + "step3_desc_2": "Dubbelklicka på .msi-filen för att öppna installationsprogrammet.", + "step3_title": "2. Öppna Installationsprogrammet", + "step4_desc_1": "Installera WinTAK med Hjälpmedelsguiden.", + "step4_desc_2": "Tryck på Nästa. Välj installationsmapp för applikationen.", + "step4_desc_3": "Valfritt, ändra installationsmappen via knappen Bläddra. Tryck på Nästa.", + "step4_desc_4": "Välj komponenter som ska installeras i Hjälpmedelsguiden. Välj åtminstone följande komponent: Data Synk.", + "step4_desc_5": "Tryck på Nästa. Guiden är redo att börja installationen, tryck på Installera.", "step4_title": "3. Installera med Installationsprogrammet" }, "phase3": { - "step1_desc": "\u00d6ppna WinTAK-applikationen fr\u00e5n skrivbordet.", - "step1_title": "1. \u00d6ppna applikationen", - "step2_desc_1": "Efter en stund kommer Enhetsinst\u00e4llningsguiden att \u00f6ppnas.", - "step2_desc_2": "Som f\u00f6rsta steg, acceptera EULA.", + "step1_desc": "Öppna WinTAK-applikationen från skrivbordet.", + "step1_title": "1. Öppna applikationen", + "step2_desc_1": "Efter en stund kommer Enhetsinställningsguiden att öppnas.", + "step2_desc_2": "Som första steg, acceptera EULA.", "step2_title": "2. Acceptera EULA", - "step3_desc_1": "N\u00e4sta, etablera serveranslutning.", - "step3_desc_2": "a. Applikationen kommer att fr\u00e5ga om du vill importera ett datapaket.", - "step3_desc_3": "b. V\u00e4lj 'Ja'. Peka p\u00e5 Klientpaketet.", - "step3_desc_4": "N\u00e4r du har valt paketet och tryckt p\u00e5 \u00d6ppna, kommer f\u00f6nstret V\u00e4lj importstrategi att \u00f6ppnas.", - "step3_desc_5": "c. V\u00e4lj 'UserPreferenceImportStrategy', och tryck p\u00e5 OK.", + "step3_desc_1": "Nästa, etablera serveranslutning.", + "step3_desc_2": "a. Applikationen kommer att fråga om du vill importera ett datapaket.", + "step3_desc_3": "b. Välj 'Ja'. Peka på Klientpaketet.", + "step3_desc_4": "När du har valt paketet och tryckt på Öppna, kommer fönstret Välj importstrategi att öppnas.", + "step3_desc_5": "c. Välj 'UserPreferenceImportStrategy', och tryck på OK.", "step3_title": "3. Etablera serveranslutning", "step4_desc_1": "Med meddelandepaketet kan olika kartbakgrunder komma.", - "step4_title": "4. V\u00e4lj kartbakgrund", - "step5_desc_1": "Enhetsinst\u00e4llningsguiden kommer att fr\u00e5ga om du vill definiera ditt callsign.", - "step5_desc_2": "Dessa beh\u00f6vs inte, rensa rutorna och tryck p\u00e5 OK.", - "step5_title": "5. St\u00e4ll in callsign", - "step6_desc_1": "Applikationen kommer att fr\u00e5ga om plugins ska installeras.", - "step6_desc_2": "N\u00e4sta, kommer applikationen att fr\u00e5ga om DTED-0 h\u00f6jdsmodeller ska laddas ner automatiskt.", - "step6_title": "6. St\u00e4ll in Plugins", - "step7_desc_1": "Nu har WinTAK:s grundl\u00e4ggande inst\u00e4llningar gjorts. L\u00e5t oss kontrollera 'Mina preferenser'.", - "step7_desc_2": "Kontrollera \u00e4ven TAK-n\u00e4tverksstatusen. En gr\u00f6n moln betyder att serveranslutningen \u00e4r OK, r\u00f6d betyder att den \u00e4r fr\u00e5nkopplad.", - "step7_title": "7. Granska inst\u00e4llningar" + "step4_title": "4. Välj kartbakgrund", + "step5_desc_1": "Enhetsinställningsguiden kommer att fråga om du vill definiera ditt callsign.", + "step5_desc_2": "Dessa behövs inte, rensa rutorna och tryck på OK.", + "step5_title": "5. Ställ in callsign", + "step6_desc_1": "Applikationen kommer att fråga om plugins ska installeras.", + "step6_desc_2": "Nästa, kommer applikationen att fråga om DTED-0 höjdsmodeller ska laddas ner automatiskt.", + "step6_title": "6. Ställ in Plugins", + "step7_desc_1": "Nu har WinTAK:s grundläggande inställningar gjorts. Låt oss kontrollera 'Mina preferenser'.", + "step7_desc_2": "Kontrollera även TAK-nätverksstatusen. En grön moln betyder att serveranslutningen är OK, röd betyder att den är frånkopplad.", + "step7_title": "7. Granska inställningar" }, "phase4": { - "step1_desc_1": "Kontrollera WinTAK:s enhetsinst\u00e4llningar.", - "step1_desc_2": "Tryck p\u00e5 de tre staplade linjerna, hamburger-menyn, i det \u00f6vre v\u00e4nstra h\u00f6rnet.", - "step1_desc_3": "V\u00e4lj Inst\u00e4llningar.", - "step1_desc_4": "V\u00e4lj Visningspreferenser.", - "step1_desc_5": "Visningspreferenser-menyn \u00f6ppnas. V\u00e4lj Enhetsvisningsformat.", - "step1_desc_6": "Kontrollera att inst\u00e4llningarna \u00e4r som visas p\u00e5 bilden. \u00c4ndra om det beh\u00f6vs.", - "step1_title": "1. Kontrollera enhetsinst\u00e4llningar", - "step2_desc": "TBD: Fels\u00f6kning.", - "step2_title": "2. Fels\u00f6kning" + "step1_desc_1": "Kontrollera WinTAK:s enhetsinställningar.", + "step1_desc_2": "Tryck på de tre staplade linjerna, hamburger-menyn, i det övre vänstra hörnet.", + "step1_desc_3": "Välj Inställningar.", + "step1_desc_4": "Välj Visningspreferenser.", + "step1_desc_5": "Visningspreferenser-menyn öppnas. Välj Enhetsvisningsformat.", + "step1_desc_6": "Kontrollera att inställningarna är som visas på bilden. Ändra om det behövs.", + "step1_title": "1. Kontrollera enhetsinställningar", + "step2_desc": "TBD: Felsökning.", + "step2_title": "2. Felsökning" }, "step1_download": "Ladda ner zip-paketet:", - "step1_note": "WinTAK anv\u00e4nder samma paket som ATAK", + "step1_note": "WinTAK använder samma paket som ATAK", "step2_install": "Importera paketet.", - "step3_done": "Klart, WinTAK \u00e4r redo att anv\u00e4ndas.", + "step3_done": "Klart, WinTAK är redo att användas.", "title": "WinTAK Paketinstallation", "wizard_title": { - "phase1": "St\u00e4ll in Windows PC:s spr\u00e5k till engelska", + "phase1": "Ställ in Windows PC:s språk till engelska", "phase2": "Ladda ner och installera WinTAK", "phase3": "Konfigurera WinTAK", - "phase4": "St\u00e4ll in m\u00e5ttenheter" + "phase4": "Ställ in måttenheter" } } }, "wizard": { "complete": "Klar", - "next": "N\u00e4sta", - "previous": "F\u00f6reg\u00e5ende", + "next": "Nästa", + "previous": "Föregående", "step_counter": "Steg {{current}} av {{total}}" } } diff --git a/ui/tsconfig.json b/ui/tsconfig.json index bba8efa..230eb0a 100644 --- a/ui/tsconfig.json +++ b/ui/tsconfig.json @@ -7,21 +7,13 @@ "forceConsistentCasingInFileNames": true, "isolatedModules": true, "jsx": "react-jsx", - "lib": [ - "DOM", - "DOM.Iterable", - "ESNext" - ], + "lib": ["DOM", "DOM.Iterable", "ESNext"], "module": "ESNext", "moduleResolution": "Node", "noEmit": true, "paths": { - "@/*": [ - "./src/*" - ], - "shared": [ - "../shared/shared.ts" - ] + "@/*": ["./src/*"], + "shared": ["../shared/shared.ts"] }, "resolveJsonModule": true, "skipLibCheck": true, @@ -29,9 +21,7 @@ "target": "ESNext", "useDefineForClassFields": true }, - "include": [ - "src" - ], + "include": ["src"], "references": [ { "path": "./tsconfig.node.json" diff --git a/ui/tsconfig.node.json b/ui/tsconfig.node.json index a1a7098..ff5c16e 100644 --- a/ui/tsconfig.node.json +++ b/ui/tsconfig.node.json @@ -6,13 +6,8 @@ "module": "ESNext", "moduleResolution": "bundler", "paths": { - "@/*": [ - "./src/*" - ] + "@/*": ["./src/*"] } }, - "include": [ - "vite.config.ts", - "module-federation/vite-importmap-shim.ts" - ] + "include": ["vite.config.ts", "module-federation/vite-importmap-shim.ts"] }