From 60480bfdcac31f352798fd0d951bcbebcb0ca9b1 Mon Sep 17 00:00:00 2001 From: sli-tao Date: Wed, 16 Apr 2025 13:19:43 -0700 Subject: [PATCH] remove miner dash files --- miner_objects/dashboard.py | 9 - miner_objects/miner_dashboard/.gitignore | 24 - .../miner_dashboard/eslint.config.js | 28 - miner_objects/miner_dashboard/index.html | 13 - miner_objects/miner_dashboard/package.json | 57 - miner_objects/miner_dashboard/pnpm-lock.yaml | 3788 ----------------- .../miner_dashboard/postcss.config.cjs | 14 - .../miner_dashboard/postcss.config.js | 6 - miner_objects/miner_dashboard/public/vite.svg | 1 - .../miner_dashboard/src/assets/react.svg | 1 - .../src/components/App/App.css | 3 - .../src/components/App/App.tsx | 82 - .../src/components/App/index.ts | 1 - .../src/components/AppHeader/AppHeader.tsx | 77 - .../src/components/AppHeader/index.ts | 1 - .../src/components/Challenges/Challenges.tsx | 57 - .../src/components/Challenges/index.ts | 1 - .../components/Checkpoints/Checkpoints.tsx | 109 - .../src/components/Checkpoints/index.ts | 1 - .../components/Contribution/Contribution.tsx | 69 - .../src/components/Contribution/index.ts | 1 - .../src/components/Copy/Copy.tsx | 24 - .../src/components/Copy/index.ts | 1 - .../ErrorBoundary/ErrorBoundary.tsx | 36 - .../src/components/ErrorBoundary/index.ts | 3 - .../ErrorFallback/ErrorFallback.tsx | 16 - .../src/components/ErrorFallback/index.ts | 1 - .../src/components/Main/Main.tsx | 30 - .../src/components/Main/index.ts | 1 - .../src/components/Margins/Margins.tsx | 179 - .../src/components/Margins/index.ts | 1 - .../src/components/Orders/Orders.tsx | 145 - .../src/components/Orders/index.ts | 1 - .../src/components/Orders/orders.module.css | 11 - .../OverviewGraph/OverviewGraph.tsx | 149 - .../src/components/OverviewGraph/index.ts | 1 - .../components/PenaltyCard/PenaltyCard.tsx | 66 - .../src/components/PenaltyCard/index.ts | 1 - .../src/components/Positions/Positions.tsx | 161 - .../src/components/Positions/index.ts | 1 - .../src/components/ScoreCard/ScoreCard.tsx | 41 - .../src/components/ScoreCard/index.ts | 1 - .../src/components/Sources/Sources.tsx | 146 - .../src/components/Sources/index.ts | 1 - .../src/components/Sources/sources.module.css | 20 - .../src/components/StatCard/StatCard.tsx | 88 - .../src/components/StatCard/index.ts | 1 - .../src/components/Statistics/Statistics.tsx | 125 - .../src/components/Statistics/index.ts | 1 - .../src/components/Tremor/Badge/Badge.tsx | 61 - .../src/components/Tremor/Badge/index.ts | 1 - .../src/components/Tremor/Card/Card.tsx | 34 - .../src/components/Tremor/Card/index.ts | 1 - .../Tremor/CategoryBar/CategoryBar.tsx | 216 - .../components/Tremor/CategoryBar/index.ts | 1 - .../Tremor/ProgressBar/ProgressBar.tsx | 168 - .../components/Tremor/ProgressBar/index.ts | 1 - .../src/components/Tremor/Tooltip/Tooltip.tsx | 94 - .../src/components/Tremor/Tooltip/index.ts | 1 - .../src/components/Tremor/index.ts | 2 - .../src/fonts/ADLaMDisplay-Regular.ttf | Bin 96904 -> 0 bytes .../src/fonts/SpaceMono-Bold.ttf | Bin 86636 -> 0 bytes .../src/fonts/SpaceMono-BoldItalic.ttf | Bin 95292 -> 0 bytes .../src/fonts/SpaceMono-Italic.ttf | Bin 103524 -> 0 bytes .../src/fonts/SpaceMono-Regular.ttf | Bin 90904 -> 0 bytes miner_objects/miner_dashboard/src/index.css | 64 - .../miner_dashboard/src/lib/axios.ts | 24 - .../miner_dashboard/src/lib/chart.ts | 132 - .../miner_dashboard/src/lib/index.ts | 2 - miner_objects/miner_dashboard/src/main.tsx | 22 - .../miner_dashboard/src/theme/colors.ts | 14 - .../miner_dashboard/src/theme/index.ts | 15 - .../miner_dashboard/src/types/index.ts | 138 - .../miner_dashboard/src/utils/index.ts | 81 - .../miner_dashboard/src/vite-env.d.ts | 1 - .../miner_dashboard/tailwind.config.js | 87 - .../miner_dashboard/tsconfig.app.json | 24 - miner_objects/miner_dashboard/tsconfig.json | 7 - .../miner_dashboard/tsconfig.node.json | 22 - miner_objects/miner_dashboard/vite.config.ts | 7 - neurons/miner.py | 49 - 81 files changed, 6864 deletions(-) delete mode 100644 miner_objects/miner_dashboard/.gitignore delete mode 100644 miner_objects/miner_dashboard/eslint.config.js delete mode 100644 miner_objects/miner_dashboard/index.html delete mode 100644 miner_objects/miner_dashboard/package.json delete mode 100644 miner_objects/miner_dashboard/pnpm-lock.yaml delete mode 100644 miner_objects/miner_dashboard/postcss.config.cjs delete mode 100644 miner_objects/miner_dashboard/postcss.config.js delete mode 100644 miner_objects/miner_dashboard/public/vite.svg delete mode 100644 miner_objects/miner_dashboard/src/assets/react.svg delete mode 100644 miner_objects/miner_dashboard/src/components/App/App.css delete mode 100644 miner_objects/miner_dashboard/src/components/App/App.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/App/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/AppHeader/AppHeader.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/AppHeader/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Challenges/Challenges.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Challenges/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Checkpoints/Checkpoints.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Checkpoints/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Contribution/Contribution.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Contribution/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Copy/Copy.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Copy/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/ErrorBoundary/ErrorBoundary.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/ErrorBoundary/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/ErrorFallback/ErrorFallback.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/ErrorFallback/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Main/Main.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Main/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Margins/Margins.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Margins/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Orders/Orders.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Orders/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Orders/orders.module.css delete mode 100644 miner_objects/miner_dashboard/src/components/OverviewGraph/OverviewGraph.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/OverviewGraph/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/PenaltyCard/PenaltyCard.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/PenaltyCard/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Positions/Positions.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Positions/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/ScoreCard/ScoreCard.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/ScoreCard/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Sources/Sources.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Sources/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Sources/sources.module.css delete mode 100644 miner_objects/miner_dashboard/src/components/StatCard/StatCard.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/StatCard/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Statistics/Statistics.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Statistics/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Tremor/Badge/Badge.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Tremor/Badge/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Tremor/Card/Card.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Tremor/Card/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Tremor/CategoryBar/CategoryBar.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Tremor/CategoryBar/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Tremor/ProgressBar/ProgressBar.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Tremor/ProgressBar/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Tremor/Tooltip/Tooltip.tsx delete mode 100644 miner_objects/miner_dashboard/src/components/Tremor/Tooltip/index.ts delete mode 100644 miner_objects/miner_dashboard/src/components/Tremor/index.ts delete mode 100644 miner_objects/miner_dashboard/src/fonts/ADLaMDisplay-Regular.ttf delete mode 100644 miner_objects/miner_dashboard/src/fonts/SpaceMono-Bold.ttf delete mode 100644 miner_objects/miner_dashboard/src/fonts/SpaceMono-BoldItalic.ttf delete mode 100644 miner_objects/miner_dashboard/src/fonts/SpaceMono-Italic.ttf delete mode 100644 miner_objects/miner_dashboard/src/fonts/SpaceMono-Regular.ttf delete mode 100644 miner_objects/miner_dashboard/src/index.css delete mode 100644 miner_objects/miner_dashboard/src/lib/axios.ts delete mode 100644 miner_objects/miner_dashboard/src/lib/chart.ts delete mode 100644 miner_objects/miner_dashboard/src/lib/index.ts delete mode 100644 miner_objects/miner_dashboard/src/main.tsx delete mode 100644 miner_objects/miner_dashboard/src/theme/colors.ts delete mode 100644 miner_objects/miner_dashboard/src/theme/index.ts delete mode 100644 miner_objects/miner_dashboard/src/types/index.ts delete mode 100644 miner_objects/miner_dashboard/src/utils/index.ts delete mode 100644 miner_objects/miner_dashboard/src/vite-env.d.ts delete mode 100644 miner_objects/miner_dashboard/tailwind.config.js delete mode 100644 miner_objects/miner_dashboard/tsconfig.app.json delete mode 100644 miner_objects/miner_dashboard/tsconfig.json delete mode 100644 miner_objects/miner_dashboard/tsconfig.node.json delete mode 100644 miner_objects/miner_dashboard/vite.config.ts diff --git a/miner_objects/dashboard.py b/miner_objects/dashboard.py index b61bccbb4..31e7245ad 100644 --- a/miner_objects/dashboard.py +++ b/miner_objects/dashboard.py @@ -67,18 +67,9 @@ def get_next_unused_port(self, start, stop): for port in range(start, stop): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: if s.connect_ex(("127.0.0.1", port)) != 0: - self.write_env_file(port) return port # found a free port raise OSError(f"All ports from [{start}, {stop}) in use. Aborting dashboard.") - def write_env_file(self, api_port): - """ - write the miner_url to the miner_dashboard .env file - """ - env_file_path = MinerConfig.BASE_DIR + "/miner_objects/miner_dashboard/.env" - with open(env_file_path, 'w') as env_file: - env_file.write(f'VITE_MINER_URL=http://127.0.0.1:{api_port}\n') - def run(self): uvicorn.run(self.app, host="127.0.0.1", port=self.port) diff --git a/miner_objects/miner_dashboard/.gitignore b/miner_objects/miner_dashboard/.gitignore deleted file mode 100644 index a547bf36d..000000000 --- a/miner_objects/miner_dashboard/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/miner_objects/miner_dashboard/eslint.config.js b/miner_objects/miner_dashboard/eslint.config.js deleted file mode 100644 index 092408a9f..000000000 --- a/miner_objects/miner_dashboard/eslint.config.js +++ /dev/null @@ -1,28 +0,0 @@ -import js from '@eslint/js' -import globals from 'globals' -import reactHooks from 'eslint-plugin-react-hooks' -import reactRefresh from 'eslint-plugin-react-refresh' -import tseslint from 'typescript-eslint' - -export default tseslint.config( - { ignores: ['dist'] }, - { - extends: [js.configs.recommended, ...tseslint.configs.recommended], - files: ['**/*.{ts,tsx}'], - languageOptions: { - ecmaVersion: 2020, - globals: globals.browser, - }, - plugins: { - 'react-hooks': reactHooks, - 'react-refresh': reactRefresh, - }, - rules: { - ...reactHooks.configs.recommended.rules, - 'react-refresh/only-export-components': [ - 'warn', - { allowConstantExport: true }, - ], - }, - }, -) diff --git a/miner_objects/miner_dashboard/index.html b/miner_objects/miner_dashboard/index.html deleted file mode 100644 index 3f20f6a10..000000000 --- a/miner_objects/miner_dashboard/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - PTN Miner Dashboard - - -
- - - diff --git a/miner_objects/miner_dashboard/package.json b/miner_objects/miner_dashboard/package.json deleted file mode 100644 index 586a96c09..000000000 --- a/miner_objects/miner_dashboard/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "local-dashboard", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "tsc -b && vite build", - "lint": "eslint .", - "preview": "vite preview" - }, - "dependencies": { - "@fontsource-variable/dm-sans": "^5.0.7", - "@fontsource/adlam-display": "^5.0.6", - "@fontsource/open-sans": "^5.0.29", - "@mantine/core": "^7.12.2", - "@mantine/hooks": "^7.12.2", - "@radix-ui/react-progress": "^1.1.0", - "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-tooltip": "^1.1.2", - "@tabler/icons-react": "^3.14.0", - "@tanstack/react-table": "^8.20.5", - "axios": "^1.7.5", - "boring-avatars": "^1.10.2", - "chroma-js": "^3.0.0", - "clsx": "^2.1.1", - "dayjs": "^1.11.13", - "decimal.js": "^10.4.3", - "lodash": "^4.17.21", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "recharts": "^2.12.7", - "tailwind-merge": "^2.5.2", - "tailwind-variants": "^0.2.1" - }, - "devDependencies": { - "@eslint/js": "^9.9.0", - "@tailwindcss/forms": "^0.5.9", - "@types/chroma-js": "^2.4.4", - "@types/lodash": "^4.17.7", - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react": "^4.3.1", - "autoprefixer": "^10.4.20", - "eslint": "^9.9.0", - "eslint-plugin-react-hooks": "^5.1.0-rc.0", - "eslint-plugin-react-refresh": "^0.4.9", - "globals": "^15.9.0", - "postcss": "^8.4.41", - "postcss-preset-mantine": "^1.17.0", - "postcss-simple-vars": "^7.0.1", - "tailwindcss": "^3.4.11", - "typescript": "^5.5.3", - "typescript-eslint": "^8.0.1", - "vite": "^5.4.1" - } -} diff --git a/miner_objects/miner_dashboard/pnpm-lock.yaml b/miner_objects/miner_dashboard/pnpm-lock.yaml deleted file mode 100644 index ddc8d27d1..000000000 --- a/miner_objects/miner_dashboard/pnpm-lock.yaml +++ /dev/null @@ -1,3788 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@fontsource-variable/dm-sans': - specifier: ^5.0.7 - version: 5.1.1 - '@fontsource/adlam-display': - specifier: ^5.0.6 - version: 5.1.1 - '@fontsource/open-sans': - specifier: ^5.0.29 - version: 5.1.1 - '@mantine/core': - specifier: ^7.12.2 - version: 7.16.1(@mantine/hooks@7.16.1(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/hooks': - specifier: ^7.12.2 - version: 7.16.1(react@18.3.1) - '@radix-ui/react-progress': - specifier: ^1.1.0 - version: 1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': - specifier: ^1.1.0 - version: 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-tooltip': - specifier: ^1.1.2 - version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tabler/icons-react': - specifier: ^3.14.0 - version: 3.28.1(react@18.3.1) - '@tanstack/react-table': - specifier: ^8.20.5 - version: 8.20.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - axios: - specifier: ^1.7.5 - version: 1.7.9 - boring-avatars: - specifier: ^1.10.2 - version: 1.11.2 - chroma-js: - specifier: ^3.0.0 - version: 3.1.2 - clsx: - specifier: ^2.1.1 - version: 2.1.1 - dayjs: - specifier: ^1.11.13 - version: 1.11.13 - decimal.js: - specifier: ^10.4.3 - version: 10.4.3 - lodash: - specifier: ^4.17.21 - version: 4.17.21 - react: - specifier: ^18.3.1 - version: 18.3.1 - react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) - recharts: - specifier: ^2.12.7 - version: 2.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - tailwind-merge: - specifier: ^2.5.2 - version: 2.6.0 - tailwind-variants: - specifier: ^0.2.1 - version: 0.2.1(tailwindcss@3.4.17) - devDependencies: - '@eslint/js': - specifier: ^9.9.0 - version: 9.18.0 - '@tailwindcss/forms': - specifier: ^0.5.9 - version: 0.5.10(tailwindcss@3.4.17) - '@types/chroma-js': - specifier: ^2.4.4 - version: 2.4.5 - '@types/lodash': - specifier: ^4.17.7 - version: 4.17.14 - '@types/react': - specifier: ^18.3.3 - version: 18.3.18 - '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.5(@types/react@18.3.18) - '@vitejs/plugin-react': - specifier: ^4.3.1 - version: 4.3.4(vite@5.4.14(sugarss@4.0.1(postcss@8.5.1))) - autoprefixer: - specifier: ^10.4.20 - version: 10.4.20(postcss@8.5.1) - eslint: - specifier: ^9.9.0 - version: 9.18.0(jiti@1.21.7) - eslint-plugin-react-hooks: - specifier: ^5.1.0-rc.0 - version: 5.1.0(eslint@9.18.0(jiti@1.21.7)) - eslint-plugin-react-refresh: - specifier: ^0.4.9 - version: 0.4.18(eslint@9.18.0(jiti@1.21.7)) - globals: - specifier: ^15.9.0 - version: 15.14.0 - postcss: - specifier: ^8.4.41 - version: 8.5.1 - postcss-preset-mantine: - specifier: ^1.17.0 - version: 1.17.0(postcss@8.5.1) - postcss-simple-vars: - specifier: ^7.0.1 - version: 7.0.1(postcss@8.5.1) - tailwindcss: - specifier: ^3.4.11 - version: 3.4.17 - typescript: - specifier: ^5.5.3 - version: 5.7.3 - typescript-eslint: - specifier: ^8.0.1 - version: 8.21.0(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3) - vite: - specifier: ^5.4.1 - version: 5.4.14(sugarss@4.0.1(postcss@8.5.1)) - -packages: - - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.26.5': - resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.26.0': - resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.26.5': - resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.26.5': - resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.26.5': - resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.26.0': - resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.26.5': - resolution: {integrity: sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-transform-react-jsx-self@7.25.9': - resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-source@7.25.9': - resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/runtime@7.26.0': - resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.25.9': - resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.26.5': - resolution: {integrity: sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.26.5': - resolution: {integrity: sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==} - engines: {node: '>=6.9.0'} - - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/config-array@0.19.1': - resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.10.0': - resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/eslintrc@3.2.0': - resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.18.0': - resolution: {integrity: sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.5': - resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.2.5': - resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@floating-ui/core@1.6.9': - resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} - - '@floating-ui/dom@1.6.13': - resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} - - '@floating-ui/react-dom@2.1.2': - resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/react@0.26.28': - resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/utils@0.2.9': - resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} - - '@fontsource-variable/dm-sans@5.1.1': - resolution: {integrity: sha512-oOroo1rQurZR8giuNLF64W+EqvZt6prsdJS6gGCAZgD/AMIHKmL6RzVjznGb8ZGXCeiJpVWO/xd4DPgMqr7ayQ==} - - '@fontsource/adlam-display@5.1.1': - resolution: {integrity: sha512-KqL3bRif8nbP6PMm5k+r4FB0EW50ceVl/bLi1VJTB3U6mBZIo+h+Ez5tEr+HI/oClbhbhlhmhodqfDoqAFB5fg==} - - '@fontsource/open-sans@5.1.1': - resolution: {integrity: sha512-Wfio5om0XH24ZUu6FfW4r50e4xLdoLzvd8midtqUFT2unniyWQj6GJ05RW1YQsHp4Sug3i+agFBIxEmYQzUHSg==} - - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} - engines: {node: '>=18.18.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - - '@humanwhocodes/retry@0.4.1': - resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} - engines: {node: '>=18.18'} - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@mantine/core@7.16.1': - resolution: {integrity: sha512-HYdjCeMU3dUJbc1CrAAedeAASTG5kVyL/qsiuYh5b7BoG0qsRtK8WJxBpUjW6VqtJpUaE94c5tlBJ8MgAmPHTQ==} - peerDependencies: - '@mantine/hooks': 7.16.1 - react: ^18.x || ^19.x - react-dom: ^18.x || ^19.x - - '@mantine/hooks@7.16.1': - resolution: {integrity: sha512-+hER8E4d2ByfQ/DKIXGM3Euxb7IH5ArSjzzzoF21sG095iXIryOCob22ZanrmiXCoAzKKdxqgVj4Di67ikLYSQ==} - peerDependencies: - react: ^18.x || ^19.x - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@radix-ui/primitive@1.1.1': - resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} - - '@radix-ui/react-arrow@1.1.1': - resolution: {integrity: sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==} - 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 - - '@radix-ui/react-compose-refs@1.1.1': - resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-context@1.1.1': - resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-dismissable-layer@1.1.3': - resolution: {integrity: sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==} - 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 - - '@radix-ui/react-id@1.1.0': - resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-popper@1.2.1': - resolution: {integrity: sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==} - 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 - - '@radix-ui/react-portal@1.1.3': - resolution: {integrity: sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==} - 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 - - '@radix-ui/react-presence@1.1.2': - resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} - 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 - - '@radix-ui/react-primitive@2.0.1': - resolution: {integrity: sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==} - 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 - - '@radix-ui/react-progress@1.1.1': - resolution: {integrity: sha512-6diOawA84f/eMxFHcWut0aE1C2kyE9dOyCTQOMRR2C/qPiXz/X0SaiA/RLbapQaXUCmy0/hLMf9meSccD1N0pA==} - 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 - - '@radix-ui/react-slot@1.1.1': - resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-tooltip@1.1.6': - resolution: {integrity: sha512-TLB5D8QLExS1uDn7+wH/bjEmRurNMTzNrtq7IjaS4kjion9NtzsTGkvR5+i7yc9q01Pi2KMM2cN3f8UG4IvvXA==} - 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 - - '@radix-ui/react-use-callback-ref@1.1.0': - resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-controllable-state@1.1.0': - resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-escape-keydown@1.1.0': - resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-layout-effect@1.1.0': - resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-rect@1.1.0': - resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-size@1.1.0': - resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-visually-hidden@1.1.1': - resolution: {integrity: sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==} - 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 - - '@radix-ui/rect@1.1.0': - resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} - - '@rollup/rollup-android-arm-eabi@4.31.0': - resolution: {integrity: sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.31.0': - resolution: {integrity: sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.31.0': - resolution: {integrity: sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.31.0': - resolution: {integrity: sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.31.0': - resolution: {integrity: sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.31.0': - resolution: {integrity: sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.31.0': - resolution: {integrity: sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.31.0': - resolution: {integrity: sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.31.0': - resolution: {integrity: sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.31.0': - resolution: {integrity: sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loongarch64-gnu@4.31.0': - resolution: {integrity: sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.31.0': - resolution: {integrity: sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.31.0': - resolution: {integrity: sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.31.0': - resolution: {integrity: sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.31.0': - resolution: {integrity: sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.31.0': - resolution: {integrity: sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.31.0': - resolution: {integrity: sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.31.0': - resolution: {integrity: sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.31.0': - resolution: {integrity: sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==} - cpu: [x64] - os: [win32] - - '@tabler/icons-react@3.28.1': - resolution: {integrity: sha512-KNBpA2kbxr3/2YK5swt7b/kd/xpDP1FHYZCxDFIw54tX8slELRFEf95VMxsccQHZeIcUbdoojmUUuYSbt/sM5Q==} - peerDependencies: - react: '>= 16' - - '@tabler/icons@3.28.1': - resolution: {integrity: sha512-h7nqKEvFooLtFxhMOC1/2eiV+KRXhBUuDUUJrJlt6Ft6tuMw2eU/9GLQgrTk41DNmIEzp/LI83K9J9UUU8YBYQ==} - - '@tailwindcss/forms@0.5.10': - resolution: {integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==} - peerDependencies: - tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' - - '@tanstack/react-table@8.20.6': - resolution: {integrity: sha512-w0jluT718MrOKthRcr2xsjqzx+oEM7B7s/XXyfs19ll++hlId3fjTm+B2zrR3ijpANpkzBAr15j1XGVOMxpggQ==} - engines: {node: '>=12'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - - '@tanstack/table-core@8.20.5': - resolution: {integrity: sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg==} - engines: {node: '>=12'} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - - '@types/chroma-js@2.4.5': - resolution: {integrity: sha512-6ISjhzJViaPCy2q2e6PgK+8HcHQDQ0V2LDiKmYAh+jJlLqDa6HbwDh0wOevHY0kHHUx0iZwjSRbVD47WOUx5EQ==} - - '@types/d3-array@3.2.1': - resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} - - '@types/d3-color@3.1.3': - resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} - - '@types/d3-ease@3.0.2': - resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} - - '@types/d3-interpolate@3.0.4': - resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} - - '@types/d3-path@3.1.0': - resolution: {integrity: sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==} - - '@types/d3-scale@4.0.8': - resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==} - - '@types/d3-shape@3.1.7': - resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==} - - '@types/d3-time@3.0.4': - resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} - - '@types/d3-timer@3.0.2': - resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} - - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/lodash@4.17.14': - resolution: {integrity: sha512-jsxagdikDiDBeIRaPYtArcT8my4tN1og7MtMRquFT3XNA6axxyHDRUemqDz/taRDdOUn0GnGHRCuff4q48sW9A==} - - '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - - '@types/react-dom@18.3.5': - resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} - peerDependencies: - '@types/react': ^18.0.0 - - '@types/react@18.3.18': - resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} - - '@typescript-eslint/eslint-plugin@8.21.0': - resolution: {integrity: sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/parser@8.21.0': - resolution: {integrity: sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/scope-manager@8.21.0': - resolution: {integrity: sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/type-utils@8.21.0': - resolution: {integrity: sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/types@8.21.0': - resolution: {integrity: sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.21.0': - resolution: {integrity: sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/utils@8.21.0': - resolution: {integrity: sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/visitor-keys@8.21.0': - resolution: {integrity: sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@vitejs/plugin-react@4.3.4': - resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} - engines: {node: '>=0.4.0'} - hasBin: true - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - autoprefixer@10.4.20: - resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - - axios@1.7.9: - resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - boring-avatars@1.11.2: - resolution: {integrity: sha512-3+wkwPeObwS4R37FGXMYViqc4iTrIRj5yzfX9Qy4mnpZ26sX41dGMhsAgmKks1r/uufY1pl4vpgzMWHYfJRb2A==} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - - caniuse-lite@1.0.30001695: - resolution: {integrity: sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chroma-js@3.1.2: - resolution: {integrity: sha512-IJnETTalXbsLx1eKEgx19d5L6SRM7cH4vINw/99p/M11HCuXGRWL+6YmCm7FWFGIo6dtWuQoQi1dc5yQ7ESIHg==} - - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - d3-array@3.2.4: - resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} - engines: {node: '>=12'} - - d3-color@3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} - engines: {node: '>=12'} - - d3-ease@3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} - engines: {node: '>=12'} - - d3-format@3.1.0: - resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} - engines: {node: '>=12'} - - d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} - - d3-path@3.1.0: - resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} - engines: {node: '>=12'} - - d3-scale@4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} - engines: {node: '>=12'} - - d3-shape@3.2.0: - resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} - engines: {node: '>=12'} - - d3-time-format@4.1.0: - resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} - engines: {node: '>=12'} - - d3-time@3.1.0: - resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} - engines: {node: '>=12'} - - d3-timer@3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} - engines: {node: '>=12'} - - dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decimal.js-light@2.5.1: - resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} - - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - - didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - - dom-helpers@5.2.1: - resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - electron-to-chromium@1.5.84: - resolution: {integrity: sha512-I+DQ8xgafao9Ha6y0qjHHvpZ9OfyA1qKlkHkjywxzniORU2awxyz7f/iVJcULmrF2yrM3nHQf+iDjJtbbexd/g==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-plugin-react-hooks@5.1.0: - resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - - eslint-plugin-react-refresh@0.4.18: - resolution: {integrity: sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==} - peerDependencies: - eslint: '>=8.40' - - eslint-scope@8.2.0: - resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@9.18.0: - resolution: {integrity: sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-equals@5.2.2: - resolution: {integrity: sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==} - engines: {node: '>=6.0.0'} - - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastq@1.18.0: - resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} - - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} - - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} - engines: {node: '>=14'} - - form-data@4.0.1: - resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} - engines: {node: '>= 6'} - - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - - globals@15.14.0: - resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} - engines: {node: '>=18'} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - internmap@2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} - engines: {node: '>=12'} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} - hasBin: true - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mini-svg-data-uri@1.4.4: - resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} - hasBin: true - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-mixins@9.0.4: - resolution: {integrity: sha512-XVq5jwQJDRu5M1XGkdpgASqLk37OqkH4JCFDXl/Dn7janOJjCTEKL+36cnRVy7bMtoBzALfO7bV7nTIsFnUWLA==} - engines: {node: '>=14.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-nested@6.2.0: - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-preset-mantine@1.17.0: - resolution: {integrity: sha512-ji1PMDBUf2Vsx/HE5faMSs1+ff6qE6YRulTr4Ja+6HD3gop8rSMTCYdpN7KrdsEg079kfBKkO/PaKhG9uR0zwQ==} - peerDependencies: - postcss: '>=8.0.0' - - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - - postcss-simple-vars@7.0.1: - resolution: {integrity: sha512-5GLLXaS8qmzHMOjVxqkk1TZPf1jMqesiI7qLhnlyERalG0sMbHIbJqrcnrpmZdKCLglHnRHoEBB61RtGTsj++A==} - engines: {node: '>=14.0'} - peerDependencies: - postcss: ^8.2.1 - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.5.1: - resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} - engines: {node: ^10 || ^12 || >=14} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - react-number-format@5.4.3: - resolution: {integrity: sha512-VCY5hFg/soBighAoGcdE+GagkJq0230qN6jcS5sp8wQX1qy1fYN/RX7/BXkrs0oyzzwqR8/+eSUrqXbGeywdUQ==} - peerDependencies: - react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - react-refresh@0.14.2: - resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} - engines: {node: '>=0.10.0'} - - react-remove-scroll-bar@2.3.8: - resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - react-remove-scroll@2.6.2: - resolution: {integrity: sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==} - engines: {node: '>=10'} - 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 - - react-smooth@4.0.4: - resolution: {integrity: sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==} - 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 - - react-style-singleton@2.2.3: - resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} - engines: {node: '>=10'} - 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 - - react-textarea-autosize@8.5.6: - resolution: {integrity: sha512-aT3ioKXMa8f6zHYGebhbdMD2L00tKeRX1zuVuDx9YQK/JLLRSaSxq3ugECEmUB9z2kvk6bFSIoRHLkkUv0RJiw==} - engines: {node: '>=10'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - react-transition-group@4.4.5: - resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} - peerDependencies: - react: '>=16.6.0' - react-dom: '>=16.6.0' - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - recharts-scale@0.4.5: - resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} - - recharts@2.15.0: - resolution: {integrity: sha512-cIvMxDfpAmqAmVgc4yb7pgm/O1tmmkl/CjrvXuW+62/+7jj/iF9Ykm+hb/UJt42TREHMyd3gb+pkgoa2MxgDIw==} - engines: {node: '>=14'} - peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rollup@4.31.0: - resolution: {integrity: sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - sugarss@4.0.1: - resolution: {integrity: sha512-WCjS5NfuVJjkQzK10s8WOBY+hhDxxNt/N6ZaGwxFZ+wN3/lKKFSaaKUNecULcTTvE4urLcKaZFQD8vO0mOZujw==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.3.3 - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - tabbable@6.2.0: - resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - - tailwind-merge@2.6.0: - resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} - - tailwind-variants@0.2.1: - resolution: {integrity: sha512-2xmhAf4UIc3PijOUcJPA1LP4AbxhpcHuHM2C26xM0k81r0maAO6uoUSHl3APmvHZcY5cZCY/bYuJdfFa4eGoaw==} - engines: {node: '>=16.x', pnpm: '>=7.x'} - peerDependencies: - tailwindcss: '*' - - tailwindcss@3.4.17: - resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} - engines: {node: '>=14.0.0'} - hasBin: true - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - ts-api-utils@2.0.0: - resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-fest@4.33.0: - resolution: {integrity: sha512-s6zVrxuyKbbAsSAD5ZPTB77q4YIdRctkTbJ2/Dqlinwz+8ooH2gd+YA7VA6Pa93KML9GockVvoxjZ2vHP+mu8g==} - engines: {node: '>=16'} - - typescript-eslint@8.21.0: - resolution: {integrity: sha512-txEKYY4XMKwPXxNkN8+AxAdX6iIJAPiJbHE/FpQccs/sxw8Lf26kqwC3cn0xkHlW8kEbLhkhCsjWuMveaY9Rxw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} - engines: {node: '>=14.17'} - hasBin: true - - update-browserslist-db@1.1.2: - resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - use-callback-ref@1.3.3: - resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} - engines: {node: '>=10'} - 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 - - use-composed-ref@1.4.0: - resolution: {integrity: sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - use-isomorphic-layout-effect@1.2.0: - resolution: {integrity: sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - use-latest@1.3.0: - resolution: {integrity: sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - use-sidecar@1.1.3: - resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} - engines: {node: '>=10'} - 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 - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - victory-vendor@36.9.2: - resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} - - vite@5.4.14: - resolution: {integrity: sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yaml@2.7.0: - resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} - engines: {node: '>= 14'} - hasBin: true - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - -snapshots: - - '@alloc/quick-lru@5.2.0': {} - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - '@babel/code-frame@7.26.2': - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.26.5': {} - - '@babel/core@7.26.0': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.5 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.5 - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.5 - '@babel/types': 7.26.5 - convert-source-map: 2.0.0 - debug: 4.4.0 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.26.5': - dependencies: - '@babel/parser': 7.26.5 - '@babel/types': 7.26.5 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 - - '@babel/helper-compilation-targets@7.26.5': - dependencies: - '@babel/compat-data': 7.26.5 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-module-imports@7.25.9': - dependencies: - '@babel/traverse': 7.26.5 - '@babel/types': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-plugin-utils@7.26.5': {} - - '@babel/helper-string-parser@7.25.9': {} - - '@babel/helper-validator-identifier@7.25.9': {} - - '@babel/helper-validator-option@7.25.9': {} - - '@babel/helpers@7.26.0': - dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.5 - - '@babel/parser@7.26.5': - dependencies: - '@babel/types': 7.26.5 - - '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/runtime@7.26.0': - dependencies: - regenerator-runtime: 0.14.1 - - '@babel/template@7.25.9': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.5 - '@babel/types': 7.26.5 - - '@babel/traverse@7.26.5': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.5 - '@babel/parser': 7.26.5 - '@babel/template': 7.25.9 - '@babel/types': 7.26.5 - debug: 4.4.0 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.26.5': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-s390x@0.21.5': - optional: true - - '@esbuild/linux-x64@0.21.5': - optional: true - - '@esbuild/netbsd-x64@0.21.5': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - - '@esbuild/sunos-x64@0.21.5': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - - '@esbuild/win32-ia32@0.21.5': - optional: true - - '@esbuild/win32-x64@0.21.5': - optional: true - - '@eslint-community/eslint-utils@4.4.1(eslint@9.18.0(jiti@1.21.7))': - dependencies: - eslint: 9.18.0(jiti@1.21.7) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.1': {} - - '@eslint/config-array@0.19.1': - dependencies: - '@eslint/object-schema': 2.1.5 - debug: 4.4.0 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/core@0.10.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/eslintrc@3.2.0': - dependencies: - ajv: 6.12.6 - debug: 4.4.0 - espree: 10.3.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@9.18.0': {} - - '@eslint/object-schema@2.1.5': {} - - '@eslint/plugin-kit@0.2.5': - dependencies: - '@eslint/core': 0.10.0 - levn: 0.4.1 - - '@floating-ui/core@1.6.9': - dependencies: - '@floating-ui/utils': 0.2.9 - - '@floating-ui/dom@1.6.13': - dependencies: - '@floating-ui/core': 1.6.9 - '@floating-ui/utils': 0.2.9 - - '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/dom': 1.6.13 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@floating-ui/react@0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@floating-ui/utils': 0.2.9 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tabbable: 6.2.0 - - '@floating-ui/utils@0.2.9': {} - - '@fontsource-variable/dm-sans@5.1.1': {} - - '@fontsource/adlam-display@5.1.1': {} - - '@fontsource/open-sans@5.1.1': {} - - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.6': - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.3.1': {} - - '@humanwhocodes/retry@0.4.1': {} - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@jridgewell/gen-mapping@0.3.8': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@mantine/core@7.16.1(@mantine/hooks@7.16.1(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/react': 0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/hooks': 7.16.1(react@18.3.1) - clsx: 2.1.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-number-format: 5.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-remove-scroll: 2.6.2(@types/react@18.3.18)(react@18.3.1) - react-textarea-autosize: 8.5.6(@types/react@18.3.18)(react@18.3.1) - type-fest: 4.33.0 - transitivePeerDependencies: - - '@types/react' - - '@mantine/hooks@7.16.1(react@18.3.1)': - dependencies: - react: 18.3.1 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.18.0 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@radix-ui/primitive@1.1.1': {} - - '@radix-ui/react-arrow@1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(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) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-dismissable-layer@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-popper@1.2.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/rect': 1.1.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-portal@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-presence@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-primitive@2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-progress@1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(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) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-slot@1.1.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-tooltip@1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-popper': 1.2.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(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) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/rect': 1.1.0 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-size@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-visually-hidden@1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(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) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/rect@1.1.0': {} - - '@rollup/rollup-android-arm-eabi@4.31.0': - optional: true - - '@rollup/rollup-android-arm64@4.31.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.31.0': - optional: true - - '@rollup/rollup-darwin-x64@4.31.0': - optional: true - - '@rollup/rollup-freebsd-arm64@4.31.0': - optional: true - - '@rollup/rollup-freebsd-x64@4.31.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.31.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.31.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.31.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.31.0': - optional: true - - '@rollup/rollup-linux-loongarch64-gnu@4.31.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.31.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.31.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.31.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.31.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.31.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.31.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.31.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.31.0': - optional: true - - '@tabler/icons-react@3.28.1(react@18.3.1)': - dependencies: - '@tabler/icons': 3.28.1 - react: 18.3.1 - - '@tabler/icons@3.28.1': {} - - '@tailwindcss/forms@0.5.10(tailwindcss@3.4.17)': - dependencies: - mini-svg-data-uri: 1.4.4 - tailwindcss: 3.4.17 - - '@tanstack/react-table@8.20.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@tanstack/table-core': 8.20.5 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@tanstack/table-core@8.20.5': {} - - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.26.5 - '@babel/types': 7.26.5 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 - - '@types/babel__generator@7.6.8': - dependencies: - '@babel/types': 7.26.5 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.26.5 - '@babel/types': 7.26.5 - - '@types/babel__traverse@7.20.6': - dependencies: - '@babel/types': 7.26.5 - - '@types/chroma-js@2.4.5': {} - - '@types/d3-array@3.2.1': {} - - '@types/d3-color@3.1.3': {} - - '@types/d3-ease@3.0.2': {} - - '@types/d3-interpolate@3.0.4': - dependencies: - '@types/d3-color': 3.1.3 - - '@types/d3-path@3.1.0': {} - - '@types/d3-scale@4.0.8': - dependencies: - '@types/d3-time': 3.0.4 - - '@types/d3-shape@3.1.7': - dependencies: - '@types/d3-path': 3.1.0 - - '@types/d3-time@3.0.4': {} - - '@types/d3-timer@3.0.2': {} - - '@types/estree@1.0.6': {} - - '@types/json-schema@7.0.15': {} - - '@types/lodash@4.17.14': {} - - '@types/prop-types@15.7.14': {} - - '@types/react-dom@18.3.5(@types/react@18.3.18)': - dependencies: - '@types/react': 18.3.18 - - '@types/react@18.3.18': - dependencies: - '@types/prop-types': 15.7.14 - csstype: 3.1.3 - - '@typescript-eslint/eslint-plugin@8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3))(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.21.0(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.21.0 - '@typescript-eslint/type-utils': 8.21.0(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3) - '@typescript-eslint/utils': 8.21.0(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.21.0 - eslint: 9.18.0(jiti@1.21.7) - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 2.0.0(typescript@5.7.3) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.21.0(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.21.0 - '@typescript-eslint/types': 8.21.0 - '@typescript-eslint/typescript-estree': 8.21.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.21.0 - debug: 4.4.0 - eslint: 9.18.0(jiti@1.21.7) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.21.0': - dependencies: - '@typescript-eslint/types': 8.21.0 - '@typescript-eslint/visitor-keys': 8.21.0 - - '@typescript-eslint/type-utils@8.21.0(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.21.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.21.0(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3) - debug: 4.4.0 - eslint: 9.18.0(jiti@1.21.7) - ts-api-utils: 2.0.0(typescript@5.7.3) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.21.0': {} - - '@typescript-eslint/typescript-estree@8.21.0(typescript@5.7.3)': - dependencies: - '@typescript-eslint/types': 8.21.0 - '@typescript-eslint/visitor-keys': 8.21.0 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 2.0.0(typescript@5.7.3) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.21.0(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@1.21.7)) - '@typescript-eslint/scope-manager': 8.21.0 - '@typescript-eslint/types': 8.21.0 - '@typescript-eslint/typescript-estree': 8.21.0(typescript@5.7.3) - eslint: 9.18.0(jiti@1.21.7) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.21.0': - dependencies: - '@typescript-eslint/types': 8.21.0 - eslint-visitor-keys: 4.2.0 - - '@vitejs/plugin-react@4.3.4(vite@5.4.14(sugarss@4.0.1(postcss@8.5.1)))': - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 5.4.14(sugarss@4.0.1(postcss@8.5.1)) - transitivePeerDependencies: - - supports-color - - acorn-jsx@5.3.2(acorn@8.14.0): - dependencies: - acorn: 8.14.0 - - acorn@8.14.0: {} - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ansi-regex@5.0.1: {} - - ansi-regex@6.1.0: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.1: {} - - any-promise@1.3.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - arg@5.0.2: {} - - argparse@2.0.1: {} - - asynckit@0.4.0: {} - - autoprefixer@10.4.20(postcss@8.5.1): - dependencies: - browserslist: 4.24.4 - caniuse-lite: 1.0.30001695 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.1 - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - axios@1.7.9: - dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.1 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - - balanced-match@1.0.2: {} - - binary-extensions@2.3.0: {} - - boring-avatars@1.11.2: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.24.4: - dependencies: - caniuse-lite: 1.0.30001695 - electron-to-chromium: 1.5.84 - node-releases: 2.0.19 - update-browserslist-db: 1.1.2(browserslist@4.24.4) - - callsites@3.1.0: {} - - camelcase-css@2.0.1: {} - - caniuse-lite@1.0.30001695: {} - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - chroma-js@3.1.2: {} - - clsx@2.1.1: {} - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - commander@4.1.1: {} - - concat-map@0.0.1: {} - - convert-source-map@2.0.0: {} - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - cssesc@3.0.0: {} - - csstype@3.1.3: {} - - d3-array@3.2.4: - dependencies: - internmap: 2.0.3 - - d3-color@3.1.0: {} - - d3-ease@3.0.1: {} - - d3-format@3.1.0: {} - - d3-interpolate@3.0.1: - dependencies: - d3-color: 3.1.0 - - d3-path@3.1.0: {} - - d3-scale@4.0.2: - dependencies: - d3-array: 3.2.4 - d3-format: 3.1.0 - d3-interpolate: 3.0.1 - d3-time: 3.1.0 - d3-time-format: 4.1.0 - - d3-shape@3.2.0: - dependencies: - d3-path: 3.1.0 - - d3-time-format@4.1.0: - dependencies: - d3-time: 3.1.0 - - d3-time@3.1.0: - dependencies: - d3-array: 3.2.4 - - d3-timer@3.0.1: {} - - dayjs@1.11.13: {} - - debug@4.4.0: - dependencies: - ms: 2.1.3 - - decimal.js-light@2.5.1: {} - - decimal.js@10.4.3: {} - - deep-is@0.1.4: {} - - delayed-stream@1.0.0: {} - - detect-node-es@1.1.0: {} - - didyoumean@1.2.2: {} - - dlv@1.1.3: {} - - dom-helpers@5.2.1: - dependencies: - '@babel/runtime': 7.26.0 - csstype: 3.1.3 - - eastasianwidth@0.2.0: {} - - electron-to-chromium@1.5.84: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - escalade@3.2.0: {} - - escape-string-regexp@4.0.0: {} - - eslint-plugin-react-hooks@5.1.0(eslint@9.18.0(jiti@1.21.7)): - dependencies: - eslint: 9.18.0(jiti@1.21.7) - - eslint-plugin-react-refresh@0.4.18(eslint@9.18.0(jiti@1.21.7)): - dependencies: - eslint: 9.18.0(jiti@1.21.7) - - eslint-scope@8.2.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.2.0: {} - - eslint@9.18.0(jiti@1.21.7): - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@1.21.7)) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.1 - '@eslint/core': 0.10.0 - '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.18.0 - '@eslint/plugin-kit': 0.2.5 - '@humanfs/node': 0.16.6 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.1 - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0 - escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 1.21.7 - transitivePeerDependencies: - - supports-color - - espree@10.3.0: - dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 4.2.0 - - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - - esutils@2.0.3: {} - - eventemitter3@4.0.7: {} - - fast-deep-equal@3.1.3: {} - - fast-equals@5.2.2: {} - - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fastq@1.18.0: - dependencies: - reusify: 1.0.4 - - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@4.0.1: - dependencies: - flatted: 3.3.2 - keyv: 4.5.4 - - flatted@3.3.2: {} - - follow-redirects@1.15.9: {} - - foreground-child@3.3.0: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - form-data@4.0.1: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - - fraction.js@4.3.7: {} - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - gensync@1.0.0-beta.2: {} - - get-nonce@1.0.1: {} - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob@10.4.5: - dependencies: - foreground-child: 3.3.0 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - - globals@11.12.0: {} - - globals@14.0.0: {} - - globals@15.14.0: {} - - graphemer@1.4.0: {} - - has-flag@4.0.0: {} - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - ignore@5.3.2: {} - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - imurmurhash@0.1.4: {} - - internmap@2.0.3: {} - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@3.0.0: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - isexe@2.0.0: {} - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jiti@1.21.7: {} - - js-tokens@4.0.0: {} - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - jsesc@3.1.0: {} - - json-buffer@3.0.1: {} - - json-schema-traverse@0.4.1: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - json5@2.2.3: {} - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lilconfig@3.1.3: {} - - lines-and-columns@1.2.4: {} - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash.merge@4.6.2: {} - - lodash@4.17.21: {} - - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - lru-cache@10.4.3: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - merge2@1.4.1: {} - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mini-svg-data-uri@1.4.4: {} - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.1 - - minipass@7.1.2: {} - - ms@2.1.3: {} - - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - - nanoid@3.3.8: {} - - natural-compare@1.4.0: {} - - node-releases@2.0.19: {} - - normalize-path@3.0.0: {} - - normalize-range@0.1.2: {} - - object-assign@4.1.1: {} - - object-hash@3.0.0: {} - - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - package-json-from-dist@1.0.1: {} - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - path-exists@4.0.0: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - pify@2.3.0: {} - - pirates@4.0.6: {} - - postcss-import@15.1.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.10 - - postcss-js@4.0.1(postcss@8.5.1): - dependencies: - camelcase-css: 2.0.1 - postcss: 8.5.1 - - postcss-load-config@4.0.2(postcss@8.5.1): - dependencies: - lilconfig: 3.1.3 - yaml: 2.7.0 - optionalDependencies: - postcss: 8.5.1 - - postcss-mixins@9.0.4(postcss@8.5.1): - dependencies: - fast-glob: 3.3.3 - postcss: 8.5.1 - postcss-js: 4.0.1(postcss@8.5.1) - postcss-simple-vars: 7.0.1(postcss@8.5.1) - sugarss: 4.0.1(postcss@8.5.1) - - postcss-nested@6.2.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-selector-parser: 6.1.2 - - postcss-preset-mantine@1.17.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-mixins: 9.0.4(postcss@8.5.1) - postcss-nested: 6.2.0(postcss@8.5.1) - - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-simple-vars@7.0.1(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - - postcss-value-parser@4.2.0: {} - - postcss@8.5.1: - dependencies: - nanoid: 3.3.8 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - prelude-ls@1.2.1: {} - - prop-types@15.8.1: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - proxy-from-env@1.1.0: {} - - punycode@2.3.1: {} - - queue-microtask@1.2.3: {} - - react-dom@18.3.1(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - - react-is@16.13.1: {} - - react-is@18.3.1: {} - - react-number-format@5.4.3(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) - - react-refresh@0.14.2: {} - - react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1): - dependencies: - react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - - react-remove-scroll@2.6.2(@types/react@18.3.18)(react@18.3.1): - dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.3.18)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.3.18)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - - react-smooth@4.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - fast-equals: 5.2.2 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - - react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): - dependencies: - get-nonce: 1.0.1 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - - react-textarea-autosize@8.5.6(@types/react@18.3.18)(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.0 - react: 18.3.1 - use-composed-ref: 1.4.0(@types/react@18.3.18)(react@18.3.1) - use-latest: 1.3.0(@types/react@18.3.18)(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.0 - dom-helpers: 5.2.1 - loose-envify: 1.4.0 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - react@18.3.1: - dependencies: - loose-envify: 1.4.0 - - read-cache@1.0.0: - dependencies: - pify: 2.3.0 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - recharts-scale@0.4.5: - dependencies: - decimal.js-light: 2.5.1 - - recharts@2.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - clsx: 2.1.1 - eventemitter3: 4.0.7 - lodash: 4.17.21 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 18.3.1 - react-smooth: 4.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - recharts-scale: 0.4.5 - tiny-invariant: 1.3.3 - victory-vendor: 36.9.2 - - regenerator-runtime@0.14.1: {} - - resolve-from@4.0.0: {} - - resolve@1.22.10: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - reusify@1.0.4: {} - - rollup@4.31.0: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.31.0 - '@rollup/rollup-android-arm64': 4.31.0 - '@rollup/rollup-darwin-arm64': 4.31.0 - '@rollup/rollup-darwin-x64': 4.31.0 - '@rollup/rollup-freebsd-arm64': 4.31.0 - '@rollup/rollup-freebsd-x64': 4.31.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.31.0 - '@rollup/rollup-linux-arm-musleabihf': 4.31.0 - '@rollup/rollup-linux-arm64-gnu': 4.31.0 - '@rollup/rollup-linux-arm64-musl': 4.31.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.31.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.31.0 - '@rollup/rollup-linux-riscv64-gnu': 4.31.0 - '@rollup/rollup-linux-s390x-gnu': 4.31.0 - '@rollup/rollup-linux-x64-gnu': 4.31.0 - '@rollup/rollup-linux-x64-musl': 4.31.0 - '@rollup/rollup-win32-arm64-msvc': 4.31.0 - '@rollup/rollup-win32-ia32-msvc': 4.31.0 - '@rollup/rollup-win32-x64-msvc': 4.31.0 - fsevents: 2.3.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 - - semver@6.3.1: {} - - semver@7.6.3: {} - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - signal-exit@4.1.0: {} - - source-map-js@1.2.1: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.1.0 - - strip-json-comments@3.1.1: {} - - sucrase@3.35.0: - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - commander: 4.1.1 - glob: 10.4.5 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - - sugarss@4.0.1(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - tabbable@6.2.0: {} - - tailwind-merge@2.6.0: {} - - tailwind-variants@0.2.1(tailwindcss@3.4.17): - dependencies: - tailwind-merge: 2.6.0 - tailwindcss: 3.4.17 - - tailwindcss@3.4.17: - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.3 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.7 - lilconfig: 3.1.3 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.1 - postcss: 8.5.1 - postcss-import: 15.1.0(postcss@8.5.1) - postcss-js: 4.0.1(postcss@8.5.1) - postcss-load-config: 4.0.2(postcss@8.5.1) - postcss-nested: 6.2.0(postcss@8.5.1) - postcss-selector-parser: 6.1.2 - resolve: 1.22.10 - sucrase: 3.35.0 - transitivePeerDependencies: - - ts-node - - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - - tiny-invariant@1.3.3: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - ts-api-utils@2.0.0(typescript@5.7.3): - dependencies: - typescript: 5.7.3 - - ts-interface-checker@0.1.13: {} - - tslib@2.8.1: {} - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-fest@4.33.0: {} - - typescript-eslint@8.21.0(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3))(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3) - '@typescript-eslint/parser': 8.21.0(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3) - '@typescript-eslint/utils': 8.21.0(eslint@9.18.0(jiti@1.21.7))(typescript@5.7.3) - eslint: 9.18.0(jiti@1.21.7) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - typescript@5.7.3: {} - - update-browserslist-db@1.1.2(browserslist@4.24.4): - dependencies: - browserslist: 4.24.4 - escalade: 3.2.0 - picocolors: 1.1.1 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - use-callback-ref@1.3.3(@types/react@18.3.18)(react@18.3.1): - dependencies: - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - - use-composed-ref@1.4.0(@types/react@18.3.18)(react@18.3.1): - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - use-isomorphic-layout-effect@1.2.0(@types/react@18.3.18)(react@18.3.1): - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - use-latest@1.3.0(@types/react@18.3.18)(react@18.3.1): - dependencies: - react: 18.3.1 - use-isomorphic-layout-effect: 1.2.0(@types/react@18.3.18)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - - use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): - dependencies: - detect-node-es: 1.1.0 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - - util-deprecate@1.0.2: {} - - victory-vendor@36.9.2: - dependencies: - '@types/d3-array': 3.2.1 - '@types/d3-ease': 3.0.2 - '@types/d3-interpolate': 3.0.4 - '@types/d3-scale': 4.0.8 - '@types/d3-shape': 3.1.7 - '@types/d3-time': 3.0.4 - '@types/d3-timer': 3.0.2 - d3-array: 3.2.4 - d3-ease: 3.0.1 - d3-interpolate: 3.0.1 - d3-scale: 4.0.2 - d3-shape: 3.2.0 - d3-time: 3.1.0 - d3-timer: 3.0.1 - - vite@5.4.14(sugarss@4.0.1(postcss@8.5.1)): - dependencies: - esbuild: 0.21.5 - postcss: 8.5.1 - rollup: 4.31.0 - optionalDependencies: - fsevents: 2.3.3 - sugarss: 4.0.1(postcss@8.5.1) - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - word-wrap@1.2.5: {} - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - - yallist@3.1.1: {} - - yaml@2.7.0: {} - - yocto-queue@0.1.0: {} diff --git a/miner_objects/miner_dashboard/postcss.config.cjs b/miner_objects/miner_dashboard/postcss.config.cjs deleted file mode 100644 index 3e22d510b..000000000 --- a/miner_objects/miner_dashboard/postcss.config.cjs +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = { - plugins: { - 'postcss-preset-mantine': {}, - 'postcss-simple-vars': { - variables: { - 'mantine-breakpoint-xs': '36em', - 'mantine-breakpoint-sm': '48em', - 'mantine-breakpoint-md': '62em', - 'mantine-breakpoint-lg': '75em', - 'mantine-breakpoint-xl': '88em', - }, - }, - }, -}; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/postcss.config.js b/miner_objects/miner_dashboard/postcss.config.js deleted file mode 100644 index 2e7af2b7f..000000000 --- a/miner_objects/miner_dashboard/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/miner_objects/miner_dashboard/public/vite.svg b/miner_objects/miner_dashboard/public/vite.svg deleted file mode 100644 index e7b8dfb1b..000000000 --- a/miner_objects/miner_dashboard/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/assets/react.svg b/miner_objects/miner_dashboard/src/assets/react.svg deleted file mode 100644 index 6c87de9bb..000000000 --- a/miner_objects/miner_dashboard/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/App/App.css b/miner_objects/miner_dashboard/src/components/App/App.css deleted file mode 100644 index ce4433257..000000000 --- a/miner_objects/miner_dashboard/src/components/App/App.css +++ /dev/null @@ -1,3 +0,0 @@ -#root { - width: 100%; -} \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/App/App.tsx b/miner_objects/miner_dashboard/src/components/App/App.tsx deleted file mode 100644 index d2de346aa..000000000 --- a/miner_objects/miner_dashboard/src/components/App/App.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { useState, useEffect } from "react"; -import { AppShell, Center, Loader } from "@mantine/core"; -import { useDisclosure } from "@mantine/hooks"; - -import { MinerData } from "../../types"; -import { getMinerData } from "../../lib"; - -import { ErrorBoundary } from "../ErrorBoundary"; -import { ErrorFallback } from "../ErrorFallback"; -import { AppHeader } from "../AppHeader"; -import { Main } from "../Main"; - -import "./App.css"; -import { isEmpty } from "lodash"; - -export const App = () => { - const [opened, { toggle }] = useDisclosure(); - - const [data, setData] = useState(null); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(null); - - useEffect(() => { - const fetchData = async () => { - setLoading(true); - - try { - const minerData = await getMinerData(); - - setData(minerData); - } catch (error: unknown) { - if (error instanceof Error) { - setError(error.message); - throw new Error(error.message); - } else { - setError("An unknown error occurred"); // Optional: Handle non-Error objects - } - } finally { - setLoading(false); - } - }; - - fetchData(); - }, []); - - if (loading) { - return ( -
- -
- ); - } - - if (isEmpty(data?.positions) || isEmpty(data?.statistics.data)) { - return
No data available
; - } - - return ( - } - > - - - - - - Navbar - - -
- - - - ); -}; diff --git a/miner_objects/miner_dashboard/src/components/App/index.ts b/miner_objects/miner_dashboard/src/components/App/index.ts deleted file mode 100644 index 946de733b..000000000 --- a/miner_objects/miner_dashboard/src/components/App/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { App } from "./App"; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/AppHeader/AppHeader.tsx b/miner_objects/miner_dashboard/src/components/AppHeader/AppHeader.tsx deleted file mode 100644 index cae3fa6d6..000000000 --- a/miner_objects/miner_dashboard/src/components/AppHeader/AppHeader.tsx +++ /dev/null @@ -1,77 +0,0 @@ -import { - Anchor, - Container, - Group, - Burger, - Title, - Stack, - Badge, -} from "@mantine/core"; -import Avatar from "boring-avatars"; - -import { isInChallengePeriod, shortenAddress } from "../../utils"; - -import { Copy } from "../Copy"; - -const url = (uid: string) => `https://x.taostats.io/account/${uid}`; - -export const AppHeader = ({ - opened, - toggle, - data, -}: { - opened: boolean, - toggle: () => void, - data: any, -}) => { - const { challengeperiod, hotkey } = data.data[0]; - const isChallengePeriod = isInChallengePeriod(challengeperiod); - - return ( - - - - taoshi - - - - - - - {shortenAddress(hotkey, 10)} - - - - - {isChallengePeriod && ( - - - In Challenge Period - - - )} - - - - - - - - - - ); -}; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/AppHeader/index.ts b/miner_objects/miner_dashboard/src/components/AppHeader/index.ts deleted file mode 100644 index 210783f98..000000000 --- a/miner_objects/miner_dashboard/src/components/AppHeader/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { AppHeader } from "./AppHeader"; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/Challenges/Challenges.tsx b/miner_objects/miner_dashboard/src/components/Challenges/Challenges.tsx deleted file mode 100644 index 1b01e5ae0..000000000 --- a/miner_objects/miner_dashboard/src/components/Challenges/Challenges.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { Title } from "@mantine/core"; -import { isNil } from "lodash"; -import { Fragment } from "react"; -import { Statistics as StatisticsType } from "../../types"; -import { ScoreCard } from "../ScoreCard"; - -interface ChallengesProps { - statistics: StatisticsType; -} - -export const Challenges = ({ statistics }: ChallengesProps) => { - const { challengeperiod, scores } = statistics.data[0]; - const { status } = challengeperiod; - const { CHALLENGE_PERIOD_PERCENTILE_THRESHOLD } = statistics.constants; - - // if anything is in challenge period show element - const isInChallenge = status === "testing"; - if (!isInChallenge) return null; - - const { omega, calmar, return:returnScore, sharpe, sortino, statistical_confidence } = scores - - const scoreData = [ - { label: "Omega", score: omega }, - { label: "Sharpe Ratio", score: sharpe }, - { label: "Sortino", score: sortino }, - { label: "Statistical Confidence", score: statistical_confidence }, - { label: "Calmar", score: calmar }, - { label: "Return", score: returnScore }, - ]; - - return ( - - {isInChallenge && ( -
- - Challenge Period - -
- {scoreData.map(({ label, score }) => { - if (!isNil(score)) { - return ( - - ); - } - return null; - })} -
-
- )} -
- ); -}; diff --git a/miner_objects/miner_dashboard/src/components/Challenges/index.ts b/miner_objects/miner_dashboard/src/components/Challenges/index.ts deleted file mode 100644 index 21080aa16..000000000 --- a/miner_objects/miner_dashboard/src/components/Challenges/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Challenges } from "./Challenges"; diff --git a/miner_objects/miner_dashboard/src/components/Checkpoints/Checkpoints.tsx b/miner_objects/miner_dashboard/src/components/Checkpoints/Checkpoints.tsx deleted file mode 100644 index 36762ccd9..000000000 --- a/miner_objects/miner_dashboard/src/components/Checkpoints/Checkpoints.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import { - Box, - Group, - ThemeIcon, - Title, - Text, - Tooltip, - SimpleGrid, -} from "@mantine/core"; -import { IconHelp } from "@tabler/icons-react"; - -import { Statistics } from "../../types"; - -import { StatCard } from "../StatCard"; -import { PenaltyCard } from "../PenaltyCard"; - -interface CheckpointsProps { - statistics: Statistics; -} - -export const Checkpoints = ({ statistics }: CheckpointsProps) => { - const { penalties, scores } = statistics.data[0]; - - return ( - - - - Scoring Metrics - - - - - - - - - - - - - - - - Penalty Multipliers - - - - - - - - - - - - - ); -}; diff --git a/miner_objects/miner_dashboard/src/components/Checkpoints/index.ts b/miner_objects/miner_dashboard/src/components/Checkpoints/index.ts deleted file mode 100644 index 8a6f27ee9..000000000 --- a/miner_objects/miner_dashboard/src/components/Checkpoints/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Checkpoints } from "./Checkpoints"; diff --git a/miner_objects/miner_dashboard/src/components/Contribution/Contribution.tsx b/miner_objects/miner_dashboard/src/components/Contribution/Contribution.tsx deleted file mode 100644 index 801f38c86..000000000 --- a/miner_objects/miner_dashboard/src/components/Contribution/Contribution.tsx +++ /dev/null @@ -1,69 +0,0 @@ -"use client"; - -import { Card, Box, Title, Progress } from "@mantine/core"; - -import { type Statistics } from "../../types"; - -interface StatisticsProps { - statistics: Statistics; -} - -export function Contribution({ statistics }: StatisticsProps) { - const { scores } = statistics.data[0]; - const { - omega, - calmar, - sharpe, - sortino, - statistical_confidence, - return:returnScore, - } = scores; - - return ( - - - Miner Contribution - - - - - Omega - - - Calmar - - - Sharpe - - - Sortino - - - Statistical Confidence - - - Return - - - - - ); -} diff --git a/miner_objects/miner_dashboard/src/components/Contribution/index.ts b/miner_objects/miner_dashboard/src/components/Contribution/index.ts deleted file mode 100644 index 9dd4fd869..000000000 --- a/miner_objects/miner_dashboard/src/components/Contribution/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Contribution } from "./Contribution"; diff --git a/miner_objects/miner_dashboard/src/components/Copy/Copy.tsx b/miner_objects/miner_dashboard/src/components/Copy/Copy.tsx deleted file mode 100644 index d4b14dd72..000000000 --- a/miner_objects/miner_dashboard/src/components/Copy/Copy.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { CopyButton, Tooltip, ActionIcon, rem } from "@mantine/core"; -import { IconCheck, IconCopy } from "@tabler/icons-react"; - -interface CopyProps { - value: string; -} - -export const Copy = ({ value }: CopyProps) => { - return ( - - {({ copied, copy }) => ( - - - {copied ? ( - - ) : ( - - )} - - - )} - - ); -}; diff --git a/miner_objects/miner_dashboard/src/components/Copy/index.ts b/miner_objects/miner_dashboard/src/components/Copy/index.ts deleted file mode 100644 index a1b0985d0..000000000 --- a/miner_objects/miner_dashboard/src/components/Copy/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Copy } from "./Copy"; diff --git a/miner_objects/miner_dashboard/src/components/ErrorBoundary/ErrorBoundary.tsx b/miner_objects/miner_dashboard/src/components/ErrorBoundary/ErrorBoundary.tsx deleted file mode 100644 index 590243492..000000000 --- a/miner_objects/miner_dashboard/src/components/ErrorBoundary/ErrorBoundary.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import React, { ReactNode } from "react"; - -interface ErrorBoundaryProps { - children: ReactNode; - fallback?: ReactNode; -} - -interface ErrorBoundaryState { - hasError: boolean; -} - -class ErrorBoundary extends React.Component { - constructor(props: ErrorBoundaryProps) { - super(props); - this.state = { hasError: false }; - } - - // eslint-disable-next-line @typescript-eslint/no-unused-vars - static getDerivedStateFromError(_: Error): ErrorBoundaryState { - return { hasError: true }; - } - - componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void { - console.log("Error:", error, errorInfo); - } - - render() { - if (this.state.hasError) { - return this.props.fallback ||

Something went wrong.

; - } - - return this.props.children; - } -} - -export default ErrorBoundary; diff --git a/miner_objects/miner_dashboard/src/components/ErrorBoundary/index.ts b/miner_objects/miner_dashboard/src/components/ErrorBoundary/index.ts deleted file mode 100644 index 745096690..000000000 --- a/miner_objects/miner_dashboard/src/components/ErrorBoundary/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import ErrorBoundary from "./ErrorBoundary"; - -export { ErrorBoundary }; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/ErrorFallback/ErrorFallback.tsx b/miner_objects/miner_dashboard/src/components/ErrorFallback/ErrorFallback.tsx deleted file mode 100644 index 2cb4668fa..000000000 --- a/miner_objects/miner_dashboard/src/components/ErrorFallback/ErrorFallback.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from "react"; -import { Center } from "@mantine/core"; - -interface ErrorFallbackProps { - error: Error; -} - -export const ErrorFallback: React.FC = ({ error }) => { - return ( -
-
-
{error.message}
-
-
- ); -}; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/ErrorFallback/index.ts b/miner_objects/miner_dashboard/src/components/ErrorFallback/index.ts deleted file mode 100644 index 932f52645..000000000 --- a/miner_objects/miner_dashboard/src/components/ErrorFallback/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./ErrorFallback"; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/Main/Main.tsx b/miner_objects/miner_dashboard/src/components/Main/Main.tsx deleted file mode 100644 index aefcd4cb4..000000000 --- a/miner_objects/miner_dashboard/src/components/Main/Main.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { Container } from "@mantine/core"; - -import { MinerData } from "../../types"; -import { Challenges } from "../Challenges"; - -import { Checkpoints } from "../Checkpoints"; -import { Contribution } from "../Contribution"; -import { Statistics } from "../Statistics"; -import { OverviewGraph } from "../OverviewGraph"; -import { Positions } from "../Positions"; - -interface MainProps { - data: MinerData; -} - -export const Main = ({ data }: MainProps) => { - const { statistics, positions } = data; - const { hotkey } = statistics.data[0]; - - return ( - - - - - - - - - ); -}; diff --git a/miner_objects/miner_dashboard/src/components/Main/index.ts b/miner_objects/miner_dashboard/src/components/Main/index.ts deleted file mode 100644 index d3313a196..000000000 --- a/miner_objects/miner_dashboard/src/components/Main/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Main } from "./Main"; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/Margins/Margins.tsx b/miner_objects/miner_dashboard/src/components/Margins/Margins.tsx deleted file mode 100644 index 588add706..000000000 --- a/miner_objects/miner_dashboard/src/components/Margins/Margins.tsx +++ /dev/null @@ -1,179 +0,0 @@ -import {useState} from "react"; -import { - Box, - Card, - Title, - Group, - Checkbox, - Tooltip, - Text, ThemeIcon, -} from "@mantine/core"; -import {IconHelp} from "@tabler/icons-react"; -import { - Area, - AreaChart, - XAxis, - YAxis, - Tooltip as RechartsTooltip, - Legend, - CartesianGrid, - ResponsiveContainer, -} from "recharts"; - -import {formatDate} from "../../utils"; - -interface MarginsProps { - miner: any; -} - -const SCALES = { - gl: { - min: -8, - max: 8, - }, - delta: { - min: -0.1, - max: 0.1, - }, -}; - -export const Margins = ({miner}: MarginsProps) => { - const {checkpoints} = miner; - const [autoScale, setAutoScale] = useState({ - gl: false, - delta: false, - }); - - const data = checkpoints.map((item: any) => ({ - margin: item.gain + item.loss, - ...item, - })); - - const handleAutoScale = (chartType: "gl" | "delta") => { - setAutoScale((prevAutoScale) => ({ - ...prevAutoScale, - [chartType]: !prevAutoScale[chartType], - })); - }; - - const gradientOffset = () => { - const dataMax = Math.max(...data.map((i: any) => i.margin)); - const dataMin = Math.min(...data.map((i: any) => i.margin)); - - if (dataMax <= 0) { - return 0; - } - if (dataMin >= 0) { - return 1; - } - - return dataMax / (dataMax - dataMin); - }; - - const off = gradientOffset(); - - return ( - - - - - Captured Margins - - - - - - - handleAutoScale("delta")} - /> - - - - formatDate(unixTime, "MM/DD/YY")} - /> - - ( - - {value} - - )} - /> - - formatDate(unixTime, "MM/DD/YY")} - minTickGap={20} - tickMargin={20} - style={{ - fontSize: "0.7rem", - fontFamily: "inherit", - }} - /> - - - - - - - - - - - - - - - - ); -} diff --git a/miner_objects/miner_dashboard/src/components/Margins/index.ts b/miner_objects/miner_dashboard/src/components/Margins/index.ts deleted file mode 100644 index 8ebabc72a..000000000 --- a/miner_objects/miner_dashboard/src/components/Margins/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Margins } from "./Margins"; diff --git a/miner_objects/miner_dashboard/src/components/Orders/Orders.tsx b/miner_objects/miner_dashboard/src/components/Orders/Orders.tsx deleted file mode 100644 index 90c3c0f45..000000000 --- a/miner_objects/miner_dashboard/src/components/Orders/Orders.tsx +++ /dev/null @@ -1,145 +0,0 @@ -import { Fragment } from "react"; -import { Table, Text, Box, Button } from "@mantine/core"; -import { - createColumnHelper, - flexRender, - getCoreRowModel, - useReactTable, - getExpandedRowModel, -} from "@tanstack/react-table"; - -import { Order, Source } from "../../types"; -import { formatCurrency, formatDate } from "../../utils"; - -import { Sources } from "../Sources"; - -import styles from "./orders.module.css"; - -interface ColumnData { - leverage: number; - order_type: string; - processed_ms: number; - price: number; - price_sources: Source[]; -} - -const columnHelper = createColumnHelper(); - -const columns = [ - columnHelper.accessor("leverage", { - header: "Leverage", - cell: (info) => ( - - {Math.abs(info.getValue())} - - ), - }), - columnHelper.accessor("order_type", { - header: "Order Type", - cell: (info) => ( - - {info.getValue()} - - ), - }), - columnHelper.accessor("processed_ms", { - header: "Processed Time", - cell: (info) => ( - - {formatDate(info.getValue())} - - ), - }), - columnHelper.accessor("price", { - header: "Price", - cell: (info) => ( - - {formatCurrency(info.getValue())} - - ), - }), - columnHelper.display({ - id: "expander", - cell: ({ row }) => { - if (row.original.price_sources.length === 0) { - return null; - } - - return ( - - - - ); - }, - }), -]; - -interface OrdersProps { - orders: Order[]; -} - -export const Orders = ({ orders }: OrdersProps) => { - const table = useReactTable({ - initialState: { - pagination: { - pageIndex: 0, - }, - }, - data: orders, - columns, - getCoreRowModel: getCoreRowModel(), - getExpandedRowModel: getExpandedRowModel(), - }); - - return ( - - - - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => ( - - - {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.header, - header.getContext(), - )} - - - ))} - - ))} - - - {table.getRowModel().rows.map((row) => ( - - - {row.getVisibleCells().map((cell) => ( - - {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} - - ))} - - {row.getIsExpanded() && !!row.original.price_sources.length && ( - - )} - - ))} - -
-
-
- ); -}; diff --git a/miner_objects/miner_dashboard/src/components/Orders/index.ts b/miner_objects/miner_dashboard/src/components/Orders/index.ts deleted file mode 100644 index 3ebe39676..000000000 --- a/miner_objects/miner_dashboard/src/components/Orders/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Orders } from "./Orders"; diff --git a/miner_objects/miner_dashboard/src/components/Orders/orders.module.css b/miner_objects/miner_dashboard/src/components/Orders/orders.module.css deleted file mode 100644 index 94baa8632..000000000 --- a/miner_objects/miner_dashboard/src/components/Orders/orders.module.css +++ /dev/null @@ -1,11 +0,0 @@ -.tr { - width: 100%; -} - -.td { - padding: 0; -} - -.table { - width: 100%; -} diff --git a/miner_objects/miner_dashboard/src/components/OverviewGraph/OverviewGraph.tsx b/miner_objects/miner_dashboard/src/components/OverviewGraph/OverviewGraph.tsx deleted file mode 100644 index d75674e39..000000000 --- a/miner_objects/miner_dashboard/src/components/OverviewGraph/OverviewGraph.tsx +++ /dev/null @@ -1,149 +0,0 @@ -import { useState } from "react"; -import { Box, Card, Title, Group, Text, Slider } from "@mantine/core"; -import { Statistics, Checkpoint } from "../../types"; - -import { formatDate, toPercent } from "../../utils"; - -import { - ComposedChart, - Area, - Bar, - XAxis, - YAxis, - CartesianGrid, - Tooltip, - Legend, - ResponsiveContainer, -} from "recharts"; - -interface OverviewGraphProps { - statistics: Statistics; -} - -export function OverviewGraph({ statistics }: OverviewGraphProps) { - const [value, setValue] = useState(0.5); - const [max, setMax] = useState(0.5); - const { checkpoints } = statistics.data[0]; - - const data = checkpoints.map((item: Checkpoint) => { - return { - ...item, - mdd: 1 - item.mdd, // drawdown is negative, so we need to invert it - }; - }); - - return ( - - - - Overall Returns vs Drawdown - - - Drawdown Scale - - - - - - - formatDate(unixTime, "MM/DD/YY")} - minTickGap={40} - tickMargin={10} - style={{ - fontSize: "0.7rem", - fontFamily: "inherit", - }} - /> - - - - toPercent(value, 0)} - /> - - formatDate(unixTime, "MM/DD/YY")} - /> - - ( - - {value} - - )} - /> - - - - - - - - ); -} diff --git a/miner_objects/miner_dashboard/src/components/OverviewGraph/index.ts b/miner_objects/miner_dashboard/src/components/OverviewGraph/index.ts deleted file mode 100644 index 2537fa68e..000000000 --- a/miner_objects/miner_dashboard/src/components/OverviewGraph/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./OverviewGraph"; diff --git a/miner_objects/miner_dashboard/src/components/PenaltyCard/PenaltyCard.tsx b/miner_objects/miner_dashboard/src/components/PenaltyCard/PenaltyCard.tsx deleted file mode 100644 index db71fa4eb..000000000 --- a/miner_objects/miner_dashboard/src/components/PenaltyCard/PenaltyCard.tsx +++ /dev/null @@ -1,66 +0,0 @@ -"use client"; - -import { Card, Group, Text, Tooltip, ThemeIcon, Box } from "@mantine/core"; -import { IconQuestionMark } from "@tabler/icons-react"; - -import { toShortFloat } from "../../utils"; - -interface PenaltiesGroup { - drawdown_threshold: number; - risk_profile: number; - total: number; -} - -interface PenaltyCardProps { - title: string; - penalties: PenaltiesGroup; - tooltipText: string; -} - -export const PenaltyCard = ({ - title, - penalties, - tooltipText, -}: PenaltyCardProps) => { - return ( - - - - {title} - - - - - - - - - - - Drawdown Threshold:{" "} - - {toShortFloat(penalties.drawdown_threshold)} - - - - - - - Total:{" "} - - {toShortFloat(penalties.total)} - - - - - - - Risk Profile:{" "} - - {toShortFloat(penalties.risk_profile)} - - - - - ); -}; diff --git a/miner_objects/miner_dashboard/src/components/PenaltyCard/index.ts b/miner_objects/miner_dashboard/src/components/PenaltyCard/index.ts deleted file mode 100644 index 25fe2e43c..000000000 --- a/miner_objects/miner_dashboard/src/components/PenaltyCard/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { PenaltyCard } from "./PenaltyCard"; diff --git a/miner_objects/miner_dashboard/src/components/Positions/Positions.tsx b/miner_objects/miner_dashboard/src/components/Positions/Positions.tsx deleted file mode 100644 index d8b67318a..000000000 --- a/miner_objects/miner_dashboard/src/components/Positions/Positions.tsx +++ /dev/null @@ -1,161 +0,0 @@ -import { useState, Fragment } from "react"; -import { Text, Box, Button, Table, Title, Card } from "@mantine/core"; -import { - createColumnHelper, - flexRender, - getCoreRowModel, - useReactTable, - getExpandedRowModel, - getSortedRowModel, - SortingState, -} from "@tanstack/react-table"; - -import { Position, Order, TradePair } from "../../types"; -import { formatDate, toNormalizePercent } from "../../utils"; - -import { Orders } from "../Orders"; - -interface ColumnData { - trade_pair: TradePair[]; - position_type: string; - open_ms: number; - close_ms: number; - return_at_close: number; - orders: Order[]; // Adjust the type based on what 'Orders' expects -} - -const columnHelper = createColumnHelper(); - -const columns = [ - columnHelper.accessor("trade_pair", { - header: "Trade Pair", - cell: (info) => { - return ( - - {info.getValue()[1]} - - ); - }, - }), - columnHelper.accessor("position_type", { - header: "Position Type", - cell: (info) => ( - - {info.getValue()} - - - ), - }), - columnHelper.accessor("open_ms", { - header: "Open", - cell: (info) => ( - - {formatDate(info.getValue())} - - - ), - }), - columnHelper.accessor("close_ms", { - header: "Close", - cell: (info) => ( - - {formatDate(info.getValue())} - - - ), - }), - columnHelper.accessor("return_at_close", { - header: "Return", - cell: (info) => ( - - {toNormalizePercent(info.getValue())} - - ), - }), - columnHelper.display({ - id: "expander", - cell: ({ row }) => ( - - - - ), - }), -]; - -interface PositionsProps { - positions: Position[]; -} - -export const Positions = ({ positions }: PositionsProps) => { - const [sorting] = useState([{ id: "open_ms", desc: false }]); - - const table = useReactTable({ - data: positions, - columns, - state: { - sorting, - }, - initialState: { - pagination: { - pageIndex: 0, - }, - sorting, - }, - getSortedRowModel: getSortedRowModel(), - getCoreRowModel: getCoreRowModel(), - getExpandedRowModel: getExpandedRowModel(), - }); - - return ( - - Positions - - - - -
- - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => ( - - - {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.header, - header.getContext(), - )} - - - ))} - - ))} - - - {table.getRowModel().rows.map((row) => ( - - - {row.getVisibleCells().map((cell) => ( - - {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} - - ))} - - {row.getIsExpanded() && } - - ))} - -
- - - - -
- ); -}; diff --git a/miner_objects/miner_dashboard/src/components/Positions/index.ts b/miner_objects/miner_dashboard/src/components/Positions/index.ts deleted file mode 100644 index c6474f2cb..000000000 --- a/miner_objects/miner_dashboard/src/components/Positions/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Positions } from "./Positions"; diff --git a/miner_objects/miner_dashboard/src/components/ScoreCard/ScoreCard.tsx b/miner_objects/miner_dashboard/src/components/ScoreCard/ScoreCard.tsx deleted file mode 100644 index ec55883fc..000000000 --- a/miner_objects/miner_dashboard/src/components/ScoreCard/ScoreCard.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { Card, Badge } from "@mantine/core"; -import { ProgressBar } from "../Tremor"; - -interface ScoreCardProps { - label: string; - value: number; - target: number; - max?: number; -} - -export const ScoreCard = ({ label, value, target, max=1.00 }: ScoreCardProps) => { - return ( - -
-
-

{label}

- - {value.toFixed(2)} - - /{max.toFixed(2)} - - -
- = target ? "success" : "default"} - value={value} - max={max} - /> -
- {value >= target ? ( - Passing - ) : ( - Not Passing - )} -
-
-
- ); -}; diff --git a/miner_objects/miner_dashboard/src/components/ScoreCard/index.ts b/miner_objects/miner_dashboard/src/components/ScoreCard/index.ts deleted file mode 100644 index 8bb96cc78..000000000 --- a/miner_objects/miner_dashboard/src/components/ScoreCard/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { ScoreCard } from "./ScoreCard.tsx"; diff --git a/miner_objects/miner_dashboard/src/components/Sources/Sources.tsx b/miner_objects/miner_dashboard/src/components/Sources/Sources.tsx deleted file mode 100644 index 81e2bbc55..000000000 --- a/miner_objects/miner_dashboard/src/components/Sources/Sources.tsx +++ /dev/null @@ -1,146 +0,0 @@ -import { Table, Text } from "@mantine/core"; -import { - createColumnHelper, - flexRender, - getCoreRowModel, - useReactTable, - getSortedRowModel, -} from "@tanstack/react-table"; -import { Source } from "../../types"; - -import { formatDate } from "../../utils"; - -import styles from "./sources.module.css"; - -interface ColumnData { - source: string; - start_ms: number; - high: number; - low: number; - timespan_ms: number; - lag_ms: number; - open: number; - close: number; -} - -const columnHelper = createColumnHelper(); - -const columns = [ - columnHelper.accessor("source", { - header: "Source", - cell: (info) => ( - - {info.getValue()} - - ), - }), - columnHelper.accessor("start_ms", { - header: "Start", - cell: (info) => ( - - {formatDate(info.getValue())} - - ), - }), - columnHelper.accessor("high", { - header: "High", - cell: (info) => ( - - {info.getValue()} - - ), - }), - columnHelper.accessor("low", { - header: "Low", - cell: (info) => ( - - {info.getValue()} - - ), - }), - columnHelper.accessor("timespan_ms", { - header: "Timespan (ms)", - cell: (info) => ( - - {info.getValue()} - - ), - }), - columnHelper.accessor("lag_ms", { - header: "Lag (ms)", - cell: (info) => ( - - {info.getValue()} - - ), - }), - columnHelper.accessor("open", { - header: "Open", - cell: (info) => ( - - {info.getValue()} - - ), - }), - columnHelper.accessor("close", { - header: "Close", - cell: (info) => ( - - {info.getValue()} - - ), - }), -]; - - -interface SourcesProps { - sources: Source[]; -} - - -export const Sources = ({ sources = [] }: SourcesProps) => { - const table = useReactTable({ - data: sources, - columns, - getSortedRowModel: getSortedRowModel(), - getCoreRowModel: getCoreRowModel(), - }); - - return ( - - - - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => ( - - - {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.header, - header.getContext(), - )} - - - ))} - - ))} - - - {table.getRowModel().rows.map((row) => ( - - {row.getVisibleCells().map((cell) => ( - - {flexRender(cell.column.columnDef.cell, cell.getContext())} - - ))} - - ))} - -
-
-
- ); -}; diff --git a/miner_objects/miner_dashboard/src/components/Sources/index.ts b/miner_objects/miner_dashboard/src/components/Sources/index.ts deleted file mode 100644 index 5e3a163f3..000000000 --- a/miner_objects/miner_dashboard/src/components/Sources/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Sources } from "./Sources.tsx"; diff --git a/miner_objects/miner_dashboard/src/components/Sources/sources.module.css b/miner_objects/miner_dashboard/src/components/Sources/sources.module.css deleted file mode 100644 index 170364f1e..000000000 --- a/miner_objects/miner_dashboard/src/components/Sources/sources.module.css +++ /dev/null @@ -1,20 +0,0 @@ -.th { - border-top: 1px dashed #e35f25; - border-bottom: 1px dashed #e35f25; -} - -.tr { - width: 100%; -} - -.tr:not(:last-child) { - border-bottom: 1px dashed #e35f25; -} - -.td { - padding: 0; -} - -.table { - width: 100%; -} diff --git a/miner_objects/miner_dashboard/src/components/StatCard/StatCard.tsx b/miner_objects/miner_dashboard/src/components/StatCard/StatCard.tsx deleted file mode 100644 index e2ff60b98..000000000 --- a/miner_objects/miner_dashboard/src/components/StatCard/StatCard.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import { Card, Group, Text, Tooltip, ThemeIcon, Box } from "@mantine/core"; -import { IconHelp } from "@tabler/icons-react"; - -import { Score } from "../../types"; - -type StatCardProps = { - disabled?: boolean; - title: string; - item: Score | number; // Accept both Score and number - isPercentage?: boolean; - sigFigs?: number; - tooltipText: string; -}; - -export const StatCard = ({ - disabled, - title, - item, - isPercentage = false, - sigFigs = 4, - tooltipText, -}: StatCardProps) => { - const { value, rank, percentile } = item as Score; - - return ( - - - - {title} - - - - - - - - - {value !== undefined && value !== null && !isNaN(value) - ? isPercentage - ? `${(value * 100).toFixed(sigFigs)}%` - : value.toFixed(sigFigs) - : "N/A"} - - - - - {rank !== null && ( - - - Rank - - - {rank} - - - )} - - {percentile !== null && ( - - - Percentile - - - {(percentile * 100).toFixed(0)}% - - - )} - - ); -}; diff --git a/miner_objects/miner_dashboard/src/components/StatCard/index.ts b/miner_objects/miner_dashboard/src/components/StatCard/index.ts deleted file mode 100644 index ddfcd6ebe..000000000 --- a/miner_objects/miner_dashboard/src/components/StatCard/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { StatCard } from "./StatCard"; diff --git a/miner_objects/miner_dashboard/src/components/Statistics/Statistics.tsx b/miner_objects/miner_dashboard/src/components/Statistics/Statistics.tsx deleted file mode 100644 index 8735d84e6..000000000 --- a/miner_objects/miner_dashboard/src/components/Statistics/Statistics.tsx +++ /dev/null @@ -1,125 +0,0 @@ -import { Card, Box, Text, Title, Group, SimpleGrid } from "@mantine/core"; -import { - toHours, - toPercent, - toRemainingPercent, - toShortFloat, -} from "../../utils"; - -import { Statistics as StatisticsType, Positions } from "../../types"; - -interface StatisticsProps { - statistics: StatisticsType; - positions: Record; -} - -export const Statistics = ({ statistics, positions }: StatisticsProps) => { - const { weight, engagement, drawdowns, hotkey } = statistics.data[0]; - - const positionData = positions[hotkey]; - - return ( - - Statistics - - - - - Weight - - - - - Rank - - {weight.rank} - - - - - Percentile - - {toPercent(weight.percentile, 0)} - - - - - Value - - {toShortFloat(weight.value, 3)} - - - - - - - Drawdown - - - - - Max Drawdown - - {toRemainingPercent(drawdowns.max_drawdown, 2)} - - - - - - Engagement - - - - Number of Closed Positions - - {engagement.n_positions} - - - - Total Recorded Closed Position Duration - - {toHours(engagement.checkpoint_durations)} hr - - - - - - Positions - - - - - 30-Day Returns - - - {toPercent(positionData.thirty_day_returns, 0)} - - - - - - All Time Returns - - - {toPercent(positionData.all_time_returns, 0)} - - - - - - Total Number of Positions - - {positionData.n_positions} - - - - - Percentage Profitable - - {toPercent(positionData.percentage_profitable, 0)} - - - - - ); -}; diff --git a/miner_objects/miner_dashboard/src/components/Statistics/index.ts b/miner_objects/miner_dashboard/src/components/Statistics/index.ts deleted file mode 100644 index 0cac62003..000000000 --- a/miner_objects/miner_dashboard/src/components/Statistics/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./Statistics"; diff --git a/miner_objects/miner_dashboard/src/components/Tremor/Badge/Badge.tsx b/miner_objects/miner_dashboard/src/components/Tremor/Badge/Badge.tsx deleted file mode 100644 index dda96b02d..000000000 --- a/miner_objects/miner_dashboard/src/components/Tremor/Badge/Badge.tsx +++ /dev/null @@ -1,61 +0,0 @@ -// Tremor Badge [v0.0.1] - -import React from "react"; -import { tv, type VariantProps } from "tailwind-variants"; - -import { cx } from "../../../utils"; - -const badgeVariants = tv({ - base: cx( - "inline-flex items-center gap-x-1 whitespace-nowrap rounded-md px-2 py-1 text-xs font-medium ring-1 ring-inset", - ), - variants: { - variant: { - default: [ - "bg-gray-50 text-gray-900 ring-gray-500/30", - "dark:bg-gray-400/10 dark:text-gray-400 dark:ring-gray-400/30", - ], - neutral: [ - "bg-gray-50 text-gray-900 ring-gray-500/30", - "dark:bg-gray-400/10 dark:text-gray-400 dark:ring-gray-400/20", - ], - success: [ - "bg-orange-50 text-orange-900 ring-orange-600/30", - "dark:bg-orange-400/10 dark:text-orange-400 dark:ring-orange-400/20", - ], - error: [ - "bg-red-50 text-red-900 ring-red-600/20", - "dark:bg-red-400/10 dark:text-red-400 dark:ring-red-400/20", - ], - warning: [ - "bg-yellow-50 text-yellow-900 ring-yellow-600/30", - "dark:bg-yellow-400/10 dark:text-yellow-500 dark:ring-yellow-400/20", - ], - }, - }, - defaultVariants: { - variant: "default", - }, -}); - -interface BadgeProps - extends React.ComponentPropsWithoutRef<"span">, - VariantProps { -} - -const Badge = React.forwardRef( - ({ className, variant, ...props }: BadgeProps, forwardedRef) => { - return ( - - ); - }, -); - -Badge.displayName = "Badge"; - -export { Badge, badgeVariants, type BadgeProps }; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/Tremor/Badge/index.ts b/miner_objects/miner_dashboard/src/components/Tremor/Badge/index.ts deleted file mode 100644 index fe56447ee..000000000 --- a/miner_objects/miner_dashboard/src/components/Tremor/Badge/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Badge } from "./Badge"; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/Tremor/Card/Card.tsx b/miner_objects/miner_dashboard/src/components/Tremor/Card/Card.tsx deleted file mode 100644 index f56e0a0a2..000000000 --- a/miner_objects/miner_dashboard/src/components/Tremor/Card/Card.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React from "react"; -import { Slot } from "@radix-ui/react-slot"; - -import { cx } from "../../../utils"; - -interface CardProps extends React.ComponentPropsWithoutRef<"div"> { - asChild?: boolean; -} - -const Card = React.forwardRef( - ({ className, asChild, ...props }, forwardedRef) => { - const Component = asChild ? Slot : "div"; - return ( - - ); - }, -); - -Card.displayName = "Card"; - -export { Card, type CardProps }; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/Tremor/Card/index.ts b/miner_objects/miner_dashboard/src/components/Tremor/Card/index.ts deleted file mode 100644 index 2cbbf2a99..000000000 --- a/miner_objects/miner_dashboard/src/components/Tremor/Card/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Card } from "./Card.tsx"; diff --git a/miner_objects/miner_dashboard/src/components/Tremor/CategoryBar/CategoryBar.tsx b/miner_objects/miner_dashboard/src/components/Tremor/CategoryBar/CategoryBar.tsx deleted file mode 100644 index 8e8471ed8..000000000 --- a/miner_objects/miner_dashboard/src/components/Tremor/CategoryBar/CategoryBar.tsx +++ /dev/null @@ -1,216 +0,0 @@ -"use client"; - -import React from "react"; - -import { AvailableChartColors, AvailableChartColorsKeys, getColorClassName } from "../../../lib"; -import { cx } from "../../../utils"; - -import { Tooltip } from "../Tooltip"; - -const getMarkerBgColor = ( - marker: number | undefined, - values: number[], - colors: AvailableChartColorsKeys[], -): string => { - if (marker === undefined) return ""; - - if (marker === 0) { - for (let index = 0; index < values.length; index++) { - if (values[index] > 0) { - return getColorClassName(colors[index], "bg"); - } - } - } - - let prefixSum = 0; - for (let index = 0; index < values.length; index++) { - prefixSum += values[index]; - if (prefixSum >= marker) { - return getColorClassName(colors[index], "bg"); - } - } - - return getColorClassName(colors[values.length - 1], "bg"); -}; - -const getPositionLeft = ( - value: number | undefined, - maxValue: number, -): number => (value ? (value / maxValue) * 100 : 0); - -const sumNumericArray = (arr: number[]) => - arr.reduce((prefixSum, num) => Number(prefixSum + num), 0); - -const BarLabels = ({ values }: { values: number[] }) => { - const sumValues = React.useMemo(() => sumNumericArray(values), [values]); - - let prefixSum = 0; - let sumConsecutiveHiddenLabels = 0; - - return ( -
-
0
- {values.map((widthPercentage, index) => { - prefixSum += Number(widthPercentage); - - const showLabel = - (widthPercentage >= 0.1 * sumValues || - sumConsecutiveHiddenLabels >= 0.09 * sumValues) && - sumValues - prefixSum >= 0.1 * sumValues && - prefixSum >= 0.1 * sumValues && - prefixSum < 0.9 * sumValues; - - sumConsecutiveHiddenLabels = showLabel - ? 0 - : (sumConsecutiveHiddenLabels += widthPercentage); - - const widthPositionLeft = getPositionLeft(widthPercentage, sumValues); - - return ( -
- - {prefixSum} - -
- ); - })} -
- {sumValues} -
-
- ); -}; - -interface CategoryBarProps extends React.HTMLAttributes { - values: number[]; - colors?: AvailableChartColorsKeys[]; - marker?: { value: number; tooltip?: string; showAnimation?: boolean }; - showLabels?: boolean; -} - -const CategoryBar = React.forwardRef( - ( - { - values = [], - colors = AvailableChartColors, - marker, - showLabels = true, - className, - ...props - }, - forwardedRef, - ) => { - const markerBgColor = React.useMemo( - () => getMarkerBgColor(marker?.value, values, colors), - [marker, values, colors], - ); - - const maxValue = React.useMemo(() => sumNumericArray(values), [values]); - - const adjustedMarkerValue = React.useMemo(() => { - if (marker === undefined) return undefined; - if (marker.value < 0) return 0; - if (marker.value > maxValue) return maxValue; - return marker.value; - }, [marker, maxValue]); - - const markerPositionLeft: number = React.useMemo( - () => getPositionLeft(adjustedMarkerValue, maxValue), - [adjustedMarkerValue, maxValue], - ); - - return ( -
- {showLabels ? : null} -
-
- {values.map((value, index) => { - const barColor = colors[index] ?? "gray"; - const percentage = (value / maxValue) * 100; - return ( -
- ); - })} -
- - {marker !== undefined ? ( -
- {marker.tooltip ? ( - - - - ) : ( -
- )} -
- ) : null} -
-
- ); - }, -); - -CategoryBar.displayName = "CategoryBar"; - -export { CategoryBar, type CategoryBarProps }; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/Tremor/CategoryBar/index.ts b/miner_objects/miner_dashboard/src/components/Tremor/CategoryBar/index.ts deleted file mode 100644 index 4e4a60ef7..000000000 --- a/miner_objects/miner_dashboard/src/components/Tremor/CategoryBar/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { CategoryBar } from "./CategoryBar.tsx"; diff --git a/miner_objects/miner_dashboard/src/components/Tremor/ProgressBar/ProgressBar.tsx b/miner_objects/miner_dashboard/src/components/Tremor/ProgressBar/ProgressBar.tsx deleted file mode 100644 index 6df044d22..000000000 --- a/miner_objects/miner_dashboard/src/components/Tremor/ProgressBar/ProgressBar.tsx +++ /dev/null @@ -1,168 +0,0 @@ -// Tremor ProgressBar [v0.0.2] - -import React from "react"; -import { tv, type VariantProps } from "tailwind-variants"; -import Decimal from "decimal.js"; - -import { cx } from "../../../utils"; - -import { Tooltip } from "../Tooltip"; - -const progressBarVariants = tv({ - slots: { - background: "", - bar: "", - tick: "", - }, - variants: { - variant: { - default: { - background: "bg-gray-200 dark:bg-gray-500/30", - bar: "bg-gray-500 dark:bg-gray-500", - tick: "bg-gray-500 dark:bg-gray-500", - }, - neutral: { - background: "bg-gray-200 dark:bg-gray-500/40", - bar: "bg-gray-500 dark:bg-gray-500", - tick: "bg-gray-500 dark:bg-gray-500", - }, - warning: { - background: "bg-yellow-200 dark:bg-yellow-500/30", - bar: "bg-yellow-500 dark:bg-yellow-500", - tick: "bg-yellow-500 dark:bg-yellow-500", - }, - error: { - background: "bg-red-200 dark:bg-red-500/30", - bar: "bg-red-500 dark:bg-red-500", - tick: "bg-red-500 dark:bg-red-500", - }, - success: { - background: "bg-orange-200 dark:bg-orange-500/30", - bar: "bg-orange-500 dark:bg-orange-500", - tick: "bg-orange-500 dark:bg-orange-500", - }, - }, - }, - defaultVariants: { - variant: "default", - }, -}); - -interface ProgressBarProps - extends React.HTMLProps, - VariantProps { - value?: number; - max?: number; - min?: number; - showAnimation?: boolean; - label?: string; -} - -const ProgressBar = React.forwardRef( - ( - { - value = 0, - max = 100, - label, - showAnimation = false, - variant, - className, - ...props - }: ProgressBarProps, - forwardedRef, - ) => { - const { background, bar, tick } = progressBarVariants({ variant }); - let progressWidth: Decimal; - - const decimalValue = new Decimal(value); // Convert value to Decimal - const decimalMax = new Decimal(max); // Convert max (target) to Decimal - - if (decimalValue.greaterThan(decimalMax)) { - // Case 1: When the current value needs to decrease to hit the target (max) - progressWidth = decimalValue.minus(decimalMax).div(decimalValue).times(100); // Inverse progress calculation - } else { - // Case 2: When the current value needs to increase to hit the target (max) - progressWidth = decimalValue.div(decimalMax).times(100); // Normal progress calculation - } - - // Ensure progressWidth is capped at 100% to avoid overflow - progressWidth = Decimal.min(progressWidth, 100); - - // Format the progress width with 2 decimal places - const formattedProgressWidth = progressWidth.toFixed(2); - - return ( -
-
-
- - -
- - - -
- - -
- {label ? ( - - {label} - - ) : null} -
- ); - }, -); - -ProgressBar.displayName = "ProgressBar"; - -export { ProgressBar, progressBarVariants, type ProgressBarProps }; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/Tremor/ProgressBar/index.ts b/miner_objects/miner_dashboard/src/components/Tremor/ProgressBar/index.ts deleted file mode 100644 index 0c301e437..000000000 --- a/miner_objects/miner_dashboard/src/components/Tremor/ProgressBar/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { ProgressBar } from "./ProgressBar"; diff --git a/miner_objects/miner_dashboard/src/components/Tremor/Tooltip/Tooltip.tsx b/miner_objects/miner_dashboard/src/components/Tremor/Tooltip/Tooltip.tsx deleted file mode 100644 index e22cb12f5..000000000 --- a/miner_objects/miner_dashboard/src/components/Tremor/Tooltip/Tooltip.tsx +++ /dev/null @@ -1,94 +0,0 @@ -"use client"; - -import React from "react"; -import * as TooltipPrimitives from "@radix-ui/react-tooltip"; - -import { cx } from "../../../utils"; - -interface TooltipProps - extends Omit, - Pick< - TooltipPrimitives.TooltipProps, - "open" | "defaultOpen" | "onOpenChange" | "delayDuration" - > { - content: React.ReactNode; - onClick?: React.MouseEventHandler; - side?: "bottom" | "left" | "top" | "right"; - showArrow?: boolean; - triggerAsChild?: boolean; -} - -const Tooltip = React.forwardRef< - React.ElementRef, - TooltipProps ->( - ( - { - children, - className, - content, - delayDuration, - defaultOpen, - open, - onClick, - onOpenChange, - showArrow = true, - side, - sideOffset = 10, - triggerAsChild = false, - ...props - }: TooltipProps, - forwardedRef, - ) => { - return ( - - - - {children} - - - - {content} - {showArrow ? ( - - - - - ); - }, -); - -Tooltip.displayName = "Tooltip"; - -export { Tooltip, type TooltipProps }; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/components/Tremor/Tooltip/index.ts b/miner_objects/miner_dashboard/src/components/Tremor/Tooltip/index.ts deleted file mode 100644 index 1b921fd37..000000000 --- a/miner_objects/miner_dashboard/src/components/Tremor/Tooltip/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Tooltip } from "./Tooltip.tsx"; diff --git a/miner_objects/miner_dashboard/src/components/Tremor/index.ts b/miner_objects/miner_dashboard/src/components/Tremor/index.ts deleted file mode 100644 index 7a16a4ceb..000000000 --- a/miner_objects/miner_dashboard/src/components/Tremor/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { Badge } from "./Badge"; -export { ProgressBar } from "./ProgressBar"; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/fonts/ADLaMDisplay-Regular.ttf b/miner_objects/miner_dashboard/src/fonts/ADLaMDisplay-Regular.ttf deleted file mode 100644 index 84b0e2c8991a61cfb2203d821b9a49797ad3ee91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96904 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

D`C^@yH6}jW>$pr&{q| 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 CwIWsk diff --git a/miner_objects/miner_dashboard/src/fonts/SpaceMono-BoldItalic.ttf b/miner_objects/miner_dashboard/src/fonts/SpaceMono-BoldItalic.ttf deleted file mode 100644 index ff2ea5a5c2408e8f137a11fe9aaad4245150f013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95292 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%0Ap9 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 diff --git a/miner_objects/miner_dashboard/src/fonts/SpaceMono-Regular.ttf b/miner_objects/miner_dashboard/src/fonts/SpaceMono-Regular.ttf deleted file mode 100644 index 04e56b923fae27ceabc3e82e4337a10d0fc6e002..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90904 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 AivR!s diff --git a/miner_objects/miner_dashboard/src/index.css b/miner_objects/miner_dashboard/src/index.css deleted file mode 100644 index cf5049c94..000000000 --- a/miner_objects/miner_dashboard/src/index.css +++ /dev/null @@ -1,64 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -:root { - font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} - -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; - background-color: #F7F6F3; - padding-bottom: 160px; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} - -button:hover { - border-color: #646cff; -} - -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} diff --git a/miner_objects/miner_dashboard/src/lib/axios.ts b/miner_objects/miner_dashboard/src/lib/axios.ts deleted file mode 100644 index f5588bd2f..000000000 --- a/miner_objects/miner_dashboard/src/lib/axios.ts +++ /dev/null @@ -1,24 +0,0 @@ -import axios, { AxiosError } from "axios"; - -const MINER_URL = import.meta.env.VITE_MINER_URL; - -const api = axios.create({ - baseURL: MINER_URL, - headers: { - "Content-Type": "application/json", - }, -}); - -export async function getMinerData() { - try { - const response = await api.get(`/miner-data`); - - return response.data; - } catch (error) { - if (error instanceof AxiosError) { - throw new Error(error.message); - } else { - throw new Error(`Unknown error: ${(error as Error).message}`); - } - } -} \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/lib/chart.ts b/miner_objects/miner_dashboard/src/lib/chart.ts deleted file mode 100644 index 965fc14bd..000000000 --- a/miner_objects/miner_dashboard/src/lib/chart.ts +++ /dev/null @@ -1,132 +0,0 @@ -// Tremor Raw chartColors [v0.1.0] - -export type ColorUtility = "bg" | "stroke" | "fill" | "text" - -export const chartColors = { - orange: { - bg: "bg-orange-500", - stroke: "stroke-orange-500", - fill: "fill-orange-500", - text: "text-orange-500", - }, - blue: { - bg: "bg-blue-500", - stroke: "stroke-blue-500", - fill: "fill-blue-500", - text: "text-blue-500", - }, - emerald: { - bg: "bg-emerald-500", - stroke: "stroke-emerald-500", - fill: "fill-emerald-500", - text: "text-emerald-500", - }, - violet: { - bg: "bg-violet-500", - stroke: "stroke-violet-500", - fill: "fill-violet-500", - text: "text-violet-500", - }, - amber: { - bg: "bg-amber-500", - stroke: "stroke-amber-500", - fill: "fill-amber-500", - text: "text-amber-500", - }, - gray: { - bg: "bg-gray-500", - stroke: "stroke-gray-500", - fill: "fill-gray-500", - text: "text-gray-500", - }, - cyan: { - bg: "bg-cyan-500", - stroke: "stroke-cyan-500", - fill: "fill-cyan-500", - text: "text-cyan-500", - }, - pink: { - bg: "bg-pink-500", - stroke: "stroke-pink-500", - fill: "fill-pink-500", - text: "text-pink-500", - }, - lime: { - bg: "bg-lime-500", - stroke: "stroke-lime-500", - fill: "fill-lime-500", - text: "text-lime-500", - }, - fuchsia: { - bg: "bg-fuchsia-500", - stroke: "stroke-fuchsia-500", - fill: "fill-fuchsia-500", - text: "text-fuchsia-500", - }, -} as const satisfies { - [color: string]: { - [key in ColorUtility]: string - } -}; - -export type AvailableChartColorsKeys = keyof typeof chartColors; - -export const AvailableChartColors: AvailableChartColorsKeys[] = Object.keys( - chartColors, -) as Array; - -export const constructCategoryColors = ( - categories: string[], - colors: AvailableChartColorsKeys[], -): Map => { - const categoryColors = new Map(); - categories.forEach((category, index) => { - categoryColors.set(category, colors[index % colors.length]); - }); - return categoryColors; -}; - -export const getColorClassName = ( - color: AvailableChartColorsKeys, - type: ColorUtility, -): string => { - const fallbackColor = { - bg: "bg-gray-500", - stroke: "stroke-gray-500", - fill: "fill-gray-500", - text: "text-gray-500", - }; - return chartColors[color]?.[type] ?? fallbackColor[type]; -}; - -// Tremor Raw getYAxisDomain [v0.0.0] - -export const getYAxisDomain = ( - autoMinValue: boolean, - minValue: number | undefined, - maxValue: number | undefined, -) => { - const minDomain = autoMinValue ? "auto" : minValue ?? 0; - const maxDomain = maxValue ?? "auto"; - return [minDomain, maxDomain]; -}; - -// Tremor Raw hasOnlyOneValueForKey [v0.1.0] - -export function hasOnlyOneValueForKey( - array: any[], - keyToCheck: string, -): boolean { - const val: any[] = []; - - for (const obj of array) { - if (Object.prototype.hasOwnProperty.call(obj, keyToCheck)) { - val.push(obj[keyToCheck]); - if (val.length > 1) { - return false; - } - } - } - - return true; -} \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/lib/index.ts b/miner_objects/miner_dashboard/src/lib/index.ts deleted file mode 100644 index 1f7f9940c..000000000 --- a/miner_objects/miner_dashboard/src/lib/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { getMinerData } from "./axios.ts"; -export { AvailableChartColors, type AvailableChartColorsKeys, getColorClassName } from "./chart"; diff --git a/miner_objects/miner_dashboard/src/main.tsx b/miner_objects/miner_dashboard/src/main.tsx deleted file mode 100644 index 608d2add1..000000000 --- a/miner_objects/miner_dashboard/src/main.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import "@mantine/core/styles.css"; - -import { StrictMode } from "react"; -import { createRoot } from "react-dom/client"; -import { MantineProvider } from "@mantine/core"; - -import "@fontsource/adlam-display"; -import "@fontsource-variable/dm-sans"; - -import { theme } from "./theme"; - -import { App } from "./components/App"; - -import "./index.css"; - -createRoot(document.getElementById("root")!).render( - - - - - , -); diff --git a/miner_objects/miner_dashboard/src/theme/colors.ts b/miner_objects/miner_dashboard/src/theme/colors.ts deleted file mode 100644 index 9354ddbed..000000000 --- a/miner_objects/miner_dashboard/src/theme/colors.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { MantineColorsTuple } from "@mantine/core"; - -export const orange: MantineColorsTuple = [ - "#ffefe4", - "#fedfd1", - "#f5bea5", - "#ee9b75", - "#e87d4d", - "#e46933", - "#e35f25", - "#ca4f17", - "#b54512", - "#9e3909", -]; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/theme/index.ts b/miner_objects/miner_dashboard/src/theme/index.ts deleted file mode 100644 index 052ad964b..000000000 --- a/miner_objects/miner_dashboard/src/theme/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { createTheme } from "@mantine/core"; - -import { orange } from "./colors"; - -export const theme = createTheme({ - cursorType: "pointer", - defaultRadius: "0", - black: "#000", - primaryColor: "orange", - colors: { - orange, - }, - headings: { fontFamily: 'ADLaM Display' }, - fontFamily: 'DM Sans Variable', -}); \ No newline at end of file diff --git a/miner_objects/miner_dashboard/src/types/index.ts b/miner_objects/miner_dashboard/src/types/index.ts deleted file mode 100644 index b14b4152b..000000000 --- a/miner_objects/miner_dashboard/src/types/index.ts +++ /dev/null @@ -1,138 +0,0 @@ -export interface Challenge { - percentile: number; - value: number; -} - -export interface ChallengeMetric { - omega: Challenge; - calmar: Challenge; - return: Challenge; - sharpe: Challenge; - sortino: Challenge; - statistical_confidence: Challenge; -} - -export interface ChallengePeriod { - remaining_time_ms: number; - start_time_ms: number; - status: "testing" | "success"; - scores: ChallengeMetric; -} - -export interface Source { - close: number; - high: number; - lag_ms: number; - low: number; - open: number; - source: string; - start_ms: number; - timespan_ms: number; - volume: number; -} - -export interface Order { - leverage: number; - order_type: string; - order_uuid: string; - price: number; - price_sources: Source[]; - processed_ms: number; - trade_pair: TradePair; -} - -export type TradePair = [string, string, number, number, number, string]; - -export interface Position { - average_entry_price: number; - close_ms: number; - current_return: number; - is_closed_position: boolean; - miner_hotkey: string; - net_leverage: number; - open_ms: number; - orders: Order[]; - position_type: string; - position_uuid: string; - return_at_close: number; - trade_pair: TradePair[]; -} - -export interface Score { - value: number; - rank: number; - percentile: number; - overall_contribution: number; -} - -export interface Scores { - return: Score; - omega: Score; - sortino: Score; - statistical_confidence: Score; - sharpe: Score; - calmar: Score; -} - -export interface Penalties { - drawdown_threshold: number; - risk_profile: number; - total: number; -} - -export interface Engagement { - n_positions: number; - position_duration: number; - checkpoint_durations: number; -} - -export interface Checkpoint { - mdd: number; -} - -export interface PenalizedScores { - omega: Score; - sharpe: Score; - risk_adjusted_return: Score; - short_risk_adjusted_return: Score; - calmar: Score; - "short-calmar": Score; -} - -export interface Drawdowns { - max_drawdown: number; -} - -export interface StatisticsData { - hotkey: string; - penalties: Penalties; - penalized_scores: PenalizedScores; - engagement: Engagement; - drawdowns: Drawdowns; - weight: Score; - scores: Scores; - checkpoints: Checkpoint[]; - challengeperiod: ChallengePeriod; -} - -export interface Statistics { - data: StatisticsData[]; - constants: Constants; -} - -export interface Constants { - CHALLENGE_PERIOD_PERCENTILE_THRESHOLD: number; -} - -export interface Positions { - positions: Position[]; - thirty_day_returns: number; - all_time_returns: number; - n_positions: number; - percentage_profitable: number; -} - -export interface MinerData { - statistics: Statistics; - positions: Record; -} diff --git a/miner_objects/miner_dashboard/src/utils/index.ts b/miner_objects/miner_dashboard/src/utils/index.ts deleted file mode 100644 index 3b8eea881..000000000 --- a/miner_objects/miner_dashboard/src/utils/index.ts +++ /dev/null @@ -1,81 +0,0 @@ -import chroma from "chroma-js"; -import dayjs from "dayjs"; -import dayjsPluginUTC from "dayjs/plugin/utc"; -import duration from "dayjs/plugin/duration"; -import clsx, { type ClassValue } from "clsx"; -import { twMerge } from "tailwind-merge"; - -import { ChallengePeriod } from "../types"; - -dayjs.extend(dayjsPluginUTC); -dayjs.extend(duration); - -export function cx(...args: ClassValue[]) { - return twMerge(clsx(...args)); -} - -export const shortenAddress = (address: string, length = 4) => { - const text = address.toString(); - - if (text.length < 9) { - return text; - } - return `${text.substring(0, length)}...${text.substring(text.length - length)}`; -}; - -export const formatDate = ( - value: string | number | Date, - type = "MM/DD/YYYY HH:mm:ss", -): string => { - const validDate = Number(value); - - if (validDate === 0) { - return "N/A"; - } - - return dayjs(validDate).utc().format(type); -}; - -export const formatCurrency = (tick: number, digits = 5) => { - return new Intl.NumberFormat("en-US", { - style: "currency", - currency: "USD", - minimumFractionDigits: digits, - maximumFractionDigits: digits, - }).format(tick); -}; - -export const toHours = (milliseconds: number, decimals = 0) => { - const hours = milliseconds / (1000 * 60 * 60); - - return hours.toFixed(decimals); -}; - -export const toShortFloat = (num: number, decimals = 4) => { - return num.toFixed(decimals); -}; - -export const toPercent = (num: number, decimals = 4) => { - return (num * 100).toFixed(decimals) + "%"; -}; - -export const toRemainingPercent = (num: number, decimals = 4) => { - return ((1 - num) * 100).toFixed(decimals) + "%"; -}; - -export const toNormalizePercent = (num: number, decimals = 2) => { - const percentage = (num - 1) * 100; - - return percentage.toPrecision(decimals) + "%"; -}; - -export const isInChallengePeriod = (challengeperiod: ChallengePeriod) => { - return challengeperiod.status === "testing"; -}; - -export const isColorDark = (color: string) => { - const luminance = chroma(color).luminance(); - - return luminance < 0.5; -}; - diff --git a/miner_objects/miner_dashboard/src/vite-env.d.ts b/miner_objects/miner_dashboard/src/vite-env.d.ts deleted file mode 100644 index 11f02fe2a..000000000 --- a/miner_objects/miner_dashboard/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/miner_objects/miner_dashboard/tailwind.config.js b/miner_objects/miner_dashboard/tailwind.config.js deleted file mode 100644 index 8d36d2e3a..000000000 --- a/miner_objects/miner_dashboard/tailwind.config.js +++ /dev/null @@ -1,87 +0,0 @@ -/* eslint-disable no-undef */ -/** @type {import("tailwindcss").Config} */ - -// (Optional) Import default theme when using a custom font (Step 7) -//import defaultTheme from 'tailwindcss/defaultTheme'; - -export default { - content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], - theme: { - extend: { - keyframes: { - hide: { - from: { opacity: "1" }, - to: { opacity: "0" }, - }, - slideDownAndFade: { - from: { opacity: "0", transform: "translateY(-6px)" }, - to: { opacity: "1", transform: "translateY(0)" }, - }, - slideLeftAndFade: { - from: { opacity: "0", transform: "translateX(6px)" }, - to: { opacity: "1", transform: "translateX(0)" }, - }, - slideUpAndFade: { - from: { opacity: "0", transform: "translateY(6px)" }, - to: { opacity: "1", transform: "translateY(0)" }, - }, - slideRightAndFade: { - from: { opacity: "0", transform: "translateX(-6px)" }, - to: { opacity: "1", transform: "translateX(0)" }, - }, - accordionOpen: { - from: { height: "0px" }, - to: { height: "var(--radix-accordion-content-height)" }, - }, - accordionClose: { - from: { - height: "var(--radix-accordion-content-height)", - }, - to: { height: "0px" }, - }, - dialogOverlayShow: { - from: { opacity: "0" }, - to: { opacity: "1" }, - }, - dialogContentShow: { - from: { - opacity: "0", - transform: "translate(-50%, -45%) scale(0.95)", - }, - to: { opacity: "1", transform: "translate(-50%, -50%) scale(1)" }, - }, - drawerSlideLeftAndFade: { - from: { opacity: "0", transform: "translateX(100%)" }, - to: { opacity: "1", transform: "translateX(0)" }, - }, - drawerSlideRightAndFade: { - from: { opacity: "1", transform: "translateX(0)" }, - to: { opacity: "0", transform: "translateX(100%)" }, - }, - }, - animation: { - hide: "hide 150ms cubic-bezier(0.16, 1, 0.3, 1)", - slideDownAndFade: - "slideDownAndFade 150ms cubic-bezier(0.16, 1, 0.3, 1)", - slideLeftAndFade: - "slideLeftAndFade 150ms cubic-bezier(0.16, 1, 0.3, 1)", - slideUpAndFade: "slideUpAndFade 150ms cubic-bezier(0.16, 1, 0.3, 1)", - slideRightAndFade: - "slideRightAndFade 150ms cubic-bezier(0.16, 1, 0.3, 1)", - // Accordion - accordionOpen: "accordionOpen 150ms cubic-bezier(0.87, 0, 0.13, 1)", - accordionClose: "accordionClose 150ms cubic-bezier(0.87, 0, 0.13, 1)", - // Dialog - dialogOverlayShow: - "dialogOverlayShow 150ms cubic-bezier(0.16, 1, 0.3, 1)", - dialogContentShow: - "dialogContentShow 150ms cubic-bezier(0.16, 1, 0.3, 1)", - // Drawer - drawerSlideLeftAndFade: - "drawerSlideLeftAndFade 150ms cubic-bezier(0.16, 1, 0.3, 1)", - drawerSlideRightAndFade: "drawerSlideRightAndFade 150ms ease-in", - }, - }, - }, - plugins: [require("@tailwindcss/forms")], -}; \ No newline at end of file diff --git a/miner_objects/miner_dashboard/tsconfig.app.json b/miner_objects/miner_dashboard/tsconfig.app.json deleted file mode 100644 index f0a235055..000000000 --- a/miner_objects/miner_dashboard/tsconfig.app.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["src"] -} diff --git a/miner_objects/miner_dashboard/tsconfig.json b/miner_objects/miner_dashboard/tsconfig.json deleted file mode 100644 index 1ffef600d..000000000 --- a/miner_objects/miner_dashboard/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "files": [], - "references": [ - { "path": "./tsconfig.app.json" }, - { "path": "./tsconfig.node.json" } - ] -} diff --git a/miner_objects/miner_dashboard/tsconfig.node.json b/miner_objects/miner_dashboard/tsconfig.node.json deleted file mode 100644 index 0d3d71446..000000000 --- a/miner_objects/miner_dashboard/tsconfig.node.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2022", - "lib": ["ES2023"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["vite.config.ts"] -} diff --git a/miner_objects/miner_dashboard/vite.config.ts b/miner_objects/miner_dashboard/vite.config.ts deleted file mode 100644 index 5a33944a9..000000000 --- a/miner_objects/miner_dashboard/vite.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react' - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [react()], -}) diff --git a/neurons/miner.py b/neurons/miner.py index 4406433fc..0b92abd0a 100644 --- a/neurons/miner.py +++ b/neurons/miner.py @@ -9,7 +9,6 @@ import traceback import time import bittensor as bt -import subprocess from miner_config import MinerConfig from miner_objects.dashboard import Dashboard @@ -48,8 +47,6 @@ def __init__(self): self.dashboard_api_thread.start() except OSError as e: bt.logging.info(f"Unable to start miner dashboard with error {e}. Restart miner and specify a new port if desired.") - # Initialize the dashboard process variable for the frontend - self.dashboard_frontend_process = None def setup_logging_directory(self): if not os.path.exists(self.config.full_path): @@ -121,11 +118,6 @@ def get_config(): help="Whether to write logs for failed signals. Default is True unless --subtensor.network is 'test'.") # Add argument so we can check if run_position_inspector is set which tells us to start the PI thread. Default false parser.add_argument("--run-position-inspector", action="store_true", help="Run the position inspector thread.") - parser.add_argument( - '--start-dashboard', - action='store_true', - help='Start the miner-dashboard along with the miner.' - ) # Parse the config (will take command-line arguments if provided) # To print help message, run python3 template/miner.py --help @@ -154,47 +146,10 @@ def get_config(): ) return config - def start_dashboard_frontend(self): - """ - starts the miner dashboard. Allows the use of npm, yarn, or pnpm - """ - try: - dashboard_dir = "miner_objects/miner_dashboard" - # Determine which package manager is available - package_manager = None - for pm in ['pnpm', 'yarn', 'npm']: - if subprocess.run(['which', pm], stdout=subprocess.PIPE, stderr=subprocess.PIPE).returncode == 0: - package_manager = pm - break - - if not package_manager: - bt.logging.error("No package manager found. Please install npm, yarn, or pnpm.") - return - - # Run 'install' command for the identified package manager - subprocess.run([package_manager, "install"], cwd=dashboard_dir, check=True) - bt.logging.info(f"Install completed using {package_manager}.") - - # Start the dashboard process - if package_manager == 'npm': - self.dashboard_frontend_process = subprocess.Popen(['npm', 'run', 'dev'], cwd=dashboard_dir) # Popen runs in the background - else: - self.dashboard_frontend_process = subprocess.Popen([package_manager, 'dev'], cwd=dashboard_dir) - bt.logging.info("Dashboard started.") - except subprocess.CalledProcessError as e: - bt.logging.error(f"Command '{e.cmd}' failed with return code {e.returncode}.") - except Exception as e: - bt.logging.error(f"Failed to start dashboard: {e}") - def run(self): bt.logging(config=self.config, logging_dir=self.config.full_path) bt.logging.info("Starting miner loop.") - # Start the dashboard if the flag is set - if self.config.start_dashboard: - bt.logging.info("Starting miner dashboard.") - self.start_dashboard_frontend() - bt.logging.info("Waiting for signals...") while True: try: @@ -205,10 +160,6 @@ def run(self): # If someone intentionally stops the miner, it'll safely terminate operations. except KeyboardInterrupt: bt.logging.success("Miner killed by keyboard interrupt.") - if self.dashboard_frontend_process: - self.dashboard_frontend_process.terminate() # Terminate the dashboard if it was started - self.dashboard_frontend_process.wait() - bt.logging.info("Dashboard terminated.") self.metagraph_updater_thread.join() self.position_inspector.stop_update_loop() if self.position_inspector_thread: