A very performant and light (2mb in memory) link shortener and tracker. Written in Rust and React and uses Postgres/SQLite.

Add footer

Changed files
+4311 -51
frontend
+3
frontend/bun.lock
···
"dependencies": {
"@emotion/react": "^11.14.0",
"@hookform/resolvers": "^3.10.0",
+
"@icons-pack/react-simple-icons": "^11.2.0",
"@mantine/core": "^7.16.1",
"@mantine/form": "^7.16.1",
"@mantine/hooks": "^7.16.1",
···
"@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="],
"@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.1", "", {}, "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA=="],
+
+
"@icons-pack/react-simple-icons": ["@icons-pack/react-simple-icons@11.2.0", "", { "peerDependencies": { "react": "^16.13 || ^17 || ^18 || ^19" } }, "sha512-jCJ+1Fe0yiBQGYSfhx8QGU/9o27t8J4Hw3mxHEI9vohRltLSi5CaPzO2fCQcMNeTrAUAm4j+yaDuAutskiKRjA=="],
"@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.8", "", { "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA=="],
+4162
frontend/package-lock.json
···
+
{
+
"name": "frontend",
+
"version": "0.0.0",
+
"lockfileVersion": 3,
+
"requires": true,
+
"packages": {
+
"": {
+
"name": "frontend",
+
"version": "0.0.0",
+
"dependencies": {
+
"@emotion/react": "^11.14.0",
+
"@headlessui/react": "^2.2.0",
+
"@hookform/resolvers": "^3.10.0",
+
"@icons-pack/react-simple-icons": "^11.2.0",
+
"@mantine/core": "^7.16.1",
+
"@mantine/form": "^7.16.1",
+
"@mantine/hooks": "^7.16.1",
+
"@radix-ui/react-dialog": "^1.1.5",
+
"@radix-ui/react-dropdown-menu": "^2.1.5",
+
"@radix-ui/react-label": "^2.1.1",
+
"@radix-ui/react-slot": "^1.1.1",
+
"@radix-ui/react-tabs": "^1.1.2",
+
"@radix-ui/react-toast": "^1.2.5",
+
"@tailwindcss/vite": "^4.0.0",
+
"axios": "^1.7.9",
+
"class-variance-authority": "^0.7.1",
+
"clsx": "^2.1.1",
+
"lucide-react": "^0.474.0",
+
"react": "^18.3.1",
+
"react-dom": "^18.3.1",
+
"react-hook-form": "^7.54.2",
+
"react-simple-icons": "^1.0.0-beta.5",
+
"recharts": "^2.15.0",
+
"simple-icons": "^14.4.0",
+
"tailwind-merge": "^2.6.0",
+
"tailwindcss-animate": "^1.0.7",
+
"zod": "^3.24.1"
+
},
+
"devDependencies": {
+
"@eslint/js": "^9.17.0",
+
"@tailwindcss/postcss": "^4.0.0",
+
"@types/node": "^22.10.10",
+
"@types/react": "^18.3.18",
+
"@types/react-dom": "^18.3.5",
+
"@vitejs/plugin-react": "^4.3.4",
+
"eslint": "^9.17.0",
+
"eslint-plugin-react-hooks": "^5.0.0",
+
"eslint-plugin-react-refresh": "^0.4.16",
+
"globals": "^15.14.0",
+
"postcss": "^8.5.1",
+
"tailwindcss": "^4.0.0",
+
"typescript": "~5.6.2",
+
"typescript-eslint": "^8.18.2",
+
"vite": "^6.0.5"
+
}
+
},
+
"node_modules/@alloc/quick-lru": {
+
"version": "5.2.0",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=10"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/@ampproject/remapping": {
+
"version": "2.3.0",
+
"dev": true,
+
"license": "Apache-2.0",
+
"dependencies": {
+
"@jridgewell/gen-mapping": "^0.3.5",
+
"@jridgewell/trace-mapping": "^0.3.24"
+
},
+
"engines": {
+
"node": ">=6.0.0"
+
}
+
},
+
"node_modules/@babel/code-frame": {
+
"version": "7.26.2",
+
"license": "MIT",
+
"dependencies": {
+
"@babel/helper-validator-identifier": "^7.25.9",
+
"js-tokens": "^4.0.0",
+
"picocolors": "^1.0.0"
+
},
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@babel/compat-data": {
+
"version": "7.26.5",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@babel/core": {
+
"version": "7.26.7",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@ampproject/remapping": "^2.2.0",
+
"@babel/code-frame": "^7.26.2",
+
"@babel/generator": "^7.26.5",
+
"@babel/helper-compilation-targets": "^7.26.5",
+
"@babel/helper-module-transforms": "^7.26.0",
+
"@babel/helpers": "^7.26.7",
+
"@babel/parser": "^7.26.7",
+
"@babel/template": "^7.25.9",
+
"@babel/traverse": "^7.26.7",
+
"@babel/types": "^7.26.7",
+
"convert-source-map": "^2.0.0",
+
"debug": "^4.1.0",
+
"gensync": "^1.0.0-beta.2",
+
"json5": "^2.2.3",
+
"semver": "^6.3.1"
+
},
+
"engines": {
+
"node": ">=6.9.0"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/babel"
+
}
+
},
+
"node_modules/@babel/generator": {
+
"version": "7.26.5",
+
"license": "MIT",
+
"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"
+
},
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@babel/helper-compilation-targets": {
+
"version": "7.26.5",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@babel/compat-data": "^7.26.5",
+
"@babel/helper-validator-option": "^7.25.9",
+
"browserslist": "^4.24.0",
+
"lru-cache": "^5.1.1",
+
"semver": "^6.3.1"
+
},
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@babel/helper-module-imports": {
+
"version": "7.25.9",
+
"license": "MIT",
+
"dependencies": {
+
"@babel/traverse": "^7.25.9",
+
"@babel/types": "^7.25.9"
+
},
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@babel/helper-module-transforms": {
+
"version": "7.26.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@babel/helper-module-imports": "^7.25.9",
+
"@babel/helper-validator-identifier": "^7.25.9",
+
"@babel/traverse": "^7.25.9"
+
},
+
"engines": {
+
"node": ">=6.9.0"
+
},
+
"peerDependencies": {
+
"@babel/core": "^7.0.0"
+
}
+
},
+
"node_modules/@babel/helper-plugin-utils": {
+
"version": "7.26.5",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@babel/helper-string-parser": {
+
"version": "7.25.9",
+
"license": "MIT",
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@babel/helper-validator-identifier": {
+
"version": "7.25.9",
+
"license": "MIT",
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@babel/helper-validator-option": {
+
"version": "7.25.9",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@babel/helpers": {
+
"version": "7.26.7",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@babel/template": "^7.25.9",
+
"@babel/types": "^7.26.7"
+
},
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@babel/parser": {
+
"version": "7.26.7",
+
"license": "MIT",
+
"dependencies": {
+
"@babel/types": "^7.26.7"
+
},
+
"bin": {
+
"parser": "bin/babel-parser.js"
+
},
+
"engines": {
+
"node": ">=6.0.0"
+
}
+
},
+
"node_modules/@babel/plugin-transform-react-jsx-self": {
+
"version": "7.25.9",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@babel/helper-plugin-utils": "^7.25.9"
+
},
+
"engines": {
+
"node": ">=6.9.0"
+
},
+
"peerDependencies": {
+
"@babel/core": "^7.0.0-0"
+
}
+
},
+
"node_modules/@babel/plugin-transform-react-jsx-source": {
+
"version": "7.25.9",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@babel/helper-plugin-utils": "^7.25.9"
+
},
+
"engines": {
+
"node": ">=6.9.0"
+
},
+
"peerDependencies": {
+
"@babel/core": "^7.0.0-0"
+
}
+
},
+
"node_modules/@babel/runtime": {
+
"version": "7.26.7",
+
"license": "MIT",
+
"dependencies": {
+
"regenerator-runtime": "^0.14.0"
+
},
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@babel/template": {
+
"version": "7.25.9",
+
"license": "MIT",
+
"dependencies": {
+
"@babel/code-frame": "^7.25.9",
+
"@babel/parser": "^7.25.9",
+
"@babel/types": "^7.25.9"
+
},
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@babel/traverse": {
+
"version": "7.26.7",
+
"license": "MIT",
+
"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"
+
},
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@babel/traverse/node_modules/globals": {
+
"version": "11.12.0",
+
"license": "MIT",
+
"engines": {
+
"node": ">=4"
+
}
+
},
+
"node_modules/@babel/types": {
+
"version": "7.26.7",
+
"license": "MIT",
+
"dependencies": {
+
"@babel/helper-string-parser": "^7.25.9",
+
"@babel/helper-validator-identifier": "^7.25.9"
+
},
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/@emotion/babel-plugin": {
+
"version": "11.13.5",
+
"license": "MIT",
+
"dependencies": {
+
"@babel/helper-module-imports": "^7.16.7",
+
"@babel/runtime": "^7.18.3",
+
"@emotion/hash": "^0.9.2",
+
"@emotion/memoize": "^0.9.0",
+
"@emotion/serialize": "^1.3.3",
+
"babel-plugin-macros": "^3.1.0",
+
"convert-source-map": "^1.5.0",
+
"escape-string-regexp": "^4.0.0",
+
"find-root": "^1.1.0",
+
"source-map": "^0.5.7",
+
"stylis": "4.2.0"
+
}
+
},
+
"node_modules/@emotion/babel-plugin/node_modules/convert-source-map": {
+
"version": "1.9.0",
+
"license": "MIT"
+
},
+
"node_modules/@emotion/cache": {
+
"version": "11.14.0",
+
"license": "MIT",
+
"dependencies": {
+
"@emotion/memoize": "^0.9.0",
+
"@emotion/sheet": "^1.4.0",
+
"@emotion/utils": "^1.4.2",
+
"@emotion/weak-memoize": "^0.4.0",
+
"stylis": "4.2.0"
+
}
+
},
+
"node_modules/@emotion/hash": {
+
"version": "0.9.2",
+
"license": "MIT"
+
},
+
"node_modules/@emotion/memoize": {
+
"version": "0.9.0",
+
"license": "MIT"
+
},
+
"node_modules/@emotion/react": {
+
"version": "11.14.0",
+
"license": "MIT",
+
"dependencies": {
+
"@babel/runtime": "^7.18.3",
+
"@emotion/babel-plugin": "^11.13.5",
+
"@emotion/cache": "^11.14.0",
+
"@emotion/serialize": "^1.3.3",
+
"@emotion/use-insertion-effect-with-fallbacks": "^1.2.0",
+
"@emotion/utils": "^1.4.2",
+
"@emotion/weak-memoize": "^0.4.0",
+
"hoist-non-react-statics": "^3.3.1"
+
},
+
"peerDependencies": {
+
"react": ">=16.8.0"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@emotion/serialize": {
+
"version": "1.3.3",
+
"license": "MIT",
+
"dependencies": {
+
"@emotion/hash": "^0.9.2",
+
"@emotion/memoize": "^0.9.0",
+
"@emotion/unitless": "^0.10.0",
+
"@emotion/utils": "^1.4.2",
+
"csstype": "^3.0.2"
+
}
+
},
+
"node_modules/@emotion/sheet": {
+
"version": "1.4.0",
+
"license": "MIT"
+
},
+
"node_modules/@emotion/unitless": {
+
"version": "0.10.0",
+
"license": "MIT"
+
},
+
"node_modules/@emotion/use-insertion-effect-with-fallbacks": {
+
"version": "1.2.0",
+
"license": "MIT",
+
"peerDependencies": {
+
"react": ">=16.8.0"
+
}
+
},
+
"node_modules/@emotion/utils": {
+
"version": "1.4.2",
+
"license": "MIT"
+
},
+
"node_modules/@emotion/weak-memoize": {
+
"version": "0.4.0",
+
"license": "MIT"
+
},
+
"node_modules/@esbuild/darwin-arm64": {
+
"version": "0.24.2",
+
"cpu": [
+
"arm64"
+
],
+
"license": "MIT",
+
"optional": true,
+
"os": [
+
"darwin"
+
],
+
"engines": {
+
"node": ">=18"
+
}
+
},
+
"node_modules/@eslint-community/eslint-utils": {
+
"version": "4.4.1",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"eslint-visitor-keys": "^3.4.3"
+
},
+
"engines": {
+
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+
},
+
"funding": {
+
"url": "https://opencollective.com/eslint"
+
},
+
"peerDependencies": {
+
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+
}
+
},
+
"node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
+
"version": "3.4.3",
+
"dev": true,
+
"license": "Apache-2.0",
+
"engines": {
+
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+
},
+
"funding": {
+
"url": "https://opencollective.com/eslint"
+
}
+
},
+
"node_modules/@eslint-community/regexpp": {
+
"version": "4.12.1",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+
}
+
},
+
"node_modules/@eslint/config-array": {
+
"version": "0.19.1",
+
"dev": true,
+
"license": "Apache-2.0",
+
"dependencies": {
+
"@eslint/object-schema": "^2.1.5",
+
"debug": "^4.3.1",
+
"minimatch": "^3.1.2"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
}
+
},
+
"node_modules/@eslint/core": {
+
"version": "0.10.0",
+
"dev": true,
+
"license": "Apache-2.0",
+
"dependencies": {
+
"@types/json-schema": "^7.0.15"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
}
+
},
+
"node_modules/@eslint/eslintrc": {
+
"version": "3.2.0",
+
"dev": true,
+
"license": "MIT",
+
"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"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"url": "https://opencollective.com/eslint"
+
}
+
},
+
"node_modules/@eslint/eslintrc/node_modules/globals": {
+
"version": "14.0.0",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=18"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/@eslint/js": {
+
"version": "9.19.0",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
}
+
},
+
"node_modules/@eslint/object-schema": {
+
"version": "2.1.5",
+
"dev": true,
+
"license": "Apache-2.0",
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
}
+
},
+
"node_modules/@eslint/plugin-kit": {
+
"version": "0.2.5",
+
"dev": true,
+
"license": "Apache-2.0",
+
"dependencies": {
+
"@eslint/core": "^0.10.0",
+
"levn": "^0.4.1"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
}
+
},
+
"node_modules/@floating-ui/core": {
+
"version": "1.6.9",
+
"license": "MIT",
+
"dependencies": {
+
"@floating-ui/utils": "^0.2.9"
+
}
+
},
+
"node_modules/@floating-ui/dom": {
+
"version": "1.6.13",
+
"license": "MIT",
+
"dependencies": {
+
"@floating-ui/core": "^1.6.0",
+
"@floating-ui/utils": "^0.2.9"
+
}
+
},
+
"node_modules/@floating-ui/react": {
+
"version": "0.26.28",
+
"license": "MIT",
+
"dependencies": {
+
"@floating-ui/react-dom": "^2.1.2",
+
"@floating-ui/utils": "^0.2.8",
+
"tabbable": "^6.0.0"
+
},
+
"peerDependencies": {
+
"react": ">=16.8.0",
+
"react-dom": ">=16.8.0"
+
}
+
},
+
"node_modules/@floating-ui/react-dom": {
+
"version": "2.1.2",
+
"license": "MIT",
+
"dependencies": {
+
"@floating-ui/dom": "^1.0.0"
+
},
+
"peerDependencies": {
+
"react": ">=16.8.0",
+
"react-dom": ">=16.8.0"
+
}
+
},
+
"node_modules/@floating-ui/utils": {
+
"version": "0.2.9",
+
"license": "MIT"
+
},
+
"node_modules/@headlessui/react": {
+
"version": "2.2.0",
+
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.2.0.tgz",
+
"integrity": "sha512-RzCEg+LXsuI7mHiSomsu/gBJSjpupm6A1qIZ5sWjd7JhARNlMiSA4kKfJpCKwU9tE+zMRterhhrP74PvfJrpXQ==",
+
"license": "MIT",
+
"dependencies": {
+
"@floating-ui/react": "^0.26.16",
+
"@react-aria/focus": "^3.17.1",
+
"@react-aria/interactions": "^3.21.3",
+
"@tanstack/react-virtual": "^3.8.1"
+
},
+
"engines": {
+
"node": ">=10"
+
},
+
"peerDependencies": {
+
"react": "^18 || ^19 || ^19.0.0-rc",
+
"react-dom": "^18 || ^19 || ^19.0.0-rc"
+
}
+
},
+
"node_modules/@hookform/resolvers": {
+
"version": "3.10.0",
+
"license": "MIT",
+
"peerDependencies": {
+
"react-hook-form": "^7.0.0"
+
}
+
},
+
"node_modules/@humanfs/core": {
+
"version": "0.19.1",
+
"dev": true,
+
"license": "Apache-2.0",
+
"engines": {
+
"node": ">=18.18.0"
+
}
+
},
+
"node_modules/@humanfs/node": {
+
"version": "0.16.6",
+
"dev": true,
+
"license": "Apache-2.0",
+
"dependencies": {
+
"@humanfs/core": "^0.19.1",
+
"@humanwhocodes/retry": "^0.3.0"
+
},
+
"engines": {
+
"node": ">=18.18.0"
+
}
+
},
+
"node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": {
+
"version": "0.3.1",
+
"dev": true,
+
"license": "Apache-2.0",
+
"engines": {
+
"node": ">=18.18"
+
},
+
"funding": {
+
"type": "github",
+
"url": "https://github.com/sponsors/nzakas"
+
}
+
},
+
"node_modules/@humanwhocodes/module-importer": {
+
"version": "1.0.1",
+
"dev": true,
+
"license": "Apache-2.0",
+
"engines": {
+
"node": ">=12.22"
+
},
+
"funding": {
+
"type": "github",
+
"url": "https://github.com/sponsors/nzakas"
+
}
+
},
+
"node_modules/@humanwhocodes/retry": {
+
"version": "0.4.1",
+
"dev": true,
+
"license": "Apache-2.0",
+
"engines": {
+
"node": ">=18.18"
+
},
+
"funding": {
+
"type": "github",
+
"url": "https://github.com/sponsors/nzakas"
+
}
+
},
+
"node_modules/@icons-pack/react-simple-icons": {
+
"version": "11.2.0",
+
"license": "MIT",
+
"peerDependencies": {
+
"react": "^16.13 || ^17 || ^18 || ^19"
+
}
+
},
+
"node_modules/@jridgewell/gen-mapping": {
+
"version": "0.3.8",
+
"license": "MIT",
+
"dependencies": {
+
"@jridgewell/set-array": "^1.2.1",
+
"@jridgewell/sourcemap-codec": "^1.4.10",
+
"@jridgewell/trace-mapping": "^0.3.24"
+
},
+
"engines": {
+
"node": ">=6.0.0"
+
}
+
},
+
"node_modules/@jridgewell/resolve-uri": {
+
"version": "3.1.2",
+
"license": "MIT",
+
"engines": {
+
"node": ">=6.0.0"
+
}
+
},
+
"node_modules/@jridgewell/set-array": {
+
"version": "1.2.1",
+
"license": "MIT",
+
"engines": {
+
"node": ">=6.0.0"
+
}
+
},
+
"node_modules/@jridgewell/sourcemap-codec": {
+
"version": "1.5.0",
+
"license": "MIT"
+
},
+
"node_modules/@jridgewell/trace-mapping": {
+
"version": "0.3.25",
+
"license": "MIT",
+
"dependencies": {
+
"@jridgewell/resolve-uri": "^3.1.0",
+
"@jridgewell/sourcemap-codec": "^1.4.14"
+
}
+
},
+
"node_modules/@jxnblk/simple-icons": {
+
"version": "1.0.0",
+
"license": "MIT"
+
},
+
"node_modules/@mantine/core": {
+
"version": "7.16.1",
+
"license": "MIT",
+
"dependencies": {
+
"@floating-ui/react": "^0.26.28",
+
"clsx": "^2.1.1",
+
"react-number-format": "^5.4.3",
+
"react-remove-scroll": "^2.6.2",
+
"react-textarea-autosize": "8.5.6",
+
"type-fest": "^4.27.0"
+
},
+
"peerDependencies": {
+
"@mantine/hooks": "7.16.1",
+
"react": "^18.x || ^19.x",
+
"react-dom": "^18.x || ^19.x"
+
}
+
},
+
"node_modules/@mantine/form": {
+
"version": "7.16.1",
+
"license": "MIT",
+
"dependencies": {
+
"fast-deep-equal": "^3.1.3",
+
"klona": "^2.0.6"
+
},
+
"peerDependencies": {
+
"react": "^18.x || ^19.x"
+
}
+
},
+
"node_modules/@mantine/hooks": {
+
"version": "7.16.1",
+
"license": "MIT",
+
"peerDependencies": {
+
"react": "^18.x || ^19.x"
+
}
+
},
+
"node_modules/@nodelib/fs.scandir": {
+
"version": "2.1.5",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@nodelib/fs.stat": "2.0.5",
+
"run-parallel": "^1.1.9"
+
},
+
"engines": {
+
"node": ">= 8"
+
}
+
},
+
"node_modules/@nodelib/fs.stat": {
+
"version": "2.0.5",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">= 8"
+
}
+
},
+
"node_modules/@nodelib/fs.walk": {
+
"version": "1.2.8",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@nodelib/fs.scandir": "2.1.5",
+
"fastq": "^1.6.0"
+
},
+
"engines": {
+
"node": ">= 8"
+
}
+
},
+
"node_modules/@radix-ui/primitive": {
+
"version": "1.1.1",
+
"license": "MIT"
+
},
+
"node_modules/@radix-ui/react-arrow": {
+
"version": "1.1.1",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/react-primitive": "2.0.1"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"@types/react-dom": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-collection": {
+
"version": "1.1.1",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/react-compose-refs": "1.1.1",
+
"@radix-ui/react-context": "1.1.1",
+
"@radix-ui/react-primitive": "2.0.1",
+
"@radix-ui/react-slot": "1.1.1"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"@types/react-dom": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-compose-refs": {
+
"version": "1.1.1",
+
"license": "MIT",
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-context": {
+
"version": "1.1.1",
+
"license": "MIT",
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-dialog": {
+
"version": "1.1.5",
+
"resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.5.tgz",
+
"integrity": "sha512-LaO3e5h/NOEL4OfXjxD43k9Dx+vn+8n+PCFt6uhX/BADFflllyv3WJG6rgvvSVBxpTch938Qq/LGc2MMxipXPw==",
+
"license": "MIT",
+
"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.4",
+
"@radix-ui/react-focus-guards": "1.1.1",
+
"@radix-ui/react-focus-scope": "1.1.1",
+
"@radix-ui/react-id": "1.1.0",
+
"@radix-ui/react-portal": "1.1.3",
+
"@radix-ui/react-presence": "1.1.2",
+
"@radix-ui/react-primitive": "2.0.1",
+
"@radix-ui/react-slot": "1.1.1",
+
"@radix-ui/react-use-controllable-state": "1.1.0",
+
"aria-hidden": "^1.2.4",
+
"react-remove-scroll": "^2.6.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"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-direction": {
+
"version": "1.1.0",
+
"license": "MIT",
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-dismissable-layer": {
+
"version": "1.1.4",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/primitive": "1.1.1",
+
"@radix-ui/react-compose-refs": "1.1.1",
+
"@radix-ui/react-primitive": "2.0.1",
+
"@radix-ui/react-use-callback-ref": "1.1.0",
+
"@radix-ui/react-use-escape-keydown": "1.1.0"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"@types/react-dom": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-dropdown-menu": {
+
"version": "2.1.5",
+
"license": "MIT",
+
"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.5",
+
"@radix-ui/react-primitive": "2.0.1",
+
"@radix-ui/react-use-controllable-state": "1.1.0"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"@types/react-dom": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-focus-guards": {
+
"version": "1.1.1",
+
"license": "MIT",
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-focus-scope": {
+
"version": "1.1.1",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/react-compose-refs": "1.1.1",
+
"@radix-ui/react-primitive": "2.0.1",
+
"@radix-ui/react-use-callback-ref": "1.1.0"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"@types/react-dom": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-id": {
+
"version": "1.1.0",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/react-use-layout-effect": "1.1.0"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-label": {
+
"version": "2.1.1",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/react-primitive": "2.0.1"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"@types/react-dom": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-menu": {
+
"version": "2.1.5",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/primitive": "1.1.1",
+
"@radix-ui/react-collection": "1.1.1",
+
"@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.4",
+
"@radix-ui/react-focus-guards": "1.1.1",
+
"@radix-ui/react-focus-scope": "1.1.1",
+
"@radix-ui/react-id": "1.1.0",
+
"@radix-ui/react-popper": "1.2.1",
+
"@radix-ui/react-portal": "1.1.3",
+
"@radix-ui/react-presence": "1.1.2",
+
"@radix-ui/react-primitive": "2.0.1",
+
"@radix-ui/react-roving-focus": "1.1.1",
+
"@radix-ui/react-slot": "1.1.1",
+
"@radix-ui/react-use-callback-ref": "1.1.0",
+
"aria-hidden": "^1.2.4",
+
"react-remove-scroll": "^2.6.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"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-popper": {
+
"version": "1.2.1",
+
"license": "MIT",
+
"dependencies": {
+
"@floating-ui/react-dom": "^2.0.0",
+
"@radix-ui/react-arrow": "1.1.1",
+
"@radix-ui/react-compose-refs": "1.1.1",
+
"@radix-ui/react-context": "1.1.1",
+
"@radix-ui/react-primitive": "2.0.1",
+
"@radix-ui/react-use-callback-ref": "1.1.0",
+
"@radix-ui/react-use-layout-effect": "1.1.0",
+
"@radix-ui/react-use-rect": "1.1.0",
+
"@radix-ui/react-use-size": "1.1.0",
+
"@radix-ui/rect": "1.1.0"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"@types/react-dom": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-portal": {
+
"version": "1.1.3",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/react-primitive": "2.0.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"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-presence": {
+
"version": "1.1.2",
+
"license": "MIT",
+
"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"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-primitive": {
+
"version": "2.0.1",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/react-slot": "1.1.1"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"@types/react-dom": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-roving-focus": {
+
"version": "1.1.1",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/primitive": "1.1.1",
+
"@radix-ui/react-collection": "1.1.1",
+
"@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.1",
+
"@radix-ui/react-use-callback-ref": "1.1.0",
+
"@radix-ui/react-use-controllable-state": "1.1.0"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"@types/react-dom": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-slot": {
+
"version": "1.1.1",
+
"license": "MIT",
+
"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"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-tabs": {
+
"version": "1.1.2",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/primitive": "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-presence": "1.1.2",
+
"@radix-ui/react-primitive": "2.0.1",
+
"@radix-ui/react-roving-focus": "1.1.1",
+
"@radix-ui/react-use-controllable-state": "1.1.0"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"@types/react-dom": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-toast": {
+
"version": "1.2.5",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/primitive": "1.1.1",
+
"@radix-ui/react-collection": "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.4",
+
"@radix-ui/react-portal": "1.1.3",
+
"@radix-ui/react-presence": "1.1.2",
+
"@radix-ui/react-primitive": "2.0.1",
+
"@radix-ui/react-use-callback-ref": "1.1.0",
+
"@radix-ui/react-use-controllable-state": "1.1.0",
+
"@radix-ui/react-use-layout-effect": "1.1.0",
+
"@radix-ui/react-visually-hidden": "1.1.1"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"@types/react-dom": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-use-callback-ref": {
+
"version": "1.1.0",
+
"license": "MIT",
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-use-controllable-state": {
+
"version": "1.1.0",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/react-use-callback-ref": "1.1.0"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-use-escape-keydown": {
+
"version": "1.1.0",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/react-use-callback-ref": "1.1.0"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-use-layout-effect": {
+
"version": "1.1.0",
+
"license": "MIT",
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-use-rect": {
+
"version": "1.1.0",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/rect": "1.1.0"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-use-size": {
+
"version": "1.1.0",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/react-use-layout-effect": "1.1.0"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/react-visually-hidden": {
+
"version": "1.1.1",
+
"license": "MIT",
+
"dependencies": {
+
"@radix-ui/react-primitive": "2.0.1"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"@types/react-dom": "*",
+
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
},
+
"@types/react-dom": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/@radix-ui/rect": {
+
"version": "1.1.0",
+
"license": "MIT"
+
},
+
"node_modules/@react-aria/focus": {
+
"version": "3.19.1",
+
"resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.19.1.tgz",
+
"integrity": "sha512-bix9Bu1Ue7RPcYmjwcjhB14BMu2qzfJ3tMQLqDc9pweJA66nOw8DThy3IfVr8Z7j2PHktOLf9kcbiZpydKHqzg==",
+
"license": "Apache-2.0",
+
"dependencies": {
+
"@react-aria/interactions": "^3.23.0",
+
"@react-aria/utils": "^3.27.0",
+
"@react-types/shared": "^3.27.0",
+
"@swc/helpers": "^0.5.0",
+
"clsx": "^2.0.0"
+
},
+
"peerDependencies": {
+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+
}
+
},
+
"node_modules/@react-aria/interactions": {
+
"version": "3.23.0",
+
"resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.23.0.tgz",
+
"integrity": "sha512-0qR1atBIWrb7FzQ+Tmr3s8uH5mQdyRH78n0krYaG8tng9+u1JlSi8DGRSaC9ezKyNB84m7vHT207xnHXGeJ3Fg==",
+
"license": "Apache-2.0",
+
"dependencies": {
+
"@react-aria/ssr": "^3.9.7",
+
"@react-aria/utils": "^3.27.0",
+
"@react-types/shared": "^3.27.0",
+
"@swc/helpers": "^0.5.0"
+
},
+
"peerDependencies": {
+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+
}
+
},
+
"node_modules/@react-aria/ssr": {
+
"version": "3.9.7",
+
"resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.7.tgz",
+
"integrity": "sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==",
+
"license": "Apache-2.0",
+
"dependencies": {
+
"@swc/helpers": "^0.5.0"
+
},
+
"engines": {
+
"node": ">= 12"
+
},
+
"peerDependencies": {
+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+
}
+
},
+
"node_modules/@react-aria/utils": {
+
"version": "3.27.0",
+
"resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.27.0.tgz",
+
"integrity": "sha512-p681OtApnKOdbeN8ITfnnYqfdHS0z7GE+4l8EXlfLnr70Rp/9xicBO6d2rU+V/B3JujDw2gPWxYKEnEeh0CGCw==",
+
"license": "Apache-2.0",
+
"dependencies": {
+
"@react-aria/ssr": "^3.9.7",
+
"@react-stately/utils": "^3.10.5",
+
"@react-types/shared": "^3.27.0",
+
"@swc/helpers": "^0.5.0",
+
"clsx": "^2.0.0"
+
},
+
"peerDependencies": {
+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+
}
+
},
+
"node_modules/@react-stately/utils": {
+
"version": "3.10.5",
+
"resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.5.tgz",
+
"integrity": "sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==",
+
"license": "Apache-2.0",
+
"dependencies": {
+
"@swc/helpers": "^0.5.0"
+
},
+
"peerDependencies": {
+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+
}
+
},
+
"node_modules/@react-types/shared": {
+
"version": "3.27.0",
+
"resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.27.0.tgz",
+
"integrity": "sha512-gvznmLhi6JPEf0bsq7SwRYTHAKKq/wcmKqFez9sRdbED+SPMUmK5omfZ6w3EwUFQHbYUa4zPBYedQ7Knv70RMw==",
+
"license": "Apache-2.0",
+
"peerDependencies": {
+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+
}
+
},
+
"node_modules/@rollup/rollup-darwin-arm64": {
+
"version": "4.32.0",
+
"cpu": [
+
"arm64"
+
],
+
"license": "MIT",
+
"optional": true,
+
"os": [
+
"darwin"
+
]
+
},
+
"node_modules/@swc/helpers": {
+
"version": "0.5.15",
+
"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
+
"integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
+
"license": "Apache-2.0",
+
"dependencies": {
+
"tslib": "^2.8.0"
+
}
+
},
+
"node_modules/@tailwindcss/node": {
+
"version": "4.0.0",
+
"license": "MIT",
+
"dependencies": {
+
"enhanced-resolve": "^5.18.0",
+
"jiti": "^2.4.2",
+
"tailwindcss": "4.0.0"
+
}
+
},
+
"node_modules/@tailwindcss/oxide": {
+
"version": "4.0.0",
+
"license": "MIT",
+
"engines": {
+
"node": ">= 10"
+
},
+
"optionalDependencies": {
+
"@tailwindcss/oxide-android-arm64": "4.0.0",
+
"@tailwindcss/oxide-darwin-arm64": "4.0.0",
+
"@tailwindcss/oxide-darwin-x64": "4.0.0",
+
"@tailwindcss/oxide-freebsd-x64": "4.0.0",
+
"@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.0",
+
"@tailwindcss/oxide-linux-arm64-gnu": "4.0.0",
+
"@tailwindcss/oxide-linux-arm64-musl": "4.0.0",
+
"@tailwindcss/oxide-linux-x64-gnu": "4.0.0",
+
"@tailwindcss/oxide-linux-x64-musl": "4.0.0",
+
"@tailwindcss/oxide-win32-arm64-msvc": "4.0.0",
+
"@tailwindcss/oxide-win32-x64-msvc": "4.0.0"
+
}
+
},
+
"node_modules/@tailwindcss/oxide-darwin-arm64": {
+
"version": "4.0.0",
+
"cpu": [
+
"arm64"
+
],
+
"license": "MIT",
+
"optional": true,
+
"os": [
+
"darwin"
+
],
+
"engines": {
+
"node": ">= 10"
+
}
+
},
+
"node_modules/@tailwindcss/postcss": {
+
"version": "4.0.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@alloc/quick-lru": "^5.2.0",
+
"@tailwindcss/node": "^4.0.0",
+
"@tailwindcss/oxide": "^4.0.0",
+
"lightningcss": "^1.29.1",
+
"postcss": "^8.4.41",
+
"tailwindcss": "4.0.0"
+
}
+
},
+
"node_modules/@tailwindcss/vite": {
+
"version": "4.0.0",
+
"license": "MIT",
+
"dependencies": {
+
"@tailwindcss/node": "^4.0.0",
+
"@tailwindcss/oxide": "^4.0.0",
+
"lightningcss": "^1.29.1",
+
"tailwindcss": "4.0.0"
+
},
+
"peerDependencies": {
+
"vite": "^5.2.0 || ^6"
+
}
+
},
+
"node_modules/@tanstack/react-virtual": {
+
"version": "3.11.3",
+
"resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.3.tgz",
+
"integrity": "sha512-vCU+OTylXN3hdC8RKg68tPlBPjjxtzon7Ys46MgrSLE+JhSjSTPvoQifV6DQJeJmA8Q3KT6CphJbejupx85vFw==",
+
"license": "MIT",
+
"dependencies": {
+
"@tanstack/virtual-core": "3.11.3"
+
},
+
"funding": {
+
"type": "github",
+
"url": "https://github.com/sponsors/tannerlinsley"
+
},
+
"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"
+
}
+
},
+
"node_modules/@tanstack/virtual-core": {
+
"version": "3.11.3",
+
"resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.3.tgz",
+
"integrity": "sha512-v2mrNSnMwnPJtcVqNvV0c5roGCBqeogN8jDtgtuHCphdwBasOZ17x8UV8qpHUh+u0MLfX43c0uUHKje0s+Zb0w==",
+
"license": "MIT",
+
"funding": {
+
"type": "github",
+
"url": "https://github.com/sponsors/tannerlinsley"
+
}
+
},
+
"node_modules/@types/babel__core": {
+
"version": "7.20.5",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@babel/parser": "^7.20.7",
+
"@babel/types": "^7.20.7",
+
"@types/babel__generator": "*",
+
"@types/babel__template": "*",
+
"@types/babel__traverse": "*"
+
}
+
},
+
"node_modules/@types/babel__generator": {
+
"version": "7.6.8",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@babel/types": "^7.0.0"
+
}
+
},
+
"node_modules/@types/babel__template": {
+
"version": "7.4.4",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@babel/parser": "^7.1.0",
+
"@babel/types": "^7.0.0"
+
}
+
},
+
"node_modules/@types/babel__traverse": {
+
"version": "7.20.6",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@babel/types": "^7.20.7"
+
}
+
},
+
"node_modules/@types/d3-array": {
+
"version": "3.2.1",
+
"license": "MIT"
+
},
+
"node_modules/@types/d3-color": {
+
"version": "3.1.3",
+
"license": "MIT"
+
},
+
"node_modules/@types/d3-ease": {
+
"version": "3.0.2",
+
"license": "MIT"
+
},
+
"node_modules/@types/d3-interpolate": {
+
"version": "3.0.4",
+
"license": "MIT",
+
"dependencies": {
+
"@types/d3-color": "*"
+
}
+
},
+
"node_modules/@types/d3-path": {
+
"version": "3.1.0",
+
"license": "MIT"
+
},
+
"node_modules/@types/d3-scale": {
+
"version": "4.0.8",
+
"license": "MIT",
+
"dependencies": {
+
"@types/d3-time": "*"
+
}
+
},
+
"node_modules/@types/d3-shape": {
+
"version": "3.1.7",
+
"license": "MIT",
+
"dependencies": {
+
"@types/d3-path": "*"
+
}
+
},
+
"node_modules/@types/d3-time": {
+
"version": "3.0.4",
+
"license": "MIT"
+
},
+
"node_modules/@types/d3-timer": {
+
"version": "3.0.2",
+
"license": "MIT"
+
},
+
"node_modules/@types/estree": {
+
"version": "1.0.6",
+
"license": "MIT"
+
},
+
"node_modules/@types/json-schema": {
+
"version": "7.0.15",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/@types/node": {
+
"version": "22.10.10",
+
"devOptional": true,
+
"license": "MIT",
+
"dependencies": {
+
"undici-types": "~6.20.0"
+
}
+
},
+
"node_modules/@types/parse-json": {
+
"version": "4.0.2",
+
"license": "MIT"
+
},
+
"node_modules/@types/prop-types": {
+
"version": "15.7.14",
+
"devOptional": true,
+
"license": "MIT"
+
},
+
"node_modules/@types/react": {
+
"version": "18.3.18",
+
"devOptional": true,
+
"license": "MIT",
+
"dependencies": {
+
"@types/prop-types": "*",
+
"csstype": "^3.0.2"
+
}
+
},
+
"node_modules/@types/react-dom": {
+
"version": "18.3.5",
+
"devOptional": true,
+
"license": "MIT",
+
"peerDependencies": {
+
"@types/react": "^18.0.0"
+
}
+
},
+
"node_modules/@typescript-eslint/eslint-plugin": {
+
"version": "8.21.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@eslint-community/regexpp": "^4.10.0",
+
"@typescript-eslint/scope-manager": "8.21.0",
+
"@typescript-eslint/type-utils": "8.21.0",
+
"@typescript-eslint/utils": "8.21.0",
+
"@typescript-eslint/visitor-keys": "8.21.0",
+
"graphemer": "^1.4.0",
+
"ignore": "^5.3.1",
+
"natural-compare": "^1.4.0",
+
"ts-api-utils": "^2.0.0"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/typescript-eslint"
+
},
+
"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"
+
}
+
},
+
"node_modules/@typescript-eslint/parser": {
+
"version": "8.21.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@typescript-eslint/scope-manager": "8.21.0",
+
"@typescript-eslint/types": "8.21.0",
+
"@typescript-eslint/typescript-estree": "8.21.0",
+
"@typescript-eslint/visitor-keys": "8.21.0",
+
"debug": "^4.3.4"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/typescript-eslint"
+
},
+
"peerDependencies": {
+
"eslint": "^8.57.0 || ^9.0.0",
+
"typescript": ">=4.8.4 <5.8.0"
+
}
+
},
+
"node_modules/@typescript-eslint/scope-manager": {
+
"version": "8.21.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@typescript-eslint/types": "8.21.0",
+
"@typescript-eslint/visitor-keys": "8.21.0"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/typescript-eslint"
+
}
+
},
+
"node_modules/@typescript-eslint/type-utils": {
+
"version": "8.21.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@typescript-eslint/typescript-estree": "8.21.0",
+
"@typescript-eslint/utils": "8.21.0",
+
"debug": "^4.3.4",
+
"ts-api-utils": "^2.0.0"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/typescript-eslint"
+
},
+
"peerDependencies": {
+
"eslint": "^8.57.0 || ^9.0.0",
+
"typescript": ">=4.8.4 <5.8.0"
+
}
+
},
+
"node_modules/@typescript-eslint/types": {
+
"version": "8.21.0",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/typescript-eslint"
+
}
+
},
+
"node_modules/@typescript-eslint/typescript-estree": {
+
"version": "8.21.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@typescript-eslint/types": "8.21.0",
+
"@typescript-eslint/visitor-keys": "8.21.0",
+
"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.0"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/typescript-eslint"
+
},
+
"peerDependencies": {
+
"typescript": ">=4.8.4 <5.8.0"
+
}
+
},
+
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+
"version": "9.0.5",
+
"dev": true,
+
"license": "ISC",
+
"dependencies": {
+
"brace-expansion": "^2.0.1"
+
},
+
"engines": {
+
"node": ">=16 || 14 >=14.17"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/isaacs"
+
}
+
},
+
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": {
+
"version": "2.0.1",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"balanced-match": "^1.0.0"
+
}
+
},
+
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+
"version": "7.6.3",
+
"dev": true,
+
"license": "ISC",
+
"bin": {
+
"semver": "bin/semver.js"
+
},
+
"engines": {
+
"node": ">=10"
+
}
+
},
+
"node_modules/@typescript-eslint/utils": {
+
"version": "8.21.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@eslint-community/eslint-utils": "^4.4.0",
+
"@typescript-eslint/scope-manager": "8.21.0",
+
"@typescript-eslint/types": "8.21.0",
+
"@typescript-eslint/typescript-estree": "8.21.0"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/typescript-eslint"
+
},
+
"peerDependencies": {
+
"eslint": "^8.57.0 || ^9.0.0",
+
"typescript": ">=4.8.4 <5.8.0"
+
}
+
},
+
"node_modules/@typescript-eslint/visitor-keys": {
+
"version": "8.21.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@typescript-eslint/types": "8.21.0",
+
"eslint-visitor-keys": "^4.2.0"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/typescript-eslint"
+
}
+
},
+
"node_modules/@vitejs/plugin-react": {
+
"version": "4.3.4",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@babel/core": "^7.26.0",
+
"@babel/plugin-transform-react-jsx-self": "^7.25.9",
+
"@babel/plugin-transform-react-jsx-source": "^7.25.9",
+
"@types/babel__core": "^7.20.5",
+
"react-refresh": "^0.14.2"
+
},
+
"engines": {
+
"node": "^14.18.0 || >=16.0.0"
+
},
+
"peerDependencies": {
+
"vite": "^4.2.0 || ^5.0.0 || ^6.0.0"
+
}
+
},
+
"node_modules/acorn": {
+
"version": "8.14.0",
+
"dev": true,
+
"license": "MIT",
+
"bin": {
+
"acorn": "bin/acorn"
+
},
+
"engines": {
+
"node": ">=0.4.0"
+
}
+
},
+
"node_modules/acorn-jsx": {
+
"version": "5.3.2",
+
"dev": true,
+
"license": "MIT",
+
"peerDependencies": {
+
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+
}
+
},
+
"node_modules/ajv": {
+
"version": "6.12.6",
+
"dev": true,
+
"license": "MIT",
+
"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"
+
},
+
"funding": {
+
"type": "github",
+
"url": "https://github.com/sponsors/epoberezkin"
+
}
+
},
+
"node_modules/ansi-styles": {
+
"version": "4.3.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"color-convert": "^2.0.1"
+
},
+
"engines": {
+
"node": ">=8"
+
},
+
"funding": {
+
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
+
}
+
},
+
"node_modules/argparse": {
+
"version": "2.0.1",
+
"dev": true,
+
"license": "Python-2.0"
+
},
+
"node_modules/aria-hidden": {
+
"version": "1.2.4",
+
"license": "MIT",
+
"dependencies": {
+
"tslib": "^2.0.0"
+
},
+
"engines": {
+
"node": ">=10"
+
}
+
},
+
"node_modules/asynckit": {
+
"version": "0.4.0",
+
"license": "MIT"
+
},
+
"node_modules/axios": {
+
"version": "1.7.9",
+
"license": "MIT",
+
"dependencies": {
+
"follow-redirects": "^1.15.6",
+
"form-data": "^4.0.0",
+
"proxy-from-env": "^1.1.0"
+
}
+
},
+
"node_modules/babel-plugin-macros": {
+
"version": "3.1.0",
+
"license": "MIT",
+
"dependencies": {
+
"@babel/runtime": "^7.12.5",
+
"cosmiconfig": "^7.0.0",
+
"resolve": "^1.19.0"
+
},
+
"engines": {
+
"node": ">=10",
+
"npm": ">=6"
+
}
+
},
+
"node_modules/balanced-match": {
+
"version": "1.0.2",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/brace-expansion": {
+
"version": "1.1.11",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"balanced-match": "^1.0.0",
+
"concat-map": "0.0.1"
+
}
+
},
+
"node_modules/braces": {
+
"version": "3.0.3",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"fill-range": "^7.1.1"
+
},
+
"engines": {
+
"node": ">=8"
+
}
+
},
+
"node_modules/browserslist": {
+
"version": "4.24.4",
+
"dev": true,
+
"funding": [
+
{
+
"type": "opencollective",
+
"url": "https://opencollective.com/browserslist"
+
},
+
{
+
"type": "tidelift",
+
"url": "https://tidelift.com/funding/github/npm/browserslist"
+
},
+
{
+
"type": "github",
+
"url": "https://github.com/sponsors/ai"
+
}
+
],
+
"license": "MIT",
+
"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"
+
},
+
"engines": {
+
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+
}
+
},
+
"node_modules/callsites": {
+
"version": "3.1.0",
+
"license": "MIT",
+
"engines": {
+
"node": ">=6"
+
}
+
},
+
"node_modules/caniuse-lite": {
+
"version": "1.0.30001695",
+
"dev": true,
+
"funding": [
+
{
+
"type": "opencollective",
+
"url": "https://opencollective.com/browserslist"
+
},
+
{
+
"type": "tidelift",
+
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+
},
+
{
+
"type": "github",
+
"url": "https://github.com/sponsors/ai"
+
}
+
],
+
"license": "CC-BY-4.0"
+
},
+
"node_modules/chalk": {
+
"version": "4.1.2",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"ansi-styles": "^4.1.0",
+
"supports-color": "^7.1.0"
+
},
+
"engines": {
+
"node": ">=10"
+
},
+
"funding": {
+
"url": "https://github.com/chalk/chalk?sponsor=1"
+
}
+
},
+
"node_modules/class-variance-authority": {
+
"version": "0.7.1",
+
"license": "Apache-2.0",
+
"dependencies": {
+
"clsx": "^2.1.1"
+
},
+
"funding": {
+
"url": "https://polar.sh/cva"
+
}
+
},
+
"node_modules/clsx": {
+
"version": "2.1.1",
+
"license": "MIT",
+
"engines": {
+
"node": ">=6"
+
}
+
},
+
"node_modules/color-convert": {
+
"version": "2.0.1",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"color-name": "~1.1.4"
+
},
+
"engines": {
+
"node": ">=7.0.0"
+
}
+
},
+
"node_modules/color-name": {
+
"version": "1.1.4",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/combined-stream": {
+
"version": "1.0.8",
+
"license": "MIT",
+
"dependencies": {
+
"delayed-stream": "~1.0.0"
+
},
+
"engines": {
+
"node": ">= 0.8"
+
}
+
},
+
"node_modules/concat-map": {
+
"version": "0.0.1",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/convert-source-map": {
+
"version": "2.0.0",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/cosmiconfig": {
+
"version": "7.1.0",
+
"license": "MIT",
+
"dependencies": {
+
"@types/parse-json": "^4.0.0",
+
"import-fresh": "^3.2.1",
+
"parse-json": "^5.0.0",
+
"path-type": "^4.0.0",
+
"yaml": "^1.10.0"
+
},
+
"engines": {
+
"node": ">=10"
+
}
+
},
+
"node_modules/cosmiconfig/node_modules/yaml": {
+
"version": "1.10.2",
+
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+
"license": "ISC",
+
"engines": {
+
"node": ">= 6"
+
}
+
},
+
"node_modules/cross-spawn": {
+
"version": "7.0.6",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"path-key": "^3.1.0",
+
"shebang-command": "^2.0.0",
+
"which": "^2.0.1"
+
},
+
"engines": {
+
"node": ">= 8"
+
}
+
},
+
"node_modules/csstype": {
+
"version": "3.1.3",
+
"license": "MIT"
+
},
+
"node_modules/d3-array": {
+
"version": "3.2.4",
+
"license": "ISC",
+
"dependencies": {
+
"internmap": "1 - 2"
+
},
+
"engines": {
+
"node": ">=12"
+
}
+
},
+
"node_modules/d3-color": {
+
"version": "3.1.0",
+
"license": "ISC",
+
"engines": {
+
"node": ">=12"
+
}
+
},
+
"node_modules/d3-ease": {
+
"version": "3.0.1",
+
"license": "BSD-3-Clause",
+
"engines": {
+
"node": ">=12"
+
}
+
},
+
"node_modules/d3-format": {
+
"version": "3.1.0",
+
"license": "ISC",
+
"engines": {
+
"node": ">=12"
+
}
+
},
+
"node_modules/d3-interpolate": {
+
"version": "3.0.1",
+
"license": "ISC",
+
"dependencies": {
+
"d3-color": "1 - 3"
+
},
+
"engines": {
+
"node": ">=12"
+
}
+
},
+
"node_modules/d3-path": {
+
"version": "3.1.0",
+
"license": "ISC",
+
"engines": {
+
"node": ">=12"
+
}
+
},
+
"node_modules/d3-scale": {
+
"version": "4.0.2",
+
"license": "ISC",
+
"dependencies": {
+
"d3-array": "2.10.0 - 3",
+
"d3-format": "1 - 3",
+
"d3-interpolate": "1.2.0 - 3",
+
"d3-time": "2.1.1 - 3",
+
"d3-time-format": "2 - 4"
+
},
+
"engines": {
+
"node": ">=12"
+
}
+
},
+
"node_modules/d3-shape": {
+
"version": "3.2.0",
+
"license": "ISC",
+
"dependencies": {
+
"d3-path": "^3.1.0"
+
},
+
"engines": {
+
"node": ">=12"
+
}
+
},
+
"node_modules/d3-time": {
+
"version": "3.1.0",
+
"license": "ISC",
+
"dependencies": {
+
"d3-array": "2 - 3"
+
},
+
"engines": {
+
"node": ">=12"
+
}
+
},
+
"node_modules/d3-time-format": {
+
"version": "4.1.0",
+
"license": "ISC",
+
"dependencies": {
+
"d3-time": "1 - 3"
+
},
+
"engines": {
+
"node": ">=12"
+
}
+
},
+
"node_modules/d3-timer": {
+
"version": "3.0.1",
+
"license": "ISC",
+
"engines": {
+
"node": ">=12"
+
}
+
},
+
"node_modules/debug": {
+
"version": "4.4.0",
+
"license": "MIT",
+
"dependencies": {
+
"ms": "^2.1.3"
+
},
+
"engines": {
+
"node": ">=6.0"
+
},
+
"peerDependenciesMeta": {
+
"supports-color": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/decimal.js-light": {
+
"version": "2.5.1",
+
"license": "MIT"
+
},
+
"node_modules/deep-is": {
+
"version": "0.1.4",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/delayed-stream": {
+
"version": "1.0.0",
+
"license": "MIT",
+
"engines": {
+
"node": ">=0.4.0"
+
}
+
},
+
"node_modules/detect-libc": {
+
"version": "1.0.3",
+
"license": "Apache-2.0",
+
"bin": {
+
"detect-libc": "bin/detect-libc.js"
+
},
+
"engines": {
+
"node": ">=0.10"
+
}
+
},
+
"node_modules/detect-node-es": {
+
"version": "1.1.0",
+
"license": "MIT"
+
},
+
"node_modules/dom-helpers": {
+
"version": "5.2.1",
+
"license": "MIT",
+
"dependencies": {
+
"@babel/runtime": "^7.8.7",
+
"csstype": "^3.0.2"
+
}
+
},
+
"node_modules/electron-to-chromium": {
+
"version": "1.5.88",
+
"dev": true,
+
"license": "ISC"
+
},
+
"node_modules/enhanced-resolve": {
+
"version": "5.18.0",
+
"license": "MIT",
+
"dependencies": {
+
"graceful-fs": "^4.2.4",
+
"tapable": "^2.2.0"
+
},
+
"engines": {
+
"node": ">=10.13.0"
+
}
+
},
+
"node_modules/error-ex": {
+
"version": "1.3.2",
+
"license": "MIT",
+
"dependencies": {
+
"is-arrayish": "^0.2.1"
+
}
+
},
+
"node_modules/esbuild": {
+
"version": "0.24.2",
+
"hasInstallScript": true,
+
"license": "MIT",
+
"bin": {
+
"esbuild": "bin/esbuild"
+
},
+
"engines": {
+
"node": ">=18"
+
},
+
"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"
+
}
+
},
+
"node_modules/escalade": {
+
"version": "3.2.0",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=6"
+
}
+
},
+
"node_modules/escape-string-regexp": {
+
"version": "4.0.0",
+
"license": "MIT",
+
"engines": {
+
"node": ">=10"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/eslint": {
+
"version": "9.19.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@eslint-community/eslint-utils": "^4.2.0",
+
"@eslint-community/regexpp": "^4.12.1",
+
"@eslint/config-array": "^0.19.0",
+
"@eslint/core": "^0.10.0",
+
"@eslint/eslintrc": "^3.2.0",
+
"@eslint/js": "9.19.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"
+
},
+
"bin": {
+
"eslint": "bin/eslint.js"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"url": "https://eslint.org/donate"
+
},
+
"peerDependencies": {
+
"jiti": "*"
+
},
+
"peerDependenciesMeta": {
+
"jiti": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/eslint-plugin-react-hooks": {
+
"version": "5.1.0",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=10"
+
},
+
"peerDependencies": {
+
"eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
+
}
+
},
+
"node_modules/eslint-plugin-react-refresh": {
+
"version": "0.4.18",
+
"dev": true,
+
"license": "MIT",
+
"peerDependencies": {
+
"eslint": ">=8.40"
+
}
+
},
+
"node_modules/eslint-scope": {
+
"version": "8.2.0",
+
"dev": true,
+
"license": "BSD-2-Clause",
+
"dependencies": {
+
"esrecurse": "^4.3.0",
+
"estraverse": "^5.2.0"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"url": "https://opencollective.com/eslint"
+
}
+
},
+
"node_modules/eslint-visitor-keys": {
+
"version": "4.2.0",
+
"dev": true,
+
"license": "Apache-2.0",
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"url": "https://opencollective.com/eslint"
+
}
+
},
+
"node_modules/espree": {
+
"version": "10.3.0",
+
"dev": true,
+
"license": "BSD-2-Clause",
+
"dependencies": {
+
"acorn": "^8.14.0",
+
"acorn-jsx": "^5.3.2",
+
"eslint-visitor-keys": "^4.2.0"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"url": "https://opencollective.com/eslint"
+
}
+
},
+
"node_modules/esquery": {
+
"version": "1.6.0",
+
"dev": true,
+
"license": "BSD-3-Clause",
+
"dependencies": {
+
"estraverse": "^5.1.0"
+
},
+
"engines": {
+
"node": ">=0.10"
+
}
+
},
+
"node_modules/esrecurse": {
+
"version": "4.3.0",
+
"dev": true,
+
"license": "BSD-2-Clause",
+
"dependencies": {
+
"estraverse": "^5.2.0"
+
},
+
"engines": {
+
"node": ">=4.0"
+
}
+
},
+
"node_modules/estraverse": {
+
"version": "5.3.0",
+
"dev": true,
+
"license": "BSD-2-Clause",
+
"engines": {
+
"node": ">=4.0"
+
}
+
},
+
"node_modules/esutils": {
+
"version": "2.0.3",
+
"dev": true,
+
"license": "BSD-2-Clause",
+
"engines": {
+
"node": ">=0.10.0"
+
}
+
},
+
"node_modules/eventemitter3": {
+
"version": "4.0.7",
+
"license": "MIT"
+
},
+
"node_modules/fast-deep-equal": {
+
"version": "3.1.3",
+
"license": "MIT"
+
},
+
"node_modules/fast-equals": {
+
"version": "5.2.2",
+
"license": "MIT",
+
"engines": {
+
"node": ">=6.0.0"
+
}
+
},
+
"node_modules/fast-glob": {
+
"version": "3.3.3",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@nodelib/fs.stat": "^2.0.2",
+
"@nodelib/fs.walk": "^1.2.3",
+
"glob-parent": "^5.1.2",
+
"merge2": "^1.3.0",
+
"micromatch": "^4.0.8"
+
},
+
"engines": {
+
"node": ">=8.6.0"
+
}
+
},
+
"node_modules/fast-glob/node_modules/glob-parent": {
+
"version": "5.1.2",
+
"dev": true,
+
"license": "ISC",
+
"dependencies": {
+
"is-glob": "^4.0.1"
+
},
+
"engines": {
+
"node": ">= 6"
+
}
+
},
+
"node_modules/fast-json-stable-stringify": {
+
"version": "2.1.0",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/fast-levenshtein": {
+
"version": "2.0.6",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/fastq": {
+
"version": "1.18.0",
+
"dev": true,
+
"license": "ISC",
+
"dependencies": {
+
"reusify": "^1.0.4"
+
}
+
},
+
"node_modules/file-entry-cache": {
+
"version": "8.0.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"flat-cache": "^4.0.0"
+
},
+
"engines": {
+
"node": ">=16.0.0"
+
}
+
},
+
"node_modules/fill-range": {
+
"version": "7.1.1",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"to-regex-range": "^5.0.1"
+
},
+
"engines": {
+
"node": ">=8"
+
}
+
},
+
"node_modules/find-root": {
+
"version": "1.1.0",
+
"license": "MIT"
+
},
+
"node_modules/find-up": {
+
"version": "5.0.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"locate-path": "^6.0.0",
+
"path-exists": "^4.0.0"
+
},
+
"engines": {
+
"node": ">=10"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/flat-cache": {
+
"version": "4.0.1",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"flatted": "^3.2.9",
+
"keyv": "^4.5.4"
+
},
+
"engines": {
+
"node": ">=16"
+
}
+
},
+
"node_modules/flatted": {
+
"version": "3.3.2",
+
"dev": true,
+
"license": "ISC"
+
},
+
"node_modules/follow-redirects": {
+
"version": "1.15.9",
+
"funding": [
+
{
+
"type": "individual",
+
"url": "https://github.com/sponsors/RubenVerborgh"
+
}
+
],
+
"license": "MIT",
+
"engines": {
+
"node": ">=4.0"
+
},
+
"peerDependenciesMeta": {
+
"debug": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/form-data": {
+
"version": "4.0.1",
+
"license": "MIT",
+
"dependencies": {
+
"asynckit": "^0.4.0",
+
"combined-stream": "^1.0.8",
+
"mime-types": "^2.1.12"
+
},
+
"engines": {
+
"node": ">= 6"
+
}
+
},
+
"node_modules/fsevents": {
+
"version": "2.3.3",
+
"license": "MIT",
+
"optional": true,
+
"os": [
+
"darwin"
+
],
+
"engines": {
+
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+
}
+
},
+
"node_modules/function-bind": {
+
"version": "1.1.2",
+
"license": "MIT",
+
"funding": {
+
"url": "https://github.com/sponsors/ljharb"
+
}
+
},
+
"node_modules/gensync": {
+
"version": "1.0.0-beta.2",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=6.9.0"
+
}
+
},
+
"node_modules/get-nonce": {
+
"version": "1.0.1",
+
"license": "MIT",
+
"engines": {
+
"node": ">=6"
+
}
+
},
+
"node_modules/glob-parent": {
+
"version": "6.0.2",
+
"dev": true,
+
"license": "ISC",
+
"dependencies": {
+
"is-glob": "^4.0.3"
+
},
+
"engines": {
+
"node": ">=10.13.0"
+
}
+
},
+
"node_modules/globals": {
+
"version": "15.14.0",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=18"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/graceful-fs": {
+
"version": "4.2.11",
+
"license": "ISC"
+
},
+
"node_modules/graphemer": {
+
"version": "1.4.0",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/has-flag": {
+
"version": "4.0.0",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=8"
+
}
+
},
+
"node_modules/hasown": {
+
"version": "2.0.2",
+
"license": "MIT",
+
"dependencies": {
+
"function-bind": "^1.1.2"
+
},
+
"engines": {
+
"node": ">= 0.4"
+
}
+
},
+
"node_modules/hoist-non-react-statics": {
+
"version": "3.3.2",
+
"license": "BSD-3-Clause",
+
"dependencies": {
+
"react-is": "^16.7.0"
+
}
+
},
+
"node_modules/hoist-non-react-statics/node_modules/react-is": {
+
"version": "16.13.1",
+
"license": "MIT"
+
},
+
"node_modules/ignore": {
+
"version": "5.3.2",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">= 4"
+
}
+
},
+
"node_modules/import-fresh": {
+
"version": "3.3.0",
+
"license": "MIT",
+
"dependencies": {
+
"parent-module": "^1.0.0",
+
"resolve-from": "^4.0.0"
+
},
+
"engines": {
+
"node": ">=6"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/imurmurhash": {
+
"version": "0.1.4",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=0.8.19"
+
}
+
},
+
"node_modules/internmap": {
+
"version": "2.0.3",
+
"license": "ISC",
+
"engines": {
+
"node": ">=12"
+
}
+
},
+
"node_modules/is-arrayish": {
+
"version": "0.2.1",
+
"license": "MIT"
+
},
+
"node_modules/is-core-module": {
+
"version": "2.16.1",
+
"license": "MIT",
+
"dependencies": {
+
"hasown": "^2.0.2"
+
},
+
"engines": {
+
"node": ">= 0.4"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/ljharb"
+
}
+
},
+
"node_modules/is-extglob": {
+
"version": "2.1.1",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=0.10.0"
+
}
+
},
+
"node_modules/is-glob": {
+
"version": "4.0.3",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"is-extglob": "^2.1.1"
+
},
+
"engines": {
+
"node": ">=0.10.0"
+
}
+
},
+
"node_modules/is-number": {
+
"version": "7.0.0",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=0.12.0"
+
}
+
},
+
"node_modules/isexe": {
+
"version": "2.0.0",
+
"dev": true,
+
"license": "ISC"
+
},
+
"node_modules/jiti": {
+
"version": "2.4.2",
+
"license": "MIT",
+
"bin": {
+
"jiti": "lib/jiti-cli.mjs"
+
}
+
},
+
"node_modules/js-tokens": {
+
"version": "4.0.0",
+
"license": "MIT"
+
},
+
"node_modules/js-yaml": {
+
"version": "4.1.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"argparse": "^2.0.1"
+
},
+
"bin": {
+
"js-yaml": "bin/js-yaml.js"
+
}
+
},
+
"node_modules/jsesc": {
+
"version": "3.1.0",
+
"license": "MIT",
+
"bin": {
+
"jsesc": "bin/jsesc"
+
},
+
"engines": {
+
"node": ">=6"
+
}
+
},
+
"node_modules/json-buffer": {
+
"version": "3.0.1",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/json-parse-even-better-errors": {
+
"version": "2.3.1",
+
"license": "MIT"
+
},
+
"node_modules/json-schema-traverse": {
+
"version": "0.4.1",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/json-stable-stringify-without-jsonify": {
+
"version": "1.0.1",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/json5": {
+
"version": "2.2.3",
+
"dev": true,
+
"license": "MIT",
+
"bin": {
+
"json5": "lib/cli.js"
+
},
+
"engines": {
+
"node": ">=6"
+
}
+
},
+
"node_modules/keyv": {
+
"version": "4.5.4",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"json-buffer": "3.0.1"
+
}
+
},
+
"node_modules/klona": {
+
"version": "2.0.6",
+
"license": "MIT",
+
"engines": {
+
"node": ">= 8"
+
}
+
},
+
"node_modules/levn": {
+
"version": "0.4.1",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"prelude-ls": "^1.2.1",
+
"type-check": "~0.4.0"
+
},
+
"engines": {
+
"node": ">= 0.8.0"
+
}
+
},
+
"node_modules/lightningcss": {
+
"version": "1.29.1",
+
"license": "MPL-2.0",
+
"dependencies": {
+
"detect-libc": "^1.0.3"
+
},
+
"engines": {
+
"node": ">= 12.0.0"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/parcel"
+
},
+
"optionalDependencies": {
+
"lightningcss-darwin-arm64": "1.29.1",
+
"lightningcss-darwin-x64": "1.29.1",
+
"lightningcss-freebsd-x64": "1.29.1",
+
"lightningcss-linux-arm-gnueabihf": "1.29.1",
+
"lightningcss-linux-arm64-gnu": "1.29.1",
+
"lightningcss-linux-arm64-musl": "1.29.1",
+
"lightningcss-linux-x64-gnu": "1.29.1",
+
"lightningcss-linux-x64-musl": "1.29.1",
+
"lightningcss-win32-arm64-msvc": "1.29.1",
+
"lightningcss-win32-x64-msvc": "1.29.1"
+
}
+
},
+
"node_modules/lightningcss-darwin-arm64": {
+
"version": "1.29.1",
+
"cpu": [
+
"arm64"
+
],
+
"license": "MPL-2.0",
+
"optional": true,
+
"os": [
+
"darwin"
+
],
+
"engines": {
+
"node": ">= 12.0.0"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/parcel"
+
}
+
},
+
"node_modules/lines-and-columns": {
+
"version": "1.2.4",
+
"license": "MIT"
+
},
+
"node_modules/locate-path": {
+
"version": "6.0.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"p-locate": "^5.0.0"
+
},
+
"engines": {
+
"node": ">=10"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/lodash": {
+
"version": "4.17.21",
+
"license": "MIT"
+
},
+
"node_modules/lodash.merge": {
+
"version": "4.6.2",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/loose-envify": {
+
"version": "1.4.0",
+
"license": "MIT",
+
"dependencies": {
+
"js-tokens": "^3.0.0 || ^4.0.0"
+
},
+
"bin": {
+
"loose-envify": "cli.js"
+
}
+
},
+
"node_modules/lru-cache": {
+
"version": "5.1.1",
+
"dev": true,
+
"license": "ISC",
+
"dependencies": {
+
"yallist": "^3.0.2"
+
}
+
},
+
"node_modules/lucide-react": {
+
"version": "0.474.0",
+
"license": "ISC",
+
"peerDependencies": {
+
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+
}
+
},
+
"node_modules/merge2": {
+
"version": "1.4.1",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">= 8"
+
}
+
},
+
"node_modules/micromatch": {
+
"version": "4.0.8",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"braces": "^3.0.3",
+
"picomatch": "^2.3.1"
+
},
+
"engines": {
+
"node": ">=8.6"
+
}
+
},
+
"node_modules/mime-db": {
+
"version": "1.52.0",
+
"license": "MIT",
+
"engines": {
+
"node": ">= 0.6"
+
}
+
},
+
"node_modules/mime-types": {
+
"version": "2.1.35",
+
"license": "MIT",
+
"dependencies": {
+
"mime-db": "1.52.0"
+
},
+
"engines": {
+
"node": ">= 0.6"
+
}
+
},
+
"node_modules/minimatch": {
+
"version": "3.1.2",
+
"dev": true,
+
"license": "ISC",
+
"dependencies": {
+
"brace-expansion": "^1.1.7"
+
},
+
"engines": {
+
"node": "*"
+
}
+
},
+
"node_modules/ms": {
+
"version": "2.1.3",
+
"license": "MIT"
+
},
+
"node_modules/nanoid": {
+
"version": "3.3.8",
+
"funding": [
+
{
+
"type": "github",
+
"url": "https://github.com/sponsors/ai"
+
}
+
],
+
"license": "MIT",
+
"bin": {
+
"nanoid": "bin/nanoid.cjs"
+
},
+
"engines": {
+
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+
}
+
},
+
"node_modules/natural-compare": {
+
"version": "1.4.0",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/node-releases": {
+
"version": "2.0.19",
+
"dev": true,
+
"license": "MIT"
+
},
+
"node_modules/object-assign": {
+
"version": "4.1.1",
+
"license": "MIT",
+
"engines": {
+
"node": ">=0.10.0"
+
}
+
},
+
"node_modules/optionator": {
+
"version": "0.9.4",
+
"dev": true,
+
"license": "MIT",
+
"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"
+
},
+
"engines": {
+
"node": ">= 0.8.0"
+
}
+
},
+
"node_modules/p-limit": {
+
"version": "3.1.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"yocto-queue": "^0.1.0"
+
},
+
"engines": {
+
"node": ">=10"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/p-locate": {
+
"version": "5.0.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"p-limit": "^3.0.2"
+
},
+
"engines": {
+
"node": ">=10"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/parent-module": {
+
"version": "1.0.1",
+
"license": "MIT",
+
"dependencies": {
+
"callsites": "^3.0.0"
+
},
+
"engines": {
+
"node": ">=6"
+
}
+
},
+
"node_modules/parse-json": {
+
"version": "5.2.0",
+
"license": "MIT",
+
"dependencies": {
+
"@babel/code-frame": "^7.0.0",
+
"error-ex": "^1.3.1",
+
"json-parse-even-better-errors": "^2.3.0",
+
"lines-and-columns": "^1.1.6"
+
},
+
"engines": {
+
"node": ">=8"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/path-exists": {
+
"version": "4.0.0",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=8"
+
}
+
},
+
"node_modules/path-key": {
+
"version": "3.1.1",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=8"
+
}
+
},
+
"node_modules/path-parse": {
+
"version": "1.0.7",
+
"license": "MIT"
+
},
+
"node_modules/path-type": {
+
"version": "4.0.0",
+
"license": "MIT",
+
"engines": {
+
"node": ">=8"
+
}
+
},
+
"node_modules/picocolors": {
+
"version": "1.1.1",
+
"license": "ISC"
+
},
+
"node_modules/picomatch": {
+
"version": "2.3.1",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=8.6"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/jonschlinkert"
+
}
+
},
+
"node_modules/postcss": {
+
"version": "8.5.1",
+
"funding": [
+
{
+
"type": "opencollective",
+
"url": "https://opencollective.com/postcss/"
+
},
+
{
+
"type": "tidelift",
+
"url": "https://tidelift.com/funding/github/npm/postcss"
+
},
+
{
+
"type": "github",
+
"url": "https://github.com/sponsors/ai"
+
}
+
],
+
"license": "MIT",
+
"dependencies": {
+
"nanoid": "^3.3.8",
+
"picocolors": "^1.1.1",
+
"source-map-js": "^1.2.1"
+
},
+
"engines": {
+
"node": "^10 || ^12 || >=14"
+
}
+
},
+
"node_modules/prelude-ls": {
+
"version": "1.2.1",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">= 0.8.0"
+
}
+
},
+
"node_modules/prop-types": {
+
"version": "15.8.1",
+
"license": "MIT",
+
"dependencies": {
+
"loose-envify": "^1.4.0",
+
"object-assign": "^4.1.1",
+
"react-is": "^16.13.1"
+
}
+
},
+
"node_modules/prop-types/node_modules/react-is": {
+
"version": "16.13.1",
+
"license": "MIT"
+
},
+
"node_modules/proxy-from-env": {
+
"version": "1.1.0",
+
"license": "MIT"
+
},
+
"node_modules/punycode": {
+
"version": "2.3.1",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=6"
+
}
+
},
+
"node_modules/queue-microtask": {
+
"version": "1.2.3",
+
"dev": true,
+
"funding": [
+
{
+
"type": "github",
+
"url": "https://github.com/sponsors/feross"
+
},
+
{
+
"type": "patreon",
+
"url": "https://www.patreon.com/feross"
+
},
+
{
+
"type": "consulting",
+
"url": "https://feross.org/support"
+
}
+
],
+
"license": "MIT"
+
},
+
"node_modules/react": {
+
"version": "18.3.1",
+
"license": "MIT",
+
"dependencies": {
+
"loose-envify": "^1.1.0"
+
},
+
"engines": {
+
"node": ">=0.10.0"
+
}
+
},
+
"node_modules/react-dom": {
+
"version": "18.3.1",
+
"license": "MIT",
+
"dependencies": {
+
"loose-envify": "^1.1.0",
+
"scheduler": "^0.23.2"
+
},
+
"peerDependencies": {
+
"react": "^18.3.1"
+
}
+
},
+
"node_modules/react-hook-form": {
+
"version": "7.54.2",
+
"license": "MIT",
+
"engines": {
+
"node": ">=18.0.0"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/react-hook-form"
+
},
+
"peerDependencies": {
+
"react": "^16.8.0 || ^17 || ^18 || ^19"
+
}
+
},
+
"node_modules/react-is": {
+
"version": "18.3.1",
+
"license": "MIT"
+
},
+
"node_modules/react-number-format": {
+
"version": "5.4.3",
+
"license": "MIT",
+
"peerDependencies": {
+
"react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+
"react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+
}
+
},
+
"node_modules/react-refresh": {
+
"version": "0.14.2",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=0.10.0"
+
}
+
},
+
"node_modules/react-remove-scroll": {
+
"version": "2.6.3",
+
"license": "MIT",
+
"dependencies": {
+
"react-remove-scroll-bar": "^2.3.7",
+
"react-style-singleton": "^2.2.3",
+
"tslib": "^2.1.0",
+
"use-callback-ref": "^1.3.3",
+
"use-sidecar": "^1.1.3"
+
},
+
"engines": {
+
"node": ">=10"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/react-remove-scroll-bar": {
+
"version": "2.3.8",
+
"license": "MIT",
+
"dependencies": {
+
"react-style-singleton": "^2.2.2",
+
"tslib": "^2.0.0"
+
},
+
"engines": {
+
"node": ">=10"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/react-simple-icons": {
+
"version": "1.0.0-beta.5",
+
"license": "MIT",
+
"dependencies": {
+
"@jxnblk/simple-icons": "^1.0.0"
+
}
+
},
+
"node_modules/react-smooth": {
+
"version": "4.0.4",
+
"license": "MIT",
+
"dependencies": {
+
"fast-equals": "^5.0.1",
+
"prop-types": "^15.8.1",
+
"react-transition-group": "^4.4.5"
+
},
+
"peerDependencies": {
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+
}
+
},
+
"node_modules/react-style-singleton": {
+
"version": "2.2.3",
+
"license": "MIT",
+
"dependencies": {
+
"get-nonce": "^1.0.0",
+
"tslib": "^2.0.0"
+
},
+
"engines": {
+
"node": ">=10"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/react-textarea-autosize": {
+
"version": "8.5.6",
+
"license": "MIT",
+
"dependencies": {
+
"@babel/runtime": "^7.20.13",
+
"use-composed-ref": "^1.3.0",
+
"use-latest": "^1.2.1"
+
},
+
"engines": {
+
"node": ">=10"
+
},
+
"peerDependencies": {
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+
}
+
},
+
"node_modules/react-transition-group": {
+
"version": "4.4.5",
+
"license": "BSD-3-Clause",
+
"dependencies": {
+
"@babel/runtime": "^7.5.5",
+
"dom-helpers": "^5.0.1",
+
"loose-envify": "^1.4.0",
+
"prop-types": "^15.6.2"
+
},
+
"peerDependencies": {
+
"react": ">=16.6.0",
+
"react-dom": ">=16.6.0"
+
}
+
},
+
"node_modules/recharts": {
+
"version": "2.15.0",
+
"license": "MIT",
+
"dependencies": {
+
"clsx": "^2.0.0",
+
"eventemitter3": "^4.0.1",
+
"lodash": "^4.17.21",
+
"react-is": "^18.3.1",
+
"react-smooth": "^4.0.0",
+
"recharts-scale": "^0.4.4",
+
"tiny-invariant": "^1.3.1",
+
"victory-vendor": "^36.6.8"
+
},
+
"engines": {
+
"node": ">=14"
+
},
+
"peerDependencies": {
+
"react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+
"react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+
}
+
},
+
"node_modules/recharts-scale": {
+
"version": "0.4.5",
+
"license": "MIT",
+
"dependencies": {
+
"decimal.js-light": "^2.4.1"
+
}
+
},
+
"node_modules/regenerator-runtime": {
+
"version": "0.14.1",
+
"license": "MIT"
+
},
+
"node_modules/resolve": {
+
"version": "1.22.10",
+
"license": "MIT",
+
"dependencies": {
+
"is-core-module": "^2.16.0",
+
"path-parse": "^1.0.7",
+
"supports-preserve-symlinks-flag": "^1.0.0"
+
},
+
"bin": {
+
"resolve": "bin/resolve"
+
},
+
"engines": {
+
"node": ">= 0.4"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/ljharb"
+
}
+
},
+
"node_modules/resolve-from": {
+
"version": "4.0.0",
+
"license": "MIT",
+
"engines": {
+
"node": ">=4"
+
}
+
},
+
"node_modules/reusify": {
+
"version": "1.0.4",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"iojs": ">=1.0.0",
+
"node": ">=0.10.0"
+
}
+
},
+
"node_modules/rollup": {
+
"version": "4.32.0",
+
"license": "MIT",
+
"dependencies": {
+
"@types/estree": "1.0.6"
+
},
+
"bin": {
+
"rollup": "dist/bin/rollup"
+
},
+
"engines": {
+
"node": ">=18.0.0",
+
"npm": ">=8.0.0"
+
},
+
"optionalDependencies": {
+
"@rollup/rollup-android-arm-eabi": "4.32.0",
+
"@rollup/rollup-android-arm64": "4.32.0",
+
"@rollup/rollup-darwin-arm64": "4.32.0",
+
"@rollup/rollup-darwin-x64": "4.32.0",
+
"@rollup/rollup-freebsd-arm64": "4.32.0",
+
"@rollup/rollup-freebsd-x64": "4.32.0",
+
"@rollup/rollup-linux-arm-gnueabihf": "4.32.0",
+
"@rollup/rollup-linux-arm-musleabihf": "4.32.0",
+
"@rollup/rollup-linux-arm64-gnu": "4.32.0",
+
"@rollup/rollup-linux-arm64-musl": "4.32.0",
+
"@rollup/rollup-linux-loongarch64-gnu": "4.32.0",
+
"@rollup/rollup-linux-powerpc64le-gnu": "4.32.0",
+
"@rollup/rollup-linux-riscv64-gnu": "4.32.0",
+
"@rollup/rollup-linux-s390x-gnu": "4.32.0",
+
"@rollup/rollup-linux-x64-gnu": "4.32.0",
+
"@rollup/rollup-linux-x64-musl": "4.32.0",
+
"@rollup/rollup-win32-arm64-msvc": "4.32.0",
+
"@rollup/rollup-win32-ia32-msvc": "4.32.0",
+
"@rollup/rollup-win32-x64-msvc": "4.32.0",
+
"fsevents": "~2.3.2"
+
}
+
},
+
"node_modules/run-parallel": {
+
"version": "1.2.0",
+
"dev": true,
+
"funding": [
+
{
+
"type": "github",
+
"url": "https://github.com/sponsors/feross"
+
},
+
{
+
"type": "patreon",
+
"url": "https://www.patreon.com/feross"
+
},
+
{
+
"type": "consulting",
+
"url": "https://feross.org/support"
+
}
+
],
+
"license": "MIT",
+
"dependencies": {
+
"queue-microtask": "^1.2.2"
+
}
+
},
+
"node_modules/scheduler": {
+
"version": "0.23.2",
+
"license": "MIT",
+
"dependencies": {
+
"loose-envify": "^1.1.0"
+
}
+
},
+
"node_modules/semver": {
+
"version": "6.3.1",
+
"dev": true,
+
"license": "ISC",
+
"bin": {
+
"semver": "bin/semver.js"
+
}
+
},
+
"node_modules/shebang-command": {
+
"version": "2.0.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"shebang-regex": "^3.0.0"
+
},
+
"engines": {
+
"node": ">=8"
+
}
+
},
+
"node_modules/shebang-regex": {
+
"version": "3.0.0",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=8"
+
}
+
},
+
"node_modules/simple-icons": {
+
"version": "14.4.0",
+
"license": "CC0-1.0",
+
"engines": {
+
"node": ">=0.12.18"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/simple-icons"
+
}
+
},
+
"node_modules/source-map": {
+
"version": "0.5.7",
+
"license": "BSD-3-Clause",
+
"engines": {
+
"node": ">=0.10.0"
+
}
+
},
+
"node_modules/source-map-js": {
+
"version": "1.2.1",
+
"license": "BSD-3-Clause",
+
"engines": {
+
"node": ">=0.10.0"
+
}
+
},
+
"node_modules/strip-json-comments": {
+
"version": "3.1.1",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=8"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/stylis": {
+
"version": "4.2.0",
+
"license": "MIT"
+
},
+
"node_modules/supports-color": {
+
"version": "7.2.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"has-flag": "^4.0.0"
+
},
+
"engines": {
+
"node": ">=8"
+
}
+
},
+
"node_modules/supports-preserve-symlinks-flag": {
+
"version": "1.0.0",
+
"license": "MIT",
+
"engines": {
+
"node": ">= 0.4"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/ljharb"
+
}
+
},
+
"node_modules/tabbable": {
+
"version": "6.2.0",
+
"license": "MIT"
+
},
+
"node_modules/tailwind-merge": {
+
"version": "2.6.0",
+
"license": "MIT",
+
"funding": {
+
"type": "github",
+
"url": "https://github.com/sponsors/dcastil"
+
}
+
},
+
"node_modules/tailwindcss": {
+
"version": "4.0.0",
+
"license": "MIT"
+
},
+
"node_modules/tailwindcss-animate": {
+
"version": "1.0.7",
+
"license": "MIT",
+
"peerDependencies": {
+
"tailwindcss": ">=3.0.0 || insiders"
+
}
+
},
+
"node_modules/tapable": {
+
"version": "2.2.1",
+
"license": "MIT",
+
"engines": {
+
"node": ">=6"
+
}
+
},
+
"node_modules/tiny-invariant": {
+
"version": "1.3.3",
+
"license": "MIT"
+
},
+
"node_modules/to-regex-range": {
+
"version": "5.0.1",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"is-number": "^7.0.0"
+
},
+
"engines": {
+
"node": ">=8.0"
+
}
+
},
+
"node_modules/ts-api-utils": {
+
"version": "2.0.0",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=18.12"
+
},
+
"peerDependencies": {
+
"typescript": ">=4.8.4"
+
}
+
},
+
"node_modules/tslib": {
+
"version": "2.8.1",
+
"license": "0BSD"
+
},
+
"node_modules/type-check": {
+
"version": "0.4.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"prelude-ls": "^1.2.1"
+
},
+
"engines": {
+
"node": ">= 0.8.0"
+
}
+
},
+
"node_modules/type-fest": {
+
"version": "4.33.0",
+
"license": "(MIT OR CC0-1.0)",
+
"engines": {
+
"node": ">=16"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/typescript": {
+
"version": "5.6.3",
+
"dev": true,
+
"license": "Apache-2.0",
+
"bin": {
+
"tsc": "bin/tsc",
+
"tsserver": "bin/tsserver"
+
},
+
"engines": {
+
"node": ">=14.17"
+
}
+
},
+
"node_modules/typescript-eslint": {
+
"version": "8.21.0",
+
"dev": true,
+
"license": "MIT",
+
"dependencies": {
+
"@typescript-eslint/eslint-plugin": "8.21.0",
+
"@typescript-eslint/parser": "8.21.0",
+
"@typescript-eslint/utils": "8.21.0"
+
},
+
"engines": {
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
},
+
"funding": {
+
"type": "opencollective",
+
"url": "https://opencollective.com/typescript-eslint"
+
},
+
"peerDependencies": {
+
"eslint": "^8.57.0 || ^9.0.0",
+
"typescript": ">=4.8.4 <5.8.0"
+
}
+
},
+
"node_modules/undici-types": {
+
"version": "6.20.0",
+
"devOptional": true,
+
"license": "MIT"
+
},
+
"node_modules/update-browserslist-db": {
+
"version": "1.1.2",
+
"dev": true,
+
"funding": [
+
{
+
"type": "opencollective",
+
"url": "https://opencollective.com/browserslist"
+
},
+
{
+
"type": "tidelift",
+
"url": "https://tidelift.com/funding/github/npm/browserslist"
+
},
+
{
+
"type": "github",
+
"url": "https://github.com/sponsors/ai"
+
}
+
],
+
"license": "MIT",
+
"dependencies": {
+
"escalade": "^3.2.0",
+
"picocolors": "^1.1.1"
+
},
+
"bin": {
+
"update-browserslist-db": "cli.js"
+
},
+
"peerDependencies": {
+
"browserslist": ">= 4.21.0"
+
}
+
},
+
"node_modules/uri-js": {
+
"version": "4.4.1",
+
"dev": true,
+
"license": "BSD-2-Clause",
+
"dependencies": {
+
"punycode": "^2.1.0"
+
}
+
},
+
"node_modules/use-callback-ref": {
+
"version": "1.3.3",
+
"license": "MIT",
+
"dependencies": {
+
"tslib": "^2.0.0"
+
},
+
"engines": {
+
"node": ">=10"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/use-composed-ref": {
+
"version": "1.4.0",
+
"license": "MIT",
+
"peerDependencies": {
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/use-isomorphic-layout-effect": {
+
"version": "1.2.0",
+
"license": "MIT",
+
"peerDependencies": {
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/use-latest": {
+
"version": "1.3.0",
+
"license": "MIT",
+
"dependencies": {
+
"use-isomorphic-layout-effect": "^1.1.1"
+
},
+
"peerDependencies": {
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/use-sidecar": {
+
"version": "1.1.3",
+
"license": "MIT",
+
"dependencies": {
+
"detect-node-es": "^1.1.0",
+
"tslib": "^2.0.0"
+
},
+
"engines": {
+
"node": ">=10"
+
},
+
"peerDependencies": {
+
"@types/react": "*",
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+
},
+
"peerDependenciesMeta": {
+
"@types/react": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/victory-vendor": {
+
"version": "36.9.2",
+
"license": "MIT AND ISC",
+
"dependencies": {
+
"@types/d3-array": "^3.0.3",
+
"@types/d3-ease": "^3.0.0",
+
"@types/d3-interpolate": "^3.0.1",
+
"@types/d3-scale": "^4.0.2",
+
"@types/d3-shape": "^3.1.0",
+
"@types/d3-time": "^3.0.0",
+
"@types/d3-timer": "^3.0.0",
+
"d3-array": "^3.1.6",
+
"d3-ease": "^3.0.1",
+
"d3-interpolate": "^3.0.1",
+
"d3-scale": "^4.0.2",
+
"d3-shape": "^3.1.0",
+
"d3-time": "^3.0.0",
+
"d3-timer": "^3.0.1"
+
}
+
},
+
"node_modules/vite": {
+
"version": "6.0.11",
+
"license": "MIT",
+
"dependencies": {
+
"esbuild": "^0.24.2",
+
"postcss": "^8.4.49",
+
"rollup": "^4.23.0"
+
},
+
"bin": {
+
"vite": "bin/vite.js"
+
},
+
"engines": {
+
"node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+
},
+
"funding": {
+
"url": "https://github.com/vitejs/vite?sponsor=1"
+
},
+
"optionalDependencies": {
+
"fsevents": "~2.3.3"
+
},
+
"peerDependencies": {
+
"@types/node": "^18.0.0 || ^20.0.0 || >=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"
+
},
+
"peerDependenciesMeta": {
+
"@types/node": {
+
"optional": true
+
},
+
"jiti": {
+
"optional": true
+
},
+
"less": {
+
"optional": true
+
},
+
"lightningcss": {
+
"optional": true
+
},
+
"sass": {
+
"optional": true
+
},
+
"sass-embedded": {
+
"optional": true
+
},
+
"stylus": {
+
"optional": true
+
},
+
"sugarss": {
+
"optional": true
+
},
+
"terser": {
+
"optional": true
+
},
+
"tsx": {
+
"optional": true
+
},
+
"yaml": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/which": {
+
"version": "2.0.2",
+
"dev": true,
+
"license": "ISC",
+
"dependencies": {
+
"isexe": "^2.0.0"
+
},
+
"bin": {
+
"node-which": "bin/node-which"
+
},
+
"engines": {
+
"node": ">= 8"
+
}
+
},
+
"node_modules/word-wrap": {
+
"version": "1.2.5",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=0.10.0"
+
}
+
},
+
"node_modules/yallist": {
+
"version": "3.1.1",
+
"dev": true,
+
"license": "ISC"
+
},
+
"node_modules/yaml": {
+
"version": "2.7.0",
+
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
+
"integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==",
+
"license": "ISC",
+
"optional": true,
+
"peer": true,
+
"bin": {
+
"yaml": "bin.mjs"
+
},
+
"engines": {
+
"node": ">= 14"
+
}
+
},
+
"node_modules/yocto-queue": {
+
"version": "0.1.0",
+
"dev": true,
+
"license": "MIT",
+
"engines": {
+
"node": ">=10"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/zod": {
+
"version": "3.24.1",
+
"license": "MIT",
+
"funding": {
+
"url": "https://github.com/sponsors/colinhacks"
+
}
+
}
+
}
+
}
+1
frontend/package.json
···
"dependencies": {
"@emotion/react": "^11.14.0",
"@hookform/resolvers": "^3.10.0",
+
"@icons-pack/react-simple-icons": "^11.2.0",
"@mantine/core": "^7.16.1",
"@mantine/form": "^7.16.1",
"@mantine/hooks": "^7.16.1",
+52 -51
frontend/src/App.tsx
···
import { LinkForm } from './components/LinkForm'
import { LinkList } from './components/LinkList'
import { AuthForms } from './components/AuthForms'
+
import { Footer } from './components/Footer'
import { AuthProvider, useAuth } from './context/AuthContext'
import { Button } from "@/components/ui/button"
import { Toaster } from './components/ui/toaster'
···
import { useState } from 'react'
function AppContent() {
-
const { user, logout } = useAuth()
-
const [refreshCounter, setRefreshCounter] = useState(0)
-
-
const handleLinkCreated = () => {
-
setRefreshCounter(prev => prev + 1)
-
}
+
const { user, logout } = useAuth()
+
const [refreshCounter, setRefreshCounter] = useState(0)
+
+
const handleLinkCreated = () => {
+
setRefreshCounter(prev => prev + 1)
+
}
-
return (
-
<div className="min-h-screen bg-background flex flex-col">
-
<header className="border-b">
-
<div className="container max-w-6xl mx-auto flex h-16 items-center justify-between px-4">
-
<h1 className="text-2xl font-bold">SimpleLink</h1>
-
<div className="flex items-center gap-4">
-
{user ? (
-
<>
-
<span className="text-sm text-muted-foreground">Welcome, {user.email}</span>
-
<Button variant="outline" size="sm" onClick={logout}>
-
Logout
-
</Button>
-
</>
-
) : (
-
<span className="text-sm text-muted-foreground">A link shortening and tracking service</span>
-
)}
-
<ModeToggle />
-
</div>
-
</div>
-
</header>
-
-
<main className="flex-1 flex flex-col">
-
<div className="container max-w-6xl mx-auto px-4 py-8 flex-1 flex flex-col">
-
<div className="space-y-8 flex-1 flex flex-col justify-center">
-
{user ? (
-
<>
-
<LinkForm onSuccess={handleLinkCreated} />
-
<LinkList refresh={refreshCounter} />
-
</>
-
) : (
-
<AuthForms />
-
)}
-
</div>
-
</div>
-
</main>
-
</div>
-
)
+
return (
+
<div className="min-h-screen bg-background flex flex-col">
+
<header className="border-b">
+
<div className="container max-w-6xl mx-auto flex h-16 items-center justify-between px-4">
+
<h1 className="text-2xl font-bold">SimpleLink</h1>
+
<div className="flex items-center space-x-2 sm:space-x-4">
+
{user ? (
+
<>
+
<span className="text-sm text-muted-foreground hidden sm:inline">Welcome, {user.email}</span>
+
<Button variant="outline" size="sm" onClick={logout}>
+
Logout
+
</Button>
+
</>
+
) : (
+
<span className="text-sm text-muted-foreground mr-2">A link shortening service</span>
+
)}
+
<ModeToggle />
+
</div>
+
</div>
+
</header>
+
<main className="flex-1 flex flex-col">
+
<div className="container max-w-6xl mx-auto px-4 py-8 flex-1 flex flex-col">
+
<div className="space-y-8 flex-1 flex flex-col justify-center">
+
{user ? (
+
<>
+
<LinkForm onSuccess={handleLinkCreated} />
+
<LinkList refresh={refreshCounter} />
+
</>
+
) : (
+
<AuthForms />
+
)}
+
</div>
+
</div>
+
</main>
+
<Footer />
+
</div>
+
)
}
function App() {
-
return (
-
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
-
<AuthProvider>
-
<AppContent />
-
<Toaster />
-
</AuthProvider>
-
</ThemeProvider>
-
)
+
return (
+
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
+
<AuthProvider>
+
<AppContent />
+
<Toaster />
+
</AuthProvider>
+
</ThemeProvider>
+
)
}
export default App
+54
frontend/src/components/Footer.tsx
···
+
import { SiGithub, SiBluesky } from "@icons-pack/react-simple-icons"
+
import { Button } from "@/components/ui/button"
+
import { useState } from 'react'
+
import { PrivacyModal } from './PrivacyModal'
+
+
export function Footer() {
+
const [privacyModalOpen, setPrivacyModalOpen] = useState(false)
+
+
const handlePrivacyModalOpen = () => {
+
setPrivacyModalOpen(true)
+
}
+
+
const handlePrivacyModalClose = () => {
+
setPrivacyModalOpen(false)
+
}
+
+
return (
+
<footer className="border-t">
+
<div className="container max-w-6xl mx-auto flex h-14 items-center justify-between px-4">
+
<p className="text-sm text-muted-foreground">Created by waveringana</p>
+
<div className="flex items-center space-x-4">
+
<nav className="flex items-center space-x-4">
+
<a
+
onClick={handlePrivacyModalOpen}
+
href="#"
+
>
+
Privacy
+
</a>
+
</nav>
+
<div className="flex items-center space-x-2">
+
<Button variant="ghost" size="icon">
+
<a href="https://l.nekomimi.pet/github?source=shortener" target="_blank" rel="noopener noreferrer">
+
<SiGithub className="h-4 w-4" />
+
</a>
+
<span className="sr-only">GitHub</span>
+
</Button>
+
+
<Button variant="ghost" size="icon">
+
<a href="https://l.nekomimi.pet/twitter?source=shortener" target="_blank" rel="noopener noreferrer">
+
<SiBluesky className="h-4 w-4" />
+
</a>
+
<span className="sr-only">Twitter</span>
+
</Button>
+
</div>
+
</div>
+
</div>
+
+
<PrivacyModal
+
isOpen={privacyModalOpen}
+
onClose={handlePrivacyModalClose}
+
/>
+
</footer>
+
)
+
}
+39
frontend/src/components/PrivacyModal.tsx
···
+
import {
+
Dialog,
+
DialogContent,
+
DialogDescription,
+
DialogFooter,
+
DialogHeader,
+
DialogTitle,
+
} from "@/components/ui/dialog"
+
+
import { Button } from "@/components/ui/button"
+
+
interface PrivacyModalProps {
+
isOpen: boolean;
+
onClose: () => void;
+
}
+
+
export function PrivacyModal({ isOpen, onClose }: PrivacyModalProps) {
+
return (
+
<Dialog open={isOpen}>
+
<DialogContent className="max-w-md">
+
<DialogHeader>
+
<DialogTitle>Privacy Policy</DialogTitle>
+
<DialogDescription>
+
Simplelink's data collection and usage policies
+
</DialogDescription>
+
</DialogHeader>
+
<div className="text-sm text-muted-foreground">
+
<p>Simplelink shortens URLs and tracks only two pieces of information: the time each link is clicked and the source of the link through a ?source= query tag. We do not collect any personal information such as IP addresses or any other data.</p>
+
</div>
+
<DialogFooter>
+
<Button variant="outline" onClick={onClose}>
+
Close
+
</Button>
+
</DialogFooter>
+
</DialogContent>
+
</Dialog>
+
)
+
}
+