From 06d5b967d95b8d7cc984dca74d74431cd26a5040 Mon Sep 17 00:00:00 2001 From: Michele Preziuso Date: Fri, 19 Dec 2025 14:40:26 +0000 Subject: [PATCH 1/6] feat: svelte renderer --- renderers/svelte/.gitignore | 24 + renderers/svelte/.npmrc | 1 + renderers/svelte/.prettierignore | 9 + renderers/svelte/.prettierrc | 17 + renderers/svelte/README.md | 9 + renderers/svelte/package.json | 73 + renderers/svelte/pnpm-lock.yaml | 1612 +++++++++++++++++ renderers/svelte/pnpm-workspace.yaml | 2 + renderers/svelte/src/app.d.ts | 13 + renderers/svelte/src/app.html | 12 + .../svelte/src/lib/catalog/AudioPlayer.svelte | 56 + .../svelte/src/lib/catalog/Button.svelte | 61 + renderers/svelte/src/lib/catalog/Card.svelte | 55 + .../svelte/src/lib/catalog/CheckBox.svelte | 86 + .../svelte/src/lib/catalog/Column.svelte | 121 ++ .../src/lib/catalog/DateTimeInput.svelte | 98 + .../svelte/src/lib/catalog/Divider.svelte | 46 + renderers/svelte/src/lib/catalog/Icon.svelte | 59 + renderers/svelte/src/lib/catalog/Image.svelte | 82 + renderers/svelte/src/lib/catalog/List.svelte | 71 + renderers/svelte/src/lib/catalog/Modal.svelte | 140 ++ .../src/lib/catalog/MultipleChoice.svelte | 95 + renderers/svelte/src/lib/catalog/Row.svelte | 121 ++ .../svelte/src/lib/catalog/Slider.svelte | 120 ++ .../svelte/src/lib/catalog/Surface.svelte | 119 ++ renderers/svelte/src/lib/catalog/Tabs.svelte | 118 ++ renderers/svelte/src/lib/catalog/Text.svelte | 137 ++ .../svelte/src/lib/catalog/TextField.svelte | 100 + renderers/svelte/src/lib/catalog/Video.svelte | 58 + renderers/svelte/src/lib/catalog/default.ts | 208 +++ renderers/svelte/src/lib/catalog/index.ts | 45 + renderers/svelte/src/lib/data/index.ts | 18 + renderers/svelte/src/lib/data/markdown.ts | 79 + renderers/svelte/src/lib/data/processor.ts | 65 + renderers/svelte/src/lib/index.ts | 59 + .../svelte/src/lib/rendering/Renderer.svelte | 100 + renderers/svelte/src/lib/rendering/catalog.ts | 72 + .../src/lib/rendering/context.svelte.ts | 92 + renderers/svelte/src/lib/rendering/index.ts | 37 + renderers/svelte/src/lib/utils/classes.ts | 53 + renderers/svelte/src/lib/utils/index.ts | 25 + renderers/svelte/src/lib/utils/primitives.ts | 148 ++ renderers/svelte/src/routes/+page.svelte | 3 + renderers/svelte/static/favicon.svg | 1 + renderers/svelte/svelte.config.js | 18 + renderers/svelte/tsconfig.json | 15 + renderers/svelte/vite.config.ts | 41 + 47 files changed, 4594 insertions(+) create mode 100644 renderers/svelte/.gitignore create mode 100644 renderers/svelte/.npmrc create mode 100644 renderers/svelte/.prettierignore create mode 100644 renderers/svelte/.prettierrc create mode 100644 renderers/svelte/README.md create mode 100644 renderers/svelte/package.json create mode 100644 renderers/svelte/pnpm-lock.yaml create mode 100644 renderers/svelte/pnpm-workspace.yaml create mode 100644 renderers/svelte/src/app.d.ts create mode 100644 renderers/svelte/src/app.html create mode 100644 renderers/svelte/src/lib/catalog/AudioPlayer.svelte create mode 100644 renderers/svelte/src/lib/catalog/Button.svelte create mode 100644 renderers/svelte/src/lib/catalog/Card.svelte create mode 100644 renderers/svelte/src/lib/catalog/CheckBox.svelte create mode 100644 renderers/svelte/src/lib/catalog/Column.svelte create mode 100644 renderers/svelte/src/lib/catalog/DateTimeInput.svelte create mode 100644 renderers/svelte/src/lib/catalog/Divider.svelte create mode 100644 renderers/svelte/src/lib/catalog/Icon.svelte create mode 100644 renderers/svelte/src/lib/catalog/Image.svelte create mode 100644 renderers/svelte/src/lib/catalog/List.svelte create mode 100644 renderers/svelte/src/lib/catalog/Modal.svelte create mode 100644 renderers/svelte/src/lib/catalog/MultipleChoice.svelte create mode 100644 renderers/svelte/src/lib/catalog/Row.svelte create mode 100644 renderers/svelte/src/lib/catalog/Slider.svelte create mode 100644 renderers/svelte/src/lib/catalog/Surface.svelte create mode 100644 renderers/svelte/src/lib/catalog/Tabs.svelte create mode 100644 renderers/svelte/src/lib/catalog/Text.svelte create mode 100644 renderers/svelte/src/lib/catalog/TextField.svelte create mode 100644 renderers/svelte/src/lib/catalog/Video.svelte create mode 100644 renderers/svelte/src/lib/catalog/default.ts create mode 100644 renderers/svelte/src/lib/catalog/index.ts create mode 100644 renderers/svelte/src/lib/data/index.ts create mode 100644 renderers/svelte/src/lib/data/markdown.ts create mode 100644 renderers/svelte/src/lib/data/processor.ts create mode 100644 renderers/svelte/src/lib/index.ts create mode 100644 renderers/svelte/src/lib/rendering/Renderer.svelte create mode 100644 renderers/svelte/src/lib/rendering/catalog.ts create mode 100644 renderers/svelte/src/lib/rendering/context.svelte.ts create mode 100644 renderers/svelte/src/lib/rendering/index.ts create mode 100644 renderers/svelte/src/lib/utils/classes.ts create mode 100644 renderers/svelte/src/lib/utils/index.ts create mode 100644 renderers/svelte/src/lib/utils/primitives.ts create mode 100644 renderers/svelte/src/routes/+page.svelte create mode 100644 renderers/svelte/static/favicon.svg create mode 100644 renderers/svelte/svelte.config.js create mode 100644 renderers/svelte/tsconfig.json create mode 100644 renderers/svelte/vite.config.ts diff --git a/renderers/svelte/.gitignore b/renderers/svelte/.gitignore new file mode 100644 index 00000000..294b3857 --- /dev/null +++ b/renderers/svelte/.gitignore @@ -0,0 +1,24 @@ +node_modules + +# Output +.output +.vercel +.netlify +.wrangler +/.svelte-kit +/build +/dist + +# OS +.DS_Store +Thumbs.db + +# Env +.env +.env.* +!.env.example +!.env.test + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/renderers/svelte/.npmrc b/renderers/svelte/.npmrc new file mode 100644 index 00000000..b6f27f13 --- /dev/null +++ b/renderers/svelte/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/renderers/svelte/.prettierignore b/renderers/svelte/.prettierignore new file mode 100644 index 00000000..7d74fe24 --- /dev/null +++ b/renderers/svelte/.prettierignore @@ -0,0 +1,9 @@ +# Package Managers +package-lock.json +pnpm-lock.yaml +yarn.lock +bun.lock +bun.lockb + +# Miscellaneous +/static/ diff --git a/renderers/svelte/.prettierrc b/renderers/svelte/.prettierrc new file mode 100644 index 00000000..b5132629 --- /dev/null +++ b/renderers/svelte/.prettierrc @@ -0,0 +1,17 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": [ + "prettier-plugin-svelte" + ], + "overrides": [ + { + "files": "*.svelte", + "options": { + "parser": "svelte" + } + } + ] +} diff --git a/renderers/svelte/README.md b/renderers/svelte/README.md new file mode 100644 index 00000000..3acaf8c3 --- /dev/null +++ b/renderers/svelte/README.md @@ -0,0 +1,9 @@ +Svelte implementation of A2UI. + +Important: The sample code provided is for demonstration purposes and illustrates the mechanics of A2UI and the Agent-to-Agent (A2A) protocol. When building production applications, it is critical to treat any agent operating outside of your direct control as a potentially untrusted entity. + +All operational data received from an external agent—including its AgentCard, messages, artifacts, and task statuses—should be handled as untrusted input. For example, a malicious agent could provide crafted data in its fields (e.g., name, skills.description) that, if used without sanitization to construct prompts for a Large Language Model (LLM), could expose your application to prompt injection attacks. + +Similarly, any UI definition or data stream received must be treated as untrusted. Malicious agents could attempt to spoof legitimate interfaces to deceive users (phishing), inject malicious scripts via property values (XSS), or generate excessive layout complexity to degrade client performance (DoS). If your application supports optional embedded content (such as iframes or web views), additional care must be taken to prevent exposure to malicious external sites. + +Developer Responsibility: Failure to properly validate data and strictly sandbox rendered content can introduce severe vulnerabilities. Developers are responsible for implementing appropriate security measures—such as input sanitization, Content Security Policies (CSP), strict isolation for optional embedded content, and secure credential handling—to protect their systems and users. diff --git a/renderers/svelte/package.json b/renderers/svelte/package.json new file mode 100644 index 00000000..c5c98f06 --- /dev/null +++ b/renderers/svelte/package.json @@ -0,0 +1,73 @@ +{ + "name": "@a2ui/svelte", + "version": "0.8.1", + "description": "A2UI Svelte 5 renderer - render A2UI protocol messages as native Svelte components", + "scripts": { + "dev": "vite dev", + "build": "vite build && npm run prepack", + "preview": "vite preview", + "prepare": "svelte-kit sync || echo ''", + "prepack": "svelte-kit sync && svelte-package && publint", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "test:unit": "vitest", + "test": "npm run test:unit -- --run", + "format": "prettier --write .", + "lint": "prettier --check ." + }, + "files": [ + "dist", + "!dist/**/*.test.*", + "!dist/**/*.spec.*" + ], + "sideEffects": [ + "**/*.css" + ], + "svelte": "./dist/index.js", + "types": "./dist/index.d.ts", + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "svelte": "./dist/index.js" + } + }, + "dependencies": { + "@a2ui/lit": "file:../lit", + "markdown-it": "^14.1.0" + }, + "peerDependencies": { + "svelte": "^5.0.0" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^7.0.0", + "@sveltejs/kit": "^2.49.1", + "@sveltejs/package": "^2.5.7", + "@sveltejs/vite-plugin-svelte": "^6.2.1", + "@types/markdown-it": "^14.1.2", + "@vitest/browser-playwright": "^4.0.15", + "playwright": "^1.57.0", + "prettier": "^3.7.4", + "prettier-plugin-svelte": "^3.4.0", + "publint": "^0.3.15", + "svelte": "^5.45.6", + "svelte-check": "^4.3.4", + "typescript": "^5.9.3", + "vite": "^7.2.6", + "vitest": "^4.0.15", + "vitest-browser-svelte": "^2.0.1" + }, + "keywords": [ + "svelte", + "a2ui", + "ui", + "agent", + "renderer" + ], + "license": "Apache-2.0", + "repository": { + "type": "git", + "url": "git+https://github.com/anthropics/A2UI.git", + "directory": "renderers/svelte" + } +} diff --git a/renderers/svelte/pnpm-lock.yaml b/renderers/svelte/pnpm-lock.yaml new file mode 100644 index 00000000..9453dccb --- /dev/null +++ b/renderers/svelte/pnpm-lock.yaml @@ -0,0 +1,1612 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@a2ui/lit': + specifier: file:../lit + version: file:../lit(signal-polyfill@0.2.2) + markdown-it: + specifier: ^14.1.0 + version: 14.1.0 + devDependencies: + '@sveltejs/adapter-auto': + specifier: ^7.0.0 + version: 7.0.0(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0)) + '@sveltejs/kit': + specifier: ^2.49.1 + version: 2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0) + '@sveltejs/package': + specifier: ^2.5.7 + version: 2.5.7(svelte@5.46.0)(typescript@5.9.3) + '@sveltejs/vite-plugin-svelte': + specifier: ^6.2.1 + version: 6.2.1(svelte@5.46.0)(vite@7.3.0) + '@types/markdown-it': + specifier: ^14.1.2 + version: 14.1.2 + '@vitest/browser-playwright': + specifier: ^4.0.15 + version: 4.0.16(playwright@1.57.0)(vite@7.3.0)(vitest@4.0.16) + playwright: + specifier: ^1.57.0 + version: 1.57.0 + prettier: + specifier: ^3.7.4 + version: 3.7.4 + prettier-plugin-svelte: + specifier: ^3.4.0 + version: 3.4.1(prettier@3.7.4)(svelte@5.46.0) + publint: + specifier: ^0.3.15 + version: 0.3.16 + svelte: + specifier: ^5.45.6 + version: 5.46.0 + svelte-check: + specifier: ^4.3.4 + version: 4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3) + typescript: + specifier: ^5.9.3 + version: 5.9.3 + vite: + specifier: ^7.2.6 + version: 7.3.0 + vitest: + specifier: ^4.0.15 + version: 4.0.16(@vitest/browser-playwright@4.0.16) + vitest-browser-svelte: + specifier: ^2.0.1 + version: 2.0.1(svelte@5.46.0)(vitest@4.0.16) + +packages: + + '@a2ui/lit@file:../lit': + resolution: {directory: ../lit, type: directory} + + '@esbuild/aix-ppc64@0.27.2': + resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.27.2': + resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.27.2': + resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.27.2': + resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.27.2': + resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.2': + resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.27.2': + resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.2': + resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.27.2': + resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.27.2': + resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.27.2': + resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.27.2': + resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.27.2': + resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.27.2': + resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.2': + resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.27.2': + resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.27.2': + resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.27.2': + resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.2': + resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.27.2': + resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.2': + resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.2': + resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.27.2': + resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.27.2': + resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.27.2': + resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.27.2': + resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@lit-labs/signals@0.1.3': + resolution: {integrity: sha512-P0yWgH5blwVyEwBg+WFspLzeu1i0ypJP1QB0l1Omr9qZLIPsUu0p4Fy2jshOg7oQyha5n163K3GJGeUhQQ682Q==} + + '@lit-labs/ssr-dom-shim@1.4.0': + resolution: {integrity: sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==} + + '@lit/context@1.1.6': + resolution: {integrity: sha512-M26qDE6UkQbZA2mQ3RjJ3Gzd8TxP+/0obMgE5HfkfLhEEyYE3Bui4A5XHiGPjy0MUGAyxB3QgVuw2ciS0kHn6A==} + + '@lit/reactive-element@2.1.1': + resolution: {integrity: sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==} + + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + + '@publint/pack@0.1.2': + resolution: {integrity: sha512-S+9ANAvUmjutrshV4jZjaiG8XQyuJIZ8a4utWmN/vW1sgQ9IfBnPndwkmQYw53QmouOIytT874u65HEmu6H5jw==} + engines: {node: '>=18'} + + '@rollup/rollup-android-arm-eabi@4.53.5': + resolution: {integrity: sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.53.5': + resolution: {integrity: sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.53.5': + resolution: {integrity: sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.53.5': + resolution: {integrity: sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.53.5': + resolution: {integrity: sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.53.5': + resolution: {integrity: sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.53.5': + resolution: {integrity: sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.53.5': + resolution: {integrity: sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.53.5': + resolution: {integrity: sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.53.5': + resolution: {integrity: sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.53.5': + resolution: {integrity: sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.53.5': + resolution: {integrity: sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.53.5': + resolution: {integrity: sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.53.5': + resolution: {integrity: sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.53.5': + resolution: {integrity: sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.53.5': + resolution: {integrity: sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.53.5': + resolution: {integrity: sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openharmony-arm64@4.53.5': + resolution: {integrity: sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.53.5': + resolution: {integrity: sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.53.5': + resolution: {integrity: sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.53.5': + resolution: {integrity: sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.53.5': + resolution: {integrity: sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ==} + cpu: [x64] + os: [win32] + + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + + '@sveltejs/acorn-typescript@1.0.8': + resolution: {integrity: sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==} + peerDependencies: + acorn: ^8.9.0 + + '@sveltejs/adapter-auto@7.0.0': + resolution: {integrity: sha512-ImDWaErTOCkRS4Gt+5gZuymKFBobnhChXUZ9lhUZLahUgvA4OOvRzi3sahzYgbxGj5nkA6OV0GAW378+dl/gyw==} + peerDependencies: + '@sveltejs/kit': ^2.0.0 + + '@sveltejs/kit@2.49.2': + resolution: {integrity: sha512-Vp3zX/qlwerQmHMP6x0Ry1oY7eKKRcOWGc2P59srOp4zcqyn+etJyQpELgOi4+ZSUgteX8Y387NuwruLgGXLUQ==} + engines: {node: '>=18.13'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + + '@sveltejs/package@2.5.7': + resolution: {integrity: sha512-qqD9xa9H7TDiGFrF6rz7AirOR8k15qDK/9i4MIE8te4vWsv5GEogPks61rrZcLy+yWph+aI6pIj2MdoK3YI8AQ==} + engines: {node: ^16.14 || >=18} + hasBin: true + peerDependencies: + svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1 + + '@sveltejs/vite-plugin-svelte-inspector@5.0.1': + resolution: {integrity: sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA==} + engines: {node: ^20.19 || ^22.12 || >=24} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^6.0.0-next.0 + svelte: ^5.0.0 + vite: ^6.3.0 || ^7.0.0 + + '@sveltejs/vite-plugin-svelte@6.2.1': + resolution: {integrity: sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==} + engines: {node: ^20.19 || ^22.12 || >=24} + peerDependencies: + svelte: ^5.0.0 + vite: ^6.3.0 || ^7.0.0 + + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@vitest/browser-playwright@4.0.16': + resolution: {integrity: sha512-I2Fy/ANdphi1yI46d15o0M1M4M0UJrUiVKkH5oKeRZZCdPg0fw/cfTKZzv9Ge9eobtJYp4BGblMzXdXH0vcl5g==} + peerDependencies: + playwright: '*' + vitest: 4.0.16 + + '@vitest/browser@4.0.16': + resolution: {integrity: sha512-t4toy8X/YTnjYEPoY0pbDBg3EvDPg1elCDrfc+VupPHwoN/5/FNQ8Z+xBYIaEnOE2vVEyKwqYBzZ9h9rJtZVcg==} + peerDependencies: + vitest: 4.0.16 + + '@vitest/expect@4.0.16': + resolution: {integrity: sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==} + + '@vitest/mocker@4.0.16': + resolution: {integrity: sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==} + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@4.0.16': + resolution: {integrity: sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==} + + '@vitest/runner@4.0.16': + resolution: {integrity: sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==} + + '@vitest/snapshot@4.0.16': + resolution: {integrity: sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==} + + '@vitest/spy@4.0.16': + resolution: {integrity: sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==} + + '@vitest/utils@4.0.16': + resolution: {integrity: sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==} + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + chai@6.2.1: + resolution: {integrity: sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==} + engines: {node: '>=18'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + dedent-js@1.0.1: + resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + devalue@5.6.1: + resolution: {integrity: sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + esbuild@0.27.2: + resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} + engines: {node: '>=18'} + hasBin: true + + esm-env@1.2.2: + resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} + + esrap@2.2.1: + resolution: {integrity: sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + expect-type@1.3.0: + resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + engines: {node: '>=12.0.0'} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + is-reference@3.0.3: + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + lit-element@4.2.1: + resolution: {integrity: sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==} + + lit-html@3.3.1: + resolution: {integrity: sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==} + + lit@3.3.1: + resolution: {integrity: sha512-Ksr/8L3PTapbdXJCk+EJVB78jDodUMaP54gD24W186zGRARvwrsPfS60wae/SSCTCNZVPd1chXqio1qHQmu4NA==} + + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + + package-manager-detector@1.6.0: + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pixelmatch@7.1.0: + resolution: {integrity: sha512-1wrVzJ2STrpmONHKBy228LM1b84msXDUoAzVEl0R8Mz4Ce6EPr+IVtxm8+yvrqLYMHswREkjYFaMxnyGnaY3Ng==} + hasBin: true + + playwright-core@1.57.0: + resolution: {integrity: sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==} + engines: {node: '>=18'} + hasBin: true + + playwright@1.57.0: + resolution: {integrity: sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==} + engines: {node: '>=18'} + hasBin: true + + pngjs@7.0.0: + resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} + engines: {node: '>=14.19.0'} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + prettier-plugin-svelte@3.4.1: + resolution: {integrity: sha512-xL49LCloMoZRvSwa6IEdN2GV6cq2IqpYGstYtMT+5wmml1/dClEoI0MZR78MiVPpu6BdQFfN0/y73yO6+br5Pg==} + peerDependencies: + prettier: ^3.0.0 + svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 + + prettier@3.7.4: + resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} + engines: {node: '>=14'} + hasBin: true + + publint@0.3.16: + resolution: {integrity: sha512-MFqyfRLAExPVZdTQFwkAQELzA8idyXzROVOytg6nEJ/GEypXBUmMGrVaID8cTuzRS1U5L8yTOdOJtMXgFUJAeA==} + engines: {node: '>=18'} + hasBin: true + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + + rollup@4.53.5: + resolution: {integrity: sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + set-cookie-parser@2.7.2: + resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-polyfill@0.2.2: + resolution: {integrity: sha512-p63Y4Er5/eMQ9RHg0M0Y64NlsQKpiu6MDdhBXpyywRuWiPywhJTpKJ1iB5K2hJEbFZ0BnDS7ZkJ+0AfTuL37Rg==} + + signal-utils@0.21.1: + resolution: {integrity: sha512-i9cdLSvVH4j8ql8mz2lyrA93xL499P8wEbIev3ldSriXeUwqh+wM4Q5VPhIZ19gPtIS4BOopJuKB8l1+wH9LCg==} + peerDependencies: + signal-polyfill: ^0.2.0 + + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + + svelte-check@4.3.4: + resolution: {integrity: sha512-DVWvxhBrDsd+0hHWKfjP99lsSXASeOhHJYyuKOFYJcP7ThfSCKgjVarE8XfuMWpS5JV3AlDf+iK1YGGo2TACdw==} + engines: {node: '>= 18.0.0'} + hasBin: true + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: '>=5.0.0' + + svelte2tsx@0.7.45: + resolution: {integrity: sha512-cSci+mYGygYBHIZLHlm/jYlEc1acjAHqaQaDFHdEBpUueM9kSTnPpvPtSl5VkJOU1qSJ7h1K+6F/LIUYiqC8VA==} + peerDependencies: + svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 + typescript: ^4.9.4 || ^5.0.0 + + svelte@5.46.0: + resolution: {integrity: sha512-ZhLtvroYxUxr+HQJfMZEDRsGsmU46x12RvAv/zi9584f5KOX7bUrEbhPJ7cKFmUvZTJXi/CFZUYwDC6M1FigPw==} + engines: {node: '>=18'} + + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tinyrainbow@3.0.3: + resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} + engines: {node: '>=14.0.0'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + vite@7.3.0: + resolution: {integrity: sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitefu@1.1.1: + resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 + peerDependenciesMeta: + vite: + optional: true + + vitest-browser-svelte@2.0.1: + resolution: {integrity: sha512-z7GFio7vxaOolY+xwPUMEKuwL4KcPzB8+bepA9F0Phqag/TJ4j7IAGSwm4Y/FBh7KznsP+7aEIllMay0qDpFXw==} + peerDependencies: + svelte: ^3 || ^4 || ^5 || ^5.0.0-next.0 + vitest: ^4.0.0 + + vitest@4.0.16: + resolution: {integrity: sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 4.0.16 + '@vitest/browser-preview': 4.0.16 + '@vitest/browser-webdriverio': 4.0.16 + '@vitest/ui': 4.0.16 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@opentelemetry/api': + optional: true + '@types/node': + optional: true + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + 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 + + zimmerframe@1.1.4: + resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} + +snapshots: + + '@a2ui/lit@file:../lit(signal-polyfill@0.2.2)': + dependencies: + '@lit-labs/signals': 0.1.3 + '@lit/context': 1.1.6 + lit: 3.3.1 + markdown-it: 14.1.0 + signal-utils: 0.21.1(signal-polyfill@0.2.2) + transitivePeerDependencies: + - signal-polyfill + + '@esbuild/aix-ppc64@0.27.2': + optional: true + + '@esbuild/android-arm64@0.27.2': + optional: true + + '@esbuild/android-arm@0.27.2': + optional: true + + '@esbuild/android-x64@0.27.2': + optional: true + + '@esbuild/darwin-arm64@0.27.2': + optional: true + + '@esbuild/darwin-x64@0.27.2': + optional: true + + '@esbuild/freebsd-arm64@0.27.2': + optional: true + + '@esbuild/freebsd-x64@0.27.2': + optional: true + + '@esbuild/linux-arm64@0.27.2': + optional: true + + '@esbuild/linux-arm@0.27.2': + optional: true + + '@esbuild/linux-ia32@0.27.2': + optional: true + + '@esbuild/linux-loong64@0.27.2': + optional: true + + '@esbuild/linux-mips64el@0.27.2': + optional: true + + '@esbuild/linux-ppc64@0.27.2': + optional: true + + '@esbuild/linux-riscv64@0.27.2': + optional: true + + '@esbuild/linux-s390x@0.27.2': + optional: true + + '@esbuild/linux-x64@0.27.2': + optional: true + + '@esbuild/netbsd-arm64@0.27.2': + optional: true + + '@esbuild/netbsd-x64@0.27.2': + optional: true + + '@esbuild/openbsd-arm64@0.27.2': + optional: true + + '@esbuild/openbsd-x64@0.27.2': + optional: true + + '@esbuild/openharmony-arm64@0.27.2': + optional: true + + '@esbuild/sunos-x64@0.27.2': + optional: true + + '@esbuild/win32-arm64@0.27.2': + optional: true + + '@esbuild/win32-ia32@0.27.2': + optional: true + + '@esbuild/win32-x64@0.27.2': + optional: true + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@lit-labs/signals@0.1.3': + dependencies: + lit: 3.3.1 + signal-polyfill: 0.2.2 + + '@lit-labs/ssr-dom-shim@1.4.0': {} + + '@lit/context@1.1.6': + dependencies: + '@lit/reactive-element': 2.1.1 + + '@lit/reactive-element@2.1.1': + dependencies: + '@lit-labs/ssr-dom-shim': 1.4.0 + + '@polka/url@1.0.0-next.29': {} + + '@publint/pack@0.1.2': {} + + '@rollup/rollup-android-arm-eabi@4.53.5': + optional: true + + '@rollup/rollup-android-arm64@4.53.5': + optional: true + + '@rollup/rollup-darwin-arm64@4.53.5': + optional: true + + '@rollup/rollup-darwin-x64@4.53.5': + optional: true + + '@rollup/rollup-freebsd-arm64@4.53.5': + optional: true + + '@rollup/rollup-freebsd-x64@4.53.5': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.53.5': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.53.5': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.53.5': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.53.5': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.53.5': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.53.5': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.53.5': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.53.5': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.53.5': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.53.5': + optional: true + + '@rollup/rollup-linux-x64-musl@4.53.5': + optional: true + + '@rollup/rollup-openharmony-arm64@4.53.5': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.53.5': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.53.5': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.53.5': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.53.5': + optional: true + + '@standard-schema/spec@1.1.0': {} + + '@sveltejs/acorn-typescript@1.0.8(acorn@8.15.0)': + dependencies: + acorn: 8.15.0 + + '@sveltejs/adapter-auto@7.0.0(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0))': + dependencies: + '@sveltejs/kit': 2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0) + + '@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0)': + dependencies: + '@standard-schema/spec': 1.1.0 + '@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0) + '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.46.0)(vite@7.3.0) + '@types/cookie': 0.6.0 + acorn: 8.15.0 + cookie: 0.6.0 + devalue: 5.6.1 + esm-env: 1.2.2 + kleur: 4.1.5 + magic-string: 0.30.21 + mrmime: 2.0.1 + sade: 1.8.1 + set-cookie-parser: 2.7.2 + sirv: 3.0.2 + svelte: 5.46.0 + vite: 7.3.0 + + '@sveltejs/package@2.5.7(svelte@5.46.0)(typescript@5.9.3)': + dependencies: + chokidar: 5.0.0 + kleur: 4.1.5 + sade: 1.8.1 + semver: 7.7.3 + svelte: 5.46.0 + svelte2tsx: 0.7.45(svelte@5.46.0)(typescript@5.9.3) + transitivePeerDependencies: + - typescript + + '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0)': + dependencies: + '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.46.0)(vite@7.3.0) + debug: 4.4.3 + svelte: 5.46.0 + vite: 7.3.0 + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0)': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0) + debug: 4.4.3 + deepmerge: 4.3.1 + magic-string: 0.30.21 + svelte: 5.46.0 + vite: 7.3.0 + vitefu: 1.1.1(vite@7.3.0) + transitivePeerDependencies: + - supports-color + + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + + '@types/cookie@0.6.0': {} + + '@types/deep-eql@4.0.2': {} + + '@types/estree@1.0.8': {} + + '@types/linkify-it@5.0.0': {} + + '@types/markdown-it@14.1.2': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + + '@types/mdurl@2.0.0': {} + + '@types/trusted-types@2.0.7': {} + + '@vitest/browser-playwright@4.0.16(playwright@1.57.0)(vite@7.3.0)(vitest@4.0.16)': + dependencies: + '@vitest/browser': 4.0.16(vite@7.3.0)(vitest@4.0.16) + '@vitest/mocker': 4.0.16(vite@7.3.0) + playwright: 1.57.0 + tinyrainbow: 3.0.3 + vitest: 4.0.16(@vitest/browser-playwright@4.0.16) + transitivePeerDependencies: + - bufferutil + - msw + - utf-8-validate + - vite + + '@vitest/browser@4.0.16(vite@7.3.0)(vitest@4.0.16)': + dependencies: + '@vitest/mocker': 4.0.16(vite@7.3.0) + '@vitest/utils': 4.0.16 + magic-string: 0.30.21 + pixelmatch: 7.1.0 + pngjs: 7.0.0 + sirv: 3.0.2 + tinyrainbow: 3.0.3 + vitest: 4.0.16(@vitest/browser-playwright@4.0.16) + ws: 8.18.3 + transitivePeerDependencies: + - bufferutil + - msw + - utf-8-validate + - vite + + '@vitest/expect@4.0.16': + dependencies: + '@standard-schema/spec': 1.1.0 + '@types/chai': 5.2.3 + '@vitest/spy': 4.0.16 + '@vitest/utils': 4.0.16 + chai: 6.2.1 + tinyrainbow: 3.0.3 + + '@vitest/mocker@4.0.16(vite@7.3.0)': + dependencies: + '@vitest/spy': 4.0.16 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 7.3.0 + + '@vitest/pretty-format@4.0.16': + dependencies: + tinyrainbow: 3.0.3 + + '@vitest/runner@4.0.16': + dependencies: + '@vitest/utils': 4.0.16 + pathe: 2.0.3 + + '@vitest/snapshot@4.0.16': + dependencies: + '@vitest/pretty-format': 4.0.16 + magic-string: 0.30.21 + pathe: 2.0.3 + + '@vitest/spy@4.0.16': {} + + '@vitest/utils@4.0.16': + dependencies: + '@vitest/pretty-format': 4.0.16 + tinyrainbow: 3.0.3 + + acorn@8.15.0: {} + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + assertion-error@2.0.1: {} + + axobject-query@4.1.0: {} + + chai@6.2.1: {} + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + + clsx@2.1.1: {} + + cookie@0.6.0: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + dedent-js@1.0.1: {} + + deepmerge@4.3.1: {} + + devalue@5.6.1: {} + + entities@4.5.0: {} + + es-module-lexer@1.7.0: {} + + esbuild@0.27.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.2 + '@esbuild/android-arm': 0.27.2 + '@esbuild/android-arm64': 0.27.2 + '@esbuild/android-x64': 0.27.2 + '@esbuild/darwin-arm64': 0.27.2 + '@esbuild/darwin-x64': 0.27.2 + '@esbuild/freebsd-arm64': 0.27.2 + '@esbuild/freebsd-x64': 0.27.2 + '@esbuild/linux-arm': 0.27.2 + '@esbuild/linux-arm64': 0.27.2 + '@esbuild/linux-ia32': 0.27.2 + '@esbuild/linux-loong64': 0.27.2 + '@esbuild/linux-mips64el': 0.27.2 + '@esbuild/linux-ppc64': 0.27.2 + '@esbuild/linux-riscv64': 0.27.2 + '@esbuild/linux-s390x': 0.27.2 + '@esbuild/linux-x64': 0.27.2 + '@esbuild/netbsd-arm64': 0.27.2 + '@esbuild/netbsd-x64': 0.27.2 + '@esbuild/openbsd-arm64': 0.27.2 + '@esbuild/openbsd-x64': 0.27.2 + '@esbuild/openharmony-arm64': 0.27.2 + '@esbuild/sunos-x64': 0.27.2 + '@esbuild/win32-arm64': 0.27.2 + '@esbuild/win32-ia32': 0.27.2 + '@esbuild/win32-x64': 0.27.2 + + esm-env@1.2.2: {} + + esrap@2.2.1: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.8 + + expect-type@1.3.0: {} + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + fsevents@2.3.2: + optional: true + + fsevents@2.3.3: + optional: true + + is-reference@3.0.3: + dependencies: + '@types/estree': 1.0.8 + + kleur@4.1.5: {} + + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + lit-element@4.2.1: + dependencies: + '@lit-labs/ssr-dom-shim': 1.4.0 + '@lit/reactive-element': 2.1.1 + lit-html: 3.3.1 + + lit-html@3.3.1: + dependencies: + '@types/trusted-types': 2.0.7 + + lit@3.3.1: + dependencies: + '@lit/reactive-element': 2.1.1 + lit-element: 4.2.1 + lit-html: 3.3.1 + + locate-character@3.0.0: {} + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + mdurl@2.0.0: {} + + mri@1.2.0: {} + + mrmime@2.0.1: {} + + ms@2.1.3: {} + + nanoid@3.3.11: {} + + obug@2.1.1: {} + + package-manager-detector@1.6.0: {} + + pathe@2.0.3: {} + + picocolors@1.1.1: {} + + picomatch@4.0.3: {} + + pixelmatch@7.1.0: + dependencies: + pngjs: 7.0.0 + + playwright-core@1.57.0: {} + + playwright@1.57.0: + dependencies: + playwright-core: 1.57.0 + optionalDependencies: + fsevents: 2.3.2 + + pngjs@7.0.0: {} + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prettier-plugin-svelte@3.4.1(prettier@3.7.4)(svelte@5.46.0): + dependencies: + prettier: 3.7.4 + svelte: 5.46.0 + + prettier@3.7.4: {} + + publint@0.3.16: + dependencies: + '@publint/pack': 0.1.2 + package-manager-detector: 1.6.0 + picocolors: 1.1.1 + sade: 1.8.1 + + punycode.js@2.3.1: {} + + readdirp@4.1.2: {} + + readdirp@5.0.0: {} + + rollup@4.53.5: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.53.5 + '@rollup/rollup-android-arm64': 4.53.5 + '@rollup/rollup-darwin-arm64': 4.53.5 + '@rollup/rollup-darwin-x64': 4.53.5 + '@rollup/rollup-freebsd-arm64': 4.53.5 + '@rollup/rollup-freebsd-x64': 4.53.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.53.5 + '@rollup/rollup-linux-arm-musleabihf': 4.53.5 + '@rollup/rollup-linux-arm64-gnu': 4.53.5 + '@rollup/rollup-linux-arm64-musl': 4.53.5 + '@rollup/rollup-linux-loong64-gnu': 4.53.5 + '@rollup/rollup-linux-ppc64-gnu': 4.53.5 + '@rollup/rollup-linux-riscv64-gnu': 4.53.5 + '@rollup/rollup-linux-riscv64-musl': 4.53.5 + '@rollup/rollup-linux-s390x-gnu': 4.53.5 + '@rollup/rollup-linux-x64-gnu': 4.53.5 + '@rollup/rollup-linux-x64-musl': 4.53.5 + '@rollup/rollup-openharmony-arm64': 4.53.5 + '@rollup/rollup-win32-arm64-msvc': 4.53.5 + '@rollup/rollup-win32-ia32-msvc': 4.53.5 + '@rollup/rollup-win32-x64-gnu': 4.53.5 + '@rollup/rollup-win32-x64-msvc': 4.53.5 + fsevents: 2.3.3 + + sade@1.8.1: + dependencies: + mri: 1.2.0 + + scule@1.3.0: {} + + semver@7.7.3: {} + + set-cookie-parser@2.7.2: {} + + siginfo@2.0.0: {} + + signal-polyfill@0.2.2: {} + + signal-utils@0.21.1(signal-polyfill@0.2.2): + dependencies: + signal-polyfill: 0.2.2 + + sirv@3.0.2: + dependencies: + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + + source-map-js@1.2.1: {} + + stackback@0.0.2: {} + + std-env@3.10.0: {} + + svelte-check@4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + chokidar: 4.0.3 + fdir: 6.5.0(picomatch@4.0.3) + picocolors: 1.1.1 + sade: 1.8.1 + svelte: 5.46.0 + typescript: 5.9.3 + transitivePeerDependencies: + - picomatch + + svelte2tsx@0.7.45(svelte@5.46.0)(typescript@5.9.3): + dependencies: + dedent-js: 1.0.1 + scule: 1.3.0 + svelte: 5.46.0 + typescript: 5.9.3 + + svelte@5.46.0: + dependencies: + '@jridgewell/remapping': 2.3.5 + '@jridgewell/sourcemap-codec': 1.5.5 + '@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0) + '@types/estree': 1.0.8 + acorn: 8.15.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + clsx: 2.1.1 + devalue: 5.6.1 + esm-env: 1.2.2 + esrap: 2.2.1 + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.21 + zimmerframe: 1.1.4 + + tinybench@2.9.0: {} + + tinyexec@1.0.2: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tinyrainbow@3.0.3: {} + + totalist@3.0.1: {} + + typescript@5.9.3: {} + + uc.micro@2.1.0: {} + + vite@7.3.0: + dependencies: + esbuild: 0.27.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.53.5 + tinyglobby: 0.2.15 + optionalDependencies: + fsevents: 2.3.3 + + vitefu@1.1.1(vite@7.3.0): + optionalDependencies: + vite: 7.3.0 + + vitest-browser-svelte@2.0.1(svelte@5.46.0)(vitest@4.0.16): + dependencies: + svelte: 5.46.0 + vitest: 4.0.16(@vitest/browser-playwright@4.0.16) + + vitest@4.0.16(@vitest/browser-playwright@4.0.16): + dependencies: + '@vitest/expect': 4.0.16 + '@vitest/mocker': 4.0.16(vite@7.3.0) + '@vitest/pretty-format': 4.0.16 + '@vitest/runner': 4.0.16 + '@vitest/snapshot': 4.0.16 + '@vitest/spy': 4.0.16 + '@vitest/utils': 4.0.16 + es-module-lexer: 1.7.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.0.3 + vite: 7.3.0 + why-is-node-running: 2.3.0 + optionalDependencies: + '@vitest/browser-playwright': 4.0.16(playwright@1.57.0)(vite@7.3.0)(vitest@4.0.16) + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + ws@8.18.3: {} + + zimmerframe@1.1.4: {} diff --git a/renderers/svelte/pnpm-workspace.yaml b/renderers/svelte/pnpm-workspace.yaml new file mode 100644 index 00000000..efc037aa --- /dev/null +++ b/renderers/svelte/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +onlyBuiltDependencies: + - esbuild diff --git a/renderers/svelte/src/app.d.ts b/renderers/svelte/src/app.d.ts new file mode 100644 index 00000000..da08e6da --- /dev/null +++ b/renderers/svelte/src/app.d.ts @@ -0,0 +1,13 @@ +// See https://svelte.dev/docs/kit/types#app.d.ts +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface PageState {} + // interface Platform {} + } +} + +export {}; diff --git a/renderers/svelte/src/app.html b/renderers/svelte/src/app.html new file mode 100644 index 00000000..1391f884 --- /dev/null +++ b/renderers/svelte/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/renderers/svelte/src/lib/catalog/AudioPlayer.svelte b/renderers/svelte/src/lib/catalog/AudioPlayer.svelte new file mode 100644 index 00000000..df4c58f0 --- /dev/null +++ b/renderers/svelte/src/lib/catalog/AudioPlayer.svelte @@ -0,0 +1,56 @@ + + + + +
+ +
+ + diff --git a/renderers/svelte/src/lib/catalog/Button.svelte b/renderers/svelte/src/lib/catalog/Button.svelte new file mode 100644 index 00000000..baafbf19 --- /dev/null +++ b/renderers/svelte/src/lib/catalog/Button.svelte @@ -0,0 +1,61 @@ + + + + +
+ +
+ + diff --git a/renderers/svelte/src/lib/catalog/Card.svelte b/renderers/svelte/src/lib/catalog/Card.svelte new file mode 100644 index 00000000..cc33a80d --- /dev/null +++ b/renderers/svelte/src/lib/catalog/Card.svelte @@ -0,0 +1,55 @@ + + + + +
+
+ +
+
+ + diff --git a/renderers/svelte/src/lib/catalog/CheckBox.svelte b/renderers/svelte/src/lib/catalog/CheckBox.svelte new file mode 100644 index 00000000..55892d84 --- /dev/null +++ b/renderers/svelte/src/lib/catalog/CheckBox.svelte @@ -0,0 +1,86 @@ + + + + +
+
+ + + +
+
+ + diff --git a/renderers/svelte/src/lib/catalog/Column.svelte b/renderers/svelte/src/lib/catalog/Column.svelte new file mode 100644 index 00000000..2b3fbc16 --- /dev/null +++ b/renderers/svelte/src/lib/catalog/Column.svelte @@ -0,0 +1,121 @@ + + + + +
+
+ {#each component.properties.children as child (child.id)} + + {/each} +
+
+ + diff --git a/renderers/svelte/src/lib/catalog/DateTimeInput.svelte b/renderers/svelte/src/lib/catalog/DateTimeInput.svelte new file mode 100644 index 00000000..a82a8e8d --- /dev/null +++ b/renderers/svelte/src/lib/catalog/DateTimeInput.svelte @@ -0,0 +1,98 @@ + + + + +
+
+ +
+
+ + diff --git a/renderers/svelte/src/lib/catalog/Divider.svelte b/renderers/svelte/src/lib/catalog/Divider.svelte new file mode 100644 index 00000000..6ea75f0f --- /dev/null +++ b/renderers/svelte/src/lib/catalog/Divider.svelte @@ -0,0 +1,46 @@ + + + + +
+ + diff --git a/renderers/svelte/src/lib/catalog/Icon.svelte b/renderers/svelte/src/lib/catalog/Icon.svelte new file mode 100644 index 00000000..a858672e --- /dev/null +++ b/renderers/svelte/src/lib/catalog/Icon.svelte @@ -0,0 +1,59 @@ + + + + + + {iconName} + + + diff --git a/renderers/svelte/src/lib/catalog/Image.svelte b/renderers/svelte/src/lib/catalog/Image.svelte new file mode 100644 index 00000000..8e0615d8 --- /dev/null +++ b/renderers/svelte/src/lib/catalog/Image.svelte @@ -0,0 +1,82 @@ + + + + +
+ +
+ + diff --git a/renderers/svelte/src/lib/catalog/List.svelte b/renderers/svelte/src/lib/catalog/List.svelte new file mode 100644 index 00000000..d7c5e167 --- /dev/null +++ b/renderers/svelte/src/lib/catalog/List.svelte @@ -0,0 +1,71 @@ + + + + +
+
+ {#each component.properties.children as child (child.id)} + + {/each} +
+
+ + diff --git a/renderers/svelte/src/lib/catalog/Modal.svelte b/renderers/svelte/src/lib/catalog/Modal.svelte new file mode 100644 index 00000000..32a17cba --- /dev/null +++ b/renderers/svelte/src/lib/catalog/Modal.svelte @@ -0,0 +1,140 @@ + + + + +
+ {#if showDialog} + + e.key === 'Escape' && closeDialog()} + > +
+
+ +
+ + +
+
+ {:else} + + +
+ +
+ {/if} +
+ + diff --git a/renderers/svelte/src/lib/catalog/MultipleChoice.svelte b/renderers/svelte/src/lib/catalog/MultipleChoice.svelte new file mode 100644 index 00000000..2fdbbf59 --- /dev/null +++ b/renderers/svelte/src/lib/catalog/MultipleChoice.svelte @@ -0,0 +1,95 @@ + + + + +
+
+ +
+
+ + diff --git a/renderers/svelte/src/lib/catalog/Row.svelte b/renderers/svelte/src/lib/catalog/Row.svelte new file mode 100644 index 00000000..786ff829 --- /dev/null +++ b/renderers/svelte/src/lib/catalog/Row.svelte @@ -0,0 +1,121 @@ + + + + +
+
+ {#each component.properties.children as child (child.id)} + + {/each} +
+
+ + diff --git a/renderers/svelte/src/lib/catalog/Slider.svelte b/renderers/svelte/src/lib/catalog/Slider.svelte new file mode 100644 index 00000000..1c986ac0 --- /dev/null +++ b/renderers/svelte/src/lib/catalog/Slider.svelte @@ -0,0 +1,120 @@ + + + + +
+
+ {#if label} + + {/if} + +
+ + {currentValue} +
+
+
+ + diff --git a/renderers/svelte/src/lib/catalog/Surface.svelte b/renderers/svelte/src/lib/catalog/Surface.svelte new file mode 100644 index 00000000..9d831913 --- /dev/null +++ b/renderers/svelte/src/lib/catalog/Surface.svelte @@ -0,0 +1,119 @@ + + + + +
+ {#if surfaceId && surface?.componentTree} + + {/if} +
+ + diff --git a/renderers/svelte/src/lib/catalog/Tabs.svelte b/renderers/svelte/src/lib/catalog/Tabs.svelte new file mode 100644 index 00000000..13e13b63 --- /dev/null +++ b/renderers/svelte/src/lib/catalog/Tabs.svelte @@ -0,0 +1,118 @@ + + + + +
+
+
+ {#each tabTitles as title, index} + + {/each} +
+ +
+ {#if selectedTab} + + {/if} +
+
+
+ + diff --git a/renderers/svelte/src/lib/catalog/Text.svelte b/renderers/svelte/src/lib/catalog/Text.svelte new file mode 100644 index 00000000..52d3de6e --- /dev/null +++ b/renderers/svelte/src/lib/catalog/Text.svelte @@ -0,0 +1,137 @@ + + + + +
+ {@html resolvedText} +
+ + diff --git a/renderers/svelte/src/lib/catalog/TextField.svelte b/renderers/svelte/src/lib/catalog/TextField.svelte new file mode 100644 index 00000000..e4ac48b8 --- /dev/null +++ b/renderers/svelte/src/lib/catalog/TextField.svelte @@ -0,0 +1,100 @@ + + + + +
+
+ {#if resolvedLabel} + + {/if} + + +
+
+ + diff --git a/renderers/svelte/src/lib/catalog/Video.svelte b/renderers/svelte/src/lib/catalog/Video.svelte new file mode 100644 index 00000000..858e01ed --- /dev/null +++ b/renderers/svelte/src/lib/catalog/Video.svelte @@ -0,0 +1,58 @@ + + + + +
+ + +
+ + diff --git a/renderers/svelte/src/lib/catalog/default.ts b/renderers/svelte/src/lib/catalog/default.ts new file mode 100644 index 00000000..894902f5 --- /dev/null +++ b/renderers/svelte/src/lib/catalog/default.ts @@ -0,0 +1,208 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +import type { Types } from '@a2ui/lit/0.8'; +import type { Catalog } from '../rendering/catalog.js'; + +// Import frequently used components directly +import Row from './Row.svelte'; +import Column from './Column.svelte'; +import Text from './Text.svelte'; + +/** + * Default catalog containing all 18 standard A2UI components. + * Frequently used components are loaded eagerly, others are lazy-loaded. + */ +export const DEFAULT_CATALOG: Catalog = { + // Layout components (eagerly loaded - frequently used) + Row: { + component: () => Row, + props: (node) => { + const properties = (node as Types.RowNode).properties; + return { + alignment: properties.alignment ?? 'stretch', + distribution: properties.distribution ?? 'start' + }; + } + }, + + Column: { + component: () => Column, + props: (node) => { + const properties = (node as Types.ColumnNode).properties; + return { + alignment: properties.alignment ?? 'stretch', + distribution: properties.distribution ?? 'start' + }; + } + }, + + // Content components + Text: { + component: () => Text, + props: (node) => { + const properties = (node as Types.TextNode).properties; + return { + text: properties.text, + usageHint: properties.usageHint ?? null + }; + } + }, + + // Lazy-loaded components + List: { + component: () => import('./List.svelte').then((m) => m.default), + props: (node) => { + const properties = (node as Types.ListNode).properties; + return { + direction: properties.direction ?? 'vertical' + }; + } + }, + + Card: { + component: () => import('./Card.svelte').then((m) => m.default) + }, + + Image: { + component: () => import('./Image.svelte').then((m) => m.default), + props: (node) => { + const properties = (node as Types.ImageNode).properties; + return { + url: properties.url, + usageHint: properties.usageHint ?? null + }; + } + }, + + Icon: { + component: () => import('./Icon.svelte').then((m) => m.default), + props: (node) => { + const properties = (node as Types.IconNode).properties; + return { + name: properties.name + }; + } + }, + + Video: { + component: () => import('./Video.svelte').then((m) => m.default), + props: (node) => { + const properties = (node as Types.VideoNode).properties; + return { + url: properties.url + }; + } + }, + + AudioPlayer: { + component: () => import('./AudioPlayer.svelte').then((m) => m.default), + props: (node) => { + const properties = (node as Types.AudioPlayerNode).properties; + return { + url: properties.url + }; + } + }, + + Button: { + component: () => import('./Button.svelte').then((m) => m.default), + props: (node) => { + const properties = (node as Types.ButtonNode).properties; + return { + action: properties.action ?? null + }; + } + }, + + Divider: { + component: () => import('./Divider.svelte').then((m) => m.default) + }, + + MultipleChoice: { + component: () => import('./MultipleChoice.svelte').then((m) => m.default), + props: (node) => { + const properties = (node as Types.MultipleChoiceNode).properties; + return { + options: properties.options ?? [], + value: properties.selections ?? null, + description: 'Select an item' + }; + } + }, + + TextField: { + component: () => import('./TextField.svelte').then((m) => m.default), + props: (node) => { + const properties = (node as Types.TextFieldNode).properties; + return { + text: properties.text ?? null, + label: properties.label ?? null, + inputType: properties.type ?? null + }; + } + }, + + DateTimeInput: { + component: () => import('./DateTimeInput.svelte').then((m) => m.default), + props: (node) => { + const properties = (node as Types.DateTimeInputNode).properties; + return { + enableDate: properties.enableDate ?? true, + enableTime: properties.enableTime ?? false, + value: properties.value ?? null + }; + } + }, + + CheckBox: { + component: () => import('./CheckBox.svelte').then((m) => m.default), + props: (node) => { + const properties = (node as Types.CheckboxNode).properties; + return { + label: properties.label ?? null, + value: properties.value ?? null + }; + } + }, + + Slider: { + component: () => import('./Slider.svelte').then((m) => m.default), + props: (node) => { + const properties = (node as Types.SliderNode).properties; + return { + value: properties.value ?? null, + minValue: properties.minValue ?? null, + maxValue: properties.maxValue ?? null, + label: '' + }; + } + }, + + Tabs: { + component: () => import('./Tabs.svelte').then((m) => m.default), + props: (node) => { + const properties = (node as Types.TabsNode).properties; + return { + tabs: properties.tabItems ?? [] + }; + } + }, + + Modal: { + component: () => import('./Modal.svelte').then((m) => m.default) + } +}; diff --git a/renderers/svelte/src/lib/catalog/index.ts b/renderers/svelte/src/lib/catalog/index.ts new file mode 100644 index 00000000..33ae3e6e --- /dev/null +++ b/renderers/svelte/src/lib/catalog/index.ts @@ -0,0 +1,45 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +// Default catalog +export { DEFAULT_CATALOG } from './default.js'; + +// Surface component (main entry point for rendering) +export { default as Surface } from './Surface.svelte'; + +// Content components +export { default as Text } from './Text.svelte'; +export { default as Image } from './Image.svelte'; +export { default as Icon } from './Icon.svelte'; +export { default as Video } from './Video.svelte'; +export { default as AudioPlayer } from './AudioPlayer.svelte'; + +// Layout components +export { default as Row } from './Row.svelte'; +export { default as Column } from './Column.svelte'; +export { default as List } from './List.svelte'; +export { default as Card } from './Card.svelte'; +export { default as Tabs } from './Tabs.svelte'; +export { default as Divider } from './Divider.svelte'; + +// Interactive components +export { default as Button } from './Button.svelte'; +export { default as CheckBox } from './CheckBox.svelte'; +export { default as TextField } from './TextField.svelte'; +export { default as DateTimeInput } from './DateTimeInput.svelte'; +export { default as MultipleChoice } from './MultipleChoice.svelte'; +export { default as Slider } from './Slider.svelte'; +export { default as Modal } from './Modal.svelte'; diff --git a/renderers/svelte/src/lib/data/index.ts b/renderers/svelte/src/lib/data/index.ts new file mode 100644 index 00000000..6465443f --- /dev/null +++ b/renderers/svelte/src/lib/data/index.ts @@ -0,0 +1,18 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +export { SvelteMessageProcessor, type DispatchedEvent } from './processor.js'; +export { MarkdownRenderer, markdownRenderer } from './markdown.js'; diff --git a/renderers/svelte/src/lib/data/markdown.ts b/renderers/svelte/src/lib/data/markdown.ts new file mode 100644 index 00000000..521c7cc9 --- /dev/null +++ b/renderers/svelte/src/lib/data/markdown.ts @@ -0,0 +1,79 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +import MarkdownIt from 'markdown-it'; + +/** + * Markdown renderer that applies theme classes to rendered elements. + */ +export class MarkdownRenderer { + private md: MarkdownIt; + + constructor() { + this.md = new MarkdownIt({ + html: false, + linkify: true, + typographer: true + }); + } + + /** + * Render markdown to HTML with optional theme class mappings. + * @param content The markdown content to render + * @param classMap Optional mapping of HTML tags to CSS classes + */ + render(content: string, classMap?: Record): string { + let html = this.md.render(content); + + if (classMap) { + // Apply classes to HTML tags + for (const [tag, classes] of Object.entries(classMap)) { + if (classes && classes.length > 0) { + const classString = classes.join(' '); + // Match opening tags and add classes + const regex = new RegExp(`<${tag}(?=[\\s>])`, 'gi'); + html = html.replace(regex, `<${tag} class="${classString}"`); + } + } + } + + return html; + } + + /** + * Render markdown inline (without wrapping paragraph tags). + */ + renderInline(content: string, classMap?: Record): string { + let html = this.md.renderInline(content); + + if (classMap) { + for (const [tag, classes] of Object.entries(classMap)) { + if (classes && classes.length > 0) { + const classString = classes.join(' '); + const regex = new RegExp(`<${tag}(?=[\\s>])`, 'gi'); + html = html.replace(regex, `<${tag} class="${classString}"`); + } + } + } + + return html; + } +} + +/** + * Shared markdown renderer instance. + */ +export const markdownRenderer = new MarkdownRenderer(); diff --git a/renderers/svelte/src/lib/data/processor.ts b/renderers/svelte/src/lib/data/processor.ts new file mode 100644 index 00000000..2b88783b --- /dev/null +++ b/renderers/svelte/src/lib/data/processor.ts @@ -0,0 +1,65 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +import { Data, Types } from '@a2ui/lit/0.8'; + +export interface DispatchedEvent { + message: Types.A2UIClientEventMessage; + resolve: (messages: Types.ServerToClientMessage[]) => void; +} + +/** + * Svelte-specific message processor that extends the base A2uiMessageProcessor. + * Provides a callback-based dispatch mechanism for user actions. + */ +export class SvelteMessageProcessor extends Data.A2uiMessageProcessor { + private dispatchCallback?: (event: DispatchedEvent) => void; + + /** + * Register a callback to handle dispatched user action events. + * The callback receives the message and a resolve function to complete the promise. + */ + onDispatch(callback: (event: DispatchedEvent) => void): void { + this.dispatchCallback = callback; + } + + /** + * Override setData to convert null to undefined for proper default handling. + */ + override setData( + node: Types.AnyComponentNode, + relativePath: string, + value: Types.DataValue, + surfaceId?: Types.SurfaceID | null + ): void { + return super.setData(node, relativePath, value, surfaceId ?? undefined); + } + + /** + * Dispatch a user action message and return a promise that resolves + * when the server responds. + */ + dispatch(message: Types.A2UIClientEventMessage): Promise { + return new Promise((resolve) => { + if (this.dispatchCallback) { + this.dispatchCallback({ message, resolve }); + } else { + console.warn('No dispatch callback registered. Call onDispatch() first.'); + resolve([]); + } + }); + } +} diff --git a/renderers/svelte/src/lib/index.ts b/renderers/svelte/src/lib/index.ts new file mode 100644 index 00000000..14d0fb8b --- /dev/null +++ b/renderers/svelte/src/lib/index.ts @@ -0,0 +1,59 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +// Re-export core types from @a2ui/lit +export { Types, Primitives, Styles, Data } from '@a2ui/lit/0.8'; + +// Data module +export { SvelteMessageProcessor, type DispatchedEvent } from './data/index.js'; +export { MarkdownRenderer, markdownRenderer } from './data/index.js'; + +// Rendering module +export { + setA2UIContext, + getProcessor, + getTheme, + getCatalog, + tryGetProcessor, + tryGetTheme, + tryGetCatalog +} from './rendering/index.js'; + +export type { + Catalog, + CatalogEntry, + ComponentLoader, + PropsMapper, + StandardComponentProps +} from './rendering/index.js'; + +export { catalogEntry, Renderer } from './rendering/index.js'; + +// Catalog module +export { DEFAULT_CATALOG, Surface } from './catalog/index.js'; + +// Utility functions +export { + classMap, + styleMap, + mergeClasses, + resolvePrimitive, + resolveString, + resolveNumber, + resolveBoolean, + sendAction, + generateId +} from './utils/index.js'; diff --git a/renderers/svelte/src/lib/rendering/Renderer.svelte b/renderers/svelte/src/lib/rendering/Renderer.svelte new file mode 100644 index 00000000..85143069 --- /dev/null +++ b/renderers/svelte/src/lib/rendering/Renderer.svelte @@ -0,0 +1,100 @@ + + + + +{#if loadError} +
+ {loadError} +
+{:else if LoadedComponent && component} + +{/if} + + diff --git a/renderers/svelte/src/lib/rendering/catalog.ts b/renderers/svelte/src/lib/rendering/catalog.ts new file mode 100644 index 00000000..5c5ad727 --- /dev/null +++ b/renderers/svelte/src/lib/rendering/catalog.ts @@ -0,0 +1,72 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +import type { Types } from '@a2ui/lit/0.8'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type AnyComponent = any; + +/** + * A function that returns a component, either synchronously or as a promise (for lazy loading). + */ +export type ComponentLoader = () => AnyComponent | Promise<{ default: AnyComponent }>; + +/** + * Props mapper function that extracts component-specific props from a component node. + */ +export type PropsMapper = ( + node: T +) => Record; + +/** + * A catalog entry defines how to load and configure a component. + */ +export interface CatalogEntry { + /** + * Function to load the component. Can return a component directly + * or a promise for lazy loading. + */ + component: ComponentLoader; + + /** + * Optional function to extract additional props from the component node. + * These props will be spread onto the component in addition to the standard props. + */ + props?: PropsMapper; +} + +/** + * The catalog maps component type names to their catalog entries. + */ +export type Catalog = Record; + +/** + * Standard props passed to all A2UI components. + */ +export interface StandardComponentProps { + surfaceId: Types.SurfaceID | null; + component: T; + weight: string | number; +} + +/** + * Helper to create a catalog entry with type inference. + */ +export function catalogEntry( + entry: CatalogEntry +): CatalogEntry { + return entry; +} diff --git a/renderers/svelte/src/lib/rendering/context.svelte.ts b/renderers/svelte/src/lib/rendering/context.svelte.ts new file mode 100644 index 00000000..e13b3829 --- /dev/null +++ b/renderers/svelte/src/lib/rendering/context.svelte.ts @@ -0,0 +1,92 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +import { getContext, setContext } from 'svelte'; +import type { SvelteMessageProcessor } from '../data/processor.js'; +import type { Types } from '@a2ui/lit/0.8'; +import type { Catalog } from './catalog.js'; + +const PROCESSOR_KEY = Symbol('a2ui-processor'); +const THEME_KEY = Symbol('a2ui-theme'); +const CATALOG_KEY = Symbol('a2ui-catalog'); + +/** + * Set up the A2UI context for child components. + * Call this in your root Surface component. + */ +export function setA2UIContext( + processor: SvelteMessageProcessor, + theme: Types.Theme, + catalog: Catalog +): void { + setContext(PROCESSOR_KEY, processor); + setContext(THEME_KEY, theme); + setContext(CATALOG_KEY, catalog); +} + +/** + * Get the message processor from context. + */ +export function getProcessor(): SvelteMessageProcessor { + const processor = getContext(PROCESSOR_KEY); + if (!processor) { + throw new Error('A2UI processor not found in context. Make sure to wrap your component tree with Surface.'); + } + return processor; +} + +/** + * Get the theme from context. + */ +export function getTheme(): Types.Theme { + const theme = getContext(THEME_KEY); + if (!theme) { + throw new Error('A2UI theme not found in context. Make sure to wrap your component tree with Surface.'); + } + return theme; +} + +/** + * Get the component catalog from context. + */ +export function getCatalog(): Catalog { + const catalog = getContext(CATALOG_KEY); + if (!catalog) { + throw new Error('A2UI catalog not found in context. Make sure to wrap your component tree with Surface.'); + } + return catalog; +} + +/** + * Try to get the processor, returning undefined if not in context. + */ +export function tryGetProcessor(): SvelteMessageProcessor | undefined { + return getContext(PROCESSOR_KEY); +} + +/** + * Try to get the theme, returning undefined if not in context. + */ +export function tryGetTheme(): Types.Theme | undefined { + return getContext(THEME_KEY); +} + +/** + * Try to get the catalog, returning undefined if not in context. + */ +export function tryGetCatalog(): Catalog | undefined { + return getContext(CATALOG_KEY); +} diff --git a/renderers/svelte/src/lib/rendering/index.ts b/renderers/svelte/src/lib/rendering/index.ts new file mode 100644 index 00000000..c1470370 --- /dev/null +++ b/renderers/svelte/src/lib/rendering/index.ts @@ -0,0 +1,37 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +export { + setA2UIContext, + getProcessor, + getTheme, + getCatalog, + tryGetProcessor, + tryGetTheme, + tryGetCatalog +} from './context.svelte.js'; + +export type { + Catalog, + CatalogEntry, + ComponentLoader, + PropsMapper, + StandardComponentProps +} from './catalog.js'; + +export { catalogEntry } from './catalog.js'; + +export { default as Renderer } from './Renderer.svelte'; diff --git a/renderers/svelte/src/lib/utils/classes.ts b/renderers/svelte/src/lib/utils/classes.ts new file mode 100644 index 00000000..46cb3a47 --- /dev/null +++ b/renderers/svelte/src/lib/utils/classes.ts @@ -0,0 +1,53 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +/** + * Convert a class map (object with boolean values) to a class string. + * Only classes with truthy values are included. + */ +export function classMap(classes: Record | undefined): string { + if (!classes) return ''; + return Object.entries(classes) + .filter(([, enabled]) => enabled) + .map(([className]) => className) + .join(' '); +} + +/** + * Convert a style object to a CSS style string. + */ +export function styleMap(styles: Record | undefined): string { + if (!styles) return ''; + return Object.entries(styles) + .filter(([, value]) => value !== undefined && value !== '') + .map(([prop, value]) => `${prop}: ${value}`) + .join('; '); +} + +/** + * Merge multiple class maps, with later maps taking precedence. + */ +export function mergeClasses( + ...maps: (Record | undefined)[] +): Record { + const result: Record = {}; + for (const map of maps) { + if (map) { + Object.assign(result, map); + } + } + return result; +} diff --git a/renderers/svelte/src/lib/utils/index.ts b/renderers/svelte/src/lib/utils/index.ts new file mode 100644 index 00000000..d332ae2a --- /dev/null +++ b/renderers/svelte/src/lib/utils/index.ts @@ -0,0 +1,25 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +export { classMap, styleMap, mergeClasses } from './classes.js'; +export { + resolvePrimitive, + resolveString, + resolveNumber, + resolveBoolean, + sendAction, + generateId +} from './primitives.js'; diff --git a/renderers/svelte/src/lib/utils/primitives.ts b/renderers/svelte/src/lib/utils/primitives.ts new file mode 100644 index 00000000..e2032017 --- /dev/null +++ b/renderers/svelte/src/lib/utils/primitives.ts @@ -0,0 +1,148 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +import type { Types, Primitives } from '@a2ui/lit/0.8'; +import type { SvelteMessageProcessor } from '../data/processor.js'; + +/** + * Resolve a primitive value (string, number, or boolean) from either + * a literal value or a data model path. + */ +export function resolvePrimitive( + processor: SvelteMessageProcessor, + component: Types.AnyComponentNode, + surfaceId: Types.SurfaceID | null | undefined, + value: Primitives.StringValue | Primitives.BooleanValue | Primitives.NumberValue | null +): string | number | boolean | null { + if (!value || typeof value !== 'object') { + return null; + } + + // Handle unified 'literal' property (legacy format) + if ('literal' in value && value.literal != null) { + return value.literal; + } + + // Handle path-based values + if (value.path) { + return processor.getData(component, value.path, surfaceId ?? undefined) as + | string + | number + | boolean + | null; + } + + // Handle specific literal types + if ('literalString' in value && value.literalString != null) { + return value.literalString; + } + if ('literalNumber' in value && value.literalNumber != null) { + return value.literalNumber; + } + if ('literalBoolean' in value && value.literalBoolean != null) { + return value.literalBoolean; + } + + return null; +} + +/** + * Resolve a string value specifically. + */ +export function resolveString( + processor: SvelteMessageProcessor, + component: Types.AnyComponentNode, + surfaceId: Types.SurfaceID | null | undefined, + value: Primitives.StringValue | null +): string | null { + const result = resolvePrimitive(processor, component, surfaceId, value); + return result !== null ? String(result) : null; +} + +/** + * Resolve a number value specifically. + */ +export function resolveNumber( + processor: SvelteMessageProcessor, + component: Types.AnyComponentNode, + surfaceId: Types.SurfaceID | null | undefined, + value: Primitives.NumberValue | null +): number | null { + const result = resolvePrimitive(processor, component, surfaceId, value); + return result !== null ? Number(result) : null; +} + +/** + * Resolve a boolean value specifically. + */ +export function resolveBoolean( + processor: SvelteMessageProcessor, + component: Types.AnyComponentNode, + surfaceId: Types.SurfaceID | null | undefined, + value: Primitives.BooleanValue | null +): boolean | null { + const result = resolvePrimitive(processor, component, surfaceId, value); + return result !== null ? Boolean(result) : null; +} + +/** + * Dispatch a user action to the processor. + */ +export function sendAction( + processor: SvelteMessageProcessor, + component: Types.AnyComponentNode, + surfaceId: Types.SurfaceID | null | undefined, + action: Types.Action +): Promise { + const context: Record = {}; + + if (action.context) { + for (const item of action.context) { + if (item.value.literalBoolean != null) { + context[item.key] = item.value.literalBoolean; + } else if (item.value.literalNumber != null) { + context[item.key] = item.value.literalNumber; + } else if (item.value.literalString != null) { + context[item.key] = item.value.literalString; + } else if (item.value.path) { + const path = processor.resolvePath(item.value.path, component.dataContextPath); + const value = processor.getData(component, path, surfaceId ?? undefined); + context[item.key] = value; + } + } + } + + const message: Types.A2UIClientEventMessage = { + userAction: { + name: action.name, + sourceComponentId: component.id, + surfaceId: surfaceId!, + timestamp: new Date().toISOString(), + context + } + }; + + return processor.dispatch(message); +} + +let idCounter = 0; + +/** + * Generate a unique ID with the given prefix. + */ +export function generateId(prefix: string): string { + return `${prefix}-${idCounter++}`; +} diff --git a/renderers/svelte/src/routes/+page.svelte b/renderers/svelte/src/routes/+page.svelte new file mode 100644 index 00000000..9c42926f --- /dev/null +++ b/renderers/svelte/src/routes/+page.svelte @@ -0,0 +1,3 @@ +

Welcome to your library project

+

Create your package using @sveltejs/package and preview/showcase your work with SvelteKit

+

Visit svelte.dev/docs/kit to read the documentation

diff --git a/renderers/svelte/static/favicon.svg b/renderers/svelte/static/favicon.svg new file mode 100644 index 00000000..cc5dc66a --- /dev/null +++ b/renderers/svelte/static/favicon.svg @@ -0,0 +1 @@ +svelte-logo \ No newline at end of file diff --git a/renderers/svelte/svelte.config.js b/renderers/svelte/svelte.config.js new file mode 100644 index 00000000..1295460d --- /dev/null +++ b/renderers/svelte/svelte.config.js @@ -0,0 +1,18 @@ +import adapter from '@sveltejs/adapter-auto'; +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + // Consult https://svelte.dev/docs/kit/integrations + // for more information about preprocessors + preprocess: vitePreprocess(), + + kit: { + // adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list. + // If your environment is not supported, or you settled on a specific environment, switch out the adapter. + // See https://svelte.dev/docs/kit/adapters for more information about adapters. + adapter: adapter() + } +}; + +export default config; diff --git a/renderers/svelte/tsconfig.json b/renderers/svelte/tsconfig.json new file mode 100644 index 00000000..e7c4a9a6 --- /dev/null +++ b/renderers/svelte/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "rewriteRelativeImportExtensions": true, + "allowJs": true, + "checkJs": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "module": "NodeNext", + "moduleResolution": "NodeNext" + } +} diff --git a/renderers/svelte/vite.config.ts b/renderers/svelte/vite.config.ts new file mode 100644 index 00000000..e6d7c798 --- /dev/null +++ b/renderers/svelte/vite.config.ts @@ -0,0 +1,41 @@ +import { defineConfig } from 'vitest/config'; +import { playwright } from '@vitest/browser-playwright'; +import { sveltekit } from '@sveltejs/kit/vite'; + +export default defineConfig({ + plugins: [sveltekit()], + + test: { + expect: { requireAssertions: true }, + + projects: [ + { + extends: './vite.config.ts', + + test: { + name: 'client', + + browser: { + enabled: true, + provider: playwright(), + instances: [{ browser: 'chromium', headless: true }] + }, + + include: ['src/**/*.svelte.{test,spec}.{js,ts}'], + exclude: ['src/lib/server/**'] + } + }, + + { + extends: './vite.config.ts', + + test: { + name: 'server', + environment: 'node', + include: ['src/**/*.{test,spec}.{js,ts}'], + exclude: ['src/**/*.svelte.{test,spec}.{js,ts}'] + } + } + ] + } +}); From c184011a3c4c2344a77921458c9d2c72b9bf06dc Mon Sep 17 00:00:00 2001 From: Michele Preziuso Date: Fri, 19 Dec 2025 15:28:23 +0000 Subject: [PATCH 2/6] feat: svelte: restaurant demo --- .../svelte/projects/restaurant/.gitignore | 24 ++ .../client/svelte/projects/restaurant/.npmrc | 1 + .../projects/restaurant/.prettierignore | 9 + .../svelte/projects/restaurant/.prettierrc | 17 + .../svelte/projects/restaurant/README.md | 38 ++ .../projects/restaurant/e2e/demo.test.ts | 6 + .../svelte/projects/restaurant/package.json | 42 +++ .../projects/restaurant/playwright.config.ts | 6 + .../svelte/projects/restaurant/src/app.css | 113 ++++++ .../svelte/projects/restaurant/src/app.d.ts | 13 + .../svelte/projects/restaurant/src/app.html | 20 + .../projects/restaurant/src/demo.spec.ts | 7 + .../projects/restaurant/src/hooks.server.ts | 39 ++ .../restaurant/src/lib/assets/favicon.svg | 1 + .../projects/restaurant/src/lib/config.ts | 28 ++ .../projects/restaurant/src/lib/index.ts | 1 + .../projects/restaurant/src/lib/theme.ts | 342 +++++++++++++++++ .../restaurant/src/routes/+layout.svelte | 28 ++ .../restaurant/src/routes/+page.svelte | 351 ++++++++++++++++++ .../restaurant/src/routes/page.svelte.spec.ts | 13 + .../projects/restaurant/static/hero.png | Bin 0 -> 303595 bytes .../projects/restaurant/static/robots.txt | 3 + .../projects/restaurant/svelte.config.js | 18 + .../svelte/projects/restaurant/tsconfig.json | 20 + .../svelte/projects/restaurant/vite.config.ts | 41 ++ 25 files changed, 1181 insertions(+) create mode 100644 samples/client/svelte/projects/restaurant/.gitignore create mode 100644 samples/client/svelte/projects/restaurant/.npmrc create mode 100644 samples/client/svelte/projects/restaurant/.prettierignore create mode 100644 samples/client/svelte/projects/restaurant/.prettierrc create mode 100644 samples/client/svelte/projects/restaurant/README.md create mode 100644 samples/client/svelte/projects/restaurant/e2e/demo.test.ts create mode 100644 samples/client/svelte/projects/restaurant/package.json create mode 100644 samples/client/svelte/projects/restaurant/playwright.config.ts create mode 100644 samples/client/svelte/projects/restaurant/src/app.css create mode 100644 samples/client/svelte/projects/restaurant/src/app.d.ts create mode 100644 samples/client/svelte/projects/restaurant/src/app.html create mode 100644 samples/client/svelte/projects/restaurant/src/demo.spec.ts create mode 100644 samples/client/svelte/projects/restaurant/src/hooks.server.ts create mode 100644 samples/client/svelte/projects/restaurant/src/lib/assets/favicon.svg create mode 100644 samples/client/svelte/projects/restaurant/src/lib/config.ts create mode 100644 samples/client/svelte/projects/restaurant/src/lib/index.ts create mode 100644 samples/client/svelte/projects/restaurant/src/lib/theme.ts create mode 100644 samples/client/svelte/projects/restaurant/src/routes/+layout.svelte create mode 100644 samples/client/svelte/projects/restaurant/src/routes/+page.svelte create mode 100644 samples/client/svelte/projects/restaurant/src/routes/page.svelte.spec.ts create mode 100644 samples/client/svelte/projects/restaurant/static/hero.png create mode 100644 samples/client/svelte/projects/restaurant/static/robots.txt create mode 100644 samples/client/svelte/projects/restaurant/svelte.config.js create mode 100644 samples/client/svelte/projects/restaurant/tsconfig.json create mode 100644 samples/client/svelte/projects/restaurant/vite.config.ts diff --git a/samples/client/svelte/projects/restaurant/.gitignore b/samples/client/svelte/projects/restaurant/.gitignore new file mode 100644 index 00000000..bff793d5 --- /dev/null +++ b/samples/client/svelte/projects/restaurant/.gitignore @@ -0,0 +1,24 @@ +test-results +node_modules + +# Output +.output +.vercel +.netlify +.wrangler +/.svelte-kit +/build + +# OS +.DS_Store +Thumbs.db + +# Env +.env +.env.* +!.env.example +!.env.test + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/samples/client/svelte/projects/restaurant/.npmrc b/samples/client/svelte/projects/restaurant/.npmrc new file mode 100644 index 00000000..b6f27f13 --- /dev/null +++ b/samples/client/svelte/projects/restaurant/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/samples/client/svelte/projects/restaurant/.prettierignore b/samples/client/svelte/projects/restaurant/.prettierignore new file mode 100644 index 00000000..7d74fe24 --- /dev/null +++ b/samples/client/svelte/projects/restaurant/.prettierignore @@ -0,0 +1,9 @@ +# Package Managers +package-lock.json +pnpm-lock.yaml +yarn.lock +bun.lock +bun.lockb + +# Miscellaneous +/static/ diff --git a/samples/client/svelte/projects/restaurant/.prettierrc b/samples/client/svelte/projects/restaurant/.prettierrc new file mode 100644 index 00000000..b5132629 --- /dev/null +++ b/samples/client/svelte/projects/restaurant/.prettierrc @@ -0,0 +1,17 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": [ + "prettier-plugin-svelte" + ], + "overrides": [ + { + "files": "*.svelte", + "options": { + "parser": "svelte" + } + } + ] +} diff --git a/samples/client/svelte/projects/restaurant/README.md b/samples/client/svelte/projects/restaurant/README.md new file mode 100644 index 00000000..75842c40 --- /dev/null +++ b/samples/client/svelte/projects/restaurant/README.md @@ -0,0 +1,38 @@ +# sv + +Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```sh +# create a new project in the current directory +npx sv create + +# create a new project in my-app +npx sv create my-app +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```sh +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +To create a production version of your app: + +```sh +npm run build +``` + +You can preview the production build with `npm run preview`. + +> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. diff --git a/samples/client/svelte/projects/restaurant/e2e/demo.test.ts b/samples/client/svelte/projects/restaurant/e2e/demo.test.ts new file mode 100644 index 00000000..9985ce11 --- /dev/null +++ b/samples/client/svelte/projects/restaurant/e2e/demo.test.ts @@ -0,0 +1,6 @@ +import { expect, test } from '@playwright/test'; + +test('home page has expected h1', async ({ page }) => { + await page.goto('/'); + await expect(page.locator('h1')).toBeVisible(); +}); diff --git a/samples/client/svelte/projects/restaurant/package.json b/samples/client/svelte/projects/restaurant/package.json new file mode 100644 index 00000000..86e00703 --- /dev/null +++ b/samples/client/svelte/projects/restaurant/package.json @@ -0,0 +1,42 @@ +{ + "name": "restaurant", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "prepare": "svelte-kit sync || echo ''", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "format": "prettier --write .", + "lint": "prettier --check .", + "test:unit": "vitest", + "test": "npm run test:unit -- --run && npm run test:e2e", + "test:e2e": "playwright test" + }, + "dependencies": { + "@a2ui/svelte": "file:../../../../../renderers/svelte", + "@a2ui-samples/lib": "workspace:*" + }, + "devDependencies": { + "@a2a-js/sdk": "^0.3.4", + "@playwright/test": "^1.57.0", + "@sveltejs/adapter-auto": "^7.0.0", + "@sveltejs/kit": "^2.49.1", + "@sveltejs/vite-plugin-svelte": "^6.2.1", + "@types/uuid": "^10.0.0", + "@vitest/browser-playwright": "^4.0.15", + "playwright": "^1.57.0", + "prettier": "^3.7.4", + "prettier-plugin-svelte": "^3.4.0", + "svelte": "^5.45.6", + "svelte-check": "^4.3.4", + "typescript": "^5.9.3", + "uuid": "^13.0.0", + "vite": "^7.2.6", + "vitest": "^4.0.15", + "vitest-browser-svelte": "^2.0.1" + } +} diff --git a/samples/client/svelte/projects/restaurant/playwright.config.ts b/samples/client/svelte/projects/restaurant/playwright.config.ts new file mode 100644 index 00000000..8f5062c2 --- /dev/null +++ b/samples/client/svelte/projects/restaurant/playwright.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from '@playwright/test'; + +export default defineConfig({ + webServer: { command: 'npm run build && npm run preview', port: 4173 }, + testDir: 'e2e' +}); diff --git a/samples/client/svelte/projects/restaurant/src/app.css b/samples/client/svelte/projects/restaurant/src/app.css new file mode 100644 index 00000000..deb450ec --- /dev/null +++ b/samples/client/svelte/projects/restaurant/src/app.css @@ -0,0 +1,113 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +/* Import base styles from shared lib */ +@import '@a2ui-samples/lib/styles/base.css'; + +/* Restaurant-specific overrides */ +:root { + /* Override color palettes to match Angular restaurant */ + --n-100: #ffffff; + --n-99: #fcfcfc; + --n-98: #f9f9f9; + --n-95: #f1f1f1; + --n-90: #e2e2e2; + --n-80: #c6c6c6; + --n-70: #ababab; + --n-60: #919191; + --n-50: #777777; + --n-40: #5e5e5e; + --n-35: #525252; + --n-30: #474747; + --n-25: #3b3b3b; + --n-20: #303030; + --n-15: #262626; + --n-10: #1b1b1b; + --n-5: #111111; + --n-0: #000000; + + --p-100: #ffffff; + --p-99: #fffbff; + --p-98: #fcf8ff; + --p-95: #f2efff; + --p-90: #e1e0ff; + --p-80: #c0c1ff; + --p-70: #a0a3ff; + --p-60: #8487ea; + --p-50: #6a6dcd; + --p-40: #5154b3; + --p-35: #4447a6; + --p-30: #383b99; + --p-25: #2c2e8d; + --p-20: #202182; + --p-15: #131178; + --p-10: #06006c; + --p-5: #03004d; + --p-0: #000000; + + --font-family: 'Outfit', 'Helvetica Neue', Helvetica, Arial, sans-serif; + --font-family-flex: 'Outfit', 'Helvetica Neue', Helvetica, Arial, sans-serif; +} + +/* Restaurant-specific background */ +html, +body { + --color-scheme: light; + color-scheme: var(--color-scheme); + container-type: inline-size; + + background: radial-gradient( + at 0% 0%, + light-dark(rgba(161, 196, 253, 0.3), rgba(6, 182, 212, 0.15)) 0px, + transparent 50% + ), + radial-gradient( + at 100% 0%, + light-dark(rgba(255, 226, 226, 0.3), rgba(59, 130, 246, 0.15)) 0px, + transparent 50% + ), + radial-gradient( + at 100% 100%, + light-dark(rgba(162, 210, 255, 0.3), rgba(20, 184, 166, 0.15)) 0px, + transparent 50% + ), + radial-gradient( + at 0% 100%, + light-dark(rgba(255, 200, 221, 0.3), rgba(99, 102, 241, 0.15)) 0px, + transparent 50% + ), + linear-gradient( + 120deg, + light-dark(#f0f4f8, #0f172a) 0%, + light-dark(#e2e8f0, #1e293b) 100% + ); +} + +/* Manual overrides via toggle */ +body.light { + --color-scheme: light; +} + +body.dark { + --color-scheme: dark; +} + +@media (prefers-color-scheme: dark) { + html, + body { + --color-scheme: dark; + } +} diff --git a/samples/client/svelte/projects/restaurant/src/app.d.ts b/samples/client/svelte/projects/restaurant/src/app.d.ts new file mode 100644 index 00000000..da08e6da --- /dev/null +++ b/samples/client/svelte/projects/restaurant/src/app.d.ts @@ -0,0 +1,13 @@ +// See https://svelte.dev/docs/kit/types#app.d.ts +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface PageState {} + // interface Platform {} + } +} + +export {}; diff --git a/samples/client/svelte/projects/restaurant/src/app.html b/samples/client/svelte/projects/restaurant/src/app.html new file mode 100644 index 00000000..70a5b131 --- /dev/null +++ b/samples/client/svelte/projects/restaurant/src/app.html @@ -0,0 +1,20 @@ + + + + + + Restaurant Finder + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/samples/client/svelte/projects/restaurant/src/demo.spec.ts b/samples/client/svelte/projects/restaurant/src/demo.spec.ts new file mode 100644 index 00000000..e07cbbd7 --- /dev/null +++ b/samples/client/svelte/projects/restaurant/src/demo.spec.ts @@ -0,0 +1,7 @@ +import { describe, it, expect } from 'vitest'; + +describe('sum test', () => { + it('adds 1 + 2 to equal 3', () => { + expect(1 + 2).toBe(3); + }); +}); diff --git a/samples/client/svelte/projects/restaurant/src/hooks.server.ts b/samples/client/svelte/projects/restaurant/src/hooks.server.ts new file mode 100644 index 00000000..ff30a3eb --- /dev/null +++ b/samples/client/svelte/projects/restaurant/src/hooks.server.ts @@ -0,0 +1,39 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +import type { Handle } from '@sveltejs/kit'; +import { sendA2AMessage } from '@a2ui-samples/lib/middleware'; + +const SERVER_URL = 'http://localhost:10002'; + +export const handle: Handle = async ({ event, resolve }) => { + if (event.url.pathname === '/a2a' && event.request.method === 'POST') { + try { + const body = await event.request.text(); + const result = await sendA2AMessage(SERVER_URL, body); + return new Response(JSON.stringify(result), { + headers: { 'Content-Type': 'application/json' } + }); + } catch (error) { + console.error('A2A Error:', error); + return new Response(JSON.stringify({ error: String(error) }), { + status: 500, + headers: { 'Content-Type': 'application/json' } + }); + } + } + return resolve(event); +}; diff --git a/samples/client/svelte/projects/restaurant/src/lib/assets/favicon.svg b/samples/client/svelte/projects/restaurant/src/lib/assets/favicon.svg new file mode 100644 index 00000000..cc5dc66a --- /dev/null +++ b/samples/client/svelte/projects/restaurant/src/lib/assets/favicon.svg @@ -0,0 +1 @@ +svelte-logo \ No newline at end of file diff --git a/samples/client/svelte/projects/restaurant/src/lib/config.ts b/samples/client/svelte/projects/restaurant/src/lib/config.ts new file mode 100644 index 00000000..5ebd8f96 --- /dev/null +++ b/samples/client/svelte/projects/restaurant/src/lib/config.ts @@ -0,0 +1,28 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +export const config = { + title: 'Restaurant Finder', + serverUrl: 'http://localhost:10002', + placeholder: 'Top 5 Chinese restaurants in New York.', + heroImage: '/hero.png', + loadingMessages: [ + 'Finding the best spots...', + 'Checking reviews...', + 'Looking for open tables...', + 'Almost there...' + ] +}; diff --git a/samples/client/svelte/projects/restaurant/src/lib/index.ts b/samples/client/svelte/projects/restaurant/src/lib/index.ts new file mode 100644 index 00000000..856f2b6c --- /dev/null +++ b/samples/client/svelte/projects/restaurant/src/lib/index.ts @@ -0,0 +1 @@ +// place files you want to import through the `$lib` alias in this folder. diff --git a/samples/client/svelte/projects/restaurant/src/lib/theme.ts b/samples/client/svelte/projects/restaurant/src/lib/theme.ts new file mode 100644 index 00000000..fac31e5c --- /dev/null +++ b/samples/client/svelte/projects/restaurant/src/lib/theme.ts @@ -0,0 +1,342 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +import type { Types } from '@a2ui/svelte'; + +const heading = { + 'typography-f-sf': true, + 'typography-fs-n': true, + 'typography-w-500': true, + 'layout-mt-0': true, + 'layout-mb-2': true +}; + +const p = { + 'typography-f-s': true, + 'typography-fs-n': true, + 'typography-w-400': true, + 'layout-m-0': true, + 'typography-sz-bm': true, + 'layout-as-n': true, + 'color-c-n10': true +}; + +const a = { + 'typography-f-sf': true, + 'typography-fs-n': true, + 'typography-w-500': true, + 'layout-as-n': true, + 'layout-dis-iflx': true, + 'layout-al-c': true, + 'typography-td-none': true, + 'color-c-p40': true +}; + +const orderedList = { + 'typography-f-s': true, + 'typography-fs-n': true, + 'typography-w-400': true, + 'layout-m-0': true, + 'typography-sz-bm': true, + 'layout-as-n': true, + 'color-c-n10': true +}; + +const unorderedList = { ...orderedList }; +const listItem = { ...orderedList }; + +export const theme: Types.Theme = { + elements: { + a: {}, + audio: {}, + body: {}, + button: {}, + h1: {}, + h2: {}, + h3: {}, + h4: {}, + h5: {}, + iframe: {}, + input: {}, + p: {}, + pre: {}, + textarea: {}, + video: {} + }, + additionalStyles: { + Button: { + '--n-35': 'var(--n-100)', + '--n-10': 'var(--n-0)', + background: + 'linear-gradient(135deg, light-dark(#818cf8, #06b6d4) 0%, light-dark(#a78bfa, #3b82f6) 100%)', + boxShadow: '0 4px 15px rgba(102, 126, 234, 0.4)', + padding: '12px 28px', + textTransform: 'uppercase' + }, + Text: { + h1: { + color: 'transparent', + background: + 'linear-gradient(135deg, light-dark(#818cf8, #06b6d4) 0%, light-dark(#a78bfa, #3b82f6) 100%)', + '-webkit-background-clip': 'text', + 'background-clip': 'text', + '-webkit-text-fill-color': 'transparent' + }, + h2: { + color: 'transparent', + background: + 'linear-gradient(135deg, light-dark(#818cf8, #06b6d4) 0%, light-dark(#a78bfa, #3b82f6) 100%)', + '-webkit-background-clip': 'text', + 'background-clip': 'text', + '-webkit-text-fill-color': 'transparent' + }, + h3: { + color: 'transparent', + background: + 'linear-gradient(135deg, light-dark(#818cf8, #06b6d4) 0%, light-dark(#a78bfa, #3b82f6) 100%)', + '-webkit-background-clip': 'text', + 'background-clip': 'text', + '-webkit-text-fill-color': 'transparent' + }, + h4: {}, + h5: {}, + body: {}, + caption: {} + }, + Card: { + background: + 'radial-gradient(circle at top left, light-dark(transparent, rgba(6, 182, 212, 0.15)), transparent 40%), radial-gradient(circle at bottom right, light-dark(transparent, rgba(139, 92, 246, 0.15)), transparent 40%), linear-gradient(135deg, light-dark(rgba(255, 255, 255, 0.7), rgba(30, 41, 59, 0.7)), light-dark(rgba(255, 255, 255, 0.7), rgba(15, 23, 42, 0.8)))' + }, + TextField: { + '--p-0': 'light-dark(var(--n-0), #1e293b)' + } + }, + components: { + AudioPlayer: {}, + Button: { + 'layout-pt-2': true, + 'layout-pb-2': true, + 'layout-pl-3': true, + 'layout-pr-3': true, + 'border-br-12': true, + 'border-bw-0': true, + 'border-bs-s': true, + 'color-bgc-p30': true, + 'behavior-ho-70': true, + 'typography-w-400': true + }, + Card: { 'border-br-9': true, 'layout-p-4': true, 'color-bgc-n100': true }, + CheckBox: { + element: { + 'layout-m-0': true, + 'layout-mr-2': true, + 'layout-p-2': true, + 'border-br-12': true, + 'border-bw-1': true, + 'border-bs-s': true, + 'color-bgc-p100': true, + 'color-bc-p60': true, + 'color-c-n30': true, + 'color-c-p30': true + }, + label: { + 'color-c-p30': true, + 'typography-f-sf': true, + 'typography-v-r': true, + 'typography-w-400': true, + 'layout-flx-1': true, + 'typography-sz-ll': true + }, + container: { + 'layout-dsp-iflex': true, + 'layout-al-c': true + } + }, + Column: { + 'layout-g-2': true + }, + DateTimeInput: { + container: { + 'typography-sz-bm': true, + 'layout-w-100': true, + 'layout-g-2': true, + 'layout-dsp-flexhor': true, + 'layout-al-c': true, + 'typography-ws-nw': true + }, + label: { + 'color-c-p30': true, + 'typography-sz-bm': true + }, + element: { + 'layout-pt-2': true, + 'layout-pb-2': true, + 'layout-pl-3': true, + 'layout-pr-3': true, + 'border-br-2': true, + 'border-bw-1': true, + 'border-bs-s': true, + 'color-bgc-p100': true, + 'color-bc-p60': true, + 'color-c-n30': true, + 'color-c-p30': true + } + }, + Divider: {}, + Image: { + all: { + 'border-br-5': true, + 'layout-el-cv': true, + 'layout-w-100': true, + 'layout-h-100': true + }, + avatar: { 'is-avatar': true }, + header: {}, + icon: {}, + largeFeature: {}, + mediumFeature: {}, + smallFeature: {} + }, + Icon: {}, + List: { + 'layout-g-4': true, + 'layout-p-2': true + }, + Modal: { + backdrop: { 'color-bbgc-p60_20': true }, + element: { + 'border-br-2': true, + 'color-bgc-p100': true, + 'layout-p-4': true, + 'border-bw-1': true, + 'border-bs-s': true, + 'color-bc-p80': true + } + }, + MultipleChoice: { + container: {}, + label: {}, + element: {} + }, + Row: { + 'layout-g-4': true + }, + Slider: { + container: {}, + label: {}, + element: {} + }, + Tabs: { + container: {}, + controls: { all: {}, selected: {} }, + element: {} + }, + Text: { + all: { + 'layout-w-100': true, + 'layout-g-2': true + }, + h1: { + 'typography-f-sf': true, + 'typography-v-r': true, + 'typography-w-400': true, + 'layout-m-0': true, + 'layout-p-0': true, + 'typography-sz-hs': true + }, + h2: { + 'typography-f-sf': true, + 'typography-v-r': true, + 'typography-w-400': true, + 'layout-m-0': true, + 'layout-p-0': true, + 'typography-sz-tl': true + }, + h3: { + 'typography-f-sf': true, + 'typography-v-r': true, + 'typography-w-400': true, + 'layout-m-0': true, + 'layout-p-0': true, + 'typography-sz-tl': true + }, + h4: { + 'typography-f-sf': true, + 'typography-v-r': true, + 'typography-w-400': true, + 'layout-m-0': true, + 'layout-p-0': true, + 'typography-sz-bl': true + }, + h5: { + 'typography-f-sf': true, + 'typography-v-r': true, + 'typography-w-400': true, + 'layout-m-0': true, + 'layout-p-0': true, + 'typography-sz-bm': true + }, + body: {}, + caption: {} + }, + TextField: { + container: { + 'typography-sz-bm': true, + 'layout-w-100': true, + 'layout-g-2': true, + 'layout-dsp-flexhor': true, + 'layout-al-c': true, + 'typography-ws-nw': true + }, + label: { + 'layout-flx-0': true, + 'color-c-p30': true + }, + element: { + 'typography-sz-bm': true, + 'layout-pt-2': true, + 'layout-pb-2': true, + 'layout-pl-3': true, + 'layout-pr-3': true, + 'border-br-2': true, + 'border-bw-1': true, + 'border-bs-s': true, + 'color-bgc-p100': true, + 'color-bc-p60': true, + 'color-c-n30': true, + 'color-c-p30': true + } + }, + Video: { + 'border-br-5': true, + 'layout-el-cv': true + } + }, + markdown: { + p: Object.keys(p), + h1: Object.keys(heading), + h2: Object.keys(heading), + h3: Object.keys(heading), + h4: Object.keys(heading), + h5: Object.keys(heading), + ul: Object.keys(unorderedList), + ol: Object.keys(orderedList), + li: Object.keys(listItem), + a: Object.keys(a), + strong: [], + em: [] + } +}; diff --git a/samples/client/svelte/projects/restaurant/src/routes/+layout.svelte b/samples/client/svelte/projects/restaurant/src/routes/+layout.svelte new file mode 100644 index 00000000..76bc1945 --- /dev/null +++ b/samples/client/svelte/projects/restaurant/src/routes/+layout.svelte @@ -0,0 +1,28 @@ + + + + + + + + +{@render children()} diff --git a/samples/client/svelte/projects/restaurant/src/routes/+page.svelte b/samples/client/svelte/projects/restaurant/src/routes/+page.svelte new file mode 100644 index 00000000..53f19430 --- /dev/null +++ b/samples/client/svelte/projects/restaurant/src/routes/+page.svelte @@ -0,0 +1,351 @@ + + + + +
+ + + {#if showForm} +
+ {#if config.heroImage} + Restaurant + {/if} +

{config.title}

+
+ + +
+
+ {/if} + + {#if isPending} +
+
+
{loadingText}
+
+ {/if} + + {#if errorMessage} +
{errorMessage}
+ {/if} + + {#if surfaces.size > 0} +
+ {#each [...surfaces] as [surfaceId, surface] (surfaceId)} + + {/each} +
+ {/if} +
+ + diff --git a/samples/client/svelte/projects/restaurant/src/routes/page.svelte.spec.ts b/samples/client/svelte/projects/restaurant/src/routes/page.svelte.spec.ts new file mode 100644 index 00000000..9b564bba --- /dev/null +++ b/samples/client/svelte/projects/restaurant/src/routes/page.svelte.spec.ts @@ -0,0 +1,13 @@ +import { page } from 'vitest/browser'; +import { describe, expect, it } from 'vitest'; +import { render } from 'vitest-browser-svelte'; +import Page from './+page.svelte'; + +describe('/+page.svelte', () => { + it('should render h1', async () => { + render(Page); + + const heading = page.getByRole('heading', { level: 1 }); + await expect.element(heading).toBeInTheDocument(); + }); +}); diff --git a/samples/client/svelte/projects/restaurant/static/hero.png b/samples/client/svelte/projects/restaurant/static/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..419414c99ce7640e2b9678447edc5f19152e7491 GIT binary patch literal 303595 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
  • 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
    Dq-V2}FZtlU@pc8dpoeJ@ewRb{6p@NX? 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

    u%;#g=)sOorn@ycg5CU*( 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�vXz}kK@)jGYX)mdQ~y@F)%h@fa41d8nENb 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 hg7DD)_jYIhfTbR-^PJ24OBlxEf~jaj8 Date: Tue, 23 Dec 2025 16:17:52 +0000 Subject: [PATCH 3/6] fix(svelte): Refactor multiple renderer components to use consistent host/section patterns --- .../svelte/src/lib/catalog/AudioPlayer.svelte | 9 +- renderers/svelte/src/lib/catalog/Card.svelte | 8 + .../svelte/src/lib/catalog/Column.svelte | 24 +- .../src/lib/catalog/DateTimeInput.svelte | 52 +- .../svelte/src/lib/catalog/Divider.svelte | 16 +- renderers/svelte/src/lib/catalog/Icon.svelte | 34 +- renderers/svelte/src/lib/catalog/Image.svelte | 44 +- renderers/svelte/src/lib/catalog/List.svelte | 12 +- renderers/svelte/src/lib/catalog/Modal.svelte | 22 +- .../src/lib/catalog/MultipleChoice.svelte | 16 +- renderers/svelte/src/lib/catalog/Row.svelte | 20 +- .../svelte/src/lib/catalog/Slider.svelte | 56 +- .../svelte/src/lib/catalog/Surface.svelte | 15 + renderers/svelte/src/lib/catalog/Tabs.svelte | 63 +- renderers/svelte/src/lib/catalog/Video.svelte | 12 +- renderers/svelte/src/lib/catalog/default.ts | 3 +- samples/client/svelte/.gitignore | 23 + samples/client/svelte/package-lock.json | 2242 +++++++++++++++++ samples/client/svelte/package.json | 17 + .../client/svelte/projects/restaurant/.npmrc | 1 - .../svelte/projects/restaurant/package.json | 2 +- 21 files changed, 2476 insertions(+), 215 deletions(-) create mode 100644 samples/client/svelte/.gitignore create mode 100644 samples/client/svelte/package-lock.json create mode 100644 samples/client/svelte/package.json delete mode 100644 samples/client/svelte/projects/restaurant/.npmrc diff --git a/renderers/svelte/src/lib/catalog/AudioPlayer.svelte b/renderers/svelte/src/lib/catalog/AudioPlayer.svelte index df4c58f0..e56b716e 100644 --- a/renderers/svelte/src/lib/catalog/AudioPlayer.svelte +++ b/renderers/svelte/src/lib/catalog/AudioPlayer.svelte @@ -37,9 +37,11 @@

    - +
    + +
    diff --git a/renderers/svelte/src/lib/catalog/Column.svelte b/renderers/svelte/src/lib/catalog/Column.svelte index 2b3fbc16..04471da8 100644 --- a/renderers/svelte/src/lib/catalog/Column.svelte +++ b/renderers/svelte/src/lib/catalog/Column.svelte @@ -74,48 +74,48 @@ section { display: flex; flex-direction: column; - width: 100%; - min-height: 100%; + min-width: 100%; + height: 100%; box-sizing: border-box; } - section :global(.align-start) { + section:global(.align-start) { align-items: start; } - section :global(.align-center) { + section:global(.align-center) { align-items: center; } - section :global(.align-end) { + section:global(.align-end) { align-items: end; } - section :global(.align-stretch) { + section:global(.align-stretch) { align-items: stretch; } - section :global(.distribute-start) { + section:global(.distribute-start) { justify-content: start; } - section :global(.distribute-center) { + section:global(.distribute-center) { justify-content: center; } - section :global(.distribute-end) { + section:global(.distribute-end) { justify-content: end; } - section :global(.distribute-spaceBetween) { + section:global(.distribute-spaceBetween) { justify-content: space-between; } - section :global(.distribute-spaceAround) { + section:global(.distribute-spaceAround) { justify-content: space-around; } - section :global(.distribute-spaceEvenly) { + section:global(.distribute-spaceEvenly) { justify-content: space-evenly; } diff --git a/renderers/svelte/src/lib/catalog/DateTimeInput.svelte b/renderers/svelte/src/lib/catalog/DateTimeInput.svelte index a82a8e8d..dcef58a3 100644 --- a/renderers/svelte/src/lib/catalog/DateTimeInput.svelte +++ b/renderers/svelte/src/lib/catalog/DateTimeInput.svelte @@ -52,9 +52,35 @@ return 'date'; }); + let placeholderText = $derived.by(() => { + if (inputType === 'date') return 'Date'; + if (inputType === 'time') return 'Time'; + return 'Date & Time'; + }); + + function padNumber(value: number): string { + return value.toString().padStart(2, '0'); + } + + let formattedValue = $derived.by(() => { + const date = currentValue ? new Date(currentValue) : null; + if (!date || isNaN(date.getTime())) return ''; + + const year = padNumber(date.getFullYear()); + const month = padNumber(date.getMonth() + 1); + const day = padNumber(date.getDate()); + const hours = padNumber(date.getHours()); + const minutes = padNumber(date.getMinutes()); + + if (inputType === 'date') return `${year}-${month}-${day}`; + if (inputType === 'time') return `${hours}:${minutes}`; + return `${year}-${month}-${day}T${hours}:${minutes}`; + }); + let containerClasses = $derived(classMap(theme.components.DateTimeInput?.container)); let inputClasses = $derived(classMap(theme.components.DateTimeInput?.element)); - let containerStyles = $derived(styleMap(theme.additionalStyles?.DateTimeInput)); + let labelClasses = $derived(classMap(theme.components.DateTimeInput?.label)); + let inputStyles = $derived(styleMap(theme.additionalStyles?.DateTimeInput)); function handleInput(event: Event) { const path = value?.path; @@ -68,12 +94,19 @@
    -
    +
    +
    @@ -81,18 +114,17 @@ diff --git a/renderers/svelte/src/lib/catalog/Divider.svelte b/renderers/svelte/src/lib/catalog/Divider.svelte index 6ea75f0f..a015d997 100644 --- a/renderers/svelte/src/lib/catalog/Divider.svelte +++ b/renderers/svelte/src/lib/catalog/Divider.svelte @@ -33,14 +33,22 @@ let dividerStyles = $derived(styleMap(theme.additionalStyles?.Divider)); -
    +
    +
    +
    diff --git a/renderers/svelte/src/lib/catalog/Icon.svelte b/renderers/svelte/src/lib/catalog/Icon.svelte index a858672e..2f5c017e 100644 --- a/renderers/svelte/src/lib/catalog/Icon.svelte +++ b/renderers/svelte/src/lib/catalog/Icon.svelte @@ -31,29 +31,29 @@ let { surfaceId, component, weight, processor, theme, name }: Props = $props(); - let iconName = $derived(resolveString(processor, component, surfaceId, name) ?? ''); + // Convert camelCase to snake_case for Material Symbols compatibility + // e.g., "calendarToday" -> "calendar_today" + function toSnakeCase(str: string): string { + return str.replace(/([A-Z])/g, '_$1').toLowerCase(); + } + + let iconName = $derived.by(() => { + const resolved = resolveString(processor, component, surfaceId, name); + return resolved ? toSnakeCase(resolved) : ''; + }); let iconClasses = $derived(classMap(theme.components.Icon)); let iconStyles = $derived(styleMap(theme.additionalStyles?.Icon)); - - {iconName} - +
    + {iconName} +
    diff --git a/renderers/svelte/src/lib/catalog/Image.svelte b/renderers/svelte/src/lib/catalog/Image.svelte index 8e0615d8..af3d933b 100644 --- a/renderers/svelte/src/lib/catalog/Image.svelte +++ b/renderers/svelte/src/lib/catalog/Image.svelte @@ -28,18 +28,25 @@ theme: Types.Theme; url: Primitives.StringValue | null; usageHint?: Types.ResolvedImage['usageHint'] | null; + fit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down' | null; } - let { surfaceId, component, weight, processor, theme, url, usageHint }: Props = $props(); + let { surfaceId, component, weight, processor, theme, url, usageHint, fit }: Props = $props(); let resolvedUrl = $derived(resolveString(processor, component, surfaceId, url) ?? ''); // eslint-disable-next-line @typescript-eslint/no-explicit-any - let imageClasses = $derived(classMap((theme.components.Image as any)?.all ?? {})); + let imageClasses = $derived.by(() => { + const allClasses = (theme.components.Image as any)?.all ?? {}; + const hintClasses = usageHint ? (theme.components.Image as any)?.[usageHint] ?? {} : {}; + return classMap({ ...allClasses, ...hintClasses }); + }); let imageStyles = $derived(styleMap(theme.additionalStyles?.Image)); -
    - +
    +
    + +
    diff --git a/renderers/svelte/src/lib/catalog/List.svelte b/renderers/svelte/src/lib/catalog/List.svelte index d7c5e167..ee4a7d01 100644 --- a/renderers/svelte/src/lib/catalog/List.svelte +++ b/renderers/svelte/src/lib/catalog/List.svelte @@ -53,19 +53,19 @@ section { display: grid; - gap: 16px; } .horizontal section { display: flex; flex-direction: row; - overflow-x: auto; - scroll-snap-type: x mandatory; + max-width: 100%; + overflow-x: scroll; + overflow-y: hidden; + scrollbar-width: none; } .horizontal section > :global(*) { - flex-shrink: 0; - max-width: 80%; - scroll-snap-align: start; + flex: 1 0 fit-content; + max-width: min(80%, 400px); } diff --git a/renderers/svelte/src/lib/catalog/Modal.svelte b/renderers/svelte/src/lib/catalog/Modal.svelte index 32a17cba..6e414e98 100644 --- a/renderers/svelte/src/lib/catalog/Modal.svelte +++ b/renderers/svelte/src/lib/catalog/Modal.svelte @@ -101,17 +101,7 @@ background: none; } - dialog::backdrop { - background: rgba(0, 0, 0, 0.5); - } - dialog section { - background: white; - padding: 16px; - border-radius: 8px; - min-width: 300px; - max-width: 90vw; - max-height: 90vh; overflow: auto; } @@ -124,17 +114,9 @@ .controls button { padding: 0; background: none; - width: 24px; - height: 24px; + width: 20px; + height: 20px; border: none; cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - } - - .g-icon { - font-family: 'Material Symbols Outlined', sans-serif; - font-size: 20px; } diff --git a/renderers/svelte/src/lib/catalog/MultipleChoice.svelte b/renderers/svelte/src/lib/catalog/MultipleChoice.svelte index 2fdbbf59..82188ad3 100644 --- a/renderers/svelte/src/lib/catalog/MultipleChoice.svelte +++ b/renderers/svelte/src/lib/catalog/MultipleChoice.svelte @@ -52,6 +52,7 @@ let containerClasses = $derived(classMap(theme.components.MultipleChoice?.container)); let selectClasses = $derived(classMap(theme.components.MultipleChoice?.element)); + let labelClasses = $derived(classMap(theme.components.MultipleChoice?.label)); let containerStyles = $derived(styleMap(theme.additionalStyles?.MultipleChoice)); function handleChange(event: Event) { @@ -67,8 +68,8 @@
    - {#each resolvedOptions as option} {/each} @@ -78,18 +79,13 @@ diff --git a/renderers/svelte/src/lib/catalog/Row.svelte b/renderers/svelte/src/lib/catalog/Row.svelte index 786ff829..7fee5d1f 100644 --- a/renderers/svelte/src/lib/catalog/Row.svelte +++ b/renderers/svelte/src/lib/catalog/Row.svelte @@ -79,43 +79,43 @@ box-sizing: border-box; } - section :global(.align-start) { + section:global(.align-start) { align-items: start; } - section :global(.align-center) { + section:global(.align-center) { align-items: center; } - section :global(.align-end) { + section:global(.align-end) { align-items: end; } - section :global(.align-stretch) { + section:global(.align-stretch) { align-items: stretch; } - section :global(.distribute-start) { + section:global(.distribute-start) { justify-content: start; } - section :global(.distribute-center) { + section:global(.distribute-center) { justify-content: center; } - section :global(.distribute-end) { + section:global(.distribute-end) { justify-content: end; } - section :global(.distribute-spaceBetween) { + section:global(.distribute-spaceBetween) { justify-content: space-between; } - section :global(.distribute-spaceAround) { + section:global(.distribute-spaceAround) { justify-content: space-around; } - section :global(.distribute-spaceEvenly) { + section:global(.distribute-spaceEvenly) { justify-content: space-evenly; } diff --git a/renderers/svelte/src/lib/catalog/Slider.svelte b/renderers/svelte/src/lib/catalog/Slider.svelte index 1c986ac0..a75e596d 100644 --- a/renderers/svelte/src/lib/catalog/Slider.svelte +++ b/renderers/svelte/src/lib/catalog/Slider.svelte @@ -68,24 +68,20 @@
    - {#if label} - - {/if} - -
    - - {currentValue} -
    + + + {currentValue}
    @@ -93,28 +89,10 @@ .a2ui-slider-host { display: block; flex: var(--weight); - min-height: 0; - } - - section { - display: flex; - flex-direction: column; - gap: 4px; - } - - .slider-row { - display: flex; - align-items: center; - gap: 12px; - } - - input[type='range'] { - flex: 1; } - .value-display { - min-width: 40px; - text-align: right; - font-variant-numeric: tabular-nums; + input { + display: block; + width: 100%; } diff --git a/renderers/svelte/src/lib/catalog/Surface.svelte b/renderers/svelte/src/lib/catalog/Surface.svelte index 9d831913..a4e60eeb 100644 --- a/renderers/svelte/src/lib/catalog/Surface.svelte +++ b/renderers/svelte/src/lib/catalog/Surface.svelte @@ -103,6 +103,11 @@
    + {#if surface?.styles?.logoUrl} + + {/if} {#if surfaceId && surface?.componentTree} {/if} @@ -116,4 +121,14 @@ flex-direction: column; gap: 16px; } + + #surface-logo { + display: flex; + justify-content: center; + } + + #surface-logo img { + width: 50%; + max-width: 220px; + } diff --git a/renderers/svelte/src/lib/catalog/Tabs.svelte b/renderers/svelte/src/lib/catalog/Tabs.svelte index 13e13b63..af54a08f 100644 --- a/renderers/svelte/src/lib/catalog/Tabs.svelte +++ b/renderers/svelte/src/lib/catalog/Tabs.svelte @@ -16,6 +16,7 @@
    - - +
    + + +
    diff --git a/renderers/svelte/src/lib/catalog/default.ts b/renderers/svelte/src/lib/catalog/default.ts index 894902f5..5e2506d4 100644 --- a/renderers/svelte/src/lib/catalog/default.ts +++ b/renderers/svelte/src/lib/catalog/default.ts @@ -83,7 +83,8 @@ export const DEFAULT_CATALOG: Catalog = { const properties = (node as Types.ImageNode).properties; return { url: properties.url, - usageHint: properties.usageHint ?? null + usageHint: properties.usageHint ?? null, + fit: properties.fit ?? null }; } }, diff --git a/samples/client/svelte/.gitignore b/samples/client/svelte/.gitignore new file mode 100644 index 00000000..3b462cb0 --- /dev/null +++ b/samples/client/svelte/.gitignore @@ -0,0 +1,23 @@ +node_modules + +# Output +.output +.vercel +.netlify +.wrangler +/.svelte-kit +/build + +# OS +.DS_Store +Thumbs.db + +# Env +.env +.env.* +!.env.example +!.env.test + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/samples/client/svelte/package-lock.json b/samples/client/svelte/package-lock.json new file mode 100644 index 00000000..9b9982da --- /dev/null +++ b/samples/client/svelte/package-lock.json @@ -0,0 +1,2242 @@ +{ + "name": "svelte-samples", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "svelte-samples", + "version": "1.0.0", + "workspaces": [ + "projects/lib", + "projects/restaurant" + ] + }, + "../../../renderers/svelte": { + "name": "@a2ui/svelte", + "version": "0.8.1", + "license": "Apache-2.0", + "dependencies": { + "@a2ui/lit": "file:../lit", + "markdown-it": "^14.1.0" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^7.0.0", + "@sveltejs/kit": "^2.49.1", + "@sveltejs/package": "^2.5.7", + "@sveltejs/vite-plugin-svelte": "^6.2.1", + "@types/markdown-it": "^14.1.2", + "@vitest/browser-playwright": "^4.0.15", + "playwright": "^1.57.0", + "prettier": "^3.7.4", + "prettier-plugin-svelte": "^3.4.0", + "publint": "^0.3.15", + "svelte": "^5.45.6", + "svelte-check": "^4.3.4", + "typescript": "^5.9.3", + "vite": "^7.2.6", + "vitest": "^4.0.15", + "vitest-browser-svelte": "^2.0.1" + }, + "peerDependencies": { + "svelte": "^5.0.0" + } + }, + "node_modules/@a2a-js/sdk": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@a2a-js/sdk/-/sdk-0.3.7.tgz", + "integrity": "sha512-1WBghkOjgiKt4rPNje8jlB9VateVQXqyjlc887bY/H8yM82Hlf0+5JW8zB98BPExKAplI5XqtXVH980J6vqi+w==", + "license": "Apache-2.0", + "dependencies": { + "uuid": "^11.1.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "express": "^4.21.2 || ^5.1.0" + }, + "peerDependenciesMeta": { + "express": { + "optional": true + } + } + }, + "node_modules/@a2a-js/sdk/node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "node_modules/@a2ui-samples/lib": { + "resolved": "projects/lib", + "link": true + }, + "node_modules/@a2ui/svelte": { + "resolved": "../../../renderers/svelte", + "link": true + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@playwright/test": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.57.0.tgz", + "integrity": "sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.57.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.54.0.tgz", + "integrity": "sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.54.0.tgz", + "integrity": "sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.54.0.tgz", + "integrity": "sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.54.0.tgz", + "integrity": "sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.54.0.tgz", + "integrity": "sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.54.0.tgz", + "integrity": "sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.54.0.tgz", + "integrity": "sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.54.0.tgz", + "integrity": "sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.54.0.tgz", + "integrity": "sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.54.0.tgz", + "integrity": "sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.54.0.tgz", + "integrity": "sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.54.0.tgz", + "integrity": "sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.54.0.tgz", + "integrity": "sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.54.0.tgz", + "integrity": "sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.54.0.tgz", + "integrity": "sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.54.0.tgz", + "integrity": "sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.54.0.tgz", + "integrity": "sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.54.0.tgz", + "integrity": "sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.54.0.tgz", + "integrity": "sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.54.0.tgz", + "integrity": "sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.54.0.tgz", + "integrity": "sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.54.0.tgz", + "integrity": "sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sveltejs/acorn-typescript": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.8.tgz", + "integrity": "sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8.9.0" + } + }, + "node_modules/@sveltejs/adapter-auto": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-7.0.0.tgz", + "integrity": "sha512-ImDWaErTOCkRS4Gt+5gZuymKFBobnhChXUZ9lhUZLahUgvA4OOvRzi3sahzYgbxGj5nkA6OV0GAW378+dl/gyw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.49.2", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.49.2.tgz", + "integrity": "sha512-Vp3zX/qlwerQmHMP6x0Ry1oY7eKKRcOWGc2P59srOp4zcqyn+etJyQpELgOi4+ZSUgteX8Y387NuwruLgGXLUQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@sveltejs/acorn-typescript": "^1.0.5", + "@types/cookie": "^0.6.0", + "acorn": "^8.14.1", + "cookie": "^0.6.0", + "devalue": "^5.3.2", + "esm-env": "^1.2.2", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^3.0.0" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + } + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.1.tgz", + "integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", + "debug": "^4.4.1", + "deepmerge": "^4.3.1", + "magic-string": "^0.30.17", + "vitefu": "^1.1.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.1.tgz", + "integrity": "sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "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, + "license": "MIT" + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitest/browser": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-4.0.16.tgz", + "integrity": "sha512-t4toy8X/YTnjYEPoY0pbDBg3EvDPg1elCDrfc+VupPHwoN/5/FNQ8Z+xBYIaEnOE2vVEyKwqYBzZ9h9rJtZVcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/mocker": "4.0.16", + "@vitest/utils": "4.0.16", + "magic-string": "^0.30.21", + "pixelmatch": "7.1.0", + "pngjs": "^7.0.0", + "sirv": "^3.0.2", + "tinyrainbow": "^3.0.3", + "ws": "^8.18.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "4.0.16" + } + }, + "node_modules/@vitest/browser-playwright": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.0.16.tgz", + "integrity": "sha512-I2Fy/ANdphi1yI46d15o0M1M4M0UJrUiVKkH5oKeRZZCdPg0fw/cfTKZzv9Ge9eobtJYp4BGblMzXdXH0vcl5g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vitest/browser": "4.0.16", + "@vitest/mocker": "4.0.16", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "playwright": "*", + "vitest": "4.0.16" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": false + } + } + }, + "node_modules/@vitest/expect": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.16.tgz", + "integrity": "sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.0.16", + "@vitest/utils": "4.0.16", + "chai": "^6.2.1", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.16.tgz", + "integrity": "sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.0.16", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.16.tgz", + "integrity": "sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.16.tgz", + "integrity": "sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.0.16", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.16.tgz", + "integrity": "sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.16", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.16.tgz", + "integrity": "sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.16.tgz", + "integrity": "sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.16", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/devalue": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.1.tgz", + "integrity": "sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/esm-env": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esrap": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.1.tgz", + "integrity": "sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "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, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.6" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pixelmatch": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-7.1.0.tgz", + "integrity": "sha512-1wrVzJ2STrpmONHKBy228LM1b84msXDUoAzVEl0R8Mz4Ce6EPr+IVtxm8+yvrqLYMHswREkjYFaMxnyGnaY3Ng==", + "dev": true, + "license": "ISC", + "dependencies": { + "pngjs": "^7.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/playwright": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.57.0.tgz", + "integrity": "sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "playwright-core": "1.57.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.57.0.tgz", + "integrity": "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/pngjs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", + "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.19.0" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prettier": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.4.1.tgz", + "integrity": "sha512-xL49LCloMoZRvSwa6IEdN2GV6cq2IqpYGstYtMT+5wmml1/dClEoI0MZR78MiVPpu6BdQFfN0/y73yO6+br5Pg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/restaurant": { + "resolved": "projects/restaurant", + "link": true + }, + "node_modules/rollup": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.54.0.tgz", + "integrity": "sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.54.0", + "@rollup/rollup-android-arm64": "4.54.0", + "@rollup/rollup-darwin-arm64": "4.54.0", + "@rollup/rollup-darwin-x64": "4.54.0", + "@rollup/rollup-freebsd-arm64": "4.54.0", + "@rollup/rollup-freebsd-x64": "4.54.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.54.0", + "@rollup/rollup-linux-arm-musleabihf": "4.54.0", + "@rollup/rollup-linux-arm64-gnu": "4.54.0", + "@rollup/rollup-linux-arm64-musl": "4.54.0", + "@rollup/rollup-linux-loong64-gnu": "4.54.0", + "@rollup/rollup-linux-ppc64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-musl": "4.54.0", + "@rollup/rollup-linux-s390x-gnu": "4.54.0", + "@rollup/rollup-linux-x64-gnu": "4.54.0", + "@rollup/rollup-linux-x64-musl": "4.54.0", + "@rollup/rollup-openharmony-arm64": "4.54.0", + "@rollup/rollup-win32-arm64-msvc": "4.54.0", + "@rollup/rollup-win32-ia32-msvc": "4.54.0", + "@rollup/rollup-win32-x64-gnu": "4.54.0", + "@rollup/rollup-win32-x64-msvc": "4.54.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "dev": true, + "license": "MIT" + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/svelte": { + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.46.0.tgz", + "integrity": "sha512-ZhLtvroYxUxr+HQJfMZEDRsGsmU46x12RvAv/zi9584f5KOX7bUrEbhPJ7cKFmUvZTJXi/CFZUYwDC6M1FigPw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@sveltejs/acorn-typescript": "^1.0.5", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "clsx": "^2.1.1", + "devalue": "^5.5.0", + "esm-env": "^1.2.1", + "esrap": "^2.2.1", + "is-reference": "^3.0.3", + "locate-character": "^3.0.0", + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/svelte-check": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.3.5.tgz", + "integrity": "sha512-e4VWZETyXaKGhpkxOXP+B/d0Fp/zKViZoJmneZWe/05Y2aqSKj3YN2nLfYPJBQ87WEiY4BQCQ9hWGu9mPT1a1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "chokidar": "^4.0.1", + "fdir": "^6.2.0", + "picocolors": "^1.0.0", + "sade": "^1.7.4" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "engines": { + "node": ">= 18.0.0" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": ">=5.0.0" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyrainbow": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uuid": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.0.tgz", + "integrity": "sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/vite": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", + "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fsevents": { + "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, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/vitefu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz", + "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.16.tgz", + "integrity": "sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vitest/expect": "4.0.16", + "@vitest/mocker": "4.0.16", + "@vitest/pretty-format": "4.0.16", + "@vitest/runner": "4.0.16", + "@vitest/snapshot": "4.0.16", + "@vitest/spy": "4.0.16", + "@vitest/utils": "4.0.16", + "es-module-lexer": "^1.7.0", + "expect-type": "^1.2.2", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^3.10.0", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3", + "vite": "^6.0.0 || ^7.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.0.16", + "@vitest/browser-preview": "4.0.16", + "@vitest/browser-webdriverio": "4.0.16", + "@vitest/ui": "4.0.16", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest-browser-svelte": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/vitest-browser-svelte/-/vitest-browser-svelte-2.0.1.tgz", + "integrity": "sha512-z7GFio7vxaOolY+xwPUMEKuwL4KcPzB8+bepA9F0Phqag/TJ4j7IAGSwm4Y/FBh7KznsP+7aEIllMay0qDpFXw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "svelte": "^3 || ^4 || ^5 || ^5.0.0-next.0", + "vitest": "^4.0.0" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "dev": true, + "license": "MIT", + "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 + } + } + }, + "node_modules/zimmerframe": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", + "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", + "dev": true, + "license": "MIT" + }, + "projects/lib": { + "name": "@a2ui-samples/lib", + "version": "0.0.1", + "dependencies": { + "@a2a-js/sdk": "^0.3.4", + "uuid": "^13.0.0" + }, + "devDependencies": { + "@types/uuid": "^10.0.0", + "typescript": "^5.9.3" + } + }, + "projects/restaurant": { + "version": "0.0.1", + "dependencies": { + "@a2ui-samples/lib": "*", + "@a2ui/svelte": "file:../../../../../renderers/svelte" + }, + "devDependencies": { + "@a2a-js/sdk": "^0.3.4", + "@playwright/test": "^1.57.0", + "@sveltejs/adapter-auto": "^7.0.0", + "@sveltejs/kit": "^2.49.1", + "@sveltejs/vite-plugin-svelte": "^6.2.1", + "@types/uuid": "^10.0.0", + "@vitest/browser-playwright": "^4.0.15", + "playwright": "^1.57.0", + "prettier": "^3.7.4", + "prettier-plugin-svelte": "^3.4.0", + "svelte": "^5.45.6", + "svelte-check": "^4.3.4", + "typescript": "^5.9.3", + "uuid": "^13.0.0", + "vite": "^7.2.6", + "vitest": "^4.0.15", + "vitest-browser-svelte": "^2.0.1" + } + } + } +} diff --git a/samples/client/svelte/package.json b/samples/client/svelte/package.json new file mode 100644 index 00000000..0e58b53f --- /dev/null +++ b/samples/client/svelte/package.json @@ -0,0 +1,17 @@ +{ + "name": "svelte-samples", + "version": "1.0.0", + "description": "Svelte samples based on A2UI", + "private": true, + "license": "", + "author": "Michele Preziuso ", + "type": "commonjs", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "workspaces": [ + "projects/lib", + "projects/restaurant" + ] +} diff --git a/samples/client/svelte/projects/restaurant/.npmrc b/samples/client/svelte/projects/restaurant/.npmrc deleted file mode 100644 index b6f27f13..00000000 --- a/samples/client/svelte/projects/restaurant/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true diff --git a/samples/client/svelte/projects/restaurant/package.json b/samples/client/svelte/projects/restaurant/package.json index 86e00703..e1a738f4 100644 --- a/samples/client/svelte/projects/restaurant/package.json +++ b/samples/client/svelte/projects/restaurant/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "@a2ui/svelte": "file:../../../../../renderers/svelte", - "@a2ui-samples/lib": "workspace:*" + "@a2ui-samples/lib": "*" }, "devDependencies": { "@a2a-js/sdk": "^0.3.4", From 1c8fd4e29e661372567066cd6f49a64e668c741f Mon Sep 17 00:00:00 2001 From: Michele Preziuso Date: Tue, 23 Dec 2025 16:19:27 +0000 Subject: [PATCH 4/6] feat(svelte): shared library --- .../client/svelte/projects/lib/package.json | 18 ++ .../client/svelte/projects/lib/src/index.ts | 17 ++ .../svelte/projects/lib/src/middleware/a2a.ts | 125 +++++++++++++ .../svelte/projects/lib/src/styles/base.css | 175 ++++++++++++++++++ 4 files changed, 335 insertions(+) create mode 100644 samples/client/svelte/projects/lib/package.json create mode 100644 samples/client/svelte/projects/lib/src/index.ts create mode 100644 samples/client/svelte/projects/lib/src/middleware/a2a.ts create mode 100644 samples/client/svelte/projects/lib/src/styles/base.css diff --git a/samples/client/svelte/projects/lib/package.json b/samples/client/svelte/projects/lib/package.json new file mode 100644 index 00000000..26d61cf7 --- /dev/null +++ b/samples/client/svelte/projects/lib/package.json @@ -0,0 +1,18 @@ +{ + "name": "@a2ui-samples/lib", + "version": "0.0.1", + "type": "module", + "exports": { + ".": "./src/index.ts", + "./middleware": "./src/middleware/a2a.ts", + "./styles/*": "./src/styles/*" + }, + "dependencies": { + "@a2a-js/sdk": "^0.3.4", + "uuid": "^13.0.0" + }, + "devDependencies": { + "@types/uuid": "^10.0.0", + "typescript": "^5.9.3" + } +} diff --git a/samples/client/svelte/projects/lib/src/index.ts b/samples/client/svelte/projects/lib/src/index.ts new file mode 100644 index 00000000..36d458bf --- /dev/null +++ b/samples/client/svelte/projects/lib/src/index.ts @@ -0,0 +1,17 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +export * from './middleware/a2a'; diff --git a/samples/client/svelte/projects/lib/src/middleware/a2a.ts b/samples/client/svelte/projects/lib/src/middleware/a2a.ts new file mode 100644 index 00000000..3f7c7ea4 --- /dev/null +++ b/samples/client/svelte/projects/lib/src/middleware/a2a.ts @@ -0,0 +1,125 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +import { A2AClient } from '@a2a-js/sdk/client'; +import type { MessageSendParams, Part, SendMessageSuccessResponse, Task } from '@a2a-js/sdk'; +import { v4 as uuidv4 } from 'uuid'; + +export const A2AUI_MIME_TYPE = 'application/json+a2aui'; + +const fetchWithCustomHeader: typeof fetch = async (url, init) => { + const headers = new Headers(init?.headers); + headers.set('X-A2A-Extensions', 'https://a2ui.org/a2a-extension/a2ui/v0.8'); + + const newInit = { ...init, headers }; + return fetch(url, newInit); +}; + +const isJson = (str: string): boolean => { + try { + const parsed = JSON.parse(str); + return typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed); + } catch { + return false; + } +}; + +// Cache clients per server URL to support multiple backends +const clients = new Map(); + +/** + * Creates or retrieves a cached A2AClient for the given server URL. + */ +export const createOrGetClient = async (serverUrl: string): Promise => { + let client = clients.get(serverUrl); + if (!client) { + // Create a client pointing to the agent's Agent Card URL. + client = await A2AClient.fromCardUrl(`${serverUrl}/.well-known/agent-card.json`, { + fetchImpl: fetchWithCustomHeader + }); + clients.set(serverUrl, client); + } + + return client; +}; + +/** + * Sends a message to the A2A server and returns the A2UI messages. + * Handles both JSON UI events and plain text queries. + */ +export const sendA2AMessage = async ( + serverUrl: string, + body: string +): Promise[]> => { + let sendParams: MessageSendParams; + + if (isJson(body)) { + console.log('[a2a-middleware] Received JSON UI event:', body); + + const clientEvent = JSON.parse(body); + sendParams = { + message: { + messageId: uuidv4(), + role: 'user', + parts: [ + { + kind: 'data', + data: clientEvent, + metadata: { mimeType: A2AUI_MIME_TYPE } + } as Part + ], + kind: 'message' + } + }; + } else { + console.log('[a2a-middleware] Received text query:', body); + sendParams = { + message: { + messageId: uuidv4(), + role: 'user', + parts: [ + { + kind: 'text', + text: body + } + ], + kind: 'message' + } + }; + } + + const a2aClient = await createOrGetClient(serverUrl); + const response = await a2aClient.sendMessage(sendParams); + + if ('error' in response) { + console.error('Error:', response.error.message); + throw new Error(response.error.message); + } + + const result = (response as SendMessageSuccessResponse).result as Task; + if (result.kind === 'task' && result.status.message?.parts) { + // Extract A2UI messages from data parts + const messages: Record[] = []; + for (const part of result.status.message.parts) { + if (part.kind === 'data') { + messages.push(part.data as Record); + } + } + return messages; + } + + return []; +}; diff --git a/samples/client/svelte/projects/lib/src/styles/base.css b/samples/client/svelte/projects/lib/src/styles/base.css new file mode 100644 index 00000000..1923cf17 --- /dev/null +++ b/samples/client/svelte/projects/lib/src/styles/base.css @@ -0,0 +1,175 @@ +/* + Copyright 2025 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +:root { + --bb-grid-size: 4px; + --bb-grid-size-2: calc(var(--bb-grid-size) * 2); + --bb-grid-size-3: calc(var(--bb-grid-size) * 3); + --bb-grid-size-4: calc(var(--bb-grid-size) * 4); + --bb-grid-size-5: calc(var(--bb-grid-size) * 5); + --bb-grid-size-6: calc(var(--bb-grid-size) * 6); + + /* Primary color palette */ + --p-100: #ffffff; + --p-99: #fffbfe; + --p-98: #fef7ff; + --p-95: #f6edff; + --p-90: #eaddff; + --p-80: #d0bcff; + --p-70: #b69df8; + --p-60: #9a82db; + --p-50: #7f67be; + --p-40: #6750a4; + --p-35: #5b4497; + --p-30: #4f378b; + --p-25: #432b7e; + --p-20: #381e72; + --p-15: #2d1166; + --p-10: #21005d; + --p-5: #11002f; + --p-0: #000000; + + /* Neutral palette */ + --n-100: #ffffff; + --n-99: #fffbfe; + --n-98: #fef7ff; + --n-95: #f4eff4; + --n-90: #e6e1e5; + --n-80: #c9c5ca; + --n-70: #aeaaae; + --n-60: #939094; + --n-50: #79767a; + --n-40: #605d62; + --n-35: #545255; + --n-30: #484649; + --n-25: #3d3b3e; + --n-20: #313033; + --n-15: #262528; + --n-10: #1c1b1f; + --n-5: #0f0e11; + --n-0: #000000; + + /* Secondary palette */ + --s-100: #ffffff; + --s-95: #f6edff; + --s-90: #ead5ff; + --s-80: #d4bcf8; + --s-70: #b99ddb; + --s-60: #9e80bf; + --s-50: #8464a3; + --s-40: #6b4a89; + --s-30: #533170; + --s-20: #3b1a58; + --s-10: #250341; + + /* Error palette */ + --e-100: #ffffff; + --e-95: #fceeee; + --e-90: #f9dedc; + --e-80: #f2b8b5; + --e-70: #ec928e; + --e-60: #e46962; + --e-50: #dc362e; + --e-40: #b3261e; + --e-30: #8c1d18; + --e-20: #601410; + --e-10: #370b07; + + --font-family: 'Inter', system-ui, -apple-system, sans-serif; + --font-family-flex: 'Inter', system-ui, -apple-system, sans-serif; +} + +* { + box-sizing: border-box; +} + +html, +body { + margin: 0; + padding: 0; + min-height: 100%; + font-family: var(--font-family); + /* Use system preference by default */ + color-scheme: light dark; + background: light-dark(var(--n-98), var(--n-10)); + color: light-dark(var(--n-10), var(--n-90)); +} + +/* Manual overrides via toggle */ +body.light { + color-scheme: light; +} + +body.dark { + color-scheme: dark; +} + +.g-icon { + font-family: 'Material Symbols Outlined', 'Google Symbols', sans-serif; + font-weight: normal; + font-style: normal; + font-display: optional; + font-size: 20px; + width: 1em; + height: 1em; + user-select: none; + line-height: 1; + letter-spacing: normal; + text-transform: none; + display: inline-block; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-feature-settings: 'liga'; + -webkit-font-smoothing: antialiased; + overflow: hidden; + font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 48, 'ROND' 100; +} + +.g-icon.filled { + font-variation-settings: 'FILL' 1, 'wght' 300, 'GRAD' 0, 'opsz' 48, 'ROND' 100; +} + +.g-icon.filled-heavy { + font-variation-settings: 'FILL' 1, 'wght' 700, 'GRAD' 0, 'opsz' 48, 'ROND' 100; +} + +@keyframes spin { + to { + transform: rotate(360deg); + } +} + +@keyframes pulse { + 0% { + opacity: 0.6; + } + 50% { + opacity: 1; + } + 100% { + opacity: 0.6; + } +} + +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} From 56bc46b40d99096da9e494454152106c9b655764 Mon Sep 17 00:00:00 2001 From: Michele Preziuso Date: Tue, 23 Dec 2025 16:25:33 +0000 Subject: [PATCH 5/6] fix(svelte): use npm as per lit/angular renderers --- renderers/svelte/.npmrc | 1 - renderers/svelte/package-lock.json | 2365 ++++++++++++++++++++++++++ renderers/svelte/pnpm-lock.yaml | 1612 ------------------ renderers/svelte/pnpm-workspace.yaml | 2 - 4 files changed, 2365 insertions(+), 1615 deletions(-) delete mode 100644 renderers/svelte/.npmrc create mode 100644 renderers/svelte/package-lock.json delete mode 100644 renderers/svelte/pnpm-lock.yaml delete mode 100644 renderers/svelte/pnpm-workspace.yaml diff --git a/renderers/svelte/.npmrc b/renderers/svelte/.npmrc deleted file mode 100644 index b6f27f13..00000000 --- a/renderers/svelte/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true diff --git a/renderers/svelte/package-lock.json b/renderers/svelte/package-lock.json new file mode 100644 index 00000000..a34f78ec --- /dev/null +++ b/renderers/svelte/package-lock.json @@ -0,0 +1,2365 @@ +{ + "name": "@a2ui/svelte", + "version": "0.8.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@a2ui/svelte", + "version": "0.8.1", + "license": "Apache-2.0", + "dependencies": { + "@a2ui/lit": "file:../lit", + "markdown-it": "^14.1.0" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^7.0.0", + "@sveltejs/kit": "^2.49.1", + "@sveltejs/package": "^2.5.7", + "@sveltejs/vite-plugin-svelte": "^6.2.1", + "@types/markdown-it": "^14.1.2", + "@vitest/browser-playwright": "^4.0.15", + "playwright": "^1.57.0", + "prettier": "^3.7.4", + "prettier-plugin-svelte": "^3.4.0", + "publint": "^0.3.15", + "svelte": "^5.45.6", + "svelte-check": "^4.3.4", + "typescript": "^5.9.3", + "vite": "^7.2.6", + "vitest": "^4.0.15", + "vitest-browser-svelte": "^2.0.1" + }, + "peerDependencies": { + "svelte": "^5.0.0" + } + }, + "../lit": { + "name": "@a2ui/lit", + "version": "0.8.1", + "license": "Apache-2.0", + "dependencies": { + "@lit-labs/signals": "^0.1.3", + "@lit/context": "^1.1.4", + "lit": "^3.3.1", + "markdown-it": "^14.1.0", + "signal-utils": "^0.21.1" + }, + "devDependencies": { + "@types/markdown-it": "^14.1.2", + "@types/node": "^24.10.1", + "google-artifactregistry-auth": "^3.5.0", + "typescript": "^5.8.3", + "wireit": "^0.15.0-pre.2" + } + }, + "node_modules/@a2ui/lit": { + "resolved": "../lit", + "link": true + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" + }, + "node_modules/@publint/pack": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@publint/pack/-/pack-0.1.2.tgz", + "integrity": "sha512-S+9ANAvUmjutrshV4jZjaiG8XQyuJIZ8a4utWmN/vW1sgQ9IfBnPndwkmQYw53QmouOIytT874u65HEmu6H5jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://bjornlu.com/sponsor" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.54.0.tgz", + "integrity": "sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.54.0.tgz", + "integrity": "sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.54.0.tgz", + "integrity": "sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.54.0.tgz", + "integrity": "sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.54.0.tgz", + "integrity": "sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.54.0.tgz", + "integrity": "sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.54.0.tgz", + "integrity": "sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.54.0.tgz", + "integrity": "sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.54.0.tgz", + "integrity": "sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.54.0.tgz", + "integrity": "sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.54.0.tgz", + "integrity": "sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.54.0.tgz", + "integrity": "sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.54.0.tgz", + "integrity": "sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.54.0.tgz", + "integrity": "sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.54.0.tgz", + "integrity": "sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.54.0.tgz", + "integrity": "sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.54.0.tgz", + "integrity": "sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.54.0.tgz", + "integrity": "sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.54.0.tgz", + "integrity": "sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.54.0.tgz", + "integrity": "sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.54.0.tgz", + "integrity": "sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.54.0.tgz", + "integrity": "sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sveltejs/acorn-typescript": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.8.tgz", + "integrity": "sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8.9.0" + } + }, + "node_modules/@sveltejs/adapter-auto": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-7.0.0.tgz", + "integrity": "sha512-ImDWaErTOCkRS4Gt+5gZuymKFBobnhChXUZ9lhUZLahUgvA4OOvRzi3sahzYgbxGj5nkA6OV0GAW378+dl/gyw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.49.2", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.49.2.tgz", + "integrity": "sha512-Vp3zX/qlwerQmHMP6x0Ry1oY7eKKRcOWGc2P59srOp4zcqyn+etJyQpELgOi4+ZSUgteX8Y387NuwruLgGXLUQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@sveltejs/acorn-typescript": "^1.0.5", + "@types/cookie": "^0.6.0", + "acorn": "^8.14.1", + "cookie": "^0.6.0", + "devalue": "^5.3.2", + "esm-env": "^1.2.2", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^3.0.0" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + } + } + }, + "node_modules/@sveltejs/package": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/@sveltejs/package/-/package-2.5.7.tgz", + "integrity": "sha512-qqD9xa9H7TDiGFrF6rz7AirOR8k15qDK/9i4MIE8te4vWsv5GEogPks61rrZcLy+yWph+aI6pIj2MdoK3YI8AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^5.0.0", + "kleur": "^4.1.5", + "sade": "^1.8.1", + "semver": "^7.5.4", + "svelte2tsx": "~0.7.33" + }, + "bin": { + "svelte-package": "svelte-package.js" + }, + "engines": { + "node": "^16.14 || >=18" + }, + "peerDependencies": { + "svelte": "^3.44.0 || ^4.0.0 || ^5.0.0-next.1" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.1.tgz", + "integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", + "debug": "^4.4.1", + "deepmerge": "^4.3.1", + "magic-string": "^0.30.17", + "vitefu": "^1.1.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.1.tgz", + "integrity": "sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "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, + "license": "MIT" + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitest/browser": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-4.0.16.tgz", + "integrity": "sha512-t4toy8X/YTnjYEPoY0pbDBg3EvDPg1elCDrfc+VupPHwoN/5/FNQ8Z+xBYIaEnOE2vVEyKwqYBzZ9h9rJtZVcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/mocker": "4.0.16", + "@vitest/utils": "4.0.16", + "magic-string": "^0.30.21", + "pixelmatch": "7.1.0", + "pngjs": "^7.0.0", + "sirv": "^3.0.2", + "tinyrainbow": "^3.0.3", + "ws": "^8.18.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "4.0.16" + } + }, + "node_modules/@vitest/browser-playwright": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.0.16.tgz", + "integrity": "sha512-I2Fy/ANdphi1yI46d15o0M1M4M0UJrUiVKkH5oKeRZZCdPg0fw/cfTKZzv9Ge9eobtJYp4BGblMzXdXH0vcl5g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vitest/browser": "4.0.16", + "@vitest/mocker": "4.0.16", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "playwright": "*", + "vitest": "4.0.16" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": false + } + } + }, + "node_modules/@vitest/expect": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.16.tgz", + "integrity": "sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.0.16", + "@vitest/utils": "4.0.16", + "chai": "^6.2.1", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.16.tgz", + "integrity": "sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.0.16", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.16.tgz", + "integrity": "sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.16.tgz", + "integrity": "sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.0.16", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.16.tgz", + "integrity": "sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.16", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.16.tgz", + "integrity": "sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.16.tgz", + "integrity": "sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.16", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/devalue": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.1.tgz", + "integrity": "sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/esm-env": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esrap": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.1.tgz", + "integrity": "sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "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, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.6" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "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, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, + "node_modules/package-manager-detector": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pixelmatch": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-7.1.0.tgz", + "integrity": "sha512-1wrVzJ2STrpmONHKBy228LM1b84msXDUoAzVEl0R8Mz4Ce6EPr+IVtxm8+yvrqLYMHswREkjYFaMxnyGnaY3Ng==", + "dev": true, + "license": "ISC", + "dependencies": { + "pngjs": "^7.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/playwright": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.57.0.tgz", + "integrity": "sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "playwright-core": "1.57.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.57.0.tgz", + "integrity": "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/pngjs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", + "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.19.0" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prettier": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.4.1.tgz", + "integrity": "sha512-xL49LCloMoZRvSwa6IEdN2GV6cq2IqpYGstYtMT+5wmml1/dClEoI0MZR78MiVPpu6BdQFfN0/y73yO6+br5Pg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" + } + }, + "node_modules/publint": { + "version": "0.3.16", + "resolved": "https://registry.npmjs.org/publint/-/publint-0.3.16.tgz", + "integrity": "sha512-MFqyfRLAExPVZdTQFwkAQELzA8idyXzROVOytg6nEJ/GEypXBUmMGrVaID8cTuzRS1U5L8yTOdOJtMXgFUJAeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@publint/pack": "^0.1.2", + "package-manager-detector": "^1.6.0", + "picocolors": "^1.1.1", + "sade": "^1.8.1" + }, + "bin": { + "publint": "src/cli.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://bjornlu.com/sponsor" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/rollup": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.54.0.tgz", + "integrity": "sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.54.0", + "@rollup/rollup-android-arm64": "4.54.0", + "@rollup/rollup-darwin-arm64": "4.54.0", + "@rollup/rollup-darwin-x64": "4.54.0", + "@rollup/rollup-freebsd-arm64": "4.54.0", + "@rollup/rollup-freebsd-x64": "4.54.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.54.0", + "@rollup/rollup-linux-arm-musleabihf": "4.54.0", + "@rollup/rollup-linux-arm64-gnu": "4.54.0", + "@rollup/rollup-linux-arm64-musl": "4.54.0", + "@rollup/rollup-linux-loong64-gnu": "4.54.0", + "@rollup/rollup-linux-ppc64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-musl": "4.54.0", + "@rollup/rollup-linux-s390x-gnu": "4.54.0", + "@rollup/rollup-linux-x64-gnu": "4.54.0", + "@rollup/rollup-linux-x64-musl": "4.54.0", + "@rollup/rollup-openharmony-arm64": "4.54.0", + "@rollup/rollup-win32-arm64-msvc": "4.54.0", + "@rollup/rollup-win32-ia32-msvc": "4.54.0", + "@rollup/rollup-win32-x64-gnu": "4.54.0", + "@rollup/rollup-win32-x64-msvc": "4.54.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "dev": true, + "license": "MIT" + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/svelte": { + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.46.0.tgz", + "integrity": "sha512-ZhLtvroYxUxr+HQJfMZEDRsGsmU46x12RvAv/zi9584f5KOX7bUrEbhPJ7cKFmUvZTJXi/CFZUYwDC6M1FigPw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@sveltejs/acorn-typescript": "^1.0.5", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "clsx": "^2.1.1", + "devalue": "^5.5.0", + "esm-env": "^1.2.1", + "esrap": "^2.2.1", + "is-reference": "^3.0.3", + "locate-character": "^3.0.0", + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/svelte-check": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.3.5.tgz", + "integrity": "sha512-e4VWZETyXaKGhpkxOXP+B/d0Fp/zKViZoJmneZWe/05Y2aqSKj3YN2nLfYPJBQ87WEiY4BQCQ9hWGu9mPT1a1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "chokidar": "^4.0.1", + "fdir": "^6.2.0", + "picocolors": "^1.0.0", + "sade": "^1.7.4" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "engines": { + "node": ">= 18.0.0" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": ">=5.0.0" + } + }, + "node_modules/svelte-check/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/svelte-check/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.46", + "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.46.tgz", + "integrity": "sha512-S++Vw3w47a8rBuhbz4JK0fcGea8tOoX1boT53Aib8+oUO2EKeOG+geXprJVTDfBlvR+IJdf3jIpR2RGwT6paQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "dedent-js": "^1.0.1", + "scule": "^1.3.0" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyrainbow": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, + "node_modules/vite": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", + "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fsevents": { + "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, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/vitefu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz", + "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.16.tgz", + "integrity": "sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vitest/expect": "4.0.16", + "@vitest/mocker": "4.0.16", + "@vitest/pretty-format": "4.0.16", + "@vitest/runner": "4.0.16", + "@vitest/snapshot": "4.0.16", + "@vitest/spy": "4.0.16", + "@vitest/utils": "4.0.16", + "es-module-lexer": "^1.7.0", + "expect-type": "^1.2.2", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^3.10.0", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3", + "vite": "^6.0.0 || ^7.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.0.16", + "@vitest/browser-preview": "4.0.16", + "@vitest/browser-webdriverio": "4.0.16", + "@vitest/ui": "4.0.16", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest-browser-svelte": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/vitest-browser-svelte/-/vitest-browser-svelte-2.0.1.tgz", + "integrity": "sha512-z7GFio7vxaOolY+xwPUMEKuwL4KcPzB8+bepA9F0Phqag/TJ4j7IAGSwm4Y/FBh7KznsP+7aEIllMay0qDpFXw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "svelte": "^3 || ^4 || ^5 || ^5.0.0-next.0", + "vitest": "^4.0.0" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "dev": true, + "license": "MIT", + "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 + } + } + }, + "node_modules/zimmerframe": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", + "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/renderers/svelte/pnpm-lock.yaml b/renderers/svelte/pnpm-lock.yaml deleted file mode 100644 index 9453dccb..00000000 --- a/renderers/svelte/pnpm-lock.yaml +++ /dev/null @@ -1,1612 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@a2ui/lit': - specifier: file:../lit - version: file:../lit(signal-polyfill@0.2.2) - markdown-it: - specifier: ^14.1.0 - version: 14.1.0 - devDependencies: - '@sveltejs/adapter-auto': - specifier: ^7.0.0 - version: 7.0.0(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0)) - '@sveltejs/kit': - specifier: ^2.49.1 - version: 2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0) - '@sveltejs/package': - specifier: ^2.5.7 - version: 2.5.7(svelte@5.46.0)(typescript@5.9.3) - '@sveltejs/vite-plugin-svelte': - specifier: ^6.2.1 - version: 6.2.1(svelte@5.46.0)(vite@7.3.0) - '@types/markdown-it': - specifier: ^14.1.2 - version: 14.1.2 - '@vitest/browser-playwright': - specifier: ^4.0.15 - version: 4.0.16(playwright@1.57.0)(vite@7.3.0)(vitest@4.0.16) - playwright: - specifier: ^1.57.0 - version: 1.57.0 - prettier: - specifier: ^3.7.4 - version: 3.7.4 - prettier-plugin-svelte: - specifier: ^3.4.0 - version: 3.4.1(prettier@3.7.4)(svelte@5.46.0) - publint: - specifier: ^0.3.15 - version: 0.3.16 - svelte: - specifier: ^5.45.6 - version: 5.46.0 - svelte-check: - specifier: ^4.3.4 - version: 4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3) - typescript: - specifier: ^5.9.3 - version: 5.9.3 - vite: - specifier: ^7.2.6 - version: 7.3.0 - vitest: - specifier: ^4.0.15 - version: 4.0.16(@vitest/browser-playwright@4.0.16) - vitest-browser-svelte: - specifier: ^2.0.1 - version: 2.0.1(svelte@5.46.0)(vitest@4.0.16) - -packages: - - '@a2ui/lit@file:../lit': - resolution: {directory: ../lit, type: directory} - - '@esbuild/aix-ppc64@0.27.2': - resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.27.2': - resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.27.2': - resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.27.2': - resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.27.2': - resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.27.2': - resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.27.2': - resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.27.2': - resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.27.2': - resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.27.2': - resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.27.2': - resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.27.2': - resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.27.2': - resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.27.2': - resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.27.2': - resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.27.2': - resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.27.2': - resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.27.2': - resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.27.2': - resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.27.2': - resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.27.2': - resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openharmony-arm64@0.27.2': - resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - - '@esbuild/sunos-x64@0.27.2': - resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.27.2': - resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.27.2': - resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.27.2': - resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - - '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - - '@lit-labs/signals@0.1.3': - resolution: {integrity: sha512-P0yWgH5blwVyEwBg+WFspLzeu1i0ypJP1QB0l1Omr9qZLIPsUu0p4Fy2jshOg7oQyha5n163K3GJGeUhQQ682Q==} - - '@lit-labs/ssr-dom-shim@1.4.0': - resolution: {integrity: sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==} - - '@lit/context@1.1.6': - resolution: {integrity: sha512-M26qDE6UkQbZA2mQ3RjJ3Gzd8TxP+/0obMgE5HfkfLhEEyYE3Bui4A5XHiGPjy0MUGAyxB3QgVuw2ciS0kHn6A==} - - '@lit/reactive-element@2.1.1': - resolution: {integrity: sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==} - - '@polka/url@1.0.0-next.29': - resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - - '@publint/pack@0.1.2': - resolution: {integrity: sha512-S+9ANAvUmjutrshV4jZjaiG8XQyuJIZ8a4utWmN/vW1sgQ9IfBnPndwkmQYw53QmouOIytT874u65HEmu6H5jw==} - engines: {node: '>=18'} - - '@rollup/rollup-android-arm-eabi@4.53.5': - resolution: {integrity: sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.53.5': - resolution: {integrity: sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.53.5': - resolution: {integrity: sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.53.5': - resolution: {integrity: sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.53.5': - resolution: {integrity: sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.53.5': - resolution: {integrity: sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.53.5': - resolution: {integrity: sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.53.5': - resolution: {integrity: sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.53.5': - resolution: {integrity: sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.53.5': - resolution: {integrity: sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loong64-gnu@4.53.5': - resolution: {integrity: sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-ppc64-gnu@4.53.5': - resolution: {integrity: sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.53.5': - resolution: {integrity: sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-musl@4.53.5': - resolution: {integrity: sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.53.5': - resolution: {integrity: sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.53.5': - resolution: {integrity: sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.53.5': - resolution: {integrity: sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-openharmony-arm64@4.53.5': - resolution: {integrity: sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg==} - cpu: [arm64] - os: [openharmony] - - '@rollup/rollup-win32-arm64-msvc@4.53.5': - resolution: {integrity: sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.53.5': - resolution: {integrity: sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-gnu@4.53.5': - resolution: {integrity: sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A==} - cpu: [x64] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.53.5': - resolution: {integrity: sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ==} - cpu: [x64] - os: [win32] - - '@standard-schema/spec@1.1.0': - resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - - '@sveltejs/acorn-typescript@1.0.8': - resolution: {integrity: sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==} - peerDependencies: - acorn: ^8.9.0 - - '@sveltejs/adapter-auto@7.0.0': - resolution: {integrity: sha512-ImDWaErTOCkRS4Gt+5gZuymKFBobnhChXUZ9lhUZLahUgvA4OOvRzi3sahzYgbxGj5nkA6OV0GAW378+dl/gyw==} - peerDependencies: - '@sveltejs/kit': ^2.0.0 - - '@sveltejs/kit@2.49.2': - resolution: {integrity: sha512-Vp3zX/qlwerQmHMP6x0Ry1oY7eKKRcOWGc2P59srOp4zcqyn+etJyQpELgOi4+ZSUgteX8Y387NuwruLgGXLUQ==} - engines: {node: '>=18.13'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - - '@sveltejs/package@2.5.7': - resolution: {integrity: sha512-qqD9xa9H7TDiGFrF6rz7AirOR8k15qDK/9i4MIE8te4vWsv5GEogPks61rrZcLy+yWph+aI6pIj2MdoK3YI8AQ==} - engines: {node: ^16.14 || >=18} - hasBin: true - peerDependencies: - svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1 - - '@sveltejs/vite-plugin-svelte-inspector@5.0.1': - resolution: {integrity: sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA==} - engines: {node: ^20.19 || ^22.12 || >=24} - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^6.0.0-next.0 - svelte: ^5.0.0 - vite: ^6.3.0 || ^7.0.0 - - '@sveltejs/vite-plugin-svelte@6.2.1': - resolution: {integrity: sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==} - engines: {node: ^20.19 || ^22.12 || >=24} - peerDependencies: - svelte: ^5.0.0 - vite: ^6.3.0 || ^7.0.0 - - '@types/chai@5.2.3': - resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} - - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - - '@types/deep-eql@4.0.2': - resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} - - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - - '@types/linkify-it@5.0.0': - resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} - - '@types/markdown-it@14.1.2': - resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} - - '@types/mdurl@2.0.0': - resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - - '@vitest/browser-playwright@4.0.16': - resolution: {integrity: sha512-I2Fy/ANdphi1yI46d15o0M1M4M0UJrUiVKkH5oKeRZZCdPg0fw/cfTKZzv9Ge9eobtJYp4BGblMzXdXH0vcl5g==} - peerDependencies: - playwright: '*' - vitest: 4.0.16 - - '@vitest/browser@4.0.16': - resolution: {integrity: sha512-t4toy8X/YTnjYEPoY0pbDBg3EvDPg1elCDrfc+VupPHwoN/5/FNQ8Z+xBYIaEnOE2vVEyKwqYBzZ9h9rJtZVcg==} - peerDependencies: - vitest: 4.0.16 - - '@vitest/expect@4.0.16': - resolution: {integrity: sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==} - - '@vitest/mocker@4.0.16': - resolution: {integrity: sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==} - peerDependencies: - msw: ^2.4.9 - vite: ^6.0.0 || ^7.0.0-0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - - '@vitest/pretty-format@4.0.16': - resolution: {integrity: sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==} - - '@vitest/runner@4.0.16': - resolution: {integrity: sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==} - - '@vitest/snapshot@4.0.16': - resolution: {integrity: sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==} - - '@vitest/spy@4.0.16': - resolution: {integrity: sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==} - - '@vitest/utils@4.0.16': - resolution: {integrity: sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==} - - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - aria-query@5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} - engines: {node: '>= 0.4'} - - assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} - - axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - - chai@6.2.1: - resolution: {integrity: sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==} - engines: {node: '>=18'} - - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - - chokidar@5.0.0: - resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} - engines: {node: '>= 20.19.0'} - - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - dedent-js@1.0.1: - resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - devalue@5.6.1: - resolution: {integrity: sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - - esbuild@0.27.2: - resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} - engines: {node: '>=18'} - hasBin: true - - esm-env@1.2.2: - resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} - - esrap@2.2.1: - resolution: {integrity: sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - expect-type@1.3.0: - resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} - engines: {node: '>=12.0.0'} - - fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - is-reference@3.0.3: - resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} - - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - - lit-element@4.2.1: - resolution: {integrity: sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==} - - lit-html@3.3.1: - resolution: {integrity: sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==} - - lit@3.3.1: - resolution: {integrity: sha512-Ksr/8L3PTapbdXJCk+EJVB78jDodUMaP54gD24W186zGRARvwrsPfS60wae/SSCTCNZVPd1chXqio1qHQmu4NA==} - - locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - - magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - - markdown-it@14.1.0: - resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} - hasBin: true - - mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - - mrmime@2.0.1: - resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} - engines: {node: '>=10'} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - obug@2.1.1: - resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} - - package-manager-detector@1.6.0: - resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} - - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} - - pixelmatch@7.1.0: - resolution: {integrity: sha512-1wrVzJ2STrpmONHKBy228LM1b84msXDUoAzVEl0R8Mz4Ce6EPr+IVtxm8+yvrqLYMHswREkjYFaMxnyGnaY3Ng==} - hasBin: true - - playwright-core@1.57.0: - resolution: {integrity: sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==} - engines: {node: '>=18'} - hasBin: true - - playwright@1.57.0: - resolution: {integrity: sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==} - engines: {node: '>=18'} - hasBin: true - - pngjs@7.0.0: - resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} - engines: {node: '>=14.19.0'} - - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} - engines: {node: ^10 || ^12 || >=14} - - prettier-plugin-svelte@3.4.1: - resolution: {integrity: sha512-xL49LCloMoZRvSwa6IEdN2GV6cq2IqpYGstYtMT+5wmml1/dClEoI0MZR78MiVPpu6BdQFfN0/y73yO6+br5Pg==} - peerDependencies: - prettier: ^3.0.0 - svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 - - prettier@3.7.4: - resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} - engines: {node: '>=14'} - hasBin: true - - publint@0.3.16: - resolution: {integrity: sha512-MFqyfRLAExPVZdTQFwkAQELzA8idyXzROVOytg6nEJ/GEypXBUmMGrVaID8cTuzRS1U5L8yTOdOJtMXgFUJAeA==} - engines: {node: '>=18'} - hasBin: true - - punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} - engines: {node: '>=6'} - - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - - readdirp@5.0.0: - resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} - engines: {node: '>= 20.19.0'} - - rollup@4.53.5: - resolution: {integrity: sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - - scule@1.3.0: - resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} - - semver@7.7.3: - resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} - engines: {node: '>=10'} - hasBin: true - - set-cookie-parser@2.7.2: - resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} - - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - - signal-polyfill@0.2.2: - resolution: {integrity: sha512-p63Y4Er5/eMQ9RHg0M0Y64NlsQKpiu6MDdhBXpyywRuWiPywhJTpKJ1iB5K2hJEbFZ0BnDS7ZkJ+0AfTuL37Rg==} - - signal-utils@0.21.1: - resolution: {integrity: sha512-i9cdLSvVH4j8ql8mz2lyrA93xL499P8wEbIev3ldSriXeUwqh+wM4Q5VPhIZ19gPtIS4BOopJuKB8l1+wH9LCg==} - peerDependencies: - signal-polyfill: ^0.2.0 - - sirv@3.0.2: - resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} - engines: {node: '>=18'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - - std-env@3.10.0: - resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} - - svelte-check@4.3.4: - resolution: {integrity: sha512-DVWvxhBrDsd+0hHWKfjP99lsSXASeOhHJYyuKOFYJcP7ThfSCKgjVarE8XfuMWpS5JV3AlDf+iK1YGGo2TACdw==} - engines: {node: '>= 18.0.0'} - hasBin: true - peerDependencies: - svelte: ^4.0.0 || ^5.0.0-next.0 - typescript: '>=5.0.0' - - svelte2tsx@0.7.45: - resolution: {integrity: sha512-cSci+mYGygYBHIZLHlm/jYlEc1acjAHqaQaDFHdEBpUueM9kSTnPpvPtSl5VkJOU1qSJ7h1K+6F/LIUYiqC8VA==} - peerDependencies: - svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 - typescript: ^4.9.4 || ^5.0.0 - - svelte@5.46.0: - resolution: {integrity: sha512-ZhLtvroYxUxr+HQJfMZEDRsGsmU46x12RvAv/zi9584f5KOX7bUrEbhPJ7cKFmUvZTJXi/CFZUYwDC6M1FigPw==} - engines: {node: '>=18'} - - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - - tinyexec@1.0.2: - resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} - engines: {node: '>=18'} - - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} - - tinyrainbow@3.0.3: - resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} - engines: {node: '>=14.0.0'} - - totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - - uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - - vite@7.3.0: - resolution: {integrity: sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - vitefu@1.1.1: - resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 - peerDependenciesMeta: - vite: - optional: true - - vitest-browser-svelte@2.0.1: - resolution: {integrity: sha512-z7GFio7vxaOolY+xwPUMEKuwL4KcPzB8+bepA9F0Phqag/TJ4j7IAGSwm4Y/FBh7KznsP+7aEIllMay0qDpFXw==} - peerDependencies: - svelte: ^3 || ^4 || ^5 || ^5.0.0-next.0 - vitest: ^4.0.0 - - vitest@4.0.16: - resolution: {integrity: sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==} - engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@opentelemetry/api': ^1.9.0 - '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.0.16 - '@vitest/browser-preview': 4.0.16 - '@vitest/browser-webdriverio': 4.0.16 - '@vitest/ui': 4.0.16 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@opentelemetry/api': - optional: true - '@types/node': - optional: true - '@vitest/browser-playwright': - optional: true - '@vitest/browser-preview': - optional: true - '@vitest/browser-webdriverio': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - 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 - - zimmerframe@1.1.4: - resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} - -snapshots: - - '@a2ui/lit@file:../lit(signal-polyfill@0.2.2)': - dependencies: - '@lit-labs/signals': 0.1.3 - '@lit/context': 1.1.6 - lit: 3.3.1 - markdown-it: 14.1.0 - signal-utils: 0.21.1(signal-polyfill@0.2.2) - transitivePeerDependencies: - - signal-polyfill - - '@esbuild/aix-ppc64@0.27.2': - optional: true - - '@esbuild/android-arm64@0.27.2': - optional: true - - '@esbuild/android-arm@0.27.2': - optional: true - - '@esbuild/android-x64@0.27.2': - optional: true - - '@esbuild/darwin-arm64@0.27.2': - optional: true - - '@esbuild/darwin-x64@0.27.2': - optional: true - - '@esbuild/freebsd-arm64@0.27.2': - optional: true - - '@esbuild/freebsd-x64@0.27.2': - optional: true - - '@esbuild/linux-arm64@0.27.2': - optional: true - - '@esbuild/linux-arm@0.27.2': - optional: true - - '@esbuild/linux-ia32@0.27.2': - optional: true - - '@esbuild/linux-loong64@0.27.2': - optional: true - - '@esbuild/linux-mips64el@0.27.2': - optional: true - - '@esbuild/linux-ppc64@0.27.2': - optional: true - - '@esbuild/linux-riscv64@0.27.2': - optional: true - - '@esbuild/linux-s390x@0.27.2': - optional: true - - '@esbuild/linux-x64@0.27.2': - optional: true - - '@esbuild/netbsd-arm64@0.27.2': - optional: true - - '@esbuild/netbsd-x64@0.27.2': - optional: true - - '@esbuild/openbsd-arm64@0.27.2': - optional: true - - '@esbuild/openbsd-x64@0.27.2': - optional: true - - '@esbuild/openharmony-arm64@0.27.2': - optional: true - - '@esbuild/sunos-x64@0.27.2': - optional: true - - '@esbuild/win32-arm64@0.27.2': - optional: true - - '@esbuild/win32-ia32@0.27.2': - optional: true - - '@esbuild/win32-x64@0.27.2': - optional: true - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@lit-labs/signals@0.1.3': - dependencies: - lit: 3.3.1 - signal-polyfill: 0.2.2 - - '@lit-labs/ssr-dom-shim@1.4.0': {} - - '@lit/context@1.1.6': - dependencies: - '@lit/reactive-element': 2.1.1 - - '@lit/reactive-element@2.1.1': - dependencies: - '@lit-labs/ssr-dom-shim': 1.4.0 - - '@polka/url@1.0.0-next.29': {} - - '@publint/pack@0.1.2': {} - - '@rollup/rollup-android-arm-eabi@4.53.5': - optional: true - - '@rollup/rollup-android-arm64@4.53.5': - optional: true - - '@rollup/rollup-darwin-arm64@4.53.5': - optional: true - - '@rollup/rollup-darwin-x64@4.53.5': - optional: true - - '@rollup/rollup-freebsd-arm64@4.53.5': - optional: true - - '@rollup/rollup-freebsd-x64@4.53.5': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.53.5': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.53.5': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.53.5': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.53.5': - optional: true - - '@rollup/rollup-linux-loong64-gnu@4.53.5': - optional: true - - '@rollup/rollup-linux-ppc64-gnu@4.53.5': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.53.5': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.53.5': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.53.5': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.53.5': - optional: true - - '@rollup/rollup-linux-x64-musl@4.53.5': - optional: true - - '@rollup/rollup-openharmony-arm64@4.53.5': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.53.5': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.53.5': - optional: true - - '@rollup/rollup-win32-x64-gnu@4.53.5': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.53.5': - optional: true - - '@standard-schema/spec@1.1.0': {} - - '@sveltejs/acorn-typescript@1.0.8(acorn@8.15.0)': - dependencies: - acorn: 8.15.0 - - '@sveltejs/adapter-auto@7.0.0(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0))': - dependencies: - '@sveltejs/kit': 2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0) - - '@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0)': - dependencies: - '@standard-schema/spec': 1.1.0 - '@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0) - '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.46.0)(vite@7.3.0) - '@types/cookie': 0.6.0 - acorn: 8.15.0 - cookie: 0.6.0 - devalue: 5.6.1 - esm-env: 1.2.2 - kleur: 4.1.5 - magic-string: 0.30.21 - mrmime: 2.0.1 - sade: 1.8.1 - set-cookie-parser: 2.7.2 - sirv: 3.0.2 - svelte: 5.46.0 - vite: 7.3.0 - - '@sveltejs/package@2.5.7(svelte@5.46.0)(typescript@5.9.3)': - dependencies: - chokidar: 5.0.0 - kleur: 4.1.5 - sade: 1.8.1 - semver: 7.7.3 - svelte: 5.46.0 - svelte2tsx: 0.7.45(svelte@5.46.0)(typescript@5.9.3) - transitivePeerDependencies: - - typescript - - '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0)': - dependencies: - '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.46.0)(vite@7.3.0) - debug: 4.4.3 - svelte: 5.46.0 - vite: 7.3.0 - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0)': - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0))(svelte@5.46.0)(vite@7.3.0) - debug: 4.4.3 - deepmerge: 4.3.1 - magic-string: 0.30.21 - svelte: 5.46.0 - vite: 7.3.0 - vitefu: 1.1.1(vite@7.3.0) - transitivePeerDependencies: - - supports-color - - '@types/chai@5.2.3': - dependencies: - '@types/deep-eql': 4.0.2 - assertion-error: 2.0.1 - - '@types/cookie@0.6.0': {} - - '@types/deep-eql@4.0.2': {} - - '@types/estree@1.0.8': {} - - '@types/linkify-it@5.0.0': {} - - '@types/markdown-it@14.1.2': - dependencies: - '@types/linkify-it': 5.0.0 - '@types/mdurl': 2.0.0 - - '@types/mdurl@2.0.0': {} - - '@types/trusted-types@2.0.7': {} - - '@vitest/browser-playwright@4.0.16(playwright@1.57.0)(vite@7.3.0)(vitest@4.0.16)': - dependencies: - '@vitest/browser': 4.0.16(vite@7.3.0)(vitest@4.0.16) - '@vitest/mocker': 4.0.16(vite@7.3.0) - playwright: 1.57.0 - tinyrainbow: 3.0.3 - vitest: 4.0.16(@vitest/browser-playwright@4.0.16) - transitivePeerDependencies: - - bufferutil - - msw - - utf-8-validate - - vite - - '@vitest/browser@4.0.16(vite@7.3.0)(vitest@4.0.16)': - dependencies: - '@vitest/mocker': 4.0.16(vite@7.3.0) - '@vitest/utils': 4.0.16 - magic-string: 0.30.21 - pixelmatch: 7.1.0 - pngjs: 7.0.0 - sirv: 3.0.2 - tinyrainbow: 3.0.3 - vitest: 4.0.16(@vitest/browser-playwright@4.0.16) - ws: 8.18.3 - transitivePeerDependencies: - - bufferutil - - msw - - utf-8-validate - - vite - - '@vitest/expect@4.0.16': - dependencies: - '@standard-schema/spec': 1.1.0 - '@types/chai': 5.2.3 - '@vitest/spy': 4.0.16 - '@vitest/utils': 4.0.16 - chai: 6.2.1 - tinyrainbow: 3.0.3 - - '@vitest/mocker@4.0.16(vite@7.3.0)': - dependencies: - '@vitest/spy': 4.0.16 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - vite: 7.3.0 - - '@vitest/pretty-format@4.0.16': - dependencies: - tinyrainbow: 3.0.3 - - '@vitest/runner@4.0.16': - dependencies: - '@vitest/utils': 4.0.16 - pathe: 2.0.3 - - '@vitest/snapshot@4.0.16': - dependencies: - '@vitest/pretty-format': 4.0.16 - magic-string: 0.30.21 - pathe: 2.0.3 - - '@vitest/spy@4.0.16': {} - - '@vitest/utils@4.0.16': - dependencies: - '@vitest/pretty-format': 4.0.16 - tinyrainbow: 3.0.3 - - acorn@8.15.0: {} - - argparse@2.0.1: {} - - aria-query@5.3.2: {} - - assertion-error@2.0.1: {} - - axobject-query@4.1.0: {} - - chai@6.2.1: {} - - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - - chokidar@5.0.0: - dependencies: - readdirp: 5.0.0 - - clsx@2.1.1: {} - - cookie@0.6.0: {} - - debug@4.4.3: - dependencies: - ms: 2.1.3 - - dedent-js@1.0.1: {} - - deepmerge@4.3.1: {} - - devalue@5.6.1: {} - - entities@4.5.0: {} - - es-module-lexer@1.7.0: {} - - esbuild@0.27.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.2 - '@esbuild/android-arm': 0.27.2 - '@esbuild/android-arm64': 0.27.2 - '@esbuild/android-x64': 0.27.2 - '@esbuild/darwin-arm64': 0.27.2 - '@esbuild/darwin-x64': 0.27.2 - '@esbuild/freebsd-arm64': 0.27.2 - '@esbuild/freebsd-x64': 0.27.2 - '@esbuild/linux-arm': 0.27.2 - '@esbuild/linux-arm64': 0.27.2 - '@esbuild/linux-ia32': 0.27.2 - '@esbuild/linux-loong64': 0.27.2 - '@esbuild/linux-mips64el': 0.27.2 - '@esbuild/linux-ppc64': 0.27.2 - '@esbuild/linux-riscv64': 0.27.2 - '@esbuild/linux-s390x': 0.27.2 - '@esbuild/linux-x64': 0.27.2 - '@esbuild/netbsd-arm64': 0.27.2 - '@esbuild/netbsd-x64': 0.27.2 - '@esbuild/openbsd-arm64': 0.27.2 - '@esbuild/openbsd-x64': 0.27.2 - '@esbuild/openharmony-arm64': 0.27.2 - '@esbuild/sunos-x64': 0.27.2 - '@esbuild/win32-arm64': 0.27.2 - '@esbuild/win32-ia32': 0.27.2 - '@esbuild/win32-x64': 0.27.2 - - esm-env@1.2.2: {} - - esrap@2.2.1: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.8 - - expect-type@1.3.0: {} - - fdir@6.5.0(picomatch@4.0.3): - optionalDependencies: - picomatch: 4.0.3 - - fsevents@2.3.2: - optional: true - - fsevents@2.3.3: - optional: true - - is-reference@3.0.3: - dependencies: - '@types/estree': 1.0.8 - - kleur@4.1.5: {} - - linkify-it@5.0.0: - dependencies: - uc.micro: 2.1.0 - - lit-element@4.2.1: - dependencies: - '@lit-labs/ssr-dom-shim': 1.4.0 - '@lit/reactive-element': 2.1.1 - lit-html: 3.3.1 - - lit-html@3.3.1: - dependencies: - '@types/trusted-types': 2.0.7 - - lit@3.3.1: - dependencies: - '@lit/reactive-element': 2.1.1 - lit-element: 4.2.1 - lit-html: 3.3.1 - - locate-character@3.0.0: {} - - magic-string@0.30.21: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - - markdown-it@14.1.0: - dependencies: - argparse: 2.0.1 - entities: 4.5.0 - linkify-it: 5.0.0 - mdurl: 2.0.0 - punycode.js: 2.3.1 - uc.micro: 2.1.0 - - mdurl@2.0.0: {} - - mri@1.2.0: {} - - mrmime@2.0.1: {} - - ms@2.1.3: {} - - nanoid@3.3.11: {} - - obug@2.1.1: {} - - package-manager-detector@1.6.0: {} - - pathe@2.0.3: {} - - picocolors@1.1.1: {} - - picomatch@4.0.3: {} - - pixelmatch@7.1.0: - dependencies: - pngjs: 7.0.0 - - playwright-core@1.57.0: {} - - playwright@1.57.0: - dependencies: - playwright-core: 1.57.0 - optionalDependencies: - fsevents: 2.3.2 - - pngjs@7.0.0: {} - - postcss@8.5.6: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - prettier-plugin-svelte@3.4.1(prettier@3.7.4)(svelte@5.46.0): - dependencies: - prettier: 3.7.4 - svelte: 5.46.0 - - prettier@3.7.4: {} - - publint@0.3.16: - dependencies: - '@publint/pack': 0.1.2 - package-manager-detector: 1.6.0 - picocolors: 1.1.1 - sade: 1.8.1 - - punycode.js@2.3.1: {} - - readdirp@4.1.2: {} - - readdirp@5.0.0: {} - - rollup@4.53.5: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.53.5 - '@rollup/rollup-android-arm64': 4.53.5 - '@rollup/rollup-darwin-arm64': 4.53.5 - '@rollup/rollup-darwin-x64': 4.53.5 - '@rollup/rollup-freebsd-arm64': 4.53.5 - '@rollup/rollup-freebsd-x64': 4.53.5 - '@rollup/rollup-linux-arm-gnueabihf': 4.53.5 - '@rollup/rollup-linux-arm-musleabihf': 4.53.5 - '@rollup/rollup-linux-arm64-gnu': 4.53.5 - '@rollup/rollup-linux-arm64-musl': 4.53.5 - '@rollup/rollup-linux-loong64-gnu': 4.53.5 - '@rollup/rollup-linux-ppc64-gnu': 4.53.5 - '@rollup/rollup-linux-riscv64-gnu': 4.53.5 - '@rollup/rollup-linux-riscv64-musl': 4.53.5 - '@rollup/rollup-linux-s390x-gnu': 4.53.5 - '@rollup/rollup-linux-x64-gnu': 4.53.5 - '@rollup/rollup-linux-x64-musl': 4.53.5 - '@rollup/rollup-openharmony-arm64': 4.53.5 - '@rollup/rollup-win32-arm64-msvc': 4.53.5 - '@rollup/rollup-win32-ia32-msvc': 4.53.5 - '@rollup/rollup-win32-x64-gnu': 4.53.5 - '@rollup/rollup-win32-x64-msvc': 4.53.5 - fsevents: 2.3.3 - - sade@1.8.1: - dependencies: - mri: 1.2.0 - - scule@1.3.0: {} - - semver@7.7.3: {} - - set-cookie-parser@2.7.2: {} - - siginfo@2.0.0: {} - - signal-polyfill@0.2.2: {} - - signal-utils@0.21.1(signal-polyfill@0.2.2): - dependencies: - signal-polyfill: 0.2.2 - - sirv@3.0.2: - dependencies: - '@polka/url': 1.0.0-next.29 - mrmime: 2.0.1 - totalist: 3.0.1 - - source-map-js@1.2.1: {} - - stackback@0.0.2: {} - - std-env@3.10.0: {} - - svelte-check@4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - chokidar: 4.0.3 - fdir: 6.5.0(picomatch@4.0.3) - picocolors: 1.1.1 - sade: 1.8.1 - svelte: 5.46.0 - typescript: 5.9.3 - transitivePeerDependencies: - - picomatch - - svelte2tsx@0.7.45(svelte@5.46.0)(typescript@5.9.3): - dependencies: - dedent-js: 1.0.1 - scule: 1.3.0 - svelte: 5.46.0 - typescript: 5.9.3 - - svelte@5.46.0: - dependencies: - '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.5 - '@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0) - '@types/estree': 1.0.8 - acorn: 8.15.0 - aria-query: 5.3.2 - axobject-query: 4.1.0 - clsx: 2.1.1 - devalue: 5.6.1 - esm-env: 1.2.2 - esrap: 2.2.1 - is-reference: 3.0.3 - locate-character: 3.0.0 - magic-string: 0.30.21 - zimmerframe: 1.1.4 - - tinybench@2.9.0: {} - - tinyexec@1.0.2: {} - - tinyglobby@0.2.15: - dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - - tinyrainbow@3.0.3: {} - - totalist@3.0.1: {} - - typescript@5.9.3: {} - - uc.micro@2.1.0: {} - - vite@7.3.0: - dependencies: - esbuild: 0.27.2 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.53.5 - tinyglobby: 0.2.15 - optionalDependencies: - fsevents: 2.3.3 - - vitefu@1.1.1(vite@7.3.0): - optionalDependencies: - vite: 7.3.0 - - vitest-browser-svelte@2.0.1(svelte@5.46.0)(vitest@4.0.16): - dependencies: - svelte: 5.46.0 - vitest: 4.0.16(@vitest/browser-playwright@4.0.16) - - vitest@4.0.16(@vitest/browser-playwright@4.0.16): - dependencies: - '@vitest/expect': 4.0.16 - '@vitest/mocker': 4.0.16(vite@7.3.0) - '@vitest/pretty-format': 4.0.16 - '@vitest/runner': 4.0.16 - '@vitest/snapshot': 4.0.16 - '@vitest/spy': 4.0.16 - '@vitest/utils': 4.0.16 - es-module-lexer: 1.7.0 - expect-type: 1.3.0 - magic-string: 0.30.21 - obug: 2.1.1 - pathe: 2.0.3 - picomatch: 4.0.3 - std-env: 3.10.0 - tinybench: 2.9.0 - tinyexec: 1.0.2 - tinyglobby: 0.2.15 - tinyrainbow: 3.0.3 - vite: 7.3.0 - why-is-node-running: 2.3.0 - optionalDependencies: - '@vitest/browser-playwright': 4.0.16(playwright@1.57.0)(vite@7.3.0)(vitest@4.0.16) - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - terser - - tsx - - yaml - - why-is-node-running@2.3.0: - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - - ws@8.18.3: {} - - zimmerframe@1.1.4: {} diff --git a/renderers/svelte/pnpm-workspace.yaml b/renderers/svelte/pnpm-workspace.yaml deleted file mode 100644 index efc037aa..00000000 --- a/renderers/svelte/pnpm-workspace.yaml +++ /dev/null @@ -1,2 +0,0 @@ -onlyBuiltDependencies: - - esbuild From 5d806cee9e6d55968c4c869948bc3ee717e2fb55 Mon Sep 17 00:00:00 2001 From: Michele Preziuso Date: Tue, 23 Dec 2025 16:34:30 +0000 Subject: [PATCH 6/6] fix(svelte): tidy up project and align documentation with other samples --- renderers/svelte/src/routes/+page.svelte | 3 -- samples/client/svelte/README.md | 40 +++++++++++++++++++ .../svelte/projects/restaurant/README.md | 38 ------------------ .../projects/restaurant/e2e/demo.test.ts | 6 --- .../projects/restaurant/src/demo.spec.ts | 7 ---- .../restaurant/src/routes/page.svelte.spec.ts | 13 ------ .../projects/restaurant/static/robots.txt | 3 -- 7 files changed, 40 insertions(+), 70 deletions(-) delete mode 100644 renderers/svelte/src/routes/+page.svelte create mode 100644 samples/client/svelte/README.md delete mode 100644 samples/client/svelte/projects/restaurant/README.md delete mode 100644 samples/client/svelte/projects/restaurant/e2e/demo.test.ts delete mode 100644 samples/client/svelte/projects/restaurant/src/demo.spec.ts delete mode 100644 samples/client/svelte/projects/restaurant/src/routes/page.svelte.spec.ts delete mode 100644 samples/client/svelte/projects/restaurant/static/robots.txt diff --git a/renderers/svelte/src/routes/+page.svelte b/renderers/svelte/src/routes/+page.svelte deleted file mode 100644 index 9c42926f..00000000 --- a/renderers/svelte/src/routes/+page.svelte +++ /dev/null @@ -1,3 +0,0 @@ -

    Welcome to your library project

    -

    Create your package using @sveltejs/package and preview/showcase your work with SvelteKit

    -

    Visit svelte.dev/docs/kit to read the documentation

    diff --git a/samples/client/svelte/README.md b/samples/client/svelte/README.md new file mode 100644 index 00000000..ff880ecd --- /dev/null +++ b/samples/client/svelte/README.md @@ -0,0 +1,40 @@ +# Svelte A2UI + +These are sample implementations of A2UI in Svelte. + +## Prerequisites + +1. [nodejs](https://nodejs.org/en) + +## Running + +Here is the quickstart for the restaurant app: + +```bash +# Export your Gemini API key +export GEMINI_API_KEY=your_gemini_api_key +echo "export GEMINI_API_KEY=your_gemini_api_key" >> .env +cp .env ../../agent/adk/restaurant_finder/.env + +# Start the restaurant app frontend +npm install +npm run dev -w restaurant +``` + +Here are the instructions if you want to do each step manually. + +1. Build the shared dependencies by running `npm install && npm run build` in the `renderers/svelte` directory +2. Install the dependencies: `npm install` +3. Run the relevant A2A server: + * [For the restaurant app](../../agent/adk/restaurant_finder/) +4. Run the relevant app: + * `npm run dev -w restaurant` +5. Open http://localhost:5173/ + +Important: The sample code provided is for demonstration purposes and illustrates the mechanics of A2UI and the Agent-to-Agent (A2A) protocol. When building production applications, it is critical to treat any agent operating outside of your direct control as a potentially untrusted entity. + +All operational data received from an external agent—including its AgentCard, messages, artifacts, and task statuses—should be handled as untrusted input. For example, a malicious agent could provide crafted data in its fields (e.g., name, skills.description) that, if used without sanitization to construct prompts for a Large Language Model (LLM), could expose your application to prompt injection attacks. + +Similarly, any UI definition or data stream received must be treated as untrusted. Malicious agents could attempt to spoof legitimate interfaces to deceive users (phishing), inject malicious scripts via property values (XSS), or generate excessive layout complexity to degrade client performance (DoS). If your application supports optional embedded content (such as iframes or web views), additional care must be taken to prevent exposure to malicious external sites. + +Developer Responsibility: Failure to properly validate data and strictly sandbox rendered content can introduce severe vulnerabilities. Developers are responsible for implementing appropriate security measures—such as input sanitization, Content Security Policies (CSP), strict isolation for optional embedded content, and secure credential handling—to protect their systems and users. diff --git a/samples/client/svelte/projects/restaurant/README.md b/samples/client/svelte/projects/restaurant/README.md deleted file mode 100644 index 75842c40..00000000 --- a/samples/client/svelte/projects/restaurant/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# sv - -Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). - -## Creating a project - -If you're seeing this, you've probably already done this step. Congrats! - -```sh -# create a new project in the current directory -npx sv create - -# create a new project in my-app -npx sv create my-app -``` - -## Developing - -Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: - -```sh -npm run dev - -# or start the server and open the app in a new browser tab -npm run dev -- --open -``` - -## Building - -To create a production version of your app: - -```sh -npm run build -``` - -You can preview the production build with `npm run preview`. - -> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. diff --git a/samples/client/svelte/projects/restaurant/e2e/demo.test.ts b/samples/client/svelte/projects/restaurant/e2e/demo.test.ts deleted file mode 100644 index 9985ce11..00000000 --- a/samples/client/svelte/projects/restaurant/e2e/demo.test.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { expect, test } from '@playwright/test'; - -test('home page has expected h1', async ({ page }) => { - await page.goto('/'); - await expect(page.locator('h1')).toBeVisible(); -}); diff --git a/samples/client/svelte/projects/restaurant/src/demo.spec.ts b/samples/client/svelte/projects/restaurant/src/demo.spec.ts deleted file mode 100644 index e07cbbd7..00000000 --- a/samples/client/svelte/projects/restaurant/src/demo.spec.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { describe, it, expect } from 'vitest'; - -describe('sum test', () => { - it('adds 1 + 2 to equal 3', () => { - expect(1 + 2).toBe(3); - }); -}); diff --git a/samples/client/svelte/projects/restaurant/src/routes/page.svelte.spec.ts b/samples/client/svelte/projects/restaurant/src/routes/page.svelte.spec.ts deleted file mode 100644 index 9b564bba..00000000 --- a/samples/client/svelte/projects/restaurant/src/routes/page.svelte.spec.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { page } from 'vitest/browser'; -import { describe, expect, it } from 'vitest'; -import { render } from 'vitest-browser-svelte'; -import Page from './+page.svelte'; - -describe('/+page.svelte', () => { - it('should render h1', async () => { - render(Page); - - const heading = page.getByRole('heading', { level: 1 }); - await expect.element(heading).toBeInTheDocument(); - }); -}); diff --git a/samples/client/svelte/projects/restaurant/static/robots.txt b/samples/client/svelte/projects/restaurant/static/robots.txt deleted file mode 100644 index b6dd6670..00000000 --- a/samples/client/svelte/projects/restaurant/static/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# allow crawling everything by default -User-agent: * -Disallow: