From f42ba94af4fe805f05c08cfd4519a1bc6392b3bc Mon Sep 17 00:00:00 2001 From: Omer Sabic Date: Fri, 26 Apr 2024 18:40:42 +0200 Subject: [PATCH] lotsa shit --- .prettierrc | 11 +- components.json | 14 + package-lock.json | 1904 +++++++++++++++-- package.json | 19 +- postcss.config.cjs | 13 + src/app.pcss | 78 + src/hooks.server.js | 3 +- src/lib/components/molecules/probadge.svelte | 4 + .../components/molecules/tooltipbutton.svelte | 17 + .../ui/avatar/avatar-fallback.svelte | 13 + .../components/ui/avatar/avatar-image.svelte | 15 + src/lib/components/ui/avatar/avatar.svelte | 15 + src/lib/components/ui/avatar/index.js | 12 + src/lib/components/ui/badge/badge.svelte | 17 + src/lib/components/ui/badge/index.js | 18 + src/lib/components/ui/button/button.svelte | 21 + src/lib/components/ui/button/index.js | 32 + .../components/ui/card/card-content.svelte | 9 + .../ui/card/card-description.svelte | 9 + src/lib/components/ui/card/card-footer.svelte | 9 + src/lib/components/ui/card/card-header.svelte | 9 + src/lib/components/ui/card/card-title.svelte | 14 + src/lib/components/ui/card/card.svelte | 12 + src/lib/components/ui/card/index.js | 21 + .../ui/dialog/dialog-content.svelte | 33 + .../ui/dialog/dialog-description.svelte | 13 + .../components/ui/dialog/dialog-footer.svelte | 12 + .../components/ui/dialog/dialog-header.svelte | 9 + .../ui/dialog/dialog-overlay.svelte | 18 + .../components/ui/dialog/dialog-portal.svelte | 7 + .../components/ui/dialog/dialog-title.svelte | 13 + src/lib/components/ui/dialog/index.js | 34 + .../dropdown-menu-checkbox-item.svelte | 31 + .../dropdown-menu-content.svelte | 23 + .../dropdown-menu/dropdown-menu-item.svelte | 25 + .../dropdown-menu/dropdown-menu-label.svelte | 14 + .../dropdown-menu-radio-group.svelte | 8 + .../dropdown-menu-radio-item.svelte | 31 + .../dropdown-menu-separator.svelte | 11 + .../dropdown-menu-shortcut.svelte | 9 + .../dropdown-menu-sub-content.svelte | 26 + .../dropdown-menu-sub-trigger.svelte | 26 + src/lib/components/ui/dropdown-menu/index.js | 46 + src/lib/components/ui/form/form-button.svelte | 7 + .../ui/form/form-description.svelte | 14 + .../ui/form/form-element-field.svelte | 16 + .../ui/form/form-field-errors.svelte | 21 + src/lib/components/ui/form/form-field.svelte | 16 + .../components/ui/form/form-fieldset.svelte | 22 + src/lib/components/ui/form/form-label.svelte | 12 + src/lib/components/ui/form/form-legend.svelte | 14 + src/lib/components/ui/form/index.js | 31 + src/lib/components/ui/input/index.js | 6 + src/lib/components/ui/input/input.svelte | 32 + src/lib/components/ui/label/index.js | 6 + src/lib/components/ui/label/label.svelte | 17 + src/lib/components/ui/select/index.js | 31 + .../ui/select/select-content.svelte | 34 + .../components/ui/select/select-item.svelte | 36 + .../components/ui/select/select-label.svelte | 13 + .../ui/select/select-separator.svelte | 8 + .../ui/select/select-trigger.svelte | 23 + src/lib/components/ui/sheet/index.js | 99 + .../components/ui/sheet/sheet-content.svelte | 34 + .../ui/sheet/sheet-description.svelte | 10 + .../components/ui/sheet/sheet-footer.svelte | 12 + .../components/ui/sheet/sheet-header.svelte | 9 + .../components/ui/sheet/sheet-overlay.svelte | 18 + .../components/ui/sheet/sheet-portal.svelte | 10 + .../components/ui/sheet/sheet-title.svelte | 13 + src/lib/components/ui/table/index.js | 27 + src/lib/components/ui/table/table-body.svelte | 9 + .../components/ui/table/table-caption.svelte | 9 + src/lib/components/ui/table/table-cell.svelte | 14 + .../components/ui/table/table-footer.svelte | 9 + src/lib/components/ui/table/table-head.svelte | 15 + .../components/ui/table/table-header.svelte | 10 + src/lib/components/ui/table/table-row.svelte | 17 + src/lib/components/ui/table/table.svelte | 11 + src/lib/components/ui/tooltip/index.js | 13 + .../ui/tooltip/tooltip-content.svelte | 25 + src/lib/utils.js | 48 + .../{+page.server.js => +layout.server.js} | 6 +- src/routes/+layout.svelte | 124 ++ src/routes/+page.svelte | 220 +- src/routes/articles/+page.server.js | 18 + src/routes/articles/+page.svelte | 180 ++ src/routes/articles/schema.js | 9 + src/routes/auth/+page.svelte | 6 + static/avatars/01.png | Bin 0 -> 5406 bytes static/avatars/02.png | Bin 0 -> 5368 bytes static/avatars/03.png | Bin 0 -> 5032 bytes static/avatars/04.png | Bin 0 -> 5476 bytes static/avatars/05.png | Bin 0 -> 5891 bytes svelte.config.js | 5 +- tailwind.config.js | 64 + 96 files changed, 3939 insertions(+), 142 deletions(-) create mode 100644 components.json create mode 100644 postcss.config.cjs create mode 100644 src/app.pcss create mode 100644 src/lib/components/molecules/probadge.svelte create mode 100644 src/lib/components/molecules/tooltipbutton.svelte create mode 100644 src/lib/components/ui/avatar/avatar-fallback.svelte create mode 100644 src/lib/components/ui/avatar/avatar-image.svelte create mode 100644 src/lib/components/ui/avatar/avatar.svelte create mode 100644 src/lib/components/ui/avatar/index.js create mode 100644 src/lib/components/ui/badge/badge.svelte create mode 100644 src/lib/components/ui/badge/index.js create mode 100644 src/lib/components/ui/button/button.svelte create mode 100644 src/lib/components/ui/button/index.js create mode 100644 src/lib/components/ui/card/card-content.svelte create mode 100644 src/lib/components/ui/card/card-description.svelte create mode 100644 src/lib/components/ui/card/card-footer.svelte create mode 100644 src/lib/components/ui/card/card-header.svelte create mode 100644 src/lib/components/ui/card/card-title.svelte create mode 100644 src/lib/components/ui/card/card.svelte create mode 100644 src/lib/components/ui/card/index.js create mode 100644 src/lib/components/ui/dialog/dialog-content.svelte create mode 100644 src/lib/components/ui/dialog/dialog-description.svelte create mode 100644 src/lib/components/ui/dialog/dialog-footer.svelte create mode 100644 src/lib/components/ui/dialog/dialog-header.svelte create mode 100644 src/lib/components/ui/dialog/dialog-overlay.svelte create mode 100644 src/lib/components/ui/dialog/dialog-portal.svelte create mode 100644 src/lib/components/ui/dialog/dialog-title.svelte create mode 100644 src/lib/components/ui/dialog/index.js create mode 100644 src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte create mode 100644 src/lib/components/ui/dropdown-menu/dropdown-menu-content.svelte create mode 100644 src/lib/components/ui/dropdown-menu/dropdown-menu-item.svelte create mode 100644 src/lib/components/ui/dropdown-menu/dropdown-menu-label.svelte create mode 100644 src/lib/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte create mode 100644 src/lib/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte create mode 100644 src/lib/components/ui/dropdown-menu/dropdown-menu-separator.svelte create mode 100644 src/lib/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte create mode 100644 src/lib/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte create mode 100644 src/lib/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte create mode 100644 src/lib/components/ui/dropdown-menu/index.js create mode 100644 src/lib/components/ui/form/form-button.svelte create mode 100644 src/lib/components/ui/form/form-description.svelte create mode 100644 src/lib/components/ui/form/form-element-field.svelte create mode 100644 src/lib/components/ui/form/form-field-errors.svelte create mode 100644 src/lib/components/ui/form/form-field.svelte create mode 100644 src/lib/components/ui/form/form-fieldset.svelte create mode 100644 src/lib/components/ui/form/form-label.svelte create mode 100644 src/lib/components/ui/form/form-legend.svelte create mode 100644 src/lib/components/ui/form/index.js create mode 100644 src/lib/components/ui/input/index.js create mode 100644 src/lib/components/ui/input/input.svelte create mode 100644 src/lib/components/ui/label/index.js create mode 100644 src/lib/components/ui/label/label.svelte create mode 100644 src/lib/components/ui/select/index.js create mode 100644 src/lib/components/ui/select/select-content.svelte create mode 100644 src/lib/components/ui/select/select-item.svelte create mode 100644 src/lib/components/ui/select/select-label.svelte create mode 100644 src/lib/components/ui/select/select-separator.svelte create mode 100644 src/lib/components/ui/select/select-trigger.svelte create mode 100644 src/lib/components/ui/sheet/index.js create mode 100644 src/lib/components/ui/sheet/sheet-content.svelte create mode 100644 src/lib/components/ui/sheet/sheet-description.svelte create mode 100644 src/lib/components/ui/sheet/sheet-footer.svelte create mode 100644 src/lib/components/ui/sheet/sheet-header.svelte create mode 100644 src/lib/components/ui/sheet/sheet-overlay.svelte create mode 100644 src/lib/components/ui/sheet/sheet-portal.svelte create mode 100644 src/lib/components/ui/sheet/sheet-title.svelte create mode 100644 src/lib/components/ui/table/index.js create mode 100644 src/lib/components/ui/table/table-body.svelte create mode 100644 src/lib/components/ui/table/table-caption.svelte create mode 100644 src/lib/components/ui/table/table-cell.svelte create mode 100644 src/lib/components/ui/table/table-footer.svelte create mode 100644 src/lib/components/ui/table/table-head.svelte create mode 100644 src/lib/components/ui/table/table-header.svelte create mode 100644 src/lib/components/ui/table/table-row.svelte create mode 100644 src/lib/components/ui/table/table.svelte create mode 100644 src/lib/components/ui/tooltip/index.js create mode 100644 src/lib/components/ui/tooltip/tooltip-content.svelte create mode 100644 src/lib/utils.js rename src/routes/{+page.server.js => +layout.server.js} (51%) create mode 100644 src/routes/+layout.svelte create mode 100644 src/routes/articles/+page.server.js create mode 100644 src/routes/articles/+page.svelte create mode 100644 src/routes/articles/schema.js create mode 100644 src/routes/auth/+page.svelte create mode 100644 static/avatars/01.png create mode 100644 static/avatars/02.png create mode 100644 static/avatars/03.png create mode 100644 static/avatars/04.png create mode 100644 static/avatars/05.png create mode 100644 tailwind.config.js diff --git a/.prettierrc b/.prettierrc index 9573023..7ebb855 100644 --- a/.prettierrc +++ b/.prettierrc @@ -3,6 +3,13 @@ "singleQuote": true, "trailingComma": "none", "printWidth": 100, - "plugins": ["prettier-plugin-svelte"], - "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] + "plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"], + "overrides": [ + { + "files": "*.svelte", + "options": { + "parser": "svelte" + } + } + ] } diff --git a/components.json b/components.json new file mode 100644 index 0000000..6acc57b --- /dev/null +++ b/components.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://shadcn-svelte.com/schema.json", + "style": "default", + "tailwind": { + "config": "tailwind.config.js", + "css": "src/app.pcss", + "baseColor": "slate" + }, + "aliases": { + "components": "$lib/components", + "utils": "$lib/utils" + }, + "typescript": false +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b02ff3e..6e01222 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,23 +7,50 @@ "": { "name": "front-end", "version": "0.0.1", + "dependencies": { + "bits-ui": "^0.21.4", + "clsx": "^2.1.1", + "formsnap": "^1.0.0", + "lucide-svelte": "^0.373.0", + "mode-watcher": "^0.3.0", + "svelte-radix": "^1.1.0", + "sveltekit-superforms": "^2.12.6", + "tailwind-merge": "^2.3.0", + "tailwind-variants": "^0.2.1", + "zod": "^3.23.4" + }, "devDependencies": { "@sveltejs/adapter-auto": "^3.0.0", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", + "autoprefixer": "^10.4.16", + "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", "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==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -32,6 +59,17 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/runtime": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", + "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "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", @@ -39,7 +77,6 @@ "cpu": [ "ppc64" ], - "dev": true, "optional": true, "os": [ "aix" @@ -55,7 +92,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "android" @@ -71,7 +107,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "android" @@ -87,7 +122,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "android" @@ -103,7 +137,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -119,7 +152,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -135,7 +167,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -151,7 +182,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -167,7 +197,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -183,7 +212,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -199,7 +227,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "linux" @@ -215,7 +242,6 @@ "cpu": [ "loong64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -231,7 +257,6 @@ "cpu": [ "mips64el" ], - "dev": true, "optional": true, "os": [ "linux" @@ -247,7 +272,6 @@ "cpu": [ "ppc64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -263,7 +287,6 @@ "cpu": [ "riscv64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -279,7 +302,6 @@ "cpu": [ "s390x" ], - "dev": true, "optional": true, "os": [ "linux" @@ -295,7 +317,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -311,7 +332,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "netbsd" @@ -327,7 +347,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "openbsd" @@ -343,7 +362,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "sunos" @@ -359,7 +377,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -375,7 +392,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "win32" @@ -391,7 +407,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -400,11 +415,86 @@ "node": ">=12" } }, + "node_modules/@floating-ui/core": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "dependencies": { + "@floating-ui/utils": "^0.2.1" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", + "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + }, + "node_modules/@gcornut/valibot-json-schema": { + "version": "0.0.27", + "resolved": "https://registry.npmjs.org/@gcornut/valibot-json-schema/-/valibot-json-schema-0.0.27.tgz", + "integrity": "sha512-xcMaUStVgQzPrK3d7PuLFbQ+3qSp6LzaLExAm52E3FKmUfjQa7Sw5cDK6Hfu/8WT0yfGsuSCuJ5uT1sosjR9Qg==", + "optional": true, + "bin": { + "valibot-json-schema": "bin/index.js" + }, + "peerDependencies": { + "@types/json-schema": ">= 7.0.14", + "esbuild": ">= 0.18.20", + "esbuild-runner": ">= 2.2.2", + "valibot": ">= 0.21.0" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "optional": true + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "optional": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@internationalized/date": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.2.tgz", + "integrity": "sha512-vo1yOMUt2hzp63IutEaTUxROdvQg1qlMRsbCvbay2AK2Gai7wIgCyK5weEX3nHkiLgo4qCXHijFNC/ILhlRpOQ==", + "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/@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==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -418,7 +508,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -427,7 +516,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -435,24 +523,54 @@ "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==", - "dev": true + "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==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "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/@melt-ui/svelte/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/@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==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -465,7 +583,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "engines": { "node": ">= 8" } @@ -474,7 +591,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -483,11 +599,28 @@ "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 + "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==" + }, + "node_modules/@poppinss/macroable": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@poppinss/macroable/-/macroable-1.0.2.tgz", + "integrity": "sha512-xhhEcEvhQC8mP5oOr5hbE4CmUgmw/IPV1jhpGg2xSkzoFrt9i8YVqBQt9744EFesi5F7pBheWozg63RUBM/5JA==", + "optional": true, + "engines": { + "node": ">=18.16.0" + } }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.16.4", @@ -496,7 +629,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "android" @@ -509,7 +641,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "android" @@ -522,7 +653,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -535,7 +665,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -548,7 +677,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -561,7 +689,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -574,7 +701,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -587,7 +713,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -600,7 +725,6 @@ "cpu": [ "ppc64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -613,7 +737,6 @@ "cpu": [ "riscv64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -626,7 +749,6 @@ "cpu": [ "s390x" ], - "dev": true, "optional": true, "os": [ "linux" @@ -639,7 +761,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -652,7 +773,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -665,7 +785,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -678,7 +797,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "win32" @@ -691,12 +809,44 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "win32" ] }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "optional": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "optional": true + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "optional": true + }, + "node_modules/@sinclair/typebox": { + "version": "0.32.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.32.24.tgz", + "integrity": "sha512-2NhY+gf/fHvqYlWUAjuCI4+/esEVDicSIPLMFC98bZrqQ+YYpBc9YPOsAEosQNhu6AhVomlwn+yDe0UPzUYFTw==", + "optional": true + }, + "node_modules/@sodaru/yup-to-json-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@sodaru/yup-to-json-schema/-/yup-to-json-schema-2.0.1.tgz", + "integrity": "sha512-lWb0Wiz8KZ9ip/dY1eUqt7fhTPmL24p6Hmv5Fd9pzlzAdw/YNcWZr+tiCT4oZ4Zyxzi9+1X4zv82o7jYvcFxYA==", + "optional": true + }, "node_modules/@sveltejs/adapter-auto": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.2.0.tgz", @@ -713,7 +863,6 @@ "version": "2.5.7", "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.5.7.tgz", "integrity": "sha512-6uedTzrb7nQrw6HALxnPrPaXdIN2jJJTzTIl96Z3P5NiG+OAfpdPbrWrvkJ3GN4CfWqrmU4dJqwMMRMTD/C7ow==", - "dev": true, "hasInstallScript": true, "dependencies": { "@types/cookie": "^0.6.0", @@ -745,7 +894,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.1.0.tgz", "integrity": "sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==", - "dev": true, "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^2.0.0", "debug": "^4.3.4", @@ -767,7 +915,6 @@ "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" }, @@ -780,17 +927,30 @@ "vite": "^5.0.0" } }, + "node_modules/@swc/helpers": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.10.tgz", + "integrity": "sha512-CU+RF9FySljn7HVSkkjiB84hWkvTaI3rtLvF433+jRSBL2hMu3zX5bGhHS8C80SM++h4xy8hBSnUHFQHmRXSBw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, "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 + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" }, "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==", - "dev": true + "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==", + "optional": true, + "peer": true }, "node_modules/@types/pug": { "version": "2.0.10", @@ -798,11 +958,44 @@ "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==", "dev": true }, + "node_modules/@types/validator": { + "version": "13.11.9", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.9.tgz", + "integrity": "sha512-FCTsikRozryfayPuiI46QzH3fnrOoctTjvOYZkho9BTFLCOZ2rgZJHMOVgCOfttjPJcgOx52EpkY0CMfy87MIw==", + "optional": true + }, + "node_modules/@vinejs/compiler": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@vinejs/compiler/-/compiler-2.5.0.tgz", + "integrity": "sha512-hg4ekaB5Y2zh+IWzBiC/WCDWrIfpVnKu/ubUvelKlidc/VbulsexoFRw5kJGHZenPVI5YzNnDeTdYSALkTV7jQ==", + "optional": true, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@vinejs/vine": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@vinejs/vine/-/vine-1.8.0.tgz", + "integrity": "sha512-Qq3XxbA26jzqS9ICifkqzT399lMQZ2fWtqeV3luI2as+UIK7qDifJFU2Q4W3q3IB5VXoWxgwAZSZEO0em9I/qQ==", + "optional": true, + "dependencies": { + "@poppinss/macroable": "^1.0.1", + "@types/validator": "^13.11.9", + "@vinejs/compiler": "^2.4.1", + "camelcase": "^8.0.0", + "dayjs": "^1.11.10", + "dlv": "^1.1.3", + "normalize-url": "^8.0.1", + "validator": "^13.11.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -810,11 +1003,37 @@ "node": ">=0.4.0" } }, + "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/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/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==", - "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -823,20 +1042,66 @@ "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/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==", - "dev": true, "dependencies": { "dequal": "^2.0.3" } }, + "node_modules/arktype": { + "version": "1.0.29-alpha", + "resolved": "https://registry.npmjs.org/arktype/-/arktype-1.0.29-alpha.tgz", + "integrity": "sha512-glMLgVhIQRSkR3tymiS+POAcWVJH09sfrgic0jHnyFL8BlhHAJZX2BzdImU9zYr1y9NBqy+U93ZNrRTHXsKRDw==", + "optional": true + }, + "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==", - "dev": true, "dependencies": { "dequal": "^2.0.3" } @@ -844,14 +1109,12 @@ "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==", - "dev": true + "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==", - "dev": true, "engines": { "node": ">=8" }, @@ -859,6 +1122,39 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bits-ui": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-0.21.4.tgz", + "integrity": "sha512-IL+7s19GW561jwkeYk23dwkTfQ9606I062qqv2AtjCdhhIdoOEJNVBX0kjP5xefSaS6ojL0HGG54att0aRTcAQ==", + "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" + } + }, + "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": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -873,7 +1169,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -881,6 +1176,38 @@ "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", @@ -890,6 +1217,13 @@ "node": "*" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "optional": true, + "peer": true + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -899,11 +1233,50 @@ "node": ">=6" } }, + "node_modules/camelcase": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "optional": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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.30001612", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz", + "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==", + "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/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -923,11 +1296,18 @@ "fsevents": "~2.3.2" } }, + "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==", - "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15", "@types/estree": "^1.0.1", @@ -936,6 +1316,30 @@ "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", @@ -946,16 +1350,27 @@ "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==", - "dev": true, "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -964,11 +1379,27 @@ "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/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "optional": true + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -985,7 +1416,6 @@ "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" } @@ -994,7 +1424,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, "engines": { "node": ">=6" } @@ -1011,9 +1440,34 @@ "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==", + "integrity": "sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==" + }, + "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/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "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.748", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.748.tgz", + "integrity": "sha512-VWqjOlPZn70UZ8FTKUOkUvBLeTQ0xpty66qV0yJcAGY2/CthI4xyW9aEozRVtuwv3Kpf5xTesmJUcPwuJmgP4A==", "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", @@ -1024,7 +1478,6 @@ "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" @@ -1058,17 +1511,48 @@ "@esbuild/win32-x64": "0.20.2" } }, + "node_modules/esbuild-runner": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/esbuild-runner/-/esbuild-runner-2.2.2.tgz", + "integrity": "sha512-fRFVXcmYVmSmtYm2mL8RlUASt2TDkGh3uRcvHFOKNr/T58VrfVeKD9uT9nlgxk96u0LS0ehS/GY7Da/bXWKkhw==", + "optional": true, + "peer": true, + "dependencies": { + "source-map-support": "0.5.21", + "tslib": "2.4.0" + }, + "bin": { + "esr": "bin/esr.js" + }, + "peerDependencies": { + "esbuild": "*" + } + }, + "node_modules/esbuild-runner/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "optional": true, + "peer": true + }, + "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/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 + "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==" }, "node_modules/estree-walker": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, "dependencies": { "@types/estree": "^1.0.0" } @@ -1077,7 +1561,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -1093,7 +1576,6 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -1102,7 +1584,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1110,6 +1591,71 @@ "node": ">=8" } }, + "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/formsnap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/formsnap/-/formsnap-1.0.0.tgz", + "integrity": "sha512-NQEbkCS1tKGnn6gBojIuNutxImmq/9bUk9JQ5kW8WOY37QNFtJxYr/SbX8ONWuiVLaczSvGSWXIv3hNu19arqQ==", + "dependencies": { + "nanoid": "^5.0.5" + }, + "peerDependencies": { + "svelte": "^4.0.0", + "sveltekit-superforms": "^2.3.0" + } + }, + "node_modules/formsnap/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/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", @@ -1120,7 +1666,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -1130,6 +1675,14 @@ "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", @@ -1154,7 +1707,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -1165,14 +1717,12 @@ "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 + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==" }, "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 + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==" }, "node_modules/graceful-fs": { "version": "4.2.11", @@ -1180,6 +1730,17 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, + "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/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -1200,7 +1761,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", - "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -1226,7 +1786,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -1234,20 +1793,37 @@ "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==", - "dev": true, "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==", - "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -1259,7 +1835,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -1268,31 +1843,108 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", - "dev": true, "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": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "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/joi": { + "version": "17.13.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.0.tgz", + "integrity": "sha512-9qcrTyoBmFZRNHeVP4edKqIUEgFzq7MHvTNSDuHSqkpOPtiBkgNgcmTSqmiw1kw9tdKaiddvIDv/eCJDxmqWCA==", + "optional": true, + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/just-clone": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/just-clone/-/just-clone-6.2.0.tgz", + "integrity": "sha512-1IynUYEc/HAwxhi3WDpIpxJbZpMCvvrrmZVqvj9EhpvbH8lls7HhdhiByjL7DkAaWlLIzpC0Xc/VPvy/UxLNjA==" + }, "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/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==", - "dev": true + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==" + }, + "node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/lucide-svelte": { + "version": "0.373.0", + "resolved": "https://registry.npmjs.org/lucide-svelte/-/lucide-svelte-0.373.0.tgz", + "integrity": "sha512-p727laQi1KayKzB9ldnzrfdhrOv3mXkBr7fVWfNHG5rjSOn7FIHu6dOzuHBp5/cmYyG5WI9n/nCS+EG2ThJJ2Q==", + "peerDependencies": { + "svelte": "^3 || ^4 || ^5.0.0-next.42" + } }, "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==", - "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } @@ -1300,14 +1952,17 @@ "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==", - "dev": true + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + }, + "node_modules/memoize-weak": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/memoize-weak/-/memoize-weak-1.0.2.tgz", + "integrity": "sha512-gj39xkrjEw7nCn4nJ1M5ms6+MyMlyiGmttzsqAUsAKn6bYKwuTHh/AO3cKPF8IBrTIYTxb0wWXFs3E//Y8VoWQ==" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "engines": { "node": ">= 8" } @@ -1316,7 +1971,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -1355,6 +2009,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -1367,11 +2029,18 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mode-watcher": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mode-watcher/-/mode-watcher-0.3.0.tgz", + "integrity": "sha512-k8jjuTx94HaaRKWO6JDf8wL761hFatrTIHJKl+E+3JWcnv+GnMBH062zcLsy0lbCI3n7RZxxHaWi66auFnUO4g==", + "peerDependencies": { + "svelte": "^4.0.0" + } + }, "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" } @@ -1380,7 +2049,6 @@ "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" } @@ -1388,14 +2056,22 @@ "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 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "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==", - "dev": true, "funding": [ { "type": "github", @@ -1409,15 +2085,57 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "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/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "optional": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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", @@ -1448,11 +2166,38 @@ "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.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/periscopic": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "dev": true, "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^3.0.0", @@ -1462,14 +2207,12 @@ "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -1477,11 +2220,26 @@ "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==", - "dev": true, "funding": [ { "type": "opencollective", @@ -1505,6 +2263,110 @@ "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.0.3", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.0.3.tgz", + "integrity": "sha512-90pBBI5apUVruIEdCxZic93Wm+i9fTrp7TXbgdUCH+/L+2WnfpITSpq5dFU/IPvbv7aNiMlQISpUkAm3fEcvgQ==", + "dev": true, + "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": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "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-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "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/prettier": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", @@ -1530,11 +2392,90 @@ "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/property-expr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", + "optional": true + }, "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==", - "dev": true, "funding": [ { "type": "github", @@ -1550,11 +2491,18 @@ } ] }, + "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==", - "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -1562,6 +2510,27 @@ "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", @@ -1575,7 +2544,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -1597,7 +2565,6 @@ "version": "4.16.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.16.4.tgz", "integrity": "sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==", - "dev": true, "dependencies": { "@types/estree": "1.0.5" }, @@ -1632,7 +2599,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -1655,7 +2621,6 @@ "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" }, @@ -1678,14 +2643,42 @@ "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 + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==" + }, + "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", @@ -1710,15 +2703,123 @@ "sorcery": "bin/sorcery" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "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==", - "dev": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.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/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/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-cjs/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": { + "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-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-ansi-cjs/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/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", @@ -1731,11 +2832,94 @@ "node": ">=8" } }, + "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/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/sucrase/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/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/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "optional": true, + "engines": { + "node": ">=14.0.0" + } + }, + "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.15", "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.15.tgz", "integrity": "sha512-j9KJSccHgLeRERPlhMKrCXpk2TqL2m5Z+k+OBTQhZOhIdCCd3WfqV+ylPWeipEwq17P/ekiSFWwrVQv93i3bsg==", - "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.1", "@jridgewell/sourcemap-codec": "^1.4.15", @@ -1782,7 +2966,6 @@ "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" }, @@ -1852,11 +3035,256 @@ } } }, + "node_modules/svelte-radix": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/svelte-radix/-/svelte-radix-1.1.0.tgz", + "integrity": "sha512-kyE9wZiJV937INGb+wiBkAjmGtQUUYRPkVL2Q+/gj+9Vog1Ewd2wNvNmpNMUd+c+euxoc5u5YZMuCUgky9EUPw==", + "peerDependencies": { + "svelte": "^3.54.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/sveltekit-superforms": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/sveltekit-superforms/-/sveltekit-superforms-2.12.6.tgz", + "integrity": "sha512-qVA6HjD+WlPughk+YGGWXTY5lIvNP8JUoEK4TqzLhDkC8j6y0d2aB7ofgzqpkvY7nV77aNG3erP/qxr2DzBJEg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ciscoheat" + }, + { + "type": "ko-fi", + "url": "https://ko-fi.com/ciscoheat" + }, + { + "type": "paypal", + "url": "https://www.paypal.com/donate/?hosted_button_id=NY7F5ALHHSVQS" + } + ], + "dependencies": { + "devalue": "^4.3.3", + "just-clone": "^6.2.0", + "memoize-weak": "^1.0.2", + "ts-deepmerge": "^7.0.0" + }, + "optionalDependencies": { + "@gcornut/valibot-json-schema": "^0.0.27", + "@sinclair/typebox": "^0.32.22", + "@sodaru/yup-to-json-schema": "^2.0.1", + "@vinejs/vine": "^1.8.0", + "arktype": "1.0.29-alpha", + "joi": "^17.13.0", + "superstruct": "^1.0.4", + "valibot": "^0.30.0", + "yup": "^1.4.0", + "zod": "^3.23.4", + "zod-to-json-schema": "^3.23.0" + }, + "peerDependencies": { + "@sinclair/typebox": ">=0.32.13 <1", + "@sveltejs/kit": "1.x || 2.x", + "@vinejs/vine": "^1.7.1", + "arktype": "1.0.29-alpha", + "joi": "^17.12.1", + "superstruct": "^1.0.3", + "svelte": "3.x || 4.x || >=5.0.0-next.51", + "valibot": ">=0.28.1 <1", + "yup": "^1.3.3", + "zod": "^3.23.4" + }, + "peerDependenciesMeta": { + "@sinclair/typebox": { + "optional": true + }, + "@vinejs/vine": { + "optional": true + }, + "arktype": { + "optional": true + }, + "joi": { + "optional": true + }, + "superstruct": { + "optional": true + }, + "valibot": { + "optional": true + }, + "yup": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/sveltekit-superforms/node_modules/devalue": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.3.tgz", + "integrity": "sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==" + }, + "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/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/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/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-case": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==", + "optional": true + }, "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" @@ -1866,7 +3294,6 @@ "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==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -1874,15 +3301,50 @@ "node": ">=8.0" } }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "optional": true + }, "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-deepmerge": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ts-deepmerge/-/ts-deepmerge-7.0.0.tgz", + "integrity": "sha512-WZ/iAJrKDhdINv1WG6KZIGHrZDar6VfhftG1QJFpVbOYZMYJLJOvZOo1amictRXVdBXZIgBHKswMTXzElngprA==", + "engines": { + "node": ">=14.13.1" + } + }, + "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-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "optional": true, + "engines": { + "node": ">=12.20" + }, + "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", @@ -1896,11 +3358,60 @@ "node": ">=14.17" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "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.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.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/valibot": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-0.30.0.tgz", + "integrity": "sha512-5POBdbSkM+3nvJ6ZlyQHsggisfRtyT4tVTo1EIIShs6qCdXJnyWU5TJ68vr8iTg5zpOLjXLRiBqNx+9zwZz/rA==", + "optional": true + }, + "node_modules/validator": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", + "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "optional": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/vite": { "version": "5.2.10", "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", - "dev": true, "dependencies": { "esbuild": "^0.20.1", "postcss": "^8.4.38", @@ -1955,7 +3466,6 @@ "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" }, @@ -1965,11 +3475,149 @@ } } }, + "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/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/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/wrap-ansi-cjs/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/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-cjs/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/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.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yup": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.4.0.tgz", + "integrity": "sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==", + "optional": true, + "dependencies": { + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } + }, + "node_modules/zod": { + "version": "3.23.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.4.tgz", + "integrity": "sha512-/AtWOKbBgjzEYYQRNfoGKHObgfAZag6qUJX1VbHo2PRBgS+wfWagEY2mizjfyAPcGesrJOcx/wcl0L9WnVrHFw==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.23.0.tgz", + "integrity": "sha512-az0uJ243PxsRIa2x1WmNE/pnuA05gUq/JB8Lwe1EDCCL/Fz9MgjYQ0fPlyc2Tcv6aF2ZA7WM5TWaRZVEFaAIag==", + "optional": true, + "peerDependencies": { + "zod": "^3.23.3" + } } } } diff --git a/package.json b/package.json index afdebc2..a8c0102 100644 --- a/package.json +++ b/package.json @@ -15,12 +15,29 @@ "@sveltejs/adapter-auto": "^3.0.0", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", + "autoprefixer": "^10.4.16", + "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", "typescript": "^5.0.0", "vite": "^5.0.3" }, - "type": "module" + "type": "module", + "dependencies": { + "bits-ui": "^0.21.4", + "clsx": "^2.1.1", + "formsnap": "^1.0.0", + "lucide-svelte": "^0.373.0", + "mode-watcher": "^0.3.0", + "svelte-radix": "^1.1.0", + "sveltekit-superforms": "^2.12.6", + "tailwind-merge": "^2.3.0", + "tailwind-variants": "^0.2.1", + "zod": "^3.23.4" + } } diff --git a/postcss.config.cjs b/postcss.config.cjs new file mode 100644 index 0000000..fe10e55 --- /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/src/app.pcss b/src/app.pcss new file mode 100644 index 0000000..6ff7062 --- /dev/null +++ b/src/app.pcss @@ -0,0 +1,78 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 222.2 84% 4.9%; + + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 46.9%; + + --popover: 0 0% 100%; + --popover-foreground: 222.2 84% 4.9%; + + --card: 0 0% 100%; + --card-foreground: 222.2 84% 4.9%; + + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + + --primary: 222.2 47.4% 11.2%; + --primary-foreground: 210 40% 98%; + + --secondary: 210 40% 96.1%; + --secondary-foreground: 222.2 47.4% 11.2%; + + --accent: 210 40% 96.1%; + --accent-foreground: 222.2 47.4% 11.2%; + + --destructive: 0 72.2% 50.6%; + --destructive-foreground: 210 40% 98%; + + --ring: 222.2 84% 4.9%; + + --radius: 0.5rem; + } + + .dark { + --background: 222.2 84% 4.9%; + --foreground: 210 40% 98%; + + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; + + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; + + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; + + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + + --primary: 210 40% 98%; + --primary-foreground: 222.2 47.4% 11.2%; + + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 40% 98%; + + --accent: 217.2 32.6% 17.5%; + --accent-foreground: 210 40% 98%; + + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 210 40% 98%; + + --ring: hsl(212.7,26.8%,83.9); + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} \ No newline at end of file diff --git a/src/hooks.server.js b/src/hooks.server.js index d348f5f..56e31c2 100644 --- a/src/hooks.server.js +++ b/src/hooks.server.js @@ -1,7 +1,8 @@ -import { config } from '$lib'; +import { config } from '$lib/index.js'; /** @type {import('@sveltejs/kit').HandleFetch} */ export async function handleFetch({ event, request, fetch }) { + console.log(event.request.headers.get("cookie")) if (request.url.startsWith(config.api_url)) { // @ts-ignore request.headers.set('cookie', event.request.headers.get('cookie')); diff --git a/src/lib/components/molecules/probadge.svelte b/src/lib/components/molecules/probadge.svelte new file mode 100644 index 0000000..0184d9a --- /dev/null +++ b/src/lib/components/molecules/probadge.svelte @@ -0,0 +1,4 @@ + +PRO \ No newline at end of file diff --git a/src/lib/components/molecules/tooltipbutton.svelte b/src/lib/components/molecules/tooltipbutton.svelte new file mode 100644 index 0000000..4fcf4e0 --- /dev/null +++ b/src/lib/components/molecules/tooltipbutton.svelte @@ -0,0 +1,17 @@ + + + + + + + +

{tip}

+
+
diff --git a/src/lib/components/ui/avatar/avatar-fallback.svelte b/src/lib/components/ui/avatar/avatar-fallback.svelte new file mode 100644 index 0000000..f9d07ae --- /dev/null +++ b/src/lib/components/ui/avatar/avatar-fallback.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/lib/components/ui/avatar/avatar-image.svelte b/src/lib/components/ui/avatar/avatar-image.svelte new file mode 100644 index 0000000..9fb42ea --- /dev/null +++ b/src/lib/components/ui/avatar/avatar-image.svelte @@ -0,0 +1,15 @@ + + + diff --git a/src/lib/components/ui/avatar/avatar.svelte b/src/lib/components/ui/avatar/avatar.svelte new file mode 100644 index 0000000..22f55e8 --- /dev/null +++ b/src/lib/components/ui/avatar/avatar.svelte @@ -0,0 +1,15 @@ + + + + + diff --git a/src/lib/components/ui/avatar/index.js b/src/lib/components/ui/avatar/index.js new file mode 100644 index 0000000..c135ce7 --- /dev/null +++ b/src/lib/components/ui/avatar/index.js @@ -0,0 +1,12 @@ +import Root from "./avatar.svelte"; +import Image from "./avatar-image.svelte"; +import Fallback from "./avatar-fallback.svelte"; +export { + Root, + Image, + Fallback, + // + Root as Avatar, + Image as AvatarImage, + Fallback as AvatarFallback, +}; diff --git a/src/lib/components/ui/badge/badge.svelte b/src/lib/components/ui/badge/badge.svelte new file mode 100644 index 0000000..eb46669 --- /dev/null +++ b/src/lib/components/ui/badge/badge.svelte @@ -0,0 +1,17 @@ + + + + + diff --git a/src/lib/components/ui/badge/index.js b/src/lib/components/ui/badge/index.js new file mode 100644 index 0000000..946b3c0 --- /dev/null +++ b/src/lib/components/ui/badge/index.js @@ -0,0 +1,18 @@ +import { tv } from "tailwind-variants"; +export { default as Badge } from "./badge.svelte"; +export const badgeVariants = tv({ + base: "inline-flex select-none items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + variants: { + variant: { + default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, +}); diff --git a/src/lib/components/ui/button/button.svelte b/src/lib/components/ui/button/button.svelte new file mode 100644 index 0000000..7ecd500 --- /dev/null +++ b/src/lib/components/ui/button/button.svelte @@ -0,0 +1,21 @@ + + + + + diff --git a/src/lib/components/ui/button/index.js b/src/lib/components/ui/button/index.js new file mode 100644 index 0000000..b982ad2 --- /dev/null +++ b/src/lib/components/ui/button/index.js @@ -0,0 +1,32 @@ +import { tv } from "tailwind-variants"; +import Root from "./button.svelte"; +const buttonVariants = tv({ + base: "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", + variants: { + variant: { + default: "bg-primary text-primary-foreground hover:bg-primary/90", + destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90", + outline: + "border border-input bg-background hover:bg-accent hover:text-accent-foreground", + secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-10 px-4 py-2", + sm: "h-9 rounded-md px-3", + lg: "h-11 rounded-md px-8", + icon: "h-10 w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, +}); +export { + Root, + // + Root as Button, + buttonVariants, +}; diff --git a/src/lib/components/ui/card/card-content.svelte b/src/lib/components/ui/card/card-content.svelte new file mode 100644 index 0000000..a0a603e --- /dev/null +++ b/src/lib/components/ui/card/card-content.svelte @@ -0,0 +1,9 @@ + + +
+ +
diff --git a/src/lib/components/ui/card/card-description.svelte b/src/lib/components/ui/card/card-description.svelte new file mode 100644 index 0000000..a1aa254 --- /dev/null +++ b/src/lib/components/ui/card/card-description.svelte @@ -0,0 +1,9 @@ + + +

+ +

diff --git a/src/lib/components/ui/card/card-footer.svelte b/src/lib/components/ui/card/card-footer.svelte new file mode 100644 index 0000000..1645ea9 --- /dev/null +++ b/src/lib/components/ui/card/card-footer.svelte @@ -0,0 +1,9 @@ + + +
+ +
diff --git a/src/lib/components/ui/card/card-header.svelte b/src/lib/components/ui/card/card-header.svelte new file mode 100644 index 0000000..0b86e8b --- /dev/null +++ b/src/lib/components/ui/card/card-header.svelte @@ -0,0 +1,9 @@ + + +
+ +
diff --git a/src/lib/components/ui/card/card-title.svelte b/src/lib/components/ui/card/card-title.svelte new file mode 100644 index 0000000..ad1a8a3 --- /dev/null +++ b/src/lib/components/ui/card/card-title.svelte @@ -0,0 +1,14 @@ + + + + + diff --git a/src/lib/components/ui/card/card.svelte b/src/lib/components/ui/card/card.svelte new file mode 100644 index 0000000..a1f0832 --- /dev/null +++ b/src/lib/components/ui/card/card.svelte @@ -0,0 +1,12 @@ + + +
+ +
diff --git a/src/lib/components/ui/card/index.js b/src/lib/components/ui/card/index.js new file mode 100644 index 0000000..6ed11eb --- /dev/null +++ b/src/lib/components/ui/card/index.js @@ -0,0 +1,21 @@ +import Root from "./card.svelte"; +import Content from "./card-content.svelte"; +import Description from "./card-description.svelte"; +import Footer from "./card-footer.svelte"; +import Header from "./card-header.svelte"; +import Title from "./card-title.svelte"; +export { + Root, + Content, + Description, + Footer, + Header, + Title, + // + Root as Card, + Content as CardContent, + Description as CardDescription, + Footer as CardFooter, + Header as CardHeader, + Title as CardTitle, +}; diff --git a/src/lib/components/ui/dialog/dialog-content.svelte b/src/lib/components/ui/dialog/dialog-content.svelte new file mode 100644 index 0000000..4111bde --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-content.svelte @@ -0,0 +1,33 @@ + + + + + + + + + Close + + + diff --git a/src/lib/components/ui/dialog/dialog-description.svelte b/src/lib/components/ui/dialog/dialog-description.svelte new file mode 100644 index 0000000..495a0f3 --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-description.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/lib/components/ui/dialog/dialog-footer.svelte b/src/lib/components/ui/dialog/dialog-footer.svelte new file mode 100644 index 0000000..4a4693e --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-footer.svelte @@ -0,0 +1,12 @@ + + +
+ +
diff --git a/src/lib/components/ui/dialog/dialog-header.svelte b/src/lib/components/ui/dialog/dialog-header.svelte new file mode 100644 index 0000000..7da48fd --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-header.svelte @@ -0,0 +1,9 @@ + + +
+ +
diff --git a/src/lib/components/ui/dialog/dialog-overlay.svelte b/src/lib/components/ui/dialog/dialog-overlay.svelte new file mode 100644 index 0000000..159535f --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-overlay.svelte @@ -0,0 +1,18 @@ + + + diff --git a/src/lib/components/ui/dialog/dialog-portal.svelte b/src/lib/components/ui/dialog/dialog-portal.svelte new file mode 100644 index 0000000..edefb38 --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-portal.svelte @@ -0,0 +1,7 @@ + + + + + diff --git a/src/lib/components/ui/dialog/dialog-title.svelte b/src/lib/components/ui/dialog/dialog-title.svelte new file mode 100644 index 0000000..a295b67 --- /dev/null +++ b/src/lib/components/ui/dialog/dialog-title.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/lib/components/ui/dialog/index.js b/src/lib/components/ui/dialog/index.js new file mode 100644 index 0000000..26c7fd5 --- /dev/null +++ b/src/lib/components/ui/dialog/index.js @@ -0,0 +1,34 @@ +import { Dialog as DialogPrimitive } from "bits-ui"; +import Title from "./dialog-title.svelte"; +import Portal from "./dialog-portal.svelte"; +import Footer from "./dialog-footer.svelte"; +import Header from "./dialog-header.svelte"; +import Overlay from "./dialog-overlay.svelte"; +import Content from "./dialog-content.svelte"; +import Description from "./dialog-description.svelte"; +const Root = DialogPrimitive.Root; +const Trigger = DialogPrimitive.Trigger; +const Close = DialogPrimitive.Close; +export { + Root, + Title, + Portal, + Footer, + Header, + Trigger, + Overlay, + Content, + Description, + Close, + // + Root as Dialog, + Title as DialogTitle, + Portal as DialogPortal, + Footer as DialogFooter, + Header as DialogHeader, + Trigger as DialogTrigger, + Overlay as DialogOverlay, + Content as DialogContent, + Description as DialogDescription, + Close as DialogClose, +}; diff --git a/src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte b/src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte new file mode 100644 index 0000000..d81f894 --- /dev/null +++ b/src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte @@ -0,0 +1,31 @@ + + + + + + + + + + diff --git a/src/lib/components/ui/dropdown-menu/dropdown-menu-content.svelte b/src/lib/components/ui/dropdown-menu/dropdown-menu-content.svelte new file mode 100644 index 0000000..290a44c --- /dev/null +++ b/src/lib/components/ui/dropdown-menu/dropdown-menu-content.svelte @@ -0,0 +1,23 @@ + + + + + diff --git a/src/lib/components/ui/dropdown-menu/dropdown-menu-item.svelte b/src/lib/components/ui/dropdown-menu/dropdown-menu-item.svelte new file mode 100644 index 0000000..dee447d --- /dev/null +++ b/src/lib/components/ui/dropdown-menu/dropdown-menu-item.svelte @@ -0,0 +1,25 @@ + + + + + diff --git a/src/lib/components/ui/dropdown-menu/dropdown-menu-label.svelte b/src/lib/components/ui/dropdown-menu/dropdown-menu-label.svelte new file mode 100644 index 0000000..6706797 --- /dev/null +++ b/src/lib/components/ui/dropdown-menu/dropdown-menu-label.svelte @@ -0,0 +1,14 @@ + + + + + diff --git a/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte b/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte new file mode 100644 index 0000000..d18a931 --- /dev/null +++ b/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte @@ -0,0 +1,8 @@ + + + + + diff --git a/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte b/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte new file mode 100644 index 0000000..549de33 --- /dev/null +++ b/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte @@ -0,0 +1,31 @@ + + + + + + + + + + diff --git a/src/lib/components/ui/dropdown-menu/dropdown-menu-separator.svelte b/src/lib/components/ui/dropdown-menu/dropdown-menu-separator.svelte new file mode 100644 index 0000000..810b70c --- /dev/null +++ b/src/lib/components/ui/dropdown-menu/dropdown-menu-separator.svelte @@ -0,0 +1,11 @@ + + + diff --git a/src/lib/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte b/src/lib/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte new file mode 100644 index 0000000..2cf0b02 --- /dev/null +++ b/src/lib/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte @@ -0,0 +1,9 @@ + + + + + diff --git a/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte b/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte new file mode 100644 index 0000000..91b7392 --- /dev/null +++ b/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte @@ -0,0 +1,26 @@ + + + + + diff --git a/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte b/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte new file mode 100644 index 0000000..62b085c --- /dev/null +++ b/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte @@ -0,0 +1,26 @@ + + + + + + diff --git a/src/lib/components/ui/dropdown-menu/index.js b/src/lib/components/ui/dropdown-menu/index.js new file mode 100644 index 0000000..878429f --- /dev/null +++ b/src/lib/components/ui/dropdown-menu/index.js @@ -0,0 +1,46 @@ +import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; +import Item from "./dropdown-menu-item.svelte"; +import Label from "./dropdown-menu-label.svelte"; +import Content from "./dropdown-menu-content.svelte"; +import Shortcut from "./dropdown-menu-shortcut.svelte"; +import RadioItem from "./dropdown-menu-radio-item.svelte"; +import Separator from "./dropdown-menu-separator.svelte"; +import RadioGroup from "./dropdown-menu-radio-group.svelte"; +import SubContent from "./dropdown-menu-sub-content.svelte"; +import SubTrigger from "./dropdown-menu-sub-trigger.svelte"; +import CheckboxItem from "./dropdown-menu-checkbox-item.svelte"; +const Sub = DropdownMenuPrimitive.Sub; +const Root = DropdownMenuPrimitive.Root; +const Trigger = DropdownMenuPrimitive.Trigger; +const Group = DropdownMenuPrimitive.Group; +export { + Sub, + Root, + Item, + Label, + Group, + Trigger, + Content, + Shortcut, + Separator, + RadioItem, + SubContent, + SubTrigger, + RadioGroup, + CheckboxItem, + // + Root as DropdownMenu, + Sub as DropdownMenuSub, + Item as DropdownMenuItem, + Label as DropdownMenuLabel, + Group as DropdownMenuGroup, + Content as DropdownMenuContent, + Trigger as DropdownMenuTrigger, + Shortcut as DropdownMenuShortcut, + RadioItem as DropdownMenuRadioItem, + Separator as DropdownMenuSeparator, + RadioGroup as DropdownMenuRadioGroup, + SubContent as DropdownMenuSubContent, + SubTrigger as DropdownMenuSubTrigger, + CheckboxItem as DropdownMenuCheckboxItem, +}; diff --git a/src/lib/components/ui/form/form-button.svelte b/src/lib/components/ui/form/form-button.svelte new file mode 100644 index 0000000..a0e4f67 --- /dev/null +++ b/src/lib/components/ui/form/form-button.svelte @@ -0,0 +1,7 @@ + + + + + diff --git a/src/lib/components/ui/form/form-description.svelte b/src/lib/components/ui/form/form-description.svelte new file mode 100644 index 0000000..39876c8 --- /dev/null +++ b/src/lib/components/ui/form/form-description.svelte @@ -0,0 +1,14 @@ + + + + + diff --git a/src/lib/components/ui/form/form-element-field.svelte b/src/lib/components/ui/form/form-element-field.svelte new file mode 100644 index 0000000..fd650ed --- /dev/null +++ b/src/lib/components/ui/form/form-element-field.svelte @@ -0,0 +1,16 @@ + + + + + +
+ +
+
diff --git a/src/lib/components/ui/form/form-field-errors.svelte b/src/lib/components/ui/form/form-field-errors.svelte new file mode 100644 index 0000000..56a848e --- /dev/null +++ b/src/lib/components/ui/form/form-field-errors.svelte @@ -0,0 +1,21 @@ + + + + + {#each errors as error} +
{error}
+ {/each} +
+
diff --git a/src/lib/components/ui/form/form-field.svelte b/src/lib/components/ui/form/form-field.svelte new file mode 100644 index 0000000..bbe7e81 --- /dev/null +++ b/src/lib/components/ui/form/form-field.svelte @@ -0,0 +1,16 @@ + + + + + +
+ +
+
diff --git a/src/lib/components/ui/form/form-fieldset.svelte b/src/lib/components/ui/form/form-fieldset.svelte new file mode 100644 index 0000000..ae842c4 --- /dev/null +++ b/src/lib/components/ui/form/form-fieldset.svelte @@ -0,0 +1,22 @@ + + + + + + + diff --git a/src/lib/components/ui/form/form-label.svelte b/src/lib/components/ui/form/form-label.svelte new file mode 100644 index 0000000..1fbe952 --- /dev/null +++ b/src/lib/components/ui/form/form-label.svelte @@ -0,0 +1,12 @@ + + + diff --git a/src/lib/components/ui/form/form-legend.svelte b/src/lib/components/ui/form/form-legend.svelte new file mode 100644 index 0000000..1e8347c --- /dev/null +++ b/src/lib/components/ui/form/form-legend.svelte @@ -0,0 +1,14 @@ + + + + + diff --git a/src/lib/components/ui/form/index.js b/src/lib/components/ui/form/index.js new file mode 100644 index 0000000..5ade754 --- /dev/null +++ b/src/lib/components/ui/form/index.js @@ -0,0 +1,31 @@ +import * as FormPrimitive from "formsnap"; +import Description from "./form-description.svelte"; +import Label from "./form-label.svelte"; +import FieldErrors from "./form-field-errors.svelte"; +import Field from "./form-field.svelte"; +import Fieldset from "./form-fieldset.svelte"; +import Legend from "./form-legend.svelte"; +import ElementField from "./form-element-field.svelte"; +import Button from "./form-button.svelte"; +const Control = FormPrimitive.Control; +export { + Field, + Control, + Label, + Button, + FieldErrors, + Description, + Fieldset, + Legend, + ElementField, + // + Field as FormField, + Control as FormControl, + Description as FormDescription, + Label as FormLabel, + FieldErrors as FormFieldErrors, + Fieldset as FormFieldset, + Legend as FormLegend, + ElementField as FormElementField, + Button as FormButton, +}; diff --git a/src/lib/components/ui/input/index.js b/src/lib/components/ui/input/index.js new file mode 100644 index 0000000..dc3324a --- /dev/null +++ b/src/lib/components/ui/input/index.js @@ -0,0 +1,6 @@ +import Root from "./input.svelte"; +export { + Root, + // + Root as Input, +}; diff --git a/src/lib/components/ui/input/input.svelte b/src/lib/components/ui/input/input.svelte new file mode 100644 index 0000000..3e41f1a --- /dev/null +++ b/src/lib/components/ui/input/input.svelte @@ -0,0 +1,32 @@ + + + diff --git a/src/lib/components/ui/label/index.js b/src/lib/components/ui/label/index.js new file mode 100644 index 0000000..6b19048 --- /dev/null +++ b/src/lib/components/ui/label/index.js @@ -0,0 +1,6 @@ +import Root from "./label.svelte"; +export { + Root, + // + Root as Label, +}; diff --git a/src/lib/components/ui/label/label.svelte b/src/lib/components/ui/label/label.svelte new file mode 100644 index 0000000..09613ee --- /dev/null +++ b/src/lib/components/ui/label/label.svelte @@ -0,0 +1,17 @@ + + + + + diff --git a/src/lib/components/ui/select/index.js b/src/lib/components/ui/select/index.js new file mode 100644 index 0000000..201b52b --- /dev/null +++ b/src/lib/components/ui/select/index.js @@ -0,0 +1,31 @@ +import { Select as SelectPrimitive } from "bits-ui"; +import Label from "./select-label.svelte"; +import Item from "./select-item.svelte"; +import Content from "./select-content.svelte"; +import Trigger from "./select-trigger.svelte"; +import Separator from "./select-separator.svelte"; +const Root = SelectPrimitive.Root; +const Group = SelectPrimitive.Group; +const Input = SelectPrimitive.Input; +const Value = SelectPrimitive.Value; +export { + Root, + Group, + Input, + Label, + Item, + Value, + Content, + Trigger, + Separator, + // + Root as Select, + Group as SelectGroup, + Input as SelectInput, + Label as SelectLabel, + Item as SelectItem, + Value as SelectValue, + Content as SelectContent, + Trigger as SelectTrigger, + Separator as SelectSeparator, +}; diff --git a/src/lib/components/ui/select/select-content.svelte b/src/lib/components/ui/select/select-content.svelte new file mode 100644 index 0000000..43f9499 --- /dev/null +++ b/src/lib/components/ui/select/select-content.svelte @@ -0,0 +1,34 @@ + + + +
+ +
+
diff --git a/src/lib/components/ui/select/select-item.svelte b/src/lib/components/ui/select/select-item.svelte new file mode 100644 index 0000000..f0621d5 --- /dev/null +++ b/src/lib/components/ui/select/select-item.svelte @@ -0,0 +1,36 @@ + + + + + + + + + + {label || value} + + diff --git a/src/lib/components/ui/select/select-label.svelte b/src/lib/components/ui/select/select-label.svelte new file mode 100644 index 0000000..bcdc5c8 --- /dev/null +++ b/src/lib/components/ui/select/select-label.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/lib/components/ui/select/select-separator.svelte b/src/lib/components/ui/select/select-separator.svelte new file mode 100644 index 0000000..198f9e1 --- /dev/null +++ b/src/lib/components/ui/select/select-separator.svelte @@ -0,0 +1,8 @@ + + + diff --git a/src/lib/components/ui/select/select-trigger.svelte b/src/lib/components/ui/select/select-trigger.svelte new file mode 100644 index 0000000..79f5d31 --- /dev/null +++ b/src/lib/components/ui/select/select-trigger.svelte @@ -0,0 +1,23 @@ + + +span]:line-clamp-1", + className + )} + {...$$restProps} + let:builder + on:click + on:keydown +> + +
+ +
+
diff --git a/src/lib/components/ui/sheet/index.js b/src/lib/components/ui/sheet/index.js new file mode 100644 index 0000000..c892767 --- /dev/null +++ b/src/lib/components/ui/sheet/index.js @@ -0,0 +1,99 @@ +import { Dialog as SheetPrimitive } from "bits-ui"; +import { tv } from "tailwind-variants"; +import Portal from "./sheet-portal.svelte"; +import Overlay from "./sheet-overlay.svelte"; +import Content from "./sheet-content.svelte"; +import Header from "./sheet-header.svelte"; +import Footer from "./sheet-footer.svelte"; +import Title from "./sheet-title.svelte"; +import Description from "./sheet-description.svelte"; +const Root = SheetPrimitive.Root; +const Close = SheetPrimitive.Close; +const Trigger = SheetPrimitive.Trigger; +export { + Root, + Close, + Trigger, + Portal, + Overlay, + Content, + Header, + Footer, + Title, + Description, + // + Root as Sheet, + Close as SheetClose, + Trigger as SheetTrigger, + Portal as SheetPortal, + Overlay as SheetOverlay, + Content as SheetContent, + Header as SheetHeader, + Footer as SheetFooter, + Title as SheetTitle, + Description as SheetDescription, +}; +export const sheetVariants = tv({ + base: "fixed z-50 gap-4 bg-background p-6 shadow-lg", + variants: { + side: { + top: "inset-x-0 top-0 border-b", + bottom: "inset-x-0 bottom-0 border-t", + left: "inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm", + right: "inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm", + }, + }, + defaultVariants: { + side: "right", + }, +}); +export const sheetTransitions = { + top: { + in: { + y: "-100%", + duration: 500, + opacity: 1, + }, + out: { + y: "-100%", + duration: 300, + opacity: 1, + }, + }, + bottom: { + in: { + y: "100%", + duration: 500, + opacity: 1, + }, + out: { + y: "100%", + duration: 300, + opacity: 1, + }, + }, + left: { + in: { + x: "-100%", + duration: 500, + opacity: 1, + }, + out: { + x: "-100%", + duration: 300, + opacity: 1, + }, + }, + right: { + in: { + x: "100%", + duration: 500, + opacity: 1, + }, + out: { + x: "100%", + duration: 300, + opacity: 1, + }, + }, +}; diff --git a/src/lib/components/ui/sheet/sheet-content.svelte b/src/lib/components/ui/sheet/sheet-content.svelte new file mode 100644 index 0000000..550d5cf --- /dev/null +++ b/src/lib/components/ui/sheet/sheet-content.svelte @@ -0,0 +1,34 @@ + + + + + + + + + Close + + + diff --git a/src/lib/components/ui/sheet/sheet-description.svelte b/src/lib/components/ui/sheet/sheet-description.svelte new file mode 100644 index 0000000..2901687 --- /dev/null +++ b/src/lib/components/ui/sheet/sheet-description.svelte @@ -0,0 +1,10 @@ + + + + + diff --git a/src/lib/components/ui/sheet/sheet-footer.svelte b/src/lib/components/ui/sheet/sheet-footer.svelte new file mode 100644 index 0000000..4a4693e --- /dev/null +++ b/src/lib/components/ui/sheet/sheet-footer.svelte @@ -0,0 +1,12 @@ + + +
+ +
diff --git a/src/lib/components/ui/sheet/sheet-header.svelte b/src/lib/components/ui/sheet/sheet-header.svelte new file mode 100644 index 0000000..2c7ea6c --- /dev/null +++ b/src/lib/components/ui/sheet/sheet-header.svelte @@ -0,0 +1,9 @@ + + +
+ +
diff --git a/src/lib/components/ui/sheet/sheet-overlay.svelte b/src/lib/components/ui/sheet/sheet-overlay.svelte new file mode 100644 index 0000000..9042233 --- /dev/null +++ b/src/lib/components/ui/sheet/sheet-overlay.svelte @@ -0,0 +1,18 @@ + + + diff --git a/src/lib/components/ui/sheet/sheet-portal.svelte b/src/lib/components/ui/sheet/sheet-portal.svelte new file mode 100644 index 0000000..91280ad --- /dev/null +++ b/src/lib/components/ui/sheet/sheet-portal.svelte @@ -0,0 +1,10 @@ + + + + + diff --git a/src/lib/components/ui/sheet/sheet-title.svelte b/src/lib/components/ui/sheet/sheet-title.svelte new file mode 100644 index 0000000..bd8b41e --- /dev/null +++ b/src/lib/components/ui/sheet/sheet-title.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/lib/components/ui/table/index.js b/src/lib/components/ui/table/index.js new file mode 100644 index 0000000..3bb36d2 --- /dev/null +++ b/src/lib/components/ui/table/index.js @@ -0,0 +1,27 @@ +import Root from "./table.svelte"; +import Body from "./table-body.svelte"; +import Caption from "./table-caption.svelte"; +import Cell from "./table-cell.svelte"; +import Footer from "./table-footer.svelte"; +import Head from "./table-head.svelte"; +import Header from "./table-header.svelte"; +import Row from "./table-row.svelte"; +export { + Root, + Body, + Caption, + Cell, + Footer, + Head, + Header, + Row, + // + Root as Table, + Body as TableBody, + Caption as TableCaption, + Cell as TableCell, + Footer as TableFooter, + Head as TableHead, + Header as TableHeader, + Row as TableRow, +}; diff --git a/src/lib/components/ui/table/table-body.svelte b/src/lib/components/ui/table/table-body.svelte new file mode 100644 index 0000000..9f7ef5a --- /dev/null +++ b/src/lib/components/ui/table/table-body.svelte @@ -0,0 +1,9 @@ + + + + + diff --git a/src/lib/components/ui/table/table-caption.svelte b/src/lib/components/ui/table/table-caption.svelte new file mode 100644 index 0000000..b10e21a --- /dev/null +++ b/src/lib/components/ui/table/table-caption.svelte @@ -0,0 +1,9 @@ + + + + + diff --git a/src/lib/components/ui/table/table-cell.svelte b/src/lib/components/ui/table/table-cell.svelte new file mode 100644 index 0000000..b559b5c --- /dev/null +++ b/src/lib/components/ui/table/table-cell.svelte @@ -0,0 +1,14 @@ + + + + + diff --git a/src/lib/components/ui/table/table-footer.svelte b/src/lib/components/ui/table/table-footer.svelte new file mode 100644 index 0000000..5f8c4df --- /dev/null +++ b/src/lib/components/ui/table/table-footer.svelte @@ -0,0 +1,9 @@ + + + + + diff --git a/src/lib/components/ui/table/table-head.svelte b/src/lib/components/ui/table/table-head.svelte new file mode 100644 index 0000000..315b683 --- /dev/null +++ b/src/lib/components/ui/table/table-head.svelte @@ -0,0 +1,15 @@ + + + + + diff --git a/src/lib/components/ui/table/table-header.svelte b/src/lib/components/ui/table/table-header.svelte new file mode 100644 index 0000000..e6d8841 --- /dev/null +++ b/src/lib/components/ui/table/table-header.svelte @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/lib/components/ui/table/table-row.svelte b/src/lib/components/ui/table/table-row.svelte new file mode 100644 index 0000000..db4ba92 --- /dev/null +++ b/src/lib/components/ui/table/table-row.svelte @@ -0,0 +1,17 @@ + + + + + diff --git a/src/lib/components/ui/table/table.svelte b/src/lib/components/ui/table/table.svelte new file mode 100644 index 0000000..09d5a92 --- /dev/null +++ b/src/lib/components/ui/table/table.svelte @@ -0,0 +1,11 @@ + + +
+ + +
+
diff --git a/src/lib/components/ui/tooltip/index.js b/src/lib/components/ui/tooltip/index.js new file mode 100644 index 0000000..d06b4df --- /dev/null +++ b/src/lib/components/ui/tooltip/index.js @@ -0,0 +1,13 @@ +import { Tooltip as TooltipPrimitive } from "bits-ui"; +import Content from "./tooltip-content.svelte"; +const Root = TooltipPrimitive.Root; +const Trigger = TooltipPrimitive.Trigger; +export { + Root, + Trigger, + Content, + // + Root as Tooltip, + Content as TooltipContent, + Trigger as TooltipTrigger, +}; diff --git a/src/lib/components/ui/tooltip/tooltip-content.svelte b/src/lib/components/ui/tooltip/tooltip-content.svelte new file mode 100644 index 0000000..84c2695 --- /dev/null +++ b/src/lib/components/ui/tooltip/tooltip-content.svelte @@ -0,0 +1,25 @@ + + + + + diff --git a/src/lib/utils.js b/src/lib/utils.js new file mode 100644 index 0000000..29aa840 --- /dev/null +++ b/src/lib/utils.js @@ -0,0 +1,48 @@ +import { clsx } from "clsx"; +import { twMerge } from "tailwind-merge"; +import { cubicOut } from "svelte/easing"; + +export function cn(...inputs) { + return twMerge(clsx(inputs)); +} + +export const flyAndScale = ( + node, + params = { y: -8, x: 0, start: 0.95, duration: 150 } +) => { + const style = getComputedStyle(node); + const transform = style.transform === "none" ? "" : style.transform; + + const scaleConversion = (valueA, scaleA, scaleB) => { + 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) => { + 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 + }; +}; \ No newline at end of file diff --git a/src/routes/+page.server.js b/src/routes/+layout.server.js similarity index 51% rename from src/routes/+page.server.js rename to src/routes/+layout.server.js index 084d005..55d373b 100644 --- a/src/routes/+page.server.js +++ b/src/routes/+layout.server.js @@ -1,10 +1,8 @@ import { config } from "$lib" -/** @type {import("./$types").PageServerLoad} */ +/** @type {import("./$types").LayoutServerLoad} */ export const load = async ({fetch}) => { - const res = await fetch(config.api_url+"/me", { - credentials: 'include' - }); + const res = await fetch(config.api_url+"/me") const data = await res.json(); diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..5444a54 --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,124 @@ + + + + +
+
+ + + + + + + + + + +
+ +
+
+ + +
+
+ + + + + + My Account + + Settings + Support + + Logout + + +
+
+
+ +
+
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 4fce2a9..baa712c 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,10 +1,220 @@ - -

{JSON.stringify(data.me)}

- +
+ + + Total Articles + + + +
48
+

7 remaining this month

+
+
+ + + Subscriptions + + + +
+2350
+

+180.1% from last month

+
+
+ + + Emails collected + + + +
+12,234
+

+19% from last month

+
+
+ + + Reads + + + +
+573
+

+201 since last hour

+
+
+
+
+ + +
+ Articles + Recent articles written from your youtube videos. +
+ +
+ + + + + Customer + + + + Amount + + + + + +
Liam Johnson
+ +
+ + + + $250.00 +
+ + +
Olivia Smith
+ +
+ + + + $150.00 +
+ + +
Noah Williams
+ +
+ + + + $350.00 +
+ + +
Emma Brown
+ +
+ + + + $450.00 +
+ + +
Liam Johnson
+ +
+ + + + $550.00 +
+
+
+
+
+ + + Recent Signups + + +
+ +
+

Olivia Martin

+

olivia.martin@email.com

+
+
56 seconds ago
+
+
+ +
+

Jackson Lee

+

jackson.lee@email.com

+
+
2 minutes ago
+
+
+ +
+

Isabella Nguyen

+

isabella.nguyen@email.com

+
+
5 minutes ago
+
+
+ +
+

William Kim

+

will@email.com

+
+
9 minutes ago
+
+
+ +
+

Sofia Davis

+

sofia.davis@email.com

+
+
15 minutes ago
+
+
+
+
diff --git a/src/routes/articles/schema.js b/src/routes/articles/schema.js new file mode 100644 index 0000000..465bfa7 --- /dev/null +++ b/src/routes/articles/schema.js @@ -0,0 +1,9 @@ +import { z } from "zod"; + +export const formSchema = z.object({ + youtube_url: z.string().url(), + length: z.enum(["short", "medium", "long"]).optional(), + format: z.enum(["summary", "listicle", "product review", "news report", "tutorial"]).optional(), +}); + +/** @typedef {typeof formSchema} FormSchema */ \ No newline at end of file diff --git a/src/routes/auth/+page.svelte b/src/routes/auth/+page.svelte new file mode 100644 index 0000000..c3a4a4a --- /dev/null +++ b/src/routes/auth/+page.svelte @@ -0,0 +1,6 @@ + +Log in here you fat bastard \ No newline at end of file diff --git a/static/avatars/01.png b/static/avatars/01.png new file mode 100644 index 0000000000000000000000000000000000000000..05f11d491e8a2f154b4022b51710f85308189893 GIT binary patch literal 5406 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 IM6N<$f_UQicmMzZ literal 0 HcmV?d00001 diff --git a/static/avatars/02.png b/static/avatars/02.png new file mode 100644 index 0000000000000000000000000000000000000000..d919d304c1302088fd2070d8c4e957efcbc89d45 GIT binary patch literal 5368 zcmV+9?P z{`>#{0RR90@9*yo4Gs16_51qz{rvmj;NZZ(!1wp|@$vEV^YZ!l_s`GIKtMo$e}A8! zpG8GQySux0cX$2#{ORfG`T6-WGBR**a9>|vEiEk;78XxWPk?}cV`F2ludgB^BBiCJ zu&}V0n3#``kH*Hvh=_<_U|?2ORva80*x1;RkdTRqiJ+jMIXO8=NlEq4-@*U@6dg%K zK~#9!+?&g8<1h?G8JUn|NU|4sc^M!LGK(Vr|9KM>)6$u|ERnM0o?SOx9PpBq0BnFuiGu7Ic61sUgofp_y} zZcafYhl!stakB{;%UPDBSp->)AP(wT(w1M4bqJZj>>Vk;pj>t+Ypa}O7Swr|0Y9v= zkyDTfFdHFP%g!grA3L?B4$qTXp3KQfM$qO z(na{lobd%MBwb0z52m2yl@GUw_<{^9f=Qi-DQKDTiWp}cK?{!8)R=JuEj(V6V#W}( z{CF{@8AFh*b~k(uM#PLOXn;jBte(RcRO`hCbDAXz`d#fO$`D^rHTQ-BtvXuJZ}$Tb zRwHrV;d0!x588H+@6@m=x*y{3plZ&?gPOu+^Vy{i3XTP;0Q7~{hU=6`q+@U zbU_xR3AFf7`D8L=U?L`2kk995e^A-@?n5GH4w!R;#+>mY));x_2x)>0NMpYJ9933M zkr{&_Ne~LXOc3NJGc9F|yA46E1{9uOzxOIP7n)@7`wBnbv zY6d1{+o3~4oQwIPO*$4kL6DcZP~8`8Li6kjo=PO}pg222L0sBT!5cpc7SB2Tr zopdzewIC}n-jAvM|dcRHNp0( z3QjVD##Wdg)K@dW{_!azXm}vVbFNrVsuH#`g8aQ8%Q<7Tsv1y45ZF6Gjx)k)2^hT? za&dQpFtJ6~@Qj*45dJU7GM2=y_z_GzVw5ppU364(#X6=D5~N8`dcv@hGsg25Lw?49 zbWlU ziGr$XLG)WX2NHB6K_O94O~;Hs^mYj%gpnXzyr93_o$GqiKoEu_Gn1;L$h3tf)-wz)}Kz*H^(@u6DpYRoso6q;>rBn361EXL8b)hg@L9WBD(HkI}uXTI#(h2S%$S8~?0;!46&;BgP zeFHSM34;v7FCwW&?Lfi_^363iVh1#S1BCXE@Y+W2C>ZFP`EZJ8ZuD{5*CN9=K#q;< z=gZcm5k_HNP)dVjjc~GlP#)A1p)bzR&db|QxF*mfPwwVY!cn1I&0n_0mLdDeyhF$C zD_zS>C<0UXk}nV5DQ{nEGBAf0lx}WZ7m+W{J0p&R{~o#cEb>zf3@~rmm1o}^8(9K! zY^Ll}(?A;H*`|?C+_vpQa=8Gx97jVxTNGEMnVvcyl0*r0tq+8Cpg(&76-<59bGZG4nu4zRU|SLJ*bW=R$uW*m*$mUbgg`<(qX#x9Q;3 zX9YB7IUpL(pc5egV2P$;24b+Bt!1ewOyW!k^}2}XrEW9DLx?P$g^?_@HvKgtps_We z@i~D$U;BV^m&Ah55TArBMXpw|$gjy-s%Ey0yn?axb?3G01rR!xg1uHB*iA4Cr6e>B zTE64)He&yojR)X0HR-n=fXvG;o+Ch{vc;Gm5ZVK}IVG9i%?VAjG6bbaRN9CO(bQa= z(=UAhl@r`wB_J10Xe)}-TdI+nYMbff9{||sAN3EP*~L8oB3(F{rbu2XH@(`1sjLDL zYk)=d6;vj)|4)kJ{WRVcUAX)}$@Cdm(sUb!QhEURTEuEf0xQZ1P%Oj&(9+Dw6Xl%B zUgVVl8qpg25X& zCv`xO4wRI2hgET&0KM3;(N3HiuUPnDQSGpSO03wgv27O zkKbXX^@@)3`PF=T{7Tc~?Rita7>ERvW>wn=3L;pYSx6zReYbikd*%i-vFk>ge6swz z4}jvs2DCY;kpU6X_$&%O%7Dm()|l4VCz_82zA)Vx5Z3vK#0RD1bUJSqRP z0L)YlM0zcKQYegV{HP~DwkHGLz2gb-$n`5Z9Fs?mcrO{wW}z(Hw@~hh{B-mzZvHS&7i8q zd4RAWaqAf`rp2pUFjZtm+0r0{TRn<>J|Lq)oq?&RlT&E|D&|P9;5-``d^{w>s=gU^ zg0{za0e!P+)qAacV0}6u^06Y@?j-IfH#S133`qaVjYkQ!7;Il;0ZHz*nV^w-RzTmJ zp-qqDcl-Lm6Kf4~vNy~2KZ=r<1WkgXmVbByeWV{i!;S+~4`e_Tf2x|DmP(WGS61C6 z%Z%)@lK04TPGgx+E(gdK6*U z8IWljl9K&;K^B0$=v!wOT4KYFk3*s6qb0>H(zz=Asj;62*^9uko^TDQq zYynIPTcViYZ`Hmp?JVleYSN5+>*Q%@*5 zk|**3D%o^9?_Zy~69`A-aRQRLQ6JYfnjRU4JI3#TMs|~}$GuC=1_+hMPqBH1rqB;Y zKqHHTCLbz|c^{4l^Po`fgRR6dKAslD067nuEOb8HiU}}*@Tv0j zo%wIP2W}VYx-&+1Y6uCRsYFj&U7lu{4rtQRg!GFa10Oz5OFHqE$wyCYuZ;jDtzgf0 z9(<1c$`y4y8ydD3kGP=pd^;e;!Dc>}aA_qJwd239y_A4KOBrB)A zO^tKMoA6wQO`1#_OlS#~Do?`;Og4F5>GMiuKq{(oi;x;GDGLRQ%#N;#izhzu!BB*3h)Q=r~;$7n#vb|Jqh3M-xbG`_rH2?&P?XQ75B zbolG)VVo|TizYxMc z0^vufk#C243+Z_NGRtD4SNo4<)MqQ-a?k+%9>`IDB9Ofee*83_&(HVNUQEmKCHdB;YkptqgJ0l5EJei$PvJ*HAC52`g_V+eO83wItSt$TWA>_GSt($ z-A4$c13)qa3J6{iPcC5R?kgz7kvmyUL`%;7Mv!(h8_oyMp3uApo)m536KOATZSLQ#pRCAu`5jk4S7 z4~aAcRC014lM_rM5#7~Ug5@+wq#~dR_X)%m!Bi3pi>`_4?LUbXgrwXrkRzZ*V&S;m z{9b2o!(%r;K-@DB7X+k1F6qbqrz>mc< zfjAIWDYvNi)5Y1*`yd8CJtk*FAT9|kmvli1Zo-&AoD*6VR+6BZ&;XQCfq0Pbmp9VI zs#F?;I$R*GXb@T!KTT2*awP-r0}RAU15%yjS1MI%0r!Cha!P-TV{9OH^rvuF#1C1> z;R2b0{tU-yfgbF4NF8%hpa&~teYyvFq(cA8yO$J+VHgO*RUj;Z z{7Rhpj_{L;<5k{$Qi1+WAz==f6xdoY3Cyb4SY;NNc9Xv-w{WI`c?ULi@Vtj2g#8|(Fm?jFowq&COv)1+-v1DaHlBHFWIO!j)@)>!`8n>hKK-wh(xW${W#T(7yALO WMe*>bq`sE`0000+9

u^YXB; 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", + 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;