From 29150bf30519a9fd394ba08683179b571d156971 Mon Sep 17 00:00:00 2001 From: Ibrahim Raimi Date: Sat, 14 Sep 2024 23:40:26 +0100 Subject: [PATCH] Initial commit --- .dockerignore | 15 + .eslintignore | 13 + .eslintrc.cjs | 31 + .github/FUNDING.yml | 1 + .github/ISSUE_TEMPLATE/bug_report.md | 38 + .github/ISSUE_TEMPLATE/feature_request.md | 19 + .github/PULL_REQUEST_TEMPLATE.md | 33 + .github/dependabot.yml | 6 + .github/helper/db/postgres.json | 17 + .gitignore | 10 + .npmrc | 1 + .prettierignore | 4 + .prettierrc | 15 + Dockerfile | 0 LICENSE | 21 + README.md | 1 + components.json | 14 + package-lock.json | 4560 +++++++++++++++++ package.json | 62 + postcss.config.cjs | 13 + renovate.json | 6 + src/app.d.ts | 13 + src/app.html | 12 + src/app.pcss | 3 + src/lib/assets/girl.png | Bin 0 -> 63012 bytes src/lib/assets/segg-bear.png | Bin 0 -> 11216 bytes src/lib/clipboard.ts | 22 + src/lib/color.ts | 53 + src/lib/components/bear.svelte | 4 + src/lib/components/button.svelte | 34 + src/lib/components/configuration-field.svelte | 31 + src/lib/components/curve.svelte | 96 + src/lib/components/edit-curve-input.svelte | 35 + src/lib/components/edit-curve-panel.svelte | 49 + src/lib/components/icons/check.svelte | 14 + src/lib/components/icons/chevron.svelte | 14 + src/lib/components/icons/copy.svelte | 14 + src/lib/components/icons/corner.svelte | 14 + src/lib/components/icons/cross.svelte | 14 + src/lib/components/icons/crosshair.svelte | 14 + src/lib/components/icons/download.svelte | 14 + src/lib/components/icons/eye-closed.svelte | 14 + src/lib/components/icons/eye.svelte | 14 + src/lib/components/icons/palette.svelte | 11 + src/lib/components/icons/pencil.svelte | 14 + src/lib/components/icons/plus.svelte | 14 + src/lib/components/icons/reset.svelte | 14 + .../icons/sliders-horizontal.svelte | 14 + src/lib/components/icons/trash.svelte | 14 + src/lib/components/input.svelte | 33 + src/lib/components/metadata.svelte | 34 + src/lib/components/minimal-button.svelte | 7 + src/lib/components/palette.svelte | 124 + src/lib/components/repeatable-row.svelte | 24 + src/lib/components/select.svelte | 44 + src/lib/components/small-button.svelte | 38 + src/lib/components/toast.svelte | 29 + src/lib/config/site.ts | 13 + src/lib/constants.ts | 11 + src/lib/index.ts | 1 + src/lib/params.ts | 116 + src/lib/svg.ts | 12 + src/lib/toaster.ts | 10 + src/lib/types.ts | 13 + src/lib/utils.ts | 128 + src/routes/+layout.svelte | 13 + src/routes/+page.svelte | 352 ++ static/favicon.png | Bin 0 -> 1571 bytes svelte.config.js | 18 + tailwind.config.js | 64 + tsconfig.json | 19 + vite.config.ts | 6 + 72 files changed, 6548 insertions(+) create mode 100644 .dockerignore create mode 100644 .eslintignore create mode 100644 .eslintrc.cjs create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/dependabot.yml create mode 100644 .github/helper/db/postgres.json create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 README.md create mode 100644 components.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.cjs create mode 100644 renovate.json create mode 100644 src/app.d.ts create mode 100644 src/app.html create mode 100644 src/app.pcss create mode 100644 src/lib/assets/girl.png create mode 100644 src/lib/assets/segg-bear.png create mode 100644 src/lib/clipboard.ts create mode 100644 src/lib/color.ts create mode 100644 src/lib/components/bear.svelte create mode 100644 src/lib/components/button.svelte create mode 100644 src/lib/components/configuration-field.svelte create mode 100644 src/lib/components/curve.svelte create mode 100644 src/lib/components/edit-curve-input.svelte create mode 100644 src/lib/components/edit-curve-panel.svelte create mode 100644 src/lib/components/icons/check.svelte create mode 100644 src/lib/components/icons/chevron.svelte create mode 100644 src/lib/components/icons/copy.svelte create mode 100644 src/lib/components/icons/corner.svelte create mode 100644 src/lib/components/icons/cross.svelte create mode 100644 src/lib/components/icons/crosshair.svelte create mode 100644 src/lib/components/icons/download.svelte create mode 100644 src/lib/components/icons/eye-closed.svelte create mode 100644 src/lib/components/icons/eye.svelte create mode 100644 src/lib/components/icons/palette.svelte create mode 100644 src/lib/components/icons/pencil.svelte create mode 100644 src/lib/components/icons/plus.svelte create mode 100644 src/lib/components/icons/reset.svelte create mode 100644 src/lib/components/icons/sliders-horizontal.svelte create mode 100644 src/lib/components/icons/trash.svelte create mode 100644 src/lib/components/input.svelte create mode 100644 src/lib/components/metadata.svelte create mode 100644 src/lib/components/minimal-button.svelte create mode 100644 src/lib/components/palette.svelte create mode 100644 src/lib/components/repeatable-row.svelte create mode 100644 src/lib/components/select.svelte create mode 100644 src/lib/components/small-button.svelte create mode 100644 src/lib/components/toast.svelte create mode 100644 src/lib/config/site.ts create mode 100644 src/lib/constants.ts create mode 100644 src/lib/index.ts create mode 100644 src/lib/params.ts create mode 100644 src/lib/svg.ts create mode 100644 src/lib/toaster.ts create mode 100644 src/lib/types.ts create mode 100644 src/lib/utils.ts create mode 100644 src/routes/+layout.svelte create mode 100644 src/routes/+page.svelte create mode 100644 static/favicon.png create mode 100644 svelte.config.js create mode 100644 tailwind.config.js create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3e0f4eb --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +.git +.gitignore +.gitattributes +.npmrc +.prettierrc +.eslintrc.cjs +.editorconfig +.svelte-kit +.vscode +node_modules +build +package +**/.env + +README.md \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..3897265 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,13 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example + +# Ignore files for PNPM, NPM and YARN +pnpm-lock.yaml +package-lock.json +yarn.lock diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..4248d28 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,31 @@ +/** @type { import("eslint").Linter.Config } */ +module.exports = { + root: true, + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:svelte/recommended", + "prettier" + ], + parser: "@typescript-eslint/parser", + plugins: ["@typescript-eslint"], + parserOptions: { + sourceType: "module", + ecmaVersion: 2020, + extraFileExtensions: [".svelte"] + }, + env: { + browser: true, + es2017: true, + node: true + }, + overrides: [ + { + files: ["*.svelte"], + parser: "svelte-eslint-parser", + parserOptions: { + parser: "@typescript-eslint/parser" + } + } + ] +}; diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..f408277 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: ibrahimraimi diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..e575671 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Report a bug encountered while using the QuickSail Framework +labels: bug +--- + + + +## Description of the issue + +## Context information (for bug reports) + +**Output of `bench version`** +``` +(paste here) +``` + +## Steps to reproduce the issue + +1. +2. +3. + +### Observed result + +### Expected result + +### Stacktrace / full error message + +``` +(paste here) +``` + +## Additional information + +OS version / distribution, `QuickSail` install method, etc. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..f628cf6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,19 @@ +--- +name: Feature request +about: Suggest an idea to improve QuickSail +labels: feature-request +--- + + + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..8fc5248 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,33 @@ + + +> Please provide enough information so that others can review your pull request: + + + +> Explain the **details** for making this change. What existing problem does the pull request solve? + + + +> Screenshots/GIFs + + diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..5ace460 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/helper/db/postgres.json b/.github/helper/db/postgres.json new file mode 100644 index 0000000..c93c5ac --- /dev/null +++ b/.github/helper/db/postgres.json @@ -0,0 +1,17 @@ +{ + "db_host": "127.0.0.1", + "db_port": 5432, + "db_name": "test_quicksail", + "db_type": "postgres", + "allow_tests": true, + "auto_email_id": "test@example.com", + "mail_server": "localhost", + "mail_port": 2525, + "mail_login": "test@example.com", + "mail_password": "test", + "admin_password": "admin", + "root_login": "postgres", + "root_password": "travis", + "host_name": "http://test_site:8000", + "server_script_enabled": true +} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6635cf5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example +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..cc41cea --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +# Ignore files for PNPM, NPM and YARN +pnpm-lock.yaml +package-lock.json +yarn.lock diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..1e5915a --- /dev/null +++ b/.prettierrc @@ -0,0 +1,15 @@ +{ + "useTabs": true, + "singleQuote": false, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"], + "overrides": [ + { + "files": "*.svelte", + "options": { + "parser": "svelte" + } + } + ] +} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e69de29 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..05c1802 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Ibrahim Raimi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..c51df19 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Color Palette Generator diff --git a/components.json b/components.json new file mode 100644 index 0000000..c651215 --- /dev/null +++ b/components.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://shadcn-svelte.com/schema.json", + "style": "new-york", + "tailwind": { + "config": "tailwind.config.js", + "css": "src/app.pcss", + "baseColor": "neutral" + }, + "aliases": { + "components": "$lib/components", + "utils": "$lib/utils" + }, + "typescript": true +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..aeae1e3 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4560 @@ +{ + "name": "coco-palette", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "coco-palette", + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.1", + "tailwind-merge": "^2.3.0", + "tailwind-variants": "^0.2.1", + "vaul-svelte": "^0.3.1" + }, + "devDependencies": { + "@melt-ui/svelte": "^0.50.0", + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/kit": "^2.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@types/chroma-js": "^2.4.1", + "@types/eslint": "^8.56.0", + "@typescript-eslint/eslint-plugin": "^7.0.0", + "@typescript-eslint/parser": "^7.0.0", + "autoprefixer": "^10.4.16", + "chroma-js": "^2.4.2", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.35.1", + "phosphor-svelte": "^1.3.0", + "postcss": "^8.4.32", + "postcss-load-config": "^5.0.2", + "prettier": "^3.1.1", + "prettier-plugin-svelte": "^3.1.2", + "prettier-plugin-tailwindcss": "^0.5.9", + "svelte": "^4.2.7", + "svelte-check": "^3.6.0", + "tailwindcss": "^3.3.6", + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "vite": "^5.0.3" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz", + "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz", + "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", + "dependencies": { + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz", + "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", + "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "node_modules/@internationalized/date": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.4.tgz", + "integrity": "sha512-qoVJVro+O0rBaw+8HPjUB1iH8Ihf8oziEnqMnvhJUSuVIrHOuZ6eNLHNvzXJKUvAtaDiqMnRlg8Z2mgh09BlUw==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@melt-ui/svelte": { + "version": "0.50.1", + "resolved": "https://registry.npmjs.org/@melt-ui/svelte/-/svelte-0.50.1.tgz", + "integrity": "sha512-MIenasd8a5jXgynNKmH5JNSrDBS0EKUK4BImgyD0R6Vbzrll6rQquBIxlh5PeqVhZ2azDIEh/yRkwaOFi2HEgw==", + "dev": true, + "dependencies": { + "@floating-ui/core": "^1.3.1", + "@floating-ui/dom": "^1.4.5", + "dequal": "^2.0.3", + "focus-trap": "^7.5.2", + "nanoid": "^4.0.2" + }, + "peerDependencies": { + "svelte": ">=3 <5" + } + }, + "node_modules/@melt-ui/svelte/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.25", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", + "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", + "dev": true + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sveltejs/adapter-auto": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.2.1.tgz", + "integrity": "sha512-/3xx8ZFCD5UBc/7AbyXkFF3HNCzWAp2xncH8HA4doGjoGQEN7PmwiRx4Y9nOzi4mqDqYYUic0gaIAE2khWWU4Q==", + "dev": true, + "dependencies": { + "import-meta-resolve": "^4.1.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.5.10", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.5.10.tgz", + "integrity": "sha512-OqoyTmFG2cYmCFAdBfW+Qxbg8m23H4dv6KqwEt7ofr/ROcfcIl3Z/VT56L22H9f0uNZyr+9Bs1eh2gedOCK9kA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^0.6.0", + "devalue": "^5.0.0", + "esm-env": "^1.0.0", + "import-meta-resolve": "^4.1.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^2.0.4", + "tiny-glob": "^0.2.9" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.3" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.1.1.tgz", + "integrity": "sha512-rimpFEAboBBHIlzISibg94iP09k/KYdHgVhJlcsTfn7KMBhc70jFX/GRWkRdFCc2fdnk+4+Bdfej23cMDnJS6A==", + "dev": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^2.1.0", + "debug": "^4.3.4", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.10", + "svelte-hmr": "^0.16.0", + "vitefu": "^0.2.5" + }, + "engines": { + "node": "^18.0.0 || >=20" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.1.0.tgz", + "integrity": "sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.0.0 || >=20" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.0" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.11.tgz", + "integrity": "sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/chroma-js": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.4.4.tgz", + "integrity": "sha512-/DTccpHTaKomqussrn+ciEvfW4k6NAHzNzs/sts1TCqg333qNxOhy8TNIoQCmbGG3Tl8KdEhkGAssb1n3mTXiQ==", + "dev": true + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/pug": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz", + "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.11.0.tgz", + "integrity": "sha512-P+qEahbgeHW4JQ/87FuItjBj8O3MYv5gELDzr8QaQ7fsll1gSMTYb6j87MYyxwf3DtD7uGFB9ShwgmCJB5KmaQ==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.11.0", + "@typescript-eslint/type-utils": "7.11.0", + "@typescript-eslint/utils": "7.11.0", + "@typescript-eslint/visitor-keys": "7.11.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.11.0.tgz", + "integrity": "sha512-yimw99teuaXVWsBcPO1Ais02kwJ1jmNA1KxE7ng0aT7ndr1pT1wqj0OJnsYVGKKlc4QJai86l/025L6z8CljOg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.11.0", + "@typescript-eslint/types": "7.11.0", + "@typescript-eslint/typescript-estree": "7.11.0", + "@typescript-eslint/visitor-keys": "7.11.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.11.0.tgz", + "integrity": "sha512-27tGdVEiutD4POirLZX4YzT180vevUURJl4wJGmm6TrQoiYwuxTIY98PBp6L2oN+JQxzE0URvYlzJaBHIekXAw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.11.0", + "@typescript-eslint/visitor-keys": "7.11.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.11.0.tgz", + "integrity": "sha512-WmppUEgYy+y1NTseNMJ6mCFxt03/7jTOy08bcg7bxJJdsM4nuhnchyBbE8vryveaJUf62noH7LodPSo5Z0WUCg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.11.0", + "@typescript-eslint/utils": "7.11.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.11.0.tgz", + "integrity": "sha512-MPEsDRZTyCiXkD4vd3zywDCifi7tatc4K37KqTprCvaXptP7Xlpdw0NR2hRJTetG5TxbWDB79Ys4kLmHliEo/w==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.11.0.tgz", + "integrity": "sha512-cxkhZ2C/iyi3/6U9EPc5y+a6csqHItndvN/CzbNXTNrsC3/ASoYQZEt9uMaEp+xFNjasqQyszp5TumAVKKvJeQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.11.0", + "@typescript-eslint/visitor-keys": "7.11.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.11.0.tgz", + "integrity": "sha512-xlAWwPleNRHwF37AhrZurOxA1wyXowW4PqVXZVUNCLjB48CqdPJoJWkrpH2nij9Q3Lb7rtWindtoXwxjxlKKCA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.11.0", + "@typescript-eslint/types": "7.11.0", + "@typescript-eslint/typescript-estree": "7.11.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.11.0.tgz", + "integrity": "sha512-7syYk4MzjxTEk0g/w3iqtgxnFQspDJfn6QKD36xMuuhTzjcxY7F8EmBLnALjVyaOF1/bVocu3bS/2/F7rXrveQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.11.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bits-ui": { + "version": "0.21.10", + "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-0.21.10.tgz", + "integrity": "sha512-KuweEOKO0Rr8XX87dQh46G9mG0bZSmTqNxj5qBazz4OTQC+oPKui04/wP/ISsCOSGFomaRydTULqh4p+nsyc2g==", + "dependencies": { + "@internationalized/date": "^3.5.1", + "@melt-ui/svelte": "0.76.2", + "nanoid": "^5.0.5" + }, + "funding": { + "url": "https://github.com/sponsors/huntabyte" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.118" + } + }, + "node_modules/bits-ui/node_modules/@melt-ui/svelte": { + "version": "0.76.2", + "resolved": "https://registry.npmjs.org/@melt-ui/svelte/-/svelte-0.76.2.tgz", + "integrity": "sha512-7SbOa11tXUS95T3fReL+dwDs5FyJtCEqrqG3inRziDws346SYLsxOQ6HmX+4BkIsQh1R8U3XNa+EMmdMt38lMA==", + "dependencies": { + "@floating-ui/core": "^1.3.1", + "@floating-ui/dom": "^1.4.5", + "@internationalized/date": "^3.5.0", + "dequal": "^2.0.3", + "focus-trap": "^7.5.2", + "nanoid": "^5.0.4" + }, + "peerDependencies": { + "svelte": ">=3 <5" + } + }, + "node_modules/bits-ui/node_modules/nanoid": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001625", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz", + "integrity": "sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chroma-js": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", + "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==", + "dev": true + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.0.0.tgz", + "integrity": "sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==", + "dev": true + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.788", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.788.tgz", + "integrity": "sha512-ubp5+Ev/VV8KuRoWnfP2QF2Bg+O2ZFdb49DiiNbz2VmgkIqrnyYaqIOqj8A6K/3p1xV0QcU5hBQ1+BmB6ot1OA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-svelte": { + "version": "2.39.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.39.0.tgz", + "integrity": "sha512-FXktBLXsrxbA+6ZvJK2z/sQOrUKyzSg3fNWK5h0reSCjr2fjAsc9ai/s/JvSl4Hgvz3nYVtTIMwarZH5RcB7BA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@jridgewell/sourcemap-codec": "^1.4.15", + "debug": "^4.3.4", + "eslint-compat-utils": "^0.5.0", + "esutils": "^2.0.3", + "known-css-properties": "^0.31.0", + "postcss": "^8.4.38", + "postcss-load-config": "^3.1.4", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.16", + "semver": "^7.6.0", + "svelte-eslint-parser": ">=0.36.0 <1.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0-0 || ^9.0.0-0", + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.112" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-svelte/node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-svelte/node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-svelte/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/esm-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", + "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", + "dev": true + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/focus-trap": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz", + "integrity": "sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==", + "dependencies": { + "tabbable": "^6.2.0" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jackspeak": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", + "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.31.0.tgz", + "integrity": "sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/phosphor-svelte": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/phosphor-svelte/-/phosphor-svelte-1.4.2.tgz", + "integrity": "sha512-wdHKlZbE5D3ad1dd4K9bqWxpOb6gIwe+/ZeXGI9YpdKqECxqd+g3/NsLYE1+/hjlXixTWhQ7VMVIxTtBRXegCg==", + "dev": true, + "peerDependencies": { + "svelte": ">=3" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz", + "integrity": "sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.1.1", + "yaml": "^2.4.2" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.0.tgz", + "integrity": "sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.3.tgz", + "integrity": "sha512-wJq8RunyFlWco6U0WJV5wNCM7zpBFakS76UBSbmzMGpncpK98NZABaE+s7n8/APDCEVNHXC5Mpq+MLebQtsRlg==", + "dev": true, + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" + } + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.14.tgz", + "integrity": "sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q==", + "dev": true, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig-melody": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "@zackad/prettier-plugin-twig-melody": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + } + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sander": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", + "dev": true, + "dependencies": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/sander/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sorcery": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", + "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.14", + "buffer-crc32": "^0.2.5", + "minimist": "^1.2.0", + "sander": "^0.5.0" + }, + "bin": { + "sorcery": "bin/sorcery" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "4.2.17", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.17.tgz", + "integrity": "sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte-check": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.8.0.tgz", + "integrity": "sha512-7Nxn+3X97oIvMzYJ7t27w00qUf1Y52irE2RU2dQAd5PyvfGp4E7NLhFKVhb6PV2fx7dCRMpNKDIuazmGthjpSQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "chokidar": "^3.4.1", + "fast-glob": "^3.2.7", + "import-fresh": "^3.2.1", + "picocolors": "^1.0.0", + "sade": "^1.7.4", + "svelte-preprocess": "^5.1.3", + "typescript": "^5.0.3" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "peerDependencies": { + "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0" + } + }, + "node_modules/svelte-eslint-parser": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.36.0.tgz", + "integrity": "sha512-/6YmUSr0FAVxW8dXNdIMydBnddPMHzaHirAZ7RrT21XYdgGGZMh0LQG6CZsvAFS4r2Y4ItUuCQc8TQ3urB30mQ==", + "dev": true, + "dependencies": { + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "postcss": "^8.4.38", + "postcss-scss": "^4.0.9" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.115" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/svelte-hmr": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz", + "integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==", + "dev": true, + "engines": { + "node": "^12.20 || ^14.13.1 || >= 16" + }, + "peerDependencies": { + "svelte": "^3.19.0 || ^4.0.0" + } + }, + "node_modules/svelte-preprocess": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz", + "integrity": "sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/pug": "^2.0.6", + "detect-indent": "^6.1.0", + "magic-string": "^0.30.5", + "sorcery": "^0.11.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.10.2", + "coffeescript": "^2.5.1", + "less": "^3.11.3 || ^4.0.0", + "postcss": "^7 || ^8", + "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", + "pug": "^3.0.0", + "sass": "^1.26.8", + "stylus": "^0.55.0", + "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0", + "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "coffeescript": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "postcss-load-config": { + "optional": true + }, + "pug": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" + }, + "node_modules/tailwind-merge": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.3.0.tgz", + "integrity": "sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==", + "dependencies": { + "@babel/runtime": "^7.24.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwind-variants": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.2.1.tgz", + "integrity": "sha512-2xmhAf4UIc3PijOUcJPA1LP4AbxhpcHuHM2C26xM0k81r0maAO6uoUSHl3APmvHZcY5cZCY/bYuJdfFa4eGoaw==", + "dependencies": { + "tailwind-merge": "^2.2.0" + }, + "engines": { + "node": ">=16.x", + "pnpm": ">=7.x" + }, + "peerDependencies": { + "tailwindcss": "*" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/vaul-svelte": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/vaul-svelte/-/vaul-svelte-0.3.1.tgz", + "integrity": "sha512-tCIJQMlwHZMPBvBLhLJhzYw6EvQLm808rWVzmd0uTFbfS/12Z6MJ4JGP6z9Fy/sW7Jl7xQVF625N2Zk3cwN1iQ==", + "dependencies": { + "bits-ui": "^0.21.7" + }, + "peerDependencies": { + "svelte": "^4.0.0" + } + }, + "node_modules/vite": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.12.tgz", + "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", + "dev": true, + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz", + "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==", + "dev": true, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", + "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..6960fe2 --- /dev/null +++ b/package.json @@ -0,0 +1,62 @@ +{ + "name": "palette-generator", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "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 ." + }, + "author": { + "name": "Ibrahim Raimi", + "email": "raimiibrahim44@gmail.com", + "url": "http://twitter.com/metro_0x" + }, + "repository": { + "type": "git", + "url": "https://github.com/ibrahimraimi/palette-generator" + }, + "bugs": { + "url": "https://github.com/ibrahimraimi/palette-generator" + }, + "homepage": "https://github.com/ibrahimraimi/palette-generator", + "license": "MIT", + "devDependencies": { + "@melt-ui/svelte": "^0.50.0", + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/kit": "^2.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@types/chroma-js": "^2.4.1", + "@types/eslint": "^8.56.0", + "@typescript-eslint/eslint-plugin": "^7.0.0", + "@typescript-eslint/parser": "^7.0.0", + "autoprefixer": "^10.4.16", + "chroma-js": "^2.4.2", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.35.1", + "phosphor-svelte": "^1.3.0", + "postcss": "^8.4.32", + "postcss-load-config": "^5.0.2", + "prettier": "^3.1.1", + "prettier-plugin-svelte": "^3.1.2", + "prettier-plugin-tailwindcss": "^0.5.9", + "svelte": "^4.2.7", + "svelte-check": "^3.6.0", + "tailwindcss": "^3.3.6", + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "vite": "^5.0.3" + }, + "type": "module", + "dependencies": { + "clsx": "^2.1.1", + "tailwind-merge": "^2.3.0", + "tailwind-variants": "^0.2.1", + "vaul-svelte": "^0.3.1" + } +} \ No newline at end of file diff --git a/postcss.config.cjs b/postcss.config.cjs new file mode 100644 index 0000000..6c6758c --- /dev/null +++ b/postcss.config.cjs @@ -0,0 +1,13 @@ +const tailwindcss = require("tailwindcss"); +const autoprefixer = require("autoprefixer"); + +const config = { + plugins: [ + //Some plugins, like tailwindcss/nesting, need to run before Tailwind, + tailwindcss(), + //But others, like autoprefixer, need to run after, + autoprefixer + ] +}; + +module.exports = config; diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..5db72dd --- /dev/null +++ b/renovate.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended" + ] +} diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 0000000..743f07b --- /dev/null +++ b/src/app.d.ts @@ -0,0 +1,13 @@ +// See https://kit.svelte.dev/docs/types#app +// 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..77a5ff5 --- /dev/null +++ b/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/src/app.pcss b/src/app.pcss new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/src/app.pcss @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/src/lib/assets/girl.png b/src/lib/assets/girl.png new file mode 100644 index 0000000000000000000000000000000000000000..47fc29a5258669de4dbcdf413d35c8b28f14a281 GIT binary patch literal 63012 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

