From 09059cf2859b8f3d808c6ef5a20ae50366103448 Mon Sep 17 00:00:00 2001 From: lukas <67807954+lukasabbe@users.noreply.github.com> Date: Wed, 15 Apr 2026 23:02:52 +0200 Subject: [PATCH] init --- .gitignore | 23 + .npmrc | 1 + .prettierignore | 9 + .prettierrc | 16 + .vscode/extensions.json | 8 + .vscode/settings.json | 5 + README.md | 3 + eslint.config.js | 44 + package.json | 47 + pnpm-lock.yaml | 2709 ++++++++++++++++++++ pnpm-workspace.yaml | 3 + src/app.d.ts | 13 + src/app.html | 28 + src/lib/components/CoursePicker.svelte | 126 + src/lib/components/CoursePie.svelte | 59 + src/lib/components/HeaderButton.svelte | 11 + src/lib/components/LanguageSwitcher.svelte | 18 + src/lib/components/ModuleModal.svelte | 93 + src/lib/components/ThemeSwitcher.svelte | 24 + src/lib/i18n/index.ts | 30 + src/lib/i18n/translations.ts | 41 + src/routes/+layout.svelte | 40 + src/routes/+page.svelte | 17 + src/routes/[course]/+page.svelte | 117 + src/routes/layout.css | 9 + static/og-image.png | Bin 0 -> 57220 bytes static/robots.txt | 3 + svelte.config.js | 17 + tsconfig.json | 20 + vite.config.ts | 5 + 30 files changed, 3539 insertions(+) create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 README.md create mode 100644 eslint.config.js create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml create mode 100644 src/app.d.ts create mode 100644 src/app.html create mode 100644 src/lib/components/CoursePicker.svelte create mode 100644 src/lib/components/CoursePie.svelte create mode 100644 src/lib/components/HeaderButton.svelte create mode 100644 src/lib/components/LanguageSwitcher.svelte create mode 100644 src/lib/components/ModuleModal.svelte create mode 100644 src/lib/components/ThemeSwitcher.svelte create mode 100644 src/lib/i18n/index.ts create mode 100644 src/lib/i18n/translations.ts create mode 100644 src/routes/+layout.svelte create mode 100644 src/routes/+page.svelte create mode 100644 src/routes/[course]/+page.svelte create mode 100644 src/routes/layout.css create mode 100644 static/og-image.png create mode 100644 static/robots.txt create mode 100644 svelte.config.js create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3b462cb --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +node_modules + +# Output +.output +.vercel +.netlify +.wrangler +/.svelte-kit +/build + +# OS +.DS_Store +Thumbs.db + +# Env +.env +.env.* +!.env.example +!.env.test + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..7d74fe2 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,9 @@ +# Package Managers +package-lock.json +pnpm-lock.yaml +yarn.lock +bun.lock +bun.lockb + +# Miscellaneous +/static/ diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..819fa57 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,16 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"], + "overrides": [ + { + "files": "*.svelte", + "options": { + "parser": "svelte" + } + } + ], + "tailwindStylesheet": "./src/routes/layout.css" +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..175f389 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "svelte.svelte-vscode", + "esbenp.prettier-vscode", + "dbaeumer.vscode-eslint", + "bradlc.vscode-tailwindcss" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..bc31e15 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "*.css": "tailwindcss" + } +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..8770b86 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Liu stats + +Website for seeing liu exam stats diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..0014edd --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,44 @@ +import prettier from 'eslint-config-prettier'; +import path from 'node:path'; +import { includeIgnoreFile } from '@eslint/compat'; +import js from '@eslint/js'; +import svelte from 'eslint-plugin-svelte'; +import { defineConfig } from 'eslint/config'; +import globals from 'globals'; +import ts from 'typescript-eslint'; +import svelteConfig from './svelte.config.js'; + +const gitignorePath = path.resolve(import.meta.dirname, '.gitignore'); + +export default defineConfig( + includeIgnoreFile(gitignorePath), + js.configs.recommended, + ts.configs.recommended, + svelte.configs.recommended, + prettier, + svelte.configs.prettier, + { + languageOptions: { globals: { ...globals.browser, ...globals.node } }, + rules: { + // typescript-eslint strongly recommend that you do not use the no-undef lint rule on TypeScript projects. + // see: https://typescript-eslint.io/troubleshooting/faqs/eslint/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors + 'no-undef': 'off' + } + }, + { + files: ['**/*.svelte', '**/*.svelte.ts', '**/*.svelte.js'], + languageOptions: { + parserOptions: { + projectService: true, + extraFileExtensions: ['.svelte'], + parser: ts.parser, + svelteConfig + } + } + }, + { + // Override or add rule settings here, such as: + // 'svelte/button-has-type': 'error' + rules: {} + } +); diff --git a/package.json b/package.json new file mode 100644 index 0000000..72cb58e --- /dev/null +++ b/package.json @@ -0,0 +1,47 @@ +{ + "name": "liu-stats", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "prepare": "svelte-kit sync || echo ''", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "prettier --check . && eslint .", + "format": "prettier --write ." + }, + "devDependencies": { + "@eslint/compat": "^2.0.4", + "@eslint/js": "^10.0.1", + "@sveltejs/adapter-auto": "^7.0.1", + "@sveltejs/kit": "^2.57.0", + "@sveltejs/vite-plugin-svelte": "^7.0.0", + "@tailwindcss/vite": "^4.2.2", + "@types/node": "^24", + "eslint": "^10.2.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-svelte": "^3.17.0", + "globals": "^17.4.0", + "prettier": "^3.8.1", + "prettier-plugin-svelte": "^3.5.1", + "prettier-plugin-tailwindcss": "^0.7.2", + "svelte": "^5.55.2", + "svelte-check": "^4.4.6", + "tailwindcss": "^4.2.2", + "typescript": "^6.0.2", + "typescript-eslint": "^8.58.1", + "vite": "^8.0.7" + }, + "dependencies": { + "@fontsource-variable/geist-mono": "^5.2.7", + "@fontsource-variable/inter": "^5.2.8", + "bits-ui": "^2.17.3", + "layerchart": "^2.0.0-next.43", + "liu-tentor-package": "^1.2.0", + "lucide-svelte": "^1.0.1", + "mode-watcher": "^1.1.0" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..d36ba54 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,2709 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@fontsource-variable/geist-mono': + specifier: ^5.2.7 + version: 5.2.7 + '@fontsource-variable/inter': + specifier: ^5.2.8 + version: 5.2.8 + bits-ui: + specifier: ^2.17.3 + version: 2.17.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + layerchart: + specifier: ^2.0.0-next.43 + version: 2.0.0-next.54(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + liu-tentor-package: + specifier: ^1.2.0 + version: 1.2.0 + lucide-svelte: + specifier: ^1.0.1 + version: 1.0.1(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + mode-watcher: + specifier: ^1.1.0 + version: 1.1.0(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + devDependencies: + '@eslint/compat': + specifier: ^2.0.4 + version: 2.0.5(eslint@10.2.0(jiti@2.6.1)) + '@eslint/js': + specifier: ^10.0.1 + version: 10.0.1(eslint@10.2.0(jiti@2.6.1)) + '@sveltejs/adapter-auto': + specifier: ^7.0.1 + version: 7.0.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1))) + '@sveltejs/kit': + specifier: ^2.57.0 + version: 2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)) + '@sveltejs/vite-plugin-svelte': + specifier: ^7.0.0 + version: 7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)) + '@tailwindcss/vite': + specifier: ^4.2.2 + version: 4.2.2(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)) + '@types/node': + specifier: ^24 + version: 24.12.2 + eslint: + specifier: ^10.2.0 + version: 10.2.0(jiti@2.6.1) + eslint-config-prettier: + specifier: ^10.1.8 + version: 10.1.8(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-svelte: + specifier: ^3.17.0 + version: 3.17.0(eslint@10.2.0(jiti@2.6.1))(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + globals: + specifier: ^17.4.0 + version: 17.5.0 + prettier: + specifier: ^3.8.1 + version: 3.8.2 + prettier-plugin-svelte: + specifier: ^3.5.1 + version: 3.5.1(prettier@3.8.2)(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + prettier-plugin-tailwindcss: + specifier: ^0.7.2 + version: 0.7.2(prettier-plugin-svelte@3.5.1(prettier@3.8.2)(svelte@5.55.3(@typescript-eslint/types@8.58.1)))(prettier@3.8.2) + svelte: + specifier: ^5.55.2 + version: 5.55.3(@typescript-eslint/types@8.58.1) + svelte-check: + specifier: ^4.4.6 + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2) + tailwindcss: + specifier: ^4.2.2 + version: 4.2.2 + typescript: + specifier: ^6.0.2 + version: 6.0.2 + typescript-eslint: + specifier: ^8.58.1 + version: 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + vite: + specifier: ^8.0.7 + version: 8.0.8(@types/node@24.12.2)(jiti@2.6.1) + +packages: + + '@dagrejs/dagre@2.0.4': + resolution: {integrity: sha512-J6vCWTNpicHF4zFlZG1cS5DkGzMr9941gddYkakjrg3ZNev4bbqEgLHFTWiFrcJm7UCRu7olO3K6IRDd9gSGhA==} + + '@dagrejs/graphlib@3.0.4': + resolution: {integrity: sha512-HxZ7fCvAwTLCWCO0WjDkzAFQze8LdC6iOpKbetDKHIuDfIgMlIzYzqZ4nxwLlclQX+3ZVeZ1K2OuaOE2WWcyOg==} + + '@emnapi/core@1.9.2': + resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} + + '@emnapi/runtime@1.9.2': + resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} + + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/compat@2.0.5': + resolution: {integrity: sha512-IbHDbHJfkVNv6xjlET8AIVo/K1NQt7YT4Rp6ok/clyBGcpRx1l6gv0Rq3vBvYfPJIZt6ODf66Zq08FJNDpnzgg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + peerDependencies: + eslint: ^8.40 || 9 || 10 + peerDependenciesMeta: + eslint: + optional: true + + '@eslint/config-array@0.23.5': + resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/config-helpers@0.5.5': + resolution: {integrity: sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/core@1.2.1': + resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/js@10.0.1': + resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + peerDependencies: + eslint: ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true + + '@eslint/object-schema@3.0.5': + resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/plugin-kit@0.7.1': + resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@floating-ui/core@1.7.5': + resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} + + '@floating-ui/dom@1.7.6': + resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} + + '@floating-ui/utils@0.2.11': + resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} + + '@fontsource-variable/geist-mono@5.2.7': + resolution: {integrity: sha512-ZKlZ5sjtalb2TwXKs400mAGDlt/+2ENLNySPx0wTz3bP3mWARCsUW+rpxzZc7e05d2qGch70pItt3K4qttbIYA==} + + '@fontsource-variable/inter@5.2.8': + resolution: {integrity: sha512-kOfP2D+ykbcX/P3IFnokOhVRNoTozo5/JxhAIVYLpea/UBmCQ/YWPBfWIDuBImXX/15KH+eKh4xpEUyS2sQQGQ==} + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@internationalized/date@3.12.0': + resolution: {integrity: sha512-/PyIMzK29jtXaGU23qTvNZxvBXRtKbNnGDFD+PY6CZw/Y8Ex8pFUzkuCJCG9aOqmShjqhS9mPqP6Dk5onQY8rQ==} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@layerstack/svelte-actions@1.0.1-next.18': + resolution: {integrity: sha512-gxPzCnJ1c9LTfWtRqLUzefCx+k59ZpxDUQ2XB+LokveZQPe7IDSOwHaBOEMlaGoGrtwc3Ft8dSZq+2WT2o9u/g==} + + '@layerstack/svelte-state@0.1.0-next.23': + resolution: {integrity: sha512-7O4umv+gXwFfs3/vjzFWYHNXGwYnnjBapWJ5Y+9u99F4eVk6rh4ocNwqkqQNkpMZ5tUJBlRTWjPE1So6+hEzIg==} + + '@layerstack/tailwind@2.0.0-next.21': + resolution: {integrity: sha512-Qgp2EpmEHmjtura8MQzWicR6ztBRSsRvddakFtx9ShrLMz6jWzd6bCMVVRu44Q3ZOrtXmSu4QxjCZWu1ytvuPg==} + + '@layerstack/utils@2.0.0-next.18': + resolution: {integrity: sha512-EYILHpfBRYMMEahajInu9C2AXQom5IcAEdtCeucD3QIl/fdDgRbtzn6/8QW9ewumfyNZetdUvitOksmI1+gZYQ==} + + '@napi-rs/wasm-runtime@1.1.3': + resolution: {integrity: sha512-xK9sGVbJWYb08+mTJt3/YV24WxvxpXcXtP6B172paPZ+Ts69Re9dAr7lKwJoeIx8OoeuimEiRZ7umkiUVClmmQ==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + + '@oxc-project/types@0.124.0': + resolution: {integrity: sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==} + + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + + '@rolldown/binding-android-arm64@1.0.0-rc.15': + resolution: {integrity: sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.0.0-rc.15': + resolution: {integrity: sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.0.0-rc.15': + resolution: {integrity: sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.0.0-rc.15': + resolution: {integrity: sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': + resolution: {integrity: sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': + resolution: {integrity: sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': + resolution: {integrity: sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': + resolution: {integrity: sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': + resolution: {integrity: sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': + resolution: {integrity: sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': + resolution: {integrity: sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@rolldown/pluginutils@1.0.0-rc.15': + resolution: {integrity: sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==} + + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + + '@sveltejs/acorn-typescript@1.0.9': + resolution: {integrity: sha512-lVJX6qEgs/4DOcRTpo56tmKzVPtoWAaVbL4hfO7t7NVwl9AAXzQR6cihesW1BmNMPl+bK6dreu2sOKBP2Q9CIA==} + peerDependencies: + acorn: ^8.9.0 + + '@sveltejs/adapter-auto@7.0.1': + resolution: {integrity: sha512-dvuPm1E7M9NI/+canIQ6KKQDU2AkEefEZ2Dp7cY6uKoPq9Z/PhOXABe526UdW2mN986gjVkuSLkOYIBnS/M2LQ==} + peerDependencies: + '@sveltejs/kit': ^2.0.0 + + '@sveltejs/kit@2.57.1': + resolution: {integrity: sha512-VRdSbB96cI1EnRh09CqmnQqP/YJvET5buj8S6k7CxaJqBJD4bw4fRKDjcarAj/eX9k2eHifQfDH8NtOh+ZxxPw==} + engines: {node: '>=18.13'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: ^5.3.3 || ^6.0.0 + vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + typescript: + optional: true + + '@sveltejs/vite-plugin-svelte@7.0.0': + resolution: {integrity: sha512-ILXmxC7HAsnkK2eslgPetrqqW1BKSL7LktsFgqzNj83MaivMGZzluWq32m25j2mDOjmSKX7GGWahePhuEs7P/g==} + engines: {node: ^20.19 || ^22.12 || >=24} + peerDependencies: + svelte: ^5.46.4 + vite: ^8.0.0-beta.7 || ^8.0.0 + + '@swc/helpers@0.5.21': + resolution: {integrity: sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==} + + '@tailwindcss/node@4.2.2': + resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==} + + '@tailwindcss/oxide-android-arm64@4.2.2': + resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.2.2': + resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.2.2': + resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.2.2': + resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': + resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==} + engines: {node: '>= 20'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': + resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-arm64-musl@4.2.2': + resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-linux-x64-gnu@4.2.2': + resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-x64-musl@4.2.2': + resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-wasm32-wasi@4.2.2': + resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': + resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.2.2': + resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==} + engines: {node: '>= 20'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.2.2': + resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==} + engines: {node: '>= 20'} + + '@tailwindcss/vite@4.2.2': + resolution: {integrity: sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==} + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 || ^8 + + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + + '@types/d3-array@3.2.2': + resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} + + '@types/d3-contour@3.0.6': + resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/geojson@7946.0.16': + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/node@24.12.2': + resolution: {integrity: sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@typescript-eslint/eslint-plugin@8.58.1': + resolution: {integrity: sha512-eSkwoemjo76bdXl2MYqtxg51HNwUSkWfODUOQ3PaTLZGh9uIWWFZIjyjaJnex7wXDu+TRx+ATsnSxdN9YWfRTQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.58.1 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/parser@8.58.1': + resolution: {integrity: sha512-gGkiNMPqerb2cJSVcruigx9eHBlLG14fSdPdqMoOcBfh+vvn4iCq2C8MzUB89PrxOXk0y3GZ1yIWb9aOzL93bw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/project-service@8.58.1': + resolution: {integrity: sha512-gfQ8fk6cxhtptek+/8ZIqw8YrRW5048Gug8Ts5IYcMLCw18iUgrZAEY/D7s4hkI0FxEfGakKuPK/XUMPzPxi5g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/scope-manager@8.58.1': + resolution: {integrity: sha512-TPYUEqJK6avLcEjumWsIuTpuYODTTDAtoMdt8ZZa93uWMTX13Nb8L5leSje1NluammvU+oI3QRr5lLXPgihX3w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.58.1': + resolution: {integrity: sha512-JAr2hOIct2Q+qk3G+8YFfqkqi7sC86uNryT+2i5HzMa2MPjw4qNFvtjnw1IiA1rP7QhNKVe21mSSLaSjwA1Olw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/type-utils@8.58.1': + resolution: {integrity: sha512-HUFxvTJVroT+0rXVJC7eD5zol6ID+Sn5npVPWoFuHGg9Ncq5Q4EYstqR+UOqaNRFXi5TYkpXXkLhoCHe3G0+7w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/types@8.58.1': + resolution: {integrity: sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.58.1': + resolution: {integrity: sha512-w4w7WR7GHOjqqPnvAYbazq+Y5oS68b9CzasGtnd6jIeOIeKUzYzupGTB2T4LTPSv4d+WPeccbxuneTFHYgAAWg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/utils@8.58.1': + resolution: {integrity: sha512-Ln8R0tmWC7pTtLOzgJzYTXSCjJ9rDNHAqTaVONF4FEi2qwce8mD9iSOxOpLFFvWp/wBFlew0mjM1L1ihYWfBdQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/visitor-keys@8.58.1': + resolution: {integrity: sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + + aria-query@5.3.1: + resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==} + engines: {node: '>= 0.4'} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + bits-ui@2.17.3: + resolution: {integrity: sha512-Bef41uY9U2jaBJHPhcPvmBNkGec5Wx2z6eioDsTmsaR2vH4QoaOcPi75gzCG3+/2TNr6v/qBwzgWNPYCxNtrEA==} + engines: {node: '>=20'} + peerDependencies: + '@internationalized/date': ^3.8.1 + svelte: ^5.33.0 + + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} + engines: {node: 18 || 20 || >=22} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + d3-array@2.12.1: + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} + + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + + d3-chord@3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} + + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-contour@4.0.2: + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + engines: {node: '>=12'} + + d3-delaunay@6.0.4: + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + engines: {node: '>=12'} + + d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + + d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + + d3-force@3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} + + d3-format@3.1.2: + resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==} + engines: {node: '>=12'} + + d3-geo-voronoi@2.1.0: + resolution: {integrity: sha512-kqE4yYuOjPbKdBXG0xztCacPwkVSK2REF1opSNrnqqtXJmNcM++UbwQ8SxvwP6IQTj9RvIjjK4qeiVsEfj0Z2Q==} + engines: {node: '>=12'} + + d3-geo@3.1.1: + resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} + engines: {node: '>=12'} + + d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} + + d3-interpolate-path@2.3.0: + resolution: {integrity: sha512-tZYtGXxBmbgHsIc9Wms6LS5u4w6KbP8C09a4/ZYc4KLMYYqub57rRBUgpUr2CIarIrJEpdAWWxWQvofgaMpbKQ==} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-path@1.0.9: + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} + + d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + + d3-quadtree@3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} + + d3-random@3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} + + d3-sankey@0.12.3: + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + + d3-scale-chromatic@3.1.0: + resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} + engines: {node: '>=12'} + + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + + d3-shape@1.3.7: + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + + d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} + + d3-tile@1.0.0: + resolution: {integrity: sha512-79fnTKpPMPDS5xQ0xuS9ir0165NEwwkFpe/DSOmc2Gl9ldYzKKRDWogmTTE8wAJ8NA7PMapNfEcyKhI9Lxdu5Q==} + + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + d3-tricontour@1.1.0: + resolution: {integrity: sha512-G7gHKj89n2owmkGb6WX6ixcnQ0Kf/0wpa9VIh9DGdbHu8wdrlaHU4ir3/bFNERl8N8nn4G7e7qbtBG8N9caihQ==} + engines: {node: '>=12'} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + delaunator@5.1.0: + resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + devalue@5.7.1: + resolution: {integrity: sha512-MUbZ586EgQqdRnC4yDrlod3BEdyvE4TapGYHMW2CiaW+KkkFmWEFqBUaLltEZCGi0iFXCEjRF0OjF0DV2QHjOA==} + + enhanced-resolve@5.20.1: + resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} + engines: {node: '>=10.13.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-svelte@3.17.0: + resolution: {integrity: sha512-sF6wgd5FLS2P8CCaOy2HdYYYEcZ6TwL251dLHUkNmtLnWECk1Dwc+j6VeulmmnFxr7Xs0WNtjweOA+bJ0PnaFw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.1 || ^9.0.0 || ^10.0.0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@10.2.0: + resolution: {integrity: sha512-+L0vBFYGIpSNIt/KWTpFonPrqYvgKw1eUI5Vn7mEogrQcWtWYtNQ7dNqC+px/J0idT3BAkiWrhfS7k+Tum8TUA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + esm-env@1.2.2: + resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrap@2.2.5: + resolution: {integrity: sha512-/yLB1538mag+dn0wsePTe8C0rDIjUOaJpMs2McodSzmM2msWcZsBSdRtg6HOBt0A/r82BN+Md3pgwSc/uWt2Ig==} + peerDependencies: + '@typescript-eslint/types': ^8.2.0 + peerDependenciesMeta: + '@typescript-eslint/types': + optional: true + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.4.2: + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} + engines: {node: '>=18'} + + globals@17.5.0: + resolution: {integrity: sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==} + engines: {node: '>=18'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inline-style-parser@0.2.7: + resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} + + internmap@1.0.1: + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-reference@3.0.3: + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + known-css-properties@0.37.0: + resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} + + layerchart@2.0.0-next.54: + resolution: {integrity: sha512-2bkRffzCfFTYavoo85W0GJ3VwfslFwWVMxXocjFYc6GokHmDL2UkuFi03T3LasKQMJOF6Xyuko6YAJM8FIy8zg==} + peerDependencies: + svelte: ^5.0.0 + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + engines: {node: '>= 12.0.0'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + liu-tentor-package@1.2.0: + resolution: {integrity: sha512-Z2kjucU08En9RnJ4fT3WUxoTm3LSFohmcDzPjAjOzQmoOBa20YO/SyY21kBZDEfKt6J2JDRZJe967MvXbXVpgg==} + + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lucide-svelte@1.0.1: + resolution: {integrity: sha512-WvzZgk0pqzgda+AErLvgWxHkfg/+GgUwqKMRHvzt0IqyMdmyEDzDCk3Z+Wo/3y753oIgx8u9Q4eUbWkghFa8Jg==} + peerDependencies: + svelte: ^3 || ^4 || ^5.0.0-next.42 + + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + memoize@10.2.0: + resolution: {integrity: sha512-DeC6b7QBrZsRs3Y02A6A7lQyzFbsQbqgjI6UW0GigGWV+u1s25TycMr0XHZE4cJce7rY/vyw2ctMQqfDkIhUEA==} + engines: {node: '>=18'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} + + mode-watcher@1.1.0: + resolution: {integrity: sha512-mUT9RRGPDYenk59qJauN1rhsIMKBmWA3xMF+uRwE8MW/tjhaDSCCARqkSuDTq8vr4/2KcAxIGVjACxTjdk5C3g==} + peerDependencies: + svelte: ^5.27.0 + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + + postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-safe-parser@7.0.1: + resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} + engines: {node: '>=18.0'} + peerDependencies: + postcss: ^8.4.31 + + postcss-scss@4.0.9: + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.29 + + postcss-selector-parser@7.1.1: + resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + engines: {node: '>=4'} + + postcss@8.5.9: + resolution: {integrity: sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-plugin-svelte@3.5.1: + resolution: {integrity: sha512-65+fr5+cgIKWKiqM1Doum4uX6bY8iFCdztvvp2RcF+AJoieaw9kJOFMNcJo/bkmKYsxFaM9OsVZK/gWauG/5mg==} + peerDependencies: + prettier: ^3.0.0 + svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 + + prettier-plugin-tailwindcss@0.7.2: + resolution: {integrity: sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA==} + engines: {node: '>=20.19'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-hermes': '*' + '@prettier/plugin-oxc': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + '@zackad/prettier-plugin-twig': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-multiline-arrays: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-svelte: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-hermes': + optional: true + '@prettier/plugin-oxc': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + '@zackad/prettier-plugin-twig': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-multiline-arrays: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-svelte: + optional: true + + prettier@3.8.2: + resolution: {integrity: sha512-8c3mgTe0ASwWAJK+78dpviD+A8EqhndQPUBpNUIPt6+xWlIigCwfN01lWr9MAede4uqXGTEKeQWTvzb3vjia0Q==} + engines: {node: '>=14'} + hasBin: true + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + robust-predicates@3.0.3: + resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==} + + rolldown@1.0.0-rc.15: + resolution: {integrity: sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + runed@0.23.4: + resolution: {integrity: sha512-9q8oUiBYeXIDLWNK5DfCWlkL0EW3oGbk845VdKlPeia28l751VpfesaB/+7pI6rnbx1I6rqoZ2fZxptOJLxILA==} + peerDependencies: + svelte: ^5.7.0 + + runed@0.25.0: + resolution: {integrity: sha512-7+ma4AG9FT2sWQEA0Egf6mb7PBT2vHyuHail1ie8ropfSjvZGtEAx8YTmUjv/APCsdRRxEVvArNjALk9zFSOrg==} + peerDependencies: + svelte: ^5.7.0 + + runed@0.35.1: + resolution: {integrity: sha512-2F4Q/FZzbeJTFdIS/PuOoPRSm92sA2LhzTnv6FXhCoENb3huf5+fDuNOg1LNvGOouy3u/225qxmuJvcV3IZK5Q==} + peerDependencies: + '@sveltejs/kit': ^2.21.0 + svelte: ^5.7.0 + peerDependenciesMeta: + '@sveltejs/kit': + optional: true + + runed@0.37.1: + resolution: {integrity: sha512-MeFY73xBW8IueWBm012nNFIGy19WUGPLtknavyUPMpnyt350M47PhGSGrGoSLbidwn+Zlt/O0cp8/OZE3LASWA==} + peerDependencies: + '@sveltejs/kit': ^2.21.0 + svelte: ^5.7.0 + zod: ^4.1.0 + peerDependenciesMeta: + '@sveltejs/kit': + optional: true + zod: + optional: true + + rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + set-cookie-parser@3.1.0: + resolution: {integrity: sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + style-to-object@1.0.14: + resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} + + svelte-check@4.4.6: + resolution: {integrity: sha512-kP1zG81EWaFe9ZyTv4ZXv44Csi6Pkdpb7S3oj6m+K2ec/IcDg/a8LsFsnVLqm2nxtkSwsd5xPj/qFkTBgXHXjg==} + engines: {node: '>= 18.0.0'} + hasBin: true + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: '>=5.0.0' + + svelte-eslint-parser@1.6.0: + resolution: {integrity: sha512-qoB1ehychT6OxEtQAqc/guSqLS20SlA53Uijl7x375s8nlUT0lb9ol/gzraEEatQwsyPTJo87s2CmKL9Xab+Uw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.30.3} + peerDependencies: + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + + svelte-toolbelt@0.10.6: + resolution: {integrity: sha512-YWuX+RE+CnWYx09yseAe4ZVMM7e7GRFZM6OYWpBKOb++s+SQ8RBIMMe+Bs/CznBMc0QPLjr+vDBxTAkozXsFXQ==} + engines: {node: '>=18', pnpm: '>=8.7.0'} + peerDependencies: + svelte: ^5.30.2 + + svelte-toolbelt@0.7.1: + resolution: {integrity: sha512-HcBOcR17Vx9bjaOceUvxkY3nGmbBmCBBbuWLLEWO6jtmWH8f/QoWmbyUfQZrpDINH39en1b8mptfPQT9VKQ1xQ==} + engines: {node: '>=18', pnpm: '>=8.7.0'} + peerDependencies: + svelte: ^5.0.0 + + svelte@5.55.3: + resolution: {integrity: sha512-dS1N+i3bA1v+c4UDb750MlN5vCO82G6vxh8HeTsPsTdJ1BLsN1zxSyDlIdBBqUjqZ/BxEwM8UrFf98aaoVnZFQ==} + engines: {node: '>=18'} + + tabbable@6.4.0: + resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + + tailwind-merge@3.5.0: + resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==} + + tailwindcss@4.2.2: + resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==} + + tapable@2.3.2: + resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} + engines: {node: '>=6'} + + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + engines: {node: '>=12.0.0'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + typescript-eslint@8.58.1: + resolution: {integrity: sha512-gf6/oHChByg9HJvhMO1iBexJh12AqqTfnuxscMDOVqfJW3htsdRJI/GfPpHTTcyeB8cSTUY2JcZmVgoyPqcrDg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + typescript@6.0.2: + resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + vite@8.0.8: + resolution: {integrity: sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.1.0 + esbuild: ^0.27.0 || ^0.28.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + '@vitejs/devtools': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitefu@1.1.3: + resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + vite: + optional: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + yaml@1.10.3: + resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} + engines: {node: '>= 6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zimmerframe@1.1.4: + resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} + +snapshots: + + '@dagrejs/dagre@2.0.4': + dependencies: + '@dagrejs/graphlib': 3.0.4 + + '@dagrejs/graphlib@3.0.4': {} + + '@emnapi/core@1.9.2': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.9.2': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@eslint-community/eslint-utils@4.9.1(eslint@10.2.0(jiti@2.6.1))': + dependencies: + eslint: 10.2.0(jiti@2.6.1) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/compat@2.0.5(eslint@10.2.0(jiti@2.6.1))': + dependencies: + '@eslint/core': 1.2.1 + optionalDependencies: + eslint: 10.2.0(jiti@2.6.1) + + '@eslint/config-array@0.23.5': + dependencies: + '@eslint/object-schema': 3.0.5 + debug: 4.4.3 + minimatch: 10.2.5 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.5.5': + dependencies: + '@eslint/core': 1.2.1 + + '@eslint/core@1.2.1': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/js@10.0.1(eslint@10.2.0(jiti@2.6.1))': + optionalDependencies: + eslint: 10.2.0(jiti@2.6.1) + + '@eslint/object-schema@3.0.5': {} + + '@eslint/plugin-kit@0.7.1': + dependencies: + '@eslint/core': 1.2.1 + levn: 0.4.1 + + '@floating-ui/core@1.7.5': + dependencies: + '@floating-ui/utils': 0.2.11 + + '@floating-ui/dom@1.7.6': + dependencies: + '@floating-ui/core': 1.7.5 + '@floating-ui/utils': 0.2.11 + + '@floating-ui/utils@0.2.11': {} + + '@fontsource-variable/geist-mono@5.2.7': {} + + '@fontsource-variable/inter@5.2.8': {} + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.7': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.4.3 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@internationalized/date@3.12.0': + dependencies: + '@swc/helpers': 0.5.21 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@layerstack/svelte-actions@1.0.1-next.18': + dependencies: + '@floating-ui/dom': 1.7.6 + '@layerstack/utils': 2.0.0-next.18 + d3-scale: 4.0.2 + + '@layerstack/svelte-state@0.1.0-next.23': + dependencies: + '@layerstack/utils': 2.0.0-next.18 + + '@layerstack/tailwind@2.0.0-next.21': + dependencies: + '@layerstack/utils': 2.0.0-next.18 + clsx: 2.1.1 + d3-array: 3.2.4 + tailwind-merge: 3.5.0 + + '@layerstack/utils@2.0.0-next.18': + dependencies: + d3-array: 3.2.4 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + + '@napi-rs/wasm-runtime@1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@oxc-project/types@0.124.0': {} + + '@polka/url@1.0.0-next.29': {} + + '@rolldown/binding-android-arm64@1.0.0-rc.15': + optional: true + + '@rolldown/binding-darwin-arm64@1.0.0-rc.15': + optional: true + + '@rolldown/binding-darwin-x64@1.0.0-rc.15': + optional: true + + '@rolldown/binding-freebsd-x64@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': + optional: true + + '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': + optional: true + + '@rolldown/pluginutils@1.0.0-rc.15': {} + + '@standard-schema/spec@1.1.0': {} + + '@sveltejs/acorn-typescript@1.0.9(acorn@8.16.0)': + dependencies: + acorn: 8.16.0 + + '@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))': + dependencies: + '@sveltejs/kit': 2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)) + + '@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1))': + dependencies: + '@standard-schema/spec': 1.1.0 + '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) + '@sveltejs/vite-plugin-svelte': 7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)) + '@types/cookie': 0.6.0 + acorn: 8.16.0 + cookie: 0.6.0 + devalue: 5.7.1 + esm-env: 1.2.2 + kleur: 4.1.5 + magic-string: 0.30.21 + mrmime: 2.0.1 + set-cookie-parser: 3.1.0 + sirv: 3.0.2 + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + vite: 8.0.8(@types/node@24.12.2)(jiti@2.6.1) + optionalDependencies: + typescript: 6.0.2 + + '@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1))': + dependencies: + deepmerge: 4.3.1 + magic-string: 0.30.21 + obug: 2.1.1 + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + vite: 8.0.8(@types/node@24.12.2)(jiti@2.6.1) + vitefu: 1.1.3(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)) + + '@swc/helpers@0.5.21': + dependencies: + tslib: 2.8.1 + + '@tailwindcss/node@4.2.2': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.20.1 + jiti: 2.6.1 + lightningcss: 1.32.0 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.2.2 + + '@tailwindcss/oxide-android-arm64@4.2.2': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.2.2': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.2.2': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.2.2': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.2.2': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.2.2': + optional: true + + '@tailwindcss/oxide@4.2.2': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.2.2 + '@tailwindcss/oxide-darwin-arm64': 4.2.2 + '@tailwindcss/oxide-darwin-x64': 4.2.2 + '@tailwindcss/oxide-freebsd-x64': 4.2.2 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2 + '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2 + '@tailwindcss/oxide-linux-arm64-musl': 4.2.2 + '@tailwindcss/oxide-linux-x64-gnu': 4.2.2 + '@tailwindcss/oxide-linux-x64-musl': 4.2.2 + '@tailwindcss/oxide-wasm32-wasi': 4.2.2 + '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 + '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 + + '@tailwindcss/vite@4.2.2(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1))': + dependencies: + '@tailwindcss/node': 4.2.2 + '@tailwindcss/oxide': 4.2.2 + tailwindcss: 4.2.2 + vite: 8.0.8(@types/node@24.12.2)(jiti@2.6.1) + + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/cookie@0.6.0': {} + + '@types/d3-array@3.2.2': {} + + '@types/d3-contour@3.0.6': + dependencies: + '@types/d3-array': 3.2.2 + '@types/geojson': 7946.0.16 + + '@types/esrecurse@4.3.1': {} + + '@types/estree@1.0.8': {} + + '@types/geojson@7946.0.16': {} + + '@types/json-schema@7.0.15': {} + + '@types/node@24.12.2': + dependencies: + undici-types: 7.16.0 + + '@types/trusted-types@2.0.7': {} + + '@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/type-utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/visitor-keys': 8.58.1 + eslint: 10.2.0(jiti@2.6.1) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + dependencies: + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.2) + '@typescript-eslint/visitor-keys': 8.58.1 + debug: 4.4.3 + eslint: 10.2.0(jiti@2.6.1) + typescript: 6.0.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.58.1(typescript@6.0.2)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@6.0.2) + '@typescript-eslint/types': 8.58.1 + debug: 4.4.3 + typescript: 6.0.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.58.1': + dependencies: + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 + + '@typescript-eslint/tsconfig-utils@8.58.1(typescript@6.0.2)': + dependencies: + typescript: 6.0.2 + + '@typescript-eslint/type-utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + dependencies: + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + debug: 4.4.3 + eslint: 10.2.0(jiti@2.6.1) + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.58.1': {} + + '@typescript-eslint/typescript-estree@8.58.1(typescript@6.0.2)': + dependencies: + '@typescript-eslint/project-service': 8.58.1(typescript@6.0.2) + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@6.0.2) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 + debug: 4.4.3 + minimatch: 10.2.5 + semver: 7.7.4 + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.2) + eslint: 10.2.0(jiti@2.6.1) + typescript: 6.0.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.58.1': + dependencies: + '@typescript-eslint/types': 8.58.1 + eslint-visitor-keys: 5.0.1 + + acorn-jsx@5.3.2(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + + acorn@8.16.0: {} + + ajv@6.14.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + aria-query@5.3.1: {} + + axobject-query@4.1.0: {} + + balanced-match@4.0.4: {} + + bits-ui@2.17.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1)): + dependencies: + '@floating-ui/core': 1.7.5 + '@floating-ui/dom': 1.7.6 + '@internationalized/date': 3.12.0 + esm-env: 1.2.2 + runed: 0.35.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + svelte-toolbelt: 0.10.6(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + tabbable: 6.4.0 + transitivePeerDependencies: + - '@sveltejs/kit' + + brace-expansion@5.0.5: + dependencies: + balanced-match: 4.0.4 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + clsx@2.1.1: {} + + commander@7.2.0: {} + + cookie@0.6.0: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + d3-array@2.12.1: + dependencies: + internmap: 1.0.1 + + d3-array@3.2.4: + dependencies: + internmap: 2.0.3 + + d3-chord@3.0.1: + dependencies: + d3-path: 3.1.0 + + d3-color@3.1.0: {} + + d3-contour@4.0.2: + dependencies: + d3-array: 3.2.4 + + d3-delaunay@6.0.4: + dependencies: + delaunator: 5.1.0 + + d3-dispatch@3.0.1: {} + + d3-dsv@3.0.1: + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + + d3-force@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-quadtree: 3.0.1 + d3-timer: 3.0.1 + + d3-format@3.1.2: {} + + d3-geo-voronoi@2.1.0: + dependencies: + d3-array: 3.2.4 + d3-delaunay: 6.0.4 + d3-geo: 3.1.1 + d3-tricontour: 1.1.0 + + d3-geo@3.1.1: + dependencies: + d3-array: 3.2.4 + + d3-hierarchy@3.1.2: {} + + d3-interpolate-path@2.3.0: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-path@1.0.9: {} + + d3-path@3.1.0: {} + + d3-quadtree@3.0.1: {} + + d3-random@3.0.1: {} + + d3-sankey@0.12.3: + dependencies: + d3-array: 2.12.1 + d3-shape: 1.3.7 + + d3-scale-chromatic@3.1.0: + dependencies: + d3-color: 3.1.0 + d3-interpolate: 3.0.1 + + d3-scale@4.0.2: + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.2 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + + d3-shape@1.3.7: + dependencies: + d3-path: 1.0.9 + + d3-shape@3.2.0: + dependencies: + d3-path: 3.1.0 + + d3-tile@1.0.0: {} + + d3-time-format@4.1.0: + dependencies: + d3-time: 3.1.0 + + d3-time@3.1.0: + dependencies: + d3-array: 3.2.4 + + d3-timer@3.0.1: {} + + d3-tricontour@1.1.0: + dependencies: + d3-delaunay: 6.0.4 + d3-scale: 4.0.2 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + delaunator@5.1.0: + dependencies: + robust-predicates: 3.0.3 + + dequal@2.0.3: {} + + detect-libc@2.1.2: {} + + devalue@5.7.1: {} + + enhanced-resolve@5.20.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.2 + + escape-string-regexp@4.0.0: {} + + eslint-config-prettier@10.1.8(eslint@10.2.0(jiti@2.6.1)): + dependencies: + eslint: 10.2.0(jiti@2.6.1) + + eslint-plugin-svelte@3.17.0(eslint@10.2.0(jiti@2.6.1))(svelte@5.55.3(@typescript-eslint/types@8.58.1)): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@jridgewell/sourcemap-codec': 1.5.5 + eslint: 10.2.0(jiti@2.6.1) + esutils: 2.0.3 + globals: 16.5.0 + known-css-properties: 0.37.0 + postcss: 8.5.9 + postcss-load-config: 3.1.4(postcss@8.5.9) + postcss-safe-parser: 7.0.1(postcss@8.5.9) + semver: 7.7.4 + svelte-eslint-parser: 1.6.0(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + optionalDependencies: + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + transitivePeerDependencies: + - ts-node + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-scope@9.1.2: + dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.8 + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint-visitor-keys@5.0.1: {} + + eslint@10.2.0(jiti@2.6.1): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.5.5 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.1 + '@humanfs/node': 0.16.7 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.14.0 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + minimatch: 10.2.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.6.1 + transitivePeerDependencies: + - supports-color + + esm-env@1.2.2: {} + + espree@10.4.0: + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 4.2.1 + + espree@11.2.0: + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 5.0.1 + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrap@2.2.5(@typescript-eslint/types@8.58.1): + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + optionalDependencies: + '@typescript-eslint/types': 8.58.1 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.4.2 + keyv: 4.5.4 + + flatted@3.4.2: {} + + fsevents@2.3.3: + optional: true + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + globals@16.5.0: {} + + globals@17.5.0: {} + + graceful-fs@4.2.11: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + imurmurhash@0.1.4: {} + + inline-style-parser@0.2.7: {} + + internmap@1.0.1: {} + + internmap@2.0.3: {} + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-reference@3.0.3: + dependencies: + '@types/estree': 1.0.8 + + isexe@2.0.0: {} + + jiti@2.6.1: {} + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kleur@4.1.5: {} + + known-css-properties@0.37.0: {} + + layerchart@2.0.0-next.54(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1)): + dependencies: + '@dagrejs/dagre': 2.0.4 + '@layerstack/svelte-actions': 1.0.1-next.18 + '@layerstack/svelte-state': 0.1.0-next.23 + '@layerstack/tailwind': 2.0.0-next.21 + '@layerstack/utils': 2.0.0-next.18 + '@types/d3-contour': 3.0.6 + d3-array: 3.2.4 + d3-chord: 3.0.1 + d3-color: 3.1.0 + d3-contour: 4.0.2 + d3-delaunay: 6.0.4 + d3-dsv: 3.0.1 + d3-force: 3.0.0 + d3-geo: 3.1.1 + d3-geo-voronoi: 2.1.0 + d3-hierarchy: 3.1.2 + d3-interpolate: 3.0.1 + d3-interpolate-path: 2.3.0 + d3-path: 3.1.0 + d3-quadtree: 3.0.1 + d3-random: 3.0.1 + d3-sankey: 0.12.3 + d3-scale: 4.0.2 + d3-scale-chromatic: 3.1.0 + d3-shape: 3.2.0 + d3-tile: 1.0.0 + d3-time: 3.1.0 + memoize: 10.2.0 + runed: 0.37.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + transitivePeerDependencies: + - '@sveltejs/kit' + - zod + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lightningcss-android-arm64@1.32.0: + optional: true + + lightningcss-darwin-arm64@1.32.0: + optional: true + + lightningcss-darwin-x64@1.32.0: + optional: true + + lightningcss-freebsd-x64@1.32.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true + + lightningcss-linux-arm64-gnu@1.32.0: + optional: true + + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss@1.32.0: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 + + lilconfig@2.1.0: {} + + liu-tentor-package@1.2.0: {} + + locate-character@3.0.0: {} + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lucide-svelte@1.0.1(svelte@5.55.3(@typescript-eslint/types@8.58.1)): + dependencies: + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + + lz-string@1.5.0: {} + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + memoize@10.2.0: + dependencies: + mimic-function: 5.0.1 + + mimic-function@5.0.1: {} + + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.5 + + mode-watcher@1.1.0(svelte@5.55.3(@typescript-eslint/types@8.58.1)): + dependencies: + runed: 0.25.0(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + svelte-toolbelt: 0.7.1(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + + mri@1.2.0: {} + + mrmime@2.0.1: {} + + ms@2.1.3: {} + + nanoid@3.3.11: {} + + natural-compare@1.4.0: {} + + obug@2.1.1: {} + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + picocolors@1.1.1: {} + + picomatch@4.0.4: {} + + postcss-load-config@3.1.4(postcss@8.5.9): + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.3 + optionalDependencies: + postcss: 8.5.9 + + postcss-safe-parser@7.0.1(postcss@8.5.9): + dependencies: + postcss: 8.5.9 + + postcss-scss@4.0.9(postcss@8.5.9): + dependencies: + postcss: 8.5.9 + + postcss-selector-parser@7.1.1: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss@8.5.9: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier-plugin-svelte@3.5.1(prettier@3.8.2)(svelte@5.55.3(@typescript-eslint/types@8.58.1)): + dependencies: + prettier: 3.8.2 + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + + prettier-plugin-tailwindcss@0.7.2(prettier-plugin-svelte@3.5.1(prettier@3.8.2)(svelte@5.55.3(@typescript-eslint/types@8.58.1)))(prettier@3.8.2): + dependencies: + prettier: 3.8.2 + optionalDependencies: + prettier-plugin-svelte: 3.5.1(prettier@3.8.2)(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + + prettier@3.8.2: {} + + punycode@2.3.1: {} + + readdirp@4.1.2: {} + + robust-predicates@3.0.3: {} + + rolldown@1.0.0-rc.15: + dependencies: + '@oxc-project/types': 0.124.0 + '@rolldown/pluginutils': 1.0.0-rc.15 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-rc.15 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.15 + '@rolldown/binding-darwin-x64': 1.0.0-rc.15 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.15 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.15 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.15 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.15 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.15 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.15 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.15 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.15 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.15 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.15 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.15 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.15 + + runed@0.23.4(svelte@5.55.3(@typescript-eslint/types@8.58.1)): + dependencies: + esm-env: 1.2.2 + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + + runed@0.25.0(svelte@5.55.3(@typescript-eslint/types@8.58.1)): + dependencies: + esm-env: 1.2.2 + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + + runed@0.35.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1)): + dependencies: + dequal: 2.0.3 + esm-env: 1.2.2 + lz-string: 1.5.0 + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + optionalDependencies: + '@sveltejs/kit': 2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)) + + runed@0.37.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1)): + dependencies: + dequal: 2.0.3 + esm-env: 1.2.2 + lz-string: 1.5.0 + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + optionalDependencies: + '@sveltejs/kit': 2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)) + + rw@1.3.3: {} + + sade@1.8.1: + dependencies: + mri: 1.2.0 + + safer-buffer@2.1.2: {} + + semver@7.7.4: {} + + set-cookie-parser@3.1.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + sirv@3.0.2: + dependencies: + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + + source-map-js@1.2.1: {} + + style-to-object@1.0.14: + dependencies: + inline-style-parser: 0.2.7 + + svelte-check@4.4.6(picomatch@4.0.4)(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + chokidar: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picocolors: 1.1.1 + sade: 1.8.1 + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + typescript: 6.0.2 + transitivePeerDependencies: + - picomatch + + svelte-eslint-parser@1.6.0(svelte@5.55.3(@typescript-eslint/types@8.58.1)): + dependencies: + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + postcss: 8.5.9 + postcss-scss: 4.0.9(postcss@8.5.9) + postcss-selector-parser: 7.1.1 + semver: 7.7.4 + optionalDependencies: + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + + svelte-toolbelt@0.10.6(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1)): + dependencies: + clsx: 2.1.1 + runed: 0.35.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.3(@typescript-eslint/types@8.58.1))(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1))(typescript@6.0.2)(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)))(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + style-to-object: 1.0.14 + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + transitivePeerDependencies: + - '@sveltejs/kit' + + svelte-toolbelt@0.7.1(svelte@5.55.3(@typescript-eslint/types@8.58.1)): + dependencies: + clsx: 2.1.1 + runed: 0.23.4(svelte@5.55.3(@typescript-eslint/types@8.58.1)) + style-to-object: 1.0.14 + svelte: 5.55.3(@typescript-eslint/types@8.58.1) + + svelte@5.55.3(@typescript-eslint/types@8.58.1): + dependencies: + '@jridgewell/remapping': 2.3.5 + '@jridgewell/sourcemap-codec': 1.5.5 + '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) + '@types/estree': 1.0.8 + '@types/trusted-types': 2.0.7 + acorn: 8.16.0 + aria-query: 5.3.1 + axobject-query: 4.1.0 + clsx: 2.1.1 + devalue: 5.7.1 + esm-env: 1.2.2 + esrap: 2.2.5(@typescript-eslint/types@8.58.1) + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.21 + zimmerframe: 1.1.4 + transitivePeerDependencies: + - '@typescript-eslint/types' + + tabbable@6.4.0: {} + + tailwind-merge@3.5.0: {} + + tailwindcss@4.2.2: {} + + tapable@2.3.2: {} + + tinyglobby@0.2.16: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + + totalist@3.0.1: {} + + ts-api-utils@2.5.0(typescript@6.0.2): + dependencies: + typescript: 6.0.2 + + tslib@2.8.1: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + typescript-eslint@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2): + dependencies: + '@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/parser': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + eslint: 10.2.0(jiti@2.6.1) + typescript: 6.0.2 + transitivePeerDependencies: + - supports-color + + typescript@6.0.2: {} + + undici-types@7.16.0: {} + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.9 + rolldown: 1.0.0-rc.15 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 24.12.2 + fsevents: 2.3.3 + jiti: 2.6.1 + + vitefu@1.1.3(vite@8.0.8(@types/node@24.12.2)(jiti@2.6.1)): + optionalDependencies: + vite: 8.0.8(@types/node@24.12.2)(jiti@2.6.1) + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + yaml@1.10.3: {} + + yocto-queue@0.1.0: {} + + zimmerframe@1.1.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..5bd78e0 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +onlyBuiltDependencies: + - esbuild + - '@tailwindcss/oxide' diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 0000000..da08e6d --- /dev/null +++ b/src/app.d.ts @@ -0,0 +1,13 @@ +// See https://svelte.dev/docs/kit/types#app.d.ts +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface PageState {} + // interface Platform {} + } +} + +export {}; diff --git a/src/app.html b/src/app.html new file mode 100644 index 0000000..932b0bb --- /dev/null +++ b/src/app.html @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/src/lib/components/CoursePicker.svelte b/src/lib/components/CoursePicker.svelte new file mode 100644 index 0000000..457caf1 --- /dev/null +++ b/src/lib/components/CoursePicker.svelte @@ -0,0 +1,126 @@ + + + +
+
+ +
+ + { + e.currentTarget.value = e.currentTarget.value.toUpperCase(); + inputValue = e.currentTarget.value; + }} + onkeydown={(e) => { + if (e.key === 'Enter') { + setTimeout(() => { + if (inputValue && filteredCourses.length > 0) { + const exactMatch = courses.find((c) => c === inputValue); + const targetCourse = exactMatch || filteredCourses[0]; + handleCourseSelect(targetCourse); + } + }, 0); + } + }} + class="border-input bg-background ring-offset-background placeholder:text-muted-foreground/50 flex h-10 w-74 rounded-lg border pr-10 pl-10 text-sm transition-all focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50" + placeholder={getTranslation('searchCourse', currentLocale)} + aria-label={getTranslation('searchCourse', currentLocale)} + /> + + + + +
+ + + + {#if loading} +
+ + Loading courses... +
+ {:else if error} +
+ Failed to load courses. +
+ {:else if filteredCourses.length === 0} +
No results found.
+ {:else} + {#each filteredCourses as course (course)} + + {#snippet children({ selected })} + + {#if selected} + + {/if} + + {course} + {/snippet} + + {/each} + {/if} +
+
+
diff --git a/src/lib/components/CoursePie.svelte b/src/lib/components/CoursePie.svelte new file mode 100644 index 0000000..a6b78ed --- /dev/null +++ b/src/lib/components/CoursePie.svelte @@ -0,0 +1,59 @@ + + + + +
+ +

{formatDate(moduleData.date)}

+
+ +
+
diff --git a/src/lib/components/HeaderButton.svelte b/src/lib/components/HeaderButton.svelte new file mode 100644 index 0000000..5f94f1a --- /dev/null +++ b/src/lib/components/HeaderButton.svelte @@ -0,0 +1,11 @@ + + + + + diff --git a/src/lib/components/LanguageSwitcher.svelte b/src/lib/components/LanguageSwitcher.svelte new file mode 100644 index 0000000..f9ad49f --- /dev/null +++ b/src/lib/components/LanguageSwitcher.svelte @@ -0,0 +1,18 @@ + + + diff --git a/src/lib/components/ModuleModal.svelte b/src/lib/components/ModuleModal.svelte new file mode 100644 index 0000000..bc19c02 --- /dev/null +++ b/src/lib/components/ModuleModal.svelte @@ -0,0 +1,93 @@ + + + + + + +
+
+ {moduleData.moduleCode} +

+ {formatDate(moduleData.date)} +

+
+ + + +
+ +
+
+

{totalStudents}

+

+ {getTranslation('totalStudents', currentLocale)} +

+
+
+

{passRate}%

+

+ {getTranslation('passRate', currentLocale)} +

+
+
+ +

+ {getTranslation('gradeDistribution', currentLocale)} +

+ +
+
+
diff --git a/src/lib/components/ThemeSwitcher.svelte b/src/lib/components/ThemeSwitcher.svelte new file mode 100644 index 0000000..7e53f95 --- /dev/null +++ b/src/lib/components/ThemeSwitcher.svelte @@ -0,0 +1,24 @@ + + + + + + + + Toggle theme + diff --git a/src/lib/i18n/index.ts b/src/lib/i18n/index.ts new file mode 100644 index 0000000..c27310a --- /dev/null +++ b/src/lib/i18n/index.ts @@ -0,0 +1,30 @@ +import { writable } from 'svelte/store'; +import { translations, type Locale } from './translations'; +import type { TranslationKey } from './translations'; + +function createLocaleStore() { + const { subscribe, set, update } = writable('en'); + + return { + subscribe, + set, + setSwedish: () => set('sv'), + setEnglish: () => set('en'), + toggle: () => + update((current) => { + return current === 'en' ? 'sv' : 'en'; + }) + }; +} + +export const locale = createLocaleStore(); + +export function t(key: TranslationKey): string { + let currentLocale: Locale = 'en'; + locale.subscribe((l) => (currentLocale = l))(); + return translations[currentLocale][key]; +} + +export function getTranslation(key: TranslationKey, currentLocale: Locale): string { + return translations[currentLocale][key]; +} diff --git a/src/lib/i18n/translations.ts b/src/lib/i18n/translations.ts new file mode 100644 index 0000000..bbb8bf0 --- /dev/null +++ b/src/lib/i18n/translations.ts @@ -0,0 +1,41 @@ +export const translations = { + en: { + welcome: 'Welcome to LIU Exam Stats', + searchPrompt: 'Search for a course to view exam statistics.', + searchCourse: 'Search a course...', + course: 'Course', + courseWebsite: 'Course Website', + back: 'Back', + next: 'Next', + allModules: 'All modules', + totalStudents: 'Total Students', + passRate: 'Pass Rate', + gradeDistribution: 'Grade Distribution', + github: 'GitHub', + myWebsite: 'My Website', + loading: 'Loading...', + notFound: 'Course not found', + modules: 'modules' + }, + sv: { + welcome: 'Välkommen till LIU tentastatistik', + searchPrompt: 'Sök efter en kurs för att se tentastatistik.', + searchCourse: 'Sök kurs...', + course: 'Kurs', + courseWebsite: 'Kurswebbplats', + back: 'Tillbaka', + next: 'Nästa', + allModules: 'Alla moment', + totalStudents: 'Totalt antal studenter', + passRate: 'Andel godkända', + gradeDistribution: 'Betygsfördelning', + github: 'GitHub', + myWebsite: 'Min webbplats', + loading: 'Laddar...', + notFound: 'Kursen hittades inte', + modules: 'moduler' + } +} as const; + +export type Locale = keyof typeof translations; +export type TranslationKey = keyof typeof translations.en; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..c9a1ce9 --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,40 @@ + + + + + + diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 0000000..ac3fc3a --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1,17 @@ + + +
+

{getTranslation('welcome', currentLocale)}

+

{getTranslation('searchPrompt', currentLocale)}

+
+ +
+ +
diff --git a/src/routes/[course]/+page.svelte b/src/routes/[course]/+page.svelte new file mode 100644 index 0000000..bb6fa58 --- /dev/null +++ b/src/routes/[course]/+page.svelte @@ -0,0 +1,117 @@ + + +
+

+ {getTranslation('course', currentLocale)} + {course?.toUpperCase()} - {courseStats.modules?.length ?? 0} + {getTranslation('modules', currentLocale)} +

+

{getLocalizedTitle(courseStats.courseTitle)}

+
+ +{#if loading} +

{getTranslation('loading', currentLocale)}

+{:else if error} +

{error.message}

+{:else if courseStats?.modules} +
+ + + {getTranslation('courseWebsite', currentLocale)} + +
+ + {@const start = currentPage * perPage} + {@const visibleModules = filteredModules.slice(start, start + perPage)} +
+ {#each visibleModules as module} + + {/each} +
+ +
+ + {getTranslation('back', currentLocale)} + + {currentPage + 1} / {Math.ceil(filteredModules.length / perPage)} + = filteredModules.length} + class="rounded border px-4 py-2 transition-all active:scale-95 disabled:opacity-50 disabled:active:scale-100" + > + {getTranslation('next', currentLocale)} + +
+{/if} diff --git a/src/routes/layout.css b/src/routes/layout.css new file mode 100644 index 0000000..874c8ba --- /dev/null +++ b/src/routes/layout.css @@ -0,0 +1,9 @@ +@import 'tailwindcss'; +@import '@fontsource-variable/geist-mono/wght.css'; + +@custom-variant dark (&:where(.dark, .dark *)); + +@theme { + --font-mono: 'Geist Mono', monospace; + --font-sans: 'Geist Mono', monospace; +} diff --git a/static/og-image.png b/static/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..09c77396435d20e35989a6689997304fc2f3636c GIT binary patch literal 57220 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 (filename.split(/[/\\]/).includes('node_modules') ? undefined : true) + }, + kit: { + // adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list. + // If your environment is not supported, or you settled on a specific environment, switch out the adapter. + // See https://svelte.dev/docs/kit/adapters for more information about adapters. + adapter: adapter() + } +}; + +export default config; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..2c2ed3c --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "rewriteRelativeImportExtensions": true, + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "moduleResolution": "bundler" + } + // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias + // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files + // + // To make changes to top-level options such as include and exclude, we recommend extending + // the generated config; see https://svelte.dev/docs/kit/configuration#typescript +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..56f40c7 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,5 @@ +import tailwindcss from '@tailwindcss/vite'; +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vite'; + +export default defineConfig({ plugins: [tailwindcss(), sveltekit()] });