From d6e0daf52a9150ed92f8ea828d169e218e10124a Mon Sep 17 00:00:00 2001 From: Henry Dollman Date: Mon, 30 Sep 2024 14:37:59 -0400 Subject: [PATCH] update js deps and add package-lock.json (#192) - replaces use-is-in-viewport package with lib/use-intersection-observer.ts due to npm dependency conflict --- .gitignore | 1 - beszel/site/bun.lockb | Bin 154193 -> 152814 bytes beszel/site/package-lock.json | 4216 +++++++++++++++++ beszel/site/package.json | 19 +- beszel/site/src/components/routes/system.tsx | 16 +- .../site/src/lib/use-intersection-observer.ts | 169 + beszel/site/src/lib/utils.ts | 19 - 7 files changed, 4399 insertions(+), 41 deletions(-) create mode 100644 beszel/site/package-lock.json create mode 100644 beszel/site/src/lib/use-intersection-observer.ts diff --git a/.gitignore b/.gitignore index e725130..613e06f 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,3 @@ dist beszel/cmd/hub/hub beszel/cmd/agent/agent node_modules -package-lock.json diff --git a/beszel/site/bun.lockb b/beszel/site/bun.lockb index e12c7bb63eca867191bb9ec7a95a40001c6a61ba..4fd82d9e1c626cf74cefb90c9529f68ad6713b95 100755 GIT binary patch delta 32070 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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.4", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.2", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor/node_modules/@babel/types": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor/node_modules/@babel/types/node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/template": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/template/node_modules/@babel/parser": { + "version": "7.24.7", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/types": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/types/node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types/node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports/node_modules/@babel/traverse": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports/node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports/node_modules/@babel/traverse/node_modules/@babel/parser": { + "version": "7.24.7", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports/node_modules/@babel/types/node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/traverse": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/traverse/node_modules/@babel/parser": { + "version": "7.24.7", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/types/node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types/node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.6", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.6", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.6", + "@babel/parser": "^7.25.6", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.6", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.4", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.4" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.7", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.4" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.4", + "license": "MIT" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nanostores/react": { + "version": "0.7.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "nanostores": "^0.9.0 || ^0.10.0 || ^0.11.0", + "react": ">=18.0.0" + } + }, + "node_modules/@nanostores/router": { + "version": "0.15.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "nanostores": "^0.9.0 || ^0.10.0 || ^0.11.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@radix-ui/number": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dialog": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.0", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.0", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-slider": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-toast": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.0", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "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 + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.21.2", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.21.2", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@tanstack/react-table": { + "version": "8.20.5", + "license": "MIT", + "dependencies": { + "@tanstack/table-core": "8.20.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/@tanstack/table-core": { + "version": "8.20.5", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__core/node_modules/@babel/parser": { + "version": "7.24.7", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@types/babel__core/node_modules/@babel/types": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__core/node_modules/@babel/types/node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__generator/node_modules/@babel/types": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__generator/node_modules/@babel/types/node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template/node_modules/@babel/parser": { + "version": "7.24.7", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@types/babel__template/node_modules/@babel/types": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__template/node_modules/@babel/types/node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/babel__traverse/node_modules/@babel/types": { + "version": "7.24.7", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__traverse/node_modules/@babel/types/node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/bun": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "bun-types": "1.1.29" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.1", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.0", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.8", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-shape": { + "version": "3.1.6", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.3", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.12.14", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.10", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-dom/node_modules/@types/react": { + "version": "18.3.3", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.2", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "license": "MIT" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bun-types": { + "version": "1.1.29", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "~20.12.8", + "@types/ws": "~8.5.10" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001647", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "2.4.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.0", + "license": "Apache-2.0", + "dependencies": { + "clsx": "2.0.0" + }, + "funding": { + "url": "https://joebell.co.uk" + } + }, + "node_modules/class-variance-authority/node_modules/clsx": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cmdk": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-dialog": "1.0.5", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-escape-keydown": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-guards": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-scope": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-id/node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-portal": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-presence": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-controllable-state/node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll": { + "version": "2.5.5", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/commander": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/d3-array": { + "version": "3.2.4", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/debug": { + "version": "4.3.5", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "license": "MIT" + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.4", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.21.5", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "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" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "10.4.3", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.14.0", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.1", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "license": "MIT" + }, + "node_modules/lodash": { + "version": "4.17.21", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.407.0", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanostores": { + "version": "0.10.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "license": "BlueOak-1.0.0" + }, + "node_modules/path-key": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.0", + "license": "ISC", + "engines": { + "node": ">=18" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pocketbase": { + "version": "0.21.5", + "license": "MIT" + }, + "node_modules/postcss": { + "version": "8.4.47", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.0", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "license": "MIT" + }, + "node_modules/postcss/node_modules/picocolors": { + "version": "1.1.0", + "license": "ISC" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.5.7", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-smooth": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "fast-equals": "^5.0.1", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recharts": { + "version": "2.13.0-alpha.5", + "license": "MIT", + "dependencies": { + "clsx": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.21", + "react-is": "^18.3.1", + "react-smooth": "^4.0.0", + "recharts-scale": "^0.4.4", + "tiny-invariant": "^1.3.1", + "victory-vendor": "^36.6.8" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/recharts-scale": { + "version": "0.4.5", + "license": "MIT", + "dependencies": { + "decimal.js-light": "^2.4.1" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.21.2", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.21.2", + "@rollup/rollup-android-arm64": "4.21.2", + "@rollup/rollup-darwin-arm64": "4.21.2", + "@rollup/rollup-darwin-x64": "4.21.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.21.2", + "@rollup/rollup-linux-arm-musleabihf": "4.21.2", + "@rollup/rollup-linux-arm64-gnu": "4.21.2", + "@rollup/rollup-linux-arm64-musl": "4.21.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.21.2", + "@rollup/rollup-linux-riscv64-gnu": "4.21.2", + "@rollup/rollup-linux-s390x-gnu": "4.21.2", + "@rollup/rollup-linux-x64-gnu": "4.21.2", + "@rollup/rollup-linux-x64-musl": "4.21.2", + "@rollup/rollup-win32-arm64-msvc": "4.21.2", + "@rollup/rollup-win32-ia32-msvc": "4.21.2", + "@rollup/rollup-win32-x64-msvc": "4.21.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwind-merge": { + "version": "2.5.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.13", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/tailwindcss/node_modules/picocolors": { + "version": "1.1.0", + "license": "ISC" + }, + "node_modules/thenify": { + "version": "3.3.1", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "license": "MIT" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.6.3", + "license": "0BSD" + }, + "node_modules/typescript": { + "version": "5.6.2", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "devOptional": true, + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/valibot": { + "version": "0.36.0", + "license": "MIT" + }, + "node_modules/victory-vendor": { + "version": "36.9.2", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/vite": { + "version": "5.4.8", + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "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 + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.4.5", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + } + } +} diff --git a/beszel/site/package.json b/beszel/site/package.json index 634c017..1a29b59 100644 --- a/beszel/site/package.json +++ b/beszel/site/package.json @@ -1,5 +1,5 @@ { - "name": "site", + "name": "beszel", "private": true, "version": "0.0.0", "type": "module", @@ -23,7 +23,7 @@ "@radix-ui/react-toast": "^1.2.1", "@radix-ui/react-tooltip": "^1.1.2", "@tanstack/react-table": "^8.20.5", - "@vitejs/plugin-react": "^4.3.1", + "@vitejs/plugin-react": "^4.3.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "cmdk": "^1.0.0", @@ -34,20 +34,19 @@ "pocketbase": "^0.21.5", "react": "^18.3.1", "react-dom": "^18.3.1", - "recharts": "^2.13.0-alpha.4", + "recharts": "^2.13.0-alpha.5", "tailwind-merge": "^2.5.2", "tailwindcss-animate": "^1.0.7", - "use-is-in-viewport": "^1.0.9", "valibot": "^0.36.0" }, "devDependencies": { - "@types/bun": "^1.1.8", - "@types/react": "^18.3.5", + "@types/bun": "^1.1.10", + "@types/react": "^18.3.10", "@types/react-dom": "^18.3.0", "autoprefixer": "^10.4.20", - "postcss": "^8.4.44", - "tailwindcss": "^3.4.10", - "typescript": "^5.5.4", - "vite": "^5.4.2" + "postcss": "^8.4.47", + "tailwindcss": "^3.4.13", + "typescript": "^5.6.2", + "vite": "^5.4.8" } } diff --git a/beszel/site/src/components/routes/system.tsx b/beszel/site/src/components/routes/system.tsx index fee7dd8..1013906 100644 --- a/beszel/site/src/components/routes/system.tsx +++ b/beszel/site/src/components/routes/system.tsx @@ -6,19 +6,14 @@ import { useStore } from '@nanostores/react' import Spinner from '../spinner' import { ClockArrowUp, CpuIcon, GlobeIcon, LayoutGridIcon, MonitorIcon, XIcon } from 'lucide-react' import ChartTimeSelect from '../charts/chart-time-select' -import { - chartTimeData, - cn, - getPbTimestamp, - useClampedIsInViewport, - useLocalStorage, -} from '@/lib/utils' +import { chartTimeData, cn, getPbTimestamp, useLocalStorage } from '@/lib/utils' import { Separator } from '../ui/separator' import { scaleTime } from 'd3-scale' import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../ui/tooltip' import { Button, buttonVariants } from '../ui/button' import { Input } from '../ui/input' import { Rows, TuxIcon } from '../ui/icons' +import { useIntersectionObserver } from '@/lib/use-intersection-observer' const CpuChart = lazy(() => import('../charts/cpu-chart')) const ContainerCpuChart = lazy(() => import('../charts/container-cpu-chart')) @@ -504,13 +499,12 @@ function ChartCard({ grid?: boolean isContainerChart?: boolean }) { - const target = useRef(null) - const [isInViewport, wrappedTargetRef] = useClampedIsInViewport({ target: target }) + const { isIntersecting, ref } = useIntersectionObserver() return ( {title} @@ -519,7 +513,7 @@ function ChartCard({ {} - {isInViewport && {children}} + {isIntersecting && {children}} ) diff --git a/beszel/site/src/lib/use-intersection-observer.ts b/beszel/site/src/lib/use-intersection-observer.ts new file mode 100644 index 0000000..7eb6e79 --- /dev/null +++ b/beszel/site/src/lib/use-intersection-observer.ts @@ -0,0 +1,169 @@ +import { useEffect, useRef, useState } from 'react' + +// adapted from usehooks-ts/use-intersection-observer + +/** The hook internal state. */ +type State = { + /** A boolean indicating if the element is intersecting. */ + isIntersecting: boolean + /** The intersection observer entry. */ + entry?: IntersectionObserverEntry +} + +/** Represents the options for configuring the Intersection Observer. */ +type UseIntersectionObserverOptions = { + /** + * The element that is used as the viewport for checking visibility of the target. + * @default null + */ + root?: Element | Document | null + /** + * A margin around the root. + * @default '0%' + */ + rootMargin?: string + /** + * A threshold indicating the percentage of the target's visibility needed to trigger the callback. + * @default 0 + */ + threshold?: number | number[] + /** + * If true, freezes the intersection state once the element becomes visible. + * @default true + */ + freeze?: boolean + /** + * A callback function to be invoked when the intersection state changes. + * @param {boolean} isIntersecting - A boolean indicating if the element is intersecting. + * @param {IntersectionObserverEntry} entry - The intersection observer Entry. + * @default undefined + */ + onChange?: (isIntersecting: boolean, entry: IntersectionObserverEntry) => void + /** + * The initial state of the intersection. + * @default false + */ + initialIsIntersecting?: boolean +} + +/** + * The return type of the useIntersectionObserver hook. + * + * Supports both tuple and object destructing. + * @param {(node: Element | null) => void} ref - The ref callback function. + * @param {boolean} isIntersecting - A boolean indicating if the element is intersecting. + * @param {IntersectionObserverEntry | undefined} entry - The intersection observer Entry. + */ +type IntersectionReturn = { + ref: (node?: Element | null) => void + isIntersecting: boolean + entry?: IntersectionObserverEntry +} + +/** + * Custom hook that tracks the intersection of a DOM element with its containing element or the viewport using the [`Intersection Observer API`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API). + * @param {UseIntersectionObserverOptions} options - The options for the Intersection Observer. + * @returns {IntersectionReturn} The ref callback, a boolean indicating if the element is intersecting, and the intersection observer entry. + * @example + * ```tsx + * const { ref, isIntersecting, entry } = useIntersectionObserver({ threshold: 0.5 }); + * ``` + */ +export function useIntersectionObserver({ + threshold = 0, + root = null, + rootMargin = '0%', + freeze = true, + initialIsIntersecting = false, + onChange, +}: UseIntersectionObserverOptions = {}): IntersectionReturn { + const [ref, setRef] = useState(null) + + const [state, setState] = useState(() => ({ + isIntersecting: initialIsIntersecting, + entry: undefined, + })) + + const callbackRef = useRef() + + callbackRef.current = onChange + + const frozen = state.entry?.isIntersecting && freeze + + useEffect(() => { + // Ensure we have a ref to observe + if (!ref) return + + // Ensure the browser supports the Intersection Observer API + if (!('IntersectionObserver' in window)) return + + // Skip if frozen + if (frozen) return + + let unobserve: (() => void) | undefined + + const observer = new IntersectionObserver( + (entries: IntersectionObserverEntry[]): void => { + const thresholds = Array.isArray(observer.thresholds) + ? observer.thresholds + : [observer.thresholds] + + entries.forEach((entry) => { + const isIntersecting = + entry.isIntersecting && + thresholds.some((threshold) => entry.intersectionRatio >= threshold) + + setState({ isIntersecting, entry }) + + if (callbackRef.current) { + callbackRef.current(isIntersecting, entry) + } + + if (isIntersecting && freeze && unobserve) { + unobserve() + unobserve = undefined + } + }) + }, + { threshold, root, rootMargin } + ) + + observer.observe(ref) + + return () => { + observer.disconnect() + } + + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [ + ref, + // eslint-disable-next-line react-hooks/exhaustive-deps + JSON.stringify(threshold), + root, + rootMargin, + frozen, + freeze, + ]) + + // ensures that if the observed element changes, the intersection observer is reinitialized + const prevRef = useRef(null) + + useEffect(() => { + if ( + !ref && + state.entry?.target && + !freeze && + !frozen && + prevRef.current !== state.entry.target + ) { + prevRef.current = state.entry.target + setState({ isIntersecting: initialIsIntersecting, entry: undefined }) + } + }, [ref, state.entry, freeze, frozen, initialIsIntersecting]) + + return { + ref: setRef, + isIntersecting: !!state.isIntersecting, + entry: state.entry, + } as IntersectionReturn +} diff --git a/beszel/site/src/lib/utils.ts b/beszel/site/src/lib/utils.ts index e6f5327..05292fe 100644 --- a/beszel/site/src/lib/utils.ts +++ b/beszel/site/src/lib/utils.ts @@ -7,7 +7,6 @@ import { RecordModel, RecordSubscription } from 'pocketbase' import { WritableAtom } from 'nanostores' import { timeDay, timeHour } from 'd3-time' import { useEffect, useState } from 'react' -import useIsInViewport, { CallbackRef, HookOptions } from 'use-is-in-viewport' export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)) @@ -214,24 +213,6 @@ export function useYAxisWidth() { return { yAxisWidth, updateYAxisWidth } } -export function useClampedIsInViewport(options: HookOptions): [boolean | null, CallbackRef] { - const [isInViewport, wrappedTargetRef] = useIsInViewport(options) - const [wasInViewportAtleastOnce, setWasInViewportAtleastOnce] = useState(isInViewport) - - useEffect(() => { - setWasInViewportAtleastOnce((prev) => { - // this will clamp it to the first true - // received from useIsInViewport - if (!prev) { - return isInViewport - } - return prev - }) - }, [isInViewport]) - - return [wasInViewportAtleastOnce, wrappedTargetRef] -} - export function toFixedWithoutTrailingZeros(num: number, digits: number) { return parseFloat(num.toFixed(digits)).toString() }