H=>0i7mL3E85A~gK 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 literal 0 HcmV?d00001 diff --git a/src/lib/assets/segg-bear.png b/src/lib/assets/segg-bear.png new file mode 100644 index 0000000000000000000000000000000000000000..2a157f011a2566b8ab0116da9feff0a2cf652a8d GIT binary patch literal 11216 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 { + try { + await navigator.clipboard.writeText(content); + + // toaster({ type: "success", message: success }, { id }); + } catch (err) { + // toaster({ type: "error", message: error }, { id }); + } +}; diff --git a/src/lib/color.ts b/src/lib/color.ts new file mode 100644 index 0000000..4f81b0f --- /dev/null +++ b/src/lib/color.ts @@ -0,0 +1,53 @@ +import chroma from "chroma-js"; +import { findClosestNumber, resizeNumberArray } from "./utils"; +import type { Configuration, OKLCH } from "./types"; + +export const generatePalette = (color: string, config: Configuration): { base: { oklch: OKLCH; index: number }; palette: OKLCH[] } => { + if (!chroma.valid(color)) throw new Error('Invalid color'); + + const { scales, chromaStepType, chromaStep, chromaMinimum, curve, overrides } = config + + const [l, c, h] = chroma(color).oklch(); + + const curveArr = resizeNumberArray(curve, scales); + + const closest = findClosestNumber(curveArr, l); // find the closest number in the curve to the base color's lightness + const shift = closest - l; // how much to shift the curve to match the base color's lightness + const index = curveArr.indexOf(closest); // index of the closest number in the curve + + const palette: OKLCH[] = Array.from(Array(scales)).map((_, i) => { + // shift the curve to match the base color's lightness + // don't go below 0 or above 100 + let newL = Math.min(Math.max(curveArr[i] - shift, 0), 1); + + // reduce chroma as we get further from the base color + // don't go below the minimum (the lowest between minChroma or the base color's chroma) + const cStep = chromaStepType === 'value' ? chromaStep : chromaStep * c; + let newC = Math.max(Math.min(c, chromaMinimum), c - cStep * Math.abs(i - index)); + + // overrides + const override = overrides?.find((o) => Number(o.scale) === i + 1); + + // don't override if the step is the base color + if (override && i !== index) { + const c = override.chroma || override.chroma === 0 ? Number(override.chroma) : undefined + const l = override.lightness || override.lightness === 0 ? Number(override.lightness) : undefined + + // chroma overrides can't be higher than what it already was + if (c !== undefined && !isNaN(c)) newC = Math.min(newC, c) + + if (l !== undefined && !isNaN(l)) newL = l + } + + return [newL, newC, h]; + }); + + return { base: { oklch: [l, c, h], index: index }, palette } +} + +export const getL = (l: number) => +(l * 100).toFixed(2) + '%'; +export const getC = (c: number) => +c.toFixed(3); +export const getH = (h: number) => +(h || 0).toFixed(2); +export const getOklch = (l: number, c: number, h: number) => { + return `oklch(${getL(l)} ${getC(c)} ${getH(h)})`; +}; \ No newline at end of file diff --git a/src/lib/components/bear.svelte b/src/lib/components/bear.svelte new file mode 100644 index 0000000..f794581 --- /dev/null +++ b/src/lib/components/bear.svelte @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/lib/components/button.svelte b/src/lib/components/button.svelte new file mode 100644 index 0000000..2a4d711 --- /dev/null +++ b/src/lib/components/button.svelte @@ -0,0 +1,34 @@ + + + diff --git a/src/lib/components/configuration-field.svelte b/src/lib/components/configuration-field.svelte new file mode 100644 index 0000000..4359321 --- /dev/null +++ b/src/lib/components/configuration-field.svelte @@ -0,0 +1,31 @@ + + +

+
+ + dispatch("reset")}> + + +
+
+ +
+ {#if description} + {description} + {/if} +
diff --git a/src/lib/components/curve.svelte b/src/lib/components/curve.svelte new file mode 100644 index 0000000..f891e13 --- /dev/null +++ b/src/lib/components/curve.svelte @@ -0,0 +1,96 @@ + + + + + +{#if $open} +
+ +
+{/if} diff --git a/src/lib/components/edit-curve-input.svelte b/src/lib/components/edit-curve-input.svelte new file mode 100644 index 0000000..efe7a76 --- /dev/null +++ b/src/lib/components/edit-curve-input.svelte @@ -0,0 +1,35 @@ + + +
+ + + + + + +
diff --git a/src/lib/components/edit-curve-panel.svelte b/src/lib/components/edit-curve-panel.svelte new file mode 100644 index 0000000..cf9bdf0 --- /dev/null +++ b/src/lib/components/edit-curve-panel.svelte @@ -0,0 +1,49 @@ + + +
+
+

+ + Edit Curve +

+ + { + dispatch("create"); + }} + > + + +
+ +
+ {#each curve as _, i} +
+ + + { + dispatch("delete", i); + }} + > + + +
+ {/each} +
+
diff --git a/src/lib/components/icons/check.svelte b/src/lib/components/icons/check.svelte new file mode 100644 index 0000000..7706e78 --- /dev/null +++ b/src/lib/components/icons/check.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/icons/chevron.svelte b/src/lib/components/icons/chevron.svelte new file mode 100644 index 0000000..868ada7 --- /dev/null +++ b/src/lib/components/icons/chevron.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/icons/copy.svelte b/src/lib/components/icons/copy.svelte new file mode 100644 index 0000000..f022e2c --- /dev/null +++ b/src/lib/components/icons/copy.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/icons/corner.svelte b/src/lib/components/icons/corner.svelte new file mode 100644 index 0000000..ffecad0 --- /dev/null +++ b/src/lib/components/icons/corner.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/icons/cross.svelte b/src/lib/components/icons/cross.svelte new file mode 100644 index 0000000..ffb5209 --- /dev/null +++ b/src/lib/components/icons/cross.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/icons/crosshair.svelte b/src/lib/components/icons/crosshair.svelte new file mode 100644 index 0000000..2b26c01 --- /dev/null +++ b/src/lib/components/icons/crosshair.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/icons/download.svelte b/src/lib/components/icons/download.svelte new file mode 100644 index 0000000..b5aca75 --- /dev/null +++ b/src/lib/components/icons/download.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/icons/eye-closed.svelte b/src/lib/components/icons/eye-closed.svelte new file mode 100644 index 0000000..b4be355 --- /dev/null +++ b/src/lib/components/icons/eye-closed.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/icons/eye.svelte b/src/lib/components/icons/eye.svelte new file mode 100644 index 0000000..6fc16dd --- /dev/null +++ b/src/lib/components/icons/eye.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/icons/palette.svelte b/src/lib/components/icons/palette.svelte new file mode 100644 index 0000000..9050d59 --- /dev/null +++ b/src/lib/components/icons/palette.svelte @@ -0,0 +1,11 @@ + diff --git a/src/lib/components/icons/pencil.svelte b/src/lib/components/icons/pencil.svelte new file mode 100644 index 0000000..8d4f141 --- /dev/null +++ b/src/lib/components/icons/pencil.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/icons/plus.svelte b/src/lib/components/icons/plus.svelte new file mode 100644 index 0000000..8be74ac --- /dev/null +++ b/src/lib/components/icons/plus.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/icons/reset.svelte b/src/lib/components/icons/reset.svelte new file mode 100644 index 0000000..698be2d --- /dev/null +++ b/src/lib/components/icons/reset.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/icons/sliders-horizontal.svelte b/src/lib/components/icons/sliders-horizontal.svelte new file mode 100644 index 0000000..52b2aaa --- /dev/null +++ b/src/lib/components/icons/sliders-horizontal.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/icons/trash.svelte b/src/lib/components/icons/trash.svelte new file mode 100644 index 0000000..9fc9e23 --- /dev/null +++ b/src/lib/components/icons/trash.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/components/input.svelte b/src/lib/components/input.svelte new file mode 100644 index 0000000..8a98e18 --- /dev/null +++ b/src/lib/components/input.svelte @@ -0,0 +1,33 @@ + + + diff --git a/src/lib/components/metadata.svelte b/src/lib/components/metadata.svelte new file mode 100644 index 0000000..e1722d2 --- /dev/null +++ b/src/lib/components/metadata.svelte @@ -0,0 +1,34 @@ + + + + {title} + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/lib/components/minimal-button.svelte b/src/lib/components/minimal-button.svelte new file mode 100644 index 0000000..2bd2c25 --- /dev/null +++ b/src/lib/components/minimal-button.svelte @@ -0,0 +1,7 @@ + diff --git a/src/lib/components/palette.svelte b/src/lib/components/palette.svelte new file mode 100644 index 0000000..4837594 --- /dev/null +++ b/src/lib/components/palette.svelte @@ -0,0 +1,124 @@ + + +
+
+
+
+ + + +
+
+ + + { + dispatch("delete", color); + }} + > + + Delete + +
+
+
+ {#each palette as [l, c, h], i} + + {/each} +
+
diff --git a/src/lib/components/repeatable-row.svelte b/src/lib/components/repeatable-row.svelte new file mode 100644 index 0000000..49206d4 --- /dev/null +++ b/src/lib/components/repeatable-row.svelte @@ -0,0 +1,24 @@ + + +
+
+

{label}

+ {#if isDeletable} + dispatch("delete")}> + + + {/if} +
+
+ +
+
diff --git a/src/lib/components/select.svelte b/src/lib/components/select.svelte new file mode 100644 index 0000000..787388b --- /dev/null +++ b/src/lib/components/select.svelte @@ -0,0 +1,44 @@ + + + + + diff --git a/src/lib/components/small-button.svelte b/src/lib/components/small-button.svelte new file mode 100644 index 0000000..fbdddb7 --- /dev/null +++ b/src/lib/components/small-button.svelte @@ -0,0 +1,38 @@ + + + + + diff --git a/src/lib/components/toast.svelte b/src/lib/components/toast.svelte new file mode 100644 index 0000000..1a9ab1a --- /dev/null +++ b/src/lib/components/toast.svelte @@ -0,0 +1,29 @@ + diff --git a/src/lib/config/site.ts b/src/lib/config/site.ts new file mode 100644 index 0000000..f106032 --- /dev/null +++ b/src/lib/config/site.ts @@ -0,0 +1,13 @@ +export const siteConfig = { + name: "Trail", + url: "https://coco-palette.netlify.app", + ogImage: "/og.png", + description: "Trail is a simple project/tasks manager web app ", + links: { + twitter: "https://twitter.com/ibrahimraimi", + github: "https://github.com/ibrahimraimi/coco-palette" + }, + keywords: `` +}; + +export type SiteConfig = typeof siteConfig; diff --git a/src/lib/constants.ts b/src/lib/constants.ts new file mode 100644 index 0000000..60b963d --- /dev/null +++ b/src/lib/constants.ts @@ -0,0 +1,11 @@ +import type { Configuration } from "./types"; + +export const DEFAULT: Configuration = Object.freeze({ + colors: [], + scales: 18, + chromaStepType: 'percentage', + chromaStep: 0.02, + chromaMinimum: 0.05, + curve: [0,0.2,0.4,0.6,0.8,1], + overrides: [], +}) \ No newline at end of file diff --git a/src/lib/index.ts b/src/lib/index.ts new file mode 100644 index 0000000..856f2b6 --- /dev/null +++ b/src/lib/index.ts @@ -0,0 +1 @@ +// place files you want to import through the `$lib` alias in this folder. diff --git a/src/lib/params.ts b/src/lib/params.ts new file mode 100644 index 0000000..1854d42 --- /dev/null +++ b/src/lib/params.ts @@ -0,0 +1,116 @@ +import chroma from "chroma-js"; +import { DEFAULT } from "./constants"; +import type { Configuration } from "./types"; + +export const PARAMS: Record = { + colors: 'c', + scales: 's', + chromaStepType: 'cst', + chromaStep: 'cs', + chromaMinimum: 'cm', + overrides: 'o', + curve: 'cv', +} + +const isValidNumber = (v: number | undefined) => typeof v === 'number' && !isNaN(v); + +const hasValue = (v: T | undefined): v is T => !!v || v === 0; + +export function serializeOverrides(overrides: Configuration['overrides']): string { + return overrides.map((o) => { + const s = Number(o.scale || o.scale === 0 ? o.scale : undefined); + const c = Number(o.chroma || o.chroma === 0 ? o.chroma : undefined); + const l = Number(o.lightness || o.lightness === 0 ? o.lightness : undefined); + + const scale = isValidNumber(s) ? `s${s}` : ''; + const chroma = isValidNumber(c) ? `c${c}` : ''; + const lightness = isValidNumber(l) ? `l${l}` : ''; + + return `${scale}${chroma}${lightness}`; + }).join(','); +} + +export function serializeCurve(curve: Configuration['curve']): string { + return curve.map((n) => Number(n)).filter((n) => !isNaN(n)).join(','); +} + +export function serializer({ + colors, + scales, + chromaStepType, + chromaStep, + chromaMinimum, + curve, + overrides, +}: Partial): URLSearchParams { + const params = new URLSearchParams(); + + if (colors && colors?.length) { + params.set(PARAMS.colors, colors.join(',')) + }; + + if (hasValue(scales) && scales !== DEFAULT.scales) { + params.set(PARAMS.scales, scales.toString()); + } + + if (chromaStepType && chromaStepType !== DEFAULT.chromaStepType) { + params.set(PARAMS.chromaStepType, chromaStepType); + } + + if (hasValue(chromaStep) && chromaStep !== DEFAULT.chromaStep) { + params.set(PARAMS.chromaStep, chromaStep.toString()); + } + + if (hasValue(chromaMinimum) && chromaMinimum !== DEFAULT.chromaMinimum) { + params.set(PARAMS.chromaMinimum, chromaMinimum.toString()); + } + + if (curve && curve.length && (curve.length !== DEFAULT.curve.length || curve.some((n, i) => Number(n) !== DEFAULT.curve[i]))) { + params.set(PARAMS.curve, serializeCurve(curve)) + } + + if (overrides && overrides.length) { + params.set(PARAMS.overrides, serializeOverrides(overrides)); + } + + return params; +} + + +export function parseColor(params: URLSearchParams): Configuration['colors'] { + return params.get(PARAMS.colors)?.split(',').filter((v) => chroma.valid(v)) ?? [...DEFAULT.colors]; +} + +export function parseOverrides(params: URLSearchParams): Configuration['overrides'] { + return params.get(PARAMS.overrides)?.split(',').map((v) => { + const scale = Number(v.match(/s(\d+\.?\d*)/)?.[1]); + const chroma = Number(v.match(/c(\d+\.?\d*)/)?.[1]); + const lightness = Number(v.match(/l(\d+\.?\d*)/)?.[1]); + + return { + scale: isValidNumber(scale) ? scale : undefined, + chroma: isValidNumber(chroma) ? chroma : undefined, + lightness: isValidNumber(lightness) ? lightness : undefined, + } + }) ?? [...DEFAULT.overrides] +} + +export function parseCurve(params: URLSearchParams): Configuration['curve'] { + return params.get(PARAMS.curve)?.split(',').map((v) => Number(v)).filter((n) => !isNaN(n)) ?? [...DEFAULT.curve] +} + +export function parseChromaStepType(params: URLSearchParams): Configuration['chromaStepType'] { + return params.get(PARAMS.chromaStepType) === 'value' ? 'value' : 'percentage'; +} + +export function parser(params: URLSearchParams): Configuration { + const colors = parseColor(params); + const scales = Number(params.get(PARAMS.scales)) || DEFAULT.scales; + const chromaStepType = parseChromaStepType(params); + const chromaStep = Number(params.get(PARAMS.chromaStep)) ?? DEFAULT.chromaStep; + const chromaMinimum = Number(params.get(PARAMS.chromaMinimum)) ?? DEFAULT.chromaMinimum; + const overrides = parseOverrides(params); + const curve = parseCurve(params); + + return { colors, scales, chromaStepType, chromaStep, chromaMinimum, overrides, curve }; +} \ No newline at end of file diff --git a/src/lib/svg.ts b/src/lib/svg.ts new file mode 100644 index 0000000..2ef9aa0 --- /dev/null +++ b/src/lib/svg.ts @@ -0,0 +1,12 @@ +import chroma from "chroma-js"; +import type { OKLCH } from "./color"; + +// receives a palette and returns an SVG string with a row of squares (200x200 each) with the correct colors (in rgb for better compatibility) +export const paletteToSvg = (palette: OKLCH[]) => { + const squares = palette.map(([l, c, h], i) => { + const [r, g, b] = chroma.oklch(l, c, h).rgb(); + return ``; + }).join(''); + + return `${squares}`; +} \ No newline at end of file diff --git a/src/lib/toaster.ts b/src/lib/toaster.ts new file mode 100644 index 0000000..b82f6dc --- /dev/null +++ b/src/lib/toaster.ts @@ -0,0 +1,10 @@ +// import { createToaster } from '@significa/svelte-toaster' + +// export type ToastType = { +// type: 'success' | 'error' +// message: string +// } + +// export const toaster = createToaster({ +// duration: (toast) => toast.data.type === 'success' ? 2000 : 5000, +// }) diff --git a/src/lib/types.ts b/src/lib/types.ts new file mode 100644 index 0000000..f04cdfb --- /dev/null +++ b/src/lib/types.ts @@ -0,0 +1,13 @@ +export type OKLCH = [number, number, number]; + +export type Override = { scale?: number; chroma?: number; lightness?: number; }; + +export type Configuration = { + colors: string[], + scales: number, + chromaStepType: 'value' | 'percentage', + chromaStep: number, + chromaMinimum: number, + overrides: Override[], + curve: number[], +} \ No newline at end of file diff --git a/src/lib/utils.ts b/src/lib/utils.ts new file mode 100644 index 0000000..4b25a33 --- /dev/null +++ b/src/lib/utils.ts @@ -0,0 +1,128 @@ +import chroma from "chroma-js"; +import type { OKLCH } from "./types"; +import { twMerge } from "tailwind-merge"; +import { cubicOut } from "svelte/easing"; +import { type ClassValue, clsx } from "clsx"; +import type { TransitionConfig } from "svelte/transition"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} + +type FlyAndScaleParams = { + y?: number; + x?: number; + start?: number; + duration?: number; +}; + +export const flyAndScale = ( + node: Element, + params: FlyAndScaleParams = { y: -8, x: 0, start: 0.95, duration: 150 } +): TransitionConfig => { + const style = getComputedStyle(node); + const transform = style.transform === "none" ? "" : style.transform; + + const scaleConversion = (valueA: number, scaleA: [number, number], scaleB: [number, number]) => { + const [minA, maxA] = scaleA; + const [minB, maxB] = scaleB; + + const percentage = (valueA - minA) / (maxA - minA); + const valueB = percentage * (maxB - minB) + minB; + + return valueB; + }; + + const styleToString = (style: Record): string => { + return Object.keys(style).reduce((str, key) => { + if (style[key] === undefined) return str; + return str + `${key}:${style[key]};`; + }, ""); + }; + + return { + duration: params.duration ?? 200, + delay: 0, + css: (t) => { + const y = scaleConversion(t, [0, 1], [params.y ?? 5, 0]); + const x = scaleConversion(t, [0, 1], [params.x ?? 0, 0]); + const scale = scaleConversion(t, [0, 1], [params.start ?? 0.95, 1]); + + return styleToString({ + transform: `${transform} translate3d(${x}px, ${y}px, 0) scale(${scale})`, + opacity: t + }); + }, + easing: cubicOut + }; +}; + +export function resizeNumberArray(arr: number[], newSize: number) { + const originalSize = arr.length; + const step = (originalSize - 1) / (newSize - 1); + + return Array.from({ length: newSize }, (_, index) => { + const leftIndex = Math.floor(index * step); + const rightIndex = Math.ceil(index * step); + const weight = index * step - leftIndex; + + if (leftIndex === rightIndex) { + return arr[leftIndex]; + } else { + return (1 - weight) * arr[leftIndex] + weight * arr[rightIndex]; + } + }); +} + +// function that finds the closest number in an array of numbers +export function findClosestNumber(arr: number[], target: number) { + return arr.reduce((prev, curr) => { + return Math.abs(curr - target) < Math.abs(prev - target) ? curr : prev; + }); +} + +type PaletteJSON = Record< + string, + Record< + string, + { + name: string; + description: string; + value: string; + type: string; + } + > +>; + +const capitalize = (str: string) => str.charAt(0).toUpperCase() + str.slice(1); + +export function paletteToJSON(name: string, palette: OKLCH[]): { [key: string]: PaletteJSON } { + return { + [capitalize(name)]: palette.reduce((obj, [l, c, h], i) => { + const name = i + 1; + const value = chroma.oklch(l, c, h).hex(); + const description = ""; + const type = "color"; + + return { + ...obj, + [name]: { + name, + description, + value, + type + } + }; + }, {}) + }; +} + +export function downloadFile(data: string, fileName = "palette.json") { + const blob = new Blob([data], { type: "application/json" }); + const url = URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = url; + a.download = fileName; + a.click(); + URL.revokeObjectURL(url); +} diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..48576c1 --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,13 @@ + + + + Palette Generator + + + + + diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 0000000..69a46bf --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1,352 @@ + + +
+
+
+

Palette generator

+
+ +
{ + e.preventDefault(); + + if (!color) return; + + if (!chroma.valid(color)) { + invalid = true; + return; + } + + // assign variables + invalid = false; + colors = [color, ...parseColor($page.url.searchParams)]; + color = ""; + mobileColorsPanel = true; + }} + > +
+ + (invalid = false)} + class={cn(invalid && " border-pink-300")} + id="color" + bind:value={color} + placeholder="Type your color" + /> + {#if invalid} + Invalid color + {/if} +
+ + Type a valid color in any format to generate a monochromatic palette. It will range from + dark to light with the saturation decreasing as it moves away from the base color. +
+ +
+

+ + Configuration +

+
+
+ { + scales = DEFAULT.scales; + }} + > + + + + { + chromaStep = DEFAULT.chromaStep; + }} + > + + + + + { + chromaMinimum = DEFAULT.chromaMinimum; + }} + > + + +
+
+
+ + +
+
+

+ + Curve +

+ { + curve = [...DEFAULT.curve]; + }} + > + + +
+ +
+ + { + curve = [...curve, curve[curve.length - 1] ?? 1]; + }} + on:delete={(event) => { + curve = curve.filter((_, index) => index !== event.detail); + }} + /> + +
+ + You can create your own lightness curve. The numbers between steps will be interpolated + linearly. A shift will be applied to make sure your base color remains unchanged. +
+ + +
+
+

