From 48704b113545e4ea01d98deea0a2495b7d6a636f Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Thu, 9 Oct 2025 09:27:03 +0800 Subject: [PATCH 01/46] fix: update cmdk dependency version to 1.1.1 --- bun.lock | 935 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ bun.lockb | Bin 194784 -> 0 bytes 2 files changed, 935 insertions(+) create mode 100644 bun.lock delete mode 100755 bun.lockb diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..4add681 --- /dev/null +++ b/bun.lock @@ -0,0 +1,935 @@ +{ + "lockfileVersion": 1, + "workspaces": { + "": { + "name": "nazha-dashboard-vite", + "dependencies": { + "@fontsource/inter": "5.1.1", + "@heroicons/react": "2.2.0", + "@number-flow/react": "0.5.5", + "@radix-ui/react-accordion": "1.2.3", + "@radix-ui/react-checkbox": "1.1.4", + "@radix-ui/react-dialog": "1.1.6", + "@radix-ui/react-dropdown-menu": "2.1.6", + "@radix-ui/react-label": "2.1.2", + "@radix-ui/react-popover": "1.1.6", + "@radix-ui/react-progress": "1.1.2", + "@radix-ui/react-select": "2.1.6", + "@radix-ui/react-separator": "1.1.2", + "@radix-ui/react-slot": "1.1.2", + "@radix-ui/react-switch": "1.1.3", + "@radix-ui/react-tooltip": "1.1.8", + "@tanstack/react-query": "5.66.7", + "@tanstack/react-query-devtools": "5.66.7", + "@tanstack/react-table": "8.21.2", + "@trivago/prettier-plugin-sort-imports": "5.2.2", + "@types/d3-geo": "3.1.0", + "@types/luxon": "3.4.2", + "class-variance-authority": "0.7.1", + "clsx": "2.1.1", + "cmdk": "1.1.1", + "country-flag-icons": "1.5.18", + "d3-geo": "3.1.1", + "dayjs": "1.11.13", + "framer-motion": "12.4.5", + "i18n-iso-countries": "7.14.0", + "i18next": "24.2.2", + "lucide-react": "0.460.0", + "luxon": "3.5.0", + "prettier-plugin-tailwindcss": "0.6.11", + "react": "19.0.0", + "react-dom": "19.0.0", + "react-i18next": "15.4.1", + "react-router-dom": "7.2.0", + "recharts": "2.15.1", + "sonner": "1.7.4", + "tailwind-merge": "2.6.0", + "tailwindcss-animate": "1.0.7", + }, + "devDependencies": { + "@eslint/js": "9.20.0", + "@types/node": "22.13.4", + "@types/react": "19.0.10", + "@types/react-dom": "19.0.4", + "@vitejs/plugin-react-swc": "3.8.0", + "autoprefixer": "10.4.20", + "eslint": "9.20.1", + "eslint-plugin-react-hooks": "5.1.0", + "eslint-plugin-react-refresh": "0.4.19", + "globals": "15.15.0", + "postcss": "8.5.3", + "tailwindcss": "3.4.17", + "typescript": "~5.6.3", + "typescript-eslint": "8.24.1", + "vite": "6.1.1", + }, + }, + }, + "packages": { + "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], + + "@babel/code-frame": ["@babel/code-frame@7.26.2", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ=="], + + "@babel/generator": ["@babel/generator@7.26.5", "", { "dependencies": { "@babel/parser": "^7.26.5", "@babel/types": "^7.26.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" } }, "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.25.9", "", {}, "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.25.9", "", {}, "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ=="], + + "@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="], + + "@babel/runtime": ["@babel/runtime@7.26.0", "", { "dependencies": { "regenerator-runtime": "^0.14.0" } }, "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw=="], + + "@babel/template": ["@babel/template@7.25.9", "", { "dependencies": { "@babel/code-frame": "^7.25.9", "@babel/parser": "^7.25.9", "@babel/types": "^7.25.9" } }, "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg=="], + + "@babel/traverse": ["@babel/traverse@7.26.7", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.5", "@babel/parser": "^7.26.7", "@babel/template": "^7.25.9", "@babel/types": "^7.26.7", "debug": "^4.3.1", "globals": "^11.1.0" } }, "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA=="], + + "@babel/types": ["@babel/types@7.26.7", "", { "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.24.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.24.2", "", { "os": "android", "cpu": "arm" }, "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.24.2", "", { "os": "android", "cpu": "arm64" }, "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.24.2", "", { "os": "android", "cpu": "x64" }, "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.24.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.24.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.24.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.24.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.24.2", "", { "os": "linux", "cpu": "arm" }, "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.24.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.24.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.24.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.24.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.24.2", "", { "os": "linux", "cpu": "x64" }, "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.24.2", "", { "os": "none", "cpu": "arm64" }, "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.24.2", "", { "os": "none", "cpu": "x64" }, "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.24.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.24.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.24.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.24.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.24.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.24.2", "", { "os": "win32", "cpu": "x64" }, "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg=="], + + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.4.0", "", { "dependencies": { "eslint-visitor-keys": "^3.3.0" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA=="], + + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.1", "", {}, "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ=="], + + "@eslint/config-array": ["@eslint/config-array@0.19.2", "", { "dependencies": { "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w=="], + + "@eslint/core": ["@eslint/core@0.11.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA=="], + + "@eslint/eslintrc": ["@eslint/eslintrc@3.3.0", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ=="], + + "@eslint/js": ["@eslint/js@9.20.0", "", {}, "sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ=="], + + "@eslint/object-schema": ["@eslint/object-schema@2.1.6", "", {}, "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA=="], + + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.2.7", "", { "dependencies": { "@eslint/core": "^0.12.0", "levn": "^0.4.1" } }, "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g=="], + + "@floating-ui/core": ["@floating-ui/core@1.6.8", "", { "dependencies": { "@floating-ui/utils": "^0.2.8" } }, "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA=="], + + "@floating-ui/dom": ["@floating-ui/dom@1.6.11", "", { "dependencies": { "@floating-ui/core": "^1.6.0", "@floating-ui/utils": "^0.2.8" } }, "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ=="], + + "@floating-ui/react-dom": ["@floating-ui/react-dom@2.1.2", "", { "dependencies": { "@floating-ui/dom": "^1.0.0" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A=="], + + "@floating-ui/utils": ["@floating-ui/utils@0.2.8", "", {}, "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig=="], + + "@fontsource/inter": ["@fontsource/inter@5.1.1", "", {}, "sha512-weN3E+rq0Xb3Z93VHJ+Rc7WOQX9ETJPTAJ+gDcaMHtjft67L58sfS65rAjC5tZUXQ2FdZ/V1/sSzCwZ6v05kJw=="], + + "@heroicons/react": ["@heroicons/react@2.2.0", "", { "peerDependencies": { "react": ">= 16 || ^19.0.0-rc" } }, "sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ=="], + + "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], + + "@humanfs/node": ["@humanfs/node@0.16.6", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" } }, "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw=="], + + "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], + + "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.2", "", {}, "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ=="], + + "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "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" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.5", "", { "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/set-array": ["@jridgewell/set-array@1.2.1", "", {}, "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.25", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="], + + "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], + + "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], + + "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], + + "@number-flow/react": ["@number-flow/react@0.5.5", "", { "dependencies": { "esm-env": "^1.1.4", "number-flow": "0.5.3" }, "peerDependencies": { "react": "^18 || ^19", "react-dom": "^18 || ^19" } }, "sha512-Zdju5n0osxrb+7jbcpUJ9L2VJ2+9ptwjz5+A+2wq9Q32hs3PW/noPJjHtLTrtGINM9mEw76DcDg0ac/dx6j1aA=="], + + "@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="], + + "@radix-ui/number": ["@radix-ui/number@1.1.0", "", {}, "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ=="], + + "@radix-ui/primitive": ["@radix-ui/primitive@1.1.1", "", {}, "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA=="], + + "@radix-ui/react-accordion": ["@radix-ui/react-accordion@1.2.3", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-collapsible": "1.1.3", "@radix-ui/react-collection": "1.1.2", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-primitive": "2.0.2", "@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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-RIQ15mrcvqIkDARJeERSuXSry2N8uYnxkdDetpfmalT/+0ntOXLkFOsh9iwlAsCv+qcmhZjbdJogIm6WBa6c4A=="], + + "@radix-ui/react-arrow": ["@radix-ui/react-arrow@1.1.2", "", { "dependencies": { "@radix-ui/react-primitive": "2.0.2" }, "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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg=="], + + "@radix-ui/react-checkbox": ["@radix-ui/react-checkbox@1.1.4", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-presence": "1.1.2", "@radix-ui/react-primitive": "2.0.2", "@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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-wP0CPAHq+P5I4INKe3hJrIa1WoNqqrejzW+zoU0rOvo1b9gDEJJFl2rYfO1PYJUQCc2H1WZxIJmyv9BS8i5fLw=="], + + "@radix-ui/react-collapsible": ["@radix-ui/react-collapsible@1.1.3", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-presence": "1.1.2", "@radix-ui/react-primitive": "2.0.2", "@radix-ui/react-use-controllable-state": "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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-jFSerheto1X03MUC0g6R7LedNW9EEGWdg9W1+MlpkMLwGkgkbUXLPBH/KIuWKXUoeYRVY11llqbTBDzuLg7qrw=="], + + "@radix-ui/react-collection": ["@radix-ui/react-collection@1.1.2", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-primitive": "2.0.2", "@radix-ui/react-slot": "1.1.2" }, "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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw=="], + + "@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw=="], + + "@radix-ui/react-context": ["@radix-ui/react-context@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q=="], + + "@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.6", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-dismissable-layer": "1.1.5", "@radix-ui/react-focus-guards": "1.1.1", "@radix-ui/react-focus-scope": "1.1.2", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-portal": "1.1.4", "@radix-ui/react-presence": "1.1.2", "@radix-ui/react-primitive": "2.0.2", "@radix-ui/react-slot": "1.1.2", "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw=="], + + "@radix-ui/react-direction": ["@radix-ui/react-direction@1.1.0", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg=="], + + "@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.5", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-primitive": "2.0.2", "@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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg=="], + + "@radix-ui/react-dropdown-menu": ["@radix-ui/react-dropdown-menu@2.1.6", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-menu": "2.1.6", "@radix-ui/react-primitive": "2.0.2", "@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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-no3X7V5fD487wab/ZYSHXq3H37u4NVeLDKI/Ks724X/eEFSSEFYZxWgsIlr1UBeEyDaM29HM5x9p1Nv8DuTYPA=="], + + "@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg=="], + + "@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.1.2", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-primitive": "2.0.2", "@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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA=="], + + "@radix-ui/react-id": ["@radix-ui/react-id@1.1.0", "", { "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" }, "optionalPeers": ["@types/react"] }, "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA=="], + + "@radix-ui/react-label": ["@radix-ui/react-label@2.1.2", "", { "dependencies": { "@radix-ui/react-primitive": "2.0.2" }, "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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-zo1uGMTaNlHehDyFQcDZXRJhUPDuukcnHz0/jnrup0JA6qL+AFpAnty+7VKa9esuU5xTblAZzTGYJKSKaBxBhw=="], + + "@radix-ui/react-menu": ["@radix-ui/react-menu@2.1.6", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-collection": "1.1.2", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-dismissable-layer": "1.1.5", "@radix-ui/react-focus-guards": "1.1.1", "@radix-ui/react-focus-scope": "1.1.2", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-popper": "1.2.2", "@radix-ui/react-portal": "1.1.4", "@radix-ui/react-presence": "1.1.2", "@radix-ui/react-primitive": "2.0.2", "@radix-ui/react-roving-focus": "1.1.2", "@radix-ui/react-slot": "1.1.2", "@radix-ui/react-use-callback-ref": "1.1.0", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-tBBb5CXDJW3t2mo9WlO7r6GTmWV0F0uzHZVFmlRmYpiSK1CDU5IKojP1pm7oknpBOrFZx/YgBRW9oorPO2S/Lg=="], + + "@radix-ui/react-popover": ["@radix-ui/react-popover@1.1.6", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-dismissable-layer": "1.1.5", "@radix-ui/react-focus-guards": "1.1.1", "@radix-ui/react-focus-scope": "1.1.2", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-popper": "1.2.2", "@radix-ui/react-portal": "1.1.4", "@radix-ui/react-presence": "1.1.2", "@radix-ui/react-primitive": "2.0.2", "@radix-ui/react-slot": "1.1.2", "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-NQouW0x4/GnkFJ/pRqsIS3rM/k97VzKnVb2jB7Gq7VEGPy5g7uNV1ykySFt7eWSp3i2uSGFwaJcvIRJBAHmmFg=="], + + "@radix-ui/react-popper": ["@radix-ui/react-popper@1.2.2", "", { "dependencies": { "@floating-ui/react-dom": "^2.0.0", "@radix-ui/react-arrow": "1.1.2", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-primitive": "2.0.2", "@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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA=="], + + "@radix-ui/react-portal": ["@radix-ui/react-portal@1.1.4", "", { "dependencies": { "@radix-ui/react-primitive": "2.0.2", "@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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA=="], + + "@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.2", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.1", "@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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg=="], + + "@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.0.2", "", { "dependencies": { "@radix-ui/react-slot": "1.1.2" }, "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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w=="], + + "@radix-ui/react-progress": ["@radix-ui/react-progress@1.1.2", "", { "dependencies": { "@radix-ui/react-context": "1.1.1", "@radix-ui/react-primitive": "2.0.2" }, "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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-u1IgJFQ4zNAUTjGdDL5dcl/U8ntOR6jsnhxKb5RKp5Ozwl88xKR9EqRZOe/Mk8tnx0x5tNUe2F+MzsyjqMg0MA=="], + + "@radix-ui/react-roving-focus": ["@radix-ui/react-roving-focus@1.1.2", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-collection": "1.1.2", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-primitive": "2.0.2", "@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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw=="], + + "@radix-ui/react-select": ["@radix-ui/react-select@2.1.6", "", { "dependencies": { "@radix-ui/number": "1.1.0", "@radix-ui/primitive": "1.1.1", "@radix-ui/react-collection": "1.1.2", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-dismissable-layer": "1.1.5", "@radix-ui/react-focus-guards": "1.1.1", "@radix-ui/react-focus-scope": "1.1.2", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-popper": "1.2.2", "@radix-ui/react-portal": "1.1.4", "@radix-ui/react-primitive": "2.0.2", "@radix-ui/react-slot": "1.1.2", "@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.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-T6ajELxRvTuAMWH0YmRJ1qez+x4/7Nq7QIx7zJ0VK3qaEWdnWpNbEDnmWldG1zBDwqrLy5aLMUWcoGirVj5kMg=="], + + "@radix-ui/react-separator": ["@radix-ui/react-separator@1.1.2", "", { "dependencies": { "@radix-ui/react-primitive": "2.0.2" }, "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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-oZfHcaAp2Y6KFBX6I5P1u7CQoy4lheCGiYj+pGFrHy8E/VNRb5E39TkTr3JrV520csPBTZjkuKFdEsjS5EUNKQ=="], + + "@radix-ui/react-slot": ["@radix-ui/react-slot@1.1.2", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ=="], + + "@radix-ui/react-switch": ["@radix-ui/react-switch@1.1.3", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-primitive": "2.0.2", "@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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-1nc+vjEOQkJVsJtWPSiISGT6OKm4SiOdjMo+/icLxo2G4vxz1GntC5MzfL4v8ey9OEfw787QCD1y3mUv0NiFEQ=="], + + "@radix-ui/react-tooltip": ["@radix-ui/react-tooltip@1.1.8", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-dismissable-layer": "1.1.5", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-popper": "1.2.2", "@radix-ui/react-portal": "1.1.4", "@radix-ui/react-presence": "1.1.2", "@radix-ui/react-primitive": "2.0.2", "@radix-ui/react-slot": "1.1.2", "@radix-ui/react-use-controllable-state": "1.1.0", "@radix-ui/react-visually-hidden": "1.1.2" }, "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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-YAA2cu48EkJZdAMHC0dqo9kialOcRStbtiY4nJPaht7Ptrhcvpo+eDChaM6BIs8kL6a8Z5l5poiqLnXcNduOkA=="], + + "@radix-ui/react-use-callback-ref": ["@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" }, "optionalPeers": ["@types/react"] }, "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw=="], + + "@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.1.0", "", { "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" }, "optionalPeers": ["@types/react"] }, "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw=="], + + "@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.1.0", "", { "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" }, "optionalPeers": ["@types/react"] }, "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw=="], + + "@radix-ui/react-use-layout-effect": ["@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" }, "optionalPeers": ["@types/react"] }, "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w=="], + + "@radix-ui/react-use-previous": ["@radix-ui/react-use-previous@1.1.0", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og=="], + + "@radix-ui/react-use-rect": ["@radix-ui/react-use-rect@1.1.0", "", { "dependencies": { "@radix-ui/rect": "1.1.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ=="], + + "@radix-ui/react-use-size": ["@radix-ui/react-use-size@1.1.0", "", { "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" }, "optionalPeers": ["@types/react"] }, "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw=="], + + "@radix-ui/react-visually-hidden": ["@radix-ui/react-visually-hidden@1.1.2", "", { "dependencies": { "@radix-ui/react-primitive": "2.0.2" }, "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" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q=="], + + "@radix-ui/rect": ["@radix-ui/rect@1.1.0", "", {}, "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.34.6", "", { "os": "android", "cpu": "arm" }, "sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.34.6", "", { "os": "android", "cpu": "arm64" }, "sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.34.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.34.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.34.6", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.34.6", "", { "os": "freebsd", "cpu": "x64" }, "sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.34.6", "", { "os": "linux", "cpu": "arm" }, "sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.34.6", "", { "os": "linux", "cpu": "arm" }, "sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.34.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.34.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q=="], + + "@rollup/rollup-linux-loongarch64-gnu": ["@rollup/rollup-linux-loongarch64-gnu@4.34.6", "", { "os": "linux", "cpu": "none" }, "sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw=="], + + "@rollup/rollup-linux-powerpc64le-gnu": ["@rollup/rollup-linux-powerpc64le-gnu@4.34.6", "", { "os": "linux", "cpu": "ppc64" }, "sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.34.6", "", { "os": "linux", "cpu": "none" }, "sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.34.6", "", { "os": "linux", "cpu": "s390x" }, "sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.34.6", "", { "os": "linux", "cpu": "x64" }, "sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.34.6", "", { "os": "linux", "cpu": "x64" }, "sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.34.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.34.6", "", { "os": "win32", "cpu": "ia32" }, "sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.34.6", "", { "os": "win32", "cpu": "x64" }, "sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w=="], + + "@swc/core": ["@swc/core@1.10.15", "", { "dependencies": { "@swc/counter": "^0.1.3", "@swc/types": "^0.1.17" }, "optionalDependencies": { "@swc/core-darwin-arm64": "1.10.15", "@swc/core-darwin-x64": "1.10.15", "@swc/core-linux-arm-gnueabihf": "1.10.15", "@swc/core-linux-arm64-gnu": "1.10.15", "@swc/core-linux-arm64-musl": "1.10.15", "@swc/core-linux-x64-gnu": "1.10.15", "@swc/core-linux-x64-musl": "1.10.15", "@swc/core-win32-arm64-msvc": "1.10.15", "@swc/core-win32-ia32-msvc": "1.10.15", "@swc/core-win32-x64-msvc": "1.10.15" }, "peerDependencies": { "@swc/helpers": "*" }, "optionalPeers": ["@swc/helpers"] }, "sha512-/iFeQuNaGdK7mfJbQcObhAhsMqLT7qgMYl7jX2GEIO+VDTejESpzAyKwaMeYXExN8D6e5BRHBCe7M5YlsuzjDA=="], + + "@swc/core-darwin-arm64": ["@swc/core-darwin-arm64@1.10.15", "", { "os": "darwin", "cpu": "arm64" }, "sha512-zFdZ6/yHqMCPk7OhLFqHy/MQ1EqJhcZMpNHd1gXYT7VRU3FaqvvKETrUlG3VYl65McPC7AhMRfXPyJ0JO/jARQ=="], + + "@swc/core-darwin-x64": ["@swc/core-darwin-x64@1.10.15", "", { "os": "darwin", "cpu": "x64" }, "sha512-8g4yiQwbr8fxOOjKXdot0dEkE5zgE8uNZudLy/ZyAhiwiZ8pbJ8/wVrDOu6dqbX7FBXAoDnvZ7fwN1jk4C8jdA=="], + + "@swc/core-linux-arm-gnueabihf": ["@swc/core-linux-arm-gnueabihf@1.10.15", "", { "os": "linux", "cpu": "arm" }, "sha512-rl+eVOltl2+7WXOnvmWBpMgh6aO13G5x0U0g8hjwlmD6ku3Y9iRcThpOhm7IytMEarUp5pQxItNoPq+VUGjVHg=="], + + "@swc/core-linux-arm64-gnu": ["@swc/core-linux-arm64-gnu@1.10.15", "", { "os": "linux", "cpu": "arm64" }, "sha512-qxWEQeyAJMWJqjaN4hi58WMpPdt3Tn0biSK9CYRegQtvZWCbewr6v2agtSu5AZ2rudeH6OfCWAMDQQeSgn6PJQ=="], + + "@swc/core-linux-arm64-musl": ["@swc/core-linux-arm64-musl@1.10.15", "", { "os": "linux", "cpu": "arm64" }, "sha512-QcELd9/+HjZx0WCxRrKcyKGWTiQ0485kFb5w8waxcSNd0d9Lgk4EFfWWVyvIb5gIHpDQmhrgzI/yRaWQX4YSZQ=="], + + "@swc/core-linux-x64-gnu": ["@swc/core-linux-x64-gnu@1.10.15", "", { "os": "linux", "cpu": "x64" }, "sha512-S1+ZEEn3+a/MiMeQqQypbwTGoBG8/sPoCvpNbk+uValyygT+jSn3U0xVr45FbukpmMB+NhBMqfedMLqKA0QnJA=="], + + "@swc/core-linux-x64-musl": ["@swc/core-linux-x64-musl@1.10.15", "", { "os": "linux", "cpu": "x64" }, "sha512-qW+H9g/2zTJ4jP7NDw4VAALY0ZlNEKzYsEoSj/HKi7k3tYEHjMzsxjfsY9I8WZCft23bBdV3RTCPoxCshaj1CQ=="], + + "@swc/core-win32-arm64-msvc": ["@swc/core-win32-arm64-msvc@1.10.15", "", { "os": "win32", "cpu": "arm64" }, "sha512-AhRB11aA6LxjIqut+mg7qsu/7soQDmbK6MKR9nP3hgBszpqtXbRba58lr24xIbBCMr+dpo6kgEapWt+t5Po6Zg=="], + + "@swc/core-win32-ia32-msvc": ["@swc/core-win32-ia32-msvc@1.10.15", "", { "os": "win32", "cpu": "ia32" }, "sha512-UGdh430TQwbDn6KjgvRTg1fO022sbQ4yCCHUev0+5B8uoBwi9a89qAz3emy2m56C8TXxUoihW9Y9OMfaRwPXUw=="], + + "@swc/core-win32-x64-msvc": ["@swc/core-win32-x64-msvc@1.10.15", "", { "os": "win32", "cpu": "x64" }, "sha512-XJzBCqO1m929qbJsOG7FZXQWX26TnEoMctS3QjuCoyBmkHxxQmZsy78KjMes1aomTcKHCyFYgrRGWgVmk7tT4Q=="], + + "@swc/counter": ["@swc/counter@0.1.3", "", {}, "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="], + + "@swc/types": ["@swc/types@0.1.17", "", { "dependencies": { "@swc/counter": "^0.1.3" } }, "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ=="], + + "@tanstack/query-core": ["@tanstack/query-core@5.66.4", "", {}, "sha512-skM/gzNX4shPkqmdTCSoHtJAPMTtmIJNS0hE+xwTTUVYwezArCT34NMermABmBVUg5Ls5aiUXEDXfqwR1oVkcA=="], + + "@tanstack/query-devtools": ["@tanstack/query-devtools@5.65.0", "", {}, "sha512-g5y7zc07U9D3esMdqUfTEVu9kMHoIaVBsD0+M3LPdAdD710RpTcLiNvJY1JkYXqkq9+NV+CQoemVNpQPBXVsJg=="], + + "@tanstack/react-query": ["@tanstack/react-query@5.66.7", "", { "dependencies": { "@tanstack/query-core": "5.66.4" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-qd3q/tUpF2K1xItfPZddk1k/8pSXnovg41XyCqJgPoyYEirMBtB0sVEVVQ/CsAOngzgWtBPXimVf4q4kM9uO6A=="], + + "@tanstack/react-query-devtools": ["@tanstack/react-query-devtools@5.66.7", "", { "dependencies": { "@tanstack/query-devtools": "5.65.0" }, "peerDependencies": { "@tanstack/react-query": "^5.66.7", "react": "^18 || ^19" } }, "sha512-40z4PPkz06tYIF0vwLZZIZfZxKUH4OAaBOR14blCFyYm6hlU6qc+M82mkZ+D00HcEMhV7P4XeJiEuDhFq0q9Qw=="], + + "@tanstack/react-table": ["@tanstack/react-table@8.21.2", "", { "dependencies": { "@tanstack/table-core": "8.21.2" }, "peerDependencies": { "react": ">=16.8", "react-dom": ">=16.8" } }, "sha512-11tNlEDTdIhMJba2RBH+ecJ9l1zgS2kjmexDPAraulc8jeNA4xocSNeyzextT0XJyASil4XsCYlJmf5jEWAtYg=="], + + "@tanstack/table-core": ["@tanstack/table-core@8.21.2", "", {}, "sha512-uvXk/U4cBiFMxt+p9/G7yUWI/UbHYbyghLCjlpWZ3mLeIZiUBSKcUnw9UnKkdRz7Z/N4UBuFLWQdJCjUe7HjvA=="], + + "@trivago/prettier-plugin-sort-imports": ["@trivago/prettier-plugin-sort-imports@5.2.2", "", { "dependencies": { "@babel/generator": "^7.26.5", "@babel/parser": "^7.26.7", "@babel/traverse": "^7.26.7", "@babel/types": "^7.26.7", "javascript-natural-sort": "^0.7.1", "lodash": "^4.17.21" }, "peerDependencies": { "@vue/compiler-sfc": "3.x", "prettier": "2.x - 3.x", "prettier-plugin-svelte": "3.x", "svelte": "4.x || 5.x" }, "optionalPeers": ["@vue/compiler-sfc", "prettier-plugin-svelte", "svelte"] }, "sha512-fYDQA9e6yTNmA13TLVSA+WMQRc5Bn/c0EUBditUHNfMMxN7M82c38b1kEggVE3pLpZ0FwkwJkUEKMiOi52JXFA=="], + + "@types/cookie": ["@types/cookie@0.6.0", "", {}, "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="], + + "@types/d3-array": ["@types/d3-array@3.2.1", "", {}, "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg=="], + + "@types/d3-color": ["@types/d3-color@3.1.3", "", {}, "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A=="], + + "@types/d3-ease": ["@types/d3-ease@3.0.2", "", {}, "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA=="], + + "@types/d3-geo": ["@types/d3-geo@3.1.0", "", { "dependencies": { "@types/geojson": "*" } }, "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ=="], + + "@types/d3-interpolate": ["@types/d3-interpolate@3.0.4", "", { "dependencies": { "@types/d3-color": "*" } }, "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA=="], + + "@types/d3-path": ["@types/d3-path@3.1.0", "", {}, "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ=="], + + "@types/d3-scale": ["@types/d3-scale@4.0.8", "", { "dependencies": { "@types/d3-time": "*" } }, "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ=="], + + "@types/d3-shape": ["@types/d3-shape@3.1.6", "", { "dependencies": { "@types/d3-path": "*" } }, "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA=="], + + "@types/d3-time": ["@types/d3-time@3.0.3", "", {}, "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw=="], + + "@types/d3-timer": ["@types/d3-timer@3.0.2", "", {}, "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw=="], + + "@types/estree": ["@types/estree@1.0.6", "", {}, "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw=="], + + "@types/geojson": ["@types/geojson@7946.0.14", "", {}, "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg=="], + + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + + "@types/luxon": ["@types/luxon@3.4.2", "", {}, "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA=="], + + "@types/node": ["@types/node@22.13.4", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg=="], + + "@types/react": ["@types/react@19.0.10", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g=="], + + "@types/react-dom": ["@types/react-dom@19.0.4", "", { "peerDependencies": { "@types/react": "^19.0.0" } }, "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg=="], + + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.24.1", "", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.24.1", "@typescript-eslint/type-utils": "8.24.1", "@typescript-eslint/utils": "8.24.1", "@typescript-eslint/visitor-keys": "8.24.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", "ts-api-utils": "^2.0.1" }, "peerDependencies": { "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.8.0" } }, "sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA=="], + + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.24.1", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.24.1", "@typescript-eslint/types": "8.24.1", "@typescript-eslint/typescript-estree": "8.24.1", "@typescript-eslint/visitor-keys": "8.24.1", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.8.0" } }, "sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ=="], + + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.24.1", "", { "dependencies": { "@typescript-eslint/types": "8.24.1", "@typescript-eslint/visitor-keys": "8.24.1" } }, "sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q=="], + + "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.24.1", "", { "dependencies": { "@typescript-eslint/typescript-estree": "8.24.1", "@typescript-eslint/utils": "8.24.1", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.8.0" } }, "sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw=="], + + "@typescript-eslint/types": ["@typescript-eslint/types@8.24.1", "", {}, "sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A=="], + + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.24.1", "", { "dependencies": { "@typescript-eslint/types": "8.24.1", "@typescript-eslint/visitor-keys": "8.24.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.0.1" }, "peerDependencies": { "typescript": ">=4.8.4 <5.8.0" } }, "sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg=="], + + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.24.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@typescript-eslint/scope-manager": "8.24.1", "@typescript-eslint/types": "8.24.1", "@typescript-eslint/typescript-estree": "8.24.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.8.0" } }, "sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ=="], + + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.24.1", "", { "dependencies": { "@typescript-eslint/types": "8.24.1", "eslint-visitor-keys": "^4.2.0" } }, "sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg=="], + + "@vitejs/plugin-react-swc": ["@vitejs/plugin-react-swc@3.8.0", "", { "dependencies": { "@swc/core": "^1.10.15" }, "peerDependencies": { "vite": "^4 || ^5 || ^6" } }, "sha512-T4sHPvS+DIqDP51ifPqa9XIRAz/kIvIi8oXcnOZZgHmMotgmmdxe/DD5tMFlt5nuIRzT0/QuiwmKlH0503Aapw=="], + + "acorn": ["acorn@8.14.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA=="], + + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + + "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], + + "ansi-regex": ["ansi-regex@6.1.0", "", {}, "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="], + + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + + "arg": ["arg@5.0.2", "", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="], + + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "aria-hidden": ["aria-hidden@1.2.4", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A=="], + + "autoprefixer": ["autoprefixer@10.4.20", "", { "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" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g=="], + + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + + "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], + + "brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="], + + "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + + "browserslist": ["browserslist@4.24.4", "", { "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" } }, "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A=="], + + "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], + + "camelcase-css": ["camelcase-css@2.0.1", "", {}, "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="], + + "caniuse-lite": ["caniuse-lite@1.0.30001703", "", {}, "sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ=="], + + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "chokidar": ["chokidar@3.6.0", "", { "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" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], + + "class-variance-authority": ["class-variance-authority@0.7.1", "", { "dependencies": { "clsx": "^2.1.1" } }, "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg=="], + + "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], + + "cmdk": ["cmdk@1.1.1", "", { "dependencies": { "@radix-ui/react-compose-refs": "^1.1.1", "@radix-ui/react-dialog": "^1.1.6", "@radix-ui/react-id": "^1.1.0", "@radix-ui/react-primitive": "^2.0.2" }, "peerDependencies": { "react": "^18 || ^19 || ^19.0.0-rc", "react-dom": "^18 || ^19 || ^19.0.0-rc" } }, "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], + + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + + "cookie": ["cookie@1.0.2", "", {}, "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA=="], + + "country-flag-icons": ["country-flag-icons@1.5.18", "", {}, "sha512-z+Uzesi8u8IdkViqqbzzbkf3+a7WJpcET5B7sPwTg7GXqPYpVEgNlZ/FC3l8KO4mEf+mNkmzKLppKTN4PlCJEQ=="], + + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + + "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], + + "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], + + "d3-array": ["d3-array@3.2.4", "", { "dependencies": { "internmap": "1 - 2" } }, "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg=="], + + "d3-color": ["d3-color@3.1.0", "", {}, "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="], + + "d3-ease": ["d3-ease@3.0.1", "", {}, "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w=="], + + "d3-format": ["d3-format@3.1.0", "", {}, "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA=="], + + "d3-geo": ["d3-geo@3.1.1", "", { "dependencies": { "d3-array": "2.5.0 - 3" } }, "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q=="], + + "d3-interpolate": ["d3-interpolate@3.0.1", "", { "dependencies": { "d3-color": "1 - 3" } }, "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g=="], + + "d3-path": ["d3-path@3.1.0", "", {}, "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ=="], + + "d3-scale": ["d3-scale@4.0.2", "", { "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" } }, "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ=="], + + "d3-shape": ["d3-shape@3.2.0", "", { "dependencies": { "d3-path": "^3.1.0" } }, "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA=="], + + "d3-time": ["d3-time@3.1.0", "", { "dependencies": { "d3-array": "2 - 3" } }, "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q=="], + + "d3-time-format": ["d3-time-format@4.1.0", "", { "dependencies": { "d3-time": "1 - 3" } }, "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg=="], + + "d3-timer": ["d3-timer@3.0.1", "", {}, "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA=="], + + "dayjs": ["dayjs@1.11.13", "", {}, "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="], + + "debug": ["debug@4.3.7", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ=="], + + "decimal.js-light": ["decimal.js-light@2.5.1", "", {}, "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg=="], + + "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + + "detect-node-es": ["detect-node-es@1.1.0", "", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="], + + "diacritics": ["diacritics@1.3.0", "", {}, "sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA=="], + + "didyoumean": ["didyoumean@1.2.2", "", {}, "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="], + + "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="], + + "dom-helpers": ["dom-helpers@5.2.1", "", { "dependencies": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" } }, "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA=="], + + "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], + + "electron-to-chromium": ["electron-to-chromium@1.5.114", "", {}, "sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA=="], + + "emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], + + "esbuild": ["esbuild@0.24.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.24.2", "@esbuild/android-arm": "0.24.2", "@esbuild/android-arm64": "0.24.2", "@esbuild/android-x64": "0.24.2", "@esbuild/darwin-arm64": "0.24.2", "@esbuild/darwin-x64": "0.24.2", "@esbuild/freebsd-arm64": "0.24.2", "@esbuild/freebsd-x64": "0.24.2", "@esbuild/linux-arm": "0.24.2", "@esbuild/linux-arm64": "0.24.2", "@esbuild/linux-ia32": "0.24.2", "@esbuild/linux-loong64": "0.24.2", "@esbuild/linux-mips64el": "0.24.2", "@esbuild/linux-ppc64": "0.24.2", "@esbuild/linux-riscv64": "0.24.2", "@esbuild/linux-s390x": "0.24.2", "@esbuild/linux-x64": "0.24.2", "@esbuild/netbsd-arm64": "0.24.2", "@esbuild/netbsd-x64": "0.24.2", "@esbuild/openbsd-arm64": "0.24.2", "@esbuild/openbsd-x64": "0.24.2", "@esbuild/sunos-x64": "0.24.2", "@esbuild/win32-arm64": "0.24.2", "@esbuild/win32-ia32": "0.24.2", "@esbuild/win32-x64": "0.24.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + + "eslint": ["eslint@9.20.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", "@eslint/core": "^0.11.0", "@eslint/eslintrc": "^3.2.0", "@eslint/js": "9.20.0", "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.1", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.2.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g=="], + + "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@5.1.0", "", { "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw=="], + + "eslint-plugin-react-refresh": ["eslint-plugin-react-refresh@0.4.19", "", { "peerDependencies": { "eslint": ">=8.40" } }, "sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ=="], + + "eslint-scope": ["eslint-scope@8.3.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ=="], + + "eslint-visitor-keys": ["eslint-visitor-keys@4.2.0", "", {}, "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw=="], + + "esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="], + + "espree": ["espree@10.3.0", "", { "dependencies": { "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.0" } }, "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg=="], + + "esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], + + "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], + + "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + + "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + + "eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="], + + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + + "fast-equals": ["fast-equals@5.0.1", "", {}, "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ=="], + + "fast-glob": ["fast-glob@3.3.2", "", { "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" } }, "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow=="], + + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], + + "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], + + "fastq": ["fastq@1.17.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w=="], + + "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + + "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + + "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], + + "flatted": ["flatted@3.3.1", "", {}, "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw=="], + + "foreground-child": ["foreground-child@3.3.0", "", { "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" } }, "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg=="], + + "fraction.js": ["fraction.js@4.3.7", "", {}, "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="], + + "framer-motion": ["framer-motion@12.4.5", "", { "dependencies": { "motion-dom": "^12.4.5", "motion-utils": "^12.0.0", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-9+8wglyIJFeUpVg4U8Ohvoo5x7zmvRqawWXhEUThcYdwL/5A1/OkLvQo68Zz5taUE11HKG/Ex+LPaN2+fMkRdA=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + + "get-nonce": ["get-nonce@1.0.1", "", {}, "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="], + + "glob": ["glob@10.4.5", "", { "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" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + + "globals": ["globals@15.15.0", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="], + + "graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + + "html-parse-stringify": ["html-parse-stringify@3.0.1", "", { "dependencies": { "void-elements": "3.1.0" } }, "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg=="], + + "i18n-iso-countries": ["i18n-iso-countries@7.14.0", "", { "dependencies": { "diacritics": "1.3.0" } }, "sha512-nXHJZYtNrfsi1UQbyRqm3Gou431elgLjKl//CYlnBGt5aTWdRPH1PiS2T/p/n8Q8LnqYqzQJik3Q7mkwvLokeg=="], + + "i18next": ["i18next@24.2.2", "", { "dependencies": { "@babel/runtime": "^7.23.2" }, "peerDependencies": { "typescript": "^5" }, "optionalPeers": ["typescript"] }, "sha512-NE6i86lBCKRYZa5TaUDkU5S4HFgLIEJRLr3Whf2psgaxBleQ2LC1YW1Vc+SCgkAW7VEzndT6al6+CzegSUHcTQ=="], + + "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "import-fresh": ["import-fresh@3.3.0", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw=="], + + "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + + "internmap": ["internmap@2.0.3", "", {}, "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="], + + "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="], + + "is-core-module": ["is-core-module@2.15.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ=="], + + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + + "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], + + "javascript-natural-sort": ["javascript-natural-sort@0.7.1", "", {}, "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw=="], + + "jiti": ["jiti@1.21.6", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], + + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + + "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + + "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + + "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + + "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + + "lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="], + + "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], + + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + + "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], + + "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], + + "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + + "lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + + "lucide-react": ["lucide-react@0.460.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" } }, "sha512-BVtq/DykVeIvRTJvRAgCsOwaGL8Un3Bxh8MbDxMhEWlZay3T4IpEKDEpwt5KZ0KJMHzgm6jrltxlT5eXOWXDHg=="], + + "luxon": ["luxon@3.5.0", "", {}, "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ=="], + + "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], + + "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + + "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + + "minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], + + "motion-dom": ["motion-dom@12.5.0", "", { "dependencies": { "motion-utils": "^12.5.0" } }, "sha512-uH2PETDh7m+Hjd1UQQ56yHqwn83SAwNjimNPE/kC+Kds0t4Yh7+29rfo5wezVFpPOv57U4IuWved5d1x0kNhbQ=="], + + "motion-utils": ["motion-utils@12.5.0", "", {}, "sha512-+hFFzvimn0sBMP9iPxBa9OtRX35ZQ3py0UHnb8U29VD+d8lQ8zH3dTygJWqK7av2v6yhg7scj9iZuvTS0f4+SA=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="], + + "nanoid": ["nanoid@3.3.8", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w=="], + + "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + + "node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], + + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + + "normalize-range": ["normalize-range@0.1.2", "", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="], + + "number-flow": ["number-flow@0.5.3", "", { "dependencies": { "esm-env": "^1.1.4" } }, "sha512-iLKyssImNWQmJ41rza9K7P5lHRZTyishi/9FarWPLQHYY2Ydtl6eiXINEjZ1fa8dHeY0O7+YOD+Py3ZsJddYkg=="], + + "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], + + "object-hash": ["object-hash@3.0.0", "", {}, "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="], + + "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + + "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + + "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + + "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], + + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], + + "path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + + "pify": ["pify@2.3.0", "", {}, "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="], + + "pirates": ["pirates@4.0.6", "", {}, "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg=="], + + "postcss": ["postcss@8.5.3", "", { "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A=="], + + "postcss-import": ["postcss-import@15.1.0", "", { "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" }, "peerDependencies": { "postcss": "^8.0.0" } }, "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew=="], + + "postcss-js": ["postcss-js@4.0.1", "", { "dependencies": { "camelcase-css": "^2.0.1" }, "peerDependencies": { "postcss": "^8.4.21" } }, "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw=="], + + "postcss-load-config": ["postcss-load-config@4.0.2", "", { "dependencies": { "lilconfig": "^3.0.0", "yaml": "^2.3.4" }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" }, "optionalPeers": ["postcss", "ts-node"] }, "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ=="], + + "postcss-nested": ["postcss-nested@6.2.0", "", { "dependencies": { "postcss-selector-parser": "^6.1.1" }, "peerDependencies": { "postcss": "^8.2.14" } }, "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ=="], + + "postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], + + "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], + + "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], + + "prettier": ["prettier@3.4.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ=="], + + "prettier-plugin-tailwindcss": ["prettier-plugin-tailwindcss@0.6.11", "", { "peerDependencies": { "@ianvs/prettier-plugin-sort-imports": "*", "@prettier/plugin-pug": "*", "@shopify/prettier-plugin-liquid": "*", "@trivago/prettier-plugin-sort-imports": "*", "@zackad/prettier-plugin-twig": "*", "prettier": "^3.0", "prettier-plugin-astro": "*", "prettier-plugin-css-order": "*", "prettier-plugin-import-sort": "*", "prettier-plugin-jsdoc": "*", "prettier-plugin-marko": "*", "prettier-plugin-multiline-arrays": "*", "prettier-plugin-organize-attributes": "*", "prettier-plugin-organize-imports": "*", "prettier-plugin-sort-imports": "*", "prettier-plugin-style-order": "*", "prettier-plugin-svelte": "*" }, "optionalPeers": ["@ianvs/prettier-plugin-sort-imports", "@prettier/plugin-pug", "@shopify/prettier-plugin-liquid", "@trivago/prettier-plugin-sort-imports", "@zackad/prettier-plugin-twig", "prettier-plugin-astro", "prettier-plugin-css-order", "prettier-plugin-import-sort", "prettier-plugin-jsdoc", "prettier-plugin-marko", "prettier-plugin-multiline-arrays", "prettier-plugin-organize-attributes", "prettier-plugin-organize-imports", "prettier-plugin-sort-imports", "prettier-plugin-style-order", "prettier-plugin-svelte"] }, "sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA=="], + + "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], + + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], + + "react": ["react@19.0.0", "", {}, "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ=="], + + "react-dom": ["react-dom@19.0.0", "", { "dependencies": { "scheduler": "^0.25.0" }, "peerDependencies": { "react": "^19.0.0" } }, "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ=="], + + "react-i18next": ["react-i18next@15.4.1", "", { "dependencies": { "@babel/runtime": "^7.25.0", "html-parse-stringify": "^3.0.1" }, "peerDependencies": { "i18next": ">= 23.2.3", "react": ">= 16.8.0" } }, "sha512-ahGab+IaSgZmNPYXdV1n+OYky95TGpFwnKRflX/16dY04DsYYKHtVLjeny7sBSCREEcoMbAgSkFiGLF5g5Oofw=="], + + "react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], + + "react-remove-scroll": ["react-remove-scroll@2.6.3", "", { "dependencies": { "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.3", "tslib": "^2.1.0", "use-callback-ref": "^1.3.3", "use-sidecar": "^1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ=="], + + "react-remove-scroll-bar": ["react-remove-scroll-bar@2.3.8", "", { "dependencies": { "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react"] }, "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q=="], + + "react-router": ["react-router@7.2.0", "", { "dependencies": { "@types/cookie": "^0.6.0", "cookie": "^1.0.1", "set-cookie-parser": "^2.6.0", "turbo-stream": "2.4.0" }, "peerDependencies": { "react": ">=18", "react-dom": ">=18" }, "optionalPeers": ["react-dom"] }, "sha512-fXyqzPgCPZbqhrk7k3hPcCpYIlQ2ugIXDboHUzhJISFVy2DEPsmHgN588MyGmkIOv3jDgNfUE3kJi83L28s/LQ=="], + + "react-router-dom": ["react-router-dom@7.2.0", "", { "dependencies": { "react-router": "7.2.0" }, "peerDependencies": { "react": ">=18", "react-dom": ">=18" } }, "sha512-cU7lTxETGtQRQbafJubvZKHEn5izNABxZhBY0Jlzdv0gqQhCPQt2J8aN5ZPjS6mQOXn5NnirWNh+FpE8TTYN0Q=="], + + "react-smooth": ["react-smooth@4.0.4", "", { "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 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q=="], + + "react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="], + + "react-transition-group": ["react-transition-group@4.4.5", "", { "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" } }, "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g=="], + + "read-cache": ["read-cache@1.0.0", "", { "dependencies": { "pify": "^2.3.0" } }, "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA=="], + + "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], + + "recharts": ["recharts@2.15.1", "", { "dependencies": { "clsx": "^2.0.0", "eventemitter3": "^4.0.1", "lodash": "^4.17.21", "react-is": "^18.3.1", "react-smooth": "^4.0.4", "recharts-scale": "^0.4.4", "tiny-invariant": "^1.3.1", "victory-vendor": "^36.6.8" }, "peerDependencies": { "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-v8PUTUlyiDe56qUj82w/EDVuzEFXwEHp9/xOowGAZwfLjB9uAy3GllQVIYMWF6nU+qibx85WF75zD7AjqoT54Q=="], + + "recharts-scale": ["recharts-scale@0.4.5", "", { "dependencies": { "decimal.js-light": "^2.4.1" } }, "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w=="], + + "regenerator-runtime": ["regenerator-runtime@0.14.1", "", {}, "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="], + + "resolve": ["resolve@1.22.8", "", { "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw=="], + + "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + + "reusify": ["reusify@1.0.4", "", {}, "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="], + + "rollup": ["rollup@4.34.6", "", { "dependencies": { "@types/estree": "1.0.6" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.34.6", "@rollup/rollup-android-arm64": "4.34.6", "@rollup/rollup-darwin-arm64": "4.34.6", "@rollup/rollup-darwin-x64": "4.34.6", "@rollup/rollup-freebsd-arm64": "4.34.6", "@rollup/rollup-freebsd-x64": "4.34.6", "@rollup/rollup-linux-arm-gnueabihf": "4.34.6", "@rollup/rollup-linux-arm-musleabihf": "4.34.6", "@rollup/rollup-linux-arm64-gnu": "4.34.6", "@rollup/rollup-linux-arm64-musl": "4.34.6", "@rollup/rollup-linux-loongarch64-gnu": "4.34.6", "@rollup/rollup-linux-powerpc64le-gnu": "4.34.6", "@rollup/rollup-linux-riscv64-gnu": "4.34.6", "@rollup/rollup-linux-s390x-gnu": "4.34.6", "@rollup/rollup-linux-x64-gnu": "4.34.6", "@rollup/rollup-linux-x64-musl": "4.34.6", "@rollup/rollup-win32-arm64-msvc": "4.34.6", "@rollup/rollup-win32-ia32-msvc": "4.34.6", "@rollup/rollup-win32-x64-msvc": "4.34.6", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ=="], + + "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], + + "scheduler": ["scheduler@0.25.0", "", {}, "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA=="], + + "semver": ["semver@7.6.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="], + + "set-cookie-parser": ["set-cookie-parser@2.7.1", "", {}, "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ=="], + + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + + "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], + + "sonner": ["sonner@1.7.4", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], + + "string-width-cjs": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="], + + "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + + "sucrase": ["sucrase@3.35.0", "", { "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" } }, "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA=="], + + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], + + "tailwind-merge": ["tailwind-merge@2.6.0", "", {}, "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA=="], + + "tailwindcss": ["tailwindcss@3.4.17", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "jiti": "^1.21.6", "lilconfig": "^3.1.3", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.1.1", "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", "postcss-load-config": "^4.0.2", "postcss-nested": "^6.2.0", "postcss-selector-parser": "^6.1.2", "resolve": "^1.22.8", "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", "tailwindcss": "lib/cli.js" } }, "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og=="], + + "tailwindcss-animate": ["tailwindcss-animate@1.0.7", "", { "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders" } }, "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA=="], + + "thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="], + + "thenify-all": ["thenify-all@1.6.0", "", { "dependencies": { "thenify": ">= 3.1.0 < 4" } }, "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA=="], + + "tiny-invariant": ["tiny-invariant@1.3.3", "", {}, "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg=="], + + "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + + "ts-api-utils": ["ts-api-utils@2.0.1", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w=="], + + "ts-interface-checker": ["ts-interface-checker@0.1.13", "", {}, "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="], + + "tslib": ["tslib@2.8.0", "", {}, "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA=="], + + "turbo-stream": ["turbo-stream@2.4.0", "", {}, "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g=="], + + "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + + "typescript": ["typescript@5.6.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw=="], + + "typescript-eslint": ["typescript-eslint@8.24.1", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.24.1", "@typescript-eslint/parser": "8.24.1", "@typescript-eslint/utils": "8.24.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.8.0" } }, "sha512-cw3rEdzDqBs70TIcb0Gdzbt6h11BSs2pS0yaq7hDWDBtCCSei1pPSUXE9qUdQ/Wm9NgFg8mKtMt1b8fTHIl1jA=="], + + "undici-types": ["undici-types@6.20.0", "", {}, "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="], + + "update-browserslist-db": ["update-browserslist-db@1.1.1", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.0" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A=="], + + "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + + "use-callback-ref": ["use-callback-ref@1.3.3", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg=="], + + "use-sidecar": ["use-sidecar@1.1.3", "", { "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ=="], + + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + + "victory-vendor": ["victory-vendor@36.9.2", "", { "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" } }, "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ=="], + + "vite": ["vite@6.1.1", "", { "dependencies": { "esbuild": "^0.24.2", "postcss": "^8.5.2", "rollup": "^4.30.1" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA=="], + + "void-elements": ["void-elements@3.1.0", "", {}, "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + + "wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], + + "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + + "yaml": ["yaml@2.6.0", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ=="], + + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + + "@babel/template/@babel/parser": ["@babel/parser@7.26.3", "", { "dependencies": { "@babel/types": "^7.26.3" }, "bin": "./bin/babel-parser.js" }, "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA=="], + + "@babel/template/@babel/types": ["@babel/types@7.26.3", "", { "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA=="], + + "@babel/traverse/globals": ["globals@11.12.0", "", {}, "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="], + + "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + + "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], + + "@eslint/plugin-kit/@eslint/core": ["@eslint/core@0.12.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg=="], + + "@humanfs/node/@humanwhocodes/retry": ["@humanwhocodes/retry@0.3.1", "", {}, "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA=="], + + "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + + "chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "foreground-child/cross-spawn": ["cross-spawn@7.0.3", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="], + + "glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + + "postcss-load-config/lilconfig": ["lilconfig@3.1.2", "", {}, "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow=="], + + "prop-types/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], + + "string-width-cjs/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + + "string-width-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "strip-ansi-cjs/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "tailwindcss/postcss": ["postcss@8.4.49", "", { "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA=="], + + "wrap-ansi/ansi-styles": ["ansi-styles@6.2.1", "", {}, "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="], + + "wrap-ansi-cjs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "wrap-ansi-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], + + "glob/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], + + "string-width-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "tailwindcss/postcss/nanoid": ["nanoid@3.3.7", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="], + + "wrap-ansi-cjs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + + "wrap-ansi-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + } +} diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 80d47f643e40d7887b1e7b10dd7de80aea3f9a93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194784 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 Date: Thu, 9 Oct 2025 11:26:45 +0800 Subject: [PATCH 02/46] feat: implement command context and provider for command handling; add search button component; enhance network chart with packet loss calculation and display; update translations for new features --- src/App.tsx | 84 +++++---- src/components/DashCommand.tsx | 13 +- src/components/Header.tsx | 2 + src/components/NetworkChart.tsx | 291 +++++++++++++++++++++++------ src/components/SearchButton.tsx | 23 +++ src/context/command-context.ts | 10 + src/context/command-provider.tsx | 24 +++ src/hooks/use-command.tsx | 10 + src/locales/de/translation.json | 4 +- src/locales/en/translation.json | 4 +- src/locales/es/translation.json | 4 +- src/locales/ru/translation.json | 4 +- src/locales/ta/translation.json | 4 +- src/locales/zh-CN/translation.json | 4 +- src/locales/zh-TW/translation.json | 4 +- src/main.tsx | 39 ++-- src/types/nezha-api.ts | 2 + 17 files changed, 403 insertions(+), 123 deletions(-) create mode 100644 src/components/SearchButton.tsx create mode 100644 src/context/command-context.ts create mode 100644 src/context/command-provider.tsx create mode 100644 src/hooks/use-command.tsx diff --git a/src/App.tsx b/src/App.tsx index 2ca7e94..931dadf 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,7 +1,7 @@ import { useQuery } from "@tanstack/react-query" import React, { useEffect, useState } from "react" import { useTranslation } from "react-i18next" -import { Route, BrowserRouter as Router, Routes } from "react-router-dom" +import { Route, BrowserRouter as Router, Routes, useLocation } from "react-router-dom" import { DashCommand } from "./components/DashCommand" import ErrorBoundary from "./components/ErrorBoundary" @@ -17,7 +17,12 @@ import NotFound from "./pages/NotFound" import Server from "./pages/Server" import ServerDetail from "./pages/ServerDetail" -const App: React.FC = () => { +// Route checker component +const RouteChecker: React.FC = () => { + return +} + +const MainApp: React.FC = () => { const { data: settingData, error } = useQuery({ queryKey: ["setting"], queryFn: () => fetchSetting(), @@ -66,42 +71,49 @@ const App: React.FC = () => { const customMobileBackgroundImage = window.CustomMobileBackgroundImage !== "" ? window.CustomMobileBackgroundImage : undefined return ( - - - {/* 固定定位的背景层 */} - {customBackgroundImage && ( -
- )} - {customMobileBackgroundImage && ( -
- )} + + {/* 固定定位的背景层 */} + {customBackgroundImage && (
-
- -
- - - } /> - } /> - } /> - } /> - -
-
-
-
+ style={{ backgroundImage: `url(${customBackgroundImage})` }} + /> + )} + {customMobileBackgroundImage && ( +
+ )} +
+
+ +
+ + + } /> + } /> + } /> + } /> + +
+
+
+ + ) +} + +// Main App wrapper with router +const App: React.FC = () => { + return ( + + ) } diff --git a/src/components/DashCommand.tsx b/src/components/DashCommand.tsx index e56c304..35a72df 100644 --- a/src/components/DashCommand.tsx +++ b/src/components/DashCommand.tsx @@ -1,6 +1,7 @@ "use client" import { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator } from "@/components/ui/command" +import { useCommand } from "@/hooks/use-command" import { useTheme } from "@/hooks/use-theme" import { useWebSocketContext } from "@/hooks/use-websocket-context" import { formatNezhaInfo } from "@/lib/utils" @@ -11,7 +12,7 @@ import { useTranslation } from "react-i18next" import { useNavigate } from "react-router-dom" export function DashCommand() { - const [open, setOpen] = useState(false) + const { isOpen, closeCommand, toggleCommand } = useCommand() const [search, setSearch] = useState("") const navigate = useNavigate() const { t } = useTranslation() @@ -25,13 +26,13 @@ export function DashCommand() { const down = (e: KeyboardEvent) => { if (e.key === "k" && (e.metaKey || e.ctrlKey)) { e.preventDefault() - setOpen((open) => !open) + toggleCommand() } } document.addEventListener("keydown", down) return () => document.removeEventListener("keydown", down) - }, []) + }, [toggleCommand]) if (!connected || !nezhaWsData) return null @@ -67,7 +68,7 @@ export function DashCommand() { return ( <> - + {t("NoResults")} @@ -80,7 +81,7 @@ export function DashCommand() { value={server.name} onSelect={() => { navigate(`/server/${server.id}`) - setOpen(false) + closeCommand() }} > {formatNezhaInfo(nezhaWsData.now, server).online ? ( @@ -103,7 +104,7 @@ export function DashCommand() { value={item.value} onSelect={() => { item.action() - setOpen(false) + closeCommand() }} > {item.icon} diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 37eddd8..c9e671b 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -15,6 +15,7 @@ import { useTranslation } from "react-i18next" import { useNavigate } from "react-router-dom" import { LanguageSwitcher } from "./LanguageSwitcher" +import { SearchButton } from "./SearchButton" import { Loader, LoadingSpinner } from "./loading/Loader" import { Button } from "./ui/button" @@ -103,6 +104,7 @@ function Header() {
+ {(customBackgroundImage || sessionStorage.getItem("savedBackgroundImage")) && ( diff --git a/src/components/NetworkChart.tsx b/src/components/NetworkChart.tsx index 3c75c71..01dfcc6 100644 --- a/src/components/NetworkChart.tsx +++ b/src/components/NetworkChart.tsx @@ -9,7 +9,7 @@ import { useQuery } from "@tanstack/react-query" import * as React from "react" import { useCallback, useMemo } from "react" import { useTranslation } from "react-i18next" -import { CartesianGrid, Line, LineChart, XAxis, YAxis } from "recharts" +import { Area, CartesianGrid, ComposedChart, Line, XAxis, YAxis } from "recharts" import NetworkChartLoading from "./NetworkChartLoading" import { Label } from "./ui/label" @@ -20,6 +20,63 @@ interface ResultItem { [key: string]: number } +/** + * Helper method to calculate packet loss from delay data + */ +const calculatePacketLoss = (delays: number[]): number[] => { + if (!delays || delays.length === 0) return [] + + const packetLossRates: number[] = [] + const windowSize = Math.min(10, Math.max(3, Math.floor(delays.length / 10))) + const timeoutThreshold = 3000 + const extremeDelayThreshold = 10000 + + for (let i = 0; i < delays.length; i++) { + const currentDelay = delays[i] + let lossRate = 0 + + if (currentDelay === 0 || currentDelay === null || currentDelay === undefined) { + lossRate = 100 + } else if (currentDelay >= extremeDelayThreshold) { + lossRate = Math.min(95, 60 + (currentDelay - extremeDelayThreshold) / 1000) + } else if (currentDelay >= timeoutThreshold) { + lossRate = Math.min(50, (currentDelay - timeoutThreshold) / 200) + } else { + const start = Math.max(0, i - Math.floor(windowSize / 2)) + const end = Math.min(delays.length, i + Math.ceil(windowSize / 2)) + const windowDelays = delays.slice(start, end).filter((d) => d > 0) + + if (windowDelays.length > 2) { + const mean = windowDelays.reduce((sum, d) => sum + d, 0) / windowDelays.length + const variance = windowDelays.reduce((sum, d) => sum + (d - mean) ** 2, 0) / windowDelays.length + const standardDeviation = Math.sqrt(variance) + const coefficientOfVariation = standardDeviation / mean + + if (coefficientOfVariation > 0.8) { + lossRate = Math.min(25, coefficientOfVariation * 15) + } else if (coefficientOfVariation > 0.5) { + lossRate = Math.min(10, coefficientOfVariation * 8) + } else if (coefficientOfVariation > 0.3) { + lossRate = Math.min(5, coefficientOfVariation * 5) + } + + if (currentDelay > mean * 2.5) { + lossRate += Math.min(15, (currentDelay / mean - 2.5) * 10) + } + } + } + + if (i > 0) { + const alpha = 0.3 + lossRate = alpha * lossRate + (1 - alpha) * packetLossRates[i - 1] + } + + packetLossRates.push(Math.max(0, Math.min(100, lossRate))) + } + + return packetLossRates.map((rate) => Number(rate.toFixed(2))) +} + export function NetworkChart({ server_id, show }: { server_id: number; show: boolean }) { const { t } = useTranslation() @@ -125,60 +182,118 @@ export const NetworkChartClient = React.memo(function NetworkChart({ const chartButtons = useMemo( () => - chartDataKey.map((key) => ( - - )), + chartDataKey.map((key) => { + const monitorData = chartData[key] + const lastDelay = monitorData[monitorData.length - 1].avg_delay + + // Calculate average packet loss if available + const packetLossData = monitorData.filter((item) => item.packet_loss !== undefined).map((item) => item.packet_loss!) + const avgPacketLoss = packetLossData.length > 0 ? packetLossData.reduce((sum, loss) => sum + loss, 0) / packetLossData.length : null + + return ( + + ) + }), [chartDataKey, activeCharts, chartData, handleButtonClick], ) - const chartLines = useMemo(() => { - // If we have active charts selected, render only those - if (activeCharts.length > 0) { - return activeCharts.map((chart) => ( + const chartElements = useMemo(() => { + const elements = [] + + // If exactly one chart is selected, show delay line and packet loss area + if (activeCharts.length === 1) { + const chart = activeCharts[0] + elements.push( + , - )) + />, + ) + } else if (activeCharts.length > 1) { + // Multiple charts selected - show only delay lines for selected monitors + elements.push( + ...activeCharts.map((chart) => ( + + )), + ) + } else { + // No selection - show all charts (default view) + elements.push( + ...chartDataKey.map((key) => ( + + )), + ) } - // Otherwise show all charts (default view) - return chartDataKey.map((key) => ( - - )) + + return elements }, [activeCharts, chartDataKey, getColorByIndex]) const processedData = useMemo(() => { - if (!isPeakEnabled) { - // Always use formattedData when multiple charts are selected or none selected - return formattedData + // Special handling for single chart selection + let baseData = formattedData + if (activeCharts.length === 1) { + const selectedChart = activeCharts[0] + baseData = chartData[selectedChart].map((item) => ({ + created_at: item.created_at, + avg_delay: item.avg_delay, + packet_loss: item.packet_loss ?? 0, + })) } - // For peak cutting, always use the formatted data which contains all series - const data = formattedData + if (!isPeakEnabled) { + return baseData + } + + // For peak cutting, use the base data + const data = baseData const windowSize = 11 // 增加窗口大小以获取更好的统计效果 const alpha = 0.3 // EWMA平滑因子 @@ -225,29 +340,47 @@ export const NetworkChartClient = React.memo(function NetworkChart({ const window = data.slice(index - windowSize + 1, index + 1) const smoothed = { ...point } as ResultItem - // Process all chart keys or just the selected ones - const keysToProcess = activeCharts.length > 0 ? activeCharts : chartDataKey - - keysToProcess.forEach((key) => { - const values = window.map((w) => w[key]).filter((v) => v !== undefined && v !== null) as number[] + // Special handling for single chart selection + if (activeCharts.length === 1) { + // Process avg_delay for single chart + const values = window.map((w) => w.avg_delay as number).filter((v) => v !== undefined && v !== null) if (values.length > 0) { const processed = processValues(values) if (processed !== null) { - // Apply EWMA smoothing - if (ewmaHistory[key] === undefined) { - ewmaHistory[key] = processed + if (ewmaHistory.avg_delay === undefined) { + ewmaHistory.avg_delay = processed } else { - ewmaHistory[key] = alpha * processed + (1 - alpha) * ewmaHistory[key] + ewmaHistory.avg_delay = alpha * processed + (1 - alpha) * ewmaHistory.avg_delay } - smoothed[key] = ewmaHistory[key] + smoothed.avg_delay = ewmaHistory.avg_delay } } - }) + } else { + // Process all chart keys or just the selected ones + const keysToProcess = activeCharts.length > 0 ? activeCharts : chartDataKey + + keysToProcess.forEach((key) => { + const values = window.map((w) => w[key]).filter((v) => v !== undefined && v !== null) as number[] + + if (values.length > 0) { + const processed = processValues(values) + if (processed !== null) { + // Apply EWMA smoothing + if (ewmaHistory[key] === undefined) { + ewmaHistory[key] = processed + } else { + ewmaHistory[key] = alpha * processed + (1 - alpha) * ewmaHistory[key] + } + smoothed[key] = ewmaHistory[key] + } + } + }) + } return smoothed }) - }, [isPeakEnabled, activeCharts, formattedData, chartDataKey]) + }, [isPeakEnabled, activeCharts, formattedData, chartData, chartDataKey]) return ( )} - + - `${value}ms`} /> + `${value}ms`} /> + {activeCharts.length === 1 && ( + `${value}%`} + /> + )} { return formatTime(payload[0].payload.created_at) }} + formatter={(value, name) => { + let formattedValue: string + let label: string + + if (name === "packet_loss") { + formattedValue = `${Number(value).toFixed(2)}%` + label = t("monitor.packetLoss", "Packet Loss") + } else if (name === "avg_delay") { + formattedValue = `${Number(value).toFixed(2)}ms` + label = t("monitor.avgDelay", "Avg Delay") + } else { + // For monitor names (in multi-chart view) - delay data + formattedValue = `${Number(value).toFixed(2)}ms` + label = name as string + } + + return ( +
+ {label} + {formattedValue} +
+ ) + }} /> } /> - } /> - {chartLines} -
+ {activeCharts.length !== 1 && } />} + {chartElements} +
@@ -349,10 +516,14 @@ const transformData = (data: NezhaMonitor[]) => { monitorData[monitorName] = [] } + // Calculate packet loss from delay data if not provided + const packetLoss = item.packet_loss || calculatePacketLoss(item.avg_delay) + for (let i = 0; i < item.created_at.length; i++) { monitorData[monitorName].push({ created_at: item.created_at[i], avg_delay: item.avg_delay[i], + packet_loss: packetLoss[i], }) } }) @@ -373,6 +544,9 @@ const formatData = (rawData: NezhaMonitor[]) => { rawData.forEach((item) => { const { monitor_name, created_at, avg_delay } = item + // Calculate packet loss if not provided + const packetLoss = item.packet_loss || calculatePacketLoss(avg_delay) + allTimeArray.forEach((time) => { if (!result[time]) { result[time] = { created_at: time } @@ -381,6 +555,11 @@ const formatData = (rawData: NezhaMonitor[]) => { const timeIndex = created_at.indexOf(time) // @ts-expect-error - avg_delay is an array result[time][monitor_name] = timeIndex !== -1 ? avg_delay[timeIndex] : null + // Add packet loss data if available + if (packetLoss) { + // @ts-expect-error - packet_loss is calculated + result[time][`${monitor_name}_packet_loss`] = timeIndex !== -1 ? packetLoss[timeIndex] : null + } }) }) diff --git a/src/components/SearchButton.tsx b/src/components/SearchButton.tsx new file mode 100644 index 0000000..be68643 --- /dev/null +++ b/src/components/SearchButton.tsx @@ -0,0 +1,23 @@ +"use client" + +import { useCommand } from "@/hooks/use-command" +import { MagnifyingGlassIcon } from "@heroicons/react/20/solid" + +import { Button } from "./ui/button" + +export function SearchButton() { + const { openCommand } = useCommand() + + return ( + + ) +} diff --git a/src/context/command-context.ts b/src/context/command-context.ts new file mode 100644 index 0000000..e6ec045 --- /dev/null +++ b/src/context/command-context.ts @@ -0,0 +1,10 @@ +import { createContext } from "react" + +export interface CommandContextType { + isOpen: boolean + openCommand: () => void + closeCommand: () => void + toggleCommand: () => void +} + +export const CommandContext = createContext(undefined) diff --git a/src/context/command-provider.tsx b/src/context/command-provider.tsx new file mode 100644 index 0000000..644cf84 --- /dev/null +++ b/src/context/command-provider.tsx @@ -0,0 +1,24 @@ +import { ReactNode, useCallback, useState } from "react" + +import { CommandContext } from "./command-context" + +export function CommandProvider({ children }: { children: ReactNode }) { + const [isOpen, setIsOpen] = useState(false) + + const openCommand = useCallback(() => setIsOpen(true), []) + const closeCommand = useCallback(() => setIsOpen(false), []) + const toggleCommand = useCallback(() => setIsOpen((prev) => !prev), []) + + return ( + + {children} + + ) +} diff --git a/src/hooks/use-command.tsx b/src/hooks/use-command.tsx new file mode 100644 index 0000000..753e82c --- /dev/null +++ b/src/hooks/use-command.tsx @@ -0,0 +1,10 @@ +import { CommandContext } from "@/context/command-context" +import { useContext } from "react" + +export function useCommand() { + const context = useContext(CommandContext) + if (context === undefined) { + throw new Error("useCommand must be used within a CommandProvider") + } + return context +} diff --git a/src/locales/de/translation.json b/src/locales/de/translation.json index 4cf9c43..6a96414 100644 --- a/src/locales/de/translation.json +++ b/src/locales/de/translation.json @@ -45,7 +45,9 @@ "monitor": { "monitorCount": "Services", "noData": "Kein Server Monitoring Daten, bitte fügen sie zuerst einen Monitor hinzu", - "avgDelay": "Latenz" + "avgDelay": "Latenz", + "packetLoss": "Paketverlust", + "clearSelections": "Löschen" }, "billingInfo": { "error": "Fehler", diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index 0627231..7bc483e 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -107,7 +107,9 @@ "monitor": { "noData": "No server monitor data, please add a service monitor first", "avgDelay": "Latency", - "monitorCount": "Services" + "monitorCount": "Services", + "packetLoss": "Packet Loss", + "clearSelections": "Clear" }, "pwa": { "offlineReady": "App ready to work offline", diff --git a/src/locales/es/translation.json b/src/locales/es/translation.json index b760cb6..74eedfd 100644 --- a/src/locales/es/translation.json +++ b/src/locales/es/translation.json @@ -91,7 +91,9 @@ "monitor": { "avgDelay": "Latencia", "noData": "No hay datos de servidores, primero agregue un monitor de servicio", - "monitorCount": "Servicios" + "monitorCount": "Servicios", + "packetLoss": "Pérdida de paquetes", + "clearSelections": "Limpiar" }, "error": { "pageNotFound": "Página no encontrada", diff --git a/src/locales/ru/translation.json b/src/locales/ru/translation.json index e5bb6c7..6e2edde 100644 --- a/src/locales/ru/translation.json +++ b/src/locales/ru/translation.json @@ -98,7 +98,9 @@ "monitor": { "noData": "Нет данных мониторинга сервера, пожалуйста, сначала добавьте монитор службы", "avgDelay": "Задержка", - "monitorCount": "Сервисы" + "monitorCount": "Сервисы", + "packetLoss": "Потеря пакетов", + "clearSelections": "Очистить" }, "pwa": { "newContent": "Доступен новый контент", diff --git a/src/locales/ta/translation.json b/src/locales/ta/translation.json index e99e0f9..6cc350e 100644 --- a/src/locales/ta/translation.json +++ b/src/locales/ta/translation.json @@ -93,7 +93,9 @@ "monitor": { "noData": "சேவையக மானிட்டர் தரவு இல்லை, முதலில் ஒரு பணி மானிட்டரைச் சேர்க்கவும்", "avgDelay": "சுணக்கம்", - "monitorCount": "சேவைகள்" + "monitorCount": "சேவைகள்", + "packetLoss": "தொகுப்பு இழப்பு", + "clearSelections": "அழி" }, "pwa": { "offlineReady": "ஆஃப்லைனில் வேலை செய்ய பயன்பாடு தயாராக உள்ளது", diff --git a/src/locales/zh-CN/translation.json b/src/locales/zh-CN/translation.json index c9acd66..9e56131 100644 --- a/src/locales/zh-CN/translation.json +++ b/src/locales/zh-CN/translation.json @@ -108,7 +108,9 @@ "monitor": { "noData": "没有服务监控数据,请在管理后台服务页添加监控任务", "avgDelay": "延迟", - "monitorCount": "个监控服务" + "monitorCount": "个监控服务", + "packetLoss": "丢包率", + "clearSelections": "清除" }, "pwa": { "offlineReady": "应用可以离线使用了", diff --git a/src/locales/zh-TW/translation.json b/src/locales/zh-TW/translation.json index 5ba3800..7989371 100644 --- a/src/locales/zh-TW/translation.json +++ b/src/locales/zh-TW/translation.json @@ -110,7 +110,9 @@ "noData": "沒有服務監控數據,請在管理後台服務新增監控任務", "status": "狀態", "avgDelay": "延遲", - "monitorCount": "個監控" + "monitorCount": "個監控", + "packetLoss": "丟包率", + "clearSelections": "清除" }, "billingInfo": { "remaining": "剩餘天數", diff --git a/src/main.tsx b/src/main.tsx index a8048c8..1b84891 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -7,6 +7,7 @@ import App from "./App" import { ThemeColorManager } from "./components/ThemeColorManager" import { ThemeProvider } from "./components/ThemeProvider" import { MotionProvider } from "./components/motion/motion-provider" +import { CommandProvider } from "./context/command-provider" import { SortProvider } from "./context/sort-provider" import { StatusProvider } from "./context/status-provider" import { TooltipProvider } from "./context/tooltip-provider" @@ -22,24 +23,26 @@ ReactDOM.createRoot(document.getElementById("root")!).render( - - - - - - - - - + + + + + + + + + + + diff --git a/src/types/nezha-api.ts b/src/types/nezha-api.ts index 75deb94..6abd474 100644 --- a/src/types/nezha-api.ts +++ b/src/types/nezha-api.ts @@ -86,6 +86,7 @@ export type ServerMonitorChart = { [key: string]: { created_at: number avg_delay: number + packet_loss?: number }[] } @@ -96,6 +97,7 @@ export interface NezhaMonitor { server_name: string created_at: number[] avg_delay: number[] + packet_loss?: number[] } export interface ServiceResponse { From 2cc5926fbeb1525d4850f46c0f42fbab3f27e20d Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Thu, 9 Oct 2025 11:31:00 +0800 Subject: [PATCH 03/46] fix: remove unused useLocation import from App.tsx --- src/App.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/App.tsx b/src/App.tsx index 931dadf..6f3956c 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,7 +1,7 @@ import { useQuery } from "@tanstack/react-query" import React, { useEffect, useState } from "react" import { useTranslation } from "react-i18next" -import { Route, BrowserRouter as Router, Routes, useLocation } from "react-router-dom" +import { Route, BrowserRouter as Router, Routes } from "react-router-dom" import { DashCommand } from "./components/DashCommand" import ErrorBoundary from "./components/ErrorBoundary" From 9aa83c1a9dd0b9a711d6a6d9a781f0fd4296e7d0 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Mon, 1 Dec 2025 00:34:08 +0800 Subject: [PATCH 04/46] feat: add Macau coordinates to countryCoordinates in geo-limit.ts --- src/lib/geo-limit.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/geo-limit.ts b/src/lib/geo-limit.ts index 0073eb9..5067932 100644 --- a/src/lib/geo-limit.ts +++ b/src/lib/geo-limit.ts @@ -10,6 +10,7 @@ export const countryCoordinates: Record Date: Thu, 25 Dec 2025 08:15:04 +0100 Subject: [PATCH 05/46] Translations update from Hosted Weblate (#50) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Hosted Weblate Co-authored-by: Zilong Liu <2821624044@qq.com> Co-authored-by: Руслан Пузич Co-authored-by: weblate <1607653+weblate@users.noreply.github.com> --- bun.lock | 1 + src/locales/ja/translation.json | 1 + src/locales/uk/translation.json | 7 +++++++ 3 files changed, 9 insertions(+) create mode 100644 src/locales/ja/translation.json create mode 100644 src/locales/uk/translation.json diff --git a/bun.lock b/bun.lock index 4add681..565f6e4 100644 --- a/bun.lock +++ b/bun.lock @@ -1,5 +1,6 @@ { "lockfileVersion": 1, + "configVersion": 0, "workspaces": { "": { "name": "nazha-dashboard-vite", diff --git a/src/locales/ja/translation.json b/src/locales/ja/translation.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/src/locales/ja/translation.json @@ -0,0 +1 @@ +{} diff --git a/src/locales/uk/translation.json b/src/locales/uk/translation.json new file mode 100644 index 0000000..08d03ed --- /dev/null +++ b/src/locales/uk/translation.json @@ -0,0 +1,7 @@ +{ + "nezha": "Nezha Моніторинг", + "theme": { + "light": "Світла тема", + "dark": "Темна тема" + } +} From 15424513b5aa89a65c02be56741c9ff961924d02 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Sun, 28 Dec 2025 14:36:45 +0800 Subject: [PATCH 06/46] fix: enhance styling of CardHeader in NetworkChartClient component --- src/components/NetworkChart.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/NetworkChart.tsx b/src/components/NetworkChart.tsx index 01dfcc6..8442aef 100644 --- a/src/components/NetworkChart.tsx +++ b/src/components/NetworkChart.tsx @@ -388,7 +388,7 @@ export const NetworkChartClient = React.memo(function NetworkChart({ "bg-card/70": customBackgroundImage, })} > - +
{serverName} From 409ec0b62c52d0405c302f5440591a5e28529e49 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Sun, 28 Dec 2025 14:37:02 +0800 Subject: [PATCH 07/46] fix: update SearchButton styling --- src/components/SearchButton.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/SearchButton.tsx b/src/components/SearchButton.tsx index be68643..1ac196d 100644 --- a/src/components/SearchButton.tsx +++ b/src/components/SearchButton.tsx @@ -1,6 +1,7 @@ "use client" import { useCommand } from "@/hooks/use-command" +import { cn } from "@/lib/utils" import { MagnifyingGlassIcon } from "@heroicons/react/20/solid" import { Button } from "./ui/button" @@ -8,11 +9,15 @@ import { Button } from "./ui/button" export function SearchButton() { const { openCommand } = useCommand() + const customBackgroundImage = (window.CustomBackgroundImage as string) !== "" ? window.CustomBackgroundImage : undefined + return ( - {localeItems.map((item) => ( - handleSelect(e, item.code)} className={locale === item.code ? "bg-muted gap-3" : ""}> + {localeItems.map((item, index) => ( + handleSelect(e, item.code)} + className={cn( + { + "gap-3 bg-muted font-semibold": locale === item.code, + }, + { + "rounded-t-[5px]": index === localeItems.length - 1, + "rounded-[5px]": index !== 0 && index !== localeItems.length - 1, + "rounded-b-[5px]": index === 0, + }, + )} + > {item.name} {locale === item.code && } ))} diff --git a/src/components/ThemeSwitcher.tsx b/src/components/ThemeSwitcher.tsx index 9dcea33..4005c50 100644 --- a/src/components/ThemeSwitcher.tsx +++ b/src/components/ThemeSwitcher.tsx @@ -35,15 +35,24 @@ export function ModeToggle() { - handleSelect(e, "light")}> + handleSelect(e, "light")} + > {t("theme.light")} {theme === "light" && } - handleSelect(e, "dark")}> + handleSelect(e, "dark")} + > {t("theme.dark")} {theme === "dark" && } - handleSelect(e, "system")}> + handleSelect(e, "system")} + > {t("theme.system")} {theme === "system" && } From 4d4c3f163959ca84403bb56b9ad3f44b58e96ad4 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Sun, 28 Dec 2025 15:01:27 +0800 Subject: [PATCH 09/46] fix: add server ID to tooltip data and update MapTooltip component for navigation --- src/components/GlobalMap.tsx | 2 ++ src/components/MapTooltip.tsx | 20 +++++++++++++++----- src/context/tooltip-context.ts | 1 + 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/components/GlobalMap.tsx b/src/components/GlobalMap.tsx index ae9f2c1..b8e1abb 100644 --- a/src/components/GlobalMap.tsx +++ b/src/components/GlobalMap.tsx @@ -117,6 +117,7 @@ export function InteractiveMap({ countries, serverCounts, width, height, filtere const countryServers = nezhaServerList .filter((server: NezhaServer) => server.country_code?.toUpperCase() === countryCode) .map((server: NezhaServer) => ({ + id: server.id, name: server.name, status: formatNezhaInfo(now, server).online, })) @@ -155,6 +156,7 @@ export function InteractiveMap({ countries, serverCounts, width, height, filtere const countryServers = nezhaServerList .filter((server: NezhaServer) => server.country_code?.toUpperCase() === countryCode.toUpperCase()) .map((server: NezhaServer) => ({ + id: server.id, name: server.name, status: formatNezhaInfo(now, server).online, })) diff --git a/src/components/MapTooltip.tsx b/src/components/MapTooltip.tsx index c390f19..7078a4e 100644 --- a/src/components/MapTooltip.tsx +++ b/src/components/MapTooltip.tsx @@ -2,9 +2,11 @@ import useTooltip from "@/hooks/use-tooltip" import { AnimatePresence, m } from "framer-motion" import { memo } from "react" import { useTranslation } from "react-i18next" +import { useNavigate } from "react-router-dom" const MapTooltip = memo(function MapTooltip() { const { t } = useTranslation() + const navigate = useNavigate() const { tooltipData } = useTooltip() if (!tooltipData) return null @@ -28,7 +30,7 @@ const MapTooltip = memo(function MapTooltip() { >

{tooltipData.country === "China" ? "Mainland China" : tooltipData.country}

-

+

{tooltipData.count} {t("map.Servers")}

@@ -39,11 +41,19 @@ const MapTooltip = memo(function MapTooltip() { overflowY: "auto", }} > - {tooltipData.servers.map((server, index: number) => ( -
- + {tooltipData.servers.map((server) => ( +
+ ))}
diff --git a/src/context/tooltip-context.ts b/src/context/tooltip-context.ts index 9a7b3ad..6619b69 100644 --- a/src/context/tooltip-context.ts +++ b/src/context/tooltip-context.ts @@ -5,6 +5,7 @@ export interface TooltipData { country: string count: number servers: Array<{ + id: number name: string status: boolean }> From 746f890d65b54a961baf7c725fcce70a366ce360 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Sun, 28 Dec 2025 15:24:04 +0800 Subject: [PATCH 10/46] refactor: update component styles and improve accessibility - Adjusted hover shadow effects in CycleTransferStatsClient for better visual feedback. - Fixed aspect ratio class in GlobalMap for consistent rendering. - Updated font weight in GroupSwitch for improved readability. - Modified Separator width class in Header for consistency across components. - Enhanced button hover effects in NetworkChartClient for better user interaction. - Adjusted margin class in ServerDetailOverview for better alignment. - Updated margin classes in ServerOverview for consistent spacing. - Refined background gradient classes in ServiceTrackerClient for better color management. - Standardized font weight in TabSwitch for consistency. - Corrected stroke color class in AnimatedCircularProgressBar for better theming. - Improved focus outline handling in badge and button components for better accessibility. - Updated chart component styles for improved visual hierarchy. - Adjusted checkbox focus outline for better accessibility. - Enhanced command dialog styles for improved usability. - Updated dialog close button focus outline for better accessibility. - Refined dropdown menu styles for improved usability and consistency. - Adjusted input focus outline for better accessibility. - Improved popover content styles for better visibility. - Updated select component styles for improved usability. - Refined separator height classes for consistency. - Enhanced switch component focus outline for better accessibility. - Updated table footer styles for improved visual consistency. - Refactored global CSS to use new Tailwind CSS configuration and improved theming. - Removed outdated Tailwind configuration file. --- bun.lock | 253 ++++++------------ package.json | 6 +- postcss.config.js | 3 +- src/components/CycleTransferStatsClient.tsx | 2 +- src/components/GlobalMap.tsx | 2 +- src/components/GroupSwitch.tsx | 2 +- src/components/Header.tsx | 4 +- src/components/NetworkChart.tsx | 2 +- src/components/ServerDetailOverview.tsx | 2 +- src/components/ServerOverview.tsx | 2 +- src/components/ServiceTrackerClient.tsx | 6 +- src/components/TabSwitch.tsx | 2 +- .../ui/animated-circular-progress-bar.tsx | 2 +- src/components/ui/badge.tsx | 2 +- src/components/ui/button.tsx | 2 +- src/components/ui/chart.tsx | 6 +- src/components/ui/checkbox.tsx | 2 +- src/components/ui/command.tsx | 8 +- src/components/ui/dialog.tsx | 2 +- src/components/ui/dropdown-menu.tsx | 12 +- src/components/ui/input.tsx | 2 +- src/components/ui/popover.tsx | 2 +- src/components/ui/select.tsx | 8 +- src/components/ui/separator.tsx | 2 +- src/components/ui/switch.tsx | 2 +- src/components/ui/table.tsx | 2 +- src/index.css | 141 ++++++++-- src/pages/Server.tsx | 8 +- tailwind.config.js | 81 ------ 29 files changed, 248 insertions(+), 322 deletions(-) delete mode 100644 tailwind.config.js diff --git a/bun.lock b/bun.lock index 565f6e4..3ea41aa 100644 --- a/bun.lock +++ b/bun.lock @@ -1,6 +1,5 @@ { "lockfileVersion": 1, - "configVersion": 0, "workspaces": { "": { "name": "nazha-dashboard-vite", @@ -37,7 +36,7 @@ "i18next": "24.2.2", "lucide-react": "0.460.0", "luxon": "3.5.0", - "prettier-plugin-tailwindcss": "0.6.11", + "prettier-plugin-tailwindcss": "^0.7.2", "react": "19.0.0", "react-dom": "19.0.0", "react-i18next": "15.4.1", @@ -49,17 +48,17 @@ }, "devDependencies": { "@eslint/js": "9.20.0", + "@tailwindcss/postcss": "^4.1.18", "@types/node": "22.13.4", "@types/react": "19.0.10", "@types/react-dom": "19.0.4", "@vitejs/plugin-react-swc": "3.8.0", - "autoprefixer": "10.4.20", "eslint": "9.20.1", "eslint-plugin-react-hooks": "5.1.0", "eslint-plugin-react-refresh": "0.4.19", "globals": "15.15.0", "postcss": "8.5.3", - "tailwindcss": "3.4.17", + "tailwindcss": "^4.1.18", "typescript": "~5.6.3", "typescript-eslint": "8.24.1", "vite": "6.1.1", @@ -173,15 +172,15 @@ "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.2", "", {}, "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ=="], - "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "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" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], - "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.5", "", { "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg=="], + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], "@jridgewell/set-array": ["@jridgewell/set-array@1.2.1", "", {}, "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="], - "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="], + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.25", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="], @@ -193,8 +192,6 @@ "@number-flow/react": ["@number-flow/react@0.5.5", "", { "dependencies": { "esm-env": "^1.1.4", "number-flow": "0.5.3" }, "peerDependencies": { "react": "^18 || ^19", "react-dom": "^18 || ^19" } }, "sha512-Zdju5n0osxrb+7jbcpUJ9L2VJ2+9ptwjz5+A+2wq9Q32hs3PW/noPJjHtLTrtGINM9mEw76DcDg0ac/dx6j1aA=="], - "@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="], - "@radix-ui/number": ["@radix-ui/number@1.1.0", "", {}, "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ=="], "@radix-ui/primitive": ["@radix-ui/primitive@1.1.1", "", {}, "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA=="], @@ -337,6 +334,36 @@ "@swc/types": ["@swc/types@0.1.17", "", { "dependencies": { "@swc/counter": "^0.1.3" } }, "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ=="], + "@tailwindcss/node": ["@tailwindcss/node@4.1.18", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.1.18" } }, "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ=="], + + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.18", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.18", "@tailwindcss/oxide-darwin-arm64": "4.1.18", "@tailwindcss/oxide-darwin-x64": "4.1.18", "@tailwindcss/oxide-freebsd-x64": "4.1.18", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18", "@tailwindcss/oxide-linux-arm64-musl": "4.1.18", "@tailwindcss/oxide-linux-x64-gnu": "4.1.18", "@tailwindcss/oxide-linux-x64-musl": "4.1.18", "@tailwindcss/oxide-wasm32-wasi": "4.1.18", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18", "@tailwindcss/oxide-win32-x64-msvc": "4.1.18" } }, "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A=="], + + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.18", "", { "os": "android", "cpu": "arm64" }, "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q=="], + + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.18", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A=="], + + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.18", "", { "os": "darwin", "cpu": "x64" }, "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw=="], + + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.18", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA=="], + + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18", "", { "os": "linux", "cpu": "arm" }, "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA=="], + + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.18", "", { "os": "linux", "cpu": "arm64" }, "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw=="], + + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.18", "", { "os": "linux", "cpu": "arm64" }, "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg=="], + + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.18", "", { "os": "linux", "cpu": "x64" }, "sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g=="], + + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.18", "", { "os": "linux", "cpu": "x64" }, "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ=="], + + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.18", "", { "dependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.1.0", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.4.0" }, "cpu": "none" }, "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA=="], + + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.18", "", { "os": "win32", "cpu": "arm64" }, "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA=="], + + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.18", "", { "os": "win32", "cpu": "x64" }, "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q=="], + + "@tailwindcss/postcss": ["@tailwindcss/postcss@4.1.18", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.1.18", "@tailwindcss/oxide": "4.1.18", "postcss": "^8.4.41", "tailwindcss": "4.1.18" } }, "sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g=="], + "@tanstack/query-core": ["@tanstack/query-core@5.66.4", "", {}, "sha512-skM/gzNX4shPkqmdTCSoHtJAPMTtmIJNS0hE+xwTTUVYwezArCT34NMermABmBVUg5Ls5aiUXEDXfqwR1oVkcA=="], "@tanstack/query-devtools": ["@tanstack/query-devtools@5.65.0", "", {}, "sha512-g5y7zc07U9D3esMdqUfTEVu9kMHoIaVBsD0+M3LPdAdD710RpTcLiNvJY1JkYXqkq9+NV+CQoemVNpQPBXVsJg=="], @@ -411,42 +438,22 @@ "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], - "ansi-regex": ["ansi-regex@6.1.0", "", {}, "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA=="], - "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="], - - "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], - - "arg": ["arg@5.0.2", "", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="], - "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], "aria-hidden": ["aria-hidden@1.2.4", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A=="], - "autoprefixer": ["autoprefixer@10.4.20", "", { "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" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g=="], - "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], - "brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="], "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], - "browserslist": ["browserslist@4.24.4", "", { "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" } }, "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A=="], - "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], - "camelcase-css": ["camelcase-css@2.0.1", "", {}, "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="], - - "caniuse-lite": ["caniuse-lite@1.0.30001703", "", {}, "sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ=="], - "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "chokidar": ["chokidar@3.6.0", "", { "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" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], - "class-variance-authority": ["class-variance-authority@0.7.1", "", { "dependencies": { "clsx": "^2.1.1" } }, "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg=="], "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], @@ -457,8 +464,6 @@ "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], - "commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], - "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], "cookie": ["cookie@1.0.2", "", {}, "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA=="], @@ -467,8 +472,6 @@ "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], - "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], - "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], "d3-array": ["d3-array@3.2.4", "", { "dependencies": { "internmap": "1 - 2" } }, "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg=="], @@ -503,26 +506,18 @@ "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + "detect-node-es": ["detect-node-es@1.1.0", "", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="], "diacritics": ["diacritics@1.3.0", "", {}, "sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA=="], - "didyoumean": ["didyoumean@1.2.2", "", {}, "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="], - - "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="], - "dom-helpers": ["dom-helpers@5.2.1", "", { "dependencies": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" } }, "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA=="], - "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], - - "electron-to-chromium": ["electron-to-chromium@1.5.114", "", {}, "sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA=="], - - "emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], + "enhanced-resolve": ["enhanced-resolve@5.18.4", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q=="], "esbuild": ["esbuild@0.24.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.24.2", "@esbuild/android-arm": "0.24.2", "@esbuild/android-arm64": "0.24.2", "@esbuild/android-x64": "0.24.2", "@esbuild/darwin-arm64": "0.24.2", "@esbuild/darwin-x64": "0.24.2", "@esbuild/freebsd-arm64": "0.24.2", "@esbuild/freebsd-x64": "0.24.2", "@esbuild/linux-arm": "0.24.2", "@esbuild/linux-arm64": "0.24.2", "@esbuild/linux-ia32": "0.24.2", "@esbuild/linux-loong64": "0.24.2", "@esbuild/linux-mips64el": "0.24.2", "@esbuild/linux-ppc64": "0.24.2", "@esbuild/linux-riscv64": "0.24.2", "@esbuild/linux-s390x": "0.24.2", "@esbuild/linux-x64": "0.24.2", "@esbuild/netbsd-arm64": "0.24.2", "@esbuild/netbsd-x64": "0.24.2", "@esbuild/openbsd-arm64": "0.24.2", "@esbuild/openbsd-x64": "0.24.2", "@esbuild/sunos-x64": "0.24.2", "@esbuild/win32-arm64": "0.24.2", "@esbuild/win32-ia32": "0.24.2", "@esbuild/win32-x64": "0.24.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA=="], - "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], - "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], "eslint": ["eslint@9.20.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", "@eslint/core": "^0.11.0", "@eslint/eslintrc": "^3.2.0", "@eslint/js": "9.20.0", "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.1", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.2.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g=="], @@ -571,30 +566,22 @@ "flatted": ["flatted@3.3.1", "", {}, "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw=="], - "foreground-child": ["foreground-child@3.3.0", "", { "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" } }, "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg=="], - - "fraction.js": ["fraction.js@4.3.7", "", {}, "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="], - "framer-motion": ["framer-motion@12.4.5", "", { "dependencies": { "motion-dom": "^12.4.5", "motion-utils": "^12.0.0", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-9+8wglyIJFeUpVg4U8Ohvoo5x7zmvRqawWXhEUThcYdwL/5A1/OkLvQo68Zz5taUE11HKG/Ex+LPaN2+fMkRdA=="], "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], - "get-nonce": ["get-nonce@1.0.1", "", {}, "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="], - "glob": ["glob@10.4.5", "", { "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" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], - "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], "globals": ["globals@15.15.0", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="], + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + "graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], - "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], - "html-parse-stringify": ["html-parse-stringify@3.0.1", "", { "dependencies": { "void-elements": "3.1.0" } }, "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg=="], "i18n-iso-countries": ["i18n-iso-countries@7.14.0", "", { "dependencies": { "diacritics": "1.3.0" } }, "sha512-nXHJZYtNrfsi1UQbyRqm3Gou431elgLjKl//CYlnBGt5aTWdRPH1PiS2T/p/n8Q8LnqYqzQJik3Q7mkwvLokeg=="], @@ -609,22 +596,14 @@ "internmap": ["internmap@2.0.3", "", {}, "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="], - "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="], - - "is-core-module": ["is-core-module@2.15.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ=="], - "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], - "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], - "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], - "jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], - "javascript-natural-sort": ["javascript-natural-sort@0.7.1", "", {}, "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw=="], "jiti": ["jiti@1.21.6", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w=="], @@ -645,9 +624,29 @@ "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], - "lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="], + "lightningcss": ["lightningcss@1.30.2", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.30.2", "lightningcss-darwin-arm64": "1.30.2", "lightningcss-darwin-x64": "1.30.2", "lightningcss-freebsd-x64": "1.30.2", "lightningcss-linux-arm-gnueabihf": "1.30.2", "lightningcss-linux-arm64-gnu": "1.30.2", "lightningcss-linux-arm64-musl": "1.30.2", "lightningcss-linux-x64-gnu": "1.30.2", "lightningcss-linux-x64-musl": "1.30.2", "lightningcss-win32-arm64-msvc": "1.30.2", "lightningcss-win32-x64-msvc": "1.30.2" } }, "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ=="], - "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.30.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A=="], + + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA=="], + + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ=="], + + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA=="], + + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.2", "", { "os": "linux", "cpu": "arm" }, "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA=="], + + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A=="], + + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA=="], + + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w=="], + + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA=="], + + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ=="], + + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.2", "", { "os": "win32", "cpu": "x64" }, "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw=="], "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], @@ -657,89 +656,55 @@ "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], - "lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], - "lucide-react": ["lucide-react@0.460.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" } }, "sha512-BVtq/DykVeIvRTJvRAgCsOwaGL8Un3Bxh8MbDxMhEWlZay3T4IpEKDEpwt5KZ0KJMHzgm6jrltxlT5eXOWXDHg=="], "luxon": ["luxon@3.5.0", "", {}, "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ=="], + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], - "motion-dom": ["motion-dom@12.5.0", "", { "dependencies": { "motion-utils": "^12.5.0" } }, "sha512-uH2PETDh7m+Hjd1UQQ56yHqwn83SAwNjimNPE/kC+Kds0t4Yh7+29rfo5wezVFpPOv57U4IuWved5d1x0kNhbQ=="], "motion-utils": ["motion-utils@12.5.0", "", {}, "sha512-+hFFzvimn0sBMP9iPxBa9OtRX35ZQ3py0UHnb8U29VD+d8lQ8zH3dTygJWqK7av2v6yhg7scj9iZuvTS0f4+SA=="], "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="], - "nanoid": ["nanoid@3.3.8", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w=="], "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], - "node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], - - "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], - - "normalize-range": ["normalize-range@0.1.2", "", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="], - "number-flow": ["number-flow@0.5.3", "", { "dependencies": { "esm-env": "^1.1.4" } }, "sha512-iLKyssImNWQmJ41rza9K7P5lHRZTyishi/9FarWPLQHYY2Ydtl6eiXINEjZ1fa8dHeY0O7+YOD+Py3ZsJddYkg=="], "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], - "object-hash": ["object-hash@3.0.0", "", {}, "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="], - "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], - "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], - "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], - "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], - - "path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], - "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - "pify": ["pify@2.3.0", "", {}, "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="], - - "pirates": ["pirates@4.0.6", "", {}, "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg=="], - "postcss": ["postcss@8.5.3", "", { "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A=="], - "postcss-import": ["postcss-import@15.1.0", "", { "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" }, "peerDependencies": { "postcss": "^8.0.0" } }, "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew=="], - - "postcss-js": ["postcss-js@4.0.1", "", { "dependencies": { "camelcase-css": "^2.0.1" }, "peerDependencies": { "postcss": "^8.4.21" } }, "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw=="], - - "postcss-load-config": ["postcss-load-config@4.0.2", "", { "dependencies": { "lilconfig": "^3.0.0", "yaml": "^2.3.4" }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" }, "optionalPeers": ["postcss", "ts-node"] }, "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ=="], - - "postcss-nested": ["postcss-nested@6.2.0", "", { "dependencies": { "postcss-selector-parser": "^6.1.1" }, "peerDependencies": { "postcss": "^8.2.14" } }, "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ=="], - - "postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], - - "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], - "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], "prettier": ["prettier@3.4.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ=="], - "prettier-plugin-tailwindcss": ["prettier-plugin-tailwindcss@0.6.11", "", { "peerDependencies": { "@ianvs/prettier-plugin-sort-imports": "*", "@prettier/plugin-pug": "*", "@shopify/prettier-plugin-liquid": "*", "@trivago/prettier-plugin-sort-imports": "*", "@zackad/prettier-plugin-twig": "*", "prettier": "^3.0", "prettier-plugin-astro": "*", "prettier-plugin-css-order": "*", "prettier-plugin-import-sort": "*", "prettier-plugin-jsdoc": "*", "prettier-plugin-marko": "*", "prettier-plugin-multiline-arrays": "*", "prettier-plugin-organize-attributes": "*", "prettier-plugin-organize-imports": "*", "prettier-plugin-sort-imports": "*", "prettier-plugin-style-order": "*", "prettier-plugin-svelte": "*" }, "optionalPeers": ["@ianvs/prettier-plugin-sort-imports", "@prettier/plugin-pug", "@shopify/prettier-plugin-liquid", "@trivago/prettier-plugin-sort-imports", "@zackad/prettier-plugin-twig", "prettier-plugin-astro", "prettier-plugin-css-order", "prettier-plugin-import-sort", "prettier-plugin-jsdoc", "prettier-plugin-marko", "prettier-plugin-multiline-arrays", "prettier-plugin-organize-attributes", "prettier-plugin-organize-imports", "prettier-plugin-sort-imports", "prettier-plugin-style-order", "prettier-plugin-svelte"] }, "sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA=="], + "prettier-plugin-tailwindcss": ["prettier-plugin-tailwindcss@0.7.2", "", { "peerDependencies": { "@ianvs/prettier-plugin-sort-imports": "*", "@prettier/plugin-hermes": "*", "@prettier/plugin-oxc": "*", "@prettier/plugin-pug": "*", "@shopify/prettier-plugin-liquid": "*", "@trivago/prettier-plugin-sort-imports": "*", "@zackad/prettier-plugin-twig": "*", "prettier": "^3.0", "prettier-plugin-astro": "*", "prettier-plugin-css-order": "*", "prettier-plugin-jsdoc": "*", "prettier-plugin-marko": "*", "prettier-plugin-multiline-arrays": "*", "prettier-plugin-organize-attributes": "*", "prettier-plugin-organize-imports": "*", "prettier-plugin-sort-imports": "*", "prettier-plugin-svelte": "*" }, "optionalPeers": ["@ianvs/prettier-plugin-sort-imports", "@prettier/plugin-hermes", "@prettier/plugin-oxc", "@prettier/plugin-pug", "@shopify/prettier-plugin-liquid", "@trivago/prettier-plugin-sort-imports", "@zackad/prettier-plugin-twig", "prettier-plugin-astro", "prettier-plugin-css-order", "prettier-plugin-jsdoc", "prettier-plugin-marko", "prettier-plugin-multiline-arrays", "prettier-plugin-organize-attributes", "prettier-plugin-organize-imports", "prettier-plugin-sort-imports", "prettier-plugin-svelte"] }, "sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA=="], "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], @@ -769,18 +734,12 @@ "react-transition-group": ["react-transition-group@4.4.5", "", { "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" } }, "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g=="], - "read-cache": ["read-cache@1.0.0", "", { "dependencies": { "pify": "^2.3.0" } }, "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA=="], - - "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], - "recharts": ["recharts@2.15.1", "", { "dependencies": { "clsx": "^2.0.0", "eventemitter3": "^4.0.1", "lodash": "^4.17.21", "react-is": "^18.3.1", "react-smooth": "^4.0.4", "recharts-scale": "^0.4.4", "tiny-invariant": "^1.3.1", "victory-vendor": "^36.6.8" }, "peerDependencies": { "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-v8PUTUlyiDe56qUj82w/EDVuzEFXwEHp9/xOowGAZwfLjB9uAy3GllQVIYMWF6nU+qibx85WF75zD7AjqoT54Q=="], "recharts-scale": ["recharts-scale@0.4.5", "", { "dependencies": { "decimal.js-light": "^2.4.1" } }, "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w=="], "regenerator-runtime": ["regenerator-runtime@0.14.1", "", {}, "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="], - "resolve": ["resolve@1.22.8", "", { "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw=="], - "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], "reusify": ["reusify@1.0.4", "", {}, "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="], @@ -799,37 +758,21 @@ "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], - "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], - "sonner": ["sonner@1.7.4", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw=="], "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], - "string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], - - "string-width-cjs": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - - "strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="], - - "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], - "sucrase": ["sucrase@3.35.0", "", { "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" } }, "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA=="], - "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], - "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], - "tailwind-merge": ["tailwind-merge@2.6.0", "", {}, "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA=="], - "tailwindcss": ["tailwindcss@3.4.17", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "jiti": "^1.21.6", "lilconfig": "^3.1.3", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.1.1", "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", "postcss-load-config": "^4.0.2", "postcss-nested": "^6.2.0", "postcss-selector-parser": "^6.1.2", "resolve": "^1.22.8", "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", "tailwindcss": "lib/cli.js" } }, "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og=="], + "tailwindcss": ["tailwindcss@4.1.18", "", {}, "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw=="], "tailwindcss-animate": ["tailwindcss-animate@1.0.7", "", { "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders" } }, "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA=="], - "thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="], - - "thenify-all": ["thenify-all@1.6.0", "", { "dependencies": { "thenify": ">= 3.1.0 < 4" } }, "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA=="], + "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], "tiny-invariant": ["tiny-invariant@1.3.3", "", {}, "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg=="], @@ -837,8 +780,6 @@ "ts-api-utils": ["ts-api-utils@2.0.1", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w=="], - "ts-interface-checker": ["ts-interface-checker@0.1.13", "", {}, "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="], - "tslib": ["tslib@2.8.0", "", {}, "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA=="], "turbo-stream": ["turbo-stream@2.4.0", "", {}, "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g=="], @@ -851,16 +792,12 @@ "undici-types": ["undici-types@6.20.0", "", {}, "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="], - "update-browserslist-db": ["update-browserslist-db@1.1.1", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.0" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A=="], - "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], "use-callback-ref": ["use-callback-ref@1.3.3", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg=="], "use-sidecar": ["use-sidecar@1.1.3", "", { "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ=="], - "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], - "victory-vendor": ["victory-vendor@36.9.2", "", { "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" } }, "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ=="], "vite": ["vite@6.1.1", "", { "dependencies": { "esbuild": "^0.24.2", "postcss": "^8.5.2", "rollup": "^4.30.1" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA=="], @@ -871,10 +808,6 @@ "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], - "wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], - - "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], - "yaml": ["yaml@2.6.0", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ=="], "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], @@ -893,44 +826,30 @@ "@humanfs/node/@humanwhocodes/retry": ["@humanwhocodes/retry@0.3.1", "", {}, "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA=="], - "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "@jridgewell/gen-mapping/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="], - "chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + "@jridgewell/trace-mapping/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="], + + "@tailwindcss/node/jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.7.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.7.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], + + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.0", "", { "dependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" }, "bundled": true }, "sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA=="], + + "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], + + "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.0", "", { "bundled": true }, "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA=="], + + "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], - "foreground-child/cross-spawn": ["cross-spawn@7.0.3", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="], - - "glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - - "postcss-load-config/lilconfig": ["lilconfig@3.1.2", "", {}, "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow=="], - "prop-types/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], - "string-width-cjs/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - - "string-width-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - - "strip-ansi-cjs/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - - "tailwindcss/postcss": ["postcss@8.4.49", "", { "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA=="], - - "wrap-ansi/ansi-styles": ["ansi-styles@6.2.1", "", {}, "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="], - - "wrap-ansi-cjs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - - "wrap-ansi-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], - - "glob/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], - - "string-width-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - - "tailwindcss/postcss/nanoid": ["nanoid@3.3.7", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="], - - "wrap-ansi-cjs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - - "wrap-ansi-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], } } diff --git a/package.json b/package.json index b7e3fad..d735459 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "i18next": "24.2.2", "lucide-react": "0.460.0", "luxon": "3.5.0", - "prettier-plugin-tailwindcss": "0.6.11", + "prettier-plugin-tailwindcss": "^0.7.2", "react": "19.0.0", "react-dom": "19.0.0", "react-i18next": "15.4.1", @@ -56,17 +56,17 @@ }, "devDependencies": { "@eslint/js": "9.20.0", + "@tailwindcss/postcss": "^4.1.18", "@types/node": "22.13.4", "@types/react": "19.0.10", "@types/react-dom": "19.0.4", "@vitejs/plugin-react-swc": "3.8.0", - "autoprefixer": "10.4.20", "eslint": "9.20.1", "eslint-plugin-react-hooks": "5.1.0", "eslint-plugin-react-refresh": "0.4.19", "globals": "15.15.0", "postcss": "8.5.3", - "tailwindcss": "3.4.17", + "tailwindcss": "^4.1.18", "typescript": "~5.6.3", "typescript-eslint": "8.24.1", "vite": "6.1.1" diff --git a/postcss.config.js b/postcss.config.js index 2e7af2b..fb05b56 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,6 +1,5 @@ export default { plugins: { - tailwindcss: {}, - autoprefixer: {}, + "@tailwindcss/postcss": {}, }, } diff --git a/src/components/CycleTransferStatsClient.tsx b/src/components/CycleTransferStatsClient.tsx index 476186f..0feec6e 100644 --- a/src/components/CycleTransferStatsClient.tsx +++ b/src/components/CycleTransferStatsClient.tsx @@ -23,7 +23,7 @@ export const CycleTransferStatsClient: React.FC = return (
setTooltipData(null)}> +
setTooltipData(null)}> diff --git a/src/components/GroupSwitch.tsx b/src/components/GroupSwitch.tsx index 960c95f..12dadc6 100644 --- a/src/components/GroupSwitch.tsx +++ b/src/components/GroupSwitch.tsx @@ -67,7 +67,7 @@ export default function GroupSwitch({ ref={tagRefs.current[index]} onClick={() => setCurrentTab(tab)} className={cn( - "relative cursor-pointer rounded-3xl px-2.5 py-[8px] text-[13px] font-[600] transition-all duration-500", + "relative cursor-pointer rounded-3xl px-2.5 py-[8px] text-[13px] font-semibold transition-all duration-500", currentTab === tab ? "text-black dark:text-white" : "text-stone-400 dark:text-stone-500", )} > diff --git a/src/components/Header.tsx b/src/components/Header.tsx index c9e671b..53c0173 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -96,7 +96,7 @@ function Header() { />
{isLoading ? : siteName || "NEZHA"} - +

{customDesc}

@@ -202,7 +202,7 @@ export function RefreshToast() { animate={{ opacity: 1, filter: "blur(0px)", scale: 1 }} exit={{ opacity: 0, filter: "blur(10px)", scale: 0.8 }} transition={{ type: "spring", duration: 0.8 }} - className="fixed left-1/2 -translate-x-1/2 top-8 z-[999] flex items-center justify-between gap-4 rounded-[50px] border-[1px] border-solid bg-white px-2 py-1.5 shadow-xl shadow-black/5 dark:border-stone-700 dark:bg-stone-800 dark:shadow-none" + className="fixed left-1/2 -translate-x-1/2 top-8 z-999 flex items-center justify-between gap-4 rounded-[50px] border border-solid bg-white px-2 py-1.5 shadow-xl shadow-black/5 dark:border-stone-700 dark:bg-stone-800 dark:shadow-none" >
diff --git a/src/components/NetworkChart.tsx b/src/components/NetworkChart.tsx index 8442aef..83c9b81 100644 --- a/src/components/NetworkChart.tsx +++ b/src/components/NetworkChart.tsx @@ -407,7 +407,7 @@ export const NetworkChartClient = React.memo(function NetworkChart({
{activeCharts.length > 0 && (
diff --git a/src/components/ServerOverview.tsx b/src/components/ServerOverview.tsx index 86d3987..a84f179 100644 --- a/src/components/ServerOverview.tsx +++ b/src/components/ServerOverview.tsx @@ -121,7 +121,7 @@ export default function ServerOverview({ online, offline, total, up, down, upSpe

- + {formatBytes(upSpeed)}/s

diff --git a/src/components/ServiceTrackerClient.tsx b/src/components/ServiceTrackerClient.tsx index b18afaf..c27457b 100644 --- a/src/components/ServiceTrackerClient.tsx +++ b/src/components/ServiceTrackerClient.tsx @@ -73,10 +73,10 @@ export const ServiceTrackerClient: React.FC = ({ days, clas className={cn( "relative flex-1 h-7 rounded-[4px] transition-all duration-200 cursor-help", "before:absolute before:inset-0 before:rounded-[4px] before:opacity-0 hover:before:opacity-100 before:bg-white/10 before:transition-opacity", - "after:absolute after:inset-0 after:rounded-[4px] after:shadow-[inset_0_1px_theme(colors.white/10%)]", + "after:absolute after:inset-0 after:rounded-[4px] after:shadow-[inset_0_1px_--theme(--color-white/10%)]", day.completed - ? "bg-gradient-to-b from-green-500/90 to-green-600 shadow-[0_1px_2px_theme(colors.green.600/30%)]" - : "bg-gradient-to-b from-red-500/80 to-red-600/90 shadow-[0_1px_2px_theme(colors.red.600/30%)]", + ? "bg-linear-to-b from-green-500/90 to-green-600 shadow-[0_1px_2px_--theme(--color-green-600/30%)]" + : "bg-linear-to-b from-red-500/80 to-red-600/90 shadow-[0_1px_2px_--theme(--color-red-600/30%)]", )} /> diff --git a/src/components/TabSwitch.tsx b/src/components/TabSwitch.tsx index c6c9613..19b9c20 100644 --- a/src/components/TabSwitch.tsx +++ b/src/components/TabSwitch.tsx @@ -17,7 +17,7 @@ export default function TabSwitch({ tabs, currentTab, setCurrentTab }: { tabs: s key={tab} onClick={() => setCurrentTab(tab)} className={cn( - "relative cursor-pointer rounded-3xl px-2.5 py-[8px] text-[13px] font-[600] transition-all duration-500", + "relative cursor-pointer rounded-3xl px-2.5 py-[8px] text-[13px] font-semibold transition-all duration-500", currentTab === tab ? "text-black dark:text-white" : "text-stone-400 dark:text-stone-500", )} > diff --git a/src/components/ui/animated-circular-progress-bar.tsx b/src/components/ui/animated-circular-progress-bar.tsx index 0df5380..a394de8 100644 --- a/src/components/ui/animated-circular-progress-bar.tsx +++ b/src/components/ui/animated-circular-progress-bar.tsx @@ -63,7 +63,7 @@ export default function AnimatedCircularProgressBar({ max = 100, min = 0, value strokeLinecap="round" strokeLinejoin="round" className={cn("opacity-100 stroke-current", { - "stroke-[var(--stroke-primary-color)]": primaryColor, + "stroke-(--stroke-primary-color)": primaryColor, })} style={ { diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx index cf62176..1b100d0 100644 --- a/src/components/ui/badge.tsx +++ b/src/components/ui/badge.tsx @@ -3,7 +3,7 @@ import { type VariantProps, cva } from "class-variance-authority" import * as React from "react" const badgeVariants = cva( - "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2", { variants: { variant: { diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx index 17248c8..489a3f3 100644 --- a/src/components/ui/button.tsx +++ b/src/components/ui/button.tsx @@ -4,7 +4,7 @@ import { type VariantProps, cva } from "class-variance-authority" import * as React from "react" const buttonVariants = cva( - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", { variants: { variant: { diff --git a/src/components/ui/chart.tsx b/src/components/ui/chart.tsx index 17c44ab..16328a4 100644 --- a/src/components/ui/chart.tsx +++ b/src/components/ui/chart.tsx @@ -44,7 +44,7 @@ const ChartContainer = React.forwardRef< data-chart={chartId} ref={ref} className={cn( - "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none", + "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden", className, )} {...props} @@ -150,7 +150,7 @@ const ChartTooltipContent = React.forwardRef<

@@ -178,7 +178,7 @@ const ChartTooltipContent = React.forwardRef< ) : ( !hideIndicator && (
{ - + {children} @@ -38,7 +38,7 @@ const CommandInput = React.forwardRef {children} - + Close diff --git a/src/components/ui/dropdown-menu.tsx b/src/components/ui/dropdown-menu.tsx index 6dd57f0..0ca884d 100644 --- a/src/components/ui/dropdown-menu.tsx +++ b/src/components/ui/dropdown-menu.tsx @@ -24,7 +24,7 @@ const DropdownMenuSubTrigger = React.forwardRef< (({ className, type, span]:line-clamp-1", + "flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1", className, )} {...props} @@ -57,7 +57,7 @@ const SelectContent = React.forwardRef< {children} @@ -89,7 +89,7 @@ const SelectItem = React.forwardRef ), diff --git a/src/components/ui/switch.tsx b/src/components/ui/switch.tsx index 7a59c05..fe8e251 100644 --- a/src/components/ui/switch.tsx +++ b/src/components/ui/switch.tsx @@ -6,7 +6,7 @@ const Switch = React.forwardRef, ({ className, ...props }, ref) => ( >(({ className, ...props }, ref) => ( - tr]:last:border-b-0", className)} {...props} /> + tr]:border-b-0", className)} {...props} /> )) TableFooter.displayName = "TableFooter" diff --git a/src/index.css b/src/index.css index 8e36c62..b6a52bc 100644 --- a/src/index.css +++ b/src/index.css @@ -1,20 +1,121 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; +@import "tailwindcss"; -:root { - font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; +@plugin "tailwindcss-animate"; - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; +@custom-variant dark (&:is(.dark *)); - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; +@theme { + --font-sans: var(--font-sans); + + --radius-lg: var(--radius); + --radius-md: calc(var(--radius) - 2px); + --radius-sm: calc(var(--radius) - 4px); + + --color-background: hsl(var(--background)); + --color-foreground: hsl(var(--foreground)); + + --color-card: hsl(var(--card)); + --color-card-foreground: hsl(var(--card-foreground)); + + --color-popover: hsl(var(--popover)); + --color-popover-foreground: hsl(var(--popover-foreground)); + + --color-primary: hsl(var(--primary)); + --color-primary-foreground: hsl(var(--primary-foreground)); + + --color-secondary: hsl(var(--secondary)); + --color-secondary-foreground: hsl(var(--secondary-foreground)); + + --color-muted: hsl(var(--muted)); + --color-muted-foreground: hsl(var(--muted-foreground)); + + --color-accent: hsl(var(--accent)); + --color-accent-foreground: hsl(var(--accent-foreground)); + + --color-destructive: hsl(var(--destructive)); + --color-destructive-foreground: hsl(var(--destructive-foreground)); + + --color-border: hsl(var(--border)); + --color-input: hsl(var(--input)); + --color-ring: hsl(var(--ring)); + + --color-chart-1: hsl(var(--chart-1)); + --color-chart-2: hsl(var(--chart-2)); + --color-chart-3: hsl(var(--chart-3)); + --color-chart-4: hsl(var(--chart-4)); + --color-chart-5: hsl(var(--chart-5)); + + --animate-accordion-down: accordion-down 0.2s ease-out; + --animate-accordion-up: accordion-up 0.2s ease-out; + + @keyframes accordion-down { + from { + height: 0; + } + to { + height: var(--radix-accordion-content-height); + } + } + @keyframes accordion-up { + from { + height: var(--radix-accordion-content-height); + } + to { + height: 0; + } + } +} + +/* + The default border color has changed to `currentcolor` in Tailwind CSS v4, + so we've added these compatibility styles to make sure everything still + looks the same as it did with Tailwind CSS v3. + + If we ever want to remove these styles, we need to add an explicit border + color utility to any element that depends on these defaults. +*/ +@layer base { + *, + ::after, + ::before, + ::backdrop, + ::file-selector-button { + border-color: var(--color-gray-200, currentcolor); + } +} + +@utility step { + counter-increment: step; + + &:before { + @apply border-background bg-muted absolute inline-flex h-9 w-9 items-center justify-center rounded-full border-4 text-center -indent-px font-mono text-base font-medium; + @apply mt-[-4px] ml-[-50px]; + content: counter(step); + } +} + +@layer utilities { + :root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } +} + +@layer base { + button:not(:disabled), + [role="button"]:not(:disabled) { + cursor: pointer; + } } @layer base { @@ -99,18 +200,6 @@ } } -@layer utilities { - .step { - counter-increment: step; - } - - .step:before { - @apply absolute inline-flex h-9 w-9 items-center justify-center rounded-full border-4 border-background bg-muted text-center -indent-px font-mono text-base font-medium; - @apply ml-[-50px] mt-[-4px]; - content: counter(step); - } -} - @media (max-width: 640px) { .container { @apply px-4; diff --git a/src/pages/Server.tsx b/src/pages/Server.tsx index 0cd7f7c..db0fe6a 100644 --- a/src/pages/Server.tsx +++ b/src/pages/Server.tsx @@ -245,7 +245,7 @@ export default function Servers() { className={cn( "rounded-[50px] bg-white dark:bg-stone-800 cursor-pointer p-[10px] transition-all border dark:border-none border-stone-200 dark:border-stone-700 hover:bg-stone-100 dark:hover:bg-stone-700 shadow-[inset_0_1px_0_rgba(255,255,255,0.2)]", { - "shadow-[inset_0_1px_0_rgba(0,0,0,0.2)] !bg-blue-600 hover:!bg-blue-600 border-blue-600 dark:border-blue-600": showMap === "1", + "shadow-[inset_0_1px_0_rgba(0,0,0,0.2)] bg-blue-600! hover:bg-blue-600! border-blue-600 dark:border-blue-600": showMap === "1", "text-white": showMap === "1", }, { @@ -267,7 +267,7 @@ export default function Servers() { className={cn( "rounded-[50px] bg-white dark:bg-stone-800 cursor-pointer p-[10px] transition-all border dark:border-none border-stone-200 dark:border-stone-700 hover:bg-stone-100 dark:hover:bg-stone-700 shadow-[inset_0_1px_0_rgba(255,255,255,0.2)]", { - "shadow-[inset_0_1px_0_rgba(0,0,0,0.2)] !bg-blue-600 hover:!bg-blue-600 border-blue-600 dark:border-blue-600": showServices === "1", + "shadow-[inset_0_1px_0_rgba(0,0,0,0.2)] bg-blue-600! hover:bg-blue-600! border-blue-600 dark:border-blue-600": showServices === "1", "text-white": showServices === "1", }, { @@ -289,7 +289,7 @@ export default function Servers() { className={cn( "rounded-[50px] bg-white dark:bg-stone-800 cursor-pointer p-[10px] transition-all border dark:border-none border-stone-200 dark:border-stone-700 hover:bg-stone-100 dark:hover:bg-stone-700 shadow-[inset_0_1px_0_rgba(255,255,255,0.2)]", { - "shadow-[inset_0_1px_0_rgba(0,0,0,0.2)] !bg-blue-600 hover:!bg-blue-600 border-blue-600 dark:border-blue-600": inline === "1", + "shadow-[inset_0_1px_0_rgba(0,0,0,0.2)] bg-blue-600! hover:bg-blue-600! border-blue-600 dark:border-blue-600": inline === "1", "text-white": inline === "1", }, { @@ -309,7 +309,7 @@ export default function Servers() {
+ +
+ +
+
From 3bfd4ef4d20a9a8bca90b191274080cc87d11738 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Sun, 28 Dec 2025 16:33:57 +0800 Subject: [PATCH 15/46] fix: prevent color fade during theme transitions --- src/components/ThemeProvider.tsx | 10 +++++++++- src/index.css | 9 +++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/components/ThemeProvider.tsx b/src/components/ThemeProvider.tsx index 000d8f6..8eed477 100644 --- a/src/components/ThemeProvider.tsx +++ b/src/components/ThemeProvider.tsx @@ -26,6 +26,7 @@ export function ThemeProvider({ children, storageKey = "vite-ui-theme" }: ThemeP useEffect(() => { const root = window.document.documentElement + root.classList.add("disable-transitions") root.classList.remove("light", "dark") if (theme === "system") { @@ -34,12 +35,19 @@ export function ThemeProvider({ children, storageKey = "vite-ui-theme" }: ThemeP root.classList.add(systemTheme) const themeColor = systemTheme === "dark" ? "hsl(30 15% 8%)" : "hsl(0 0% 98%)" document.querySelector('meta[name="theme-color"]')?.setAttribute("content", themeColor) - return + const timeoutId = window.setTimeout(() => { + root.classList.remove("disable-transitions") + }, 0) + return () => window.clearTimeout(timeoutId) } root.classList.add(theme) const themeColor = theme === "dark" ? "hsl(30 15% 8%)" : "hsl(0 0% 98%)" document.querySelector('meta[name="theme-color"]')?.setAttribute("content", themeColor) + const timeoutId = window.setTimeout(() => { + root.classList.remove("disable-transitions") + }, 0) + return () => window.clearTimeout(timeoutId) }, [theme]) const value = { diff --git a/src/index.css b/src/index.css index f961429..18ee2e1 100644 --- a/src/index.css +++ b/src/index.css @@ -201,6 +201,15 @@ } } +@layer base { + /* Avoid color fade when toggling themes. */ + html.disable-transitions *, + html.disable-transitions *::before, + html.disable-transitions *::after { + transition: none !important; + } +} + @media (max-width: 640px) { .container { @apply px-4; From 29e349505dbab63882b3e84186e426619a3ed967 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Sun, 28 Dec 2025 18:05:02 +0800 Subject: [PATCH 16/46] perf: use biome --- .prettierrc.json | 12 - biome.json | 52 + bun.lock | 286 +-- changelogithub.config.json | 26 +- components.json | 36 +- eslint.config.js | 28 - index.html | 10 +- package.json | 138 +- postcss.config.js | 8 +- public/manifest.json | 30 +- scripts/get-version.js | 6 +- src/App.tsx | 216 +- src/components/AnimatedCount.tsx | 166 +- src/components/CycleTransferStats.tsx | 106 +- src/components/CycleTransferStatsClient.tsx | 157 +- src/components/DashCommand.tsx | 224 +- src/components/ErrorBoundary.tsx | 49 +- src/components/Footer.tsx | 105 +- src/components/GlobalMap.tsx | 373 +-- src/components/GroupSwitch.tsx | 180 +- src/components/Header.tsx | 590 ++--- src/components/Icon.tsx | 54 +- src/components/LanguageSwitcher.tsx | 128 +- src/components/MapTooltip.tsx | 124 +- src/components/NetworkChart.tsx | 1066 +++++---- src/components/NetworkChartLoading.tsx | 40 +- src/components/PlanInfo.tsx | 140 +- src/components/RemainPercentBar.tsx | 36 +- src/components/SearchButton.tsx | 45 +- src/components/ServerCard.tsx | 458 ++-- src/components/ServerCardInline.tsx | 369 +-- src/components/ServerDetailChart.tsx | 2034 ++++++++++------- src/components/ServerDetailOverview.tsx | 647 +++--- src/components/ServerDetailSummary.tsx | 177 +- src/components/ServerFlag.tsx | 76 +- src/components/ServerOverview.tsx | 313 +-- src/components/ServerUsageBar.tsx | 30 +- src/components/ServiceTracker.tsx | 155 +- src/components/ServiceTrackerClient.tsx | 260 ++- src/components/TabSwitch.tsx | 96 +- src/components/ThemeColorManager.tsx | 56 +- src/components/ThemeProvider.tsx | 127 +- src/components/ThemeSwitcher.tsx | 124 +- src/components/billingInfo.tsx | 157 +- src/components/loading/Loader.tsx | 56 +- .../loading/ServerDetailLoading.tsx | 60 +- src/components/motion/framer-lazy-feature.ts | 2 +- src/components/motion/motion-provider.tsx | 17 +- src/components/ui/accordion.tsx | 82 +- .../ui/animated-circular-progress-bar.tsx | 184 +- src/components/ui/badge.tsx | 49 +- src/components/ui/button.tsx | 85 +- src/components/ui/card.tsx | 109 +- src/components/ui/chart.tsx | 537 +++-- src/components/ui/checkbox.tsx | 47 +- src/components/ui/command.tsx | 230 +- src/components/ui/dialog.tsx | 163 +- src/components/ui/dropdown-menu.tsx | 305 +-- src/components/ui/input.tsx | 39 +- src/components/ui/label.tsx | 29 +- src/components/ui/popover.tsx | 44 +- src/components/ui/progress.tsx | 42 +- src/components/ui/select.tsx | 239 +- src/components/ui/separator.tsx | 42 +- src/components/ui/skeleton.tsx | 16 +- src/components/ui/switch.tsx | 47 +- src/components/ui/table.tsx | 148 +- src/components/ui/tooltip.tsx | 40 +- src/context/command-context.ts | 14 +- src/context/command-provider.tsx | 36 +- src/context/sort-context.ts | 45 +- src/context/sort-provider.tsx | 16 +- src/context/status-context.ts | 12 +- src/context/status-provider.tsx | 12 +- src/context/tooltip-context.ts | 26 +- src/context/tooltip-provider.tsx | 12 +- src/context/websocket-context.ts | 28 +- src/context/websocket-provider.tsx | 232 +- src/hooks/use-background.ts | 100 +- src/hooks/use-chart-history.ts | 38 +- src/hooks/use-command.tsx | 14 +- src/hooks/use-sort.tsx | 14 +- src/hooks/use-status.tsx | 14 +- src/hooks/use-theme.ts | 16 +- src/hooks/use-tooltip.tsx | 18 +- src/hooks/use-websocket-context.ts | 18 +- src/i18n.js | 86 +- src/index.css | 500 ++-- src/lib/format.ts | 22 +- src/lib/geo-json-string.ts | 2 +- src/lib/geo-limit.ts | 411 ++-- src/lib/inject.ts | 186 +- src/lib/logo-class.tsx | 272 +-- src/lib/nezha-api.ts | 98 +- src/lib/utils.ts | 540 ++--- src/locales/de/translation.json | 240 +- src/locales/en/translation.json | 270 +-- src/locales/es/translation.json | 270 +-- src/locales/id/translation.json | 50 +- src/locales/ru/translation.json | 270 +-- src/locales/ta/translation.json | 240 +- src/locales/uk/translation.json | 10 +- src/locales/zh-CN/translation.json | 272 +-- src/locales/zh-TW/translation.json | 276 +-- src/main.tsx | 100 +- src/pages/ErrorPage.tsx | 26 +- src/pages/NotFound.tsx | 34 +- src/pages/Server.tsx | 795 ++++--- src/pages/ServerDetail.tsx | 87 +- src/types/css.d.ts | 4 +- src/types/nezha-api.ts | 224 +- tsconfig.app.json | 52 +- tsconfig.json | 19 +- tsconfig.node.json | 40 +- vite.config.ts | 122 +- 115 files changed, 9924 insertions(+), 8381 deletions(-) delete mode 100644 .prettierrc.json create mode 100644 biome.json delete mode 100644 eslint.config.js diff --git a/.prettierrc.json b/.prettierrc.json deleted file mode 100644 index afdf6ef..0000000 --- a/.prettierrc.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "semi": false, - "singleQuote": false, - "printWidth": 150, - "tabWidth": 2, - "trailingComma": "all", - "importOrder": ["^@core/(.*)$", "^@server/(.*)$", "^@ui/(.*)$", "^[./]"], - "importOrderSeparation": true, - "importOrderSortSpecifiers": true, - "endOfLine": "auto", - "plugins": ["prettier-plugin-tailwindcss", "@trivago/prettier-plugin-sort-imports"] -} diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..4f42c6f --- /dev/null +++ b/biome.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://biomejs.dev/schemas/2.3.10/schema.json", + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true + }, + "files": { + "includes": ["**", "!!**/dist"] + }, + "formatter": { + "enabled": true, + "indentStyle": "tab" + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "suspicious": { + "noArrayIndexKey": "off", + "noExplicitAny": "off" + }, + "security": { + "noDangerouslySetInnerHtml": "off" + }, + "a11y": { + "useButtonType": "off", + "noSvgWithoutTitle": "off", + "useKeyWithClickEvents": "off", + "noStaticElementInteractions": "off" + } + } + }, + "css": { + "parser": { + "tailwindDirectives": true + } + }, + "javascript": { + "formatter": { + "quoteStyle": "double" + } + }, + "assist": { + "enabled": true, + "actions": { + "source": { + "organizeImports": "on" + } + } + } +} diff --git a/bun.lock b/bun.lock index 587cfc3..6504be2 100644 --- a/bun.lock +++ b/bun.lock @@ -21,7 +21,6 @@ "@tanstack/react-query": "5.66.7", "@tanstack/react-query-devtools": "5.66.7", "@tanstack/react-table": "8.21.2", - "@trivago/prettier-plugin-sort-imports": "5.2.2", "@types/d3-geo": "3.1.0", "@types/luxon": "3.4.2", "class-variance-authority": "0.7.1", @@ -35,7 +34,6 @@ "i18next": "24.2.2", "lucide-react": "0.460.0", "luxon": "3.5.0", - "prettier-plugin-tailwindcss": "^0.7.2", "react": "19.0.0", "react-dom": "19.0.0", "react-i18next": "15.4.1", @@ -46,20 +44,16 @@ "tailwindcss-animate": "^1.0.7", }, "devDependencies": { - "@eslint/js": "9.20.0", + "@biomejs/biome": "2.3.10", "@tailwindcss/postcss": "^4.1.18", "@types/node": "22.13.4", "@types/react": "19.0.10", "@types/react-dom": "19.0.4", "@vitejs/plugin-react-swc": "3.8.0", - "eslint": "9.20.1", - "eslint-plugin-react-hooks": "5.1.0", - "eslint-plugin-react-refresh": "0.4.19", "globals": "15.15.0", "postcss": "8.5.3", "tailwindcss": "^4.1.18", "typescript": "~5.6.3", - "typescript-eslint": "8.24.1", "vite": "6.1.1", }, }, @@ -67,23 +61,25 @@ "packages": { "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], - "@babel/code-frame": ["@babel/code-frame@7.26.2", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ=="], - - "@babel/generator": ["@babel/generator@7.26.5", "", { "dependencies": { "@babel/parser": "^7.26.5", "@babel/types": "^7.26.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" } }, "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw=="], - - "@babel/helper-string-parser": ["@babel/helper-string-parser@7.25.9", "", {}, "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA=="], - - "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.25.9", "", {}, "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ=="], - - "@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="], - "@babel/runtime": ["@babel/runtime@7.26.0", "", { "dependencies": { "regenerator-runtime": "^0.14.0" } }, "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw=="], - "@babel/template": ["@babel/template@7.25.9", "", { "dependencies": { "@babel/code-frame": "^7.25.9", "@babel/parser": "^7.25.9", "@babel/types": "^7.25.9" } }, "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg=="], + "@biomejs/biome": ["@biomejs/biome@2.3.10", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.10", "@biomejs/cli-darwin-x64": "2.3.10", "@biomejs/cli-linux-arm64": "2.3.10", "@biomejs/cli-linux-arm64-musl": "2.3.10", "@biomejs/cli-linux-x64": "2.3.10", "@biomejs/cli-linux-x64-musl": "2.3.10", "@biomejs/cli-win32-arm64": "2.3.10", "@biomejs/cli-win32-x64": "2.3.10" }, "bin": { "biome": "bin/biome" } }, "sha512-/uWSUd1MHX2fjqNLHNL6zLYWBbrJeG412/8H7ESuK8ewoRoMPUgHDebqKrPTx/5n6f17Xzqc9hdg3MEqA5hXnQ=="], - "@babel/traverse": ["@babel/traverse@7.26.7", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.5", "@babel/parser": "^7.26.7", "@babel/template": "^7.25.9", "@babel/types": "^7.26.7", "debug": "^4.3.1", "globals": "^11.1.0" } }, "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA=="], + "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.10", "", { "os": "darwin", "cpu": "arm64" }, "sha512-M6xUjtCVnNGFfK7HMNKa593nb7fwNm43fq1Mt71kpLpb+4mE7odO8W/oWVDyBVO4ackhresy1ZYO7OJcVo/B7w=="], - "@babel/types": ["@babel/types@7.26.7", "", { "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg=="], + "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.3.10", "", { "os": "darwin", "cpu": "x64" }, "sha512-Vae7+V6t/Avr8tVbFNjnFSTKZogZHFYl7MMH62P/J1kZtr0tyRQ9Fe0onjqjS2Ek9lmNLmZc/VR5uSekh+p1fg=="], + + "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.3.10", "", { "os": "linux", "cpu": "arm64" }, "sha512-hhPw2V3/EpHKsileVOFynuWiKRgFEV48cLe0eA+G2wO4SzlwEhLEB9LhlSrVeu2mtSn205W283LkX7Fh48CaxA=="], + + "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.3.10", "", { "os": "linux", "cpu": "arm64" }, "sha512-B9DszIHkuKtOH2IFeeVkQmSMVUjss9KtHaNXquYYWCjH8IstNgXgx5B0aSBQNr6mn4RcKKRQZXn9Zu1rM3O0/A=="], + + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.3.10", "", { "os": "linux", "cpu": "x64" }, "sha512-wwAkWD1MR95u+J4LkWP74/vGz+tRrIQvr8kfMMJY8KOQ8+HMVleREOcPYsQX82S7uueco60L58Wc6M1I9WA9Dw=="], + + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.3.10", "", { "os": "linux", "cpu": "x64" }, "sha512-QTfHZQh62SDFdYc2nfmZFuTm5yYb4eO1zwfB+90YxUumRCR171tS1GoTX5OD0wrv4UsziMPmrePMtkTnNyYG3g=="], + + "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.3.10", "", { "os": "win32", "cpu": "arm64" }, "sha512-o7lYc9n+CfRbHvkjPhm8s9FgbKdYZu5HCcGVMItLjz93EhgJ8AM44W+QckDqLA9MKDNFrR8nPbO4b73VC5kGGQ=="], + + "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.3.10", "", { "os": "win32", "cpu": "x64" }, "sha512-pHEFgq7dUEsKnqG9mx9bXihxGI49X+ar+UBrEIj3Wqj3UCZp1rNgV+OoyjFgcXsjCWpuEAF4VJdkZr3TrWdCbQ=="], "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.24.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA=="], @@ -135,22 +131,6 @@ "@esbuild/win32-x64": ["@esbuild/win32-x64@0.24.2", "", { "os": "win32", "cpu": "x64" }, "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg=="], - "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.4.0", "", { "dependencies": { "eslint-visitor-keys": "^3.3.0" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA=="], - - "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.1", "", {}, "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ=="], - - "@eslint/config-array": ["@eslint/config-array@0.19.2", "", { "dependencies": { "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w=="], - - "@eslint/core": ["@eslint/core@0.11.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA=="], - - "@eslint/eslintrc": ["@eslint/eslintrc@3.3.0", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ=="], - - "@eslint/js": ["@eslint/js@9.20.0", "", {}, "sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ=="], - - "@eslint/object-schema": ["@eslint/object-schema@2.1.6", "", {}, "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA=="], - - "@eslint/plugin-kit": ["@eslint/plugin-kit@0.2.7", "", { "dependencies": { "@eslint/core": "^0.12.0", "levn": "^0.4.1" } }, "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g=="], - "@floating-ui/core": ["@floating-ui/core@1.6.8", "", { "dependencies": { "@floating-ui/utils": "^0.2.8" } }, "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA=="], "@floating-ui/dom": ["@floating-ui/dom@1.6.11", "", { "dependencies": { "@floating-ui/core": "^1.6.0", "@floating-ui/utils": "^0.2.8" } }, "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ=="], @@ -163,14 +143,6 @@ "@heroicons/react": ["@heroicons/react@2.2.0", "", { "peerDependencies": { "react": ">= 16 || ^19.0.0-rc" } }, "sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ=="], - "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], - - "@humanfs/node": ["@humanfs/node@0.16.6", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" } }, "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw=="], - - "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], - - "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.2", "", {}, "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ=="], - "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.5", "", { "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg=="], "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], @@ -183,12 +155,6 @@ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.25", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="], - "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], - - "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], - - "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], - "@radix-ui/number": ["@radix-ui/number@1.1.0", "", {}, "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ=="], "@radix-ui/primitive": ["@radix-ui/primitive@1.1.1", "", {}, "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA=="], @@ -373,8 +339,6 @@ "@tanstack/table-core": ["@tanstack/table-core@8.21.2", "", {}, "sha512-uvXk/U4cBiFMxt+p9/G7yUWI/UbHYbyghLCjlpWZ3mLeIZiUBSKcUnw9UnKkdRz7Z/N4UBuFLWQdJCjUe7HjvA=="], - "@trivago/prettier-plugin-sort-imports": ["@trivago/prettier-plugin-sort-imports@5.2.2", "", { "dependencies": { "@babel/generator": "^7.26.5", "@babel/parser": "^7.26.7", "@babel/traverse": "^7.26.7", "@babel/types": "^7.26.7", "javascript-natural-sort": "^0.7.1", "lodash": "^4.17.21" }, "peerDependencies": { "@vue/compiler-sfc": "3.x", "prettier": "2.x - 3.x", "prettier-plugin-svelte": "3.x", "svelte": "4.x || 5.x" }, "optionalPeers": ["@vue/compiler-sfc", "prettier-plugin-svelte", "svelte"] }, "sha512-fYDQA9e6yTNmA13TLVSA+WMQRc5Bn/c0EUBditUHNfMMxN7M82c38b1kEggVE3pLpZ0FwkwJkUEKMiOi52JXFA=="], - "@types/cookie": ["@types/cookie@0.6.0", "", {}, "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="], "@types/d3-array": ["@types/d3-array@3.2.1", "", {}, "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg=="], @@ -401,8 +365,6 @@ "@types/geojson": ["@types/geojson@7946.0.14", "", {}, "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg=="], - "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], - "@types/luxon": ["@types/luxon@3.4.2", "", {}, "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA=="], "@types/node": ["@types/node@22.13.4", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg=="], @@ -411,64 +373,20 @@ "@types/react-dom": ["@types/react-dom@19.0.4", "", { "peerDependencies": { "@types/react": "^19.0.0" } }, "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg=="], - "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.24.1", "", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.24.1", "@typescript-eslint/type-utils": "8.24.1", "@typescript-eslint/utils": "8.24.1", "@typescript-eslint/visitor-keys": "8.24.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", "ts-api-utils": "^2.0.1" }, "peerDependencies": { "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.8.0" } }, "sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA=="], - - "@typescript-eslint/parser": ["@typescript-eslint/parser@8.24.1", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.24.1", "@typescript-eslint/types": "8.24.1", "@typescript-eslint/typescript-estree": "8.24.1", "@typescript-eslint/visitor-keys": "8.24.1", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.8.0" } }, "sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ=="], - - "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.24.1", "", { "dependencies": { "@typescript-eslint/types": "8.24.1", "@typescript-eslint/visitor-keys": "8.24.1" } }, "sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q=="], - - "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.24.1", "", { "dependencies": { "@typescript-eslint/typescript-estree": "8.24.1", "@typescript-eslint/utils": "8.24.1", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.8.0" } }, "sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw=="], - - "@typescript-eslint/types": ["@typescript-eslint/types@8.24.1", "", {}, "sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A=="], - - "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.24.1", "", { "dependencies": { "@typescript-eslint/types": "8.24.1", "@typescript-eslint/visitor-keys": "8.24.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.0.1" }, "peerDependencies": { "typescript": ">=4.8.4 <5.8.0" } }, "sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg=="], - - "@typescript-eslint/utils": ["@typescript-eslint/utils@8.24.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@typescript-eslint/scope-manager": "8.24.1", "@typescript-eslint/types": "8.24.1", "@typescript-eslint/typescript-estree": "8.24.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.8.0" } }, "sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ=="], - - "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.24.1", "", { "dependencies": { "@typescript-eslint/types": "8.24.1", "eslint-visitor-keys": "^4.2.0" } }, "sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg=="], - "@vitejs/plugin-react-swc": ["@vitejs/plugin-react-swc@3.8.0", "", { "dependencies": { "@swc/core": "^1.10.15" }, "peerDependencies": { "vite": "^4 || ^5 || ^6" } }, "sha512-T4sHPvS+DIqDP51ifPqa9XIRAz/kIvIi8oXcnOZZgHmMotgmmdxe/DD5tMFlt5nuIRzT0/QuiwmKlH0503Aapw=="], - "acorn": ["acorn@8.14.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA=="], - - "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], - - "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], - - "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - - "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - "aria-hidden": ["aria-hidden@1.2.4", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A=="], - "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - - "brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="], - - "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], - - "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], - - "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "class-variance-authority": ["class-variance-authority@0.7.1", "", { "dependencies": { "clsx": "^2.1.1" } }, "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg=="], "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], "cmdk": ["cmdk@1.1.1", "", { "dependencies": { "@radix-ui/react-compose-refs": "^1.1.1", "@radix-ui/react-dialog": "^1.1.6", "@radix-ui/react-id": "^1.1.0", "@radix-ui/react-primitive": "^2.0.2" }, "peerDependencies": { "react": "^18 || ^19 || ^19.0.0-rc", "react-dom": "^18 || ^19 || ^19.0.0-rc" } }, "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg=="], - "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], - - "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], - - "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], - "cookie": ["cookie@1.0.2", "", {}, "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA=="], "country-flag-icons": ["country-flag-icons@1.5.18", "", {}, "sha512-z+Uzesi8u8IdkViqqbzzbkf3+a7WJpcET5B7sPwTg7GXqPYpVEgNlZ/FC3l8KO4mEf+mNkmzKLppKTN4PlCJEQ=="], - "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], - "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], "d3-array": ["d3-array@3.2.4", "", { "dependencies": { "internmap": "1 - 2" } }, "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg=="], @@ -497,12 +415,8 @@ "dayjs": ["dayjs@1.11.13", "", {}, "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="], - "debug": ["debug@4.3.7", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ=="], - "decimal.js-light": ["decimal.js-light@2.5.1", "", {}, "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg=="], - "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], - "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], "detect-node-es": ["detect-node-es@1.1.0", "", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="], @@ -515,110 +429,32 @@ "esbuild": ["esbuild@0.24.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.24.2", "@esbuild/android-arm": "0.24.2", "@esbuild/android-arm64": "0.24.2", "@esbuild/android-x64": "0.24.2", "@esbuild/darwin-arm64": "0.24.2", "@esbuild/darwin-x64": "0.24.2", "@esbuild/freebsd-arm64": "0.24.2", "@esbuild/freebsd-x64": "0.24.2", "@esbuild/linux-arm": "0.24.2", "@esbuild/linux-arm64": "0.24.2", "@esbuild/linux-ia32": "0.24.2", "@esbuild/linux-loong64": "0.24.2", "@esbuild/linux-mips64el": "0.24.2", "@esbuild/linux-ppc64": "0.24.2", "@esbuild/linux-riscv64": "0.24.2", "@esbuild/linux-s390x": "0.24.2", "@esbuild/linux-x64": "0.24.2", "@esbuild/netbsd-arm64": "0.24.2", "@esbuild/netbsd-x64": "0.24.2", "@esbuild/openbsd-arm64": "0.24.2", "@esbuild/openbsd-x64": "0.24.2", "@esbuild/sunos-x64": "0.24.2", "@esbuild/win32-arm64": "0.24.2", "@esbuild/win32-ia32": "0.24.2", "@esbuild/win32-x64": "0.24.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA=="], - "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], - - "eslint": ["eslint@9.20.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", "@eslint/core": "^0.11.0", "@eslint/eslintrc": "^3.2.0", "@eslint/js": "9.20.0", "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.1", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.2.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g=="], - - "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@5.1.0", "", { "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw=="], - - "eslint-plugin-react-refresh": ["eslint-plugin-react-refresh@0.4.19", "", { "peerDependencies": { "eslint": ">=8.40" } }, "sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ=="], - - "eslint-scope": ["eslint-scope@8.3.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ=="], - - "eslint-visitor-keys": ["eslint-visitor-keys@4.2.0", "", {}, "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw=="], - - "espree": ["espree@10.3.0", "", { "dependencies": { "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.0" } }, "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg=="], - - "esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], - - "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], - - "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], - - "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], - "eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="], - "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], - "fast-equals": ["fast-equals@5.0.1", "", {}, "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ=="], - "fast-glob": ["fast-glob@3.3.2", "", { "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" } }, "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow=="], - - "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], - - "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], - - "fastq": ["fastq@1.17.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w=="], - - "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], - - "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], - - "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], - - "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], - - "flatted": ["flatted@3.3.1", "", {}, "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw=="], - "framer-motion": ["framer-motion@12.4.5", "", { "dependencies": { "motion-dom": "^12.4.5", "motion-utils": "^12.0.0", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-9+8wglyIJFeUpVg4U8Ohvoo5x7zmvRqawWXhEUThcYdwL/5A1/OkLvQo68Zz5taUE11HKG/Ex+LPaN2+fMkRdA=="], "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], "get-nonce": ["get-nonce@1.0.1", "", {}, "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="], - "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], - "globals": ["globals@15.15.0", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="], "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], - "graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], - - "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], - "html-parse-stringify": ["html-parse-stringify@3.0.1", "", { "dependencies": { "void-elements": "3.1.0" } }, "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg=="], "i18n-iso-countries": ["i18n-iso-countries@7.14.0", "", { "dependencies": { "diacritics": "1.3.0" } }, "sha512-nXHJZYtNrfsi1UQbyRqm3Gou431elgLjKl//CYlnBGt5aTWdRPH1PiS2T/p/n8Q8LnqYqzQJik3Q7mkwvLokeg=="], "i18next": ["i18next@24.2.2", "", { "dependencies": { "@babel/runtime": "^7.23.2" }, "peerDependencies": { "typescript": "^5" }, "optionalPeers": ["typescript"] }, "sha512-NE6i86lBCKRYZa5TaUDkU5S4HFgLIEJRLr3Whf2psgaxBleQ2LC1YW1Vc+SCgkAW7VEzndT6al6+CzegSUHcTQ=="], - "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], - - "import-fresh": ["import-fresh@3.3.0", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw=="], - - "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], - "internmap": ["internmap@2.0.3", "", {}, "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="], - "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], - - "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], - - "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], - - "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], - - "javascript-natural-sort": ["javascript-natural-sort@0.7.1", "", {}, "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw=="], - "jiti": ["jiti@1.21.6", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w=="], "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], - "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], - - "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], - - "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], - - "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], - - "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], - - "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], - - "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], - "lightningcss": ["lightningcss@1.30.2", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.30.2", "lightningcss-darwin-arm64": "1.30.2", "lightningcss-darwin-x64": "1.30.2", "lightningcss-freebsd-x64": "1.30.2", "lightningcss-linux-arm-gnueabihf": "1.30.2", "lightningcss-linux-arm64-gnu": "1.30.2", "lightningcss-linux-arm64-musl": "1.30.2", "lightningcss-linux-x64-gnu": "1.30.2", "lightningcss-linux-x64-musl": "1.30.2", "lightningcss-win32-arm64-msvc": "1.30.2", "lightningcss-win32-x64-msvc": "1.30.2" } }, "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ=="], "lightningcss-android-arm64": ["lightningcss-android-arm64@1.30.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A=="], @@ -643,12 +479,8 @@ "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.2", "", { "os": "win32", "cpu": "x64" }, "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw=="], - "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], - "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], - "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], - "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], "lucide-react": ["lucide-react@0.460.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" } }, "sha512-BVtq/DykVeIvRTJvRAgCsOwaGL8Un3Bxh8MbDxMhEWlZay3T4IpEKDEpwt5KZ0KJMHzgm6jrltxlT5eXOWXDHg=="], @@ -657,54 +489,20 @@ "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], - "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], - - "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], - - "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "motion-dom": ["motion-dom@12.5.0", "", { "dependencies": { "motion-utils": "^12.5.0" } }, "sha512-uH2PETDh7m+Hjd1UQQ56yHqwn83SAwNjimNPE/kC+Kds0t4Yh7+29rfo5wezVFpPOv57U4IuWved5d1x0kNhbQ=="], "motion-utils": ["motion-utils@12.5.0", "", {}, "sha512-+hFFzvimn0sBMP9iPxBa9OtRX35ZQ3py0UHnb8U29VD+d8lQ8zH3dTygJWqK7av2v6yhg7scj9iZuvTS0f4+SA=="], - "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "nanoid": ["nanoid@3.3.8", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w=="], - "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], - "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], - "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], - - "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], - - "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], - - "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], - - "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], - - "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], - "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], - "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - "postcss": ["postcss@8.5.3", "", { "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A=="], - "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], - - "prettier": ["prettier@3.4.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ=="], - - "prettier-plugin-tailwindcss": ["prettier-plugin-tailwindcss@0.7.2", "", { "peerDependencies": { "@ianvs/prettier-plugin-sort-imports": "*", "@prettier/plugin-hermes": "*", "@prettier/plugin-oxc": "*", "@prettier/plugin-pug": "*", "@shopify/prettier-plugin-liquid": "*", "@trivago/prettier-plugin-sort-imports": "*", "@zackad/prettier-plugin-twig": "*", "prettier": "^3.0", "prettier-plugin-astro": "*", "prettier-plugin-css-order": "*", "prettier-plugin-jsdoc": "*", "prettier-plugin-marko": "*", "prettier-plugin-multiline-arrays": "*", "prettier-plugin-organize-attributes": "*", "prettier-plugin-organize-imports": "*", "prettier-plugin-sort-imports": "*", "prettier-plugin-svelte": "*" }, "optionalPeers": ["@ianvs/prettier-plugin-sort-imports", "@prettier/plugin-hermes", "@prettier/plugin-oxc", "@prettier/plugin-pug", "@shopify/prettier-plugin-liquid", "@trivago/prettier-plugin-sort-imports", "@zackad/prettier-plugin-twig", "prettier-plugin-astro", "prettier-plugin-css-order", "prettier-plugin-jsdoc", "prettier-plugin-marko", "prettier-plugin-multiline-arrays", "prettier-plugin-organize-attributes", "prettier-plugin-organize-imports", "prettier-plugin-sort-imports", "prettier-plugin-svelte"] }, "sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA=="], - "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], - "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], - - "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], - "react": ["react@19.0.0", "", {}, "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ=="], "react-dom": ["react-dom@19.0.0", "", { "dependencies": { "scheduler": "^0.25.0" }, "peerDependencies": { "react": "^19.0.0" } }, "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ=="], @@ -733,32 +531,16 @@ "regenerator-runtime": ["regenerator-runtime@0.14.1", "", {}, "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="], - "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], - - "reusify": ["reusify@1.0.4", "", {}, "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="], - "rollup": ["rollup@4.34.6", "", { "dependencies": { "@types/estree": "1.0.6" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.34.6", "@rollup/rollup-android-arm64": "4.34.6", "@rollup/rollup-darwin-arm64": "4.34.6", "@rollup/rollup-darwin-x64": "4.34.6", "@rollup/rollup-freebsd-arm64": "4.34.6", "@rollup/rollup-freebsd-x64": "4.34.6", "@rollup/rollup-linux-arm-gnueabihf": "4.34.6", "@rollup/rollup-linux-arm-musleabihf": "4.34.6", "@rollup/rollup-linux-arm64-gnu": "4.34.6", "@rollup/rollup-linux-arm64-musl": "4.34.6", "@rollup/rollup-linux-loongarch64-gnu": "4.34.6", "@rollup/rollup-linux-powerpc64le-gnu": "4.34.6", "@rollup/rollup-linux-riscv64-gnu": "4.34.6", "@rollup/rollup-linux-s390x-gnu": "4.34.6", "@rollup/rollup-linux-x64-gnu": "4.34.6", "@rollup/rollup-linux-x64-musl": "4.34.6", "@rollup/rollup-win32-arm64-msvc": "4.34.6", "@rollup/rollup-win32-ia32-msvc": "4.34.6", "@rollup/rollup-win32-x64-msvc": "4.34.6", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ=="], - "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], - "scheduler": ["scheduler@0.25.0", "", {}, "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA=="], - "semver": ["semver@7.6.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="], - "set-cookie-parser": ["set-cookie-parser@2.7.1", "", {}, "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ=="], - "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], - - "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], - "sonner": ["sonner@1.7.4", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw=="], "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], - "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], - - "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], - "tailwind-merge": ["tailwind-merge@2.6.0", "", {}, "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA=="], "tailwindcss": ["tailwindcss@4.1.18", "", {}, "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw=="], @@ -769,24 +551,14 @@ "tiny-invariant": ["tiny-invariant@1.3.3", "", {}, "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg=="], - "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], - - "ts-api-utils": ["ts-api-utils@2.0.1", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w=="], - "tslib": ["tslib@2.8.0", "", {}, "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA=="], "turbo-stream": ["turbo-stream@2.4.0", "", {}, "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g=="], - "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], - "typescript": ["typescript@5.6.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw=="], - "typescript-eslint": ["typescript-eslint@8.24.1", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.24.1", "@typescript-eslint/parser": "8.24.1", "@typescript-eslint/utils": "8.24.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.8.0" } }, "sha512-cw3rEdzDqBs70TIcb0Gdzbt6h11BSs2pS0yaq7hDWDBtCCSei1pPSUXE9qUdQ/Wm9NgFg8mKtMt1b8fTHIl1jA=="], - "undici-types": ["undici-types@6.20.0", "", {}, "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="], - "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], - "use-callback-ref": ["use-callback-ref@1.3.3", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg=="], "use-sidecar": ["use-sidecar@1.1.3", "", { "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ=="], @@ -797,28 +569,8 @@ "void-elements": ["void-elements@3.1.0", "", {}, "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w=="], - "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], - - "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], - "yaml": ["yaml@2.6.0", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ=="], - "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], - - "@babel/template/@babel/parser": ["@babel/parser@7.26.3", "", { "dependencies": { "@babel/types": "^7.26.3" }, "bin": "./bin/babel-parser.js" }, "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA=="], - - "@babel/template/@babel/types": ["@babel/types@7.26.3", "", { "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA=="], - - "@babel/traverse/globals": ["globals@11.12.0", "", {}, "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="], - - "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], - - "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], - - "@eslint/plugin-kit/@eslint/core": ["@eslint/core@0.12.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg=="], - - "@humanfs/node/@humanwhocodes/retry": ["@humanwhocodes/retry@0.3.1", "", {}, "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA=="], - "@jridgewell/gen-mapping/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="], "@jridgewell/trace-mapping/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="], @@ -837,12 +589,6 @@ "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.0", "", { "bundled": true }, "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA=="], - "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - - "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], - "prop-types/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], - - "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], } } diff --git a/changelogithub.config.json b/changelogithub.config.json index b410eb3..f072abc 100644 --- a/changelogithub.config.json +++ b/changelogithub.config.json @@ -1,15 +1,15 @@ { - "types": { - "feat": { "title": "🚀 Features" }, - "fix": { "title": "🔧 Bug Fixes" }, - "docs": { "title": "📚 Documentation" }, - "style": { "title": "💄 Styles" }, - "refactor": { "title": "🔨 Refactor" }, - "perf": { "title": "🏎 Performance" }, - "test": { "title": "🚨 Tests" }, - "build": { "title": "🛠 Build" }, - "ci": { "title": "👷 CI" }, - "chore": { "title": "🛗 Chore" }, - "revert": { "title": "⏪ Revert" } - } + "types": { + "feat": { "title": "🚀 Features" }, + "fix": { "title": "🔧 Bug Fixes" }, + "docs": { "title": "📚 Documentation" }, + "style": { "title": "💄 Styles" }, + "refactor": { "title": "🔨 Refactor" }, + "perf": { "title": "🏎 Performance" }, + "test": { "title": "🚨 Tests" }, + "build": { "title": "🛠 Build" }, + "ci": { "title": "👷 CI" }, + "chore": { "title": "🛗 Chore" }, + "revert": { "title": "⏪ Revert" } + } } diff --git a/components.json b/components.json index 10d70eb..48df1cf 100644 --- a/components.json +++ b/components.json @@ -1,20 +1,20 @@ { - "$schema": "https://ui.shadcn.com/schema.json", - "style": "default", - "rsc": false, - "tsx": true, - "tailwind": { - "config": "tailwind.config.js", - "css": "src/index.css", - "baseColor": "stone", - "cssVariables": true, - "prefix": "" - }, - "aliases": { - "components": "@/components", - "utils": "@/lib/utils", - "ui": "@/components/ui", - "lib": "@/lib", - "hooks": "@/hooks" - } + "$schema": "https://ui.shadcn.com/schema.json", + "style": "default", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "tailwind.config.js", + "css": "src/index.css", + "baseColor": "stone", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + } } diff --git a/eslint.config.js b/eslint.config.js deleted file mode 100644 index d796e6f..0000000 --- a/eslint.config.js +++ /dev/null @@ -1,28 +0,0 @@ -import js from "@eslint/js" -import reactHooks from "eslint-plugin-react-hooks" -import reactRefresh from "eslint-plugin-react-refresh" -import globals from "globals" -import tseslint from "typescript-eslint" - -export default tseslint.config( - { ignores: ["dist"] }, - { - extends: [js.configs.recommended, ...tseslint.configs.recommended], - files: ["**/*.{ts,tsx}"], - languageOptions: { - ecmaVersion: 2020, - globals: globals.browser, - }, - plugins: { - "react-hooks": reactHooks, - "react-refresh": reactRefresh, - }, - rules: { - ...reactHooks.configs.recommended.rules, - "react-refresh/only-export-components": "off", - "react-hooks/exhaustive-deps": "off", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-empty-object-type": "off", - }, - }, -) diff --git a/index.html b/index.html index e87d011..34e9f65 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,7 @@ theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" } document.documentElement.classList.add(theme) - } catch (e) { + } catch (_e) { document.documentElement.classList.add("light") } @@ -36,15 +36,15 @@ } html { - background-color: var(--bg) !important; + background-color: var(--bg); } body { - background-color: var(--bg) !important; + background-color: var(--bg); } #root { - background-color: var(--bg) !important; + background-color: var(--bg); visibility: hidden; } @@ -63,7 +63,7 @@ }