diff --git a/.storybook/main.ts b/.storybook/main.ts new file mode 100644 index 0000000..e538225 --- /dev/null +++ b/.storybook/main.ts @@ -0,0 +1,19 @@ +import type { StorybookConfig } from '@storybook/sveltekit'; + +const config: StorybookConfig = { + stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|ts|svelte)"], + addons: [ + "@storybook/addon-svelte-csf", + "@chromatic-com/storybook", + "@storybook/addon-docs", + "@storybook/addon-a11y" + ], + framework: { + name: "@storybook/sveltekit", + options: {}, + }, + core: { + disableTelemetry: true, + }, +}; +export default config; diff --git a/.storybook/preview.ts b/.storybook/preview.ts new file mode 100644 index 0000000..eef60a4 --- /dev/null +++ b/.storybook/preview.ts @@ -0,0 +1,16 @@ +import '../src/styles/styles.pcss'; + +import type { Preview } from '@storybook/sveltekit'; + +const preview: Preview = { + parameters: { + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/i, + }, + }, + }, +}; + +export default preview; diff --git a/package.json b/package.json index 12a7d52..dfd5de3 100644 --- a/package.json +++ b/package.json @@ -1,61 +1,68 @@ { - "name": "personal-website-sveltekit", - "version": "1.0.0", - "private": true, - "type": "module", - "scripts": { - "dev": "NODE_OPTIONS=\"--inspect\" vite dev --host", - "build": "vite build", - "preview": "vite preview", - "test": "npm run test:integration && npm run test:unit", - "test:ui": "svelte-kit sync && playwright test --ui", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "biome lint --error-on-warnings .", - "format": "biome format --write .", - "test:integration": "playwright test", - "test:unit": "vitest" - }, - "devDependencies": { - "@biomejs/biome": "^2.1.4", - "@internationalized/date": "^3.8.2", - "@playwright/test": "^1.54.2", - "@sveltejs/enhanced-img": "^0.5.1", - "@sveltejs/kit": "^2.29.0", - "@sveltejs/vite-plugin-svelte": "^5.1.1", - "@unpic/svelte": "^1.0.0", - "@zerodevx/svelte-img": "^2.1.2", - "autoprefixer": "^10.4.21", - "just-intersect": "^4.3.0", - "postcss": "^8.5.6", - "postcss-custom-media": "^11.0.6", - "postcss-import": "^16.1.1", - "postcss-load-config": "^6.0.1", - "postcss-preset-env": "^10.2.4", - "satori": "^0.12.2", - "satori-html": "^0.3.2", - "svelte": "^5.38.1", - "svelte-check": "^4.3.1", - "svelte-meta-tags": "^4.4.0", - "svelte-preprocess": "^6.0.3", - "svelte-sequential-preprocessor": "^2.0.2", - "tslib": "^2.8.1", - "typescript": "^5.9.2", - "vanilla-lazyload": "^19.1.3", - "vite": "^6.3.5", - "vite-imagetools": "^7.1.1", - "vitest": "^3.2.4" - }, - "dependencies": { - "@resvg/resvg-js": "^2.6.2", - "@sveltejs/adapter-node": "^5.2.14", - "@vercel/og": "^0.6.8", - "bits-ui": "2.9.2", - "flexsearch": "^0.8.205", - "ioredis": "^5.7.0", - "lucide-svelte": "^0.539.0", - "scrape-it": "^6.1.11", - "sharp": "^0.34.3", - "svelte-local-storage-store": "^0.6.4" - } + "name": "personal-website-sveltekit", + "version": "1.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "NODE_OPTIONS=\"--inspect\" vite dev --host", + "build": "vite build", + "preview": "vite preview", + "test": "npm run test:integration && npm run test:unit", + "test:ui": "svelte-kit sync && playwright test --ui", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "biome lint --error-on-warnings .", + "format": "biome format --write .", + "storybook": "storybook dev -p 6006", + "test:integration": "playwright test", + "test:unit": "vitest" + }, + "devDependencies": { + "@biomejs/biome": "^2.1.4", + "@chromatic-com/storybook": "^4.1.1", + "@internationalized/date": "^3.8.2", + "@playwright/test": "^1.54.2", + "@storybook/addon-a11y": "^9.1.3", + "@storybook/addon-docs": "^9.1.3", + "@storybook/addon-svelte-csf": "^5.0.8", + "@storybook/sveltekit": "^9.1.3", + "@sveltejs/enhanced-img": "^0.5.1", + "@sveltejs/kit": "^2.29.0", + "@sveltejs/vite-plugin-svelte": "^5.1.1", + "@unpic/svelte": "^1.0.0", + "@zerodevx/svelte-img": "^2.1.2", + "autoprefixer": "^10.4.21", + "just-intersect": "^4.3.0", + "postcss": "^8.5.6", + "postcss-custom-media": "^11.0.6", + "postcss-import": "^16.1.1", + "postcss-load-config": "^6.0.1", + "postcss-preset-env": "^10.2.4", + "satori": "^0.12.2", + "satori-html": "^0.3.2", + "storybook": "^9.1.3", + "svelte": "^5.38.1", + "svelte-check": "^4.3.1", + "svelte-meta-tags": "^4.4.0", + "svelte-preprocess": "^6.0.3", + "svelte-sequential-preprocessor": "^2.0.2", + "tslib": "^2.8.1", + "typescript": "^5.9.2", + "vanilla-lazyload": "^19.1.3", + "vite": "^6.3.5", + "vite-imagetools": "^7.1.1", + "vitest": "^3.2.4" + }, + "dependencies": { + "@resvg/resvg-js": "^2.6.2", + "@sveltejs/adapter-node": "^5.2.14", + "@vercel/og": "^0.6.8", + "bits-ui": "2.9.2", + "flexsearch": "^0.8.205", + "ioredis": "^5.7.0", + "lucide-svelte": "^0.539.0", + "scrape-it": "^6.1.11", + "sharp": "^0.34.3", + "svelte-local-storage-store": "^0.6.4" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dff238c..b4b4416 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,12 +42,27 @@ importers: '@biomejs/biome': specifier: ^2.1.4 version: 2.1.4 + '@chromatic-com/storybook': + specifier: ^4.1.1 + version: 4.1.1(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0))) '@internationalized/date': specifier: ^3.8.2 version: 3.8.2 '@playwright/test': specifier: ^1.54.2 version: 1.54.2 + '@storybook/addon-a11y': + specifier: ^9.1.3 + version: 9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0))) + '@storybook/addon-docs': + specifier: ^9.1.3 + version: 9.1.3(@types/react@19.1.10)(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0))) + '@storybook/addon-svelte-csf': + specifier: ^5.0.8 + version: 5.0.8(@storybook/svelte@9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(svelte@5.38.1))(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0)))(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0)) + '@storybook/sveltekit': + specifier: ^9.1.3 + version: 9.1.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0)))(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0)) '@sveltejs/enhanced-img': specifier: ^0.5.1 version: 0.5.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0)))(rollup@4.34.8)(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0)) @@ -90,6 +105,9 @@ importers: satori-html: specifier: ^0.3.2 version: 0.3.2 + storybook: + specifier: ^9.1.3 + version: 9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)) svelte: specifier: ^5.38.1 version: 5.38.1 @@ -126,10 +144,25 @@ importers: packages: + '@adobe/css-tools@4.4.4': + resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.28.3': + resolution: {integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==} + engines: {node: '>=6.9.0'} + '@biomejs/biome@2.1.4': resolution: {integrity: sha512-QWlrqyxsU0FCebuMnkvBIkxvPqH89afiJzjMl+z67ybutse590jgeaFdDurE9XYtzpjRGTI1tlUZPGWmbKsElA==} engines: {node: '>=14.21.3'} @@ -183,6 +216,12 @@ packages: cpu: [x64] os: [win32] + '@chromatic-com/storybook@4.1.1': + resolution: {integrity: sha512-+Ib4cHtEjKl/Do+4LyU0U1FhLPbIU2Q/zgbOKHBCV+dTC4T3/vGzPqiGsgkdnZyTsK/zXg96LMPSPC4jjOiapg==} + engines: {node: '>=20.0.0', yarn: '>=1.22.18'} + peerDependencies: + storybook: ^0.0.0-0 || ^9.0.0 || ^9.1.0-0 || ^9.2.0-0 || ^10.0.0-0 + '@csstools/cascade-layer-name-parser@2.0.5': resolution: {integrity: sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==} engines: {node: '>=18'} @@ -866,6 +905,15 @@ packages: '@jridgewell/trace-mapping@0.3.30': resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@mdx-js/react@3.1.0': + resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} + peerDependencies: + '@types/react': '>=16' + react: '>=16' + + '@neoconfetti/react@1.0.0': + resolution: {integrity: sha512-klcSooChXXOzIm+SE5IISIAn3bYzYfPjbX7D7HoqZL84oAfgREeSg5vSIaSFH+DaGzzvImTyWe1OyrJ67vik4A==} + '@playwright/test@1.54.2': resolution: {integrity: sha512-A+znathYxPf+72riFd1r1ovOLqsIIB0jKIoPjyK2kqEIe30/6jF6BC7QNluHuwUmsD2tv1XZVugN8GqfTMOxsA==} engines: {node: '>=18'} @@ -1193,6 +1241,80 @@ packages: '@standard-schema/spec@1.0.0': resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + '@storybook/addon-a11y@9.1.3': + resolution: {integrity: sha512-U+In40S6HCvRN2at+/wn1ECmqFfLa7vPePkR5c9b+Zh2aVNfv+3JbjXfbp29FocTj4ooYsPRYFq7cdzXBjXZ1A==} + peerDependencies: + storybook: ^9.1.3 + + '@storybook/addon-docs@9.1.3': + resolution: {integrity: sha512-iCzuHRyUgir2+ExqPO4ouxm90zW+6dkNuB4lyyFwNU10slJhVT8yGPk8PVOT6LhXMIii+7Hqc4dB0tj+kLOW/A==} + peerDependencies: + storybook: ^9.1.3 + + '@storybook/addon-svelte-csf@5.0.8': + resolution: {integrity: sha512-RJZdlImptVUfidsdZWovdnhPqU7bmvp47rtVV9a71ZaC2gV+XAi4sim0+FWxmyY1DWo3tUQtu82B0xo42lT0XQ==} + peerDependencies: + '@storybook/svelte': ^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0 || ^10.0.0-0 + '@sveltejs/vite-plugin-svelte': ^4.0.0 || ^5.0.0 || ^6.0.0 + storybook: ^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0 || ^10.0.0-0 + svelte: ^5.0.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 + + '@storybook/builder-vite@9.1.3': + resolution: {integrity: sha512-bstS/GsVJ5zVkRKAJociocA2omxU4CaNAP58fxS280JiRYgcrRaydDd7vwk6iGJ3xWbzwV0wH8SP54LVNyRY6Q==} + peerDependencies: + storybook: ^9.1.3 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 + + '@storybook/csf-plugin@9.1.3': + resolution: {integrity: sha512-wqh+tTCX2WZqVDVjhk/a6upsyYj/Kc85Wf6ywPx4pcFYxQZxiKF/wtuM9yzEpZC6fZHNvlKkzXWvP4wJOnm+zg==} + peerDependencies: + storybook: ^9.1.3 + + '@storybook/csf@0.1.13': + resolution: {integrity: sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==} + + '@storybook/global@5.0.0': + resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} + + '@storybook/icons@1.4.0': + resolution: {integrity: sha512-Td73IeJxOyalzvjQL+JXx72jlIYHgs+REaHiREOqfpo3A2AYYG71AUbcv+lg7mEDIweKVCxsMQ0UKo634c8XeA==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + + '@storybook/react-dom-shim@9.1.3': + resolution: {integrity: sha512-zIgFwZqV8cvE+lzJDcD13rItxoWyYNUWu7eJQAnHz5RnyHhpu6rFgQej7i6J3rPmy9xVe+Rq6XsXgDNs6pIekQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^9.1.3 + + '@storybook/svelte-vite@9.1.3': + resolution: {integrity: sha512-Sex/MZFt8stwHJ99493LvifBQMXZvzrNkLJtOcWKmam1EML3KehlLPJalSIKaJUg6/+6+xnHUhcaW6Qxp7mkAg==} + engines: {node: '>=20.0.0'} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + storybook: ^9.1.3 + svelte: ^5.0.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 + + '@storybook/svelte@9.1.3': + resolution: {integrity: sha512-6/IFxSIEFcQFqqsmjt8c1a0aDvteIHVlJ189qnIZPGV58+2vq1wkF96nRYv70L4Jm6Q8Z2s/tlHVcl7xNG8vjw==} + engines: {node: '>=20.0.0'} + peerDependencies: + storybook: ^9.1.3 + svelte: ^5.0.0 + + '@storybook/sveltekit@9.1.3': + resolution: {integrity: sha512-8E6TdHO4CLf8tRutwA+ZGk3N7cd/X3WmmJ0LnJYOCKrCFGTWcwZsU1++37fR4D5LJvl93jBAfthy4K5FfInumQ==} + engines: {node: '>=20.0.0'} + peerDependencies: + storybook: ^9.1.3 + svelte: ^5.0.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 + '@sveltejs/acorn-typescript@1.0.5': resolution: {integrity: sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==} peerDependencies: @@ -1237,6 +1359,23 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + '@testing-library/dom@10.4.1': + resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} + engines: {node: '>=18'} + + '@testing-library/jest-dom@6.8.0': + resolution: {integrity: sha512-WgXcWzVM6idy5JaftTVC8Vs83NKRmGJz4Hqs4oyOuO2J4r/y79vvKZsb+CaGyCSEbUPI6OsewfPd0G1A0/TUZQ==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + + '@testing-library/user-event@14.6.1': + resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@testing-library/dom': '>=7.21.4' + + '@types/aria-query@5.0.4': + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + '@types/chai@5.2.2': resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} @@ -1252,6 +1391,12 @@ packages: '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + + '@types/react@19.1.10': + resolution: {integrity: sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==} + '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} @@ -1311,6 +1456,21 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.0: + resolution: {integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==} + engines: {node: '>=12'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -1322,6 +1482,10 @@ packages: assured@1.0.16: resolution: {integrity: sha512-KwttBV8EIJw4/KqRFTJzKELLm9c3d1V9+fefORWv8cJNgKouuCRQ5rvCgjpBwA1AxVwqpR5Y1ePLU5SINJzhQg==} + ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -1332,6 +1496,10 @@ packages: peerDependencies: postcss: ^8.1.0 + axe-core@4.10.3: + resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} + engines: {node: '>=4'} + axios@1.8.4: resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==} @@ -1346,6 +1514,10 @@ packages: resolution: {integrity: sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==} engines: {node: '>= 0.4'} + better-opn@3.0.2: + resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} + engines: {node: '>=12.0.0'} + bits-ui@2.9.2: resolution: {integrity: sha512-GGbyr4oVKtHin//Q0AhlygkasmfWt328VjsnmB3sP+h8Sh+Eyghm+1AQ8o+xQMDCYbdL35JZ9UZGTZYTMar4Uw==} engines: {node: '>=20'} @@ -1402,6 +1574,18 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + chromatic@12.2.0: + resolution: {integrity: sha512-GswmBW9ZptAoTns1BMyjbm55Z7EsIJnUvYKdQqXIBZIKbGErmpA+p4c0BYA+nzw5B0M+rb3Iqp1IaH8TFwIQew==} + hasBin: true + peerDependencies: + '@chromatic-com/cypress': ^0.*.* || ^1.0.0 + '@chromatic-com/playwright': ^0.*.* || ^1.0.0 + peerDependenciesMeta: + '@chromatic-com/cypress': + optional: true + '@chromatic-com/playwright': + optional: true + clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -1484,6 +1668,9 @@ packages: resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} + css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + cssdb@8.3.1: resolution: {integrity: sha512-XnDRQMXucLueX92yDe0LPKupXetWoFOgawr4O4X41l5TltgK2NVbJJVDnnOywDYfW1sTJ28AcXGKOqdRKwCcmQ==} @@ -1492,6 +1679,9 @@ packages: engines: {node: '>=4'} hasBin: true + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + debug@4.4.0: resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} @@ -1510,6 +1700,17 @@ packages: supports-color: optional: true + dedent-js@1.0.1: + resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + + dedent@1.6.0: + resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} @@ -1521,6 +1722,10 @@ packages: deffy@2.2.5: resolution: {integrity: sha512-6TX2cfIo97eKqWmqgMDAUulCwnveAe3K+4VGsTGPJsL3NtSEnSBFZ3sUXdS4EBhZ8GbdaZBzXQ04ton18dJrug==} + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -1529,6 +1734,10 @@ packages: resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} engines: {node: '>=0.10'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -1540,6 +1749,12 @@ packages: devalue@5.1.1: resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} + dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + + dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -1599,6 +1814,14 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} + es-toolkit@1.39.10: + resolution: {integrity: sha512-E0iGnTtbDhkeczB0T+mxmoVlT4YNweEKBLq7oaU4p11mecdsZpNWOglI4895Vh4usbQ+LsJiuLuI2L0Vdmfm2w==} + + esbuild-register@3.6.0: + resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} + peerDependencies: + esbuild: '>=0.12 <1' + esbuild@0.25.4: resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} engines: {node: '>=18'} @@ -1614,6 +1837,17 @@ packages: esm-env@1.2.2: resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esrap@1.2.2: + resolution: {integrity: sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==} + + esrap@1.4.9: + resolution: {integrity: sha512-3OMlcd0a03UGuZpPeUC1HxR3nA23l+HEyCiZw3b3FumJIN9KphoGzDJKMXI1S72jVS1dsenDyQC0kJlO1U9E1g==} + esrap@2.1.0: resolution: {integrity: sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==} @@ -1654,6 +1888,10 @@ packages: fflate@0.7.4: resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} + filesize@10.1.6: + resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==} + engines: {node: '>= 10.4.0'} + flexsearch@0.8.205: resolution: {integrity: sha512-REFjMqy86DKkCTJ4gIE42c9MVm9t1vUWfEub/8taixYuhvyu4jd4XmFALk5VuKW4GH4VLav8A4BJboTsslHF1w==} @@ -1701,6 +1939,9 @@ packages: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -1732,6 +1973,10 @@ packages: resolution: {integrity: sha512-8Aa4NecBBGmTkaAUjcuRYgTPKHCsBEWYmCnvKCL6/bxedehtVVFyZPdXe8DD0Nevd6UWBq85ifUaJ8498lgqNQ==} engines: {node: '>=18.0.0'} + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} @@ -1746,6 +1991,11 @@ packages: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + is-empty-obj@1.0.14: resolution: {integrity: sha512-NE153YABOyMzd97pyD5QyOulWzav99vCMlFzoxJp6BScLTR6E9TrS4JGSGKeK77Ic0tUvbxRqKl2iw++d53X8A==} @@ -1758,12 +2008,22 @@ packages: is-reference@3.0.3: resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + iterate-object@1.3.5: resolution: {integrity: sha512-eL23u8oFooYTq6TtJKjp2RYjZnCkUYQvC0T/6fJfWykXJ3quvdDdzKZ3CEjy8b3JGOvLTjDYMEMIp5243R906A==} + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + just-intersect@4.3.0: resolution: {integrity: sha512-XdAiJUmfM7VOoBUh7I4xo+0YYuzCPiV0Xf21oAmR+1j6a/P8KxJUCigZDblmURZmkIWffNziY2sbSaHrJbNcuA==} @@ -1793,11 +2053,18 @@ packages: loupe@3.2.0: resolution: {integrity: sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw==} + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lucide-svelte@0.539.0: resolution: {integrity: sha512-p4k3GOje/9Si1eIkg1W1OQUhozeja5Ka5shjVpfyP5X2ye+B7sfyMnX3d5D2et+MYJwUFGrMna5MIYgq6bLfqw==} peerDependencies: svelte: ^3 || ^4 || ^5.0.0-next.42 + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} @@ -1816,6 +2083,10 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -1832,6 +2103,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} @@ -1848,6 +2122,10 @@ packages: obj-def@1.0.10: resolution: {integrity: sha512-RJpNUkO+1r/rXTBs82iU4scoC9Q1yp9HZbSk0ldpFe8362S6eTjUjSgTmECa1TtOBIe5pn4pwSzxIiWc8+jmWg==} + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} @@ -1863,6 +2141,9 @@ packages: parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -2089,9 +2370,25 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} + pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + react-dom@19.1.1: + resolution: {integrity: sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==} + peerDependencies: + react: ^19.1.1 + + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + + react@19.1.1: + resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==} + engines: {node: '>=0.10.0'} + read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} @@ -2099,6 +2396,14 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} + recast@0.23.11: + resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} + engines: {node: '>= 4'} + + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + redis-errors@1.2.0: resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} engines: {node: '>=4'} @@ -2144,6 +2449,9 @@ packages: resolution: {integrity: sha512-3C/laIeE6UUe9A+iQ0A48ywPVCCMKCNSTU5Os101Vhgsjd3AAxGNjyq0uAA8kulMPK5n0csn8JlxPN9riXEjLA==} engines: {node: '>=16'} + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + schema-dts@1.1.5: resolution: {integrity: sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==} @@ -2186,6 +2494,10 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -2195,9 +2507,26 @@ packages: std-env@3.9.0: resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + storybook@9.1.3: + resolution: {integrity: sha512-Sm+qP3iGb/QKx/jTYdfE0mIeTmA2HF+5k9fD70S9oOJq3F9UdW8MLgs+5PE+E/xAfDjZU4OWAKEOyA6EYIvQHg==} + hasBin: true + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + string.prototype.codepointat@0.2.1: resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + strip-literal@3.0.0: resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} @@ -2211,6 +2540,12 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + svelte-ast-print@0.4.2: + resolution: {integrity: sha512-hRHHufbJoArFmDYQKCpCvc0xUuIEfwYksvyLYEQyH+1xb5LD5sM/IthfooCdXZQtOIqXz6xm7NmaqdfwG4kh6w==} + engines: {node: '>=18'} + peerDependencies: + svelte: ^5.0.0 + svelte-check@4.3.1: resolution: {integrity: sha512-lkh8gff5gpHLjxIV+IaApMxQhTGnir2pNUAqcNgeKkvK5bT/30Ey/nzBxNLDlkztCH4dP7PixkMt9SWEKFPBWg==} engines: {node: '>= 18.0.0'} @@ -2282,6 +2617,12 @@ packages: peerDependencies: svelte: ^5.30.2 + svelte2tsx@0.7.42: + resolution: {integrity: sha512-PSNrKS16aVdAajoFjpF5M0t6TA7ha7GcKbBajD9RG3M+vooAuvLnWAGUSC6eJL4zEOVbOWKtcS2BuY4rxPljoA==} + peerDependencies: + svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 + typescript: ^4.9.4 || ^5.0.0 + svelte@4.2.20: resolution: {integrity: sha512-eeEgGc2DtiUil5ANdtd8vPwt9AgaMdnuUFnPft9F5oMvU/FHu5IHFic+p1dR/UOB7XU2mX2yHW+NcTch4DCh5Q==} engines: {node: '>=16'} @@ -2296,6 +2637,9 @@ packages: tiny-inflate@1.0.3: resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -2326,12 +2670,20 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} + ts-dedent@2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} + tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + typescript@5.9.2: resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} engines: {node: '>=14.17'} @@ -2350,9 +2702,17 @@ packages: unicode-trie@2.0.0: resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + unpic@4.1.2: resolution: {integrity: sha512-sau6i25EUxumNIL7e0kDpPWkVw3yxghLYcEwxPvm08263UfABDxtUJPT3H55z7W15cVXJB/PEhw4z6Oc+idWCA==} + unplugin@1.16.1: + resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} + engines: {node: '>=14.0.0'} + update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true @@ -2454,6 +2814,9 @@ packages: jsdom: optional: true + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} @@ -2467,6 +2830,18 @@ packages: engines: {node: '>=8'} hasBin: true + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + yaml@2.7.0: resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} @@ -2480,11 +2855,23 @@ packages: snapshots: + '@adobe/css-tools@4.4.4': {} + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/runtime@7.28.3': {} + '@biomejs/biome@2.1.4': optionalDependencies: '@biomejs/cli-darwin-arm64': 2.1.4 @@ -2520,6 +2907,18 @@ snapshots: '@biomejs/cli-win32-x64@2.1.4': optional: true + '@chromatic-com/storybook@4.1.1(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))': + dependencies: + '@neoconfetti/react': 1.0.0 + chromatic: 12.2.0 + filesize: 10.1.6 + jsonfile: 6.2.0 + storybook: 9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)) + strip-ansi: 7.1.0 + transitivePeerDependencies: + - '@chromatic-com/cypress' + - '@chromatic-com/playwright' + '@csstools/cascade-layer-name-parser@2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) @@ -3076,6 +3475,14 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@mdx-js/react@3.1.0(@types/react@19.1.10)(react@19.1.1)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 19.1.10 + react: 19.1.1 + + '@neoconfetti/react@1.0.0': {} + '@playwright/test@1.54.2': dependencies: playwright: 1.54.2 @@ -3295,6 +3702,101 @@ snapshots: '@standard-schema/spec@1.0.0': {} + '@storybook/addon-a11y@9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))': + dependencies: + '@storybook/global': 5.0.0 + axe-core: 4.10.3 + storybook: 9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)) + + '@storybook/addon-docs@9.1.3(@types/react@19.1.10)(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))': + dependencies: + '@mdx-js/react': 3.1.0(@types/react@19.1.10)(react@19.1.1) + '@storybook/csf-plugin': 9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0))) + '@storybook/icons': 1.4.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@storybook/react-dom-shim': 9.1.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0))) + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) + storybook: 9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + + '@storybook/addon-svelte-csf@5.0.8(@storybook/svelte@9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(svelte@5.38.1))(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0)))(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0))': + dependencies: + '@storybook/csf': 0.1.13 + '@storybook/svelte': 9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(svelte@5.38.1) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0)) + dedent: 1.6.0 + es-toolkit: 1.39.10 + esrap: 1.4.9 + magic-string: 0.30.17 + storybook: 9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)) + svelte: 5.38.1 + svelte-ast-print: 0.4.2(svelte@5.38.1) + vite: 6.3.5(yaml@2.7.0) + zimmerframe: 1.1.2 + transitivePeerDependencies: + - babel-plugin-macros + + '@storybook/builder-vite@9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(vite@6.3.5(yaml@2.7.0))': + dependencies: + '@storybook/csf-plugin': 9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0))) + storybook: 9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)) + ts-dedent: 2.2.0 + vite: 6.3.5(yaml@2.7.0) + + '@storybook/csf-plugin@9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))': + dependencies: + storybook: 9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)) + unplugin: 1.16.1 + + '@storybook/csf@0.1.13': + dependencies: + type-fest: 2.19.0 + + '@storybook/global@5.0.0': {} + + '@storybook/icons@1.4.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + dependencies: + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) + + '@storybook/react-dom-shim@9.1.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))': + dependencies: + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) + storybook: 9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)) + + '@storybook/svelte-vite@9.1.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0)))(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0))': + dependencies: + '@storybook/builder-vite': 9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(vite@6.3.5(yaml@2.7.0)) + '@storybook/svelte': 9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(svelte@5.38.1) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0)) + magic-string: 0.30.17 + storybook: 9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)) + svelte: 5.38.1 + svelte2tsx: 0.7.42(svelte@5.38.1)(typescript@5.9.2) + typescript: 5.9.2 + vite: 6.3.5(yaml@2.7.0) + + '@storybook/svelte@9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(svelte@5.38.1)': + dependencies: + storybook: 9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)) + svelte: 5.38.1 + ts-dedent: 2.2.0 + type-fest: 2.19.0 + + '@storybook/sveltekit@9.1.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0)))(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0))': + dependencies: + '@storybook/builder-vite': 9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(vite@6.3.5(yaml@2.7.0)) + '@storybook/svelte': 9.1.3(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(svelte@5.38.1) + '@storybook/svelte-vite': 9.1.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0)))(storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)))(svelte@5.38.1)(vite@6.3.5(yaml@2.7.0)) + storybook: 9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)) + svelte: 5.38.1 + vite: 6.3.5(yaml@2.7.0) + transitivePeerDependencies: + - '@sveltejs/vite-plugin-svelte' + '@sveltejs/acorn-typescript@1.0.5(acorn@8.14.1)': dependencies: acorn: 8.14.1 @@ -3369,6 +3871,32 @@ snapshots: dependencies: tslib: 2.8.1 + '@testing-library/dom@10.4.1': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/runtime': 7.28.3 + '@types/aria-query': 5.0.4 + aria-query: 5.3.0 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + picocolors: 1.1.1 + pretty-format: 27.5.1 + + '@testing-library/jest-dom@6.8.0': + dependencies: + '@adobe/css-tools': 4.4.4 + aria-query: 5.3.2 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + picocolors: 1.1.1 + redent: 3.0.0 + + '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': + dependencies: + '@testing-library/dom': 10.4.1 + + '@types/aria-query@5.0.4': {} + '@types/chai@5.2.2': dependencies: '@types/deep-eql': 4.0.2 @@ -3381,6 +3909,12 @@ snapshots: '@types/estree@1.0.7': {} + '@types/mdx@2.0.13': {} + + '@types/react@19.1.10': + dependencies: + csstype: 3.1.3 + '@types/resolve@1.20.2': {} '@unpic/core@1.0.1': @@ -3452,6 +3986,16 @@ snapshots: acorn@8.15.0: {} + ansi-regex@5.0.1: {} + + ansi-regex@6.2.0: {} + + ansi-styles@5.2.0: {} + + aria-query@5.3.0: + dependencies: + dequal: 2.0.3 + aria-query@5.3.2: {} assertion-error@2.0.1: {} @@ -3461,6 +4005,10 @@ snapshots: noop6: 1.0.10 sliced: 1.0.1 + ast-types@0.16.1: + dependencies: + tslib: 2.8.1 + asynckit@0.4.0: {} autoprefixer@10.4.21(postcss@8.5.6): @@ -3473,6 +4021,8 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 + axe-core@4.10.3: {} + axios@1.8.4: dependencies: follow-redirects: 1.15.9 @@ -3491,6 +4041,10 @@ snapshots: base64-js@0.0.8: {} + better-opn@3.0.2: + dependencies: + open: 8.4.2 + bits-ui@2.9.2(@internationalized/date@3.8.2)(svelte@5.38.1): dependencies: '@floating-ui/core': 1.7.3 @@ -3573,6 +4127,8 @@ snapshots: dependencies: readdirp: 4.1.2 + chromatic@12.2.0: {} + clsx@2.1.1: {} cluster-key-slot@1.1.2: {} @@ -3654,10 +4210,14 @@ snapshots: css-what@6.2.2: {} + css.escape@1.5.1: {} + cssdb@8.3.1: {} cssesc@3.0.0: {} + csstype@3.1.3: {} + debug@4.4.0: dependencies: ms: 2.1.3 @@ -3666,6 +4226,10 @@ snapshots: dependencies: ms: 2.1.3 + dedent-js@1.0.1: {} + + dedent@1.6.0: {} + deep-eql@5.0.2: {} deepmerge@4.3.1: {} @@ -3674,16 +4238,24 @@ snapshots: dependencies: typpy: 2.4.0 + define-lazy-prop@2.0.0: {} + delayed-stream@1.0.0: {} denque@2.1.0: {} + dequal@2.0.3: {} + detect-libc@2.0.3: {} detect-libc@2.0.4: {} devalue@5.1.1: {} + dom-accessibility-api@0.5.16: {} + + dom-accessibility-api@0.6.3: {} + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -3746,6 +4318,15 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 + es-toolkit@1.39.10: {} + + esbuild-register@3.6.0(esbuild@0.25.4): + dependencies: + debug: 4.4.1 + esbuild: 0.25.4 + transitivePeerDependencies: + - supports-color + esbuild@0.25.4: optionalDependencies: '@esbuild/aix-ppc64': 0.25.4 @@ -3780,6 +4361,17 @@ snapshots: esm-env@1.2.2: {} + esprima@4.0.1: {} + + esrap@1.2.2: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.7 + + esrap@1.4.9: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + esrap@2.1.0: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -3806,6 +4398,8 @@ snapshots: fflate@0.7.4: {} + filesize@10.1.6: {} + flexsearch@0.8.205: {} follow-redirects@1.15.9: {} @@ -3851,6 +4445,9 @@ snapshots: gopd@1.2.0: {} + graceful-fs@4.2.11: + optional: true + has-symbols@1.1.0: {} has-tostringtag@1.0.2: @@ -3880,6 +4477,8 @@ snapshots: imagetools-core@7.1.0: {} + indent-string@4.0.0: {} + inline-style-parser@0.2.4: {} ioredis@5.7.0: @@ -3902,6 +4501,8 @@ snapshots: dependencies: hasown: 2.0.2 + is-docker@2.2.1: {} + is-empty-obj@1.0.14: {} is-module@1.0.0: {} @@ -3914,10 +4515,22 @@ snapshots: dependencies: '@types/estree': 1.0.7 + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + iterate-object@1.3.5: {} + js-tokens@4.0.0: {} + js-tokens@9.0.1: {} + jsonfile@6.2.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + just-intersect@4.3.0: {} kleur@4.1.5: {} @@ -3939,10 +4552,16 @@ snapshots: loupe@3.2.0: {} + lower-case@2.0.2: + dependencies: + tslib: 2.8.1 + lucide-svelte@0.539.0(svelte@5.38.1): dependencies: svelte: 5.38.1 + lz-string@1.5.0: {} + magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -3957,6 +4576,8 @@ snapshots: dependencies: mime-db: 1.52.0 + min-indent@1.0.1: {} + mri@1.2.0: {} mrmime@2.0.1: {} @@ -3965,6 +4586,11 @@ snapshots: nanoid@3.3.11: {} + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.1 + node-releases@2.0.19: {} noop6@1.0.10: {} @@ -3979,6 +4605,12 @@ snapshots: dependencies: deffy: 2.2.5 + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + pako@0.2.9: {} parse-css-color@0.2.1: @@ -3999,6 +4631,11 @@ snapshots: dependencies: entities: 6.0.1 + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + path-parse@1.0.7: {} pathe@2.0.3: {} @@ -4267,14 +4904,42 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + pretty-format@27.5.1: + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + proxy-from-env@1.1.0: {} + react-dom@19.1.1(react@19.1.1): + dependencies: + react: 19.1.1 + scheduler: 0.26.0 + + react-is@17.0.2: {} + + react@19.1.1: {} + read-cache@1.0.0: dependencies: pify: 2.3.0 readdirp@4.1.2: {} + recast@0.23.11: + dependencies: + ast-types: 0.16.1 + esprima: 4.0.1 + source-map: 0.6.1 + tiny-invariant: 1.3.3 + tslib: 2.8.1 + + redent@3.0.0: + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + redis-errors@1.2.0: {} redis-parser@3.0.0: @@ -4369,6 +5034,8 @@ snapshots: postcss-value-parser: 4.2.0 yoga-wasm-web: 0.3.3 + scheduler@0.26.0: {} + schema-dts@1.1.5: {} scrape-it-core@1.0.2: @@ -4465,14 +5132,46 @@ snapshots: source-map-js@1.2.1: {} + source-map@0.6.1: {} + stackback@0.0.2: {} standard-as-callback@2.1.0: {} std-env@3.9.0: {} + storybook@9.1.3(@testing-library/dom@10.4.1)(vite@6.3.5(yaml@2.7.0)): + dependencies: + '@storybook/global': 5.0.0 + '@testing-library/jest-dom': 6.8.0 + '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(vite@6.3.5(yaml@2.7.0)) + '@vitest/spy': 3.2.4 + better-opn: 3.0.2 + esbuild: 0.25.4 + esbuild-register: 3.6.0(esbuild@0.25.4) + recast: 0.23.11 + semver: 7.7.2 + ws: 8.18.3 + transitivePeerDependencies: + - '@testing-library/dom' + - bufferutil + - msw + - supports-color + - utf-8-validate + - vite + string.prototype.codepointat@0.2.1: {} + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.2.0 + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + strip-literal@3.0.0: dependencies: js-tokens: 9.0.1 @@ -4485,6 +5184,12 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + svelte-ast-print@0.4.2(svelte@5.38.1): + dependencies: + esrap: 1.2.2 + svelte: 5.38.1 + zimmerframe: 1.1.2 + svelte-check@4.3.1(picomatch@4.0.2)(svelte@5.38.1)(typescript@5.9.2): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -4530,6 +5235,13 @@ snapshots: style-to-object: 1.0.9 svelte: 5.38.1 + svelte2tsx@0.7.42(svelte@5.38.1)(typescript@5.9.2): + dependencies: + dedent-js: 1.0.1 + pascal-case: 3.1.2 + svelte: 5.38.1 + typescript: 5.9.2 + svelte@4.2.20: dependencies: '@ampproject/remapping': 2.3.0 @@ -4568,6 +5280,8 @@ snapshots: tiny-inflate@1.0.3: {} + tiny-invariant@1.3.3: {} + tinybench@2.9.0: {} tinyexec@0.3.2: {} @@ -4590,10 +5304,14 @@ snapshots: totalist@3.0.1: {} + ts-dedent@2.2.0: {} + tslib@2.7.0: {} tslib@2.8.1: {} + type-fest@2.19.0: {} + typescript@5.9.2: {} typpy@2.4.0: @@ -4609,8 +5327,15 @@ snapshots: pako: 0.2.9 tiny-inflate: 1.0.3 + universalify@2.0.1: {} + unpic@4.1.2: {} + unplugin@1.16.1: + dependencies: + acorn: 8.15.0 + webpack-virtual-modules: 0.6.2 + update-browserslist-db@1.1.3(browserslist@4.24.4): dependencies: browserslist: 4.24.4 @@ -4718,6 +5443,8 @@ snapshots: - tsx - yaml + webpack-virtual-modules@0.6.2: {} + whatwg-encoding@3.1.1: dependencies: iconv-lite: 0.6.3 @@ -4729,6 +5456,8 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + ws@8.18.3: {} + yaml@2.7.0: optional: true diff --git a/src/lib/components/Articles.stories.svelte b/src/lib/components/Articles.stories.svelte new file mode 100644 index 0000000..023ffb8 --- /dev/null +++ b/src/lib/components/Articles.stories.svelte @@ -0,0 +1,18 @@ + + + diff --git a/src/lib/components/ArticlesSkeleton.stories.svelte b/src/lib/components/ArticlesSkeleton.stories.svelte new file mode 100644 index 0000000..af8294b --- /dev/null +++ b/src/lib/components/ArticlesSkeleton.stories.svelte @@ -0,0 +1,13 @@ + + + diff --git a/src/lib/components/Bandcamp.stories.svelte b/src/lib/components/Bandcamp.stories.svelte new file mode 100644 index 0000000..ff888e9 --- /dev/null +++ b/src/lib/components/Bandcamp.stories.svelte @@ -0,0 +1,38 @@ + + + diff --git a/src/lib/components/ContactHub.stories.svelte b/src/lib/components/ContactHub.stories.svelte new file mode 100644 index 0000000..9d7eabc --- /dev/null +++ b/src/lib/components/ContactHub.stories.svelte @@ -0,0 +1,40 @@ + + + diff --git a/src/lib/components/ContactHub.svelte b/src/lib/components/ContactHub.svelte index d7c1705..e1ef638 100644 --- a/src/lib/components/ContactHub.svelte +++ b/src/lib/components/ContactHub.svelte @@ -1,12 +1,12 @@ + + diff --git a/src/lib/components/ExternalLink.svelte b/src/lib/components/ExternalLink.svelte index 25930b4..277a50f 100644 --- a/src/lib/components/ExternalLink.svelte +++ b/src/lib/components/ExternalLink.svelte @@ -52,14 +52,15 @@ viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" > + {linkData?.title ?? `Open ${linkData?.ariaLabel} externally`} {@render (icon as any)()} {:else if type === "icon" && icon} {@const Icon = icon} - + {linkData?.title ?? `Open ${linkData?.ariaLabel} externally`} {:else} {@const Icon = ExternalLink} - + {linkData?.title ?? `Open ${linkData?.ariaLabel} externally`} {/if} {/snippet} diff --git a/src/lib/components/LazyImage.stories.svelte b/src/lib/components/LazyImage.stories.svelte new file mode 100644 index 0000000..4bb2fa4 --- /dev/null +++ b/src/lib/components/LazyImage.stories.svelte @@ -0,0 +1,29 @@ + + + diff --git a/src/lib/components/Link.stories.svelte b/src/lib/components/Link.stories.svelte new file mode 100644 index 0000000..5c34b9b --- /dev/null +++ b/src/lib/components/Link.stories.svelte @@ -0,0 +1,16 @@ + + + + + Go Home + + diff --git a/src/lib/components/Pagination.stories.svelte b/src/lib/components/Pagination.stories.svelte new file mode 100644 index 0000000..ea18051 --- /dev/null +++ b/src/lib/components/Pagination.stories.svelte @@ -0,0 +1,20 @@ + + + diff --git a/src/lib/components/Tag.stories.svelte b/src/lib/components/Tag.stories.svelte new file mode 100644 index 0000000..22e3eee --- /dev/null +++ b/src/lib/components/Tag.stories.svelte @@ -0,0 +1,14 @@ + + + diff --git a/src/lib/components/footer/Footer.stories.svelte b/src/lib/components/footer/Footer.stories.svelte new file mode 100644 index 0000000..4ad2b64 --- /dev/null +++ b/src/lib/components/footer/Footer.stories.svelte @@ -0,0 +1,12 @@ + + + diff --git a/src/lib/components/header/Header.stories.svelte b/src/lib/components/header/Header.stories.svelte new file mode 100644 index 0000000..10b558a --- /dev/null +++ b/src/lib/components/header/Header.stories.svelte @@ -0,0 +1,12 @@ + + + diff --git a/src/lib/components/logo/Logo.stories.svelte b/src/lib/components/logo/Logo.stories.svelte new file mode 100644 index 0000000..dbc1167 --- /dev/null +++ b/src/lib/components/logo/Logo.stories.svelte @@ -0,0 +1,12 @@ + + + diff --git a/src/lib/components/nav/Nav.stories.svelte b/src/lib/components/nav/Nav.stories.svelte new file mode 100644 index 0000000..2c6e34e --- /dev/null +++ b/src/lib/components/nav/Nav.stories.svelte @@ -0,0 +1,12 @@ + + + diff --git a/src/lib/components/socialImageCard.stories.svelte b/src/lib/components/socialImageCard.stories.svelte new file mode 100644 index 0000000..2162a2e --- /dev/null +++ b/src/lib/components/socialImageCard.stories.svelte @@ -0,0 +1,30 @@ + + +