+ + Overrides +

+ { + overrides = [...overrides, {}]; + }} + > + + +
+ + {#each overrides as override, i} + { + overrides = overrides.filter((_, index) => index !== i); + }} + > + + + + + {/each} + + You can add chroma and lightness overrides to specific scales. It will never affect the + base color. If the chroma override is greater than the original, it will not be applied. +
+
+ +
+ +
+ {#each colors as c} + {@const { base, palette } = generatePalette( + c, + parser( + serializer({ + scales, + chromaStepType, + chromaStep, + chromaMinimum, + overrides, + curve + }) + ) + )} + { + colors = colors.filter((c) => c !== event.detail); + }} + /> + {:else} +
+
+

Start creating palette

+
+
+ {/each} + +
+
+
diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..825b9e65af7c104cfb07089bb28659393b4f2097 GIT binary patch literal 1571 zcmV+;2Hg3HP)Px)-AP12RCwC$UE6KzI1p6{F2N z1VK2vi|pOpn{~#djwYcWXTI_im_u^TJgMZ4JMOsSj!0ma>B?-(Hr@X&W@|R-$}W@Z zgj#$x=!~7LGqHW?IO8+*oE1MyDp!G=L0#^lUx?;!fXv@l^6SvTnf^ac{5OurzC#ZMYc20lI%HhX816AYVs1T3heS1*WaWH z%;x>)-J}YB5#CLzU@GBR6sXYrD>Vw(Fmt#|JP;+}<#6b63Ike{Fuo!?M{yEffez;| zp!PfsuaC)>h>-AdbnwN13g*1LowNjT5?+lFVd#9$!8Z9HA|$*6dQ8EHLu}U|obW6f z2%uGv?vr=KNq7YYa2Roj;|zooo<)lf=&2yxM@e`kM$CmCR#x>gI>I|*Ubr({5Y^rb zghxQU22N}F51}^yfDSt786oMTc!W&V;d?76)9KXX1 z+6Okem(d}YXmmOiZq$!IPk5t8nnS{%?+vDFz3BevmFNgpIod~R{>@#@5x9zJKEHLHv!gHeK~n)Ld!M8DB|Kfe%~123&Hz1Z(86nU7*G5chmyDe ziV7$pB7pJ=96hpxHv9rCR29%bLOXlKU<_13_M8x)6;P8E1Kz6G<&P?$P^%c!M5`2` zfY2zg;VK5~^>TJGQzc+33-n~gKt{{of8GzUkWmU110IgI0DLxRIM>0US|TsM=L|@F z0Bun8U!cRB7-2apz=y-7*UxOxz@Z0)@QM)9wSGki1AZ38ceG7Q72z5`i;i=J`ILzL z@iUO?SBBG-0cQuo+an4TsLy-g-x;8P4UVwk|D8{W@U1Zi z!M)+jqy@nQ$p?5tsHp-6J304Q={v-B>66$P0IDx&YT(`IcZ~bZfmn11#rXd7<5s}y zBi9eim&zQc0Dk|2>$bs0PnLmDfMP5lcXRY&cvJ=zKxI^f0%-d$tD!`LBf9^jMSYUA zI8U?CWdY@}cRq6{5~y+)#h1!*-HcGW@+gZ4B};0OnC~`xQOyH19z*TA!!BJ%9s0V3F?CAJ{hTd#*tf+ur-W9MOURF-@B77_-OshsY}6 zOXRY=5%C^*26z?l)1=$bz30!so5tfABdSYzO+H=CpV~aaUefmjvfZ3Ttu9W&W3Iu6 zROlh0MFA5h;my}8lB0tAV-Rvc2Zs_CCSJnx@d`**$idgy-iMob4dJWWw|21b4NB=LfsYp0Aeh{Ov)yztQi;eL4y5 zMi>8^SzKqk8~k?UiQK^^-5d8c%bV?$F8%X~czyiaKCI2=UH)", + input: "hsl(var(--input) / )", + ring: "hsl(var(--ring) / )", + background: "hsl(var(--background) / )", + foreground: "hsl(var(--foreground) / )", + primary: { + DEFAULT: "hsl(var(--primary) / )", + foreground: "hsl(var(--primary-foreground) / )" + }, + secondary: { + DEFAULT: "hsl(var(--secondary) / )", + foreground: "hsl(var(--secondary-foreground) / )" + }, + destructive: { + DEFAULT: "hsl(var(--destructive) / )", + foreground: "hsl(var(--destructive-foreground) / )" + }, + muted: { + DEFAULT: "hsl(var(--muted) / )", + foreground: "hsl(var(--muted-foreground) / )" + }, + accent: { + DEFAULT: "hsl(var(--accent) / )", + foreground: "hsl(var(--accent-foreground) / )" + }, + popover: { + DEFAULT: "hsl(var(--popover) / )", + foreground: "hsl(var(--popover-foreground) / )" + }, + card: { + DEFAULT: "hsl(var(--card) / )", + foreground: "hsl(var(--card-foreground) / )" + } + }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)" + }, + fontFamily: { + sans: [...fontFamily.sans] + } + } + } +}; + +export default config; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..fc93cbd --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "moduleResolution": "bundler" + } + // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias + // except $lib which is handled by https://kit.svelte.dev/docs/configuration#files + // + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes + // from the referenced tsconfig.json - TypeScript does not merge them in +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..328b1f5 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,6 @@ +import { sveltekit } from "@sveltejs/kit/vite"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [sveltekit()] +});