diff --git a/.github/workflows/ci-dev.yaml b/.github/workflows/ci-dev.yaml index fcc92cf..7a0bfa8 100644 --- a/.github/workflows/ci-dev.yaml +++ b/.github/workflows/ci-dev.yaml @@ -11,12 +11,12 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [24.x, 22.x, 20.x] + node-version: [26.x, 24.x, 22.x] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: ${{ matrix.node-version }} cache: 'npm' diff --git a/.github/workflows/ci-full.yaml b/.github/workflows/ci-full.yaml index 7f355f4..f6b667f 100644 --- a/.github/workflows/ci-full.yaml +++ b/.github/workflows/ci-full.yaml @@ -14,12 +14,12 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [24.x, 22.x, 20.x] + node-version: [26.x, 24.x, 22.x] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: ${{ matrix.node-version }} cache: 'npm' @@ -48,9 +48,9 @@ jobs: version: ${{ steps.create_tag.outputs.version }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - - uses: jaywcjlove/create-tag-action@main + - uses: jaywcjlove/create-tag-action@v2.3.0 id: create_tag with: package-path: ./package.json @@ -62,8 +62,8 @@ jobs: if: needs.tag.outputs.status == 'true' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 with: node-version: '22' registry-url: 'https://registry.npmjs.org' diff --git a/CHANGELOG.md b/CHANGELOG.md index af29237..ad62893 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.5.6] - 2026-07-31 + +### Changed + +- **Updated all development dependencies** — ESLint, eslint-plugin-unicorn, Vite, and related tooling bumped to their latest versions +- **Renamed parameters for clarity** — `snapshot(title, replace)` is now `snapshot(title, shouldReplace)` and `requiredIf(cond)` is now `requiredIf(shouldRequire)`; both are positional parameters, so no code changes are required + +### Fixed + +- **`.integer()` validator now rejects unsafe integers** — `numberValidator().integer()` uses `Number.isSafeInteger()` instead of `Number.isInteger()`, so values outside the safe integer range are correctly flagged instead of silently passing +- **Demo build no longer warns about deprecated Vite config** — the demo's `vite.config.ts` now uses `import.meta.dirname` and a JSON import attribute instead of `__dirname` and a bare JSON import + ## [1.5.5] - 2026-06-02 ### Fixed diff --git a/CLAUDE.md b/CLAUDE.md index 736709c..81b167f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -157,7 +157,7 @@ effect: ({ snapshot, property }) => { **Important:** The effect callback must be synchronous. Returning a Promise throws an error. -- `snapshot(title, replace = true)` - Creates a snapshot; if `replace=true` and last snapshot has same title, replaces it (debouncing) +- `snapshot(title, shouldReplace = true)` - Creates a snapshot; if `shouldReplace=true` and last snapshot has same title, replaces it (debouncing) - Initial state is saved as first snapshot with title `"Initial"` - Successful action execution resets snapshots with current state as new initial - `rollback()`, `rollbackTo()`, and `reset()` trigger validation after restoring state diff --git a/FAQ.md b/FAQ.md index 6af28ed..a6b22ab 100644 --- a/FAQ.md +++ b/FAQ.md @@ -457,15 +457,15 @@ reset(); // Returns to original state --- -### What does the `replace` parameter in `snapshot(title, replace)` do? +### What does the `shouldReplace` parameter in `snapshot(title, shouldReplace)` do? -When `replace` is `true` (default), consecutive snapshots with the same title replace each other instead of stacking. This prevents snapshot bloat during rapid typing: +When `shouldReplace` is `true` (default), consecutive snapshots with the same title replace each other instead of stacking. This prevents snapshot bloat during rapid typing: ```typescript effect: ({ snapshot }) => { // User types "Hello" quickly - // Without replace: 5 snapshots ("H", "He", "Hel", "Hell", "Hello") - // With replace: 1 snapshot ("Hello") + // Without replacing: 5 snapshots ("H", "He", "Hel", "Hell", "Hello") + // With replacing: 1 snapshot ("Hello") snapshot('Typing in name field'); // Same title = replaces previous }; diff --git a/README.md b/README.md index fb236a6..75ee5c8 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,8 @@ [![Node.js](https://img.shields.io/badge/Node.js-%3E%3D20-green.svg)](https://nodejs.org/) [![Svelte 5](https://img.shields.io/badge/Svelte-5-orange.svg)](https://svelte.dev/) [![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC) -[![Tests](https://img.shields.io/badge/tests-500%2B-brightgreen.svg)]() -[![Coverage](https://img.shields.io/badge/coverage-%3E98%25-brightgreen.svg)]() +[![Tests](https://img.shields.io/badge/tests-500%2B-brightgreen.svg)](<>) +[![Coverage](https://img.shields.io/badge/coverage-%3E98%25-brightgreen.svg)](<>) > **Deep reactive proxy with validation, snapshot/undo, side effects, and plugins — built for complex, real-world applications.** @@ -82,9 +82,7 @@ const customer = $state({ import { createSvState, stringValidator, numberValidator } from 'svstate'; const { data, state, rollback, rollbackTo, reset, execute } = createSvState(customer, { - validator: (source) => ({ - /* validation that mirrors your structure */ - }), + validator: (source) => ({/* validation that mirrors your structure */}), effect: ({ snapshot, property, currentValue, oldValue }) => { console.log(`${property} changed from ${oldValue} to ${currentValue}`); snapshot(`Changed ${property}`); // Create undo point @@ -367,7 +365,7 @@ $snapshots.forEach((s, i) => console.log(`${i}: ${s.title}`)); **Key features:** -- 📸 `snapshot(title, replace?)` — create undo points +- 📸 `snapshot(title, shouldReplace?)` — create undo points - ⏪ `rollback(steps)` — undo N changes - 🏷️ `rollbackTo(title)` — jump to a named snapshot - 🔄 `reset()` — return to initial state @@ -1033,25 +1031,26 @@ function removeTag(index: number) { Creates a supercharged state object. **Returns:** -| Property | Type | Description | -|----------|------|-------------| -| `data` | `T` | Deep reactive proxy — bind directly, methods preserved | -| `execute(params?)` | `(P?) => Promise` | Run the configured action | -| `rollback(steps?)` | `(n?: number) => void` | Undo N changes (default: 1) | -| `rollbackTo(title)` | `(title: string) => boolean` | Roll back to last snapshot with matching title | -| `reset()` | `() => void` | Return to initial state | -| `destroy()` | `() => void` | Cleanup plugins and cancel async validations | -| `state.errors` | `Readable` | Sync validation errors store | -| `state.hasErrors` | `Readable` | Has sync errors? | -| `state.isDirty` | `Readable` | Has state changed? (derived from `isDirtyByField`) | -| `state.isDirtyByField` | `Readable` | Per-field dirty tracking (dot-notation paths) | -| `state.actionInProgress` | `Readable` | Is action running? | -| `state.actionError` | `Readable` | Last action error | -| `state.snapshots` | `Readable` | Undo history | -| `state.asyncErrors` | `Readable` | Async validation errors (keyed by path) | -| `state.hasAsyncErrors` | `Readable` | Has async errors? | -| `state.asyncValidating` | `Readable` | Paths currently validating | -| `state.hasCombinedErrors` | `Readable` | Has sync OR async errors? | + +| Property | Type | Description | +| ------------------------- | ---------------------------- | ------------------------------------------------------ | +| `data` | `T` | Deep reactive proxy — bind directly, methods preserved | +| `execute(params?)` | `(P?) => Promise` | Run the configured action | +| `rollback(steps?)` | `(n?: number) => void` | Undo N changes (default: 1) | +| `rollbackTo(title)` | `(title: string) => boolean` | Roll back to last snapshot with matching title | +| `reset()` | `() => void` | Return to initial state | +| `destroy()` | `() => void` | Cleanup plugins and cancel async validations | +| `state.errors` | `Readable` | Sync validation errors store | +| `state.hasErrors` | `Readable` | Has sync errors? | +| `state.isDirty` | `Readable` | Has state changed? (derived from `isDirtyByField`) | +| `state.isDirtyByField` | `Readable` | Per-field dirty tracking (dot-notation paths) | +| `state.actionInProgress` | `Readable` | Is action running? | +| `state.actionError` | `Readable` | Last action error | +| `state.snapshots` | `Readable` | Undo history | +| `state.asyncErrors` | `Readable` | Async validation errors (keyed by path) | +| `state.hasAsyncErrors` | `Readable` | Has async errors? | +| `state.asyncValidating` | `Readable` | Paths currently validating | +| `state.hasCombinedErrors` | `Readable` | Has sync OR async errors? | ### Built-in Validators @@ -1093,7 +1092,7 @@ import type { | --------------------------- | --------------------------------------------------------------------------------------------------- | | `Validator` | Nested object type for validation errors — leaf values are error strings (empty = valid) | | `EffectContext` | Context object passed to effect callbacks: `{ snapshot, target, property, currentValue, oldValue }` | -| `SnapshotFunction` | Type for the `snapshot(title, replace?)` function used in effects | +| `SnapshotFunction` | Type for the `snapshot(title, shouldReplace?)` function used in effects | | `Snapshot` | Shape of a snapshot entry: `{ title: string; data: T }` | | `SvStateOptions` | Configuration options type for `createSvState` | | `AsyncValidator` | Object mapping property paths to async validator functions | diff --git a/demo/eslint.config.mjs b/demo/eslint.config.mjs index 66c63bf..9d097d2 100644 --- a/demo/eslint.config.mjs +++ b/demo/eslint.config.mjs @@ -35,7 +35,7 @@ export default [ }, ...compat.extends('eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'), ...svelte.configs.recommended, - unicorn.configs.all, + unicorn.configs.recommended, { plugins: { '@typescript-eslint': typescriptEslint, @@ -66,6 +66,20 @@ export default [ 'svelte/prefer-const': 'error', 'unicorn/filename-case': 'off', 'unicorn/prefer-global-this': 'off', + // Svelte store auto-subscriptions (e.g. `$errors`) aren't declared JS variables, + // so this rule can't see them and flags every optional-chain access as unbound. + 'unicorn/no-optional-chaining-on-undeclared-variable': 'off', + // Reassigning top-level `$state`/`let` bindings from event handlers and effects + // is the standard Svelte 5 component pattern, not the module-level mutation + // anti-pattern this rule targets. + 'unicorn/no-top-level-assignment-in-function': 'off', + // The demo pages intentionally show plain object literals with methods that use + // `this` (see CalculatedClass.svelte) to demonstrate svstate's prototype-preserving + // deep clone — a valid, common JS pattern this rule doesn't allow. + 'unicorn/no-this-outside-of-class': 'off', + // Several pages embed Svelte template snippets as documentation strings (e.g. + // `formSourceCode`), whose `{expr}` markup this rule misreads as a forgotten `$`. + 'unicorn/no-incorrect-template-string-interpolation': 'off', 'no-alert': 'error', 'no-console': 'error', 'no-debugger': 'error' diff --git a/demo/package-lock.json b/demo/package-lock.json index 0e4d1cd..514fc1c 100644 --- a/demo/package-lock.json +++ b/demo/package-lock.json @@ -8,31 +8,31 @@ "name": "svstate-demo", "version": "1.0.0", "dependencies": { - "svelte": "^5.56.1", + "svelte": "^5.56.8", "zod": "^4.4.3" }, "devDependencies": { - "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tailwindcss/postcss": "^4.3.0", - "@tailwindcss/vite": "^4.3.0", + "@sveltejs/vite-plugin-svelte": "^7.2.0", + "@tailwindcss/postcss": "^4.3.3", + "@tailwindcss/vite": "^4.3.3", "@tsconfig/svelte": "^5.0.8", - "@typescript-eslint/eslint-plugin": "^8.60.1", - "@typescript-eslint/parser": "^8.60.1", - "eslint": "^10.4.1", + "@typescript-eslint/eslint-plugin": "^8.65.0", + "@typescript-eslint/parser": "^8.65.0", + "eslint": "^10.8.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-simple-import-sort": "^13.0.0", - "eslint-plugin-svelte": "^3.19.0", - "eslint-plugin-unicorn": "^64.0.0", - "postcss": "^8.5.15", - "prettier": "^3.8.3", - "prettier-plugin-svelte": "^4.1.0", - "svelte-check": "^4.5.0", - "svelte-eslint-parser": "^1.7.1", + "eslint-plugin-simple-import-sort": "^14.0.0", + "eslint-plugin-svelte": "^3.22.0", + "eslint-plugin-unicorn": "^72.0.0", + "postcss": "^8.5.25", + "prettier": "^3.9.6", + "prettier-plugin-svelte": "^4.1.1", + "svelte-check": "^4.7.4", + "svelte-eslint-parser": "^1.8.0", "svelte-preprocess": "^6.0.5", - "tailwindcss": "^4.3.0", + "tailwindcss": "^4.3.3", "tslib": "^2.8.1", "typescript": "^6.0.3", - "vite": "^8.0.16" + "vite": "^8.2.0" }, "engines": { "node": ">=20", @@ -52,32 +52,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "version": "2.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-2.0.0-alpha.3.tgz", + "integrity": "sha512-AZypUeJ/yByuxyS7BlSNRDOMLMlROYtjYdIAuBmJssVz1UJDSeYxLrdizhXCFYhedC5bqd/ASy8EuNXbVVXp9g==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.2.1", + "@emnapi/wasi-threads": "2.0.1", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "version": "2.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-2.0.0-alpha.3.tgz", + "integrity": "sha512-hFPAhMUjJD9BSyCANEISPOogeXC9Zo9ZQl7L6vKnaVsMkCtzznaW/naYypeyl0Gv5rYfWYsZbpixTMpjDJzQeA==", "dev": true, "license": "MIT", "optional": true, @@ -86,9 +76,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", - "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-2.0.1.tgz", + "integrity": "sha512-9DsSk+o5NBX0CCJT8s0EROGSGxjR/tKu6aBTaVyq+SjAEQH4XcdcRxPBRzsBLizTTJ49MJjF+jgu3qnO9GLQcQ==", "dev": true, "license": "MIT", "optional": true, @@ -97,9 +87,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", - "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", "dev": true, "license": "MIT", "dependencies": { @@ -141,9 +131,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz", - "integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.7.0.tgz", + "integrity": "sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -166,6 +156,20 @@ "node": "^20.19.0 || ^22.13.0 || >=24" } }, + "node_modules/@eslint/css-tree": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@eslint/css-tree/-/css-tree-4.0.5.tgz", + "integrity": "sha512-iPmijIAq4hlIJB86PYmY/fcZORHtjphSqICDbwuw32A/JmkhZQ/K/6TjHE03zqf3n5yABpVcbRAMG8Mi9ojy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.29.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, "node_modules/@eslint/object-schema": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", @@ -191,29 +195,43 @@ } }, "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, "engines": { "node": ">=18.18.0" } }, "node_modules/@humanfs/node": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", - "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@humanfs/core": "^0.19.1", + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", "@humanwhocodes/retry": "^0.4.0" }, "engines": { "node": ">=18.18.0" } }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -288,28 +306,31 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", - "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.2.tgz", + "integrity": "sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@tybys/wasm-util": "^0.10.1" + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/Brooooooklyn" }, "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.3", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.3" } }, "node_modules/@oxc-project/types": { - "version": "0.133.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz", - "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.142.0.tgz", + "integrity": "sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==", "dev": true, "license": "MIT", "funding": { @@ -317,9 +338,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", - "integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.1.tgz", + "integrity": "sha512-02hOeOSryYxVrOIphmLAsqnCJWxwlzFk+pEt/N/i6OgT3lShHO7xGCU5cpgchRDHboAEbSjzgGh+O/u1GswQmA==", "cpu": [ "arm64" ], @@ -334,9 +355,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz", - "integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.1.tgz", + "integrity": "sha512-fMsTOnN0OjFm3CyppWPitKnc8UlliVARUULW6cfU6AIqjdtgmSFWSk9vecHzZduv/yMWIHDlRhM1e8Iff9uAfA==", "cpu": [ "arm64" ], @@ -351,9 +372,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz", - "integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.1.tgz", + "integrity": "sha512-1wjKdz/XLGKHaTNHjQveQ/B23TKx4ItAqm1JbyVuvNPc4Ze0Fb48s49TAd/2zcplPl8okE/UbTgmlVfwT7eFeQ==", "cpu": [ "x64" ], @@ -368,9 +389,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz", - "integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.1.tgz", + "integrity": "sha512-Fa0jHR07E7YBN4vOEsbVf2briYNsuOowfLJaXULZM0ldMlaCaj2LJgLMbMe4iacRyZmvR8efFhgR9wKuGclQUg==", "cpu": [ "x64" ], @@ -385,9 +406,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz", - "integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.1.tgz", + "integrity": "sha512-pzkgu1SSHGgRRyRZ4fbmSgmajbVt+epaLP99NDjFft69v/ypfTi6swBMiVdh2EkQ0OSnHE1lZDM7DRGkyAzUpA==", "cpu": [ "arm" ], @@ -402,13 +423,16 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz", - "integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.1.tgz", + "integrity": "sha512-QI5SEDY8cbiYWHx0VO4vIc3UlS6a32vXHjU8Qy/17adEmZIPuByJg13UEvo9c/UCiUkdcVWY83C+b+JrwnNyUg==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -419,13 +443,16 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz", - "integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.1.tgz", + "integrity": "sha512-Sm41FyCeXqmYcERoYOCbGIL5hNfd8w9LQ7Y61Bev48HkcjaJqV/iiVOaiDxjVTRMS+QKrZmD8cfPt4uMVnvM+A==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -436,13 +463,16 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz", - "integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.1.tgz", + "integrity": "sha512-2x+WhXTGl9yJYPbltW/BSEPTVz9OIWQyER4N+gJEDWkkn904eRcBzELqh/Hf7K0w/ubGbKNMv0ZC+94QK/IFEg==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -453,13 +483,16 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz", - "integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.1.tgz", + "integrity": "sha512-eEjmQpuRQayHPWWnywaWHkFT3ToPbP3RYy42VVd/B9aBGDA+Ol25EIWHxKQST3IiWJjikCWUF7KtbfqwZrzVwQ==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -470,13 +503,16 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz", - "integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.1.tgz", + "integrity": "sha512-/Orga1fZYkLc/56jBICcHrKchl8Z2UKdDSr3LG9ToWO1lQ6a4Livk9Xz+9WN91zsz5QR3XQz2NNoSDEvP6qadw==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -487,13 +523,16 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz", - "integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.1.tgz", + "integrity": "sha512-xxBJRL+0q0Kce7orznGWLuylHDY65vuARXZRpX+hPdv+DqK2c3NlCsVA98tlWzWNEE7yPqA/1NQ5nnCrj49Y5A==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -504,9 +543,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz", - "integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.1.tgz", + "integrity": "sha512-M6AdXIXw3s+/8XpKMzdGDEXGS1S7kwUsy+rcTIUIOx5Ge4nXKCtAFHFV9YKkXvGcC5WMoTjAteLzlsQROVI0Yw==", "cpu": [ "arm64" ], @@ -521,28 +560,25 @@ } }, "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz", - "integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==", - "cpu": [ - "wasm32" - ], + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.2.1.tgz", + "integrity": "sha512-/TX0SoRGojHzSAHpfVBbavRVSazg5U3h3Y3VXfcc0cdugq6kxdqw8LPGFiPr+/7gE/60zRcsOY2Vi9b9eT0jww==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "1.10.0", - "@emnapi/runtime": "1.10.0", - "@napi-rs/wasm-runtime": "^1.1.4" + "@emnapi/core": "2.0.0-alpha.3", + "@emnapi/runtime": "2.0.0-alpha.3", + "@napi-rs/wasm-runtime": "^1.2.0" }, "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz", - "integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.1.tgz", + "integrity": "sha512-EvRrivJieyHG+AO9lleZWgq+g0+S7oV2C51yuqlcyU/R9net+sI4Pj0F+lUoP2bEr6TWX3SqFaaS0SzfLxSzkw==", "cpu": [ "arm64" ], @@ -557,9 +593,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz", - "integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.1.tgz", + "integrity": "sha512-Z4eCmn5QJ/5+azF9knpLWKfVd9aidn0mAe9TpJgvBLId9Ax3t0+JVxBmT25Bv7NBbVW1TZyKjQjQReouMeH5UQ==", "cpu": [ "x64" ], @@ -581,18 +617,28 @@ "license": "MIT" }, "node_modules/@sveltejs/acorn-typescript": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.10.tgz", - "integrity": "sha512-4WfKk68eTih+MiJD4fSbxN7E8kVBmTMPWHUPYjvl2N0rMs53YLTT8/YjKU5Dtnz5LqDjl7LEw4U7lXR2W3J5WA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.11.tgz", + "integrity": "sha512-LFuZUkjJ9iF7JZye/aG5XM0SFcQ5VyL0oVX4WJ9dc0Va3R3s0OauX1BESVCb+YN/ol8TAfqGDDAQsTG627Y5kw==", "license": "MIT", "peerDependencies": { "acorn": "^8.9.0" } }, + "node_modules/@sveltejs/load-config": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@sveltejs/load-config/-/load-config-0.2.1.tgz", + "integrity": "sha512-5m3B2cbqQ4TbwW6Xkh66Ntw6dD7gNc77cCxABTTesWcq9jxIzMgTk97pZx5vEtvQx8iokgi7GIphqZe+PGwcZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.0.0" + } + }, "node_modules/@sveltejs/vite-plugin-svelte": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-7.1.2.tgz", - "integrity": "sha512-DrUBA2UXRfDmUX/ZTiEopd3X40yavsJF1FX2RygcuIScHL7o5YX1fMvoYnDhjeJQC4weCOklirpNWlcb2NiSeA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-7.2.0.tgz", + "integrity": "sha512-1SpkuMSRLfugrVX+IrKfE1RUegzo8AQzKQ6qQPfVzbcWi5IhuTPaKb5ZrLpucleFznkc4/RTeSPoRnGWFxX+EQ==", "dev": true, "license": "MIT", "dependencies": { @@ -610,49 +656,49 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.0.tgz", - "integrity": "sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz", + "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.5", - "enhanced-resolve": "^5.21.0", - "jiti": "^2.6.1", + "enhanced-resolve": "^5.24.1", + "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", - "tailwindcss": "4.3.0" + "tailwindcss": "4.3.3" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.0.tgz", - "integrity": "sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz", + "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==", "dev": true, "license": "MIT", "engines": { "node": ">= 20" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.3.0", - "@tailwindcss/oxide-darwin-arm64": "4.3.0", - "@tailwindcss/oxide-darwin-x64": "4.3.0", - "@tailwindcss/oxide-freebsd-x64": "4.3.0", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.0", - "@tailwindcss/oxide-linux-arm64-gnu": "4.3.0", - "@tailwindcss/oxide-linux-arm64-musl": "4.3.0", - "@tailwindcss/oxide-linux-x64-gnu": "4.3.0", - "@tailwindcss/oxide-linux-x64-musl": "4.3.0", - "@tailwindcss/oxide-wasm32-wasi": "4.3.0", - "@tailwindcss/oxide-win32-arm64-msvc": "4.3.0", - "@tailwindcss/oxide-win32-x64-msvc": "4.3.0" + "@tailwindcss/oxide-android-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-x64": "4.3.3", + "@tailwindcss/oxide-freebsd-x64": "4.3.3", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-x64-musl": "4.3.3", + "@tailwindcss/oxide-wasm32-wasi": "4.3.3", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.0.tgz", - "integrity": "sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz", + "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==", "cpu": [ "arm64" ], @@ -667,9 +713,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.0.tgz", - "integrity": "sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", + "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==", "cpu": [ "arm64" ], @@ -684,9 +730,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.0.tgz", - "integrity": "sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz", + "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==", "cpu": [ "x64" ], @@ -701,9 +747,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.0.tgz", - "integrity": "sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz", + "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==", "cpu": [ "x64" ], @@ -718,9 +764,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.0.tgz", - "integrity": "sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz", + "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==", "cpu": [ "arm" ], @@ -735,13 +781,16 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.0.tgz", - "integrity": "sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz", + "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -752,13 +801,16 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.0.tgz", - "integrity": "sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz", + "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -769,13 +821,16 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.0.tgz", - "integrity": "sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz", + "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -786,13 +841,16 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.0.tgz", - "integrity": "sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz", + "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -803,9 +861,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.0.tgz", - "integrity": "sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz", + "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -821,11 +879,11 @@ "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.10.0", - "@emnapi/runtime": "^1.10.0", - "@emnapi/wasi-threads": "^1.2.1", + "@emnapi/core": "^1.11.1", + "@emnapi/runtime": "^1.11.1", + "@emnapi/wasi-threads": "^1.2.2", "@napi-rs/wasm-runtime": "^1.1.4", - "@tybys/wasm-util": "^0.10.1", + "@tybys/wasm-util": "^0.10.2", "tslib": "^2.8.1" }, "engines": { @@ -833,9 +891,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.0.tgz", - "integrity": "sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", + "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==", "cpu": [ "arm64" ], @@ -850,9 +908,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.0.tgz", - "integrity": "sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz", + "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==", "cpu": [ "x64" ], @@ -867,29 +925,29 @@ } }, "node_modules/@tailwindcss/postcss": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.0.tgz", - "integrity": "sha512-Jm05Tjx+9yCLGv5qw1c+84Psds8MnyrEQYCB+FFk2lgGiUjlRqdxke4mVTuYrj2xnVZqKim2Apr5ySuQRYAw/w==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.3.tgz", + "integrity": "sha512-JTSZZGQi1AyKirbLN3azmjVzef92tcX7h+iSqPdaeStyFpGpDlKvvpxeOE8njhbUanbRwr3z8DyzhICWnMtQeg==", "dev": true, "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.3.0", - "@tailwindcss/oxide": "4.3.0", - "postcss": "^8.5.10", - "tailwindcss": "4.3.0" + "@tailwindcss/node": "4.3.3", + "@tailwindcss/oxide": "4.3.3", + "postcss": "^8.5.16", + "tailwindcss": "4.3.3" } }, "node_modules/@tailwindcss/vite": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.0.tgz", - "integrity": "sha512-t6J3OrB5Fc0ExuhohouH0fWUGMYL6PTLhW+E7zIk/pdbnJARZDCwjBznFnkh5ynRnIRSI4YjtTH0t6USjJISrw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.3.tgz", + "integrity": "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==", "dev": true, "license": "MIT", "dependencies": { - "@tailwindcss/node": "4.3.0", - "@tailwindcss/oxide": "4.3.0", - "tailwindcss": "4.3.0" + "@tailwindcss/node": "4.3.3", + "@tailwindcss/oxide": "4.3.3", + "tailwindcss": "4.3.3" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" @@ -903,9 +961,9 @@ "license": "MIT" }, "node_modules/@tybys/wasm-util": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", - "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", "dev": true, "license": "MIT", "optional": true, @@ -921,9 +979,9 @@ "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==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", "license": "MIT" }, "node_modules/@types/json-schema": { @@ -940,17 +998,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.60.1.tgz", - "integrity": "sha512-JQ4S5GB0tfjO8BuJ4fcX+HodkzJjYBV+7OJ+wLygaX7OGQ7FudyHL4NSCA6ob+w3Yn+5MkKIozOwQhXeM7opVg==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.65.0.tgz", + "integrity": "sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.60.1", - "@typescript-eslint/type-utils": "8.60.1", - "@typescript-eslint/utils": "8.60.1", - "@typescript-eslint/visitor-keys": "8.60.1", + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/type-utils": "8.65.0", + "@typescript-eslint/utils": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -963,22 +1021,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.60.1", + "@typescript-eslint/parser": "^8.65.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.60.1.tgz", - "integrity": "sha512-A0M6ua6H252bVjPvvtSgl2QA4+ET9S5Mtkb2GDyTxIhH/C4qDItT7RQNO5PhMC6NXGYXOR9dIalcDDgBKT7oFA==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.65.0.tgz", + "integrity": "sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.60.1", - "@typescript-eslint/types": "8.60.1", - "@typescript-eslint/typescript-estree": "8.60.1", - "@typescript-eslint/visitor-keys": "8.60.1", + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0", "debug": "^4.4.3" }, "engines": { @@ -994,14 +1052,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.60.1.tgz", - "integrity": "sha512-eXkTH2bxmXlqD1RnOPmLZ9ZM9D3VwSx04JOwBnP9RQ+yUA5a2Mu7SfW8uaV2Aon53NJzZlZYuX7tn91Izf+xaw==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.65.0.tgz", + "integrity": "sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.60.1", - "@typescript-eslint/types": "^8.60.1", + "@typescript-eslint/tsconfig-utils": "^8.65.0", + "@typescript-eslint/types": "^8.65.0", "debug": "^4.4.3" }, "engines": { @@ -1016,14 +1074,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.60.1.tgz", - "integrity": "sha512-gvI5OQoptnxQnchOirukCuQ55svJSTuD/4k5+pC267xyBtYry748R9/c3tYUzb/iE6RZfllRz2lVulLCHkTm4w==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.65.0.tgz", + "integrity": "sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.60.1", - "@typescript-eslint/visitor-keys": "8.60.1" + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1034,9 +1092,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.60.1.tgz", - "integrity": "sha512-nh8w4qAteiKuZu3pSSzG/yGKpw0OlkrKnzFmbVRenKaD4qc+7i1GrmZaLVkr8rk4uipiPGMOW4YsM6WmKZ5CvA==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.65.0.tgz", + "integrity": "sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg==", "dev": true, "license": "MIT", "engines": { @@ -1051,15 +1109,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.60.1.tgz", - "integrity": "sha512-sdwTrpjosW7ANQYJ39ZBF1ZyEMEGVB2UsikrserVM/30a/F1dTLnu9bGxEdosugyu5caigjLrR2qiD11asjI1A==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.65.0.tgz", + "integrity": "sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.60.1", - "@typescript-eslint/typescript-estree": "8.60.1", - "@typescript-eslint/utils": "8.60.1", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0", + "@typescript-eslint/utils": "8.65.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -1076,9 +1134,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.60.1.tgz", - "integrity": "sha512-4h0tY8ppCkdCzcrl2YM5M3my0xsE1Tf8om3owEu5oPWmXwkKRmk0j0LGDzYBGUcAlesEbxBhazqu/K4cu3Ug7w==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.65.0.tgz", + "integrity": "sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==", "devOptional": true, "license": "MIT", "engines": { @@ -1090,16 +1148,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.60.1.tgz", - "integrity": "sha512-alpRkfG8hlVE5kdJW2GkfgDgXxold3e8e4l6EnmhRmRLbekgAPCCGDVD++sABy9FcgPFroq+uFcCSM1vR57Cew==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.65.0.tgz", + "integrity": "sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.60.1", - "@typescript-eslint/tsconfig-utils": "8.60.1", - "@typescript-eslint/types": "8.60.1", - "@typescript-eslint/visitor-keys": "8.60.1", + "@typescript-eslint/project-service": "8.65.0", + "@typescript-eslint/tsconfig-utils": "8.65.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -1118,16 +1176,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.60.1.tgz", - "integrity": "sha512-h2MPBLoNtjc3qZWfY3Tl51yPorQ2McHn8pJfcMNTcIvrrZrr90Ykffit0yjrPFWQcRcUxzH20+6OcVdW4yHtUg==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.65.0.tgz", + "integrity": "sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.60.1", - "@typescript-eslint/types": "8.60.1", - "@typescript-eslint/typescript-estree": "8.60.1" + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1142,13 +1200,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.60.1.tgz", - "integrity": "sha512-EbGRQg4FhrmwLodl+t3JNAnXHWVr9Vp+Zl1QBZVPY4ByfkzIT8cX3K6QWODHtkIZqqJVEWvhHSx3v5PDHsaQag==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.65.0.tgz", + "integrity": "sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.60.1", + "@typescript-eslint/types": "8.65.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -1173,9 +1231,9 @@ } }, "node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -1195,9 +1253,9 @@ } }, "node_modules/ajv": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", - "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", "dependencies": { @@ -1240,9 +1298,9 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.10.13", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.13.tgz", - "integrity": "sha512-BL2sTuHOdy0YT1lYieUxTw/QMtPBC3pmlJC6xk8BBYVv6vcw3SGdKemQ+Xsx9ik2F/lYDO9tqsFQH1r9PFuHKw==", + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.8.tgz", + "integrity": "sha512-zAgkquC2WYF0PIc6XbNYkA2uuxxFavzgmX61R+dHDUa558V8Ejf8ozTZFR6QzM24RWu4kBcRkhJ5kpz77j9fnQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -1253,22 +1311,22 @@ } }, "node_modules/brace-expansion": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", - "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/browserslist": { - "version": "4.28.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", - "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "version": "4.28.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.7.tgz", + "integrity": "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==", "dev": true, "funding": [ { @@ -1286,10 +1344,10 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.10.12", - "caniuse-lite": "^1.0.30001782", - "electron-to-chromium": "^1.5.328", - "node-releases": "^2.0.36", + "baseline-browser-mapping": "^2.10.44", + "caniuse-lite": "^1.0.30001806", + "electron-to-chromium": "^1.5.393", + "node-releases": "^2.0.51", "update-browserslist-db": "^1.2.3" }, "bin": { @@ -1300,9 +1358,9 @@ } }, "node_modules/builtin-modules": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-5.0.0.tgz", - "integrity": "sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-5.3.0.tgz", + "integrity": "sha512-hMQUl2bUFG339QygPM97E+mc8OY1IAchORZxm4a/frcYwKzozMzRVDBwHW0NjOqGElLm2O37AVQE8ikxlZHrMQ==", "dev": true, "license": "MIT", "engines": { @@ -1313,9 +1371,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001782", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001782.tgz", - "integrity": "sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==", + "version": "1.0.30001806", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz", + "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==", "dev": true, "funding": [ { @@ -1372,29 +1430,6 @@ "node": ">=8" } }, - "node_modules/clean-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", - "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/clean-regexp/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -1404,6 +1439,19 @@ "node": ">=6" } }, + "node_modules/convert-hrtime": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/core-js-compat": { "version": "3.49.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", @@ -1481,6 +1529,19 @@ "node": ">=0.10.0" } }, + "node_modules/detect-indent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-7.0.2.tgz", + "integrity": "sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", @@ -1492,22 +1553,22 @@ } }, "node_modules/devalue": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.8.1.tgz", - "integrity": "sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.9.0.tgz", + "integrity": "sha512-RWrqdArjvPbsATEhOPUo6Wndc/iWnkWKlhIrdlF3zMMYo/c3CVtoaVAyLtWxz5h8nSlkHzxnzV2uLydPXmtF+A==", "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.329", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.329.tgz", - "integrity": "sha512-/4t+AS1l4S3ZC0Ja7PHFIWeBIxGA3QGqV8/yKsP36v7NcyUCl+bIcmw6s5zVuMIECWwBrAK/6QLzTmbJChBboQ==", + "version": "1.5.399", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.399.tgz", + "integrity": "sha512-lEcqhErbHjXRvd41rnWLpzbyU/IXfIYo7QwaFWmxGeLiLyY2TBCdHnWY88vB+p3ubnihRypDm66panXl7TylLA==", "dev": true, "license": "ISC" }, "node_modules/enhanced-resolve": { - "version": "5.22.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.22.1.tgz", - "integrity": "sha512-6QEuw3zoX1SJQc7b87aBXke/no+mG2bTBgw29gWMQonLmpEkWoCAVkl+M49e48AZlWzxiDzDZzYdp6kobcyLww==", + "version": "5.24.5", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", + "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==", "dev": true, "license": "MIT", "dependencies": { @@ -1518,6 +1579,19 @@ "node": ">=10.13.0" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -1542,16 +1616,19 @@ } }, "node_modules/eslint": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.4.1.tgz", - "integrity": "sha512-AyIKhnOBuOAdueD7RB3xB+YeAWScb9jHsJBgH2Hcde8InP5JYhqrRR6iTMHyTEwgENK54Cp44e4v8BwNhsuHuw==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.8.0.tgz", + "integrity": "sha512-nuKKvN+oIBO0koN7Tm7dlkmnkc21mtt0QJLwAKzjLq14y6lRTdVG36MZHJ8eQHwdJMwZbQNMlPOYedMq/oVJvQ==", "dev": true, "license": "MIT", + "workspaces": [ + "packages/*" + ], "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", "@eslint/config-array": "^0.23.5", - "@eslint/config-helpers": "^0.6.0", + "@eslint/config-helpers": "^0.7.0", "@eslint/core": "^1.2.1", "@eslint/plugin-kit": "^0.7.2", "@humanfs/node": "^0.16.6", @@ -1575,7 +1652,7 @@ "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "minimatch": "^10.2.4", + "minimatch": "^10.2.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -1614,9 +1691,9 @@ } }, "node_modules/eslint-plugin-simple-import-sort": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-13.0.0.tgz", - "integrity": "sha512-McAc+/Nlvcg4byY/CABGH8kqnefWBj8s3JA2okEtz8ixbECQgU46p0HkTUKa4YS7wvgGceimlc34p1nXqbWqtA==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-14.0.0.tgz", + "integrity": "sha512-NUJO0+XFCkk+o5EsAJruTgnfMEpeWrPWeJS15UVF60GgXmqz1BJ9/3hzlvG7lkL8Bubzos5cCLptThbFfPnSMQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -1624,9 +1701,9 @@ } }, "node_modules/eslint-plugin-svelte": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-3.19.0.tgz", - "integrity": "sha512-t3rNaZeXz4d2gG4uJyMEYfJCFKf22+SWbSizIIXIWKu4wM+XPLiMWuSSr/C5821JmFeN9ogK+eExbG+z+twyxw==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-3.22.0.tgz", + "integrity": "sha512-O3qn0NePTWta+1o25dIThqeEP/hEQ3VxDK2LVO8SQ5wG9umLMvulK+m1yQ4JGOb2Pkl8IB0G1lpRV/HXDXSLTQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1658,43 +1735,47 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "64.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-64.0.0.tgz", - "integrity": "sha512-rNZwalHh8i0UfPlhNwg5BTUO1CMdKNmjqe+TgzOTZnpKoi8VBgsW7u9qCHIdpxEzZ1uwrJrPF0uRb7l//K38gA==", + "version": "72.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-72.0.0.tgz", + "integrity": "sha512-hqO6ksoOHO+ZhdseTuKRVQbx9U7PRO/cv8qAR1mctwzdVO2hYud8uS9luAhp43RJgziYgHAph8eHyipT8GL0ng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", "@eslint-community/eslint-utils": "^4.9.1", + "@eslint/css-tree": "^4.0.4", + "browserslist": "^4.28.4", "change-case": "^5.4.4", "ci-info": "^4.4.0", - "clean-regexp": "^1.0.0", "core-js-compat": "^3.49.0", + "detect-indent": "^7.0.2", + "entities": "^4.5.0", "find-up-simple": "^1.0.1", - "globals": "^17.4.0", + "globals": "^17.7.0", "indent-string": "^5.0.0", "is-builtin-module": "^5.0.0", - "jsesc": "^3.1.0", + "is-identifier": "^1.1.0", "pluralize": "^8.0.0", - "regexp-tree": "^0.1.27", - "regjsparser": "^0.13.0", - "semver": "^7.7.4", - "strip-indent": "^4.1.1" + "quote-js-string": "^0.1.0", + "regjsparser": "^0.13.2", + "reserved-identifiers": "^1.2.0", + "semver": "^7.8.5", + "strip-indent": "^4.1.1", + "yaml": "^2.9.0" }, "engines": { - "node": "^20.10.0 || >=21.0.0" + "node": ">=22" }, "funding": { "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" }, "peerDependencies": { - "eslint": ">=9.38.0" + "eslint": ">=10.4" } }, "node_modules/eslint-plugin-unicorn/node_modules/globals": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.4.0.tgz", - "integrity": "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==", + "version": "17.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.8.0.tgz", + "integrity": "sha512-Zz/LMDZScFmkakeL2cTHzf+PbWKdpU3uclqkZT7TjDG58j5WPt0PpA+n9uPI24fZtlw07q0OtEi84K+umsRzqQ==", "dev": true, "license": "MIT", "engines": { @@ -1810,9 +1891,9 @@ } }, "node_modules/esrap": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.10.tgz", - "integrity": "sha512-HUTyxhhAQBl1hhsyLlHD1sh9xF6o6vaejzLxK5sge+LzrdEflQPQaNhC+n98d+OVB8v3LCCF+y80x/4bACjjJw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.3.0.tgz", + "integrity": "sha512-GQ/7RN8uOtEfNpzZzBMTzW9JBcX42oaSVtPzdF+6cEL8pqIL094iUpr9jzYGn4O4P/1S60dJ6izyT8F4LYARng==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -1956,9 +2037,9 @@ } }, "node_modules/flatted": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", - "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", "dev": true, "license": "ISC" }, @@ -1977,6 +2058,19 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-timeout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.2.tgz", + "integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -2010,10 +2104,26 @@ "dev": true, "license": "ISC" }, + "node_modules/identifier-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/identifier-regex/-/identifier-regex-1.1.0.tgz", + "integrity": "sha512-SLX4H/vtcYlYnL7XqnuJKHU7Z8517TgsW9nmQiGOgMCjQ8V/deLYu6bEmbGoXe7WMMhc9+EUGyFFneHja8KabA==", + "dev": true, + "license": "MIT", + "dependencies": { + "reserved-identifiers": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", "dev": true, "license": "MIT", "engines": { @@ -2082,6 +2192,23 @@ "node": ">=0.10.0" } }, + "node_modules/is-identifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-identifier/-/is-identifier-1.1.0.tgz", + "integrity": "sha512-NhOds0mDx9lJu+1lBRO0xbwFo5nobA7GCk/0e5xjr6+6XugX985+0OyGX35BNrTkPAsdLcIKg02HUQJOK8D8kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "identifier-regex": "^1.1.0", + "super-regex": "^1.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-reference": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", @@ -2099,9 +2226,9 @@ "license": "ISC" }, "node_modules/jiti": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", - "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", "dev": true, "license": "MIT", "bin": { @@ -2316,6 +2443,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2337,6 +2467,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2358,6 +2491,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2379,6 +2515,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2475,14 +2614,39 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, + "node_modules/make-asynchronous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/make-asynchronous/-/make-asynchronous-1.1.0.tgz", + "integrity": "sha512-ayF7iT+44LXdxJLTrTd3TLQpFDDvPCBxXxbv+pMUSuHA5Q8zyAfwkRP6aHHwNVFBUFWtxAHqwNJxF8vMZLAbVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-event": "^6.0.0", + "type-fest": "^4.6.0", + "web-worker": "^1.5.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdn-data": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.29.0.tgz", + "integrity": "sha512-pVxQFCcaYUEAH853+v7yoI/qzhxXSq1bTb9obMYGYAN1c3Hen+XDCEvr296XhstrwlSTNgOR7mCSD4JPjbJe5A==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.5" + "brace-expansion": "^5.0.8" }, "engines": { "node": "18 || 20 || >=22" @@ -2509,9 +2673,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", - "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", "dev": true, "funding": [ { @@ -2535,22 +2699,28 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.36", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", - "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", + "version": "2.0.51", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.51.tgz", + "integrity": "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "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==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", + "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", "dev": true, "funding": [ "https://github.com/sponsors/sxzz", "https://opencollective.com/debug" ], - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } }, "node_modules/optionator": { "version": "0.9.4", @@ -2570,6 +2740,22 @@ "node": ">= 0.8.0" } }, + "node_modules/p-event": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.1.tgz", + "integrity": "sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -2602,6 +2788,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-timeout": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -2630,9 +2829,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { @@ -2653,9 +2852,9 @@ } }, "node_modules/postcss": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", - "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", "dev": true, "funding": [ { @@ -2673,7 +2872,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -2776,9 +2975,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "dev": true, "license": "MIT", "dependencies": { @@ -2800,9 +2999,9 @@ } }, "node_modules/prettier": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz", - "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz", + "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", "dev": true, "license": "MIT", "bin": { @@ -2816,9 +3015,9 @@ } }, "node_modules/prettier-plugin-svelte": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-4.1.0.tgz", - "integrity": "sha512-YZkhA2Q9oOerFFG9tq+2f98WYT7Z2JgrybJrAyrB78jpsH9i/DdgplXemehuFPgsldetFNCcR/yCcYlDjPy94Q==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-4.1.1.tgz", + "integrity": "sha512-wXvbXMjSvb4C9ENWTHXyd+ihakKCsJ6rJhLP6/8HFNj4GkZr48jqL9PoKsl2sk7SyCZRTnJ7O2TTowUpOxP/KA==", "dev": true, "license": "MIT", "engines": { @@ -2839,6 +3038,19 @@ "node": ">=6" } }, + "node_modules/quote-js-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/quote-js-string/-/quote-js-string-0.1.0.tgz", + "integrity": "sha512-Y3NoRtprEEZQD8RfxMCfS0ZTqc4e+i18OrXEXAvpM6TfC/3y+0L5rNbZiSnbBBEkDfFzbpd8o+cE8q3/anjMGA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22" + }, + "funding": { + "url": "https://github.com/sindresorhus/quote-js-string?sponsor=1" + } + }, "node_modules/readdirp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", @@ -2853,20 +3065,10 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/regexp-tree": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", - "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", - "dev": true, - "license": "MIT", - "bin": { - "regexp-tree": "bin/regexp-tree" - } - }, "node_modules/regjsparser": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", - "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.2.tgz", + "integrity": "sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2876,14 +3078,27 @@ "regjsparser": "bin/parser" } }, + "node_modules/reserved-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/reserved-identifiers/-/reserved-identifiers-1.2.0.tgz", + "integrity": "sha512-yE7KUfFvaBFzGPs5H3Ops1RevfUEsDc5Iz65rOwWg4lE8HJSYtle77uul3+573457oHvBKuHYDl/xqUkKpEEdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/rolldown": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz", - "integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.1.tgz", + "integrity": "sha512-4FKJhg8d3OiyQOA6Q1Q0hoFFpW9/OoX+VsHzpECsdsIZoOArrAK90gl59YK/Z+gnDel45bgJZK03ozH/9bCqEw==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.133.0", + "@oxc-project/types": "=0.142.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -2893,21 +3108,21 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.3", - "@rolldown/binding-darwin-arm64": "1.0.3", - "@rolldown/binding-darwin-x64": "1.0.3", - "@rolldown/binding-freebsd-x64": "1.0.3", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", - "@rolldown/binding-linux-arm64-gnu": "1.0.3", - "@rolldown/binding-linux-arm64-musl": "1.0.3", - "@rolldown/binding-linux-ppc64-gnu": "1.0.3", - "@rolldown/binding-linux-s390x-gnu": "1.0.3", - "@rolldown/binding-linux-x64-gnu": "1.0.3", - "@rolldown/binding-linux-x64-musl": "1.0.3", - "@rolldown/binding-openharmony-arm64": "1.0.3", - "@rolldown/binding-wasm32-wasi": "1.0.3", - "@rolldown/binding-win32-arm64-msvc": "1.0.3", - "@rolldown/binding-win32-x64-msvc": "1.0.3" + "@rolldown/binding-android-arm64": "1.2.1", + "@rolldown/binding-darwin-arm64": "1.2.1", + "@rolldown/binding-darwin-x64": "1.2.1", + "@rolldown/binding-freebsd-x64": "1.2.1", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.1", + "@rolldown/binding-linux-arm64-gnu": "1.2.1", + "@rolldown/binding-linux-arm64-musl": "1.2.1", + "@rolldown/binding-linux-ppc64-gnu": "1.2.1", + "@rolldown/binding-linux-s390x-gnu": "1.2.1", + "@rolldown/binding-linux-x64-gnu": "1.2.1", + "@rolldown/binding-linux-x64-musl": "1.2.1", + "@rolldown/binding-openharmony-arm64": "1.2.1", + "@rolldown/binding-wasm32-wasi": "1.2.1", + "@rolldown/binding-win32-arm64-msvc": "1.2.1", + "@rolldown/binding-win32-x64-msvc": "1.2.1" } }, "node_modules/sade": { @@ -2924,9 +3139,9 @@ } }, "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { @@ -2982,10 +3197,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/super-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-1.1.0.tgz", + "integrity": "sha512-WHkws2ZflZe41zj6AolvvmaTrWds/VuyeYr9iPVv/oQeaIoVxMKaushfFWpOGDT+GuBrM/sVqF8KUCYQlSSTdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-timeout": "^1.0.1", + "make-asynchronous": "^1.0.1", + "time-span": "^5.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/svelte": { - "version": "5.56.1", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.56.1.tgz", - "integrity": "sha512-eArsJmvl3xZVuTYD852PzIEdg2wgDdIZ1NEsIPbzAukHwi284B18No4nK2rCO9AwsWUDza4Cjvmoa4HaojTl5g==", + "version": "5.56.8", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.56.8.tgz", + "integrity": "sha512-PY8LOw7xP6c8IOiVqdo0sbbZVYhXRSfklOQLAUyGBKqjTX0wx/z4l/9J+PmBpmlLnxzEb1NqltxQ5/wZme/Cmg==", "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.4", @@ -2999,7 +3232,7 @@ "clsx": "^2.1.1", "devalue": "^5.8.1", "esm-env": "^1.2.1", - "esrap": "^2.2.9", + "esrap": "^2.2.12", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", @@ -3010,13 +3243,14 @@ } }, "node_modules/svelte-check": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.5.0.tgz", - "integrity": "sha512-9lNwPxCLWniFvQIcEv1LFqjIxcFtO3smb5+5BKbRJ3ttL4o2lXCej5rLF4DAnfLPI66oaA81vAxw6ILdIWI7kA==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.7.4.tgz", + "integrity": "sha512-IW9ot9YqAoyv8FvyN+eb4ZTe8zgcKZrJLNYU6dzSKkGwEBsSPc4K7lmQ8bKn8W2YMXM6WDfZSSVOaGtekyUfOQ==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", + "@sveltejs/load-config": "^0.2.1", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", @@ -3030,13 +3264,13 @@ }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", - "typescript": ">=5.0.0" + "typescript": "^5.0.0 || ^6.0.0" } }, "node_modules/svelte-eslint-parser": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-1.7.1.tgz", - "integrity": "sha512-mmwwKL9L/MB0QyBKdfyWxGjDuQfEyzxWy5S9Kkd0O/V5XD57MQ33KQtXrO6vKLuP6PIt8CRozvOX1mxpcRTqUg==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-1.8.0.tgz", + "integrity": "sha512-mikR1qwIVy3t5WthUoAXkMwxkXvabZP9FJgdx35Ei7EbGWmctva1Pih16Koeor/bdNNq8NXHlwKGS6NkYTawLg==", "dev": true, "license": "MIT", "dependencies": { @@ -3169,9 +3403,9 @@ } }, "node_modules/tailwindcss": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.0.tgz", - "integrity": "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", + "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", "dev": true, "license": "MIT" }, @@ -3189,6 +3423,22 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/time-span": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "convert-hrtime": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tinyglobby": { "version": "0.2.17", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", @@ -3239,6 +3489,19 @@ "node": ">= 0.8.0" } }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/typescript": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", @@ -3302,16 +3565,16 @@ "license": "MIT" }, "node_modules/vite": { - "version": "8.0.16", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz", - "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.0.tgz", + "integrity": "sha512-pn+CFpM0lwDeKwmOq1ZaBK/9sjorZcgqxki6MbY/jPEVd9vichIlmlD4HmQ5wdP5EgqQCFRaACBxMC7uEGc6lQ==", "dev": true, "license": "MIT", "dependencies": { - "lightningcss": "^1.32.0", - "picomatch": "^4.0.4", - "postcss": "^8.5.15", - "rolldown": "1.0.3", + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.23", + "rolldown": "~1.2.0", "tinyglobby": "^0.2.17" }, "bin": { @@ -3328,7 +3591,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.1.18", + "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", @@ -3379,10 +3642,283 @@ } } }, + "node_modules/vite/node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/vite/node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/vitefu": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.2.tgz", - "integrity": "sha512-zpKATdUbzbsycPFBN71nS2uzBUQiVnFoOrr2rvqv34S1lcAgMKKkjWleLGeiJlZ8lwCXvtWaRn7R3ZC16SYRuw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", + "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", "dev": true, "license": "MIT", "workspaces": [ @@ -3391,7 +3927,7 @@ "tests/projects/workspace/packages/*" ], "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-beta.0" + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "vite": { @@ -3399,6 +3935,13 @@ } } }, + "node_modules/web-worker": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", + "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -3425,6 +3968,22 @@ "node": ">=0.10.0" } }, + "node_modules/yaml": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/demo/package.json b/demo/package.json index 14fd34b..dfe96f5 100644 --- a/demo/package.json +++ b/demo/package.json @@ -19,30 +19,30 @@ "all": "node --run format:fix && node --run lint:fix && node --run ts:check && node --run build" }, "devDependencies": { - "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tailwindcss/postcss": "^4.3.0", - "@tailwindcss/vite": "^4.3.0", + "@sveltejs/vite-plugin-svelte": "^7.2.0", + "@tailwindcss/postcss": "^4.3.3", + "@tailwindcss/vite": "^4.3.3", "@tsconfig/svelte": "^5.0.8", - "@typescript-eslint/eslint-plugin": "^8.60.1", - "@typescript-eslint/parser": "^8.60.1", - "eslint": "^10.4.1", + "@typescript-eslint/eslint-plugin": "^8.65.0", + "@typescript-eslint/parser": "^8.65.0", + "eslint": "^10.8.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-simple-import-sort": "^13.0.0", - "eslint-plugin-svelte": "^3.19.0", - "eslint-plugin-unicorn": "^64.0.0", - "postcss": "^8.5.15", - "prettier": "^3.8.3", - "prettier-plugin-svelte": "^4.1.0", - "svelte-check": "^4.5.0", - "svelte-eslint-parser": "^1.7.1", + "eslint-plugin-simple-import-sort": "^14.0.0", + "eslint-plugin-svelte": "^3.22.0", + "eslint-plugin-unicorn": "^72.0.0", + "postcss": "^8.5.25", + "prettier": "^3.9.6", + "prettier-plugin-svelte": "^4.1.1", + "svelte-check": "^4.7.4", + "svelte-eslint-parser": "^1.8.0", "svelte-preprocess": "^6.0.5", - "tailwindcss": "^4.3.0", + "tailwindcss": "^4.3.3", "tslib": "^2.8.1", "typescript": "^6.0.3", - "vite": "^8.0.16" + "vite": "^8.2.0" }, "dependencies": { - "svelte": "^5.56.1", + "svelte": "^5.56.8", "zod": "^4.4.3" } } diff --git a/demo/src/components/DemoSidebar.svelte b/demo/src/components/DemoSidebar.svelte index af9e01e..b149c68 100644 --- a/demo/src/components/DemoSidebar.svelte +++ b/demo/src/components/DemoSidebar.svelte @@ -31,7 +31,7 @@
Dirty Fields
{JSON.stringify(
 					isDirtyByField,
-					Object.keys(isDirtyByField).toSorted(),
+					Object.keys(isDirtyByField).toSorted((a, b) => a.localeCompare(b)),
 					2
 				)}
diff --git a/demo/src/components/FormTextarea.svelte b/demo/src/components/FormTextarea.svelte index 0a5f6d5..8d9f45c 100644 --- a/demo/src/components/FormTextarea.svelte +++ b/demo/src/components/FormTextarea.svelte @@ -38,7 +38,6 @@ : 'border-gray-300 bg-gray-50 text-gray-900 focus:border-blue-500 focus:ring-blue-500'}" {placeholder} {rows} - bind:value - > + bind:value> diff --git a/demo/src/pages/CalculatedFields.svelte b/demo/src/pages/CalculatedFields.svelte index b199b14..4cf97bd 100644 --- a/demo/src/pages/CalculatedFields.svelte +++ b/demo/src/pages/CalculatedFields.svelte @@ -37,11 +37,11 @@ } }), effect: ({ property }) => { - if (property === 'item.unitPrice' || property === 'item.quantity') { - data.subtotal = data.item.unitPrice * data.item.quantity; - data.tax = data.subtotal * TAX_RATE; - data.total = data.subtotal + data.tax; - } + if (!(property === 'item.unitPrice' || property === 'item.quantity')) return; + + data.subtotal = data.item.unitPrice * data.item.quantity; + data.tax = data.subtotal * TAX_RATE; + data.total = data.subtotal + data.tax; } }); diff --git a/demo/src/pages/NestedObjects.svelte b/demo/src/pages/NestedObjects.svelte index af5d9dc..ca9b95b 100644 --- a/demo/src/pages/NestedObjects.svelte +++ b/demo/src/pages/NestedObjects.svelte @@ -56,7 +56,7 @@ data.name = `John ${randomId()}`; data.address.street = `${randomInt(100, 9999)} Main Street`; data.address.city = 'New York'; - data.address.zip = `${randomInt(10_000, 99_999)}`; + data.address.zip = String(randomInt(10_000, 99_999)); data.company.name = `Acme ${randomId()} Inc`; data.company.department = 'Engineering'; data.company.contact.phone = `555-${randomInt(100, 999)}-${randomInt(1000, 9999)}`; diff --git a/demo/src/pages/ZodValidation.svelte b/demo/src/pages/ZodValidation.svelte index 0fb7ca5..04c59e6 100644 --- a/demo/src/pages/ZodValidation.svelte +++ b/demo/src/pages/ZodValidation.svelte @@ -40,7 +40,7 @@ const errorMap: Record = {}; for (const issue of result.error.issues) { const key = String(issue.path[0]); - if (!errorMap[key]) errorMap[key] = issue.message; + if (!Object.hasOwn(errorMap, key)) errorMap[key] = issue.message; } return Object.fromEntries(fields.map((f) => [f, errorMap[f] ?? ''])); diff --git a/demo/vite.config.ts b/demo/vite.config.ts index 1228660..ba0bbe1 100644 --- a/demo/vite.config.ts +++ b/demo/vite.config.ts @@ -1,11 +1,11 @@ -/* eslint-disable unicorn/prefer-module */ + /* eslint-disable unicorn/prefer-node-protocol */ import { svelte } from '@sveltejs/vite-plugin-svelte'; import tailwindcss from '@tailwindcss/vite'; import path from 'path'; import { defineConfig } from 'vite'; -import package_ from '../package.json'; +import package_ from '../package.json' with { type: 'json' }; export default defineConfig({ plugins: [svelte(), tailwindcss()], @@ -30,9 +30,9 @@ export default defineConfig({ base: process.env.NODE_ENV === 'production' ? '/svstate' : '', resolve: { alias: { - svstate: path.resolve(__dirname, '../src/index.ts'), - $components: path.resolve(__dirname, './src/components'), - $lib: path.resolve(__dirname, './src/lib') + svstate: path.resolve(import.meta.dirname, '../src/index.ts'), + $components: path.resolve(import.meta.dirname, './src/components'), + $lib: path.resolve(import.meta.dirname, './src/lib') } }, define: { diff --git a/docs/assets/index-BxuovIe5.js b/docs/assets/index-BxuovIe5.js deleted file mode 100644 index cc5562f..0000000 --- a/docs/assets/index-BxuovIe5.js +++ /dev/null @@ -1,537 +0,0 @@ -(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=Array.isArray,t=Array.prototype.indexOf,n=Array.prototype.includes,r=Array.from,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,s=Object.prototype,c=Array.prototype,l=Object.getPrototypeOf,u=Object.isExtensible,d=()=>{};function f(e){return e()}function p(e){for(var t=0;t{e=n,t=r}),resolve:e,reject:t}}var h=1024,g=2048,_=4096,v=8192,y=16384,b=32768,x=1<<25,S=65536,C=1<<19,w=1<<20,T=1<<25,E=65536,ee=1<<21,te=1<<22,ne=1<<23,re=Symbol(`$state`),ie=Symbol(`legacy props`),ae=Symbol(``),oe=Symbol(`attributes`),se=Symbol(`class`),ce=Symbol(`style`),le=Symbol(`text`),ue=Symbol(`form reset`),de=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},fe=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function pe(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function me(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function he(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function ge(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function _e(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function ve(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function ye(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function be(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function xe(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Se(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Ce(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var we={},Te=Symbol(`uninitialized`),Ee=`http://www.w3.org/1999/xhtml`;function De(){console.warn(`https://svelte.dev/e/derived_inert`)}function Oe(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function ke(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Ae(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var D=!1;function je(e){D=e}var O;function Me(e){if(e===null)throw Oe(),we;return O=e}function Ne(){return Me(Sn(O))}function k(e){if(D){if(Sn(O)!==null)throw Oe(),we;O=e}}function Pe(e=1){if(D){for(var t=e,n=O;t--;)n=Sn(n);O=n}}function Fe(e=!0){for(var t=0,n=O;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else (r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=Sn(n);e&&n.remove(),n=i}}function Ie(e){if(!e||e.nodeType!==8)throw Oe(),we;return e.data}function Le(e){return e===this.v}function Re(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function ze(e){return!Re(e,this.v)}var Be=!1,Ve=!1;function He(){Ve=!0}var Ue=null;function We(e){Ue=e}function Ge(e,t=!1,n){Ue={p:Ue,i:!1,c:null,e:null,s:e,x:null,r:B,l:Ve&&!t?{s:null,u:null,$:[]}:null}}function Ke(e){var t=Ue,n=t.e;if(n!==null){t.e=null;for(var r of n)Rn(r)}return e!==void 0&&(t.x=e),t.i=!0,Ue=t.p,e??{}}function qe(){return!Ve||Ue!==null&&Ue.l===null}var Je=[];function Ye(){var e=Je;Je=[],p(e)}function Xe(e){if(Je.length===0&&!xt){var t=Je;queueMicrotask(()=>{t===Je&&Ye()})}Je.push(e)}function Ze(){for(;Je.length>0;)Ye()}function Qe(e){var t=B;if(t===null)return z.f|=ne,e;if(!(t.f&32768)&&!(t.f&4))throw e;$e(e,t)}function $e(e,t){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}var et=~(g|_|h);function tt(e,t){e.f=e.f&et|t}function nt(e){e.f&512||e.deps===null?tt(e,h):tt(e,_)}function rt(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=E,rt(t.deps))}function it(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),rt(e.deps),tt(e,h)}function at(e,t,n){if(e==null)return t(void 0),n&&n(void 0),d;let r=Ar(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}var ot=[];function st(e,t){return{subscribe:ct(e,t).subscribe}}function ct(e,t=d){let n=null,r=new Set;function i(t){if(Re(e,t)&&(e=t,n)){let t=!ot.length;for(let t of r)t[1](),ot.push(t,e);if(t){for(let e=0;e{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:i,update:a,subscribe:o}}function lt(e,t,n){let r=!Array.isArray(e),i=r?[e]:e;if(!i.every(Boolean))throw Error(`derived() expects stores as input, got a falsy value`);let a=t.length<2;return st(n,(e,n)=>{let o=!1,s=[],c=0,l=d,u=()=>{if(c)return;l();let i=t(r?s[0]:s,e,n);a?e(i):l=typeof i==`function`?i:d},f=i.map((e,t)=>at(e,e=>{s[t]=e,c&=~(1<{c|=1<t=e)(),t}var dt=!1,ft=!1,pt=Symbol(`unmounted`);function A(e,t,n){let r=n[t]??={store:null,source:an(void 0),unsubscribe:d};if(r.store!==e&&!(pt in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=d;else{var i=!0;r.unsubscribe=at(e,e=>{i?r.source.v=e:P(r.source,e)}),i=!1}return e&&pt in n?ut(e):V(r.source)}function mt(){let e={};function t(){In(()=>{for(var t in e)e[t].unsubscribe();i(e,pt,{enumerable:!1,value:!0})})}return[e,t]}function ht(e){var t=ft;try{return ft=!1,[e(),ft]}finally{ft=t}}var gt=null,_t=null,j=null,vt=null,yt=null,bt=null,xt=!1,St=!1,Ct=null,wt=null,Tt=0,Et=1,Dt=class e{id=Et++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){_t===null?gt=_t=this:(_t.#n=this,this.#t=_t),_t=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)tt(r,g),t(r);for(r of n.m)tt(r,_),t(r)}this.#p.add(e)}#g(){this.#e=!0,Tt++>1e3&&(this.#S(),kt());for(let e of this.#u)this.#d.delete(e),tt(e,g),this.schedule(e);for(let e of this.#d)tt(e,_),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=Ct=[],r=[],i=wt=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw It(e),this.#h()||this.discard(),t}if(j=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(Ct=null,wt=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)Ft(e,t);i.length>0&&j.#g();return}let o=this.#v();if(o){this.#b(r),this.#b(n),o.#y(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),vt=this,jt(r),jt(n),vt=null,this.#s?.resolve();var s=j;if(this.#a===0&&(this.#c.length===0||s!==null)&&(this.#S(),Be&&(this.#x(),j=s)),this.#c.length>0)if(s!==null){let e=s;e.#c.push(...this.#c.filter(t=>!e.#c.includes(t)))}else s=this;s!==null&&s.#g()}#_(e,t,n){e.f^=h;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=h:i&4?t.push(r):Be&&i&16777224?n.push(r):xr(r)&&(i&16&&this.#d.add(r),Er(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#v(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#y(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null)for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),tt(i,g),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#S(),j=this,this.#g()}#b(e){for(var t=0;t!l.current.get(e)[1]&&!this.current.has(e));if(r.length===0)e&&l.discard();else if(t.length>0){if(e)for(let e of this.#p)l.unskip_effect(e,e=>{e.f&4194320?l.schedule(e):l.#b([e])});l.activate();var i=new Set,a=new Map;for(var o of t)Mt(o,r,i,a);a=new Map;var s=[...l.current].filter(([e,t])=>{let n=this.current.get(e);return n?n[0]!==t[0]||n[1]!==t[1]:!0}).map(([e])=>e);if(s.length>0)for(let e of this.#l)!(e.f&155648)&&Nt(e,s,a)&&(e.f&4194320?(tt(e,g),l.schedule(e)):l.#u.add(e));if(l.#c.length>0&&!l.#m){l.apply();for(var c of l.#c)l.#_(c,[],[]);l.#c=[]}l.deactivate()}}}}increment(e,t){if(this.#a+=1,e){let e=this.#o.get(t)??0;this.#o.set(t,e+1)}}decrement(e,t){if(--this.#a,e){let e=this.#o.get(t)??0;e===1?this.#o.delete(t):this.#o.set(t,e-1)}this.#m||(this.#m=!0,Xe(()=>{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=m()).promise}static ensure(){if(j===null){let t=j=new e;!St&&!xt&&Xe(()=>{t.#e||t.flush()})}return j}apply(){if(!Be||!this.is_fork&&this.#t===null&&this.#n===null){yt=null;return}yt=new Map;for(let[e,[t]]of this.current)yt.set(e,t);for(let t=gt;t!==null;t=t.#n)if(!(t===this||t.is_fork)){var e=!1;if(t.id0)){tn.clear();for(let e of At){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)At.has(n)&&(At.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||Er(n)}}At.clear()}}At=null}}function Mt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?Mt(i,t,n,r):e&4194320&&!(e&2048)&&Nt(i,t,r)&&(tt(i,g),Pt(i))}}function Nt(e,t,r){let i=r.get(e);if(i!==void 0)return i;if(e.deps!==null)for(let i of e.deps){if(n.call(t,i))return!0;if(i.f&2&&Nt(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function Pt(e){j.schedule(e)}function Ft(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),tt(e,h);for(var n=e.first;n!==null;)Ft(n,t),n=n.next}}function It(e){tt(e,h);for(var t=e.first;t!==null;)It(t),t=t.next}function Lt(e){let t=0,n=rn(0),r;return()=>{Fn()&&(V(n),Un(()=>(t===0&&(r=Ar(()=>e(()=>un(n)))),t+=1,()=>{Xe(()=>{--t,t===0&&(r?.(),r=void 0,un(n))})})))}}var Rt=S|C;function zt(e,t,n,r){new Bt(e,t,n,r)}var Bt=class{parent;is_pending=!1;transform_error;#e;#t=D?O:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=Lt(()=>(this.#m=rn(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=B;t.b=this,t.f|=128,n(e)},this.parent=B.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=Wn(()=>{if(D){let e=this.#t;Ne();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},Rt),D&&(this.#e=O)}#g(){try{this.#a=Gn(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=Gn(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Gn(()=>e(this.#e)),Xe(()=>{var e=this.#c=document.createDocumentFragment(),t=bn();e.append(t),this.#a=this.#x(()=>Gn(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,Qn(this.#o,()=>{this.#o=null}),this.#b(j))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Gn(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();nr(this.#a,e);let t=this.#n.pending;this.#o=Gn(()=>t(this.#e))}else this.#b(j)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){it(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=B,n=z,r=Ue;lr(this.#i),cr(this.#i),We(this.#i.ctx);try{return Dt.ensure(),e()}catch(e){return Qe(e),null}finally{lr(t),cr(n),We(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&Qn(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,Xe(()=>{this.#d=!1,this.#m&&sn(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),V(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;j?.is_fork?(this.#a&&j.skip_effect(this.#a),this.#o&&j.skip_effect(this.#o),this.#s&&j.skip_effect(this.#s),j.oncommit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(Yn(this.#a),null),this.#o&&=(Yn(this.#o),null),this.#s&&=(Yn(this.#s),null),D&&(Me(this.#t),Pe(),Me(Fe()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Ae();return}r=!0,i&&Ce(),this.#s!==null&&Qn(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){$e(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return Gn(()=>{var t=B;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return $e(e,this.#i.parent),null}}))};Xe(()=>{var t;try{t=this.transform_error(e)}catch(e){$e(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>$e(e,this.#i&&this.#i.parent)):o(t)})}};function Vt(e,t,n,r){let i=qe()?Gt:Jt;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=B,c=Ht(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){$e(e,s)}Ut()}}var d=Wt();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>qt(e))).then(u).catch(e=>$e(e,s)).finally(d)}l?l.then(()=>{c(),f(),Ut()}):f()}function Ht(){var e=B,t=z,n=Ue,r=j;return function(i=!0){lr(e),cr(t),We(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function Ut(e=!0){lr(null),cr(null),We(null),e&&j?.deactivate()}function Wt(){var e=B,t=e.b,n=j,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function Gt(e){var t=2|g;return B!==null&&(B.f|=C),{ctx:Ue,deps:null,effects:null,equals:Le,f:t,fn:e,reactions:null,rv:0,v:Te,wv:0,parent:B,ac:null}}var Kt=Symbol(`obsolete`);function qt(e,t,n){let r=B;r===null&&pe();var i=void 0,a=rn(Te),o=!z,s=new Set;return Hn(()=>{var t=B,n=m();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==de&&n.reject(e)}).finally(Ut)}catch(e){n.reject(e),Ut()}var c=j;if(o){if(t.f&32768)var l=Wt();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(Kt);else for(let e of s.values())e.reject(Kt);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==Kt&&(c.activate(),t?(a.f|=ne,sn(a,t)):(a.f&8388608&&(a.f^=ne),sn(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),In(()=>{for(let e of s)e.reject(Kt)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function M(e){let t=Gt(e);return Be||dr(t),t}function Jt(e){let t=Gt(e);return t.equals=ze,t}function Yt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;nV(e))),t}function P(e,t,n=!1){return z!==null&&(!sr||z.f&131072)&&qe()&&z.f&4325394&&(ur===null||!ur.has(e))&&Se(),sn(e,n?fn(t):t,wt)}function sn(e,t,n=null){if(!e.equals(t)){tn.set(e,ar?t:e.v);var r=Dt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&Xt(t),yt===null&&nt(t)}e.wv=br(),dn(e,g,n),qe()&&B!==null&&B.f&1024&&!(B.f&96)&&(mr===null?hr([e]):mr.push(e)),!r.is_fork&&en.size>0&&!nn&&cn()}return t}function cn(){nn=!1;for(let e of en){e.f&1024&&tt(e,_);let t;try{t=xr(e)}catch{t=!0}t&&Er(e)}en.clear()}function ln(e,t=1){var n=V(e),r=t===1?n++:n--;return P(e,n),r}function un(e){P(e,e.v+1)}function dn(e,t,n){var r=e.reactions;if(r!==null)for(var i=qe(),a=r.length,o=0;o{if(vr===d)return e();var t=z,n=vr;cr(null),yr(d);var r=e();return cr(t),yr(n),r};return i&&r.set(`length`,N(t.length,u)),new Proxy(t,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&be();var i=r.get(t);return i===void 0?f(()=>{var e=N(n.value,u);return r.set(t,e),e}):P(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>N(Te,u));r.set(t,e),un(o)}}else P(n,Te),un(o);return!0},get(e,n,i){if(n===re)return t;var o=r.get(n),s=n in e;if(o===void 0&&(!s||a(e,n)?.writable)&&(o=f(()=>N(fn(s?e[n]:Te),u)),r.set(n,o)),o!==void 0){var c=V(o);return c===Te?void 0:c}return Reflect.get(e,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=V(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==Te)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===re)return!0;var n=r.get(t),i=n!==void 0&&n.v!==Te||Reflect.has(e,t);return(n!==void 0||B!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>N(i?fn(e[t]):Te,u)),r.set(t,n)),V(n)===Te)?!1:i},set(e,t,n,s){var c=r.get(t),l=t in e;if(i&&t===`length`)for(var d=n;dN(Te,u)),r.set(d+``,p)):P(p,Te)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>N(void 0,u)),P(c,fn(n)),r.set(t,c));else{l=c.v!==Te;var m=f(()=>fn(n));P(c,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(s,n),!l){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&P(g,_+1)}un(o)}return!0},ownKeys(e){V(o);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==Te});for(var[n,i]of r)i.v!==Te&&!(n in e)&&t.push(n);return t},setPrototypeOf(){xe()}})}function pn(e){try{if(typeof e==`object`&&e&&re in e)return e[re]}catch{}return e}function mn(e,t){return Object.is(pn(e),pn(t))}new Set([`copyWithin`,`fill`,`pop`,`push`,`reverse`,`shift`,`sort`,`splice`,`unshift`]);var hn,gn,_n,vn;function yn(){if(hn===void 0){hn=window,gn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;_n=a(t,`firstChild`).get,vn=a(t,`nextSibling`).get,u(e)&&(e[se]=void 0,e[oe]=null,e[ce]=void 0,e.__e=void 0),u(n)&&(n[le]=void 0)}}function bn(e=``){return document.createTextNode(e)}function xn(e){return _n.call(e)}function Sn(e){return vn.call(e)}function F(e,t){if(!D)return xn(e);var n=xn(O);if(n===null)n=O.appendChild(bn());else if(t&&n.nodeType!==3){var r=bn();return n?.before(r),Me(r),r}return t&&En(n),Me(n),n}function I(e,t=!1){if(!D){var n=xn(e);return n instanceof Comment&&n.data===``?Sn(n):n}if(t){if(O?.nodeType!==3){var r=bn();return O?.before(r),Me(r),r}En(O)}return O}function L(e,t=1,n=!1){let r=D?O:e;for(var i;t--;)i=r,r=Sn(r);if(!D)return r;if(n){if(r?.nodeType!==3){var a=bn();return r===null?i?.after(a):r.before(a),Me(a),a}En(r)}return Me(r),r}function Cn(e){e.textContent=``}function wn(){return!Be||At!==null?!1:(B.f&b)!==0}function Tn(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function En(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Dn(e){D&&xn(e)!==null&&Cn(e)}var On=!1;function kn(){On||(On=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[ue]?.()})},{capture:!0}))}function An(e){var t=z,n=B;cr(null),lr(null);try{return e()}finally{cr(t),lr(n)}}function jn(e,t,n,r=n){e.addEventListener(t,()=>An(n));let i=e[ue];i?e[ue]=()=>{i(),r(!0)}:e[ue]=()=>r(!0),kn()}function Mn(e){B===null&&(z===null&&_e(e),ge()),ar&&he(e)}function Nn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Pn(e,t){var n=B;n!==null&&n.f&8192&&(e|=v);var r={ctx:Ue,deps:null,nodes:null,f:e|g|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};j?.register_created_effect(r);var i=r;if(e&4)Ct===null?Dt.ensure().schedule(r):Ct.push(r);else if(t!==null){try{Er(r)}catch(e){throw Yn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=S))}if(i!==null&&(i.parent=n,n!==null&&Nn(i,n),z!==null&&z.f&2&&!(e&64))){var a=z;(a.effects??=[]).push(i)}return r}function Fn(){return z!==null&&!sr}function In(e){let t=Pn(8,null);return tt(t,h),t.teardown=e,t}function Ln(e){Mn(`$effect`);var t=B.f;if(!z&&t&32&&Ue!==null&&!Ue.i){var n=Ue;(n.e??=[]).push(e)}else return Rn(e)}function Rn(e){return Pn(4|w,e)}function zn(e){return Mn(`$effect.pre`),Pn(8|w,e)}function Bn(e){Dt.ensure();let t=Pn(64|C,e);return(e={})=>new Promise(n=>{e.outro?Qn(t,()=>{Yn(t),n(void 0)}):(Yn(t),n(void 0))})}function Vn(e){return Pn(4,e)}function Hn(e){return Pn(te|C,e)}function Un(e,t=0){return Pn(8|t,e)}function R(e,t=[],n=[],r=[]){Vt(r,t,n,t=>{Pn(8,()=>{e(...t.map(V))})})}function Wn(e,t=0){return Pn(16|t,e)}function Gn(e){return Pn(32|C,e)}function Kn(e){var t=e.teardown;if(t!==null){let e=ar,n=z;or(!0),cr(null);try{t.call(null)}finally{or(e),cr(n)}}}function qn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&An(()=>{e.abort(de)});var r=n.next;n.f&64?n.parent=null:Yn(n,t),n=r}}function Jn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Yn(t),t=n}}function Yn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Xn(e.nodes.start,e.nodes.end),n=!0),e.f|=x,qn(e,t&&!n),Tr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Kn(e),e.f^=x,e.f|=y;var i=e.parent;i!==null&&i.first!==null&&Zn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Xn(e,t){for(;e!==null;){var n=e===t?null:Sn(e);e.remove(),e=n}}function Zn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Qn(e,t,n=!0){var r=[];$n(e,r,!0);var i=()=>{n&&Yn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function $n(e,t,n){if(!(e.f&8192)){e.f^=v;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;$n(i,t,o?n:!1)}i=a}}}function er(e){tr(e,!0)}function tr(e,t){if(e.f&8192){e.f^=v,e.f&1024||(tt(e,g),Dt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;tr(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function nr(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:Sn(n);t.append(n),n=i}}var rr=null,ir=!1,ar=!1;function or(e){ar=e}var z=null,sr=!1;function cr(e){z=e}var B=null;function lr(e){B=e}var ur=null;function dr(e){z!==null&&(!Be||z.f&2)&&(ur??=new Set).add(e)}var fr=null,pr=0,mr=null;function hr(e){mr=e}var gr=1,_r=0,vr=_r;function yr(e){vr=e}function br(){return++gr}function xr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~E),t&4096){for(var n=e.deps,r=n.length,i=0;ie.wv)return!0}t&512&&yt===null&&tt(e,h)}return!1}function Sr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(!Be&&ur!==null&&ur.has(e)))for(var i=0;i{e.ac.abort(de)}),e.ac=null);try{e.f|=ee;var u=e.fn,d=u();e.f|=b;var f=e.deps,p=j?.is_fork;if(fr!==null){var m;if(p||Tr(e,pr),f!==null&&pr>0)for(f.length=pr+fr.length,m=0;m{requestAnimationFrame(()=>e()),setTimeout(()=>e())});await Promise.resolve(),Ot()}function V(e){var t=(e.f&2)!=0;if(rr?.add(e),z!==null&&!sr&&!(B!==null&&B.f&16384)&&(ur===null||!ur.has(e))){var r=z.deps;if(z.f&2097152)e.rv<_r&&(e.rv=_r,fr===null&&r!==null&&r[pr]===e?pr++:fr===null?fr=[e]:fr.push(e));else{z.deps??=[],n.call(z.deps,e)||z.deps.push(e);var i=e.reactions;i===null?e.reactions=[z]:n.call(i,z)||i.push(z)}}if(ar&&tn.has(e))return tn.get(e);if(t){var a=e;if(ar){var o=a.v;return(!(a.f&1024)&&a.reactions!==null||kr(a))&&(o=Xt(a)),tn.set(a,o),o}var s=(a.f&512)==0&&!sr&&z!==null&&(ir||(z.f&512)!=0),c=(a.f&b)===0;xr(a)&&(s&&(a.f|=512),Zt(a)),s&&!c&&($t(a),Or(a))}if(yt?.has(e))return yt.get(e);if(e.f&8388608)throw e.v;return e.v}function Or(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&($t(t),Or(t))}function kr(e){if(e.v===Te)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(tn.has(t)||t.f&2&&kr(t))return!0;return!1}function Ar(e){var t=sr;try{return sr=!0,e()}finally{sr=t}}function jr(e){if(!(typeof e!=`object`||!e||e instanceof EventTarget)){if(re in e)Mr(e);else if(!Array.isArray(e))for(let t in e){let n=e[t];typeof n==`object`&&n&&re in n&&Mr(n)}}}function Mr(e,t=new Set){if(typeof e==`object`&&e&&!(e instanceof EventTarget)&&!t.has(e)){t.add(e),e instanceof Date&&e.getTime();for(let n in e)try{Mr(e[n],t)}catch{}let n=l(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){let t=o(n);for(let n in t){let r=t[n].get;if(r)try{r.call(e)}catch{}}}}}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];var Nr=[`touchstart`,`touchmove`];function Pr(e){return Nr.includes(e)}var Fr=Symbol(`events`),Ir=new Set,Lr=new Set;function H(e,t,n){(t[Fr]??={})[e]=n}function Rr(e){for(var t=0;t{throw e});throw p}}finally{e[Fr]=t,delete e.currentTarget,cr(d),lr(f)}}}var Vr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Hr(e){return Vr?.createHTML(e)??e}function Ur(e){var t=Tn(`template`);return t.innerHTML=Hr(e.replaceAll(``,``)),t.content}function Wr(e,t){var n=B;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function U(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(``);return()=>{if(D)return Wr(O,null),O;i===void 0&&(i=Ur(a?e:``+e),n||(i=xn(i)));var t=r||gn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=xn(t),s=t.lastChild;Wr(o,s)}else Wr(t,t);return t}}function Gr(e=``){if(!D){var t=bn(e+``);return Wr(t,t),t}var n=O;return n.nodeType===3?En(n):(n.before(n=bn()),Me(n)),Wr(n,n),n}function Kr(){if(D)return Wr(O,null),O;var e=document.createDocumentFragment(),t=document.createComment(``),n=bn();return e.append(t,n),Wr(t,n),e}function W(e,t){if(D){var n=B;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=O),Ne();return}e!==null&&e.before(t)}function G(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[le]??=e.nodeValue)&&(e[le]=n,e.nodeValue=`${n}`)}function qr(e,t){return Yr(e,t)}var Jr=new Map;function Yr(e,{target:t,anchor:n,props:i={},events:a,context:o,intro:s=!0,transformError:c}){yn();var l=void 0,u=Bn(()=>{var s=n??t.appendChild(bn());zt(s,{pending:()=>{}},t=>{Ge({});var n=Ue;if(o&&(n.c=o),a&&(i.$$events=a),D&&Wr(t,null),l=e(t,i)||{},D&&(B.nodes.end=O,O===null||O.nodeType!==8||O.data!==`]`))throw Oe(),we;Ke()},c);var u=new Set,d=e=>{for(var n=0;n{for(var e of u)for(let n of[t,document]){var r=Jr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Br),r.delete(e),r.size===0&&Jr.delete(n)):r.set(e,i)}Lr.delete(d),s!==n&&s.parentNode?.removeChild(s)}});return Xr.set(l,u),l}var Xr=new WeakMap,Zr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)er(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(er(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(Yn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();nr(r,t),t.append(bn()),this.#n.set(e,{effect:r,fragment:t})}else Yn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Qn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(Yn(n.effect),this.#n.delete(e))};ensure(e,t){var n=j,r=wn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=bn();i.append(a),this.#n.set(e,{effect:Gn(()=>t(a)),fragment:i})}else this.#t.set(e,Gn(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else D&&(this.anchor=O),this.#a(n)}};function K(e,t,n=!1){var r;D&&(r=O,Ne());var i=new Zr(e),a=n?S:0;function o(e,t){if(D){var n=Ie(r);if(e!==parseInt(n.substring(1))){var a=Fe();Me(a),i.anchor=a,je(!1),i.ensure(e,t),je(!0);return}}i.ensure(e,t)}Wn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}var Qr=Symbol(`NaN`);function $r(e,t,n){D&&Ne();var r=new Zr(e),i=!qe();Wn(()=>{var e=t();e!==e&&(e=Qr),i&&typeof e==`object`&&e&&(e={}),r.ensure(e,n)})}function ei(e,t){return t}function ti(e,t,n){for(var i=[],a=t.length,o,s=t.length,c=0;c{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;ni(e,r(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else --s},!1)}if(s===0){var l=i.length===0&&n!==null;if(l){var u=n,d=u.parentNode;Cn(d),d.append(u),e.items.clear()}ni(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function ni(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i{var t=i();return e(t)?t:t==null?[]:r(t)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,oi(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=T,ci(d,null,c)):er(d):Qn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:Wn(()=>{p=V(f);var e=p.length;let t=!1;D&&Ie(c)===`[!`!=(e===0)&&(c=Fe(),Me(c),je(!1),t=!0);for(var r=new Set,u=j,v=wn(),y=0;ys(c)):(d=Gn(()=>s(ri??=bn())),d.f|=T)),e>r.size&&me(``,``,``),D&&e>0&&Me(Fe()),!h)if(m.set(u,r),v){for(let[e,t]of l)r.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u);t&&je(!0),V(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,D&&(c=O)}function ai(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function oi(e,t,n,i,a){var o=(i&8)!=0,s=t.length,c=e.items,l=ai(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v0){var ee=i&4&&s===0?n:null;if(o){for(v=0;v{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function si(e,t,n,r,i,a,o,s){var c=o&1?o&16?rn(n):an(n,!1,!1):null,l=o&2?rn(i):null;return{v:c,i:l,e:Gn(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function ci(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=Sn(r);if(a.before(r),r===i)return;r=o}}function li(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function ui(e,t,...n){var r=new Zr(e);Wn(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},S)}var di=[...` -\r\f\xA0\v`];function fi(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||di.includes(r[o-1]))&&(s===r.length||di.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function pi(e,t,n,r,i,a){var o=e[se];if(D||o!==n||o===void 0){var s=fi(n,r,a);(!D||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[se]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function mi(t,n,r=!1){if(t.multiple){if(n==null)return;if(!e(n))return ke();for(var i of t.options)i.selected=n.includes(_i(i));return}for(i of t.options)if(mn(_i(i),n)){i.selected=!0;return}(!r||n!==void 0)&&(t.selectedIndex=-1)}function hi(e){var t=new MutationObserver(()=>{mi(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),In(()=>{t.disconnect()})}function gi(e,t,n=t){var r=new WeakSet,i=!0;jn(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),_i);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&_i(o)}n(a),e.__value=a,j!==null&&r.add(j)}),Vn(()=>{var a=t();if(e===document.activeElement){var o=Be?vt:j;if(r.has(o))return}if(mi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=_i(s),n(a))}e.__value=a,i=!1}),hi(e)}function _i(e){return`__value`in e?e.__value:e.value}var vi=Symbol(`is custom element`),yi=Symbol(`is html`),bi=fe?`link`:`LINK`;function xi(e){if(D){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;Si(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;Si(e,`checked`,null),e.checked=r}}};e[ue]=n,Xe(n),kn()}}function Si(e,t,n,r){var i=Ci(e);D&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===bi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[ae]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&Ti(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Ci(e){return e[oe]??={[vi]:e.nodeName.includes(`-`),[yi]:e.namespaceURI===Ee}}var wi=new Map;function Ti(e){var t=e.getAttribute(`is`)||e.nodeName,n=wi.get(t);if(n)return n;wi.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var s in r=o(i),r)r[s].set&&s!==`innerHTML`&&s!==`textContent`&&s!==`innerText`&&n.push(s);i=l(i)}return n}function Ei(e,t,n=t){var r=new WeakSet;jn(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=Oi(e)?ki(a):a,n(a),j!==null&&r.add(j),await Dr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(D&&e.defaultValue!==e.value||Ar(t)==null&&e.value)&&(n(Oi(e)?ki(e.value):e.value),j!==null&&r.add(j)),Un(()=>{var n=t();if(e===document.activeElement){var i=Be?vt:j;if(r.has(i))return}Oi(e)&&n===ki(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function Di(e,t,n=t){jn(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(D&&e.defaultChecked!==e.checked||Ar(t)==null)&&n(e.checked),Un(()=>{e.checked=!!t()})}function Oi(e){var t=e.type;return t===`number`||t===`range`}function ki(e){return e===``?null:+e}function Ai(e=!1){let t=Ue,n=t.l.u;if(!n)return;let r=()=>jr(t.s);if(e){let e=0,n={},i=Gt(()=>{let r=!1,i=t.s;for(let e in i)i[e]!==n[e]&&(n[e]=i[e],r=!0);return r&&e++,e});r=()=>V(i)}n.b.length&&zn(()=>{ji(t,r),p(n.b)}),Ln(()=>{let e=Ar(()=>n.m.map(f));return()=>{for(let t of e)typeof t==`function`&&t()}}),n.a.length&&Ln(()=>{ji(t,r),p(n.a)})}function ji(e,t){if(e.l.s)for(let t of e.l.s)V(t);t()}function Mi(e,t,n,r){var i=!Ve||(n&2)!=0,o=(n&8)!=0,s=(n&16)!=0,c=r,l=!0,u=void 0,d=()=>s&&i?(u??=Gt(r),V(u)):(l&&(l=!1,c=s?Ar(r):r),c);let f;if(o){var p=re in e||ie in e;f=a(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;o?[m,h]=ht(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&ye(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?Gt:Jt)(()=>(v=!1,g()));o&&V(y);var b=B;return(function(e,t){if(arguments.length>0){let n=t?V(y):i&&o?fn(e):e;return P(y,n),v=!0,c!==void 0&&(c=n),e}return ar&&v||b.f&16384?y.v:V(y)})}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);function Ni(e){let t=e.batchSize??20,n=e.flushInterval??5e3,r=e.include,i=[],a,o=e=>!r||r.includes(e),s=(e,n)=>{o(e)&&(i.push({type:e,timestamp:Date.now(),detail:n}),i.length>=t&&c())},c=()=>{if(i.length===0)return;let t=i.splice(0);e.onFlush(t)};return{name:`analytics`,onInit(){n>0&&(a=setInterval(c,n))},onChange(t){let n=e.redact?.includes(t.property);s(`change`,{property:t.property,currentValue:n?`[redacted]`:t.currentValue,oldValue:n?`[redacted]`:t.oldValue})},onValidation(e){s(`validation`,{hasErrors:e!==void 0})},onSnapshot(e){s(`snapshot`,{title:e.title})},onAction(e){s(`action`,{phase:e.phase,error:e.error?.message})},onRollback(e){s(`rollback`,{title:e.title})},onReset(){s(`reset`,{})},destroy(){a!==void 0&&clearInterval(a),c()},flush(){c()},eventCount(){return i.length}}}function Pi(e){let t=e.idle??1e3,n=e.interval??0,r=e.saveOnDestroy??!0,i=e.onlyWhenDirty??!0,a,o,s,c=!1,l=!1,u=async()=>{if(a&&!(i&&!ut(a.state.isDirty))&&!c){c=!0;try{await e.save(a.data)}catch(t){e.onError?.(t)}finally{c=!1}}},d=()=>{clearTimeout(o),o=setTimeout(u,t)},f=()=>{typeof document<`u`&&document.visibilityState===`hidden`&&u()};return{name:`autosave`,onInit(t){a=t,n>0&&(s=setInterval(u,n)),e.onVisibilityHidden&&typeof document<`u`&&document.addEventListener(`visibilitychange`,f)},onChange(){d()},onAction(e){e.phase===`after`&&!e.error&&clearTimeout(o)},destroy(){if(l=!0,clearTimeout(o),s!==void 0&&clearInterval(s),typeof document<`u`&&document.removeEventListener(`visibilitychange`,f),r&&a&&(c=!1,!i||ut(a.state.isDirty)))try{let t=e.save(a.data);t instanceof Promise&&t.catch(t=>e.onError?.(t))}catch(t){e.onError?.(t)}},async saveNow(){l||(clearTimeout(o),c=!1,await u())},isSaving(){return c}}}var Fi=()=>{try{return import.meta.env?.PROD===!0}catch{return!1}};function Ii(e){let t=e?.name??`svstate`,n=e?.collapsed??!0,r=e?.logValidation??!1,i=e?.logValues??!1,a=e?.enabled??!Fi(),o=(e,...r)=>{if(!a)return;let i=new Date().toISOString().slice(11,23);(n?console.groupCollapsed:console.group)(`[${t}] ${e} (${i})`);for(let e of r)console.log(e);console.groupEnd()};return{name:`devtools`,onChange(e){i?o(`change`,{property:e.property,from:e.oldValue,to:e.currentValue}):o(`change`,{property:e.property})},onValidation(e){r&&o(`validation`,e)},onSnapshot(e){o(`snapshot`,{title:e.title})},onAction(e){e.error?o(`action:${e.phase}`,{params:e.params,error:e.error.message}):o(`action:${e.phase}`,{params:e.params})},onRollback(e){o(`rollback`,{title:e.title})},onReset(){o(`reset`)}}}var Li=new Set([`__proto__`,`constructor`,`prototype`]),Ri=e=>typeof e==`object`&&!!e&&!Array.isArray(e),zi=e=>Ri(e)&&typeof e.version==`number`&&Ri(e.data),Bi=(e,t)=>{for(let n of Object.keys(t))Li.has(n)||(e[n]=t[n])},Vi=(e,t)=>{let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r},Hi=(e,t,n)=>{let r=t.split(`.`),i=e;for(let e=0;e{if(t){let n={};for(let r of t){let t=Vi(e,r);t!==void 0&&Hi(n,r,t)}return n}if(n){let t={...e};for(let e of n){let n=e.split(`.`);if(n.length===1)delete t[e];else{let e=t;for(let t=0;t`u`?void 0:localStorage),n=e.throttle??300,r=e.version??1,i=!1,a,o,s=()=>{if(!t||!o)return;let n={version:r,data:Ui(o,e.include,e.exclude)};t.setItem(e.key,JSON.stringify(n))},c=()=>{clearTimeout(a),a=setTimeout(s,n)};return{name:`persist`,onInit(n){if(o=n.data,!t)return;let a=t.getItem(e.key);if(a)try{let t=JSON.parse(a);if(!zi(t))return;let o=t;if(e.migrate&&o.version!==r){let t=e.migrate(o.data,o.version);if(!Ri(t))return;o={version:r,data:t}}Bi(n.data,o.data),i=!0}catch{}},onChange(){c()},onReset(){s()},destroy(){a!==void 0&&(clearTimeout(a),s())},clearPersistedState(){t?.removeItem(e.key)},isRestored(){return i}}}var Gi=new Set([`__proto__`,`constructor`,`prototype`]),Ki=e=>typeof e==`object`&&!!e&&!Array.isArray(e),qi=10,Ji=(e,t=0)=>t>qi?!1:Ki(e)?Object.values(e).every(e=>Ji(e,t+1)):!0,Yi=(e,t)=>{for(let n of Object.keys(t))Gi.has(n)||(e[n]=t[n])};function Xi(e){let t=e.throttle??100,n=e.merge??`overwrite`,r,i,a=!1,o,s=0,c=()=>{if(!r||!i)return;let e=JSON.parse(JSON.stringify(i.data));r.postMessage({type:`sync`,data:e})},l=()=>{clearTimeout(o),o=setTimeout(c,t)},u=()=>{clearTimeout(o),r&&=(r.close(),void 0)};return{name:`sync`,onInit(o){i=o,!(typeof BroadcastChannel>`u`)&&(r=new BroadcastChannel(e.key),r.addEventListener(`message`,e=>{if(!i||n===`ignore`||e.data?.type!==`sync`)return;let r=Date.now();r-s{if(typeof e!=`object`||!e)return e;if(e instanceof Date)return new Date(e);if(Array.isArray(e))return e.map(e=>o(e));let t=Object.create(Object.getPrototypeOf(e));for(let n of Object.keys(e))t[n]=o(e[n]);return t};return{name:`undo-redo`,redoStack:{subscribe:t.subscribe},onInit(e){r=e,i=e.state.snapshots.subscribe(e=>{e.length0&&(a=n.at(-1)),n=e})},onRollback(){a&&=(t.update(t=>{let n=[...t,a],r=e?.maxRedoStack;return r&&r>0?n.slice(-r):n}),void 0)},onChange(){t.set([])},onReset(){t.set([])},redo(){if(!r)return;let e=ut(t);if(e.length===0)return;let n=e.at(-1);t.set(e.slice(0,-1)),r.snapshot(`Undo`),Object.assign(r.data,o(n.data))},canRedo(){return ut(t).length>0},destroy(){i?.()}}}var Qi=e=>typeof e==`object`&&!!e&&!(e instanceof Date)&&!(e instanceof Map)&&!(e instanceof Set)&&!(e instanceof WeakMap)&&!(e instanceof WeakSet)&&!(e instanceof RegExp)&&!(e instanceof Error)&&!(e instanceof Promise),$i=(e,t)=>{let n=(e,i)=>new Proxy(e,{get(e,t){if(typeof t==`symbol`)return e[t];let r=e[t];if(Qi(r)){let e=Number.isInteger(Number(t))?``:String(t);return n(r,e?i?`${i}.${e}`:e:i)}return r},set(e,n,a){if(typeof n==`symbol`)return e[n]=a,!0;let o=e[n];if(o!==a){e[n]=a;let s=Number.isInteger(Number(n))?``:String(n);t(r,s?i?`${i}.${s}`:s:i,a,o)}return!0}}),r=n(e,``);return r},ea=e=>Object.values(e).some(e=>typeof e==`string`?!!e:ea(e)),ta=e=>!!e&&ea(e),na=new Set([`__proto__`,`constructor`,`prototype`]),ra=e=>{if(typeof e!=`object`||!e)return e;if(e instanceof Date)return new Date(e);if(Array.isArray(e))return e.map(e=>ra(e));let t=Object.create(Object.getPrototypeOf(e));for(let n of Object.keys(e))na.has(n)||(t[n]=ra(e[n]));return t},ia=(e,t)=>{let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r},aa=(e,t)=>{if(!e)return``;let n=t.split(`.`),r=e;for(let e of n){if(typeof r==`string`||r[e]===void 0)return``;r=r[e]}return typeof r==`string`?r:``},oa=(e,t)=>{let n=[];for(let r of Object.keys(e))(r===t||r.startsWith(t+`.`)||t.startsWith(r+`.`))&&n.push(r);return n},sa={resetDirtyOnAction:!0,debounceValidation:0,allowConcurrentActions:!1,persistActionError:!1,debounceAsyncValidation:300,runAsyncValidationOnInit:!1,clearAsyncErrorsOnChange:!0,maxConcurrentAsyncValidations:4,maxSnapshots:50,plugins:[]};function ca(e,t,n){let r={...sa,...n},{validator:i,effect:a,asyncValidator:o}=t??{},s=ct(),c=lt(s,ta),l=ct({}),u=lt(l,e=>Object.keys(e).length>0),d=ct(!1),f=ct(),p=ct([{title:`Initial`,data:ra(e)}]),m=ct({}),h=ct(new Set),g=lt(h,e=>[...e]),_=lt(m,e=>Object.values(e).some(e=>!!e)),v=lt([c,_],([e,t])=>e||t),y=new Map,b=[],x=e=>{l.update(t=>{let n={...t,[e]:!0},r=e.split(`.`);for(let e=1;e{for(let n of C){let r=n[e];typeof r==`function`&&r.call(n,...t)}},T=()=>{if(!i)return;let e=i(ue);s.set(e),w(`onValidation`,e)},E=(e,t=!0)=>{let n=ut(p),i={title:e,data:ra(S)},a=n.at(-1),o=t&&a&&a.title===e?[...n.slice(0,-1),i]:[...n,i];if(r.maxSnapshots>0&&o.length>r.maxSnapshots){let e=o.length-r.maxSnapshots;o=[o[0],...o.slice(1+e)]}p.set(o),w(`onSnapshot`,i)},ee=!1,te,ne=()=>{if(i)if(r.debounceValidation>0)clearTimeout(te),te=setTimeout(()=>{T()},r.debounceValidation);else{if(ee)return;ee=!0,queueMicrotask(()=>{T(),ee=!1})}},re=e=>{let t=b.indexOf(e);t!==-1&&b.splice(t,1)},ie=e=>{re(e);let t=y.get(e);t&&(clearTimeout(t.timeoutId),t.controller.abort(),y.delete(e),h.update(t=>(t.delete(e),new Set(t))))},ae=()=>{b.length=0;for(let e of y.keys())ie(e);m.set({})},oe=async(e,t)=>{if(!o){t();return}let n=o[e];if(!n){t();return}if(aa(ut(s),e)){t();return}let r=new AbortController;y.set(e,{controller:r,timeoutId:0}),h.update(t=>new Set([...t,e]));try{let t=await n(ia(ue,e),ue,r.signal);r.signal.aborted||m.update(n=>({...n,[e]:t}))}catch(t){if(t instanceof Error&&t.name===`AbortError`)return;if(!r.signal.aborted){let n=t instanceof Error?t.message:`Async validation error`;m.update(t=>({...t,[e]:n}))}}finally{y.delete(e),h.update(t=>(t.delete(e),new Set(t))),t()}},se=()=>{for(;b.length>0&&!(ut(h).size>=r.maxConcurrentAsyncValidations);){let e=b.shift();e&&oe(e,se)}},ce=e=>{if(!o||!o[e])return;ie(e),r.clearAsyncErrorsOnChange&&m.update(t=>{let n={...t};return delete n[e],n});let t=new AbortController,n=setTimeout(()=>{y.delete(e),ut(h).size{if(!o)return;let t=oa(o,e);for(let e of t)ce(e)},ue=$i(S,(e,t,n,i)=>{if(r.persistActionError||f.set(void 0),x(t),a?.({snapshot:E,target:e,property:t,currentValue:n,oldValue:i})instanceof Promise)throw Error(`svstate: effect callback must be synchronous. Use action for async operations.`);w(`onChange`,{target:e,property:t,currentValue:n,oldValue:i}),ne(),le(t)});if(T(),o&&r.runAsyncValidationOnInit)for(let e of Object.keys(o))ce(e);let de=async e=>{if(!(!r.allowConcurrentActions&&ut(d))){w(`onAction`,{phase:`before`,params:e}),f.set(void 0),d.set(!0);try{await t?.action?.(e),r.resetDirtyOnAction&&l.set({}),p.set([{title:`Initial`,data:ra(S)}]),await t?.actionCompleted?.(),w(`onAction`,{phase:`after`,params:e})}catch(n){await t?.actionCompleted?.(n);let r=n instanceof Error?n:n&&typeof n==`object`?Error(String(n.message??n.body?.message??n)):void 0;f.set(r),w(`onAction`,{phase:`after`,params:e,error:r})}finally{d.set(!1)}}},fe=(e,t)=>{let n=t[e];if(n)return ae(),l.set({}),Object.assign(S,ra(n.data)),p.set(t.slice(0,e+1)),T(),n},pe=(e=1)=>{let t=ut(p);if(t.length<=1)return;let n=fe(Math.max(0,t.length-1-e),t);n&&w(`onRollback`,n)},me=e=>{let t=ut(p);if(t.length<=1)return!1;for(let n=t.length-1;n>=0;n--)if(t[n].title===e){let e=fe(n,t);return e&&w(`onRollback`,e),!0}return!1},he=()=>{let e=ut(p);e[0]&&(fe(0,e),w(`onReset`))},ge={errors:s,hasErrors:c,isDirty:u,isDirtyByField:l,actionInProgress:d,actionError:f,snapshots:p,asyncErrors:m,hasAsyncErrors:_,asyncValidating:g,hasCombinedErrors:v};return w(`onInit`,{data:ue,state:ge,options:r,snapshot:E}),{data:ue,execute:de,state:ge,rollback:pe,rollbackTo:me,reset:he,destroy:()=>{for(let e=C.length-1;e>=0;e--)C[e]?.destroy?.()}}}var la={trim:e=>e.trim(),normalize:e=>e.replaceAll(/\s{2,}/g,` `),upper:e=>e.toUpperCase(),lower:e=>e.toLowerCase(),localeUpper:e=>e.toLocaleUpperCase(),localeLower:e=>e.toLocaleLowerCase()};function q(e){let t=``,n=e==null,r=e??``,i=e=>{t||=e},a={prepare(...e){return r=e.reduce((e,t)=>la[t](e),r),a},required(){return!t&&(n||!r)&&i(`Required`),a},requiredIf(e){return e&&!t&&(n||!r)&&i(`Required`),a},noSpace(){return n||!t&&r.includes(` `)&&i(`No space allowed`),a},notBlank(){return n||!t&&r.length>0&&r.trim().length===0&&i(`Must not be blank`),a},minLength(e){return n||!t&&r.lengthe&&i(`Max length ${e}`),a},uppercase(){return n||!t&&r!==r.toUpperCase()&&i(`Uppercase only`),a},lowercase(){return n||!t&&r!==r.toLowerCase()&&i(`Lowercase only`),a},startsWith(e){if(t)return a;let n=Array.isArray(e)?e:[e];return r&&!n.some(e=>r.startsWith(e))&&i(`Must start with ${n.join(`, `)}`),a},regexp(e,n){return!t&&r&&!e.test(r)&&i(n??`Not allowed chars`),a},in(e){if(t)return a;let n=Array.isArray(e)?e:Object.keys(e);return r&&!n.includes(r)&&i(`Must be one of: ${n.join(`, `)}`),a},notIn(e){if(t)return a;let n=Array.isArray(e)?e:Object.keys(e);return r&&n.includes(r)&&i(`Must not be one of: ${n.join(`, `)}`),a},email(){return!t&&r&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)&&i(`Invalid email format`),a},website(e=`optional`){if(t||!r||e===`optional`)return a;let n=/^https?:\/\//.test(r);return e===`required`&&!n?i(`Must start with http:// or https://`):e===`forbidden`&&n&&i(`Must not start with http:// or https://`),a},endsWith(e){if(t||!r)return a;let n=Array.isArray(e)?e:[e];return n.some(e=>r.endsWith(e))||i(`Must end with ${n.join(`, `)}`),a},contains(e){return!t&&r&&!r.includes(e)&&i(`Must contain "${e}"`),a},alphanumeric(){return!t&&r&&!/^[\dA-Za-z]+$/.test(r)&&i(`Only letters and numbers allowed`),a},numeric(){return!t&&r&&!/^\d+$/.test(r)&&i(`Only numbers allowed`),a},slug(){return!t&&r&&!/^[\da-z-]+$/.test(r)&&i(`Invalid slug format`),a},identifier(){return!t&&r&&!/^[A-Z_a-z]\w*$/.test(r)&&i(`Invalid identifier format`),a},getError(){return t}};return a}function ua(e){let t=``,n=e==null,r=e=>{t||=e},i={required(){return!t&&(n||Number.isNaN(e))&&r(`Required`),i},requiredIf(a){return a&&!t&&(n||Number.isNaN(e))&&r(`Required`),i},min(a){return n||!t&&ea&&r(`Maximum ${a}`),i},between(a,o){return n||!t&&(eo)&&r(`Must be between ${a} and ${o}`),i},integer(){return n||!t&&!Number.isInteger(e)&&r(`Must be an integer`),i},positive(){return n||!t&&e<=0&&r(`Must be positive`),i},negative(){return n||!t&&e>=0&&r(`Must be negative`),i},nonNegative(){return n||!t&&e<0&&r(`Must be non-negative`),i},notZero(){return n||!t&&e===0&&r(`Must not be zero`),i},multipleOf(a){return n||!t&&e%a!==0&&r(`Must be a multiple of ${a}`),i},step(a){return n||!t&&e%a!==0&&r(`Must be a multiple of ${a}`),i},decimal(a){return n||t||Number.isNaN(e)||(String(e).split(`.`)[1]?.length??0)>a&&r(`Maximum ${a} decimal places`),i},percentage(){return n||!t&&(e<0||e>100)&&r(`Must be between 0 and 100`),i},getError(){return t}};return i}function da(e){let t=``,n=e==null,r=e??[],i=e=>{t||=e},a={required(){return!t&&(n||r.length===0)&&i(`Required`),a},requiredIf(e){return e&&!t&&(n||r.length===0)&&i(`Required`),a},minLength(e){return n||!t&&r.lengthe&&i(`Maximum ${e} items`),a},unique(){if(n||t)return a;let e=new Set;for(let t of r){let n=typeof t==`object`?JSON.stringify(t):String(t);if(e.has(n)){i(`Items must be unique`);break}e.add(n)}return a},ofLength(e){return n||!t&&r.length!==e&&i(`Must have exactly ${e} items`),a},includes(e){if(n||t)return a;let o=typeof e==`object`?JSON.stringify(e):String(e);return r.some(e=>(typeof e==`object`?JSON.stringify(e):String(e))===o)||i(`Must include ${o}`),a},includesAny(e){if(n||t)return a;let o=e.map(e=>typeof e==`object`?JSON.stringify(e):String(e));return r.some(e=>{let t=typeof e==`object`?JSON.stringify(e):String(e);return o.includes(t)})||i(`Must include at least one of: ${o.join(`, `)}`),a},includesAll(e){if(n||t)return a;let o=new Set(r.map(e=>typeof e==`object`?JSON.stringify(e):String(e))),s=e.filter(e=>{let t=typeof e==`object`?JSON.stringify(e):String(e);return!o.has(t)});return s.length>0&&i(`Missing required items: ${s.map(e=>typeof e==`object`?JSON.stringify(e):String(e)).join(`, `)}`),a},getError(){return t}};return a}var fa=U(`
`),pa=U(`
 
`);function J(e,t){var n=pa(),r=F(n),i=e=>{var n=fa(),r=F(n,!0);k(n),R(()=>G(r,t.title)),W(e,n)};K(r,e=>{t.title&&e(i)});var a=L(r,2),o=F(a,!0);k(a),k(n),R(()=>G(o,t.code)),W(e,n)}var ma=U(`
Dirty Fields
 
`),ha=U(`
State Object
 
State Info
isDirty:
hasErrors:
Errors
 
`);function ga(e,t){Ge(t,!0);let n=Mi(t,`width`,3,`xl:w-80`);var r=ha(),i=F(r),a=L(F(i),2),o=F(a,!0);k(a),k(i);var s=L(i,2),c=L(F(s),2),l=F(c),u=L(F(l));k(l);var d=L(l,2),f=L(F(d));k(d),k(c),k(s);var p=L(s,2),m=e=>{var n=ma(),r=L(F(n),2),i=F(r,!0);k(r),k(n),R(e=>G(i,e),[()=>JSON.stringify(t.isDirtyByField,Object.keys(t.isDirtyByField).toSorted(),2)]),W(e,n)};K(p,e=>{t.isDirtyByField&&e(m)});var h=L(p,2),g=L(F(h),2),_=F(g,!0);k(g),k(h);var v=L(h,2);k(r),R((e,i)=>{pi(r,1,`w-full ${n()??``} flex-shrink-0 space-y-4`),G(o,e),G(u,` ${t.isDirty??``}`),G(f,` ${t.hasErrors??``}`),G(_,i)},[()=>JSON.stringify(t.data,void 0,2),()=>JSON.stringify(t.errors,void 0,2)]),H(`click`,v,function(...e){t.onFill?.apply(this,e)}),W(e,r),Ke()}Rr([`click`]);var _a=U(`

`);function va(e,t){var n=Kr(),r=I(n),i=e=>{var n=_a(),r=F(n,!0);k(n),R(()=>G(r,t.error)),W(e,n)};K(r,e=>{t.error&&e(i)}),W(e,n)}var ya=U(``),ba=U(`
`);function Y(e,t){Ge(t,!0);let n=Mi(t,`type`,3,`text`),r=Mi(t,`placeholder`,3,``),i=Mi(t,`value`,15),a=Mi(t,`error`,3,``),o=Mi(t,`required`,3,!0),s=Mi(t,`disabled`,3,!1),c=Mi(t,`variant`,3,`default`),l=M(()=>c()===`nested`?`bg-white`:`bg-gray-50`);var u=ba(),d=F(u),f=F(d),p=L(f),m=e=>{W(e,ya())};K(p,e=>{t.isDirty&&e(m)}),k(d);var h=L(d,2);xi(h);var g=L(h,2);{let e=M(()=>a()??``);va(g,{get error(){return V(e)}})}k(u),R(()=>{pi(d,1,`mb-2 block text-sm text-gray-900 ${o()?`font-bold`:``}`),Si(d,`for`,t.id),G(f,`${t.label??``} `),Si(h,`id`,t.id),pi(h,1,`block w-full rounded-lg border p-2.5 text-sm ${a()?`border-red-500 bg-red-50 text-red-900 placeholder-red-400 focus:border-red-500 focus:ring-red-500`:`border-gray-300 ${V(l)} text-gray-900 focus:border-blue-500 focus:ring-blue-500`} ${s()?`cursor-not-allowed opacity-50`:``}`),h.disabled=s(),Si(h,`max`,t.max),Si(h,`min`,t.min),Si(h,`placeholder`,r()),Si(h,`step`,t.step),Si(h,`type`,n())}),Ei(h,i),W(e,u),Ke()}var xa=U(`

`),Sa=U(`
`),Ca=U(`
`,1);function wa(e,t){var n=Ca(),r=I(n),i=F(r),a=F(i),o=F(a,!0);k(a);var s=L(a,2),c=e=>{var n=xa(),r=F(n,!0);k(n),R(()=>G(r,t.description)),W(e,n)},l=e=>{W(e,Sa())};K(s,e=>{t.description?e(c):e(l,-1)}),ui(L(s,2),()=>t.main),k(i),ui(L(i,2),()=>t.sidebar),k(r);var u=L(r,2),d=e=>{var n=Kr();ui(I(n),()=>t.sourceCode),W(e,n)};K(u,e=>{t.sourceCode&&e(d)}),R(()=>G(o,t.title)),W(e,n)}var Ta=U(`
`),Ea=U(`
`);function Da(e,t){let n=N(!1);var r=Ea(),i=F(r),a=L(F(i),2);k(i);var o=L(i,2),s=e=>{var n=Ta();ui(F(n),()=>t.children),k(n),W(e,n)};K(o,e=>{V(n)&&e(s)}),k(r),R(()=>{pi(i,1,`flex w-full cursor-pointer items-center justify-between px-4 py-3 text-left text-sm font-medium text-gray-900 hover:bg-gray-50 ${V(n)?`border-b border-gray-200`:``}`),pi(a,0,`h-5 w-5 transform transition-transform ${V(n)?`rotate-180`:``}`)}),H(`click`,i,()=>P(n,!V(n))),W(e,r)}Rr([`click`]);var Oa=U(`
`);function ka(e,t){var n=Oa(),r=F(n),i=F(r,!0);k(r);var a=L(r,2),o=F(a,!0);k(a),k(n),R(()=>{pi(r,1,`rounded px-2.5 py-0.5 text-xs font-medium ${t.hasErrors?`bg-red-100 text-red-800`:`bg-green-100 text-green-800`}`),G(i,t.hasErrors?`Has Errors`:`Valid`),pi(a,1,`rounded px-2.5 py-0.5 text-xs font-medium ${t.isDirty?`bg-yellow-100 text-yellow-800`:`bg-gray-100 text-gray-800`}`),G(o,t.isDirty?`Modified`:`Clean`)}),W(e,n)}var X=()=>Math.random().toString(36).slice(2,8),Aa=(e,t)=>Math.floor(Math.random()*(t-e+1))+e,ja=U(`
`),Ma=U(`
`),Na=U(` Submitting...`),Pa=U(`
`,1),Fa=U(`
Action State
actionInProgress:
actionError:
`),Ia=U(` `,1);function La(e,t){Ge(t,!0);let n=()=>A(h,`$hasErrors`,s),r=()=>A(g,`$isDirty`,s),i=()=>A(_,`$actionInProgress`,s),a=()=>A(m,`$errors`,s),o=()=>A(v,`$actionError`,s),[s,c]=mt(),l={title:`Task ${X()}`,description:`This is a sample task description with ID ${X()}`},u=N(!1),d=N(void 0),{data:f,execute:p,state:{errors:m,hasErrors:h,isDirty:g,actionInProgress:_,actionError:v}}=ca(l,{validator:e=>({title:q(e.title).prepare(`trim`).required().minLength(3).maxLength(50).getError(),description:q(e.description).prepare(`trim`).required().minLength(10).maxLength(200).getError()}),action:async()=>{let e=Aa(100,1e3);if(await new Promise(t=>setTimeout(t,e)),V(u))throw Error(`Simulated server error after ${e}ms`);P(d,`Submitted successfully in ${e}ms!`)},actionCompleted:e=>{e&&P(d,void 0)}}),y=()=>{f.title=`Task ${X()}`,f.description=`This is a sample task description with ID ${X()}`},b=()=>{P(d,void 0),p()};wa(e,{description:`Demonstrates async action execution with loading states and error handling.`,title:`Action Demo`,main:e=>{var t=Pa(),s=I(t);ka(s,{get hasErrors(){return n()},get isDirty(){return r()}});var c=L(s,2),l=F(c),p=F(l,!0);k(l),k(c);var m=L(c,2),h=F(m);{let e=M(()=>a()?.title);Y(h,{id:`title`,get disabled(){return i()},get error(){return V(e)},label:`Title`,placeholder:`Enter task title`,get value(){return f.title},set value(e){f.title=e}})}var g=L(h,2);{let e=M(()=>a()?.description);Y(g,{id:`description`,get disabled(){return i()},get error(){return V(e)},label:`Description`,placeholder:`Enter task description (min 10 characters)`,get value(){return f.description},set value(e){f.description=e}})}var _=L(g,2),v=F(_);xi(v),Pe(2),k(_),k(m);var y=L(m,2),x=e=>{var t=ja(),n=F(t),r=L(F(n),2),i=F(r,!0);k(r),k(n),k(t),R(()=>G(i,o().message)),W(e,t)};K(y,e=>{o()&&e(x)});var S=L(y,2),C=e=>{var t=Ma(),n=F(t),r=L(F(n),2),i=F(r,!0);k(r),k(n),k(t),R(()=>G(i,V(d))),W(e,t)};K(S,e=>{V(d)&&e(C)});var w=L(S,2),T=F(w),E=F(T),ee=e=>{W(e,Na())},te=e=>{W(e,Gr(`Submit`))};K(E,e=>{i()?e(ee):e(te,-1)}),k(T),k(w),R(()=>{pi(l,1,`rounded px-2.5 py-0.5 text-xs font-medium ${i()?`bg-blue-100 text-blue-800`:`bg-gray-100 text-gray-800`}`),G(p,i()?`In Progress`:`Idle`),v.disabled=i(),T.disabled=n()||i()}),Di(v,()=>V(u),e=>P(u,e)),H(`click`,T,b),W(e,t)},sidebar:e=>{var t=Fa(),s=F(t);ga(s,{get data(){return f},get errors(){return a()},get hasErrors(){return n()},get isDirty(){return r()},onFill:y});var c=L(s,2),l=L(F(c),2),u=F(l),d=L(F(u));k(u);var p=L(u,2),m=L(F(p));k(p),k(l),k(c),k(t),R(()=>{G(d,` ${i()??``}`),G(m,` ${o()?.message??`none`??``}`)}),W(e,t)},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=Ia(),r=I(n);J(r,{code:`const { data, execute, state: { errors, hasErrors, isDirty, actionInProgress, actionError } } = - createSvState(sourceData, { - validator: (source) => ({ - title: stringValidator(source.title).prepare('trim').required().minLength(3).maxLength(50).getError(), - description: stringValidator(source.description).prepare('trim').required().minLength(10).getError() - }), - action: async () => { - // Simulate API call with 100-1000ms delay - const delay = randomInt(100, 1000); - await new Promise((resolve) => setTimeout(resolve, delay)); - - if (shouldFail) { - throw new Error('Simulated server error'); - } - }, - actionCompleted: (error) => { - // Called after action completes (success or failure) - console.log(error ? 'Action failed' : 'Action succeeded'); - } - });`,title:`State Setup with Action`});var i=L(r,2);J(i,{code:`// Execute the action - - -// With parameters (if action accepts them) -execute({ userId: 123 });`,title:`Execute Action`}),J(L(i,2),{code:`// Display action error -{#if $actionError} -
- {$actionError.message} -
-{/if} - -// Check if action is in progress -{#if $actionInProgress} -
Submitting...
-{/if}`,title:`Error & Loading States`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),c()}Rr([`click`]);var Ra=U(`
`);function za(e,t){let n=Mi(t,`label`,3,`Item`);var r=Ra(),i=F(r),a=F(i),o=F(a);k(a);var s=L(a,2);k(i),ui(L(i,2),()=>t.children),k(r),R(()=>G(o,`${n()??``} #${t.index+1}`)),H(`click`,s,function(...e){t.onRemove?.apply(this,e)}),W(e,r)}Rr([`click`]);var Ba=U(`

`);function Va(e,t){var n=Ba(),r=F(n),i=F(r,!0);k(r),k(n),R(()=>G(i,t.message)),W(e,n)}var Ha=U(`
`),Ua=U(`
`),Wa=U(`
`),Ga=U(`
Contacts
`,1),Ka=U(` `,1);function qa(e,t){Ge(t,!0);let n=()=>A(l,`$hasErrors`,a),r=()=>A(u,`$isDirty`,a),i=()=>A(c,`$errors`,a),[a,o]=mt(),{data:s,state:{errors:c,hasErrors:l,isDirty:u}}=ca({listName:``,items:[]},{validator:e=>({listName:q(e.listName).prepare(`trim`).required().minLength(2).getError(),items:da(e.items).required().minLength(1).getError(),...Object.fromEntries(e.items.map((e,t)=>[`item_${t}`,{name:q(e.name).prepare(`trim`).required().minLength(2).getError(),email:q(e.email).prepare(`trim`).required().email().getError()}]))})}),d=()=>{s.items=[...s.items,{name:``,email:``}]},f=e=>{s.items=s.items.filter((t,n)=>n!==e)},p=()=>{s.listName=`Contact List ${X()}`,s.items=[{name:`John Doe`,email:`john@example.com`},{name:`Jane Smith`,email:`jane@example.com`},{name:`Bob Wilson`,email:`bob@example.com`}]};wa(e,{description:`Shows how to validate dynamic arrays with per-item validation using indexed error keys.`,title:`Array Property Demo`,main:e=>{var t=Ga(),a=I(t);ka(a,{get hasErrors(){return n()},get isDirty(){return r()}});var o=L(a,2),c=F(o);{let e=M(()=>i()?.listName);Y(c,{id:`listName`,get error(){return V(e)},label:`List Name`,placeholder:`Enter list name`,get value(){return s.listName},set value(e){s.listName=e}})}var l=L(c,2),u=F(l),p=F(u),m=L(F(p)),h=F(m);k(m),k(p);var g=L(p,2);k(u);var _=L(u,2),v=e=>{var t=Ha();va(F(t),{get error(){return i().items}}),k(t),W(e,t)};K(_,e=>{i()?.items&&e(v)});var y=L(_,2),b=e=>{Va(e,{message:`No contacts yet. Click "Add Contact" to get started.`})},x=e=>{var t=Wa();ii(t,21,()=>s.items,ei,(e,t,n)=>{za(e,{index:n,label:`Contact`,onRemove:()=>f(n),children:(e,r)=>{var a=Ua(),o=F(a),s=F(o);Si(s,`for`,`item-name-${n}`);var c=L(s,2);xi(c),Si(c,`id`,`item-name-${n}`);var l=L(c,2);{let e=M(()=>i()?.[`item_${n}`]?.name??``);va(l,{get error(){return V(e)}})}k(o);var u=L(o,2),d=F(u);Si(d,`for`,`item-email-${n}`);var f=L(d,2);xi(f),Si(f,`id`,`item-email-${n}`);var p=L(f,2);{let e=M(()=>i()?.[`item_${n}`]?.email??``);va(p,{get error(){return V(e)}})}k(u),k(a),R(()=>{pi(c,1,`block w-full rounded-lg border p-2 text-sm ${i()?.[`item_${n}`]?.name?`border-red-500 bg-red-50 text-red-900 placeholder-red-400`:`border-gray-300 bg-white text-gray-900`}`),pi(f,1,`block w-full rounded-lg border p-2 text-sm ${i()?.[`item_${n}`]?.email?`border-red-500 bg-red-50 text-red-900 placeholder-red-400`:`border-gray-300 bg-white text-gray-900`}`)}),Ei(c,()=>V(t).name,e=>V(t).name=e),Ei(f,()=>V(t).email,e=>V(t).email=e),W(e,a)},$$slots:{default:!0}})}),k(t),W(e,t)};K(y,e=>{s.items.length===0?e(b):e(x,-1)}),k(l),k(o),R(()=>G(h,`${s.items.length??``} items`)),H(`click`,g,d),W(e,t)},sidebar:e=>{ga(e,{get data(){return s},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:p,width:`xl:w-96`})},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=Ka(),r=I(n);J(r,{code:`const sourceData = { - listName: '', - items: [] as { name: string; email: string }[] -}; - -const { data, state: { errors, hasErrors, isDirty } } = createSvState(sourceData, { - validator: (source) => ({ - listName: stringValidator(source.listName).prepare('trim').required().minLength(2).getError(), - items: arrayValidator(source.items).required().minLength(1).getError(), - // Per-item validation using indexed keys - ...Object.fromEntries( - source.items.map((item, index) => [ - \`item_\${index}\`, - { - name: stringValidator(item.name).prepare('trim').required().minLength(2).getError(), - email: stringValidator(item.email).prepare('trim').required().email().getError() - } - ]) - ) - }) -});`,title:`State Setup with Array Item Validation`}),J(L(r,2),{code:`// Define type for item errors -type ItemErrors = Record; - -{#each data.items as item, index} - - - - - -{/each}`,title:`Array Form Binding Examples`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),o()}Rr([`click`]),He();var Ja=U(`
`),Ya=U(` Validating...`),Xa=U(`
Taken usernames:
Taken emails:
Taken slugs:
Concurrency limit: maxConcurrentAsyncValidations = 2
Only 2 async validations run simultaneously. Try filling all 3 fields at once to see queuing in action.
`,1),Za=U(`
Quick Fill
Async Validation State
asyncValidating:
hasAsyncErrors:
hasCombinedErrors:
Async Errors
 
`),Qa=U(` `,1);function $a(e,t){Ge(t,!1);let n=()=>A(_,`$hasErrors`,l),r=()=>A(v,`$isDirty`,l),i=()=>A(b,`$hasAsyncErrors`,l),a=()=>A(S,`$hasCombinedErrors`,l),o=()=>A(g,`$errors`,l),s=()=>A(y,`$asyncErrors`,l),c=()=>A(x,`$asyncValidating`,l),[l,u]=mt(),d=[`admin`,`user`,`test`,`demo`,`root`],f=[`admin@example.com`,`test@example.com`,`user@example.com`],p=[`admin`,`about`,`contact`,`help`,`support`],m=ca({username:``,email:``,slug:``},{validator:e=>({username:q(e.username).prepare(`trim`).required().minLength(3).maxLength(20).noSpace().getError(),email:q(e.email).prepare(`trim`).required().email().getError(),slug:q(e.slug).prepare(`trim`).required().minLength(2).slug().getError()}),asyncValidator:{username:async(e,t,n)=>{await new Promise((e,t)=>{let r=setTimeout(e,500);n.addEventListener(`abort`,()=>{clearTimeout(r),t(new DOMException(`Aborted`,`AbortError`))})});let r=String(e).toLowerCase();return d.includes(r)?`Username is already taken`:``},email:async(e,t,n)=>{await new Promise((e,t)=>{let r=setTimeout(e,400);n.addEventListener(`abort`,()=>{clearTimeout(r),t(new DOMException(`Aborted`,`AbortError`))})});let r=String(e).toLowerCase();return f.includes(r)?`Email is already registered`:``},slug:async(e,t,n)=>{await new Promise((e,t)=>{let r=setTimeout(e,600);n.addEventListener(`abort`,()=>{clearTimeout(r),t(new DOMException(`Aborted`,`AbortError`))})});let r=String(e).toLowerCase();return p.includes(r)?`URL slug is already in use`:``}}},{maxConcurrentAsyncValidations:2}),h=an(m.data),g=m.state.errors,_=m.state.hasErrors,v=m.state.isDirty,y=m.state.asyncErrors,b=m.state.hasAsyncErrors,x=m.state.asyncValidating,S=m.state.hasCombinedErrors,C=()=>{on(h,V(h).username=`newuser${X()}`),on(h,V(h).email=`${X()}@example.com`),on(h,V(h).slug=`my-page-${X()}`)},w=()=>{on(h,V(h).username=`admin`),on(h,V(h).email=`admin@example.com`),on(h,V(h).slug=`about`)};Ai(),wa(e,{description:`Demonstrates async validation with simulated API calls for username and email uniqueness checks.`,title:`Async Validation Demo`,main:e=>{var t=Xa(),l=I(t);ka(l,{get hasErrors(){return n()},get isDirty(){return r()}});var u=L(l,2),m=F(u),g=F(m);k(m);var _=L(m,2),v=F(_);k(_),k(u);var y=L(u,2),b=F(y),x=F(b);{let e=Jt(()=>o()?.username||s().username);Y(x,{id:`username`,get error(){return V(e)},label:`Username`,placeholder:`Enter username (try 'admin', 'user', 'test')`,get value(){return V(h).username},set value(e){on(h,V(h).username=e)},$$legacy:!0})}var S=L(x,2),C=e=>{W(e,Ja())},w=M(()=>c().includes(`username`));K(S,e=>{V(w)&&e(C)}),k(b);var T=L(b,2),E=F(T);{let e=Jt(()=>o()?.email||s().email);Y(E,{id:`email`,get error(){return V(e)},label:`Email`,placeholder:`Enter email (try 'admin@example.com')`,type:`email`,get value(){return V(h).email},set value(e){on(h,V(h).email=e)},$$legacy:!0})}var ee=L(E,2),te=e=>{W(e,Ja())},ne=M(()=>c().includes(`email`));K(ee,e=>{V(ne)&&e(te)}),k(T);var re=L(T,2),ie=F(re);{let e=Jt(()=>o()?.slug||s().slug);Y(ie,{id:`slug`,get error(){return V(e)},label:`URL Slug`,placeholder:`Enter slug (try 'admin', 'about', 'contact')`,get value(){return V(h).slug},set value(e){on(h,V(h).slug=e)},$$legacy:!0})}var ae=L(ie,2),oe=e=>{W(e,Ja())},se=M(()=>c().includes(`slug`));K(ae,e=>{V(se)&&e(oe)}),k(re),k(y);var ce=L(y,2),le=F(ce),ue=L(F(le));k(le);var de=L(le,2),fe=L(F(de));k(de);var pe=L(de,2),me=L(F(pe));k(pe),k(ce);var he=L(ce,4),ge=F(he),_e=F(ge),ve=e=>{W(e,Ya())},ye=e=>{W(e,Gr(`Submit`))};K(_e,e=>{c().length>0?e(ve):e(ye,-1)}),k(ge),k(he),R((e,t,n)=>{pi(m,1,`rounded px-2.5 py-0.5 text-xs font-medium ${i()?`bg-red-100 text-red-800`:`bg-gray-100 text-gray-800`}`),G(g,`Async Errors: ${i()?`Yes`:`No`}`),pi(_,1,`rounded px-2.5 py-0.5 text-xs font-medium ${a()?`bg-red-100 text-red-800`:`bg-green-100 text-green-800`}`),G(v,`Combined: ${a()?`Has Errors`:`Valid`}`),G(ue,` ${e??``}`),G(fe,` ${t??``}`),G(me,` ${n??``}`),ge.disabled=a()||c().length>0},[()=>d.join(`, `),()=>f.join(`, `),()=>p.join(`, `)]),W(e,t)},sidebar:e=>{var t=Za(),l=F(t);ga(l,{get data(){return V(h)},get errors(){return o()},get hasErrors(){return n()},get isDirty(){return r()},onFill:C});var u=L(l,2),d=L(F(u),2);k(u);var f=L(u,2),p=L(F(f),2),m=F(p),g=L(F(m));k(m);var _=L(m,2),v=L(F(_));k(_);var y=L(_,2),b=L(F(y));k(y),k(p),k(f);var x=L(f,2),S=L(F(x),2),T=F(S,!0);k(S),k(x),k(t),R((e,t)=>{G(g,` [${e??``}]`),G(v,` ${i()??``}`),G(b,` ${a()??``}`),G(T,t)},[()=>c().join(`, `),()=>JSON.stringify(s(),void 0,2)]),H(`click`,d,w),W(e,t)},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=Qa(),r=I(n);J(r,{code:`const { data, state: { errors, asyncErrors, asyncValidating, hasCombinedErrors } } = - createSvState(sourceData, { - validator: (source) => ({ - username: stringValidator(source.username).required().minLength(3).noSpace().getError(), - email: stringValidator(source.email).required().email().getError(), - slug: stringValidator(source.slug).required().minLength(2).slug().getError() - }), - asyncValidator: { - username: async (value, source, signal) => { - const res = await fetch(\`/api/check-username?u=\${value}\`, { signal }); - return (await res.json()).available ? '' : 'Username already taken'; - }, - email: async (value, source, signal) => { - const res = await fetch(\`/api/check-email?e=\${value}\`, { signal }); - return (await res.json()).available ? '' : 'Email already registered'; - }, - slug: async (value, source, signal) => { - const res = await fetch(\`/api/check-slug?s=\${value}\`, { signal }); - return (await res.json()).available ? '' : 'URL slug already in use'; - } - } - }, - { maxConcurrentAsyncValidations: 2 } // Only 2 async validations run at a time -);`,title:`State Setup with Async Validators`});var i=L(r,2);J(i,{code:` -{#if $asyncValidating.includes('username')} - ... -{/if} - - -{#if $asyncErrors.username} - {$asyncErrors.username} -{/if} - - -`,title:`Template Usage`}),J(L(i,2),{code:`// Available stores for async validation: -$errors // Sync validation errors (nested object) -$hasErrors // true if any sync errors - -$asyncErrors // Async validation errors (flat map by path) -$hasAsyncErrors // true if any async errors - -$asyncValidating // Array of paths currently being validated -$hasCombinedErrors // hasErrors || hasAsyncErrors`,title:`Available Stores`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),u()}Rr([`click`]);var eo=U(``),to=U(`
`);function no(e,t){Ge(t,!0);let n=Mi(t,`placeholder`,3,``),r=Mi(t,`value`,15),i=Mi(t,`error`,3,``),a=Mi(t,`required`,3,!1),o=Mi(t,`rows`,3,3);var s=to(),c=F(s),l=F(c),u=L(l),d=e=>{W(e,eo())};K(u,e=>{t.isDirty&&e(d)}),k(c);var f=L(c,2);Dn(f);var p=L(f,2);{let e=M(()=>i()??``);va(p,{get error(){return V(e)}})}k(s),R(()=>{pi(c,1,`mb-2 block text-sm text-gray-900 ${a()?`font-bold`:``}`),Si(c,`for`,t.id),G(l,`${t.label??``} `),Si(f,`id`,t.id),pi(f,1,`block w-full rounded-lg border p-2.5 text-sm ${i()?`border-red-500 bg-red-50 text-red-900 placeholder-red-400 focus:border-red-500 focus:ring-red-500`:`border-gray-300 bg-gray-50 text-gray-900 focus:border-blue-500 focus:ring-blue-500`}`),Si(f,`placeholder`,n()),Si(f,`rows`,o())}),Ei(f,r),W(e,s),Ke()}var ro=U(`
`,1),io=U(` `,1);function ao(e,t){Ge(t,!0);let n=()=>A(u,`$hasErrors`,o),r=()=>A(d,`$isDirty`,o),i=()=>A(l,`$errors`,o),a=()=>A(f,`$isDirtyByField`,o),[o,s]=mt(),{data:c,state:{errors:l,hasErrors:u,isDirty:d,isDirtyByField:f}}=ca({username:``,email:``,age:0,bio:``,website:``},{validator:e=>({username:q(e.username).prepare(`trim`).required().minLength(3).maxLength(20).noSpace().getError(),email:q(e.email).prepare(`trim`).required().email().getError(),age:ua(e.age).required().min(18).max(120).integer().getError(),bio:q(e.bio).maxLength(200).getError(),website:q(e.website).prepare(`trim`).website(`required`).getError()})}),p=()=>{c.username=`user${X()}`,c.email=`${X()}@example.com`,c.age=Aa(18,65),c.bio=`Hello, I am a demo user!`,c.website=`https://${X()}.com`};wa(e,{description:`Demonstrates form validation with string, number, and email validators using the fluent API.`,title:`Basic Validation Demo`,main:e=>{var t=ro(),o=I(t);ka(o,{get hasErrors(){return n()},get isDirty(){return r()}});var s=L(o,2),l=F(s);{let e=M(()=>i()?.username);Y(l,{id:`username`,get error(){return V(e)},get isDirty(){return a().username},label:`Username`,placeholder:`Enter username`,get value(){return c.username},set value(e){c.username=e}})}var u=L(l,2);{let e=M(()=>i()?.email);Y(u,{id:`email`,get error(){return V(e)},get isDirty(){return a().email},label:`Email`,placeholder:`Enter email`,type:`email`,get value(){return c.email},set value(e){c.email=e}})}var d=L(u,2);{let e=M(()=>i()?.age);Y(d,{id:`age`,get error(){return V(e)},get isDirty(){return a().age},label:`Age`,placeholder:`Enter age`,type:`number`,get value(){return c.age},set value(e){c.age=e}})}var f=L(d,2);{let e=M(()=>i()?.bio);no(f,{id:`bio`,get error(){return V(e)},get isDirty(){return a().bio},label:`Bio`,placeholder:`Tell us about yourself`,get value(){return c.bio},set value(e){c.bio=e}})}var p=L(f,2);{let e=M(()=>i()?.website);Y(p,{id:`website`,get error(){return V(e)},get isDirty(){return a().website},label:`Website`,placeholder:`https://example.com`,required:!1,get value(){return c.website},set value(e){c.website=e}})}k(s),W(e,t)},sidebar:e=>{ga(e,{get data(){return c},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},get isDirtyByField(){return a()},onFill:p})},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=io(),r=I(n);J(r,{code:`const sourceData = { - username: '', - email: '', - age: 0, - bio: '', - website: '' -}; - -const { data, state: { errors, hasErrors, isDirty, isDirtyByField } } = createSvState(sourceData, { - validator: (source) => ({ - username: stringValidator(source.username).prepare('trim').required().minLength(3).maxLength(20).noSpace().getError(), - email: stringValidator(source.email).prepare('trim').required().email().getError(), - age: numberValidator(source.age).required().min(18).max(120).integer().getError(), - bio: stringValidator(source.bio).maxLength(200).getError(), - website: stringValidator(source.website).prepare('trim').website('required').getError() - }) -});`,title:`State Setup`}),J(L(r,2),{code:` -`,title:`Form Binding Example`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),s()}var oo=U(` `),so=U(`
`);function co(e,t){var n=so(),r=F(n),i=L(r),a=e=>{var n=oo(),r=F(n);k(n),R(()=>G(r,`(${t.subtitle??``})`)),W(e,n)};K(i,e=>{t.subtitle&&e(a)});var o=L(i,2),s=e=>{var n=Kr();ui(I(n),()=>t.children),W(e,n)};K(o,e=>{t.children&&e(s)}),k(n),R(()=>G(r,`${t.title??``} `)),W(e,n)}var lo=U(`
Subtotal:
Tax (8%):
Total:

Values formatted using methods on state: data.formatCurrency() and data.formatTotal()

`,1),uo=U(` `,1);function fo(e,t){Ge(t,!0);let n=()=>A(l,`$hasErrors`,a),r=()=>A(u,`$isDirty`,a),i=()=>A(c,`$errors`,a),[a,o]=mt(),{data:s,state:{errors:c,hasErrors:l,isDirty:u}}=ca({productName:`Widget ${X()}`,item:{unitPrice:0,quantity:1},subtotal:0,tax:0,total:0,formatTotal(){return`$${this.total.toFixed(2)}`},formatCurrency(e){return`$${e.toFixed(2)}`},calculateTotals(e=.08){this.subtotal=this.item.unitPrice*this.item.quantity,this.tax=this.subtotal*e,this.total=this.subtotal+this.tax}},{validator:e=>({productName:q(e.productName).prepare(`trim`).required().minLength(2).getError(),item:{unitPrice:ua(e.item.unitPrice).required().positive().getError(),quantity:ua(e.item.quantity).required().integer().min(1).max(100).getError()}}),effect:({property:e})=>{(e===`item.unitPrice`||e===`item.quantity`)&&s.calculateTotals()}}),d=()=>{s.productName=`Widget ${X()}`,s.item.unitPrice=Aa(10,100),s.item.quantity=Aa(1,10)};wa(e,{description:`Demonstrates using objects with methods as state. The effect callback can call methods directly on the state object.`,title:`State with Methods Demo`,main:e=>{var t=lo(),a=I(t);ka(a,{get hasErrors(){return n()},get isDirty(){return r()}});var o=L(a,2),c=F(o);{let e=M(()=>i()?.productName);Y(c,{id:`productName`,get error(){return V(e)},label:`Product Name`,placeholder:`Enter product name`,get value(){return s.productName},set value(e){s.productName=e}})}var l=L(c,2),u=F(l);co(u,{subtitle:`nested object`,title:`Item Details`});var d=L(u,2),f=F(d);{let e=M(()=>i()?.item?.unitPrice);Y(f,{id:`unitPrice`,get error(){return V(e)},label:`Unit Price ($)`,min:0,placeholder:`0.00`,step:.01,type:`number`,get value(){return s.item.unitPrice},set value(e){s.item.unitPrice=e}})}var p=L(f,2);{let e=M(()=>i()?.item?.quantity);Y(p,{id:`quantity`,get error(){return V(e)},label:`Quantity`,max:100,min:1,placeholder:`1`,type:`number`,get value(){return s.item.quantity},set value(e){s.item.quantity=e}})}k(d),k(l);var m=L(l,2),h=F(m);co(h,{subtitle:`computed by method`,title:`Calculated Totals`});var g=L(h,2),_=F(g),v=F(_),y=L(F(v),2),b=F(y,!0);k(y),k(v);var x=L(v,2),S=L(F(x),2),C=F(S,!0);k(S),k(x);var w=L(x,2),T=L(F(w),2),E=F(T,!0);k(T),k(w),k(_),k(g),Pe(2),k(m),k(o),R((e,t,n)=>{G(b,e),G(C,t),G(E,n)},[()=>s.formatCurrency(s.subtotal),()=>s.formatCurrency(s.tax),()=>s.formatTotal()]),W(e,t)},sidebar:e=>{ga(e,{get data(){return s},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:d})},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=uo(),r=I(n);J(r,{code:`// Define state type with methods -type SourceData = { - productName: string; - item: { unitPrice: number; quantity: number }; - subtotal: number; - tax: number; - total: number; - formatTotal: () => string; - formatCurrency: (value: number) => string; - calculateTotals: (taxRate?: number) => void; -}; - -// Create initial state as object with methods -const createSourceData = (): SourceData => ({ - productName: '', - item: { unitPrice: 0, quantity: 1 }, - subtotal: 0, - tax: 0, - total: 0, - formatTotal() { - return \`$\${this.total.toFixed(2)}\`; - }, - formatCurrency(value: number) { - return \`$\${value.toFixed(2)}\`; - }, - calculateTotals(taxRate: number = 0.08) { - this.subtotal = this.item.unitPrice * this.item.quantity; - this.tax = this.subtotal * taxRate; - this.total = this.subtotal + this.tax; - } -});`,title:`Class Definition`});var i=L(r,2);J(i,{code:`const { data, state: { errors, hasErrors, isDirty } } = createSvState(createSourceData(), { - validator: (source) => ({ - productName: stringValidator(source.productName).prepare('trim').required().minLength(2).getError(), - item: { - unitPrice: numberValidator(source.item.unitPrice).required().positive().getError(), - quantity: numberValidator(source.item.quantity).required().integer().min(1).max(100).getError() - } - }), - effect: ({ property }) => { - if (property === 'item.unitPrice' || property === 'item.quantity') { - data.calculateTotals(); // Call method on state object! - } - } -});`,title:`State Setup with Class Instance`}),J(L(i,2),{code:` -{data.formatCurrency(data.subtotal)} -{data.formatTotal()}`,title:`Template Usage`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),o()}var po=U(`
Subtotal:
Tax (8%):
Total:
`,1),mo=U(` `,1);function ho(e,t){Ge(t,!0);let n=()=>A(l,`$hasErrors`,a),r=()=>A(u,`$isDirty`,a),i=()=>A(c,`$errors`,a),[a,o]=mt(),{data:s,state:{errors:c,hasErrors:l,isDirty:u}}=ca({productName:`Widget ${X()}`,item:{unitPrice:0,quantity:1},subtotal:0,tax:0,total:0},{validator:e=>({productName:q(e.productName).prepare(`trim`).required().minLength(2).getError(),item:{unitPrice:ua(e.item.unitPrice).required().positive().getError(),quantity:ua(e.item.quantity).required().integer().min(1).max(100).getError()}}),effect:({property:e})=>{(e===`item.unitPrice`||e===`item.quantity`)&&(s.subtotal=s.item.unitPrice*s.item.quantity,s.tax=s.subtotal*.08,s.total=s.subtotal+s.tax)}}),d=()=>{s.productName=`Widget ${X()}`,s.item.unitPrice=Aa(10,100),s.item.quantity=Aa(1,10)},f=e=>`$${e.toFixed(2)}`;wa(e,{description:`Uses the effect callback to automatically compute derived values like subtotals, taxes, and totals.`,title:`Calculated Fields Demo`,main:e=>{var t=po(),a=I(t);ka(a,{get hasErrors(){return n()},get isDirty(){return r()}});var o=L(a,2),c=F(o);{let e=M(()=>i()?.productName);Y(c,{id:`productName`,get error(){return V(e)},label:`Product Name`,placeholder:`Enter product name`,get value(){return s.productName},set value(e){s.productName=e}})}var l=L(c,2),u=F(l);co(u,{subtitle:`nested object`,title:`Item Details`});var d=L(u,2),p=F(d);{let e=M(()=>i()?.item?.unitPrice);Y(p,{id:`unitPrice`,get error(){return V(e)},label:`Unit Price ($)`,min:0,placeholder:`0.00`,step:.01,type:`number`,get value(){return s.item.unitPrice},set value(e){s.item.unitPrice=e}})}var m=L(p,2);{let e=M(()=>i()?.item?.quantity);Y(m,{id:`quantity`,get error(){return V(e)},label:`Quantity`,max:100,min:1,placeholder:`1`,type:`number`,get value(){return s.item.quantity},set value(e){s.item.quantity=e}})}k(d),k(l);var h=L(l,2),g=F(h);co(g,{subtitle:`computed by effect`,title:`Calculated Totals`});var _=L(g,2),v=F(_),y=F(v),b=L(F(y),2),x=F(b,!0);k(b),k(y);var S=L(y,2),C=L(F(S),2),w=F(C,!0);k(C),k(S);var T=L(S,2),E=L(F(T),2),ee=F(E,!0);k(E),k(T),k(v),k(_),k(h),k(o),R((e,t,n)=>{G(x,e),G(w,t),G(ee,n)},[()=>f(s.subtotal),()=>f(s.tax),()=>f(s.total)]),W(e,t)},sidebar:e=>{ga(e,{get data(){return s},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:d})},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=mo(),r=I(n);J(r,{code:`const sourceData = { - productName: '', - item: { unitPrice: 0, quantity: 1 }, - subtotal: 0, tax: 0, total: 0 // Calculated fields (set by effect) -}; - -const TAX_RATE = 0.08; - -const { data, state: { errors, hasErrors, isDirty } } = createSvState(sourceData, { - validator: (source) => ({ - productName: stringValidator(source.productName).prepare('trim').required().minLength(2).getError(), - item: { - unitPrice: numberValidator(source.item.unitPrice).required().positive().getError(), - quantity: numberValidator(source.item.quantity).required().integer().min(1).max(100).getError() - } - }), - effect: ({ property }) => { - if (property === 'item.unitPrice' || property === 'item.quantity') { - data.subtotal = data.item.unitPrice * data.item.quantity; - data.tax = data.subtotal * TAX_RATE; - data.total = data.subtotal + data.tax; - } - } -});`,title:`State Setup with Effect`}),J(L(r,2),{code:`effect: ({ property }) => { - if (property === 'item.unitPrice' || property === 'item.quantity') { - data.subtotal = data.item.unitPrice * data.item.quantity; - data.tax = data.subtotal * TAX_RATE; - data.total = data.subtotal + data.tax; - } -}`,title:`Effect Function`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),o()}var go=U(` `),_o=U(``),vo=U(`
`);function yo(e,t){var n=vo(),r=F(n),i=F(r),a=L(i),o=e=>{var n=go(),r=F(n);k(n),R(()=>G(r,`(${t.subtitle??``})`)),W(e,n)};K(a,e=>{t.subtitle&&e(o)});var s=L(a,2),c=e=>{W(e,_o())};K(s,e=>{t.isDirty&&e(c)}),k(r),ui(L(r,2),()=>t.children),k(n),R(()=>G(i,`${t.title??``} `)),W(e,n)}var bo=U(``),xo=U(`
`),So=U(`
`,1),Co=U(` `,1);function wo(e,t){Ge(t,!0);let n=()=>A(u,`$hasErrors`,o),r=()=>A(d,`$isDirty`,o),i=()=>A(f,`$isDirtyByField`,o),a=()=>A(l,`$errors`,o),[o,s]=mt(),{data:c,state:{errors:l,hasErrors:u,isDirty:d,isDirtyByField:f}}=ca({name:``,address:{street:``,city:``,zip:``},company:{name:``,department:``,contact:{phone:``,email:``}}},{validator:e=>({name:q(e.name).prepare(`trim`).required().minLength(2).maxLength(50).getError(),address:{street:q(e.address.street).prepare(`trim`).required().minLength(5).getError(),city:q(e.address.city).prepare(`trim`).required().minLength(2).getError(),zip:q(e.address.zip).prepare(`trim`).required().minLength(5).maxLength(10).getError()},company:{name:q(e.company.name).prepare(`trim`).required().minLength(2).getError(),department:q(e.company.department).prepare(`trim`).maxLength(50).getError(),contact:{phone:q(e.company.contact.phone).prepare(`trim`).required().minLength(10).getError(),email:q(e.company.contact.email).prepare(`trim`).required().email().getError()}}})}),p=()=>{c.name=`John ${X()}`,c.address.street=`${Aa(100,9999)} Main Street`,c.address.city=`New York`,c.address.zip=`${Aa(1e4,99999)}`,c.company.name=`Acme ${X()} Inc`,c.company.department=`Engineering`,c.company.contact.phone=`555-${Aa(100,999)}-${Aa(1e3,9999)}`,c.company.contact.email=`contact@${X()}.com`};wa(e,{description:`Illustrates validating deeply nested object structures with multi-level property paths.`,title:`Nested Objects Demo`,main:e=>{var t=So(),o=I(t);ka(o,{get hasErrors(){return n()},get isDirty(){return r()}});var s=L(o,2),l=F(s),u=F(l);co(u,{title:`Personal Info`,children:(e,t)=>{var n=Kr(),r=I(n),a=e=>{W(e,bo())};K(r,e=>{i().name&&e(a)}),W(e,n)},$$slots:{default:!0}});var d=L(u,2);{let e=M(()=>a()?.name);Y(d,{id:`name`,get error(){return V(e)},label:`Full Name`,placeholder:`Enter your full name`,get value(){return c.name},set value(e){c.name=e}})}k(l);var f=L(l,2),p=F(f);co(p,{subtitle:`2-level nested`,title:`Address`,children:(e,t)=>{var n=Kr(),r=I(n),a=e=>{W(e,bo())};K(r,e=>{i().address&&e(a)}),W(e,n)},$$slots:{default:!0}});var m=L(p,2),h=F(m);{let e=M(()=>a()?.address?.street);Y(h,{id:`street`,get error(){return V(e)},label:`Street`,placeholder:`Enter street address`,get value(){return c.address.street},set value(e){c.address.street=e}})}var g=L(h,2),_=F(g);{let e=M(()=>a()?.address?.city);Y(_,{id:`city`,get error(){return V(e)},label:`City`,placeholder:`Enter city`,get value(){return c.address.city},set value(e){c.address.city=e}})}var v=L(_,2);{let e=M(()=>a()?.address?.zip);Y(v,{id:`zip`,get error(){return V(e)},label:`ZIP Code`,placeholder:`Enter ZIP`,get value(){return c.address.zip},set value(e){c.address.zip=e}})}k(g),k(m),k(f);var y=L(f,2),b=F(y);co(b,{subtitle:`3-level nested`,title:`Company`,children:(e,t)=>{var n=Kr(),r=I(n),a=e=>{W(e,bo())};K(r,e=>{i().company&&e(a)}),W(e,n)},$$slots:{default:!0}});var x=L(b,2),S=F(x),C=F(S);{let e=M(()=>a()?.company?.name);Y(C,{id:`company-name`,get error(){return V(e)},label:`Company Name`,placeholder:`Enter company name`,get value(){return c.company.name},set value(e){c.company.name=e}})}var w=L(C,2);{let e=M(()=>a()?.company?.department);Y(w,{id:`department`,get error(){return V(e)},label:`Department`,placeholder:`Enter department`,required:!1,get value(){return c.company.department},set value(e){c.company.department=e}})}k(S),yo(L(S,2),{get isDirty(){return i()[`company.contact`]},subtitle:`3rd level`,title:`Contact Info`,children:(e,t)=>{var n=xo(),r=F(n);{let e=M(()=>a()?.company?.contact?.phone);Y(r,{id:`contact-phone`,get error(){return V(e)},label:`Phone`,placeholder:`Enter phone number`,variant:`nested`,get value(){return c.company.contact.phone},set value(e){c.company.contact.phone=e}})}var i=L(r,2);{let e=M(()=>a()?.company?.contact?.email);Y(i,{id:`contact-email`,get error(){return V(e)},label:`Email`,placeholder:`Enter email address`,type:`email`,variant:`nested`,get value(){return c.company.contact.email},set value(e){c.company.contact.email=e}})}k(n),W(e,n)},$$slots:{default:!0}}),k(x),k(y),k(s),W(e,t)},sidebar:e=>{ga(e,{get data(){return c},get errors(){return a()},get hasErrors(){return n()},get isDirty(){return r()},get isDirtyByField(){return i()},onFill:p,width:`xl:w-96`})},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=Co(),r=I(n);J(r,{code:`const sourceData = { - name: '', - address: { street: '', city: '', zip: '' }, // 2-level nested - company: { // 3-level nested - name: '', - department: '', - contact: { phone: '', email: '' } - } -}; - -const { data, state: { errors, hasErrors, isDirty, isDirtyByField } } = createSvState(sourceData, { - validator: (source) => ({ - name: stringValidator(source.name).prepare('trim').required().minLength(2).maxLength(50).getError(), - address: { - street: stringValidator(source.address.street).prepare('trim').required().minLength(5).getError(), - city: stringValidator(source.address.city).prepare('trim').required().minLength(2).getError(), - zip: stringValidator(source.address.zip).prepare('trim').required().minLength(5).maxLength(10).getError() - }, - company: { - name: stringValidator(source.company.name).prepare('trim').required().minLength(2).getError(), - department: stringValidator(source.company.department).prepare('trim').maxLength(50).getError(), - contact: { - phone: stringValidator(source.company.contact.phone).prepare('trim').required().minLength(10).getError(), - email: stringValidator(source.company.contact.email).prepare('trim').required().email().getError() - } - } - }) -});`,title:`State Setup with Nested Validation`}),J(L(r,2),{code:` - - - - - -`,title:`Nested Form Binding Examples`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),s()}var To=U(`
Effect triggered:
`),Eo=U(`
`),Do=U(`
`),Oo=U(` Submitting...`),ko=U(`
`,1),Ao=U(`
Options

Reset isDirty after successful action

Try 500ms and type quickly

Keep errors until next action

Current Options
`),jo=U(` `,1);function Mo(e,t){Ge(t,!0);let n=()=>A(V(x),`$hasErrors`,s),r=()=>A(V(S),`$isDirty`,s),i=()=>A(V(C),`$actionInProgress`,s),a=()=>A(V(b),`$errors`,s),o=()=>A(V(w),`$actionError`,s),[s,c]=mt(),l=N(!0),u=N(0),d=N(!1),f=N(0),p=N(!1),m=N(void 0),h=N(void 0),g=()=>({name:`User ${X()}`,email:`${X()}@example.com`}),_=e=>ca(g(),{validator:e=>({name:q(e.name).prepare(`trim`).required().minLength(2).maxLength(50).getError(),email:q(e.email).prepare(`trim`).required().email().getError()}),effect:({property:e})=>{P(h,e,!0)},action:async()=>{let e=Aa(100,800);if(await new Promise(t=>setTimeout(t,e)),V(p))throw Error(`Simulated error after ${e}ms`);P(m,`Submitted successfully in ${e}ms!`)},actionCompleted:e=>{e&&P(m,void 0)}},e),v=N(fn(_({resetDirtyOnAction:!0,debounceValidation:0,persistActionError:!1}))),y=()=>{P(h,void 0),P(m,void 0),P(v,_({resetDirtyOnAction:V(l),debounceValidation:V(u),persistActionError:V(d)}),!0),ln(f)},b=M(()=>V(v).state.errors),x=M(()=>V(v).state.hasErrors),S=M(()=>V(v).state.isDirty),C=M(()=>V(v).state.actionInProgress),w=M(()=>V(v).state.actionError),T=()=>{V(v).data.name=`User ${X()}`,V(v).data.email=`${X()}@example.com`},E=()=>{P(m,void 0),V(v).execute()};wa(e,{description:`Interactive playground for configuring createSvState options like debouncing and error persistence.`,title:`Options Demo`,main:e=>{var t=Kr();$r(I(t),()=>V(f),e=>{var t=ko(),s=I(t);ka(s,{get hasErrors(){return n()},get isDirty(){return r()}});var c=L(s,2),l=e=>{var t=To(),n=F(t),r=L(F(n));k(n),k(t),R(()=>G(r,` property "${V(h)??``}" changed`)),W(e,t)};K(c,e=>{V(h)&&e(l)});var u=L(c,2),d=F(u);{let e=M(()=>a()?.name);Y(d,{id:`name`,get disabled(){return i()},get error(){return V(e)},label:`Name`,placeholder:`Enter name`,get value(){return V(v).data.name},set value(e){V(v).data.name=e}})}var f=L(d,2);{let e=M(()=>a()?.email);Y(f,{id:`email`,get disabled(){return i()},get error(){return V(e)},label:`Email`,placeholder:`Enter email`,type:`email`,get value(){return V(v).data.email},set value(e){V(v).data.email=e}})}var g=L(f,2),_=F(g);xi(_),Pe(2),k(g),k(u);var y=L(u,2),b=e=>{var t=Eo(),n=F(t),r=L(F(n),2),i=F(r,!0);k(r),k(n),k(t),R(()=>G(i,o().message)),W(e,t)};K(y,e=>{o()&&e(b)});var x=L(y,2),S=e=>{var t=Do(),n=F(t),r=L(F(n),2),i=F(r,!0);k(r),k(n),k(t),R(()=>G(i,V(m))),W(e,t)};K(x,e=>{V(m)&&e(S)});var C=L(x,2),w=F(C),T=F(w),ee=e=>{W(e,Oo())},te=e=>{W(e,Gr(`Submit`))};K(T,e=>{i()?e(ee):e(te,-1)}),k(w),k(C),R(()=>{_.disabled=i(),w.disabled=n()||i()}),Di(_,()=>V(p),e=>P(p,e)),H(`click`,w,E),W(e,t)}),W(e,t)},sidebar:e=>{var t=Ao(),i=F(t);ga(i,{get data(){return V(v).data},get errors(){return a()},get hasErrors(){return n()},get isDirty(){return r()},onFill:T});var o=L(i,2),s=L(F(o),2),c=F(s),f=F(c),p=F(f);xi(p),Pe(2),k(f),Pe(2),k(c);var m=L(c,2),h=L(F(m),2);xi(h),Pe(2),k(m);var g=L(m,2),_=F(g),b=F(_);xi(b),Pe(2),k(_),Pe(2),k(g);var x=L(g,2);k(s),k(o);var S=L(o,2),C=L(F(S),2),w=F(C),E=F(w);k(w);var ee=L(w,2),te=F(ee);k(ee);var ne=L(ee,2),re=F(ne);k(ne),k(C),k(S),k(t),R(()=>{G(E,`resetDirtyOnAction: ${V(l)??``}`),G(te,`debounceValidation: ${V(u)??``}`),G(re,`persistActionError: ${V(d)??``}`)}),Di(p,()=>V(l),e=>P(l,e)),Ei(h,()=>V(u),e=>P(u,e)),Di(b,()=>V(d),e=>P(d,e)),H(`click`,x,y),W(e,t)},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=jo(),r=I(n);J(r,{code:`const { data, execute, state } = createSvState( - sourceData, - { validator, effect, action }, - { - // Reset isDirty to false after successful action - resetDirtyOnAction: true, // default: true - - // Debounce validation by N milliseconds - debounceValidation: 0, // default: 0 (uses queueMicrotask) - - // Keep action errors until next action (not cleared on data change) - persistActionError: false // default: false - } -);`,title:`Options Overview`});var i=L(r,2);J(i,{code:`// With resetDirtyOnAction: true (default) -await execute(); -// isDirty is now false - -// With resetDirtyOnAction: false -await execute(); -// isDirty remains true`,title:`resetDirtyOnAction`});var a=L(i,2);J(a,{code:`// With debounceValidation: 0 (default) -// Validation runs via queueMicrotask after each change - -// With debounceValidation: 500 -// Validation runs 500ms after the last change -// Useful for expensive validators or rapid typing`,title:`debounceValidation`}),J(L(a,2),{code:`// With persistActionError: false (default) -data.name = 'new value'; -// actionError is cleared immediately - -// With persistActionError: true -data.name = 'new value'; -// actionError remains until next execute() call`,title:`persistActionError`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),c()}Rr([`click`]);var No=U(`Saving...`),Po=U(``),Fo=U(`
Auto-save triggers 2 seconds after the last change. Analytics events buffer and flush at 10 events or every 10 - seconds.
`,1),Io=U(`

No saves yet — edit the form and wait 2s

`),Lo=U(`
  • save
  • `),Ro=U(`
      `),zo=U(`

      No flushes yet

      `),Bo=U(`
    • flush
    • `),Vo=U(`
      Autosave Log
      Analytics Buffer
      Buffered:
      Batch size: 10
      Flush interval: 10s
      Tracked: change, action, snapshot
      Flush History
      `),Ho=U(` `,1);function Uo(e,t){Ge(t,!0);let n=()=>A(_,`$hasErrors`,o),r=()=>A(v,`$isDirty`,o),i=()=>A(g,`$errors`,o),a=()=>A(y,`$actionInProgress`,o),[o,s]=mt(),c=N(fn([])),l=N(fn([])),u=N(0),d=Pi({save:async e=>{await new Promise(e=>setTimeout(e,300));let t=new Date().toISOString().slice(11,23);P(c,[...V(c),{id:X(),timestamp:t,data:`${e.title} (${e.category})`}],!0)},idle:2e3,onlyWhenDirty:!0}),f=Ni({onFlush:e=>{let t=new Date().toISOString().slice(11,23),n={};for(let t of e)n[t.type]=(n[t.type]??0)+1;let r=Object.entries(n).map(([e,t])=>`${e}:${t}`).join(`, `);P(l,[...V(l),{id:X(),timestamp:t,eventCount:e.length,types:r}],!0)},batchSize:10,flushInterval:1e4,include:[`change`,`action`,`snapshot`]}),{data:p,execute:m,reset:h,state:{errors:g,hasErrors:_,isDirty:v,actionInProgress:y}}=ca({title:``,category:`general`,notes:``},{validator:e=>({title:q(e.title).prepare(`trim`).required().minLength(2).maxLength(100).getError(),category:``,notes:q(e.notes).maxLength(500).getError()}),effect:({snapshot:e,property:t})=>{e(`Changed ${t.charAt(0).toUpperCase()+t.slice(1)}`)},action:async()=>{await new Promise(e=>setTimeout(e,500))}},{plugins:[d,f]}),b=()=>{p.title=`Article ${X()}`,p.category=`tech`,p.notes=`Some interesting notes about the topic that should pass validation.`};Ln(()=>{let e=setInterval(()=>{P(u,f.eventCount(),!0)},500);return()=>clearInterval(e)}),wa(e,{description:`Auto-save with idle timer (autosavePlugin) and batched event analytics (analyticsPlugin).`,title:`Plugin: Autosave & Analytics`,main:e=>{var t=Fo(),o=I(t);ka(o,{get hasErrors(){return n()},get isDirty(){return r()}});var s=L(o,2),l=F(s),g=F(l);k(l);var _=L(l,2),v=F(_);k(_);var y=L(_,2),b=e=>{W(e,No())},x=M(()=>d.isSaving());K(y,e=>{V(x)&&e(b)}),k(s);var S=L(s,4),C=F(S);{let e=M(()=>i()?.title);Y(C,{id:`title`,get error(){return V(e)},label:`Title`,placeholder:`Enter article title`,get value(){return p.title},set value(e){p.title=e}})}var w=L(C,2),T=L(F(w),2),E=F(T);E.value=E.__value=`general`;var ee=L(E);ee.value=ee.__value=`tech`;var te=L(ee);te.value=te.__value=`science`;var ne=L(te);ne.value=ne.__value=`culture`,k(T),k(w);var re=L(w,2);{let e=M(()=>i()?.notes);no(re,{id:`notes`,get error(){return V(e)},label:`Notes`,placeholder:`Write your notes (max 500 chars)`,rows:4,get value(){return p.notes},set value(e){p.notes=e}})}k(S);var ie=L(S,2),ae=F(ie),oe=F(ae,!0);k(ae);var se=L(ae,2),ce=L(se,2),le=L(ce,2),ue=e=>{var t=Po();H(`click`,t,h),W(e,t)};K(le,e=>{r()&&e(ue)}),k(ie),R(()=>{G(g,`${V(c).length??``} Save${V(c).length===1?``:`s`}`),G(v,`${V(u)??``} Buffered Event${V(u)===1?``:`s`}`),ae.disabled=n()||a(),G(oe,a()?`Submitting...`:`Submit`)}),gi(T,()=>p.category,e=>p.category=e),H(`click`,ae,()=>m()),H(`click`,se,()=>d.saveNow()),H(`click`,ce,()=>f.flush()),W(e,t)},sidebar:e=>{var t=Vo(),a=F(t);ga(a,{get data(){return p},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:b,width:`xl:w-96`});var o=L(a,2),s=L(F(o),2),d=e=>{W(e,Io())},f=e=>{var t=Ro();ii(t,21,()=>V(c),e=>e.id,(e,t)=>{var n=Lo(),r=L(F(n),2),i=F(r,!0);k(r);var a=L(r,2),o=F(a,!0);k(a),k(n),R(()=>{G(i,V(t).data),G(o,V(t).timestamp)}),W(e,n)}),k(t),W(e,t)};K(s,e=>{V(c).length===0?e(d):e(f,-1)}),k(o);var m=L(o,2),h=L(F(m),2),g=F(h),_=L(F(g));k(g),Pe(6),k(h),k(m);var v=L(m,2),y=L(F(v),2),x=e=>{W(e,zo())},S=e=>{var t=Ro();ii(t,21,()=>V(l),e=>e.id,(e,t)=>{var n=Bo(),r=L(F(n),2),i=F(r);k(r);var a=L(r,2),o=F(a,!0);k(a),k(n),R(()=>{G(i,`${V(t).eventCount??``} event${V(t).eventCount===1?``:`s`} (${V(t).types??``})`),G(o,V(t).timestamp)}),W(e,n)}),k(t),W(e,t)};K(y,e=>{V(l).length===0?e(x):e(S,-1)}),k(v),k(t),R(()=>G(_,` ${V(u)??``} event${V(u)===1?``:`s`}`)),W(e,t)},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=Ho(),r=I(n);J(r,{code:`import { createSvState, autosavePlugin, analyticsPlugin } from 'svstate'; - -const autosave = autosavePlugin({ - save: async (data) => { - await fetch('/api/save', { - method: 'POST', - body: JSON.stringify(data) - }); - }, - idle: 2000, // Save 2s after last change - onlyWhenDirty: true // Skip save if nothing changed -}); - -const analytics = analyticsPlugin({ - onFlush: (events) => { - sendToAnalytics(events); // Your analytics endpoint - }, - batchSize: 10, // Flush after 10 events - flushInterval: 10000, // Or every 10 seconds - include: ['change', 'action', 'snapshot'] // Filter event types -}); - -const { data, execute, state } = createSvState( - initialData, actuators, - { plugins: [autosave, analytics] } -);`,title:`autosavePlugin + analyticsPlugin Setup`}),J(L(r,2),{code:`// autosavePlugin API -autosave.saveNow(); // Force immediate save -autosave.isSaving(); // Check if currently saving - -// analyticsPlugin API -analytics.flush(); // Force flush buffered events -analytics.eventCount(); // Number of buffered events`,title:`Plugin API`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),s()}Rr([`click`]);var Wo=U(``),Go=U(`
      `,1),Ko=U(`

      No events yet — interact with the form

      `),qo=U(`
    • `),Jo=U(`
        `),Yo=U(`
        Event Log
        `),Xo=U(` `,1);function Zo(e,t){Ge(t,!0);let n=()=>A(g,`$hasErrors`,s),r=()=>A(_,`$isDirty`,s),i=()=>A(h,`$errors`,s),a=()=>A(y,`$actionInProgress`,s),o=()=>A(v,`$snapshots`,s),[s,c]=mt(),l=N(fn([])),u=(e,t)=>{let n=new Date().toISOString().slice(11,23);P(l,[...V(l),{id:X(),type:e,message:t,timestamp:n}],!0)},{data:d,execute:f,reset:p,rollback:m,state:{errors:h,hasErrors:g,isDirty:_,snapshots:v,actionInProgress:y}}=ca({name:``,email:``,message:``},{validator:e=>({name:q(e.name).prepare(`trim`).required().minLength(2).maxLength(50).getError(),email:q(e.email).prepare(`trim`).required().email().getError(),message:q(e.message).prepare(`trim`).required().minLength(5).getError()}),effect:({snapshot:e,property:t})=>{e(`Changed ${t.charAt(0).toUpperCase()+t.slice(1)}`)},action:async()=>{await new Promise(e=>setTimeout(e,500))}},{plugins:[Ii({name:`demo-devtools`,enabled:!0,logValidation:!0}),{name:`log-mirror`,onChange(e){u(`change`,`${e.property}: "${e.oldValue}" → "${e.currentValue}"`)},onValidation(e){u(`validation`,e?`Has errors`:`Valid`)},onSnapshot(e){u(`snapshot`,e.title)},onAction(e){e.phase===`before`?u(`action`,`Action started`):u(`action`,e.error?`Action failed: ${e.error.message}`:`Action completed`)},onRollback(e){u(`rollback`,`Rolled back to: ${e.title}`)},onReset(){u(`reset`,`State reset to initial`)}}]}),b=()=>{d.name=`John Doe ${X()}`,d.email=`john.${X()}@example.com`,d.message=`Hello, this is a test message for the devtools demo.`},x=()=>{P(l,[],!0)},S={change:`bg-blue-100 text-blue-800`,validation:`bg-yellow-100 text-yellow-800`,snapshot:`bg-purple-100 text-purple-800`,action:`bg-green-100 text-green-800`,rollback:`bg-amber-100 text-amber-800`,reset:`bg-red-100 text-red-800`};wa(e,{description:`Shows devtoolsPlugin console logging and a custom log-mirror plugin that captures all events in-page.`,title:`Plugin: Devtools`,main:e=>{var t=Go(),s=I(t);ka(s,{get hasErrors(){return n()},get isDirty(){return r()}});var c=L(s,2),l=F(c);{let e=M(()=>i()?.name);Y(l,{id:`name`,get error(){return V(e)},label:`Name`,placeholder:`Enter your name`,get value(){return d.name},set value(e){d.name=e}})}var u=L(l,2);{let e=M(()=>i()?.email);Y(u,{id:`email`,get error(){return V(e)},label:`Email`,placeholder:`Enter your email`,type:`email`,get value(){return d.email},set value(e){d.email=e}})}var h=L(u,2);{let e=M(()=>i()?.message);no(h,{id:`message`,get error(){return V(e)},label:`Message`,placeholder:`Enter a message (min 5 chars)`,required:!0,get value(){return d.message},set value(e){d.message=e}})}k(c);var g=L(c,2),_=F(g),v=F(_,!0);k(_);var y=L(_,2),b=L(y,2),x=e=>{var t=Wo();H(`click`,t,p),W(e,t)};K(b,e=>{r()&&e(x)}),k(g),R(()=>{_.disabled=n()||a(),G(v,a()?`Submitting...`:`Submit`),y.disabled=o().length<=1}),H(`click`,_,()=>f()),H(`click`,y,()=>m()),W(e,t)},sidebar:e=>{var t=Yo(),a=F(t);ga(a,{get data(){return d},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:b,width:`xl:w-96`});var o=L(a,2),s=F(o),c=L(F(s),2);k(s);var u=L(s,2),f=e=>{W(e,Ko())},p=e=>{var t=Jo();ii(t,21,()=>V(l),e=>e.id,(e,t)=>{var n=qo(),r=F(n),i=F(r,!0);k(r);var a=L(r,2),o=F(a,!0);k(a);var s=L(a,2),c=F(s,!0);k(s),k(n),R(()=>{pi(r,1,`mt-0.5 flex-shrink-0 rounded px-1.5 py-0.5 text-[10px] font-medium ${S[V(t).type]??``}`),G(i,V(t).type),G(o,V(t).message),G(c,V(t).timestamp)}),W(e,n)}),k(t),W(e,t)};K(u,e=>{V(l).length===0?e(f):e(p,-1)}),k(o),k(t),H(`click`,c,x),W(e,t)},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=Xo(),r=I(n);J(r,{code:`import { createSvState, devtoolsPlugin } from 'svstate'; - -const { data, execute, reset, rollback, state } = createSvState( - { name: '', email: '', message: '' }, - { - validator: (source) => ({ /* ... */ }), - effect: ({ snapshot, property }) => { - snapshot(\`Changed \${property}\`); - }, - action: async () => { await saveToServer(); } - }, - { - plugins: [ - devtoolsPlugin({ - name: 'my-form', // Label in console - enabled: true, // Auto-disabled in production - collapsed: true, // Console groups collapsed - logValidation: true // Also log validation events - }) - ] - } -);`,title:`devtoolsPlugin Setup`}),J(L(r,2),{code:`// devtoolsPlugin logs these events to the console: -// - onChange: property changes with old/new values -// - onValidation: validation results (if logValidation: true) -// - onSnapshot: snapshot creation with title -// - onAction: action start/complete/error -// - onRollback: rollback with target snapshot title -// - onReset: state reset events`,title:`What Gets Logged`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),c()}Rr([`click`]);var Qo=U(`Restored from storage`),$o=U(`Fresh state`),es=U(``),ts=U(`
        Try: Reload the page to see persistence. Open this page in another tab to see cross-tab sync.
        `,1),ns=U(`
        Persistence Info
        Restored:
        Key: svstate-demo-settings
        Excluded: notifications
        Raw localStorage
         
        Sync Info
        Channel: svstate-demo-sync
        Throttle: 200ms
        Merge: overwrite (default)
        `),rs=U(` `,1);function is(e,t){Ge(t,!0);let n=()=>A(d,`$hasErrors`,a),r=()=>A(f,`$isDirty`,a),i=()=>A(u,`$errors`,a),[a,o]=mt(),s=Wi({key:`svstate-demo-settings`,throttle:300,exclude:[`notifications`]}),{data:c,reset:l,state:{errors:u,hasErrors:d,isDirty:f}}=ca({username:``,theme:`light`,fontSize:14,notifications:!0},{validator:e=>({username:q(e.username).prepare(`trim`).required().minLength(2).maxLength(30).getError(),theme:``,fontSize:``,notifications:``})},{plugins:[s,Xi({key:`svstate-demo-sync`,throttle:200})]}),p=s.isRestored(),m=()=>{s.clearPersistedState(),l()},h=()=>{c.username=`demo_user`,c.theme=`dark`,c.fontSize=16,c.notifications=!1},g=N(``);Ln(()=>{c.username,c.theme,c.fontSize,c.notifications;let e=setTimeout(()=>{P(g,localStorage.getItem(`svstate-demo-settings`)??`(empty)`,!0)},500);return()=>clearTimeout(e)}),wa(e,{description:`Settings form with persistPlugin (localStorage) and syncPlugin (cross-tab sync via BroadcastChannel).`,title:`Plugin: Persist & Sync`,main:e=>{var t=ts(),a=I(t);ka(a,{get hasErrors(){return n()},get isDirty(){return r()}});var o=L(a,2),s=F(o),u=e=>{W(e,Qo())},d=e=>{W(e,$o())};K(s,e=>{p?e(u):e(d,-1)}),k(o);var f=L(o,4),h=F(f);{let e=M(()=>i()?.username);Y(h,{id:`username`,get error(){return V(e)},label:`Username`,placeholder:`Enter username`,get value(){return c.username},set value(e){c.username=e}})}var g=L(h,2),_=L(F(g),2),v=F(_);v.value=v.__value=`light`;var y=L(v);y.value=y.__value=`dark`;var b=L(y);b.value=b.__value=`system`,k(_),k(g);var x=L(g,2);Y(x,{id:`fontSize`,label:`Font Size`,max:32,min:8,step:1,type:`number`,get value(){return c.fontSize},set value(e){c.fontSize=e}});var S=L(x,2),C=F(S),w=F(C);xi(w),Pe(4),k(C),k(S),k(f);var T=L(f,2),E=F(T),ee=L(E,2),te=e=>{var t=es();H(`click`,t,l),W(e,t)};K(ee,e=>{r()&&e(te)}),k(T),gi(_,()=>c.theme,e=>c.theme=e),Di(w,()=>c.notifications,e=>c.notifications=e),H(`click`,E,m),W(e,t)},sidebar:e=>{var t=ns(),a=F(t);ga(a,{get data(){return c},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:h,width:`xl:w-96`});var o=L(a,2),s=L(F(o),2),l=F(s),u=L(F(l));k(l),Pe(4),k(s),k(o);var d=L(o,2),f=L(F(d),2),m=F(f,!0);k(f),k(d),Pe(2),k(t),R(()=>{G(u,` ${p??``}`),G(m,V(g))}),W(e,t)},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=rs(),r=I(n);J(r,{code:`import { createSvState, persistPlugin, syncPlugin } from 'svstate'; - -const persist = persistPlugin({ - key: 'svstate-demo-settings', - throttle: 300, - exclude: ['notifications'] // Don't persist this field -}); - -const sync = syncPlugin({ - key: 'svstate-demo-sync', - throttle: 200 -}); - -const { data, reset, state } = createSvState( - { username: '', theme: 'light', fontSize: 14, notifications: true }, - { validator: (source) => ({ /* ... */ }) }, - { plugins: [persist, sync] } -);`,title:`persistPlugin + syncPlugin Setup`}),J(L(r,2),{code:`// persistPlugin API -persist.isRestored(); // true if data was loaded from storage -persist.clearPersistedState(); // Remove stored data - -// syncPlugin: automatic cross-tab sync via BroadcastChannel -// Changes in one tab appear in all other tabs with same key`,title:`Plugin API`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),o()}Rr([`click`]);var as=U(``),os=U(`
        Max: 10
        `,1),ss=U(`

        No snapshots yet

        `),cs=U(`
      • `),ls=U(`
          `),us=U(`

          No redo entries — undo something first

          `),ds=U(`
        • `),fs=U(`
          Snapshot History
          Redo Stack
          `),ps=U(` `,1);function ms(e,t){Ge(t,!0);let n=()=>A(m,`$hasErrors`,o),r=()=>A(h,`$isDirty`,o),i=()=>A(g,`$snapshots`,o),a=()=>A(p,`$errors`,o),[o,s]=mt(),c=Zi(),l=e=>e.charAt(0).toUpperCase()+e.slice(1).replaceAll(/([A-Z])/g,` $1`),{data:u,reset:d,rollback:f,state:{errors:p,hasErrors:m,isDirty:h,snapshots:g}}=ca({title:`My Document`,content:``,priority:`medium`},{validator:e=>({title:q(e.title).prepare(`trim`).required().minLength(2).maxLength(100).getError(),content:q(e.content).prepare(`trim`).required().minLength(10).getError(),priority:``}),effect:({snapshot:e,property:t})=>{e(`Changed ${l(t)}`)}},{maxSnapshots:10,plugins:[c]}),_=()=>{u.title=`Project Report ${X()}`,u.content=`This is a detailed document with enough content to pass validation requirements.`,u.priority=`high`},v=N(fn(ut(c.redoStack)));Ln(()=>c.redoStack.subscribe(e=>{P(v,e,!0)})),wa(e,{description:`Combines the built-in snapshot/rollback system with the undoRedoPlugin for full undo/redo support.`,title:`Plugin: Undo/Redo`,main:e=>{var t=os(),o=I(t);ka(o,{get hasErrors(){return n()},get isDirty(){return r()}});var s=L(o,2),l=F(s),p=F(l);k(l);var m=L(l,2),h=F(m);k(m),Pe(2),k(s);var g=L(s,2),_=F(g);{let e=M(()=>a()?.title);Y(_,{id:`title`,get error(){return V(e)},label:`Title`,placeholder:`Enter document title`,get value(){return u.title},set value(e){u.title=e}})}var y=L(_,2);{let e=M(()=>a()?.content);no(y,{id:`content`,get error(){return V(e)},label:`Content`,placeholder:`Write your document content (min 10 chars)`,required:!0,rows:4,get value(){return u.content},set value(e){u.content=e}})}var b=L(y,2),x=L(F(b),2),S=F(x);S.value=S.__value=`low`;var C=L(S);C.value=C.__value=`medium`;var w=L(C);w.value=w.__value=`high`;var T=L(w);T.value=T.__value=`critical`,k(x),k(b),k(g);var E=L(g,2),ee=F(E),te=L(ee,2),ne=L(te,2),re=e=>{var t=as();H(`click`,t,d),W(e,t)};K(ne,e=>{r()&&e(re)}),k(E),R(()=>{G(p,`${i().length??``} Snapshot${i().length===1?``:`s`}`),G(h,`${V(v).length??``} Redo${V(v).length===1?``:`s`}`),ee.disabled=i().length<=1,te.disabled=V(v).length===0}),gi(x,()=>u.priority,e=>u.priority=e),H(`click`,ee,()=>f()),H(`click`,te,()=>c.redo()),W(e,t)},sidebar:e=>{var t=fs(),o=F(t);ga(o,{get data(){return u},get errors(){return a()},get hasErrors(){return n()},get isDirty(){return r()},onFill:_,width:`xl:w-96`});var s=L(o,2),c=L(F(s),2),l=e=>{W(e,ss())},d=e=>{var t=ls();ii(t,5,i,ei,(e,t,n)=>{var r=cs(),i=F(r);i.textContent=n+1;var a=L(i,2),o=F(a,!0);k(a),k(r),R(()=>G(o,V(t).title)),W(e,r)}),k(t),W(e,t)};K(c,e=>{i().length===0?e(l):e(d,-1)}),k(s);var f=L(s,2),p=L(F(f),2),m=e=>{W(e,us())},h=e=>{var t=ls();ii(t,21,()=>V(v),ei,(e,t,n)=>{var r=ds(),i=F(r);i.textContent=n+1;var a=L(i,2),o=F(a,!0);k(a),k(r),R(()=>G(o,V(t).title)),W(e,r)}),k(t),W(e,t)};K(p,e=>{V(v).length===0?e(m):e(h,-1)}),k(f),k(t),W(e,t)},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=ps(),r=I(n);J(r,{code:`import { createSvState, undoRedoPlugin } from 'svstate'; - -const undoRedo = undoRedoPlugin(); - -const { data, reset, rollback, state } = createSvState( - { title: 'My Document', content: '', priority: 'medium' }, - { - validator: (source) => ({ /* ... */ }), - effect: ({ snapshot, property }) => { - snapshot(\`Changed \${property}\`); - } - }, - { maxSnapshots: 10, plugins: [undoRedo] } -);`,title:`Setup with undoRedoPlugin`}),J(L(r,2),{code:`// Undo (built-in rollback) -rollback(); - -// Redo (from undoRedoPlugin) -undoRedo.redo(); - -// Check if redo is available -undoRedo.canRedo(); // boolean - -// Subscribe to redo stack -undoRedo.redoStack; // Readable`,title:`Undo/Redo Usage`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),s()}Rr([`click`]);var hs=U(`
          `),gs=U(`
          `,1),_s=U(` `,1);function vs(e,t){Ge(t,!0);let n=()=>A(u,`$hasErrors`,a),r=()=>A(d,`$isDirty`,a),i=()=>A(l,`$errors`,a),[a,o]=mt(),{data:s,reset:c,state:{errors:l,hasErrors:u,isDirty:d}}=ca({firstName:`Alice`,lastName:`Smith`,email:`alice.smith@example.com`,phone:``,bio:``},{validator:e=>({firstName:q(e.firstName).prepare(`trim`).required().minLength(2).maxLength(30).getError(),lastName:q(e.lastName).prepare(`trim`).required().minLength(2).maxLength(30).getError(),email:q(e.email).prepare(`trim`).required().email().getError(),phone:q(e.phone).prepare(`trim`).required().minLength(10).getError(),bio:q(e.bio).maxLength(200).getError()})}),f=()=>{s.firstName=`John`,s.lastName=`Doe${X()}`,s.email=`john.doe.${X()}@example.com`,s.phone=`555-${X().slice(0,3)}-${X().slice(0,4)}`,s.bio=`Software developer with a passion for clean code.`};wa(e,{description:`Demonstrates the reset() function to restore state back to its initial values.`,title:`Reset Demo`,main:e=>{var t=gs(),a=I(t);ka(a,{get hasErrors(){return n()},get isDirty(){return r()}});var o=L(a,2),l=F(o);{let e=M(()=>i()?.firstName);Y(l,{id:`firstName`,get error(){return V(e)},label:`First Name`,placeholder:`Enter first name`,get value(){return s.firstName},set value(e){s.firstName=e}})}var u=L(l,2);{let e=M(()=>i()?.lastName);Y(u,{id:`lastName`,get error(){return V(e)},label:`Last Name`,placeholder:`Enter last name`,get value(){return s.lastName},set value(e){s.lastName=e}})}var d=L(u,2);{let e=M(()=>i()?.email);Y(d,{id:`email`,get error(){return V(e)},label:`Email`,placeholder:`Enter email`,type:`email`,get value(){return s.email},set value(e){s.email=e}})}var f=L(d,2);{let e=M(()=>i()?.phone);Y(f,{id:`phone`,get error(){return V(e)},label:`Phone`,placeholder:`555-123-4567`,get value(){return s.phone},set value(e){s.phone=e}})}var p=L(f,2);{let e=M(()=>i()?.bio);no(p,{id:`bio`,get error(){return V(e)},label:`Bio`,placeholder:`Tell us about yourself`,required:!1,get value(){return s.bio},set value(e){s.bio=e}})}k(o);var m=L(o,2),h=e=>{var t=hs(),n=F(t);k(t),H(`click`,n,c),W(e,t)};K(m,e=>{r()&&e(h)}),W(e,t)},sidebar:e=>{ga(e,{get data(){return s},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:f})},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=_s(),r=I(n);J(r,{code:`const sourceData = { - firstName: 'Alice', - lastName: 'Smith', - email: 'alice.smith@example.com', - phone: '', - bio: '' -}; - -const { data, reset, state: { errors, hasErrors, isDirty } } = createSvState(sourceData, { - validator: (source) => ({ - firstName: stringValidator(source.firstName).prepare('trim').required().minLength(2).maxLength(30).getError(), - lastName: stringValidator(source.lastName).prepare('trim').required().minLength(2).maxLength(30).getError(), - email: stringValidator(source.email).prepare('trim').required().email().getError(), - phone: stringValidator(source.phone).prepare('trim').required().minLength(10).getError(), - bio: stringValidator(source.bio).maxLength(200).getError() - }) -});`,title:`State Setup with Reset`}),J(L(r,2),{code:` -{#if $isDirty} - -{/if} - - -`,title:`Conditional Reset Button`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),o()}Rr([`click`]);var ys=U(``),bs=U(`
          Max: 5
          `,1),xs=U(`

          No snapshots yet

          `),Ss=U(`
        • `),Cs=U(`
            `),ws=U(`
            Snapshot History
            `),Ts=U(` `,1);function Es(e,t){Ge(t,!0);let n=()=>A(h,`$hasErrors`,o),r=()=>A(g,`$isDirty`,o),i=()=>A(_,`$snapshots`,o),a=()=>A(m,`$errors`,o),[o,s]=mt(),c={firstName:`Alice`,lastName:`Smith`,email:`alice.smith@example.com`,phone:``,bio:``},l=e=>e.charAt(0).toUpperCase()+e.slice(1).replaceAll(/([A-Z])/g,` $1`),{data:u,reset:d,rollback:f,rollbackTo:p,state:{errors:m,hasErrors:h,isDirty:g,snapshots:_}}=ca(c,{validator:e=>({firstName:q(e.firstName).prepare(`trim`).required().minLength(2).maxLength(30).getError(),lastName:q(e.lastName).prepare(`trim`).required().minLength(2).maxLength(30).getError(),email:q(e.email).prepare(`trim`).required().email().getError(),phone:q(e.phone).prepare(`trim`).required().minLength(10).getError(),bio:q(e.bio).maxLength(200).getError()}),effect:({snapshot:e,property:t})=>{e(`Changed ${l(t)}`)}},{maxSnapshots:5}),v=()=>{u.firstName=`John`,u.lastName=`Doe${X()}`,u.email=`john.doe.${X()}@example.com`,u.phone=`555-${X().slice(0,3)}-${X().slice(0,4)}`,u.bio=`Software developer with a passion for clean code.`};wa(e,{description:`Shows snapshot creation for undo functionality with rollback(), rollbackTo(), and maxSnapshots support.`,title:`Snapshot & Rollback Demo`,main:e=>{var t=bs(),o=I(t);ka(o,{get hasErrors(){return n()},get isDirty(){return r()}});var s=L(o,2),c=F(s),l=F(c);k(c),Pe(2),k(s);var m=L(s,2),h=F(m);{let e=M(()=>a()?.firstName);Y(h,{id:`firstName`,get error(){return V(e)},label:`First Name`,placeholder:`Enter first name`,get value(){return u.firstName},set value(e){u.firstName=e}})}var g=L(h,2);{let e=M(()=>a()?.lastName);Y(g,{id:`lastName`,get error(){return V(e)},label:`Last Name`,placeholder:`Enter last name`,get value(){return u.lastName},set value(e){u.lastName=e}})}var _=L(g,2);{let e=M(()=>a()?.email);Y(_,{id:`email`,get error(){return V(e)},label:`Email`,placeholder:`Enter email`,type:`email`,get value(){return u.email},set value(e){u.email=e}})}var v=L(_,2);{let e=M(()=>a()?.phone);Y(v,{id:`phone`,get error(){return V(e)},label:`Phone`,placeholder:`555-123-4567`,get value(){return u.phone},set value(e){u.phone=e}})}var y=L(v,2);{let e=M(()=>a()?.bio);no(y,{id:`bio`,get error(){return V(e)},label:`Bio`,placeholder:`Tell us about yourself`,required:!1,get value(){return u.bio},set value(e){u.bio=e}})}k(m);var b=L(m,2),x=F(b),S=L(x,2),C=L(S,2),w=e=>{var t=ys();H(`click`,t,d),W(e,t)};K(C,e=>{r()&&e(w)}),k(b),R(()=>{G(l,`${i().length??``} Snapshot${i().length===1?``:`s`}`),x.disabled=i().length<=1,S.disabled=i().length<=1}),H(`click`,x,()=>f()),H(`click`,S,()=>p(`Initial`)),W(e,t)},sidebar:e=>{var t=ws(),o=F(t);ga(o,{get data(){return u},get errors(){return a()},get hasErrors(){return n()},get isDirty(){return r()},onFill:v,width:`xl:w-96`});var s=L(o,2),c=L(F(s),2),l=e=>{W(e,xs())},d=e=>{var t=Cs();ii(t,5,i,ei,(e,t,n)=>{var r=Ss(),a=F(r);a.textContent=n+1;var o=L(a,2),s=F(o,!0);k(o),k(r),R(()=>{o.disabled=i().length<=1,G(s,V(t).title)}),H(`click`,o,()=>p(V(t).title)),W(e,r)}),k(t),W(e,t)};K(c,e=>{i().length===0?e(l):e(d,-1)}),k(s),k(t),W(e,t)},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=Ts(),r=I(n);J(r,{code:`const sourceData = { - firstName: 'Alice', lastName: 'Smith', email: 'alice.smith@example.com', phone: '', bio: '' -}; - -const { data, reset, rollback, rollbackTo, state: { errors, hasErrors, isDirty, snapshots } } = - createSvState(sourceData, { - validator: (source) => ({ /* validation rules */ }), - effect: ({ snapshot, property }) => { - snapshot(\`Changed \${formatFieldName(property)}\`); - } - }, { maxSnapshots: 5 });`,title:`State Setup with Snapshots & maxSnapshots`});var i=L(r,2);J(i,{code:`// Effect callback creates snapshots on each change -effect: ({ snapshot, property }) => { - snapshot(\`Changed \${property}\`); // Creates undo point - // If same title, replaces last snapshot (debouncing) - // Use snapshot(title, false) to always create new -}`,title:`Effect with Snapshot Creation`}),J(L(i,2),{code:`// Undo last change -rollback(); - -// Undo 3 changes at once -rollback(3); - -// Roll back to a named snapshot (returns true if found) -rollbackTo('Changed First Name'); - -// Roll back to initial state -rollbackTo('Initial'); - -// Reset to initial state (clears all snapshots) -reset();`,title:`Rollback, RollbackTo & Reset Usage`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),s()}Rr([`click`]);var Ds;function Z(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;en?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}var Os=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},ks=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(Ds=globalThis).__zod_globalConfig??(Ds.__zod_globalConfig={});var As=globalThis.__zod_globalConfig;function js(e){return e&&Object.assign(As,e),As}function Ms(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function Ns(e,t){return typeof t==`bigint`?t.toString():t}function Ps(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}throw Error(`cached value already set`)}}}function Fs(e){return e==null}function Is(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Ls(e,t){let n=e/t,r=Math.round(n),i=2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r){};function Ws(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Gs=Ps(()=>{if(As.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function Ks(e){if(Ws(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(Ws(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function qs(e){return Ks(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var Js=new Set([`string`,`number`,`symbol`]);function Ys(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Xs(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function $(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function Zs(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var Qs={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function $s(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return Xs(e,Bs(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return zs(this,`shape`,e),e},checks:[]}))}function ec(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return Xs(e,Bs(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return zs(this,`shape`,r),r},checks:[]}))}function tc(e,t){if(!Ks(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return Xs(e,Bs(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return zs(this,`shape`,n),n}}))}function nc(e,t){if(!Ks(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return Xs(e,Bs(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return zs(this,`shape`,n),n}}))}function rc(e,t){if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);return Xs(e,Bs(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return zs(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function ic(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return Xs(t,Bs(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return zs(this,`shape`,i),i},checks:[]}))}function ac(e,t,n){return Xs(t,Bs(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return zs(this,`shape`,i),i}}))}function oc(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function lc(e){return typeof e==`string`?e:e?.message}function uc(e,t,n){let r=e.message?e.message:lc(e.inst?._zod.def?.error?.(e))??lc(t?.error?.(e))??lc(n.customError?.(e))??lc(n.localeError?.(e))??`Invalid input`,{inst:i,continue:a,input:o,...s}=e;return s.path??=[],s.message=r,t?.reportInput&&(s.input=o),s}function dc(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function fc(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var pc=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Ns,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},mc=Z(`$ZodError`,pc),hc=Z(`$ZodError`,pc,{Parent:Error});function gc(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function _c(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i(t,n,r,i)=>{let a=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new Os;if(o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>uc(e,a,js())));throw Us(t,i?.callee),t}return o.value},yc=e=>async(t,n,r,i)=>{let a=r?{...r,async:!0}:{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>uc(e,a,js())));throw Us(t,i?.callee),t}return o.value},bc=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new Os;return a.issues.length?{success:!1,error:new(e??mc)(a.issues.map(e=>uc(e,i,js())))}:{success:!0,data:a.value}},xc=bc(hc),Sc=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>uc(e,i,js())))}:{success:!0,data:a.value}},Cc=Sc(hc),wc=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return vc(e)(t,n,i)},Tc=e=>(t,n,r)=>vc(e)(t,n,r),Ec=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return yc(e)(t,n,i)},Dc=e=>async(t,n,r)=>yc(e)(t,n,r),Oc=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return bc(e)(t,n,i)},kc=e=>(t,n,r)=>bc(e)(t,n,r),Ac=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Sc(e)(t,n,i)},jc=e=>async(t,n,r)=>Sc(e)(t,n,r),Mc=/^[cC][0-9a-z]{6,}$/,Nc=/^[0-9a-z]+$/,Pc=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Fc=/^[0-9a-vA-V]{20}$/,Ic=/^[A-Za-z0-9]{27}$/,Lc=/^[a-zA-Z0-9_-]{21}$/,Rc=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,zc=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Bc=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Vc=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Hc=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function Uc(){return new RegExp(Hc,`u`)}var Wc=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Gc=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Kc=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,qc=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Jc=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Yc=/^[A-Za-z0-9_-]*$/,Xc=/^https?$/,Zc=/^\+[1-9]\d{6,14}$/,Qc=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,$c=RegExp(`^${Qc}$`);function el(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function tl(e){return RegExp(`^${el(e)}$`)}function nl(e){let t=el({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${Qc}T(?:${r})$`)}var rl=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},il=/^-?\d+$/,al=/^-?\d+(?:\.\d+)?$/,ol=/^[^A-Z]*$/,sl=/^[^a-z]*$/,cl=Z(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),ll={number:`number`,bigint:`bigint`,object:`date`},ul=Z(`$ZodCheckLessThan`,(e,t)=>{cl.init(e,t);let n=ll[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value{(t.inclusive?r.value<=t.value:r.value{cl.init(e,t);let n=ll[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),fl=Z(`$ZodCheckMultipleOf`,(e,t)=>{cl.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):Ls(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),pl=Z(`$ZodCheckNumberFormat`,(e,t)=>{cl.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=Qs[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=il)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}sa&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),ml=Z(`$ZodCheckMaxLength`,(e,t)=>{var n;cl.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Fs(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum{let r=n.value;if(r.length<=t.maximum)return;let i=dc(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),hl=Z(`$ZodCheckMinLength`,(e,t)=>{var n;cl.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Fs(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=dc(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),gl=Z(`$ZodCheckLengthEquals`,(e,t)=>{var n;cl.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Fs(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=dc(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),_l=Z(`$ZodCheckStringFormat`,(e,t)=>{var n,r;cl.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),vl=Z(`$ZodCheckRegex`,(e,t)=>{_l.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),yl=Z(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=ol,_l.init(e,t)}),bl=Z(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=sl,_l.init(e,t)}),xl=Z(`$ZodCheckIncludes`,(e,t)=>{cl.init(e,t);let n=Ys(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Sl=Z(`$ZodCheckStartsWith`,(e,t)=>{cl.init(e,t);let n=RegExp(`^${Ys(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Cl=Z(`$ZodCheckEndsWith`,(e,t)=>{cl.init(e,t);let n=RegExp(`.*${Ys(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),wl=Z(`$ZodCheckOverwrite`,(e,t)=>{cl.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),Tl=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(` -`).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(` -`))}},El={major:4,minor:4,patch:3},Dl=Z(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=El;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=oc(e),i;for(let a of t){if(a._zod.def.when){if(sc(e)||!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,o=a._zod.check(e);if(o instanceof Promise&&n?.async===!1)throw new Os;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=oc(e,t))});else{if(e.issues.length===t)continue;r||=oc(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(oc(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new Os;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let o=e._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new Os;return o.then(e=>t(e,r,a))}return t(o,r,a)}}Q(e,`~standard`,()=>({validate:t=>{try{let n=xc(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return Cc(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),Ol=Z(`$ZodString`,(e,t)=>{Dl.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??rl(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),kl=Z(`$ZodStringFormat`,(e,t)=>{_l.init(e,t),Ol.init(e,t)}),Al=Z(`$ZodGUID`,(e,t)=>{t.pattern??=zc,kl.init(e,t)}),jl=Z(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=Bc(e)}else t.pattern??=Bc();kl.init(e,t)}),Ml=Z(`$ZodEmail`,(e,t)=>{t.pattern??=Vc,kl.init(e,t)}),Nl=Z(`$ZodURL`,(e,t)=>{kl.init(e,t),e._zod.check=n=>{try{let r=n.value.trim();if(!t.normalize&&t.protocol?.source===Xc.source&&!/^https?:\/\//i.test(r)){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}let i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),Pl=Z(`$ZodEmoji`,(e,t)=>{t.pattern??=Uc(),kl.init(e,t)}),Fl=Z(`$ZodNanoID`,(e,t)=>{t.pattern??=Lc,kl.init(e,t)}),Il=Z(`$ZodCUID`,(e,t)=>{t.pattern??=Mc,kl.init(e,t)}),Ll=Z(`$ZodCUID2`,(e,t)=>{t.pattern??=Nc,kl.init(e,t)}),Rl=Z(`$ZodULID`,(e,t)=>{t.pattern??=Pc,kl.init(e,t)}),zl=Z(`$ZodXID`,(e,t)=>{t.pattern??=Fc,kl.init(e,t)}),Bl=Z(`$ZodKSUID`,(e,t)=>{t.pattern??=Ic,kl.init(e,t)}),Vl=Z(`$ZodISODateTime`,(e,t)=>{t.pattern??=nl(t),kl.init(e,t)}),Hl=Z(`$ZodISODate`,(e,t)=>{t.pattern??=$c,kl.init(e,t)}),Ul=Z(`$ZodISOTime`,(e,t)=>{t.pattern??=tl(t),kl.init(e,t)}),Wl=Z(`$ZodISODuration`,(e,t)=>{t.pattern??=Rc,kl.init(e,t)}),Gl=Z(`$ZodIPv4`,(e,t)=>{t.pattern??=Wc,kl.init(e,t),e._zod.bag.format=`ipv4`}),Kl=Z(`$ZodIPv6`,(e,t)=>{t.pattern??=Gc,kl.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),ql=Z(`$ZodCIDRv4`,(e,t)=>{t.pattern??=Kc,kl.init(e,t)}),Jl=Z(`$ZodCIDRv6`,(e,t)=>{t.pattern??=qc,kl.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function Yl(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Xl=Z(`$ZodBase64`,(e,t)=>{t.pattern??=Jc,kl.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{Yl(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function Zl(e){if(!Yc.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return Yl(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var Ql=Z(`$ZodBase64URL`,(e,t)=>{t.pattern??=Yc,kl.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{Zl(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),$l=Z(`$ZodE164`,(e,t)=>{t.pattern??=Zc,kl.init(e,t)});function eu(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var tu=Z(`$ZodJWT`,(e,t)=>{kl.init(e,t),e._zod.check=n=>{eu(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),nu=Z(`$ZodNumber`,(e,t)=>{Dl.init(e,t),e._zod.pattern=e._zod.bag.pattern??al,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),ru=Z(`$ZodNumberFormat`,(e,t)=>{pl.init(e,t),nu.init(e,t)}),iu=Z(`$ZodUnknown`,(e,t)=>{Dl.init(e,t),e._zod.parse=e=>e}),au=Z(`$ZodNever`,(e,t)=>{Dl.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function ou(e,t,n){e.issues.length&&t.issues.push(...cc(n,e.issues)),t.value[n]=e.value}var su=Z(`$ZodArray`,(e,t)=>{Dl.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;eou(t,n,e))):ou(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function cu(e,t,n,r,i,a){let o=n in r;if(e.issues.length){if(i&&a&&!o)return;t.issues.push(...cc(n,e.issues))}if(!o&&!i){e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]});return}e.value===void 0?o&&(t.value[n]=void 0):t.value[n]=e.value}function lu(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=Zs(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function uu(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optin===`optional`,d=c.optout===`optional`;for(let i in t){if(i===`__proto__`||s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>cu(e,n,i,t,u,d))):cu(a,n,i,t,u,d)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}var du=Z(`$ZodObject`,(e,t)=>{if(Dl.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,"shape",{get:()=>{let n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}let n=Ps(()=>lu(t));Q(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=Ws,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e],r=n._zod.optin===`optional`,i=n._zod.optout===`optional`,a=n._zod.run({value:s[e],issues:[]},o);a instanceof Promise?c.push(a.then(n=>cu(n,t,e,s,r,i))):cu(a,t,e,s,r,i)}return i?uu(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),fu=Z(`$ZodObjectJIT`,(e,t)=>{du.init(e,t);let n=e._zod.parse,r=Ps(()=>lu(t)),i=e=>{let t=new Tl([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=Vs(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let r of n.keys){let n=a[r],o=Vs(r),s=e[r],c=s?._zod?.optin===`optional`,l=s?._zod?.optout===`optional`;t.write(`const ${n} = ${i(r)};`),c&&l?t.write(` - if (${n}.issues.length) { - if (${o} in input) { - payload.issues = payload.issues.concat(${n}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${o}, ...iss.path] : [${o}] - }))); - } - } - - if (${n}.value === undefined) { - if (${o} in input) { - newResult[${o}] = undefined; - } - } else { - newResult[${o}] = ${n}.value; - } - - `):c?t.write(` - if (${n}.issues.length) { - payload.issues = payload.issues.concat(${n}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${o}, ...iss.path] : [${o}] - }))); - } - - if (${n}.value === undefined) { - if (${o} in input) { - newResult[${o}] = undefined; - } - } else { - newResult[${o}] = ${n}.value; - } - - `):t.write(` - const ${n}_present = ${o} in input; - if (${n}.issues.length) { - payload.issues = payload.issues.concat(${n}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${o}, ...iss.path] : [${o}] - }))); - } - if (!${n}_present && !${n}.issues.length) { - payload.issues.push({ - code: "invalid_type", - expected: "nonoptional", - input: undefined, - path: [${o}] - }); - } - - if (${n}_present) { - if (${n}.value === undefined) { - newResult[${o}] = undefined; - } else { - newResult[${o}] = ${n}.value; - } - } - - `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=Ws,s=!As.jitless,c=s&&Gs.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?uu([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function pu(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!oc(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>uc(e,r,js())))}),t)}var mu=Z(`$ZodUnion`,(e,t)=>{Dl.init(e,t),Q(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),Q(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),Q(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),Q(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>Is(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>pu(t,r,e,i)):pu(o,r,e,i)}}),hu=Z(`$ZodIntersection`,(e,t)=>{Dl.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>_u(e,t,n)):_u(e,i,a)}});function gu(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Ks(e)&&Ks(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=gu(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;re.l&&e.r).map(([e])=>e);if(a.length&&i&&e.issues.push({...i,keys:a}),oc(e))return e;let o=gu(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var vu=Z(`$ZodEnum`,(e,t)=>{Dl.init(e,t);let n=Ms(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>Js.has(typeof e)).map(e=>typeof e==`string`?Ys(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),yu=Z(`$ZodLiteral`,(e,t)=>{if(Dl.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?Ys(e):e?Ys(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),bu=Z(`$ZodTransform`,(e,t)=>{Dl.init(e,t),e._zod.optin=`optional`,e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new ks(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new Os;return n.value=i,n.fallback=!0,n}});function xu(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var Su=Z(`$ZodOptional`,(e,t)=>{Dl.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,Q(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),Q(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Is(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>xu(e,r)):xu(i,r)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),Cu=Z(`$ZodExactOptional`,(e,t)=>{Su.init(e,t),Q(e._zod,`values`,()=>t.innerType._zod.values),Q(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),wu=Z(`$ZodNullable`,(e,t)=>{Dl.init(e,t),Q(e._zod,`optin`,()=>t.innerType._zod.optin),Q(e._zod,`optout`,()=>t.innerType._zod.optout),Q(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Is(e.source)}|null)$`):void 0}),Q(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),Tu=Z(`$ZodDefault`,(e,t)=>{Dl.init(e,t),e._zod.optin=`optional`,Q(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Eu(e,t)):Eu(r,t)}});function Eu(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Du=Z(`$ZodPrefault`,(e,t)=>{Dl.init(e,t),e._zod.optin=`optional`,Q(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),Ou=Z(`$ZodNonOptional`,(e,t)=>{Dl.init(e,t),Q(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>ku(t,e)):ku(i,e)}});function ku(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var Au=Z(`$ZodCatch`,(e,t)=>{Dl.init(e,t),e._zod.optin=`optional`,Q(e._zod,`optout`,()=>t.innerType._zod.optout),Q(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>uc(e,n,js()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>uc(e,n,js()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),ju=Z(`$ZodPipe`,(e,t)=>{Dl.init(e,t),Q(e._zod,`values`,()=>t.in._zod.values),Q(e._zod,`optin`,()=>t.in._zod.optin),Q(e._zod,`optout`,()=>t.out._zod.optout),Q(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Mu(e,t.in,n)):Mu(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Mu(e,t.out,n)):Mu(r,t.out,n)}});function Mu(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var Nu=Z(`$ZodReadonly`,(e,t)=>{Dl.init(e,t),Q(e._zod,`propValues`,()=>t.innerType._zod.propValues),Q(e._zod,`values`,()=>t.innerType._zod.values),Q(e._zod,`optin`,()=>t.innerType?._zod?.optin),Q(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Pu):Pu(r)}});function Pu(e){return e.value=Object.freeze(e.value),e}var Fu=Z(`$ZodCustom`,(e,t)=>{cl.init(e,t),Dl.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>Iu(t,n,r,e));Iu(i,n,r,e)}});function Iu(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(fc(e))}}var Lu,Ru=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function zu(){return new Ru}(Lu=globalThis).__zod_globalRegistry??(Lu.__zod_globalRegistry=zu());var Bu=globalThis.__zod_globalRegistry;function Vu(e,t){return new e({type:`string`,...$(t)})}function Hu(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...$(t)})}function Uu(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...$(t)})}function Wu(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...$(t)})}function Gu(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...$(t)})}function Ku(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...$(t)})}function qu(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...$(t)})}function Ju(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...$(t)})}function Yu(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...$(t)})}function Xu(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...$(t)})}function Zu(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...$(t)})}function Qu(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...$(t)})}function $u(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...$(t)})}function ed(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...$(t)})}function td(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...$(t)})}function nd(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...$(t)})}function rd(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...$(t)})}function id(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...$(t)})}function ad(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...$(t)})}function od(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...$(t)})}function sd(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...$(t)})}function cd(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...$(t)})}function ld(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...$(t)})}function ud(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...$(t)})}function dd(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...$(t)})}function fd(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...$(t)})}function pd(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...$(t)})}function md(e,t){return new e({type:`number`,checks:[],...$(t)})}function hd(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...$(t)})}function gd(e){return new e({type:`unknown`})}function _d(e,t){return new e({type:`never`,...$(t)})}function vd(e,t){return new ul({check:`less_than`,...$(t),value:e,inclusive:!1})}function yd(e,t){return new ul({check:`less_than`,...$(t),value:e,inclusive:!0})}function bd(e,t){return new dl({check:`greater_than`,...$(t),value:e,inclusive:!1})}function xd(e,t){return new dl({check:`greater_than`,...$(t),value:e,inclusive:!0})}function Sd(e,t){return new fl({check:`multiple_of`,...$(t),value:e})}function Cd(e,t){return new ml({check:`max_length`,...$(t),maximum:e})}function wd(e,t){return new hl({check:`min_length`,...$(t),minimum:e})}function Td(e,t){return new gl({check:`length_equals`,...$(t),length:e})}function Ed(e,t){return new vl({check:`string_format`,format:`regex`,...$(t),pattern:e})}function Dd(e){return new yl({check:`string_format`,format:`lowercase`,...$(e)})}function Od(e){return new bl({check:`string_format`,format:`uppercase`,...$(e)})}function kd(e,t){return new xl({check:`string_format`,format:`includes`,...$(t),includes:e})}function Ad(e,t){return new Sl({check:`string_format`,format:`starts_with`,...$(t),prefix:e})}function jd(e,t){return new Cl({check:`string_format`,format:`ends_with`,...$(t),suffix:e})}function Md(e){return new wl({check:`overwrite`,tx:e})}function Nd(e){return Md(t=>t.normalize(e))}function Pd(){return Md(e=>e.trim())}function Fd(){return Md(e=>e.toLowerCase())}function Id(){return Md(e=>e.toUpperCase())}function Ld(){return Md(e=>Hs(e))}function Rd(e,t,n){return new e({type:`array`,element:t,...$(n)})}function zd(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...$(n)})}function Bd(e,t){let n=Vd(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(fc(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=t.value,r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(fc(r))}},e(t.value,t)),t);return n}function Vd(e,t){let n=new cl({check:`custom`,...$(t)});return n._zod.check=e,n}function Hd(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??Bu,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,external:e?.external??void 0}}function Ud(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,Ud(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io===`input`&&Kd(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function Wd(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${a}`}}if(t[1]===n)return{ref:`#`};let i=`#/${r}/`,a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+a}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/ - -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function Gd(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e===`$ref`||e===`allOf`||e in a||delete i[e];if(s.$ref&&n.def)for(let e in i)e===`$ref`||e===`allOf`||e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e===`$ref`||e===`allOf`||e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,o[e.defId]=e.def)}e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:Jd(t,`input`,e.processors),output:Jd(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function Kd(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return Kd(r.element,n);if(r.type===`set`)return Kd(r.valueType,n);if(r.type===`lazy`)return Kd(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`)return Kd(r.innerType,n);if(r.type===`intersection`)return Kd(r.left,n)||Kd(r.right,n);if(r.type===`record`||r.type===`map`)return Kd(r.keyType,n)||Kd(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:Kd(r.in,n)||Kd(r.out,n);if(r.type===`object`){for(let e in r.shape)if(Kd(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(Kd(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(Kd(e,n))return!0;return!!(r.rest&&Kd(r.rest,n))}return!1}var qd=(e,t={})=>n=>{let r=Hd({...n,processors:t});return Ud(e,r),Wd(r,e),Gd(r,e)},Jd=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Hd({...i??{},target:a,io:t,processors:n});return Ud(e,o),Wd(o,e),Gd(o,e)},Yd={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},Xd=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=Yd[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},Zd=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;typeof s==`string`&&s.includes(`int`)?i.type=`integer`:i.type=`number`;let d=typeof u==`number`&&u>=(a??-1/0),f=typeof l==`number`&&l<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;d?p?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l:typeof o==`number`&&(i.maximum=o),typeof c==`number`&&(i.multipleOf=c)},Qd=(e,t,n,r)=>{n.not={}},$d=(e,t,n,r)=>{let i=e._zod.def,a=Ms(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},ef=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0)if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a},tf=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},nf=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},rf=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=Ud(a.element,t,{...r,path:[...r.path,`items`]})},af=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=Ud(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=Ud(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},of=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>Ud(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},sf=(e,t,n,r)=>{let i=e._zod.def,a=Ud(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=Ud(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},cf=(e,t,n,r)=>{let i=e._zod.def,a=Ud(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},lf=(e,t,n,r)=>{let i=e._zod.def;Ud(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},uf=(e,t,n,r)=>{let i=e._zod.def;Ud(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},df=(e,t,n,r)=>{let i=e._zod.def;Ud(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},ff=(e,t,n,r)=>{let i=e._zod.def;Ud(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},pf=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;Ud(o,t,r);let s=t.seen.get(e);s.ref=o},mf=(e,t,n,r)=>{let i=e._zod.def;Ud(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},hf=(e,t,n,r)=>{let i=e._zod.def;Ud(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},gf=Z(`ZodISODateTime`,(e,t)=>{Vl.init(e,t),Uf.init(e,t)});function _f(e){return ud(gf,e)}var vf=Z(`ZodISODate`,(e,t)=>{Hl.init(e,t),Uf.init(e,t)});function yf(e){return dd(vf,e)}var bf=Z(`ZodISOTime`,(e,t)=>{Ul.init(e,t),Uf.init(e,t)});function xf(e){return fd(bf,e)}var Sf=Z(`ZodISODuration`,(e,t)=>{Wl.init(e,t),Uf.init(e,t)});function Cf(e){return pd(Sf,e)}var wf=Z(`ZodError`,(e,t)=>{mc.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>_c(e,t)},flatten:{value:t=>gc(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,Ns,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,Ns,2)}},isEmpty:{get(){return e.issues.length===0}}})},{Parent:Error}),Tf=vc(wf),Ef=yc(wf),Df=bc(wf),Of=Sc(wf),kf=wc(wf),Af=Tc(wf),jf=Ec(wf),Mf=Dc(wf),Nf=Oc(wf),Pf=kc(wf),Ff=Ac(wf),If=jc(wf),Lf=new WeakMap;function Rf(e,t,n){let r=Object.getPrototypeOf(e),i=Lf.get(r);if(i||(i=new Set,Lf.set(r,i)),!i.has(t)){i.add(t);for(let e in n){let t=n[e];Object.defineProperty(r,e,{configurable:!0,enumerable:!1,get(){let n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var zf=Z(`ZodType`,(e,t)=>(Dl.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:Jd(e,`input`),output:Jd(e,`output`)}}),e.toJSONSchema=qd(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>Tf(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Df(e,t,n),e.parseAsync=async(t,n)=>Ef(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Of(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>kf(e,t,n),e.decode=(t,n)=>Af(e,t,n),e.encodeAsync=async(t,n)=>jf(e,t,n),e.decodeAsync=async(t,n)=>Mf(e,t,n),e.safeEncode=(t,n)=>Nf(e,t,n),e.safeDecode=(t,n)=>Pf(e,t,n),e.safeEncodeAsync=async(t,n)=>Ff(e,t,n),e.safeDecodeAsync=async(t,n)=>If(e,t,n),Rf(e,`ZodType`,{check(...e){let t=this.def;return this.clone(Bs(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Xs(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(Xp(e,t))},superRefine(e,t){return this.check(Zp(e,t))},overwrite(e){return this.check(Md(e))},optional(){return Mp(this)},exactOptional(){return Pp(this)},nullable(){return Ip(this)},nullish(){return Mp(Ip(this))},nonoptional(e){return Hp(this,e)},array(){return vp(this)},or(e){return Sp([this,e])},and(e){return wp(this,e)},transform(e){return Kp(this,Ap(e))},default(e){return Rp(this,e)},prefault(e){return Bp(this,e)},catch(e){return Wp(this,e)},pipe(e){return Kp(this,e)},readonly(){return Jp(this)},describe(e){let t=this.clone();return Bu.add(t,{description:e}),t},meta(...e){if(e.length===0)return Bu.get(this);let t=this.clone();return Bu.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get(){return Bu.get(e)?.description},configurable:!0}),e)),Bf=Z(`_ZodString`,(e,t)=>{Ol.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Xd(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,Rf(e,`_ZodString`,{regex(...e){return this.check(Ed(...e))},includes(...e){return this.check(kd(...e))},startsWith(...e){return this.check(Ad(...e))},endsWith(...e){return this.check(jd(...e))},min(...e){return this.check(wd(...e))},max(...e){return this.check(Cd(...e))},length(...e){return this.check(Td(...e))},nonempty(...e){return this.check(wd(1,...e))},lowercase(e){return this.check(Dd(e))},uppercase(e){return this.check(Od(e))},trim(){return this.check(Pd())},normalize(...e){return this.check(Nd(...e))},toLowerCase(){return this.check(Fd())},toUpperCase(){return this.check(Id())},slugify(){return this.check(Ld())}})}),Vf=Z(`ZodString`,(e,t)=>{Ol.init(e,t),Bf.init(e,t),e.email=t=>e.check(Hu(Wf,t)),e.url=t=>e.check(Ju(qf,t)),e.jwt=t=>e.check(ld(cp,t)),e.emoji=t=>e.check(Yu(Jf,t)),e.guid=t=>e.check(Uu(Gf,t)),e.uuid=t=>e.check(Wu(Kf,t)),e.uuidv4=t=>e.check(Gu(Kf,t)),e.uuidv6=t=>e.check(Ku(Kf,t)),e.uuidv7=t=>e.check(qu(Kf,t)),e.nanoid=t=>e.check(Xu(Yf,t)),e.guid=t=>e.check(Uu(Gf,t)),e.cuid=t=>e.check(Zu(Xf,t)),e.cuid2=t=>e.check(Qu(Zf,t)),e.ulid=t=>e.check($u(Qf,t)),e.base64=t=>e.check(od(ap,t)),e.base64url=t=>e.check(sd(op,t)),e.xid=t=>e.check(ed($f,t)),e.ksuid=t=>e.check(td(ep,t)),e.ipv4=t=>e.check(nd(tp,t)),e.ipv6=t=>e.check(rd(np,t)),e.cidrv4=t=>e.check(id(rp,t)),e.cidrv6=t=>e.check(ad(ip,t)),e.e164=t=>e.check(cd(sp,t)),e.datetime=t=>e.check(_f(t)),e.date=t=>e.check(yf(t)),e.time=t=>e.check(xf(t)),e.duration=t=>e.check(Cf(t))});function Hf(e){return Vu(Vf,e)}var Uf=Z(`ZodStringFormat`,(e,t)=>{kl.init(e,t),Bf.init(e,t)}),Wf=Z(`ZodEmail`,(e,t)=>{Ml.init(e,t),Uf.init(e,t)}),Gf=Z(`ZodGUID`,(e,t)=>{Al.init(e,t),Uf.init(e,t)}),Kf=Z(`ZodUUID`,(e,t)=>{jl.init(e,t),Uf.init(e,t)}),qf=Z(`ZodURL`,(e,t)=>{Nl.init(e,t),Uf.init(e,t)}),Jf=Z(`ZodEmoji`,(e,t)=>{Pl.init(e,t),Uf.init(e,t)}),Yf=Z(`ZodNanoID`,(e,t)=>{Fl.init(e,t),Uf.init(e,t)}),Xf=Z(`ZodCUID`,(e,t)=>{Il.init(e,t),Uf.init(e,t)}),Zf=Z(`ZodCUID2`,(e,t)=>{Ll.init(e,t),Uf.init(e,t)}),Qf=Z(`ZodULID`,(e,t)=>{Rl.init(e,t),Uf.init(e,t)}),$f=Z(`ZodXID`,(e,t)=>{zl.init(e,t),Uf.init(e,t)}),ep=Z(`ZodKSUID`,(e,t)=>{Bl.init(e,t),Uf.init(e,t)}),tp=Z(`ZodIPv4`,(e,t)=>{Gl.init(e,t),Uf.init(e,t)}),np=Z(`ZodIPv6`,(e,t)=>{Kl.init(e,t),Uf.init(e,t)}),rp=Z(`ZodCIDRv4`,(e,t)=>{ql.init(e,t),Uf.init(e,t)}),ip=Z(`ZodCIDRv6`,(e,t)=>{Jl.init(e,t),Uf.init(e,t)}),ap=Z(`ZodBase64`,(e,t)=>{Xl.init(e,t),Uf.init(e,t)}),op=Z(`ZodBase64URL`,(e,t)=>{Ql.init(e,t),Uf.init(e,t)}),sp=Z(`ZodE164`,(e,t)=>{$l.init(e,t),Uf.init(e,t)}),cp=Z(`ZodJWT`,(e,t)=>{tu.init(e,t),Uf.init(e,t)}),lp=Z(`ZodNumber`,(e,t)=>{nu.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Zd(e,t,n,r),Rf(e,`ZodNumber`,{gt(e,t){return this.check(bd(e,t))},gte(e,t){return this.check(xd(e,t))},min(e,t){return this.check(xd(e,t))},lt(e,t){return this.check(vd(e,t))},lte(e,t){return this.check(yd(e,t))},max(e,t){return this.check(yd(e,t))},int(e){return this.check(fp(e))},safe(e){return this.check(fp(e))},positive(e){return this.check(bd(0,e))},nonnegative(e){return this.check(xd(0,e))},negative(e){return this.check(vd(0,e))},nonpositive(e){return this.check(yd(0,e))},multipleOf(e,t){return this.check(Sd(e,t))},step(e,t){return this.check(Sd(e,t))},finite(){return this}});let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function up(e){return md(lp,e)}var dp=Z(`ZodNumberFormat`,(e,t)=>{ru.init(e,t),lp.init(e,t)});function fp(e){return hd(dp,e)}var pp=Z(`ZodUnknown`,(e,t)=>{iu.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function mp(){return gd(pp)}var hp=Z(`ZodNever`,(e,t)=>{au.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Qd(e,t,n,r)});function gp(e){return _d(hp,e)}var _p=Z(`ZodArray`,(e,t)=>{su.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>rf(e,t,n,r),e.element=t.element,Rf(e,`ZodArray`,{min(e,t){return this.check(wd(e,t))},nonempty(e){return this.check(wd(1,e))},max(e,t){return this.check(Cd(e,t))},length(e,t){return this.check(Td(e,t))},unwrap(){return this.element}})});function vp(e,t){return Rd(_p,e,t)}var yp=Z(`ZodObject`,(e,t)=>{fu.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>af(e,t,n,r),Q(e,`shape`,()=>t.shape),Rf(e,`ZodObject`,{keyof(){return Ep(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:mp()})},loose(){return this.clone({...this._zod.def,catchall:mp()})},strict(){return this.clone({...this._zod.def,catchall:gp()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return tc(this,e)},safeExtend(e){return nc(this,e)},merge(e){return rc(this,e)},pick(e){return $s(this,e)},omit(e){return ec(this,e)},partial(...e){return ic(jp,this,e[0])},required(...e){return ac(Vp,this,e[0])}})});function bp(e,t){return new yp({type:`object`,shape:e??{},...$(t)})}var xp=Z(`ZodUnion`,(e,t)=>{mu.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>of(e,t,n,r),e.options=t.options});function Sp(e,t){return new xp({type:`union`,options:e,...$(t)})}var Cp=Z(`ZodIntersection`,(e,t)=>{hu.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>sf(e,t,n,r)});function wp(e,t){return new Cp({type:`intersection`,left:e,right:t})}var Tp=Z(`ZodEnum`,(e,t)=>{vu.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>$d(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new Tp({...t,checks:[],...$(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new Tp({...t,checks:[],...$(r),entries:i})}});function Ep(e,t){return new Tp({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...$(t)})}var Dp=Z(`ZodLiteral`,(e,t)=>{yu.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ef(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Op(e,t){return new Dp({type:`literal`,values:Array.isArray(e)?e:[e],...$(t)})}var kp=Z(`ZodTransform`,(e,t)=>{bu.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>nf(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new ks(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(fc(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(fc(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});function Ap(e){return new kp({type:`transform`,transform:e})}var jp=Z(`ZodOptional`,(e,t)=>{Su.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>hf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Mp(e){return new jp({type:`optional`,innerType:e})}var Np=Z(`ZodExactOptional`,(e,t)=>{Cu.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>hf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Pp(e){return new Np({type:`optional`,innerType:e})}var Fp=Z(`ZodNullable`,(e,t)=>{wu.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>cf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ip(e){return new Fp({type:`nullable`,innerType:e})}var Lp=Z(`ZodDefault`,(e,t)=>{Tu.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>uf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Rp(e,t){return new Lp({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():qs(t)}})}var zp=Z(`ZodPrefault`,(e,t)=>{Du.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>df(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Bp(e,t){return new zp({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():qs(t)}})}var Vp=Z(`ZodNonOptional`,(e,t)=>{Ou.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>lf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Hp(e,t){return new Vp({type:`nonoptional`,innerType:e,...$(t)})}var Up=Z(`ZodCatch`,(e,t)=>{Au.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ff(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Wp(e,t){return new Up({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var Gp=Z(`ZodPipe`,(e,t)=>{ju.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>pf(e,t,n,r),e.in=t.in,e.out=t.out});function Kp(e,t){return new Gp({type:`pipe`,in:e,out:t})}var qp=Z(`ZodReadonly`,(e,t)=>{Nu.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>mf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Jp(e){return new qp({type:`readonly`,innerType:e})}var Yp=Z(`ZodCustom`,(e,t)=>{Fu.init(e,t),zf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>tf(e,t,n,r)});function Xp(e,t={}){return zd(Yp,e,t)}function Zp(e,t){return Bd(e,t)}var Qp=U(`
            `,1),$p=U(` `,1);function em(e,t){Ge(t,!0);let n=()=>A(g,`$hasErrors`,o),r=()=>A(_,`$isDirty`,o),i=()=>A(h,`$errors`,o),a=()=>A(v,`$isDirtyByField`,o),[o,s]=mt(),c=bp({username:Hf().min(3).max(20).regex(/^\S+$/,`Must not contain spaces`),email:Hf().min(1,`Required`).email(),age:up().int().min(18).max(120),website:Hf().url().optional().or(Op(``)),bio:Hf().max(200).optional()});function l(e,t,n){let r=e.safeParse(t);if(r.success)return Object.fromEntries(n.map(e=>[e,``]));let i={};for(let e of r.error.issues){let t=String(e.path[0]);i[t]||(i[t]=e.message)}return Object.fromEntries(n.map(e=>[e,i[e]??``]))}let u=c.pick({username:!0,email:!0,age:!0,website:!0}),d=Object.keys(u.shape),f=[...d,`bio`],p={username:{label:`Username`,placeholder:`Enter username`,type:`text`},email:{label:`Email`,placeholder:`Enter email`,type:`email`},age:{label:`Age`,placeholder:`Enter age`,type:`number`},website:{label:`Website`,placeholder:`https://example.com`,type:`text`}},{data:m,state:{errors:h,hasErrors:g,isDirty:_,isDirtyByField:v}}=ca({username:``,email:``,age:0,website:``,bio:``},{validator:e=>l(c,e,f)}),y=()=>{m.username=`user${X()}`,m.email=`${X()}@example.com`,m.age=Aa(18,65),m.bio=`Hello, I am a demo user!`,m.website=`https://${X()}.com`},b=String.raw`import { z } from 'zod'; - -const userSchema = z.object({ - username: z.string().min(3).max(20).regex(/^\S+$/, 'Must not contain spaces'), - email: z.string().min(1, 'Required').email(), - age: z.number().int().min(18).max(120), - website: z.string().url().optional().or(z.literal('')), - bio: z.string().max(200).optional() -});`;wa(e,{description:`Demonstrates using Zod schemas for validation with svstate, including dynamic form rendering via z.pick() shape keys.`,title:`Zod Integration Demo`,main:e=>{var t=Qp(),o=I(t);ka(o,{get hasErrors(){return n()},get isDirty(){return r()}});var s=L(o,2),c=F(s);ii(c,16,()=>d,e=>e,(e,t)=>{let n=M(()=>p[t]);{let r=M(()=>i()?.[t]),o=M(()=>t!==`website`);Y(e,{get id(){return t},get error(){return V(r)},get isDirty(){return a()[t]},get label(){return V(n).label},get placeholder(){return V(n).placeholder},get required(){return V(o)},get type(){return V(n).type},get value(){return m[t]},set value(e){m[t]=e}})}});var l=L(c,2);{let e=M(()=>i()?.bio);no(l,{id:`bio`,get error(){return V(e)},get isDirty(){return a().bio},label:`Bio`,placeholder:`Tell us about yourself (not in pick subset)`,get value(){return m.bio},set value(e){m.bio=e}})}k(s),W(e,t)},sidebar:e=>{ga(e,{get data(){return m},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},get isDirtyByField(){return a()},onFill:y})},sourceCode:e=>{Da(e,{children:(e,t)=>{var n=$p(),r=I(n);J(r,{get code(){return b},title:`Zod Schema Definition`});var i=L(r,2);J(i,{code:`function zodToSvstateErrors(schema, source, fields) { - const result = schema.safeParse(source); - if (result.success) - return Object.fromEntries(fields.map(f => [f, ''])); - - const errorMap = {}; - for (const issue of result.error.issues) { - const key = String(issue.path[0]); - if (!errorMap[key]) errorMap[key] = issue.message; - } - return Object.fromEntries( - fields.map(f => [f, errorMap[f] ?? '']) - ); -} - -const { data, state: { errors, hasErrors } } = createSvState(sourceData, { - validator: (source) => zodToSvstateErrors(userSchema, source, allFields) -});`,title:`Bridge Function (Zod → svstate)`}),J(L(i,2),{code:`// Pick a subset of fields for dynamic rendering -const pickedSchema = userSchema.pick({ username: true, email: true, age: true, website: true }); -const dynamicFields = Object.keys(pickedSchema.shape); - -const fieldMeta = { - username: { label: 'Username', placeholder: 'Enter username', type: 'text' }, - email: { label: 'Email', placeholder: 'Enter email', type: 'email' }, - age: { label: 'Age', placeholder: 'Enter age', type: 'number' }, - website: { label: 'Website', placeholder: 'https://...', type: 'text' }, -}; - -// In template: -{#each dynamicFields as field} - -{/each} - - -`,title:`Dynamic Rendering via z.pick()`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ke(),s()}var tm=U(``),nm=U(`
            svstate logo

            svstate

            A Svelte 5 library that provides a supercharged $state() with deep reactive proxies, validation, snapshot/undo, - and side effects — built for complex, real-world applications.

            $ npm i svstate
            `);function rm(e){let t=[{value:`basic-validation`,name:`Basic Validation`},{value:`nested-objects`,name:`Nested Objects`},{value:`array-property`,name:`Array Property`},{value:`calculated-fields`,name:`Calculated Fields`},{value:`calculated-class`,name:`State with Methods`},{value:`reset-demo`,name:`Reset`},{value:`snapshot-demo`,name:`Snapshot & Rollback`},{value:`action-demo`,name:`Action & Error`},{value:`async-validation`,name:`Async Validation`},{value:`options-demo`,name:`Options`},{value:`zod-validation`,name:`Zod Integration`},{value:`plugin-devtools`,name:`Plugin: Devtools`},{value:`plugin-persist-sync`,name:`Plugin: Persist & Sync`},{value:`plugin-undo-redo`,name:`Plugin: Undo/Redo`},{value:`plugin-autosave-analytics`,name:`Plugin: Autosave & Analytics`}],n=N(`basic-validation`),r=`1.5.5`,i=`/svstate`;var a=nm(),o=F(a),s=F(o),c=L(s,2),l=F(c),u=L(F(l),2),d=F(u);k(u),k(l);var f=L(l,4),p=L(F(f),4);k(f);var m=L(f,2);k(c),k(o);var h=L(o,2),g=F(h),_=F(g),v=L(F(_),2);ii(v,21,()=>t,ei,(e,t)=>{var n=tm(),r=F(n,!0);k(n);var i={};R(()=>{G(r,V(t).name),i!==(i=V(t).value)&&(n.value=(n.__value=V(t).value)??``)}),W(e,n)}),k(v),k(_),k(g);var y=L(g,2),b=F(y),x=e=>{ao(e,{})},S=e=>{wo(e,{})},C=e=>{qa(e,{})},w=e=>{ho(e,{})},T=e=>{fo(e,{})},E=e=>{vs(e,{})},ee=e=>{Es(e,{})},te=e=>{La(e,{})},ne=e=>{$a(e,{})},re=e=>{Mo(e,{})},ie=e=>{em(e,{})},ae=e=>{Zo(e,{})},oe=e=>{is(e,{})},se=e=>{ms(e,{})},ce=e=>{Uo(e,{})};K(b,e=>{V(n)===`basic-validation`?e(x):V(n)===`nested-objects`?e(S,1):V(n)===`array-property`?e(C,2):V(n)===`calculated-fields`?e(w,3):V(n)===`calculated-class`?e(T,4):V(n)===`reset-demo`?e(E,5):V(n)===`snapshot-demo`?e(ee,6):V(n)===`action-demo`?e(te,7):V(n)===`async-validation`?e(ne,8):V(n)===`options-demo`?e(re,9):V(n)===`zod-validation`?e(ie,10):V(n)===`plugin-devtools`?e(ae,11):V(n)===`plugin-persist-sync`?e(oe,12):V(n)===`plugin-undo-redo`?e(se,13):V(n)===`plugin-autosave-analytics`&&e(ce,14)}),k(y),k(h),k(a),R(()=>{Si(s,`src`,`${i}/favicon.png`),G(d,`v${r}`),Si(m,`href`,`${i}/llms.txt`)}),H(`click`,p,()=>navigator.clipboard.writeText(`npm i svstate@${r}`)),gi(v,()=>V(n),e=>P(n,e)),W(e,a)}Rr([`click`]),qr(rm,{target:document.querySelector(`#app`)}); \ No newline at end of file diff --git a/docs/assets/index-GOI4QFiT.css b/docs/assets/index-GOI4QFiT.css deleted file mode 100644 index 93efd97..0000000 --- a/docs/assets/index-GOI4QFiT.css +++ /dev/null @@ -1,2 +0,0 @@ -/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.relative{position:relative}.top-9{top:calc(var(--spacing) * 9)}.right-3{right:calc(var(--spacing) * 3)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-2{height:calc(var(--spacing) * 2)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-20{height:calc(var(--spacing) * 20)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-screen{min-height:100vh}.w-2{width:calc(var(--spacing) * 2)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-20{width:calc(var(--spacing) * 20)}.w-full{width:100%}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-green-200{border-color:var(--color-green-200)}.border-purple-200{border-color:var(--color-purple-200)}.border-red-200{border-color:var(--color-red-200)}.border-red-500{border-color:var(--color-red-500)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-600{background-color:var(--color-amber-600)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-200{background-color:var(--color-blue-200)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-600{background-color:var(--color-orange-600)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-200{background-color:var(--color-purple-200)}.bg-purple-600{background-color:var(--color-purple-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-600{background-color:var(--color-red-600)}.bg-white{background-color:var(--color-white)}.bg-yellow-100{background-color:var(--color-yellow-100)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-800{color:var(--color-blue-800)}.text-blue-900{color:var(--color-blue-900)}.text-emerald-800{color:var(--color-emerald-800)}.text-gray-100{color:var(--color-gray-100)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-800{color:var(--color-green-800)}.text-indigo-800{color:var(--color-indigo-800)}.text-orange-800{color:var(--color-orange-800)}.text-purple-600{color:var(--color-purple-600)}.text-purple-800{color:var(--color-purple-800)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-white{color:var(--color-white)}.text-yellow-800{color:var(--color-yellow-800)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.placeholder-red-400::placeholder{color:var(--color-red-400)}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:bg-amber-700:hover{background-color:var(--color-amber-700)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-emerald-700:hover{background-color:var(--color-emerald-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:bg-orange-200:hover{background-color:var(--color-orange-200)}.hover\:bg-orange-700:hover{background-color:var(--color-orange-700)}.hover\:bg-purple-700:hover{background-color:var(--color-purple-700)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-purple-700:hover{color:var(--color-purple-700)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-red-500:focus{border-color:var(--color-red-500)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-amber-500:focus{--tw-ring-color:var(--color-amber-500)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-emerald-500:focus{--tw-ring-color:var(--color-emerald-500)}.focus\:ring-green-500:focus{--tw-ring-color:var(--color-green-500)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:ring-orange-500:focus{--tw-ring-color:var(--color-orange-500)}.focus\:ring-purple-500:focus{--tw-ring-color:var(--color-purple-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:no-underline:disabled{text-decoration-line:none}.disabled\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\:hover\:text-gray-600:disabled:hover{color:var(--color-gray-600)}}@media (width>=40rem){.sm\:mb-8{margin-bottom:calc(var(--spacing) * 8)}.sm\:inline-flex{display:inline-flex}.sm\:h-5{height:calc(var(--spacing) * 5)}.sm\:h-32{height:calc(var(--spacing) * 32)}.sm\:w-5{width:calc(var(--spacing) * 5)}.sm\:w-32{width:calc(var(--spacing) * 32)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:text-left{text-align:left}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (width>=48rem){.md\:p-8{padding:calc(var(--spacing) * 8)}}@media (width>=64rem){.lg\:w-64{width:calc(var(--spacing) * 64)}.lg\:flex-shrink-0{flex-shrink:0}.lg\:flex-row{flex-direction:row}.lg\:gap-6{gap:calc(var(--spacing) * 6)}}@media (width>=80rem){.xl\:w-80{width:calc(var(--spacing) * 80)}.xl\:w-96{width:calc(var(--spacing) * 96)}.xl\:flex-row{flex-direction:row}.xl\:gap-6{gap:calc(var(--spacing) * 6)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}} diff --git a/docs/assets/index-HzneZOQz.js b/docs/assets/index-HzneZOQz.js new file mode 100644 index 0000000..591c9a6 --- /dev/null +++ b/docs/assets/index-HzneZOQz.js @@ -0,0 +1,537 @@ +(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=Array.isArray,t=Array.prototype.indexOf,n=Array.prototype.includes,r=Array.from,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,s=Object.prototype,c=Array.prototype,l=Object.getPrototypeOf,u=Object.isExtensible,d=()=>{};function f(e){return e()}function p(e){for(var t=0;t{e=n,t=r}),resolve:e,reject:t}}var h=1024,g=2048,_=4096,v=8192,y=16384,b=32768,x=1<<25,S=65536,C=1<<19,w=1<<20,T=1<<25,E=65536,ee=1<<21,te=1<<22,ne=1<<23,re=Symbol(`$state`),ie=Symbol(`legacy props`),ae=Symbol(``),oe=Symbol(`attributes`),se=Symbol(`class`),ce=Symbol(`style`),le=Symbol(`text`),ue=Symbol(`form reset`),de=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},fe=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function pe(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function me(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function he(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function ge(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function _e(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function ve(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function ye(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function be(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function xe(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Se(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Ce(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var we={},Te=Symbol(`uninitialized`),Ee=`http://www.w3.org/1999/xhtml`;function De(){console.warn(`https://svelte.dev/e/derived_inert`)}function Oe(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function ke(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Ae(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var D=!1;function je(e){D=e}var O;function Me(e){if(e===null)throw Oe(),we;return O=e}function Ne(){return Me(Sn(O))}function k(e){if(D){if(Sn(O)!==null)throw Oe(),we;O=e}}function Pe(e=1){if(D){for(var t=e,n=O;t--;)n=Sn(n);O=n}}function Fe(e=!0){for(var t=0,n=O;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=Sn(n);e&&n.remove(),n=i}}function Ie(e){if(!e||e.nodeType!==8)throw Oe(),we;return e.data}function Le(e){return e===this.v}function Re(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function ze(e){return!Re(e,this.v)}var Be=!1;function Ve(){Be=!0}var He=null;function Ue(e){He=e}function We(e,t=!1,n){He={p:He,i:!1,c:null,e:null,s:e,x:null,r:B,l:Be&&!t?{s:null,u:null,$:[]}:null}}function Ge(e){var t=He,n=t.e;if(n!==null){t.e=null;for(var r of n)Nn(r)}return e!==void 0&&(t.x=e),t.i=!0,He=t.p,e??{}}function Ke(){return!Be||He!==null&&He.l===null}var qe=[];function Je(){var e=qe;qe=[],p(e)}function Ye(e){if(qe.length===0&&!Bt){var t=qe;queueMicrotask(()=>{t===qe&&Je()})}qe.push(e)}function Xe(){for(;qe.length>0;)Je()}function Ze(e){var t=B;if(t===null)return z.f|=ne,e;if(!(t.f&32768)&&!(t.f&4))throw e;Qe(e,t)}function Qe(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}var $e=~(g|_|h);function et(e,t){e.f=e.f&$e|t}function tt(e){e.f&512||e.deps===null?et(e,h):et(e,_)}function nt(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=E,nt(t.deps))}function rt(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),nt(e.deps),et(e,h)}function it(e,t,n){if(e==null)return t(void 0),n&&n(void 0),d;let r=Tr(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}var at=[];function ot(e,t){return{subscribe:st(e,t).subscribe}}function st(e,t=d){let n=null,r=new Set;function i(t){if(Re(e,t)&&(e=t,n)){let t=!at.length;for(let t of r)t[1](),at.push(t,e);if(t){for(let e=0;e{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:i,update:a,subscribe:o}}function ct(e,t,n){let r=!Array.isArray(e),i=r?[e]:e;if(!i.every(Boolean))throw Error(`derived() expects stores as input, got a falsy value`);let a=t.length<2;return ot(n,(e,n)=>{let o=!1,s=[],c=0,l=d,u=()=>{if(c)return;l();let i=t(r?s[0]:s,e,n);a?e(i):l=typeof i==`function`?i:d},f=i.map((e,t)=>it(e,e=>{s[t]=e,c&=~(1<{c|=1<t=e)(),t}var ut=!1,dt=Symbol(`unmounted`);function A(e,t,n){let r=n[t]??={store:null,source:an(void 0),unsubscribe:d};if(r.store!==e&&!(dt in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=d;else{var i=!0;r.unsubscribe=it(e,e=>{i?r.source.v=e:P(r.source,e)}),i=!1}return e&&dt in n?lt(e):V(r.source)}function ft(){let e={};function t(){jn(()=>{for(var t in e)e[t].unsubscribe();i(e,dt,{enumerable:!1,value:!0})})}return[e,t]}function pt(e){var t=ut;try{return ut=!1,[e(),ut]}finally{ut=t}}function mt(e){D&&xn(e)!==null&&Cn(e)}var ht=!1;function gt(){ht||(ht=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[ue]?.()})},{capture:!0}))}function _t(e){var t=z,n=B;rr(null),ir(null);try{return e()}finally{rr(t),ir(n)}}function vt(e,t,n,r=n){e.addEventListener(t,()=>_t(n));let i=e[ue];e[ue]=i?()=>{i(),r(!0)}:()=>r(!0),gt()}function yt(e){let t=0,n=rn(0),r;return()=>{An()&&(V(n),Rn(()=>(t===0&&(r=Tr(()=>e(()=>un(n)))),t+=1,()=>{Ye(()=>{--t,t===0&&(r?.(),r=void 0,un(n))})})))}}var bt=S|C;function xt(e,t,n,r){new St(e,t,n,r)}var St=class{parent;is_pending=!1;transform_error;#e;#t=D?O:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=yt(()=>(this.#m=rn(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=B;t.b=this,t.f|=128,n(e)},this.parent=B.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=zn(()=>{if(D){let e=this.#t;Ne();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#y():this.#g()}else this.#b()},bt),D&&(this.#e=O)}#g(){try{this.#a=Bn(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed,{reset:n,invoke_onerror:r}=this.#v(e);Ye(r),t&&(this.#s=Bn(()=>{t(this.#e,()=>e,()=>n)}))}#v(e){var t=!1,n=!1;let r=()=>{if(t){Ae();return}t=!0,n&&Ce(),this.#s!==null&&qn(this.#s,()=>{this.#s=null}),this.#S(()=>{this.#b()})};return{reset:r,invoke_onerror:()=>{try{n=!0,this.#n.onerror?.(e,r),n=!1}catch(e){Qe(e,this.#i&&this.#i.parent)}}}}#y(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Bn(()=>e(this.#e)),Ye(()=>{var e=this.#c=document.createDocumentFragment(),t=bn();e.append(t),this.#a=this.#S(()=>Bn(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,qn(this.#o,()=>{this.#o=null}),this.#x(M))}))}#b(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Bn(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Zn(this.#a,e);let t=this.#n.pending;this.#o=Bn(()=>t(this.#e))}else this.#x(M)}catch(e){this.error(e)}}#x(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){rt(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#S(e){var t=B,n=z,r=He;ir(this.#i),rr(this.#i),Ue(this.#i.ctx);try{return Kt.ensure(),e()}catch(e){return Ze(e),null}finally{ir(t),rr(n),Ue(r)}}#C(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#C(e,t);return}this.#u+=e,this.#u===0&&(this.#x(t),this.#o&&qn(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#C(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,Ye(()=>{this.#d=!1,this.#m&&sn(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),V(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;M?.is_fork?(this.#a&&M.skip_effect(this.#a),this.#o&&M.skip_effect(this.#o),this.#s&&M.skip_effect(this.#s),M.oncommit(()=>{this.#w(e)})):this.#w(e)}#w(e){this.#a&&=(Wn(this.#a),null),this.#o&&=(Wn(this.#o),null),this.#s&&=(Wn(this.#s),null),D&&(Me(this.#t),Pe(),Me(Fe()));let t=this.#n.failed,n=e=>{let{reset:n,invoke_onerror:r}=this.#v(e);r(),t&&(this.#s=this.#S(()=>{try{return Bn(()=>{var r=B;r.b=this,r.f|=128,t(this.#e,()=>e,()=>n)})}catch(e){return Qe(e,this.#i.parent),null}}))};Ye(()=>{var t;try{t=this.transform_error(e)}catch(e){Qe(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(n,e=>Qe(e,this.#i&&this.#i.parent)):n(t)})}};function Ct(e,t,n,r){let i=Ke()?Dt:At;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=B,c=wt(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){Qe(e,s)}Tt()}}var d=Et();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>kt(e))).then(u).catch(e=>Qe(e,s)).finally(d)}l?l.then(()=>{c(),f(),Tt()}):f()}function wt(){var e=B,t=z,n=He,r=M;return function(i=!0){ir(e),rr(t),Ue(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function Tt(e=!0){ir(null),rr(null),Ue(null),e&&M?.deactivate()}function Et(){var e=B,t=e.b,n=M,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function Dt(e){var t=2|g;return B!==null&&(B.f|=C),{ctx:He,deps:null,effects:null,equals:Le,f:t,fn:e,reactions:null,rv:0,v:Te,wv:0,parent:B,ac:null}}var Ot=Symbol(`obsolete`);function kt(e,t,n){let r=B;r===null&&pe();var i=void 0,a=rn(Te),o=!z,s=new Set;return Ln(()=>{var t=B,n=m();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==de&&n.reject(e)}).finally(Tt)}catch(e){n.reject(e),Tt()}var c=M;if(o){if(t.f&32768)var l=Et();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(Ot);else for(let e of s.values())e.reject(Ot);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==Ot&&(c.activate(),t?(a.f|=ne,sn(a,t)):(a.f&8388608&&(a.f^=ne),sn(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),jn(()=>{for(let e of s)e.reject(Ot)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function j(e){let t=Dt(e);return or(t),t}function At(e){let t=Dt(e);return t.equals=ze,t}function jt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n{t.ac.abort(de),t.ac=null}),t.fn!==null&&(t.teardown=d),br(t,0),Hn(t))}function Ft(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&xr(t)}var It=null,M=null,Lt=null,Rt=null,zt=null,Bt=!1,Vt=!1,Ht=null,Ut=null,Wt=0,Gt=1,Kt=class e{id=Gt++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){It===null?It=this:(It.#n=this,this.#t=It),It=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)et(r,g),t(r);for(r of n.m)et(r,_),t(r)}this.#p.add(e)}#g(){this.#e=!0,Wt++>1e3&&(this.#x(),Jt());for(let e of this.#u)this.#d.delete(e),et(e,g),this.schedule(e);for(let e of this.#d)et(e,_),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=Ht=[],r=[],i=Ut=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw $t(e),this.#h()||this.discard(),t}if(M=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(Ht=null,Ut=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)Qt(e,t);i.length>0&&M.#g();return}let o=this.#v();if(o){this.#b(r),this.#b(n),o.#y(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),Lt=this,Xt(r),Xt(n),Lt=null,this.#s?.resolve();var s=M;if(this.#a===0&&(this.#c.length===0||s!==null)&&this.#x(),this.#c.length>0)if(s!==null){let e=s;e.#c.push(...this.#c.filter(t=>!e.#c.includes(t)))}else s=this;s!==null&&s.#g()}#_(e,t,n){e.f^=h;for(var r=e.first;r!==null;){var i=r.f,a=!!(i&96);if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=h:i&4?t.push(r):gr(r)&&(i&16&&this.#d.add(r),xr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#v(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#y(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null&&!(e.f&2&&!(e.f&6144)))for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),et(i,g),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#x(),M=this,this.#g()}#b(e){for(var t=0;t{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=m()).promise}static ensure(){if(M===null){let t=M=new e;!Vt&&!Bt&&Ye(()=>{t.#e||t.flush()})}return M}apply(){Rt=null}schedule(e){if(zt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(Ht!==null&&t===B&&(z===null||!(z.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=h}}this.#c.push(t)}#x(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?It=e:t.#t=e,this.linked=!1}}};function qt(e){var t=Bt;Bt=!0;try{var n;for(e&&(M!==null&&!M.is_fork&&M.flush(),n=e());;){if(Xe(),M===null)return n;M.flush()}}finally{Bt=t}}function Jt(){try{ve()}catch(e){Qe(e,zt)}}var Yt=null;function Xt(e){var t=e.length;if(t!==0){for(var n=0;n0)){tn.clear();for(let e of Yt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Yt.has(n)&&(Yt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||xr(n)}}Yt.clear()}}Yt=null}}function Zt(e){M.schedule(e)}function Qt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),et(e,h);for(var n=e.first;n!==null;)Qt(n,t),n=n.next}}function $t(e){et(e,h);for(var t=e.first;t!==null;)$t(t),t=t.next}var en=new Set,tn=new Map,nn=!1;function rn(e,t){return{f:0,v:e,reactions:null,equals:Le,rv:0,wv:0}}function N(e,t){let n=rn(e,t);return or(n),n}function an(e,t=!1,n=!0){let r=rn(e);return t||(r.equals=ze),Be&&n&&He!==null&&He.l!==null&&(He.l.s??=[]).push(r),r}function on(e,t){return P(e,Tr(()=>V(e))),t}function P(e,t,n=!1){return z!==null&&(!nr||z.f&131072)&&Ke()&&z.f&4325394&&(ar===null||!ar.has(e))&&Se(),sn(e,n?fn(t):t,Ut)}function sn(e,t,n=null){if(!e.equals(t)){tn.set(e,er?t:e.v);var r=Kt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&Mt(t),Rt===null&&tt(t)}e.wv=hr(),dn(e,g,n),Ke()&&B!==null&&B.f&1024&&!(B.f&96)&&(lr===null?ur([e]):lr.push(e)),!r.is_fork&&en.size>0&&!nn&&cn()}return t}function cn(){nn=!1;for(let e of en){e.f&1024&&et(e,_);let t;try{t=gr(e)}catch{t=!0}t&&xr(e)}en.clear()}function ln(e,t=1){var n=V(e),r=t===1?n++:n--;return P(e,n),r}function un(e){P(e,e.v+1)}function dn(e,t,n){var r=e.reactions;if(r!==null)for(var i=Ke(),a=r.length,o=0;o{if(pr===d)return e();var t=z,n=pr;rr(null),mr(d);var r=e();return rr(t),mr(n),r};return i&&r.set(`length`,N(t.length,u)),new Proxy(t,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&be();var i=r.get(t);return i===void 0?f(()=>{var e=N(n.value,u);return r.set(t,e),e}):P(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>N(Te,u));r.set(t,e),un(o)}}else P(n,Te),un(o);return!0},get(e,n,i){if(n===re)return t;var o=r.get(n),s=n in e;if(o===void 0&&(!s||a(e,n)?.writable)&&(o=f(()=>N(fn(s?e[n]:Te),u)),r.set(n,o)),o!==void 0){var c=V(o);return c===Te?void 0:c}return Reflect.get(e,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=V(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==Te)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===re)return!0;var n=r.get(t),i=n!==void 0&&n.v!==Te||Reflect.has(e,t);return(n!==void 0||B!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>N(i?fn(e[t]):Te,u)),r.set(t,n)),V(n)===Te)?!1:i},set(e,t,n,s){var c=r.get(t),l=t in e;if(i&&t===`length`)for(var d=n;dN(Te,u)),r.set(d+``,p)):P(p,Te)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>N(void 0,u)),P(c,fn(n)),r.set(t,c));else{l=c.v!==Te;var m=f(()=>fn(n));P(c,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(s,n),!l){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&P(g,_+1)}un(o)}return!0},ownKeys(e){V(o);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==Te});for(var[n,i]of r)i.v!==Te&&!(n in e)&&t.push(n);return t},setPrototypeOf(){xe()}})}function pn(e){try{if(typeof e==`object`&&e&&re in e)return e[re]}catch{}return e}function mn(e,t){return Object.is(pn(e),pn(t))}var hn,gn,_n,vn;function yn(){if(hn===void 0){hn=window,gn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;_n=a(t,`firstChild`).get,vn=a(t,`nextSibling`).get,u(e)&&(e[se]=void 0,e[oe]=null,e[ce]=void 0,e.__e=void 0),u(n)&&(n[le]=void 0)}}function bn(e=``){return document.createTextNode(e)}function xn(e){return _n.call(e)}function Sn(e){return vn.call(e)}function F(e,t){if(!D)return xn(e);var n=xn(O);if(n===null)n=O.appendChild(bn());else if(t&&n.nodeType!==3){var r=bn();return n?.before(r),Me(r),r}return t&&En(n),Me(n),n}function I(e,t=!1){if(!D){var n=xn(e);return n instanceof Comment&&n.data===``?Sn(n):n}if(t){if(O?.nodeType!==3){var r=bn();return O?.before(r),Me(r),r}En(O)}return O}function L(e,t=1,n=!1){let r=D?O:e;for(var i;t--;)i=r,r=Sn(r);if(!D)return r;if(n){if(r?.nodeType!==3){var a=bn();return r===null?i?.after(a):r.before(a),Me(a),a}En(r)}return Me(r),r}function Cn(e){e.textContent=``}function wn(){return!1}function Tn(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function En(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Dn(e){B===null&&(z===null&&_e(e),ge()),er&&he(e)}function On(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function kn(e,t){var n=B;n!==null&&n.f&8192&&(e|=v);var r={ctx:He,deps:null,nodes:null,f:e|g|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};M?.register_created_effect(r);var i=r;if(e&4)Ht===null?Kt.ensure().schedule(r):Ht.push(r);else if(t!==null){try{xr(r)}catch(e){throw Wn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=S))}if(i!==null&&(i.parent=n,n!==null&&On(i,n),z!==null&&z.f&2&&!(e&64))){var a=z;(a.effects??=[]).push(i)}return r}function An(){return z!==null&&!nr}function jn(e){let t=kn(8,null);return et(t,h),t.teardown=e,t}function Mn(e){Dn(`$effect`);var t=B.f;if(!z&&t&32&&He!==null&&!He.i){var n=He;(n.e??=[]).push(e)}else return Nn(e)}function Nn(e){return kn(4|w,e)}function Pn(e){return Dn(`$effect.pre`),kn(8|w,e)}function Fn(e){Kt.ensure();let t=kn(64|C,e);return(e={})=>new Promise(n=>{e.outro?qn(t,()=>{Wn(t),n(void 0)}):(Wn(t),n(void 0))})}function In(e){return kn(4,e)}function Ln(e){return kn(te|C,e)}function Rn(e,t=0){return kn(8|t,e)}function R(e,t=[],n=[],r=[]){Ct(r,t,n,t=>{kn(8,()=>{e(...t.map(V))})})}function zn(e,t=0){return kn(16|t,e)}function Bn(e){return kn(32|C,e)}function Vn(e){var t=e.teardown;if(t!==null){let e=er,n=z;tr(!0),rr(null);try{t.call(null)}finally{tr(e),rr(n)}}}function Hn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&_t(()=>{e.abort(de)});var r=n.next;n.f&64?n.parent=null:Wn(n,t),n=r}}function Un(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Wn(t),t=n}}function Wn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Gn(e.nodes.start,e.nodes.end),n=!0),e.f|=x,Hn(e,t&&!n),br(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Vn(e),e.f^=x,e.f|=y;var i=e.parent;i!==null&&i.first!==null&&Kn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Gn(e,t){for(;e!==null;){var n=e===t?null:Sn(e);e.remove(),e=n}}function Kn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function qn(e,t,n=!0){var r=[];Jn(e,r,!0);var i=()=>{n&&Wn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Jn(e,t,n){if(!(e.f&8192)){e.f^=v;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=!!(i.f&65536)||!!(i.f&32)&&!!(e.f&16);Jn(i,t,o?n:!1)}i=a}}}function Yn(e){Xn(e,!0)}function Xn(e,t){if(e.f&8192){e.f^=v,e.f&1024||(et(e,g),Kt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=!!(n.f&65536)||!!(n.f&32);Xn(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function Zn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:Sn(n);t.append(n),n=i}}var Qn=null,$n=!1,er=!1;function tr(e){er=e}var z=null,nr=!1;function rr(e){z=e}var B=null;function ir(e){B=e}var ar=null;function or(e){z!==null&&(ar??=new Set).add(e)}var sr=null,cr=0,lr=null;function ur(e){lr=e}var dr=1,fr=0,pr=fr;function mr(e){pr=e}function hr(){return++dr}function gr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~E),t&4096){for(var n=e.deps,r=n.length,i=0;ie.wv)return!0}t&512&&Rt===null&&et(e,h)}return!1}function _r(e,t,n=!0){var r=e.reactions;if(r!==null&&!(ar!==null&&ar.has(e)))for(var i=0;i{e.ac.abort(de)}),e.ac=null);try{e.f|=ee;var u=e.fn,d=u();e.f|=b;var f=e.deps,p=M?.is_fork;if(sr!==null){var m;if(p||br(e,cr),f!==null&&cr>0)for(f.length=cr+sr.length,m=0;m{s.ac.abort(de),s.ac=null,et(s,g)}),Pt(s),br(s,0)}}function br(e,t){var n=e.deps;if(n!==null)for(var r=t;r{throw e});throw p}}finally{e[Ar]=t,delete e.currentTarget,rr(d),ir(f)}}}var Ir=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Lr(e){return Ir?.createHTML(e)??e}function Rr(e){var t=Tn(`template`);return t.innerHTML=Lr(e.replaceAll(``,``)),t.content}function zr(e,t){var n=B;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function U(e,t){var n=!!(t&1),r=!!(t&2),i,a=!e.startsWith(``);return()=>{if(D)return zr(O,null),O;i===void 0&&(i=Rr(a?e:``+e),n||(i=xn(i)));var t=r||gn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=xn(t),s=t.lastChild;zr(o,s)}else zr(t,t);return t}}function Br(e=``){if(!D){var t=bn(e+``);return zr(t,t),t}var n=O;return n.nodeType===3?En(n):(n.before(n=bn()),Me(n)),zr(n,n),n}function Vr(){if(D)return zr(O,null),O;var e=document.createDocumentFragment(),t=document.createComment(``),n=bn();return e.append(t,n),zr(t,n),e}function W(e,t){if(D){var n=B;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=O),Ne();return}e!==null&&e.before(t)}function G(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[le]??=e.nodeValue)&&(e[le]=n,e.nodeValue=`${n}`)}function Hr(e,t){return Wr(e,t)}var Ur=new Map;function Wr(e,{target:t,anchor:n,props:i={},events:a,context:o,intro:s=!0,transformError:c}){yn();var l=void 0,u=Fn(()=>{var s=n??t.appendChild(bn());xt(s,{pending:()=>{}},t=>{We({});var n=He;if(o&&(n.c=o),a&&(i.$$events=a),D&&zr(t,null),l=e(t,i)||{},D&&(B.nodes.end=O,O===null||O.nodeType!==8||O.data!==`]`))throw Oe(),we;Ge()},c);var u=new Set,d=e=>{for(var n=0;n{for(var e of u)for(let n of[t,document]){var r=Ur.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Fr),r.delete(e),r.size===0&&Ur.delete(n)):r.set(e,i)}Mr.delete(d),s!==n&&s.parentNode?.removeChild(s)}});return Gr.set(l,u),l}var Gr=new WeakMap,Kr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)Yn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(Yn(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(Wn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();Zn(r,t),t.append(bn()),this.#n.set(e,{effect:r,fragment:t})}else Wn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),qn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(Wn(n.effect),this.#n.delete(e))};ensure(e,t){var n=M,r=wn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=bn();i.append(a),this.#n.set(e,{effect:Bn(()=>t(a)),fragment:i})}else this.#t.set(e,Bn(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else D&&(this.anchor=O),this.#a(n)}};function K(e,t,n=!1){var r;D&&(r=O,Ne());var i=new Kr(e),a=n?S:0;function o(e,t){if(D){var n=Ie(r);if(e!==parseInt(n.substring(1))){var a=Fe();Me(a),i.anchor=a,je(!1),i.ensure(e,t),je(!0);return}}i.ensure(e,t)}zn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}var qr=Symbol(`NaN`);function Jr(e,t,n){D&&Ne();var r=new Kr(e),i=!Ke();zn(()=>{var e=t();e!==e&&(e=qr),i&&typeof e==`object`&&e&&(e={}),r.ensure(e,n)})}function Yr(e,t){return t}function Xr(e,t,n){for(var i=[],a=t.length,o,s=t.length,c=0;c{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;Zr(e,r(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else--s},!1)}if(s===0){var l=i.length===0&&n!==null;if(l){var u=n,d=u.parentNode;Cn(d),d.append(u),e.items.clear()}Zr(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function Zr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i{var t=i();return e(t)?t:t==null?[]:r(t)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,ti(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=T,ri(d,null,c)):Yn(d):qn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:zn(()=>{p=V(f);var e=p.length;let t=!1;D&&Ie(c)===`[!`!=(e===0)&&(c=Fe(),Me(c),je(!1),t=!0);for(var r=new Set,u=M,v=wn(),y=0;ys(c)):(d=Bn(()=>s(Qr??=bn())),d.f|=T)),e>r.size&&me(``,``,``),D&&e>0&&Me(Fe()),!h)if(m.set(u,r),v){for(let[e,t]of l)r.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u);t&&je(!0),V(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,D&&(c=O)}function ei(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function ti(e,t,n,i,a){var o=!!(i&8),s=t.length,c=e.items,l=ei(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v0){var ee=i&4&&s===0?n:null;if(o){for(v=0;v{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function ni(e,t,n,r,i,a,o,s){var c=o&1?o&16?rn(n):an(n,!1,!1):null,l=o&2?rn(i):null;return{v:c,i:l,e:Bn(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function ri(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=Sn(r);if(a.before(r),r===i)return;r=o}}function ii(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function ai(e,t,...n){var r=new Kr(e);zn(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},S)}var oi=[...` +\r\f\xA0\v`];function si(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||oi.includes(r[o-1]))&&(s===r.length||oi.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function ci(e,t,n,r,i,a){var o=e[se];if(D||o!==n||o===void 0){var s=si(n,r,a);(!D||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[se]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function li(t,n,r=!1){if(t.multiple){if(n==null)return;if(!e(n))return ke();for(var i of t.options)i.selected=n.includes(fi(i));return}for(i of t.options)if(mn(fi(i),n)){i.selected=!0;return}(!r||n!==void 0)&&(t.selectedIndex=-1)}function ui(e){var t=new MutationObserver(()=>{`__value`in e&&li(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),jn(()=>{t.disconnect()})}function di(e,t,n=t){var r=new WeakSet,i=!0;vt(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),fi);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&fi(o)}n(a),e.__value=a,M!==null&&r.add(M)}),In(()=>{var a=t();if(e===document.activeElement){var o=M;if(r.has(o))return}if(li(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=fi(s),n(a))}e.__value=a,i=!1}),ui(e)}function fi(e){return`__value`in e?e.__value:e.value}var pi=Symbol(`is custom element`),mi=Symbol(`is html`),hi=fe?`link`:`LINK`;function gi(e){if(D){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;_i(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;_i(e,`checked`,null),e.checked=r}}};e[ue]=n,Ye(n),gt()}}function _i(e,t,n,r){var i=vi(e);D&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===hi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[ae]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&bi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function vi(e){return e[oe]??={[pi]:e.nodeName.includes(`-`),[mi]:e.namespaceURI===Ee}}var yi=new Map;function bi(e){var t=e.getAttribute(`is`)||e.nodeName,n=yi.get(t);if(n)return n;yi.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var s in r=o(i),r)r[s].set&&s!==`innerHTML`&&s!==`textContent`&&s!==`innerText`&&n.push(s);i=l(i)}return n}function xi(e,t,n=t){var r=new WeakSet;vt(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=Ci(e)?wi(a):a,n(a),M!==null&&r.add(M),await Sr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(D&&e.defaultValue!==e.value||Tr(t)==null&&e.value)&&(n(Ci(e)?wi(e.value):e.value),M!==null&&r.add(M)),Rn(()=>{var n=t();if(e===document.activeElement){var i=M;if(r.has(i))return}Ci(e)&&n===wi(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function Si(e,t,n=t){vt(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(D&&e.defaultChecked!==e.checked||Tr(t)==null)&&n(e.checked),Rn(()=>{e.checked=!!t()})}function Ci(e){var t=e.type;return t===`number`||t===`range`}function wi(e){return e===``?null:+e}function Ti(e=!1){let t=He,n=t.l.u;if(!n)return;let r=()=>Er(t.s);if(e){let e=0,n={},i=Dt(()=>{let r=!1,i=t.s;for(let e in i)i[e]!==n[e]&&(n[e]=i[e],r=!0);return r&&e++,e});r=()=>V(i)}n.b.length&&Pn(()=>{Ei(t,r),p(n.b)}),Mn(()=>{let e=Tr(()=>n.m.map(f));return()=>{for(let t of e)typeof t==`function`&&t()}}),n.a.length&&Mn(()=>{Ei(t,r),p(n.a)})}function Ei(e,t){if(e.l.s)for(let t of e.l.s)V(t);t()}function Di(e,t,n,r){var i=!Be||!!(n&2),o=!!(n&8),s=!!(n&16),c=r,l=!0,u=void 0,d=()=>s&&i?(u??=Dt(r),V(u)):(l&&(l=!1,c=s?Tr(r):r),c);let f;if(o){var p=re in e||ie in e;f=a(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;o?[m,h]=pt(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&ye(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?Dt:At)(()=>(v=!1,g()));o&&V(y);var b=B;return(function(e,t){if(arguments.length>0){let n=t?V(y):i&&o?fn(e):e;return P(y,n),v=!0,c!==void 0&&(c=n),e}return er&&v||b.f&16384?y.v:V(y)})}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);function Oi(e){let t=e.batchSize??20,n=e.flushInterval??5e3,r=e.include,i=[],a,o=e=>!r||r.includes(e),s=(e,n)=>{o(e)&&(i.push({type:e,timestamp:Date.now(),detail:n}),i.length>=t&&c())},c=()=>{if(i.length===0)return;let t=i.slice();i.length=0,e.onFlush(t)};return{name:`analytics`,onInit(){n>0&&(a=setInterval(c,n))},onChange(t){let n=e.redact?.includes(t.property);s(`change`,{property:t.property,currentValue:n?`[redacted]`:t.currentValue,oldValue:n?`[redacted]`:t.oldValue})},onValidation(e){s(`validation`,{hasErrors:e!==void 0})},onSnapshot(e){s(`snapshot`,{title:e.title})},onAction(e){s(`action`,{phase:e.phase,error:e.error?.message})},onRollback(e){s(`rollback`,{title:e.title})},onReset(){s(`reset`,{})},destroy(){a!==void 0&&clearInterval(a),c()},flush(){c()},eventCount(){return i.length}}}function ki(e){let t=e.idle??1e3,n=e.interval??0,r=e.saveOnDestroy??!0,i=e.onlyWhenDirty??!0,a,o,s,c=!1,l=!1,u=async()=>{if(a&&!(i&&!lt(a.state.isDirty))&&!c){c=!0;try{await e.save(a.data)}catch(t){e.onError?.(t)}finally{c=!1}}},d=()=>{clearTimeout(o),o=setTimeout(u,t)},f=()=>{typeof document<`u`&&document.visibilityState===`hidden`&&u()};return{name:`autosave`,onInit(t){a=t,n>0&&(s=setInterval(u,n)),typeof document<`u`&&e.onVisibilityHidden&&document.addEventListener(`visibilitychange`,f)},onChange(){d()},onAction(e){e.phase===`after`&&!e.error&&clearTimeout(o)},destroy(){if(l=!0,clearTimeout(o),s!==void 0&&clearInterval(s),typeof document<`u`&&document.removeEventListener(`visibilitychange`,f),r&&a){c=!1;let t=a;(!i||lt(t.state.isDirty))&&(async()=>{try{await e.save(t.data)}catch(t){e.onError?.(t)}})()}},async saveNow(){l||(clearTimeout(o),c=!1,await u())},isSaving(){return c}}}var Ai=()=>{try{return import.meta.env?.PROD===!0}catch{return!1}};function ji(e){let t=e?.name??`svstate`,n=e?.collapsed??!0,r=e?.logValidation??!1,i=e?.logValues??!1,a=e?.enabled??!Ai(),o=(e,...r)=>{if(!a)return;let i=new Date().toISOString().slice(11,23);(n?console.groupCollapsed:console.group)(`[${t}] ${e} (${i})`);for(let e of r)console.log(e);console.groupEnd()};return{name:`devtools`,onChange(e){i?o(`change`,{property:e.property,from:e.oldValue,to:e.currentValue}):o(`change`,{property:e.property})},onValidation(e){r&&o(`validation`,e)},onSnapshot(e){o(`snapshot`,{title:e.title})},onAction(e){e.error?o(`action:${e.phase}`,{params:e.params,error:e.error.message}):o(`action:${e.phase}`,{params:e.params})},onRollback(e){o(`rollback`,{title:e.title})},onReset(){o(`reset`)}}}var Mi=new Set([`__proto__`,`constructor`,`prototype`]),Ni=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Pi=e=>Ni(e)&&typeof e.version==`number`&&Ni(e.data),Fi=(e,t)=>{for(let[n,r]of Object.entries(t))Mi.has(n)||(e[n]=r)},Ii=(e,t)=>{let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r},Li=(e,t,n)=>{let r=t.split(`.`),i=e;for(let e=0;e{let n=t.split(`.`);if(n.length===1){delete e[t];return}let r=e;for(let e=0;e{if(t){let n={};for(let r of t){let t=Ii(e,r);t!==void 0&&Li(n,r,t)}return n}if(n){let t={...e};for(let e of n)Ri(t,e);return t}return e};function Bi(e){let t=e.storage??(typeof localStorage>`u`?void 0:localStorage),n=e.throttle??300,r=e.version??1,i=!1,a,o,s=()=>{if(!t||!o)return;let n=zi(o,e.include,e.exclude),i={version:r,data:n};t.setItem(e.key,JSON.stringify(i))},c=()=>{clearTimeout(a),a=setTimeout(s,n)};return{name:`persist`,onInit(n){if(o=n.data,!t)return;let a=t.getItem(e.key);if(a)try{let t=JSON.parse(a);if(!Pi(t))return;let o=t;if(e.migrate&&o.version!==r){let t=e.migrate(o.data,o.version);if(!Ni(t))return;o={version:r,data:t}}Fi(n.data,o.data),i=!0}catch{}},onChange(){c()},onReset(){s()},destroy(){a!==void 0&&(clearTimeout(a),s())},clearPersistedState(){t?.removeItem(e.key)},isRestored(){return i}}}var Vi=new Set([`__proto__`,`constructor`,`prototype`]),Hi=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Ui=10,Wi=(e,t=0)=>t>Ui?!1:!Hi(e)||Object.values(e).every(e=>Wi(e,t+1)),Gi=(e,t)=>{for(let[n,r]of Object.entries(t))Vi.has(n)||(e[n]=r)};function Ki(e){let t=e.throttle??100,n=e.merge??`overwrite`,r,i,a=!1,o,s=0,c=()=>{if(!r||!i)return;let e=JSON.parse(JSON.stringify(i.data));r.postMessage({type:`sync`,data:e})},l=()=>{clearTimeout(o),o=setTimeout(c,t)},u=()=>{clearTimeout(o),r&&=(r.close(),void 0)};return{name:`sync`,onInit(o){i=o,!(typeof BroadcastChannel>`u`)&&(r=new BroadcastChannel(e.key),r.addEventListener(`message`,e=>{if(!i||n===`ignore`||e.data?.type!==`sync`)return;let r=Date.now();r-s{if(typeof e!=`object`||!e)return e;if(e instanceof Date)return new Date(e);if(Array.isArray(e))return e.map(e=>o(e));let t=Object.create(Object.getPrototypeOf(e));for(let n of Object.keys(e))t[n]=o(e[n]);return t};return{name:`undo-redo`,redoStack:{subscribe:t.subscribe},onInit(e){r=e,i=e.state.snapshots.subscribe(e=>{e.length0&&(a=n.at(-1)),n=e})},onRollback(){a&&=(t.update(t=>{let n=[...t,a],r=e?.maxRedoStack;return r&&r>0?n.slice(-r):n}),void 0)},onChange(){t.set([])},onReset(){t.set([])},redo(){if(!r)return;let e=lt(t);if(e.length===0)return;let n=e.at(-1);t.set(e.slice(0,-1)),r.snapshot(`Undo`),Object.assign(r.data,o(n.data))},canRedo(){return lt(t).length>0},destroy(){i?.()}}}var Ji=e=>typeof e==`object`&&!!e&&!(e instanceof Date)&&!(e instanceof Map)&&!(e instanceof Set)&&!(e instanceof WeakMap)&&!(e instanceof WeakSet)&&!(e instanceof RegExp)&&!(e instanceof Error)&&!(e instanceof Promise),Yi=(e,t)=>{let n=(e,i)=>new Proxy(e,{get(e,t){if(typeof t==`symbol`)return e[t];let r=e[t];if(Ji(r)){let e=Number.isSafeInteger(Number(t))?``:String(t),a=e?i?`${i}.${e}`:e:i;return n(r,a)}return r},set(e,n,a){if(typeof n==`symbol`)return e[n]=a,!0;let o=e[n];if(o!==a){e[n]=a;let s=Number.isSafeInteger(Number(n))?``:String(n),c=s?i?`${i}.${s}`:s:i;t(r,c,a,o)}return!0}}),r=n(e,``);return r},Xi=e=>Object.values(e).some(e=>typeof e==`string`?!!e:Xi(e)),Zi=e=>!!e&&Xi(e),Qi=new Set([`__proto__`,`constructor`,`prototype`]),$i=e=>{if(typeof e!=`object`||!e)return e;if(e instanceof Date)return new Date(e);if(Array.isArray(e))return e.map(e=>$i(e));let t=Object.create(Object.getPrototypeOf(e));for(let n of Object.keys(e))Qi.has(n)||(t[n]=$i(e[n]));return t},ea=(e,t)=>{let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r},ta=(e,t)=>{if(!e)return``;let n=t.split(`.`),r=e;for(let e of n){if(typeof r==`string`||r[e]===void 0)return``;r=r[e]}return typeof r==`string`?r:``},na=(e,t)=>{let n=[];for(let r of Object.keys(e))(r===t||r.startsWith(t+`.`)||t.startsWith(r+`.`))&&n.push(r);return n},ra={resetDirtyOnAction:!0,debounceValidation:0,allowConcurrentActions:!1,persistActionError:!1,debounceAsyncValidation:300,runAsyncValidationOnInit:!1,clearAsyncErrorsOnChange:!0,maxConcurrentAsyncValidations:4,maxSnapshots:50,plugins:[]};function ia(e,t,n){let r={...ra,...n},{validator:i,effect:a,asyncValidator:o}=t??{},s=st(),c=ct(s,Zi),l=st({}),u=ct(l,e=>Object.keys(e).length>0),d=st(!1),f=st(),p=st([{title:`Initial`,data:$i(e)}]),m=st({}),h=st(new Set),g=ct(h,e=>[...e]),_=ct(m,e=>Object.values(e).some(e=>!!e)),v=ct([c,_],([e,t])=>e||t),y=new Map,b=[],x=e=>{l.update(t=>{let n={...t,[e]:!0},r=e.split(`.`);for(let e=1;e{for(let n of C){let r=n[e];typeof r==`function`&&r.call(n,...t)}},T=()=>{if(!i)return;let e=i(ue);s.set(e),w(`onValidation`,e)},E=(e,t=!0)=>{let n=lt(p),i={title:e,data:$i(S)},a=n.at(-1),o=t&&a&&a.title===e?[...n.slice(0,-1),i]:[...n,i];if(r.maxSnapshots>0&&o.length>r.maxSnapshots){let e=o.length-r.maxSnapshots;o=[o[0],...o.slice(1+e)]}p.set(o),w(`onSnapshot`,i)},ee=!1,te,ne=()=>{if(i)if(r.debounceValidation>0)clearTimeout(te),te=setTimeout(()=>{T()},r.debounceValidation);else{if(ee)return;ee=!0,queueMicrotask(()=>{T(),ee=!1})}},re=e=>{let t=b.indexOf(e);t!==-1&&b.splice(t,1)},ie=e=>{re(e);let t=y.get(e);t&&(clearTimeout(t.timeoutId),t.controller.abort(),y.delete(e),h.update(t=>(t.delete(e),new Set(t))))},ae=()=>{b.length=0;for(let e of y.keys())ie(e);m.set({})},oe=async(e,t)=>{if(!o){t();return}let n=o[e];if(!n){t();return}if(ta(lt(s),e)){t();return}let r=new AbortController;y.set(e,{controller:r,timeoutId:0}),h.update(t=>new Set([...t,e]));try{let t=await n(ea(ue,e),ue,r.signal);r.signal.aborted||m.update(n=>({...n,[e]:t}))}catch(t){if(t instanceof Error&&t.name===`AbortError`)return;if(!r.signal.aborted){let n=t instanceof Error?t.message:`Async validation error`;m.update(t=>({...t,[e]:n}))}}finally{y.delete(e),h.update(t=>(t.delete(e),new Set(t))),t()}},se=()=>{for(;b.length>0&&!(lt(h).size>=r.maxConcurrentAsyncValidations);){let e=b.shift();e&&oe(e,se)}},ce=e=>{if(!o||!Object.hasOwn(o,e))return;ie(e),r.clearAsyncErrorsOnChange&&m.update(t=>{let n={...t};return delete n[e],n});let t=new AbortController,n=setTimeout(()=>{y.delete(e),lt(h).size{if(!o)return;let t=na(o,e);for(let e of t)ce(e)},ue=Yi(S,(e,t,n,i)=>{if(r.persistActionError||f.set(void 0),x(t),a?.({snapshot:E,target:e,property:t,currentValue:n,oldValue:i})instanceof Promise)throw Error(`svstate: effect callback must be synchronous. Use action for async operations.`);w(`onChange`,{target:e,property:t,currentValue:n,oldValue:i}),ne(),le(t)});if(T(),o&&r.runAsyncValidationOnInit)for(let e of Object.keys(o))ce(e);let de=async e=>{if(!(!r.allowConcurrentActions&<(d))){w(`onAction`,{phase:`before`,params:e}),f.set(void 0),d.set(!0);try{await t?.action?.(e),r.resetDirtyOnAction&&l.set({}),p.set([{title:`Initial`,data:$i(S)}]),await t?.actionCompleted?.(),w(`onAction`,{phase:`after`,params:e})}catch(n){await t?.actionCompleted?.(n);let r=n instanceof Error?n:n&&typeof n==`object`?Error(String(n.message??n.body?.message??n)):void 0;f.set(r),w(`onAction`,{phase:`after`,params:e,error:r})}finally{d.set(!1)}}},fe=(e,t)=>{let n=t[e];if(n)return ae(),l.set({}),Object.assign(S,$i(n.data)),p.set(t.slice(0,e+1)),T(),n},pe=(e=1)=>{let t=lt(p);if(t.length<=1)return;let n=Math.max(0,t.length-1-e),r=fe(n,t);r&&w(`onRollback`,r)},me=e=>{let t=lt(p);if(t.length<=1)return!1;for(let n=t.length-1;n>=0;n--)if(t[n].title===e){let e=fe(n,t);return e&&w(`onRollback`,e),!0}return!1},he=()=>{let e=lt(p);e[0]&&(fe(0,e),w(`onReset`))},ge={errors:s,hasErrors:c,isDirty:u,isDirtyByField:l,actionInProgress:d,actionError:f,snapshots:p,asyncErrors:m,hasAsyncErrors:_,asyncValidating:g,hasCombinedErrors:v};return w(`onInit`,{data:ue,state:ge,options:r,snapshot:E}),{data:ue,execute:de,state:ge,rollback:pe,rollbackTo:me,reset:he,destroy:()=>{for(let e=C.length-1;e>=0;e--)C[e]?.destroy?.()}}}var aa={trim:e=>e.trim(),normalize:e=>e.replaceAll(/\s{2,}/g,` `),upper:e=>e.toUpperCase(),lower:e=>e.toLowerCase(),localeUpper:e=>e.toLocaleUpperCase(),localeLower:e=>e.toLocaleLowerCase()};function q(e){let t=``,n=e==null,r=e??``,i=e=>{t||=e},a={prepare(...e){return r=e.reduce((e,t)=>aa[t](e),r),a},required(){return!t&&(n||!r)&&i(`Required`),a},requiredIf(e){return e&&!t&&(n||!r)&&i(`Required`),a},noSpace(){return n||!t&&r.includes(` `)&&i(`No space allowed`),a},notBlank(){return n||!t&&r.length>0&&r.trim().length===0&&i(`Must not be blank`),a},minLength(e){return n||!t&&r.lengthe&&i(`Max length ${e}`),a},uppercase(){return n||!t&&r!==r.toUpperCase()&&i(`Uppercase only`),a},lowercase(){return n||!t&&r!==r.toLowerCase()&&i(`Lowercase only`),a},startsWith(e){if(t)return a;let n=Array.isArray(e)?e:[e];return r&&n.every(e=>!r.startsWith(e))&&i(`Must start with ${n.join(`, `)}`),a},regexp(e,n){return!t&&r&&!e.test(r)&&i(n??`Not allowed chars`),a},in(e){if(t)return a;let n=Array.isArray(e)?e:Object.keys(e);return r&&!n.includes(r)&&i(`Must be one of: ${n.join(`, `)}`),a},notIn(e){if(t)return a;let n=Array.isArray(e)?e:Object.keys(e);return r&&n.includes(r)&&i(`Must not be one of: ${n.join(`, `)}`),a},email(){return!t&&r&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)&&i(`Invalid email format`),a},website(e=`optional`){if(t||!r||e===`optional`)return a;let n=/^https?:\/\//.test(r);return e===`required`&&!n?i(`Must start with http:// or https://`):e===`forbidden`&&n&&i(`Must not start with http:// or https://`),a},endsWith(e){if(t||!r)return a;let n=Array.isArray(e)?e:[e];return n.every(e=>!r.endsWith(e))&&i(`Must end with ${n.join(`, `)}`),a},contains(e){return!t&&r&&!r.includes(e)&&i(`Must contain "${e}"`),a},alphanumeric(){return!t&&r&&!/^[\dA-Za-z]+$/.test(r)&&i(`Only letters and numbers allowed`),a},numeric(){return!t&&r&&!/^\d+$/.test(r)&&i(`Only numbers allowed`),a},slug(){return!t&&r&&!/^[\da-z-]+$/.test(r)&&i(`Invalid slug format`),a},identifier(){return!t&&r&&!/^[A-Z_a-z]\w*$/.test(r)&&i(`Invalid identifier format`),a},getError(){return t}};return a}function oa(e){let t=``,n=e==null,r=e=>{t||=e},i={required(){return!t&&(n||Number.isNaN(e))&&r(`Required`),i},requiredIf(a){return a&&!t&&(n||Number.isNaN(e))&&r(`Required`),i},min(a){return n||!t&&ea&&r(`Maximum ${a}`),i},between(a,o){return n||!t&&(eo)&&r(`Must be between ${a} and ${o}`),i},integer(){return n||!t&&!Number.isSafeInteger(e)&&r(`Must be an integer`),i},positive(){return n||!t&&e<=0&&r(`Must be positive`),i},negative(){return n||!t&&e>=0&&r(`Must be negative`),i},nonNegative(){return n||!t&&e<0&&r(`Must be non-negative`),i},notZero(){return n||!t&&e===0&&r(`Must not be zero`),i},multipleOf(a){return n||!t&&e%a!==0&&r(`Must be a multiple of ${a}`),i},step(a){return n||!t&&e%a!==0&&r(`Must be a multiple of ${a}`),i},decimal(a){return n||t||Number.isNaN(e)||(String(e).split(`.`)[1]?.length??0)>a&&r(`Maximum ${a} decimal places`),i},percentage(){return n||!t&&(e<0||e>100)&&r(`Must be between 0 and 100`),i},getError(){return t}};return i}function sa(e){let t=``,n=e==null,r=e??[],i=e=>{t||=e},a={required(){return!t&&(n||r.length===0)&&i(`Required`),a},requiredIf(e){return e&&!t&&(n||r.length===0)&&i(`Required`),a},minLength(e){return n||!t&&r.lengthe&&i(`Maximum ${e} items`),a},unique(){if(n||t)return a;let e=new Set;for(let t of r){let n=typeof t==`object`?JSON.stringify(t):String(t);if(e.has(n)){i(`Items must be unique`);break}e.add(n)}return a},ofLength(e){return n||!t&&r.length!==e&&i(`Must have exactly ${e} items`),a},includes(e){if(n||t)return a;let o=typeof e==`object`?JSON.stringify(e):String(e);return r.some(e=>(typeof e==`object`?JSON.stringify(e):String(e))===o)||i(`Must include ${o}`),a},includesAny(e){if(n||t)return a;let o=e.map(e=>typeof e==`object`?JSON.stringify(e):String(e));return r.some(e=>{let t=typeof e==`object`?JSON.stringify(e):String(e);return o.includes(t)})||i(`Must include at least one of: ${o.join(`, `)}`),a},includesAll(e){if(n||t)return a;let o=new Set(r.map(e=>typeof e==`object`?JSON.stringify(e):String(e))),s=e.filter(e=>{let t=typeof e==`object`?JSON.stringify(e):String(e);return!o.has(t)});if(s.length>0){let e=s.map(e=>typeof e==`object`?JSON.stringify(e):String(e));i(`Missing required items: ${e.join(`, `)}`)}return a},getError(){return t}};return a}var ca=U(`
            `),la=U(`
             
            `);function J(e,t){var n=la(),r=F(n),i=e=>{var n=ca(),r=F(n,!0);k(n),R(()=>G(r,t.title)),W(e,n)};K(r,e=>{t.title&&e(i)});var a=L(r,2),o=F(a,!0);k(a),k(n),R(()=>G(o,t.code)),W(e,n)}var ua=U(`
            Dirty Fields
             
            `),da=U(`
            State Object
             
            State Info
            isDirty:
            hasErrors:
            Errors
             
            `);function fa(e,t){We(t,!0);let n=Di(t,`width`,3,`xl:w-80`);var r=da(),i=F(r),a=L(F(i),2),o=F(a,!0);k(a),k(i);var s=L(i,2),c=L(F(s),2),l=F(c),u=L(F(l));k(l);var d=L(l,2),f=L(F(d));k(d),k(c),k(s);var p=L(s,2),m=e=>{var n=ua(),r=L(F(n),2),i=F(r,!0);k(r),k(n),R(e=>G(i,e),[()=>JSON.stringify(t.isDirtyByField,Object.keys(t.isDirtyByField).toSorted((e,t)=>e.localeCompare(t)),2)]),W(e,n)};K(p,e=>{t.isDirtyByField&&e(m)});var h=L(p,2),g=L(F(h),2),_=F(g,!0);k(g),k(h);var v=L(h,2);k(r),R((e,i)=>{ci(r,1,`w-full ${n()??``} flex-shrink-0 space-y-4`),G(o,e),G(u,` ${t.isDirty??``}`),G(f,` ${t.hasErrors??``}`),G(_,i)},[()=>JSON.stringify(t.data,void 0,2),()=>JSON.stringify(t.errors,void 0,2)]),H(`click`,v,function(...e){t.onFill?.apply(this,e)}),W(e,r),Ge()}Nr([`click`]);var pa=U(`

            `);function ma(e,t){var n=Vr(),r=I(n),i=e=>{var n=pa(),r=F(n,!0);k(n),R(()=>G(r,t.error)),W(e,n)};K(r,e=>{t.error&&e(i)}),W(e,n)}var ha=U(``),ga=U(`
            `);function Y(e,t){We(t,!0);let n=Di(t,`type`,3,`text`),r=Di(t,`placeholder`,3,``),i=Di(t,`value`,15),a=Di(t,`error`,3,``),o=Di(t,`required`,3,!0),s=Di(t,`disabled`,3,!1),c=Di(t,`variant`,3,`default`),l=j(()=>c()===`nested`?`bg-white`:`bg-gray-50`);var u=ga(),d=F(u),f=F(d),p=L(f),m=e=>{W(e,ha())};K(p,e=>{t.isDirty&&e(m)}),k(d);var h=L(d,2);gi(h);var g=L(h,2);{let e=j(()=>a()??``);ma(g,{get error(){return V(e)}})}k(u),R(()=>{ci(d,1,`mb-2 block text-sm text-gray-900 ${o()?`font-bold`:``}`),_i(d,`for`,t.id),G(f,`${t.label??``} `),_i(h,`id`,t.id),ci(h,1,`block w-full rounded-lg border p-2.5 text-sm ${a()?`border-red-500 bg-red-50 text-red-900 placeholder-red-400 focus:border-red-500 focus:ring-red-500`:`border-gray-300 ${V(l)} text-gray-900 focus:border-blue-500 focus:ring-blue-500`} ${s()?`cursor-not-allowed opacity-50`:``}`),h.disabled=s(),_i(h,`max`,t.max),_i(h,`min`,t.min),_i(h,`placeholder`,r()),_i(h,`step`,t.step),_i(h,`type`,n())}),xi(h,i),W(e,u),Ge()}var _a=U(`

            `),va=U(`
            `),ya=U(`
            `,1);function ba(e,t){var n=ya(),r=I(n),i=F(r),a=F(i),o=F(a,!0);k(a);var s=L(a,2),c=e=>{var n=_a(),r=F(n,!0);k(n),R(()=>G(r,t.description)),W(e,n)},l=e=>{W(e,va())};K(s,e=>{t.description?e(c):e(l,-1)}),ai(L(s,2),()=>t.main),k(i),ai(L(i,2),()=>t.sidebar),k(r);var u=L(r,2),d=e=>{var n=Vr();ai(I(n),()=>t.sourceCode),W(e,n)};K(u,e=>{t.sourceCode&&e(d)}),R(()=>G(o,t.title)),W(e,n)}var xa=U(`
            `),Sa=U(`
            `);function Ca(e,t){let n=N(!1);var r=Sa(),i=F(r),a=L(F(i),2);k(i);var o=L(i,2),s=e=>{var n=xa();ai(F(n),()=>t.children),k(n),W(e,n)};K(o,e=>{V(n)&&e(s)}),k(r),R(()=>{ci(i,1,`flex w-full cursor-pointer items-center justify-between px-4 py-3 text-left text-sm font-medium text-gray-900 hover:bg-gray-50 ${V(n)?`border-b border-gray-200`:``}`),ci(a,0,`h-5 w-5 transform transition-transform ${V(n)?`rotate-180`:``}`)}),H(`click`,i,()=>P(n,!V(n))),W(e,r)}Nr([`click`]);var wa=U(`
            `);function Ta(e,t){var n=wa(),r=F(n),i=F(r,!0);k(r);var a=L(r,2),o=F(a,!0);k(a),k(n),R(()=>{ci(r,1,`rounded px-2.5 py-0.5 text-xs font-medium ${t.hasErrors?`bg-red-100 text-red-800`:`bg-green-100 text-green-800`}`),G(i,t.hasErrors?`Has Errors`:`Valid`),ci(a,1,`rounded px-2.5 py-0.5 text-xs font-medium ${t.isDirty?`bg-yellow-100 text-yellow-800`:`bg-gray-100 text-gray-800`}`),G(o,t.isDirty?`Modified`:`Clean`)}),W(e,n)}var X=()=>Math.random().toString(36).slice(2,8),Ea=(e,t)=>Math.floor(Math.random()*(t-e+1))+e,Da=U(`
            `),Oa=U(`
            `),ka=U(` Submitting...`),Aa=U(`
            `,1),ja=U(`
            Action State
            actionInProgress:
            actionError:
            `),Ma=U(` `,1);function Na(e,t){We(t,!0);let n=()=>A(h,`$hasErrors`,s),r=()=>A(g,`$isDirty`,s),i=()=>A(_,`$actionInProgress`,s),a=()=>A(m,`$errors`,s),o=()=>A(v,`$actionError`,s),[s,c]=ft(),l={title:`Task ${X()}`,description:`This is a sample task description with ID ${X()}`},u=N(!1),d=N(void 0),{data:f,execute:p,state:{errors:m,hasErrors:h,isDirty:g,actionInProgress:_,actionError:v}}=ia(l,{validator:e=>({title:q(e.title).prepare(`trim`).required().minLength(3).maxLength(50).getError(),description:q(e.description).prepare(`trim`).required().minLength(10).maxLength(200).getError()}),action:async()=>{let e=Ea(100,1e3);if(await new Promise(t=>setTimeout(t,e)),V(u))throw Error(`Simulated server error after ${e}ms`);P(d,`Submitted successfully in ${e}ms!`)},actionCompleted:e=>{e&&P(d,void 0)}}),y=()=>{f.title=`Task ${X()}`,f.description=`This is a sample task description with ID ${X()}`},b=()=>{P(d,void 0),p()};ba(e,{description:`Demonstrates async action execution with loading states and error handling.`,title:`Action Demo`,main:e=>{var t=Aa(),s=I(t);Ta(s,{get hasErrors(){return n()},get isDirty(){return r()}});var c=L(s,2),l=F(c),p=F(l,!0);k(l),k(c);var m=L(c,2),h=F(m);{let e=j(()=>a()?.title);Y(h,{id:`title`,get disabled(){return i()},get error(){return V(e)},label:`Title`,placeholder:`Enter task title`,get value(){return f.title},set value(e){f.title=e}})}var g=L(h,2);{let e=j(()=>a()?.description);Y(g,{id:`description`,get disabled(){return i()},get error(){return V(e)},label:`Description`,placeholder:`Enter task description (min 10 characters)`,get value(){return f.description},set value(e){f.description=e}})}var _=L(g,2),v=F(_);gi(v),Pe(2),k(_),k(m);var y=L(m,2),x=e=>{var t=Da(),n=F(t),r=L(F(n),2),i=F(r,!0);k(r),k(n),k(t),R(()=>G(i,o().message)),W(e,t)};K(y,e=>{o()&&e(x)});var S=L(y,2),C=e=>{var t=Oa(),n=F(t),r=L(F(n),2),i=F(r,!0);k(r),k(n),k(t),R(()=>G(i,V(d))),W(e,t)};K(S,e=>{V(d)&&e(C)});var w=L(S,2),T=F(w),E=F(T),ee=e=>{W(e,ka())},te=e=>{W(e,Br(`Submit`))};K(E,e=>{i()?e(ee):e(te,-1)}),k(T),k(w),R(()=>{ci(l,1,`rounded px-2.5 py-0.5 text-xs font-medium ${i()?`bg-blue-100 text-blue-800`:`bg-gray-100 text-gray-800`}`),G(p,i()?`In Progress`:`Idle`),v.disabled=i(),T.disabled=n()||i()}),Si(v,()=>V(u),e=>P(u,e)),H(`click`,T,b),W(e,t)},sidebar:e=>{var t=ja(),s=F(t);fa(s,{get data(){return f},get errors(){return a()},get hasErrors(){return n()},get isDirty(){return r()},onFill:y});var c=L(s,2),l=L(F(c),2),u=F(l),d=L(F(u));k(u);var p=L(u,2),m=L(F(p));k(p),k(l),k(c),k(t),R(()=>{G(d,` ${i()??``}`),G(m,` ${o()?.message??`none`??``}`)}),W(e,t)},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=Ma(),r=I(n);J(r,{code:`const { data, execute, state: { errors, hasErrors, isDirty, actionInProgress, actionError } } = + createSvState(sourceData, { + validator: (source) => ({ + title: stringValidator(source.title).prepare('trim').required().minLength(3).maxLength(50).getError(), + description: stringValidator(source.description).prepare('trim').required().minLength(10).getError() + }), + action: async () => { + // Simulate API call with 100-1000ms delay + const delay = randomInt(100, 1000); + await new Promise((resolve) => setTimeout(resolve, delay)); + + if (shouldFail) { + throw new Error('Simulated server error'); + } + }, + actionCompleted: (error) => { + // Called after action completes (success or failure) + console.log(error ? 'Action failed' : 'Action succeeded'); + } + });`,title:`State Setup with Action`});var i=L(r,2);J(i,{code:`// Execute the action + + +// With parameters (if action accepts them) +execute({ userId: 123 });`,title:`Execute Action`}),J(L(i,2),{code:`// Display action error +{#if $actionError} +
            + {$actionError.message} +
            +{/if} + +// Check if action is in progress +{#if $actionInProgress} +
            Submitting...
            +{/if}`,title:`Error & Loading States`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),c()}Nr([`click`]);var Pa=U(`
            `);function Fa(e,t){let n=Di(t,`label`,3,`Item`);var r=Pa(),i=F(r),a=F(i),o=F(a);k(a);var s=L(a,2);k(i),ai(L(i,2),()=>t.children),k(r),R(()=>G(o,`${n()??``} #${t.index+1}`)),H(`click`,s,function(...e){t.onRemove?.apply(this,e)}),W(e,r)}Nr([`click`]);var Ia=U(`

            `);function La(e,t){var n=Ia(),r=F(n),i=F(r,!0);k(r),k(n),R(()=>G(i,t.message)),W(e,n)}var Ra=U(`
            `),za=U(`
            `),Ba=U(`
            `),Va=U(`
            Contacts
            `,1),Ha=U(` `,1);function Ua(e,t){We(t,!0);let n=()=>A(l,`$hasErrors`,a),r=()=>A(u,`$isDirty`,a),i=()=>A(c,`$errors`,a),[a,o]=ft(),{data:s,state:{errors:c,hasErrors:l,isDirty:u}}=ia({listName:``,items:[]},{validator:e=>({listName:q(e.listName).prepare(`trim`).required().minLength(2).getError(),items:sa(e.items).required().minLength(1).getError(),...Object.fromEntries(e.items.map((e,t)=>[`item_${t}`,{name:q(e.name).prepare(`trim`).required().minLength(2).getError(),email:q(e.email).prepare(`trim`).required().email().getError()}]))})}),d=()=>{s.items=[...s.items,{name:``,email:``}]},f=e=>{s.items=s.items.filter((t,n)=>n!==e)},p=()=>{s.listName=`Contact List ${X()}`,s.items=[{name:`John Doe`,email:`john@example.com`},{name:`Jane Smith`,email:`jane@example.com`},{name:`Bob Wilson`,email:`bob@example.com`}]};ba(e,{description:`Shows how to validate dynamic arrays with per-item validation using indexed error keys.`,title:`Array Property Demo`,main:e=>{var t=Va(),a=I(t);Ta(a,{get hasErrors(){return n()},get isDirty(){return r()}});var o=L(a,2),c=F(o);{let e=j(()=>i()?.listName);Y(c,{id:`listName`,get error(){return V(e)},label:`List Name`,placeholder:`Enter list name`,get value(){return s.listName},set value(e){s.listName=e}})}var l=L(c,2),u=F(l),p=F(u),m=L(F(p)),h=F(m);k(m),k(p);var g=L(p,2);k(u);var _=L(u,2),v=e=>{var t=Ra();ma(F(t),{get error(){return i().items}}),k(t),W(e,t)};K(_,e=>{i()?.items&&e(v)});var y=L(_,2),b=e=>{La(e,{message:`No contacts yet. Click "Add Contact" to get started.`})},x=e=>{var t=Ba();$r(t,21,()=>s.items,Yr,(e,t,n)=>{Fa(e,{index:n,label:`Contact`,onRemove:()=>f(n),children:(e,r)=>{var a=za(),o=F(a),s=F(o);_i(s,`for`,`item-name-${n}`);var c=L(s,2);gi(c),_i(c,`id`,`item-name-${n}`);var l=L(c,2);{let e=j(()=>i()?.[`item_${n}`]?.name??``);ma(l,{get error(){return V(e)}})}k(o);var u=L(o,2),d=F(u);_i(d,`for`,`item-email-${n}`);var f=L(d,2);gi(f),_i(f,`id`,`item-email-${n}`);var p=L(f,2);{let e=j(()=>i()?.[`item_${n}`]?.email??``);ma(p,{get error(){return V(e)}})}k(u),k(a),R(()=>{ci(c,1,`block w-full rounded-lg border p-2 text-sm ${i()?.[`item_${n}`]?.name?`border-red-500 bg-red-50 text-red-900 placeholder-red-400`:`border-gray-300 bg-white text-gray-900`}`),ci(f,1,`block w-full rounded-lg border p-2 text-sm ${i()?.[`item_${n}`]?.email?`border-red-500 bg-red-50 text-red-900 placeholder-red-400`:`border-gray-300 bg-white text-gray-900`}`)}),xi(c,()=>V(t).name,e=>V(t).name=e),xi(f,()=>V(t).email,e=>V(t).email=e),W(e,a)},$$slots:{default:!0}})}),k(t),W(e,t)};K(y,e=>{s.items.length===0?e(b):e(x,-1)}),k(l),k(o),R(()=>G(h,`${s.items.length??``} items`)),H(`click`,g,d),W(e,t)},sidebar:e=>{fa(e,{get data(){return s},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:p,width:`xl:w-96`})},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=Ha(),r=I(n);J(r,{code:`const sourceData = { + listName: '', + items: [] as { name: string; email: string }[] +}; + +const { data, state: { errors, hasErrors, isDirty } } = createSvState(sourceData, { + validator: (source) => ({ + listName: stringValidator(source.listName).prepare('trim').required().minLength(2).getError(), + items: arrayValidator(source.items).required().minLength(1).getError(), + // Per-item validation using indexed keys + ...Object.fromEntries( + source.items.map((item, index) => [ + \`item_\${index}\`, + { + name: stringValidator(item.name).prepare('trim').required().minLength(2).getError(), + email: stringValidator(item.email).prepare('trim').required().email().getError() + } + ]) + ) + }) +});`,title:`State Setup with Array Item Validation`}),J(L(r,2),{code:`// Define type for item errors +type ItemErrors = Record; + +{#each data.items as item, index} + + + + + +{/each}`,title:`Array Form Binding Examples`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),o()}Nr([`click`]),Ve();var Wa=U(`
            `),Ga=U(` Validating...`),Ka=U(`
            Taken usernames:
            Taken emails:
            Taken slugs:
            Concurrency limit: maxConcurrentAsyncValidations = 2
            Only 2 async validations run simultaneously. Try filling all 3 fields at once to see queuing in action.
            `,1),qa=U(`
            Quick Fill
            Async Validation State
            asyncValidating:
            hasAsyncErrors:
            hasCombinedErrors:
            Async Errors
             
            `),Ja=U(` `,1);function Ya(e,t){We(t,!1);let n=()=>A(_,`$hasErrors`,l),r=()=>A(v,`$isDirty`,l),i=()=>A(b,`$hasAsyncErrors`,l),a=()=>A(S,`$hasCombinedErrors`,l),o=()=>A(g,`$errors`,l),s=()=>A(y,`$asyncErrors`,l),c=()=>A(x,`$asyncValidating`,l),[l,u]=ft(),d=[`admin`,`user`,`test`,`demo`,`root`],f=[`admin@example.com`,`test@example.com`,`user@example.com`],p=[`admin`,`about`,`contact`,`help`,`support`],m=ia({username:``,email:``,slug:``},{validator:e=>({username:q(e.username).prepare(`trim`).required().minLength(3).maxLength(20).noSpace().getError(),email:q(e.email).prepare(`trim`).required().email().getError(),slug:q(e.slug).prepare(`trim`).required().minLength(2).slug().getError()}),asyncValidator:{username:async(e,t,n)=>{await new Promise((e,t)=>{let r=setTimeout(e,500);n.addEventListener(`abort`,()=>{clearTimeout(r),t(new DOMException(`Aborted`,`AbortError`))})});let r=String(e).toLowerCase();return d.includes(r)?`Username is already taken`:``},email:async(e,t,n)=>{await new Promise((e,t)=>{let r=setTimeout(e,400);n.addEventListener(`abort`,()=>{clearTimeout(r),t(new DOMException(`Aborted`,`AbortError`))})});let r=String(e).toLowerCase();return f.includes(r)?`Email is already registered`:``},slug:async(e,t,n)=>{await new Promise((e,t)=>{let r=setTimeout(e,600);n.addEventListener(`abort`,()=>{clearTimeout(r),t(new DOMException(`Aborted`,`AbortError`))})});let r=String(e).toLowerCase();return p.includes(r)?`URL slug is already in use`:``}}},{maxConcurrentAsyncValidations:2}),h=an(m.data),g=m.state.errors,_=m.state.hasErrors,v=m.state.isDirty,y=m.state.asyncErrors,b=m.state.hasAsyncErrors,x=m.state.asyncValidating,S=m.state.hasCombinedErrors,C=()=>{on(h,V(h).username=`newuser${X()}`),on(h,V(h).email=`${X()}@example.com`),on(h,V(h).slug=`my-page-${X()}`)},w=()=>{on(h,V(h).username=`admin`),on(h,V(h).email=`admin@example.com`),on(h,V(h).slug=`about`)};Ti(),ba(e,{description:`Demonstrates async validation with simulated API calls for username and email uniqueness checks.`,title:`Async Validation Demo`,main:e=>{var t=Ka(),l=I(t);Ta(l,{get hasErrors(){return n()},get isDirty(){return r()}});var u=L(l,2),m=F(u),g=F(m);k(m);var _=L(m,2),v=F(_);k(_),k(u);var y=L(u,2),b=F(y),x=F(b);{let e=At(()=>o()?.username||s().username);Y(x,{id:`username`,get error(){return V(e)},label:`Username`,placeholder:`Enter username (try 'admin', 'user', 'test')`,get value(){return V(h).username},set value(e){on(h,V(h).username=e)},$$legacy:!0})}var S=L(x,2),C=e=>{W(e,Wa())},w=j(()=>c().includes(`username`));K(S,e=>{V(w)&&e(C)}),k(b);var T=L(b,2),E=F(T);{let e=At(()=>o()?.email||s().email);Y(E,{id:`email`,get error(){return V(e)},label:`Email`,placeholder:`Enter email (try 'admin@example.com')`,type:`email`,get value(){return V(h).email},set value(e){on(h,V(h).email=e)},$$legacy:!0})}var ee=L(E,2),te=e=>{W(e,Wa())},ne=j(()=>c().includes(`email`));K(ee,e=>{V(ne)&&e(te)}),k(T);var re=L(T,2),ie=F(re);{let e=At(()=>o()?.slug||s().slug);Y(ie,{id:`slug`,get error(){return V(e)},label:`URL Slug`,placeholder:`Enter slug (try 'admin', 'about', 'contact')`,get value(){return V(h).slug},set value(e){on(h,V(h).slug=e)},$$legacy:!0})}var ae=L(ie,2),oe=e=>{W(e,Wa())},se=j(()=>c().includes(`slug`));K(ae,e=>{V(se)&&e(oe)}),k(re),k(y);var ce=L(y,2),le=F(ce),ue=L(F(le));k(le);var de=L(le,2),fe=L(F(de));k(de);var pe=L(de,2),me=L(F(pe));k(pe),k(ce);var he=L(ce,4),ge=F(he),_e=F(ge),ve=e=>{W(e,Ga())},ye=e=>{W(e,Br(`Submit`))};K(_e,e=>{c().length>0?e(ve):e(ye,-1)}),k(ge),k(he),R((e,t,n)=>{ci(m,1,`rounded px-2.5 py-0.5 text-xs font-medium ${i()?`bg-red-100 text-red-800`:`bg-gray-100 text-gray-800`}`),G(g,`Async Errors: ${i()?`Yes`:`No`}`),ci(_,1,`rounded px-2.5 py-0.5 text-xs font-medium ${a()?`bg-red-100 text-red-800`:`bg-green-100 text-green-800`}`),G(v,`Combined: ${a()?`Has Errors`:`Valid`}`),G(ue,` ${e??``}`),G(fe,` ${t??``}`),G(me,` ${n??``}`),ge.disabled=a()||c().length>0},[()=>d.join(`, `),()=>f.join(`, `),()=>p.join(`, `)]),W(e,t)},sidebar:e=>{var t=qa(),l=F(t);fa(l,{get data(){return V(h)},get errors(){return o()},get hasErrors(){return n()},get isDirty(){return r()},onFill:C});var u=L(l,2),d=L(F(u),2);k(u);var f=L(u,2),p=L(F(f),2),m=F(p),g=L(F(m));k(m);var _=L(m,2),v=L(F(_));k(_);var y=L(_,2),b=L(F(y));k(y),k(p),k(f);var x=L(f,2),S=L(F(x),2),T=F(S,!0);k(S),k(x),k(t),R((e,t)=>{G(g,` [${e??``}]`),G(v,` ${i()??``}`),G(b,` ${a()??``}`),G(T,t)},[()=>c().join(`, `),()=>JSON.stringify(s(),void 0,2)]),H(`click`,d,w),W(e,t)},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=Ja(),r=I(n);J(r,{code:`const { data, state: { errors, asyncErrors, asyncValidating, hasCombinedErrors } } = + createSvState(sourceData, { + validator: (source) => ({ + username: stringValidator(source.username).required().minLength(3).noSpace().getError(), + email: stringValidator(source.email).required().email().getError(), + slug: stringValidator(source.slug).required().minLength(2).slug().getError() + }), + asyncValidator: { + username: async (value, source, signal) => { + const res = await fetch(\`/api/check-username?u=\${value}\`, { signal }); + return (await res.json()).available ? '' : 'Username already taken'; + }, + email: async (value, source, signal) => { + const res = await fetch(\`/api/check-email?e=\${value}\`, { signal }); + return (await res.json()).available ? '' : 'Email already registered'; + }, + slug: async (value, source, signal) => { + const res = await fetch(\`/api/check-slug?s=\${value}\`, { signal }); + return (await res.json()).available ? '' : 'URL slug already in use'; + } + } + }, + { maxConcurrentAsyncValidations: 2 } // Only 2 async validations run at a time +);`,title:`State Setup with Async Validators`});var i=L(r,2);J(i,{code:` +{#if $asyncValidating.includes('username')} + ... +{/if} + + +{#if $asyncErrors.username} + {$asyncErrors.username} +{/if} + + +`,title:`Template Usage`}),J(L(i,2),{code:`// Available stores for async validation: +$errors // Sync validation errors (nested object) +$hasErrors // true if any sync errors + +$asyncErrors // Async validation errors (flat map by path) +$hasAsyncErrors // true if any async errors + +$asyncValidating // Array of paths currently being validated +$hasCombinedErrors // hasErrors || hasAsyncErrors`,title:`Available Stores`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),u()}Nr([`click`]);var Xa=U(``),Za=U(`
            `);function Qa(e,t){We(t,!0);let n=Di(t,`placeholder`,3,``),r=Di(t,`value`,15),i=Di(t,`error`,3,``),a=Di(t,`required`,3,!1),o=Di(t,`rows`,3,3);var s=Za(),c=F(s),l=F(c),u=L(l),d=e=>{W(e,Xa())};K(u,e=>{t.isDirty&&e(d)}),k(c);var f=L(c,2);mt(f);var p=L(f,2);{let e=j(()=>i()??``);ma(p,{get error(){return V(e)}})}k(s),R(()=>{ci(c,1,`mb-2 block text-sm text-gray-900 ${a()?`font-bold`:``}`),_i(c,`for`,t.id),G(l,`${t.label??``} `),_i(f,`id`,t.id),ci(f,1,`block w-full rounded-lg border p-2.5 text-sm ${i()?`border-red-500 bg-red-50 text-red-900 placeholder-red-400 focus:border-red-500 focus:ring-red-500`:`border-gray-300 bg-gray-50 text-gray-900 focus:border-blue-500 focus:ring-blue-500`}`),_i(f,`placeholder`,n()),_i(f,`rows`,o())}),xi(f,r),W(e,s),Ge()}var $a=U(`
            `,1),eo=U(` `,1);function to(e,t){We(t,!0);let n=()=>A(u,`$hasErrors`,o),r=()=>A(d,`$isDirty`,o),i=()=>A(l,`$errors`,o),a=()=>A(f,`$isDirtyByField`,o),[o,s]=ft(),{data:c,state:{errors:l,hasErrors:u,isDirty:d,isDirtyByField:f}}=ia({username:``,email:``,age:0,bio:``,website:``},{validator:e=>({username:q(e.username).prepare(`trim`).required().minLength(3).maxLength(20).noSpace().getError(),email:q(e.email).prepare(`trim`).required().email().getError(),age:oa(e.age).required().min(18).max(120).integer().getError(),bio:q(e.bio).maxLength(200).getError(),website:q(e.website).prepare(`trim`).website(`required`).getError()})}),p=()=>{c.username=`user${X()}`,c.email=`${X()}@example.com`,c.age=Ea(18,65),c.bio=`Hello, I am a demo user!`,c.website=`https://${X()}.com`};ba(e,{description:`Demonstrates form validation with string, number, and email validators using the fluent API.`,title:`Basic Validation Demo`,main:e=>{var t=$a(),o=I(t);Ta(o,{get hasErrors(){return n()},get isDirty(){return r()}});var s=L(o,2),l=F(s);{let e=j(()=>i()?.username);Y(l,{id:`username`,get error(){return V(e)},get isDirty(){return a().username},label:`Username`,placeholder:`Enter username`,get value(){return c.username},set value(e){c.username=e}})}var u=L(l,2);{let e=j(()=>i()?.email);Y(u,{id:`email`,get error(){return V(e)},get isDirty(){return a().email},label:`Email`,placeholder:`Enter email`,type:`email`,get value(){return c.email},set value(e){c.email=e}})}var d=L(u,2);{let e=j(()=>i()?.age);Y(d,{id:`age`,get error(){return V(e)},get isDirty(){return a().age},label:`Age`,placeholder:`Enter age`,type:`number`,get value(){return c.age},set value(e){c.age=e}})}var f=L(d,2);{let e=j(()=>i()?.bio);Qa(f,{id:`bio`,get error(){return V(e)},get isDirty(){return a().bio},label:`Bio`,placeholder:`Tell us about yourself`,get value(){return c.bio},set value(e){c.bio=e}})}var p=L(f,2);{let e=j(()=>i()?.website);Y(p,{id:`website`,get error(){return V(e)},get isDirty(){return a().website},label:`Website`,placeholder:`https://example.com`,required:!1,get value(){return c.website},set value(e){c.website=e}})}k(s),W(e,t)},sidebar:e=>{fa(e,{get data(){return c},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},get isDirtyByField(){return a()},onFill:p})},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=eo(),r=I(n);J(r,{code:`const sourceData = { + username: '', + email: '', + age: 0, + bio: '', + website: '' +}; + +const { data, state: { errors, hasErrors, isDirty, isDirtyByField } } = createSvState(sourceData, { + validator: (source) => ({ + username: stringValidator(source.username).prepare('trim').required().minLength(3).maxLength(20).noSpace().getError(), + email: stringValidator(source.email).prepare('trim').required().email().getError(), + age: numberValidator(source.age).required().min(18).max(120).integer().getError(), + bio: stringValidator(source.bio).maxLength(200).getError(), + website: stringValidator(source.website).prepare('trim').website('required').getError() + }) +});`,title:`State Setup`}),J(L(r,2),{code:` +`,title:`Form Binding Example`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),s()}var no=U(` `),ro=U(`
            `);function io(e,t){var n=ro(),r=F(n),i=L(r),a=e=>{var n=no(),r=F(n);k(n),R(()=>G(r,`(${t.subtitle??``})`)),W(e,n)};K(i,e=>{t.subtitle&&e(a)});var o=L(i,2),s=e=>{var n=Vr();ai(I(n),()=>t.children),W(e,n)};K(o,e=>{t.children&&e(s)}),k(n),R(()=>G(r,`${t.title??``} `)),W(e,n)}var ao=U(`
            Subtotal:
            Tax (8%):
            Total:

            Values formatted using methods on state: data.formatCurrency() and data.formatTotal()

            `,1),oo=U(` `,1);function so(e,t){We(t,!0);let n=()=>A(l,`$hasErrors`,a),r=()=>A(u,`$isDirty`,a),i=()=>A(c,`$errors`,a),[a,o]=ft(),{data:s,state:{errors:c,hasErrors:l,isDirty:u}}=ia({productName:`Widget ${X()}`,item:{unitPrice:0,quantity:1},subtotal:0,tax:0,total:0,formatTotal(){return`$${this.total.toFixed(2)}`},formatCurrency(e){return`$${e.toFixed(2)}`},calculateTotals(e=.08){this.subtotal=this.item.unitPrice*this.item.quantity,this.tax=this.subtotal*e,this.total=this.subtotal+this.tax}},{validator:e=>({productName:q(e.productName).prepare(`trim`).required().minLength(2).getError(),item:{unitPrice:oa(e.item.unitPrice).required().positive().getError(),quantity:oa(e.item.quantity).required().integer().min(1).max(100).getError()}}),effect:({property:e})=>{(e===`item.unitPrice`||e===`item.quantity`)&&s.calculateTotals()}}),d=()=>{s.productName=`Widget ${X()}`,s.item.unitPrice=Ea(10,100),s.item.quantity=Ea(1,10)};ba(e,{description:`Demonstrates using objects with methods as state. The effect callback can call methods directly on the state object.`,title:`State with Methods Demo`,main:e=>{var t=ao(),a=I(t);Ta(a,{get hasErrors(){return n()},get isDirty(){return r()}});var o=L(a,2),c=F(o);{let e=j(()=>i()?.productName);Y(c,{id:`productName`,get error(){return V(e)},label:`Product Name`,placeholder:`Enter product name`,get value(){return s.productName},set value(e){s.productName=e}})}var l=L(c,2),u=F(l);io(u,{subtitle:`nested object`,title:`Item Details`});var d=L(u,2),f=F(d);{let e=j(()=>i()?.item?.unitPrice);Y(f,{id:`unitPrice`,get error(){return V(e)},label:`Unit Price ($)`,min:0,placeholder:`0.00`,step:.01,type:`number`,get value(){return s.item.unitPrice},set value(e){s.item.unitPrice=e}})}var p=L(f,2);{let e=j(()=>i()?.item?.quantity);Y(p,{id:`quantity`,get error(){return V(e)},label:`Quantity`,max:100,min:1,placeholder:`1`,type:`number`,get value(){return s.item.quantity},set value(e){s.item.quantity=e}})}k(d),k(l);var m=L(l,2),h=F(m);io(h,{subtitle:`computed by method`,title:`Calculated Totals`});var g=L(h,2),_=F(g),v=F(_),y=L(F(v),2),b=F(y,!0);k(y),k(v);var x=L(v,2),S=L(F(x),2),C=F(S,!0);k(S),k(x);var w=L(x,2),T=L(F(w),2),E=F(T,!0);k(T),k(w),k(_),k(g),Pe(2),k(m),k(o),R((e,t,n)=>{G(b,e),G(C,t),G(E,n)},[()=>s.formatCurrency(s.subtotal),()=>s.formatCurrency(s.tax),()=>s.formatTotal()]),W(e,t)},sidebar:e=>{fa(e,{get data(){return s},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:d})},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=oo(),r=I(n);J(r,{code:`// Define state type with methods +type SourceData = { + productName: string; + item: { unitPrice: number; quantity: number }; + subtotal: number; + tax: number; + total: number; + formatTotal: () => string; + formatCurrency: (value: number) => string; + calculateTotals: (taxRate?: number) => void; +}; + +// Create initial state as object with methods +const createSourceData = (): SourceData => ({ + productName: '', + item: { unitPrice: 0, quantity: 1 }, + subtotal: 0, + tax: 0, + total: 0, + formatTotal() { + return \`$\${this.total.toFixed(2)}\`; + }, + formatCurrency(value: number) { + return \`$\${value.toFixed(2)}\`; + }, + calculateTotals(taxRate: number = 0.08) { + this.subtotal = this.item.unitPrice * this.item.quantity; + this.tax = this.subtotal * taxRate; + this.total = this.subtotal + this.tax; + } +});`,title:`Class Definition`});var i=L(r,2);J(i,{code:`const { data, state: { errors, hasErrors, isDirty } } = createSvState(createSourceData(), { + validator: (source) => ({ + productName: stringValidator(source.productName).prepare('trim').required().minLength(2).getError(), + item: { + unitPrice: numberValidator(source.item.unitPrice).required().positive().getError(), + quantity: numberValidator(source.item.quantity).required().integer().min(1).max(100).getError() + } + }), + effect: ({ property }) => { + if (property === 'item.unitPrice' || property === 'item.quantity') { + data.calculateTotals(); // Call method on state object! + } + } +});`,title:`State Setup with Class Instance`}),J(L(i,2),{code:` +{data.formatCurrency(data.subtotal)} +{data.formatTotal()}`,title:`Template Usage`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),o()}var co=U(`
            Subtotal:
            Tax (8%):
            Total:
            `,1),lo=U(` `,1);function uo(e,t){We(t,!0);let n=()=>A(l,`$hasErrors`,a),r=()=>A(u,`$isDirty`,a),i=()=>A(c,`$errors`,a),[a,o]=ft(),{data:s,state:{errors:c,hasErrors:l,isDirty:u}}=ia({productName:`Widget ${X()}`,item:{unitPrice:0,quantity:1},subtotal:0,tax:0,total:0},{validator:e=>({productName:q(e.productName).prepare(`trim`).required().minLength(2).getError(),item:{unitPrice:oa(e.item.unitPrice).required().positive().getError(),quantity:oa(e.item.quantity).required().integer().min(1).max(100).getError()}}),effect:({property:e})=>{(e===`item.unitPrice`||e===`item.quantity`)&&(s.subtotal=s.item.unitPrice*s.item.quantity,s.tax=s.subtotal*.08,s.total=s.subtotal+s.tax)}}),d=()=>{s.productName=`Widget ${X()}`,s.item.unitPrice=Ea(10,100),s.item.quantity=Ea(1,10)},f=e=>`$${e.toFixed(2)}`;ba(e,{description:`Uses the effect callback to automatically compute derived values like subtotals, taxes, and totals.`,title:`Calculated Fields Demo`,main:e=>{var t=co(),a=I(t);Ta(a,{get hasErrors(){return n()},get isDirty(){return r()}});var o=L(a,2),c=F(o);{let e=j(()=>i()?.productName);Y(c,{id:`productName`,get error(){return V(e)},label:`Product Name`,placeholder:`Enter product name`,get value(){return s.productName},set value(e){s.productName=e}})}var l=L(c,2),u=F(l);io(u,{subtitle:`nested object`,title:`Item Details`});var d=L(u,2),p=F(d);{let e=j(()=>i()?.item?.unitPrice);Y(p,{id:`unitPrice`,get error(){return V(e)},label:`Unit Price ($)`,min:0,placeholder:`0.00`,step:.01,type:`number`,get value(){return s.item.unitPrice},set value(e){s.item.unitPrice=e}})}var m=L(p,2);{let e=j(()=>i()?.item?.quantity);Y(m,{id:`quantity`,get error(){return V(e)},label:`Quantity`,max:100,min:1,placeholder:`1`,type:`number`,get value(){return s.item.quantity},set value(e){s.item.quantity=e}})}k(d),k(l);var h=L(l,2),g=F(h);io(g,{subtitle:`computed by effect`,title:`Calculated Totals`});var _=L(g,2),v=F(_),y=F(v),b=L(F(y),2),x=F(b,!0);k(b),k(y);var S=L(y,2),C=L(F(S),2),w=F(C,!0);k(C),k(S);var T=L(S,2),E=L(F(T),2),ee=F(E,!0);k(E),k(T),k(v),k(_),k(h),k(o),R((e,t,n)=>{G(x,e),G(w,t),G(ee,n)},[()=>f(s.subtotal),()=>f(s.tax),()=>f(s.total)]),W(e,t)},sidebar:e=>{fa(e,{get data(){return s},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:d})},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=lo(),r=I(n);J(r,{code:`const sourceData = { + productName: '', + item: { unitPrice: 0, quantity: 1 }, + subtotal: 0, tax: 0, total: 0 // Calculated fields (set by effect) +}; + +const TAX_RATE = 0.08; + +const { data, state: { errors, hasErrors, isDirty } } = createSvState(sourceData, { + validator: (source) => ({ + productName: stringValidator(source.productName).prepare('trim').required().minLength(2).getError(), + item: { + unitPrice: numberValidator(source.item.unitPrice).required().positive().getError(), + quantity: numberValidator(source.item.quantity).required().integer().min(1).max(100).getError() + } + }), + effect: ({ property }) => { + if (property === 'item.unitPrice' || property === 'item.quantity') { + data.subtotal = data.item.unitPrice * data.item.quantity; + data.tax = data.subtotal * TAX_RATE; + data.total = data.subtotal + data.tax; + } + } +});`,title:`State Setup with Effect`}),J(L(r,2),{code:`effect: ({ property }) => { + if (property === 'item.unitPrice' || property === 'item.quantity') { + data.subtotal = data.item.unitPrice * data.item.quantity; + data.tax = data.subtotal * TAX_RATE; + data.total = data.subtotal + data.tax; + } +}`,title:`Effect Function`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),o()}var fo=U(` `),po=U(``),mo=U(`
            `);function ho(e,t){var n=mo(),r=F(n),i=F(r),a=L(i),o=e=>{var n=fo(),r=F(n);k(n),R(()=>G(r,`(${t.subtitle??``})`)),W(e,n)};K(a,e=>{t.subtitle&&e(o)});var s=L(a,2),c=e=>{W(e,po())};K(s,e=>{t.isDirty&&e(c)}),k(r),ai(L(r,2),()=>t.children),k(n),R(()=>G(i,`${t.title??``} `)),W(e,n)}var go=U(``),_o=U(`
            `),vo=U(`
            `,1),yo=U(` `,1);function bo(e,t){We(t,!0);let n=()=>A(u,`$hasErrors`,o),r=()=>A(d,`$isDirty`,o),i=()=>A(f,`$isDirtyByField`,o),a=()=>A(l,`$errors`,o),[o,s]=ft(),{data:c,state:{errors:l,hasErrors:u,isDirty:d,isDirtyByField:f}}=ia({name:``,address:{street:``,city:``,zip:``},company:{name:``,department:``,contact:{phone:``,email:``}}},{validator:e=>({name:q(e.name).prepare(`trim`).required().minLength(2).maxLength(50).getError(),address:{street:q(e.address.street).prepare(`trim`).required().minLength(5).getError(),city:q(e.address.city).prepare(`trim`).required().minLength(2).getError(),zip:q(e.address.zip).prepare(`trim`).required().minLength(5).maxLength(10).getError()},company:{name:q(e.company.name).prepare(`trim`).required().minLength(2).getError(),department:q(e.company.department).prepare(`trim`).maxLength(50).getError(),contact:{phone:q(e.company.contact.phone).prepare(`trim`).required().minLength(10).getError(),email:q(e.company.contact.email).prepare(`trim`).required().email().getError()}}})}),p=()=>{c.name=`John ${X()}`,c.address.street=`${Ea(100,9999)} Main Street`,c.address.city=`New York`,c.address.zip=String(Ea(1e4,99999)),c.company.name=`Acme ${X()} Inc`,c.company.department=`Engineering`,c.company.contact.phone=`555-${Ea(100,999)}-${Ea(1e3,9999)}`,c.company.contact.email=`contact@${X()}.com`};ba(e,{description:`Illustrates validating deeply nested object structures with multi-level property paths.`,title:`Nested Objects Demo`,main:e=>{var t=vo(),o=I(t);Ta(o,{get hasErrors(){return n()},get isDirty(){return r()}});var s=L(o,2),l=F(s),u=F(l);io(u,{title:`Personal Info`,children:(e,t)=>{var n=Vr(),r=I(n),a=e=>{W(e,go())};K(r,e=>{i().name&&e(a)}),W(e,n)},$$slots:{default:!0}});var d=L(u,2);{let e=j(()=>a()?.name);Y(d,{id:`name`,get error(){return V(e)},label:`Full Name`,placeholder:`Enter your full name`,get value(){return c.name},set value(e){c.name=e}})}k(l);var f=L(l,2),p=F(f);io(p,{subtitle:`2-level nested`,title:`Address`,children:(e,t)=>{var n=Vr(),r=I(n),a=e=>{W(e,go())};K(r,e=>{i().address&&e(a)}),W(e,n)},$$slots:{default:!0}});var m=L(p,2),h=F(m);{let e=j(()=>a()?.address?.street);Y(h,{id:`street`,get error(){return V(e)},label:`Street`,placeholder:`Enter street address`,get value(){return c.address.street},set value(e){c.address.street=e}})}var g=L(h,2),_=F(g);{let e=j(()=>a()?.address?.city);Y(_,{id:`city`,get error(){return V(e)},label:`City`,placeholder:`Enter city`,get value(){return c.address.city},set value(e){c.address.city=e}})}var v=L(_,2);{let e=j(()=>a()?.address?.zip);Y(v,{id:`zip`,get error(){return V(e)},label:`ZIP Code`,placeholder:`Enter ZIP`,get value(){return c.address.zip},set value(e){c.address.zip=e}})}k(g),k(m),k(f);var y=L(f,2),b=F(y);io(b,{subtitle:`3-level nested`,title:`Company`,children:(e,t)=>{var n=Vr(),r=I(n),a=e=>{W(e,go())};K(r,e=>{i().company&&e(a)}),W(e,n)},$$slots:{default:!0}});var x=L(b,2),S=F(x),C=F(S);{let e=j(()=>a()?.company?.name);Y(C,{id:`company-name`,get error(){return V(e)},label:`Company Name`,placeholder:`Enter company name`,get value(){return c.company.name},set value(e){c.company.name=e}})}var w=L(C,2);{let e=j(()=>a()?.company?.department);Y(w,{id:`department`,get error(){return V(e)},label:`Department`,placeholder:`Enter department`,required:!1,get value(){return c.company.department},set value(e){c.company.department=e}})}k(S),ho(L(S,2),{get isDirty(){return i()[`company.contact`]},subtitle:`3rd level`,title:`Contact Info`,children:(e,t)=>{var n=_o(),r=F(n);{let e=j(()=>a()?.company?.contact?.phone);Y(r,{id:`contact-phone`,get error(){return V(e)},label:`Phone`,placeholder:`Enter phone number`,variant:`nested`,get value(){return c.company.contact.phone},set value(e){c.company.contact.phone=e}})}var i=L(r,2);{let e=j(()=>a()?.company?.contact?.email);Y(i,{id:`contact-email`,get error(){return V(e)},label:`Email`,placeholder:`Enter email address`,type:`email`,variant:`nested`,get value(){return c.company.contact.email},set value(e){c.company.contact.email=e}})}k(n),W(e,n)},$$slots:{default:!0}}),k(x),k(y),k(s),W(e,t)},sidebar:e=>{fa(e,{get data(){return c},get errors(){return a()},get hasErrors(){return n()},get isDirty(){return r()},get isDirtyByField(){return i()},onFill:p,width:`xl:w-96`})},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=yo(),r=I(n);J(r,{code:`const sourceData = { + name: '', + address: { street: '', city: '', zip: '' }, // 2-level nested + company: { // 3-level nested + name: '', + department: '', + contact: { phone: '', email: '' } + } +}; + +const { data, state: { errors, hasErrors, isDirty, isDirtyByField } } = createSvState(sourceData, { + validator: (source) => ({ + name: stringValidator(source.name).prepare('trim').required().minLength(2).maxLength(50).getError(), + address: { + street: stringValidator(source.address.street).prepare('trim').required().minLength(5).getError(), + city: stringValidator(source.address.city).prepare('trim').required().minLength(2).getError(), + zip: stringValidator(source.address.zip).prepare('trim').required().minLength(5).maxLength(10).getError() + }, + company: { + name: stringValidator(source.company.name).prepare('trim').required().minLength(2).getError(), + department: stringValidator(source.company.department).prepare('trim').maxLength(50).getError(), + contact: { + phone: stringValidator(source.company.contact.phone).prepare('trim').required().minLength(10).getError(), + email: stringValidator(source.company.contact.email).prepare('trim').required().email().getError() + } + } + }) +});`,title:`State Setup with Nested Validation`}),J(L(r,2),{code:` + + + + + +`,title:`Nested Form Binding Examples`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),s()}var xo=U(`
            Effect triggered:
            `),So=U(`
            `),Co=U(`
            `),wo=U(` Submitting...`),To=U(`
            `,1),Eo=U(`
            Options

            Reset isDirty after successful action

            Try 500ms and type quickly

            Keep errors until next action

            Current Options
            `),Do=U(` `,1);function Oo(e,t){We(t,!0);let n=()=>A(V(x),`$hasErrors`,s),r=()=>A(V(S),`$isDirty`,s),i=()=>A(V(C),`$actionInProgress`,s),a=()=>A(V(b),`$errors`,s),o=()=>A(V(w),`$actionError`,s),[s,c]=ft(),l=N(!0),u=N(0),d=N(!1),f=N(0),p=N(!1),m=N(void 0),h=N(void 0),g=()=>({name:`User ${X()}`,email:`${X()}@example.com`}),_=e=>ia(g(),{validator:e=>({name:q(e.name).prepare(`trim`).required().minLength(2).maxLength(50).getError(),email:q(e.email).prepare(`trim`).required().email().getError()}),effect:({property:e})=>{P(h,e,!0)},action:async()=>{let e=Ea(100,800);if(await new Promise(t=>setTimeout(t,e)),V(p))throw Error(`Simulated error after ${e}ms`);P(m,`Submitted successfully in ${e}ms!`)},actionCompleted:e=>{e&&P(m,void 0)}},e),v=N(fn(_({resetDirtyOnAction:!0,debounceValidation:0,persistActionError:!1}))),y=()=>{P(h,void 0),P(m,void 0),P(v,_({resetDirtyOnAction:V(l),debounceValidation:V(u),persistActionError:V(d)}),!0),ln(f)},b=j(()=>V(v).state.errors),x=j(()=>V(v).state.hasErrors),S=j(()=>V(v).state.isDirty),C=j(()=>V(v).state.actionInProgress),w=j(()=>V(v).state.actionError),T=()=>{V(v).data.name=`User ${X()}`,V(v).data.email=`${X()}@example.com`},E=()=>{P(m,void 0),V(v).execute()};ba(e,{description:`Interactive playground for configuring createSvState options like debouncing and error persistence.`,title:`Options Demo`,main:e=>{var t=Vr();Jr(I(t),()=>V(f),e=>{var t=To(),s=I(t);Ta(s,{get hasErrors(){return n()},get isDirty(){return r()}});var c=L(s,2),l=e=>{var t=xo(),n=F(t),r=L(F(n));k(n),k(t),R(()=>G(r,` property "${V(h)??``}" changed`)),W(e,t)};K(c,e=>{V(h)&&e(l)});var u=L(c,2),d=F(u);{let e=j(()=>a()?.name);Y(d,{id:`name`,get disabled(){return i()},get error(){return V(e)},label:`Name`,placeholder:`Enter name`,get value(){return V(v).data.name},set value(e){V(v).data.name=e}})}var f=L(d,2);{let e=j(()=>a()?.email);Y(f,{id:`email`,get disabled(){return i()},get error(){return V(e)},label:`Email`,placeholder:`Enter email`,type:`email`,get value(){return V(v).data.email},set value(e){V(v).data.email=e}})}var g=L(f,2),_=F(g);gi(_),Pe(2),k(g),k(u);var y=L(u,2),b=e=>{var t=So(),n=F(t),r=L(F(n),2),i=F(r,!0);k(r),k(n),k(t),R(()=>G(i,o().message)),W(e,t)};K(y,e=>{o()&&e(b)});var x=L(y,2),S=e=>{var t=Co(),n=F(t),r=L(F(n),2),i=F(r,!0);k(r),k(n),k(t),R(()=>G(i,V(m))),W(e,t)};K(x,e=>{V(m)&&e(S)});var C=L(x,2),w=F(C),T=F(w),ee=e=>{W(e,wo())},te=e=>{W(e,Br(`Submit`))};K(T,e=>{i()?e(ee):e(te,-1)}),k(w),k(C),R(()=>{_.disabled=i(),w.disabled=n()||i()}),Si(_,()=>V(p),e=>P(p,e)),H(`click`,w,E),W(e,t)}),W(e,t)},sidebar:e=>{var t=Eo(),i=F(t);fa(i,{get data(){return V(v).data},get errors(){return a()},get hasErrors(){return n()},get isDirty(){return r()},onFill:T});var o=L(i,2),s=L(F(o),2),c=F(s),f=F(c),p=F(f);gi(p),Pe(2),k(f),Pe(2),k(c);var m=L(c,2),h=L(F(m),2);gi(h),Pe(2),k(m);var g=L(m,2),_=F(g),b=F(_);gi(b),Pe(2),k(_),Pe(2),k(g);var x=L(g,2);k(s),k(o);var S=L(o,2),C=L(F(S),2),w=F(C),E=F(w);k(w);var ee=L(w,2),te=F(ee);k(ee);var ne=L(ee,2),re=F(ne);k(ne),k(C),k(S),k(t),R(()=>{G(E,`resetDirtyOnAction: ${V(l)??``}`),G(te,`debounceValidation: ${V(u)??``}`),G(re,`persistActionError: ${V(d)??``}`)}),Si(p,()=>V(l),e=>P(l,e)),xi(h,()=>V(u),e=>P(u,e)),Si(b,()=>V(d),e=>P(d,e)),H(`click`,x,y),W(e,t)},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=Do(),r=I(n);J(r,{code:`const { data, execute, state } = createSvState( + sourceData, + { validator, effect, action }, + { + // Reset isDirty to false after successful action + resetDirtyOnAction: true, // default: true + + // Debounce validation by N milliseconds + debounceValidation: 0, // default: 0 (uses queueMicrotask) + + // Keep action errors until next action (not cleared on data change) + persistActionError: false // default: false + } +);`,title:`Options Overview`});var i=L(r,2);J(i,{code:`// With resetDirtyOnAction: true (default) +await execute(); +// isDirty is now false + +// With resetDirtyOnAction: false +await execute(); +// isDirty remains true`,title:`resetDirtyOnAction`});var a=L(i,2);J(a,{code:`// With debounceValidation: 0 (default) +// Validation runs via queueMicrotask after each change + +// With debounceValidation: 500 +// Validation runs 500ms after the last change +// Useful for expensive validators or rapid typing`,title:`debounceValidation`}),J(L(a,2),{code:`// With persistActionError: false (default) +data.name = 'new value'; +// actionError is cleared immediately + +// With persistActionError: true +data.name = 'new value'; +// actionError remains until next execute() call`,title:`persistActionError`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),c()}Nr([`click`]);var ko=U(`Saving...`),Ao=U(``),jo=U(`
            Auto-save triggers 2 seconds after the last change. Analytics events buffer and flush at 10 events or every 10 + seconds.
            `,1),Mo=U(`

            No saves yet — edit the form and wait 2s

            `),No=U(`
          • save
          • `),Po=U(`
              `),Fo=U(`

              No flushes yet

              `),Io=U(`
            • flush
            • `),Lo=U(`
              Autosave Log
              Analytics Buffer
              Buffered:
              Batch size: 10
              Flush interval: 10s
              Tracked: change, action, snapshot
              Flush History
              `),Ro=U(` `,1);function zo(e,t){We(t,!0);let n=()=>A(_,`$hasErrors`,o),r=()=>A(v,`$isDirty`,o),i=()=>A(g,`$errors`,o),a=()=>A(y,`$actionInProgress`,o),[o,s]=ft(),c=N(fn([])),l=N(fn([])),u=N(0),d=ki({save:async e=>{await new Promise(e=>setTimeout(e,300));let t=new Date().toISOString().slice(11,23);P(c,[...V(c),{id:X(),timestamp:t,data:`${e.title} (${e.category})`}],!0)},idle:2e3,onlyWhenDirty:!0}),f=Oi({onFlush:e=>{let t=new Date().toISOString().slice(11,23),n={};for(let t of e)n[t.type]=(n[t.type]??0)+1;let r=Object.entries(n).map(([e,t])=>`${e}:${t}`).join(`, `);P(l,[...V(l),{id:X(),timestamp:t,eventCount:e.length,types:r}],!0)},batchSize:10,flushInterval:1e4,include:[`change`,`action`,`snapshot`]}),{data:p,execute:m,reset:h,state:{errors:g,hasErrors:_,isDirty:v,actionInProgress:y}}=ia({title:``,category:`general`,notes:``},{validator:e=>({title:q(e.title).prepare(`trim`).required().minLength(2).maxLength(100).getError(),category:``,notes:q(e.notes).maxLength(500).getError()}),effect:({snapshot:e,property:t})=>{e(`Changed ${t.charAt(0).toUpperCase()+t.slice(1)}`)},action:async()=>{await new Promise(e=>setTimeout(e,500))}},{plugins:[d,f]}),b=()=>{p.title=`Article ${X()}`,p.category=`tech`,p.notes=`Some interesting notes about the topic that should pass validation.`};Mn(()=>{let e=setInterval(()=>{P(u,f.eventCount(),!0)},500);return()=>clearInterval(e)}),ba(e,{description:`Auto-save with idle timer (autosavePlugin) and batched event analytics (analyticsPlugin).`,title:`Plugin: Autosave & Analytics`,main:e=>{var t=jo(),o=I(t);Ta(o,{get hasErrors(){return n()},get isDirty(){return r()}});var s=L(o,2),l=F(s),g=F(l);k(l);var _=L(l,2),v=F(_);k(_);var y=L(_,2),b=e=>{W(e,ko())},x=j(()=>d.isSaving());K(y,e=>{V(x)&&e(b)}),k(s);var S=L(s,4),C=F(S);{let e=j(()=>i()?.title);Y(C,{id:`title`,get error(){return V(e)},label:`Title`,placeholder:`Enter article title`,get value(){return p.title},set value(e){p.title=e}})}var w=L(C,2),T=L(F(w),2),E=F(T);E.value=E.__value=`general`;var ee=L(E);ee.value=ee.__value=`tech`;var te=L(ee);te.value=te.__value=`science`;var ne=L(te);ne.value=ne.__value=`culture`,k(T),k(w);var re=L(w,2);{let e=j(()=>i()?.notes);Qa(re,{id:`notes`,get error(){return V(e)},label:`Notes`,placeholder:`Write your notes (max 500 chars)`,rows:4,get value(){return p.notes},set value(e){p.notes=e}})}k(S);var ie=L(S,2),ae=F(ie),oe=F(ae,!0);k(ae);var se=L(ae,2),ce=L(se,2),le=L(ce,2),ue=e=>{var t=Ao();H(`click`,t,h),W(e,t)};K(le,e=>{r()&&e(ue)}),k(ie),R(()=>{G(g,`${V(c).length??``} Save${V(c).length===1?``:`s`}`),G(v,`${V(u)??``} Buffered Event${V(u)===1?``:`s`}`),ae.disabled=n()||a(),G(oe,a()?`Submitting...`:`Submit`)}),di(T,()=>p.category,e=>p.category=e),H(`click`,ae,()=>m()),H(`click`,se,()=>d.saveNow()),H(`click`,ce,()=>f.flush()),W(e,t)},sidebar:e=>{var t=Lo(),a=F(t);fa(a,{get data(){return p},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:b,width:`xl:w-96`});var o=L(a,2),s=L(F(o),2),d=e=>{W(e,Mo())},f=e=>{var t=Po();$r(t,21,()=>V(c),e=>e.id,(e,t)=>{var n=No(),r=L(F(n),2),i=F(r,!0);k(r);var a=L(r,2),o=F(a,!0);k(a),k(n),R(()=>{G(i,V(t).data),G(o,V(t).timestamp)}),W(e,n)}),k(t),W(e,t)};K(s,e=>{V(c).length===0?e(d):e(f,-1)}),k(o);var m=L(o,2),h=L(F(m),2),g=F(h),_=L(F(g));k(g),Pe(6),k(h),k(m);var v=L(m,2),y=L(F(v),2),x=e=>{W(e,Fo())},S=e=>{var t=Po();$r(t,21,()=>V(l),e=>e.id,(e,t)=>{var n=Io(),r=L(F(n),2),i=F(r);k(r);var a=L(r,2),o=F(a,!0);k(a),k(n),R(()=>{G(i,`${V(t).eventCount??``} event${V(t).eventCount===1?``:`s`} (${V(t).types??``})`),G(o,V(t).timestamp)}),W(e,n)}),k(t),W(e,t)};K(y,e=>{V(l).length===0?e(x):e(S,-1)}),k(v),k(t),R(()=>G(_,` ${V(u)??``} event${V(u)===1?``:`s`}`)),W(e,t)},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=Ro(),r=I(n);J(r,{code:`import { createSvState, autosavePlugin, analyticsPlugin } from 'svstate'; + +const autosave = autosavePlugin({ + save: async (data) => { + await fetch('/api/save', { + method: 'POST', + body: JSON.stringify(data) + }); + }, + idle: 2000, // Save 2s after last change + onlyWhenDirty: true // Skip save if nothing changed +}); + +const analytics = analyticsPlugin({ + onFlush: (events) => { + sendToAnalytics(events); // Your analytics endpoint + }, + batchSize: 10, // Flush after 10 events + flushInterval: 10000, // Or every 10 seconds + include: ['change', 'action', 'snapshot'] // Filter event types +}); + +const { data, execute, state } = createSvState( + initialData, actuators, + { plugins: [autosave, analytics] } +);`,title:`autosavePlugin + analyticsPlugin Setup`}),J(L(r,2),{code:`// autosavePlugin API +autosave.saveNow(); // Force immediate save +autosave.isSaving(); // Check if currently saving + +// analyticsPlugin API +analytics.flush(); // Force flush buffered events +analytics.eventCount(); // Number of buffered events`,title:`Plugin API`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),s()}Nr([`click`]);var Bo=U(``),Vo=U(`
              `,1),Ho=U(`

              No events yet — interact with the form

              `),Uo=U(`
            • `),Wo=U(`
                `),Go=U(`
                Event Log
                `),Ko=U(` `,1);function qo(e,t){We(t,!0);let n=()=>A(g,`$hasErrors`,s),r=()=>A(_,`$isDirty`,s),i=()=>A(h,`$errors`,s),a=()=>A(y,`$actionInProgress`,s),o=()=>A(v,`$snapshots`,s),[s,c]=ft(),l=N(fn([])),u=(e,t)=>{let n=new Date().toISOString().slice(11,23);P(l,[...V(l),{id:X(),type:e,message:t,timestamp:n}],!0)},{data:d,execute:f,reset:p,rollback:m,state:{errors:h,hasErrors:g,isDirty:_,snapshots:v,actionInProgress:y}}=ia({name:``,email:``,message:``},{validator:e=>({name:q(e.name).prepare(`trim`).required().minLength(2).maxLength(50).getError(),email:q(e.email).prepare(`trim`).required().email().getError(),message:q(e.message).prepare(`trim`).required().minLength(5).getError()}),effect:({snapshot:e,property:t})=>{e(`Changed ${t.charAt(0).toUpperCase()+t.slice(1)}`)},action:async()=>{await new Promise(e=>setTimeout(e,500))}},{plugins:[ji({name:`demo-devtools`,enabled:!0,logValidation:!0}),{name:`log-mirror`,onChange(e){u(`change`,`${e.property}: "${e.oldValue}" → "${e.currentValue}"`)},onValidation(e){u(`validation`,e?`Has errors`:`Valid`)},onSnapshot(e){u(`snapshot`,e.title)},onAction(e){e.phase===`before`?u(`action`,`Action started`):u(`action`,e.error?`Action failed: ${e.error.message}`:`Action completed`)},onRollback(e){u(`rollback`,`Rolled back to: ${e.title}`)},onReset(){u(`reset`,`State reset to initial`)}}]}),b=()=>{d.name=`John Doe ${X()}`,d.email=`john.${X()}@example.com`,d.message=`Hello, this is a test message for the devtools demo.`},x=()=>{P(l,[],!0)},S={change:`bg-blue-100 text-blue-800`,validation:`bg-yellow-100 text-yellow-800`,snapshot:`bg-purple-100 text-purple-800`,action:`bg-green-100 text-green-800`,rollback:`bg-amber-100 text-amber-800`,reset:`bg-red-100 text-red-800`};ba(e,{description:`Shows devtoolsPlugin console logging and a custom log-mirror plugin that captures all events in-page.`,title:`Plugin: Devtools`,main:e=>{var t=Vo(),s=I(t);Ta(s,{get hasErrors(){return n()},get isDirty(){return r()}});var c=L(s,2),l=F(c);{let e=j(()=>i()?.name);Y(l,{id:`name`,get error(){return V(e)},label:`Name`,placeholder:`Enter your name`,get value(){return d.name},set value(e){d.name=e}})}var u=L(l,2);{let e=j(()=>i()?.email);Y(u,{id:`email`,get error(){return V(e)},label:`Email`,placeholder:`Enter your email`,type:`email`,get value(){return d.email},set value(e){d.email=e}})}var h=L(u,2);{let e=j(()=>i()?.message);Qa(h,{id:`message`,get error(){return V(e)},label:`Message`,placeholder:`Enter a message (min 5 chars)`,required:!0,get value(){return d.message},set value(e){d.message=e}})}k(c);var g=L(c,2),_=F(g),v=F(_,!0);k(_);var y=L(_,2),b=L(y,2),x=e=>{var t=Bo();H(`click`,t,p),W(e,t)};K(b,e=>{r()&&e(x)}),k(g),R(()=>{_.disabled=n()||a(),G(v,a()?`Submitting...`:`Submit`),y.disabled=o().length<=1}),H(`click`,_,()=>f()),H(`click`,y,()=>m()),W(e,t)},sidebar:e=>{var t=Go(),a=F(t);fa(a,{get data(){return d},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:b,width:`xl:w-96`});var o=L(a,2),s=F(o),c=L(F(s),2);k(s);var u=L(s,2),f=e=>{W(e,Ho())},p=e=>{var t=Wo();$r(t,21,()=>V(l),e=>e.id,(e,t)=>{var n=Uo(),r=F(n),i=F(r,!0);k(r);var a=L(r,2),o=F(a,!0);k(a);var s=L(a,2),c=F(s,!0);k(s),k(n),R(()=>{ci(r,1,`mt-0.5 flex-shrink-0 rounded px-1.5 py-0.5 text-[10px] font-medium ${S[V(t).type]??``}`),G(i,V(t).type),G(o,V(t).message),G(c,V(t).timestamp)}),W(e,n)}),k(t),W(e,t)};K(u,e=>{V(l).length===0?e(f):e(p,-1)}),k(o),k(t),H(`click`,c,x),W(e,t)},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=Ko(),r=I(n);J(r,{code:`import { createSvState, devtoolsPlugin } from 'svstate'; + +const { data, execute, reset, rollback, state } = createSvState( + { name: '', email: '', message: '' }, + { + validator: (source) => ({ /* ... */ }), + effect: ({ snapshot, property }) => { + snapshot(\`Changed \${property}\`); + }, + action: async () => { await saveToServer(); } + }, + { + plugins: [ + devtoolsPlugin({ + name: 'my-form', // Label in console + enabled: true, // Auto-disabled in production + collapsed: true, // Console groups collapsed + logValidation: true // Also log validation events + }) + ] + } +);`,title:`devtoolsPlugin Setup`}),J(L(r,2),{code:`// devtoolsPlugin logs these events to the console: +// - onChange: property changes with old/new values +// - onValidation: validation results (if logValidation: true) +// - onSnapshot: snapshot creation with title +// - onAction: action start/complete/error +// - onRollback: rollback with target snapshot title +// - onReset: state reset events`,title:`What Gets Logged`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),c()}Nr([`click`]);var Jo=U(`Restored from storage`),Yo=U(`Fresh state`),Xo=U(``),Zo=U(`
                Try: Reload the page to see persistence. Open this page in another tab to see cross-tab sync.
                `,1),Qo=U(`
                Persistence Info
                Restored:
                Key: svstate-demo-settings
                Excluded: notifications
                Raw localStorage
                 
                Sync Info
                Channel: svstate-demo-sync
                Throttle: 200ms
                Merge: overwrite (default)
                `),$o=U(` `,1);function es(e,t){We(t,!0);let n=()=>A(d,`$hasErrors`,a),r=()=>A(f,`$isDirty`,a),i=()=>A(u,`$errors`,a),[a,o]=ft(),s=Bi({key:`svstate-demo-settings`,throttle:300,exclude:[`notifications`]}),{data:c,reset:l,state:{errors:u,hasErrors:d,isDirty:f}}=ia({username:``,theme:`light`,fontSize:14,notifications:!0},{validator:e=>({username:q(e.username).prepare(`trim`).required().minLength(2).maxLength(30).getError(),theme:``,fontSize:``,notifications:``})},{plugins:[s,Ki({key:`svstate-demo-sync`,throttle:200})]}),p=s.isRestored(),m=()=>{s.clearPersistedState(),l()},h=()=>{c.username=`demo_user`,c.theme=`dark`,c.fontSize=16,c.notifications=!1},g=N(``);Mn(()=>{c.username,c.theme,c.fontSize,c.notifications;let e=setTimeout(()=>{P(g,localStorage.getItem(`svstate-demo-settings`)??`(empty)`,!0)},500);return()=>clearTimeout(e)}),ba(e,{description:`Settings form with persistPlugin (localStorage) and syncPlugin (cross-tab sync via BroadcastChannel).`,title:`Plugin: Persist & Sync`,main:e=>{var t=Zo(),a=I(t);Ta(a,{get hasErrors(){return n()},get isDirty(){return r()}});var o=L(a,2),s=F(o),u=e=>{W(e,Jo())},d=e=>{W(e,Yo())};K(s,e=>{p?e(u):e(d,-1)}),k(o);var f=L(o,4),h=F(f);{let e=j(()=>i()?.username);Y(h,{id:`username`,get error(){return V(e)},label:`Username`,placeholder:`Enter username`,get value(){return c.username},set value(e){c.username=e}})}var g=L(h,2),_=L(F(g),2),v=F(_);v.value=v.__value=`light`;var y=L(v);y.value=y.__value=`dark`;var b=L(y);b.value=b.__value=`system`,k(_),k(g);var x=L(g,2);Y(x,{id:`fontSize`,label:`Font Size`,max:32,min:8,step:1,type:`number`,get value(){return c.fontSize},set value(e){c.fontSize=e}});var S=L(x,2),C=F(S),w=F(C);gi(w),Pe(4),k(C),k(S),k(f);var T=L(f,2),E=F(T),ee=L(E,2),te=e=>{var t=Xo();H(`click`,t,l),W(e,t)};K(ee,e=>{r()&&e(te)}),k(T),di(_,()=>c.theme,e=>c.theme=e),Si(w,()=>c.notifications,e=>c.notifications=e),H(`click`,E,m),W(e,t)},sidebar:e=>{var t=Qo(),a=F(t);fa(a,{get data(){return c},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:h,width:`xl:w-96`});var o=L(a,2),s=L(F(o),2),l=F(s),u=L(F(l));k(l),Pe(4),k(s),k(o);var d=L(o,2),f=L(F(d),2),m=F(f,!0);k(f),k(d),Pe(2),k(t),R(()=>{G(u,` ${p??``}`),G(m,V(g))}),W(e,t)},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=$o(),r=I(n);J(r,{code:`import { createSvState, persistPlugin, syncPlugin } from 'svstate'; + +const persist = persistPlugin({ + key: 'svstate-demo-settings', + throttle: 300, + exclude: ['notifications'] // Don't persist this field +}); + +const sync = syncPlugin({ + key: 'svstate-demo-sync', + throttle: 200 +}); + +const { data, reset, state } = createSvState( + { username: '', theme: 'light', fontSize: 14, notifications: true }, + { validator: (source) => ({ /* ... */ }) }, + { plugins: [persist, sync] } +);`,title:`persistPlugin + syncPlugin Setup`}),J(L(r,2),{code:`// persistPlugin API +persist.isRestored(); // true if data was loaded from storage +persist.clearPersistedState(); // Remove stored data + +// syncPlugin: automatic cross-tab sync via BroadcastChannel +// Changes in one tab appear in all other tabs with same key`,title:`Plugin API`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),o()}Nr([`click`]);var ts=U(``),ns=U(`
                Max: 10
                `,1),rs=U(`

                No snapshots yet

                `),is=U(`
              • `),as=U(`
                  `),os=U(`

                  No redo entries — undo something first

                  `),ss=U(`
                • `),cs=U(`
                  Snapshot History
                  Redo Stack
                  `),ls=U(` `,1);function us(e,t){We(t,!0);let n=()=>A(m,`$hasErrors`,o),r=()=>A(h,`$isDirty`,o),i=()=>A(g,`$snapshots`,o),a=()=>A(p,`$errors`,o),[o,s]=ft(),c=qi(),l=e=>e.charAt(0).toUpperCase()+e.slice(1).replaceAll(/([A-Z])/g,` $1`),{data:u,reset:d,rollback:f,state:{errors:p,hasErrors:m,isDirty:h,snapshots:g}}=ia({title:`My Document`,content:``,priority:`medium`},{validator:e=>({title:q(e.title).prepare(`trim`).required().minLength(2).maxLength(100).getError(),content:q(e.content).prepare(`trim`).required().minLength(10).getError(),priority:``}),effect:({snapshot:e,property:t})=>{e(`Changed ${l(t)}`)}},{maxSnapshots:10,plugins:[c]}),_=()=>{u.title=`Project Report ${X()}`,u.content=`This is a detailed document with enough content to pass validation requirements.`,u.priority=`high`},v=N(fn(lt(c.redoStack)));Mn(()=>c.redoStack.subscribe(e=>{P(v,e,!0)})),ba(e,{description:`Combines the built-in snapshot/rollback system with the undoRedoPlugin for full undo/redo support.`,title:`Plugin: Undo/Redo`,main:e=>{var t=ns(),o=I(t);Ta(o,{get hasErrors(){return n()},get isDirty(){return r()}});var s=L(o,2),l=F(s),p=F(l);k(l);var m=L(l,2),h=F(m);k(m),Pe(2),k(s);var g=L(s,2),_=F(g);{let e=j(()=>a()?.title);Y(_,{id:`title`,get error(){return V(e)},label:`Title`,placeholder:`Enter document title`,get value(){return u.title},set value(e){u.title=e}})}var y=L(_,2);{let e=j(()=>a()?.content);Qa(y,{id:`content`,get error(){return V(e)},label:`Content`,placeholder:`Write your document content (min 10 chars)`,required:!0,rows:4,get value(){return u.content},set value(e){u.content=e}})}var b=L(y,2),x=L(F(b),2),S=F(x);S.value=S.__value=`low`;var C=L(S);C.value=C.__value=`medium`;var w=L(C);w.value=w.__value=`high`;var T=L(w);T.value=T.__value=`critical`,k(x),k(b),k(g);var E=L(g,2),ee=F(E),te=L(ee,2),ne=L(te,2),re=e=>{var t=ts();H(`click`,t,d),W(e,t)};K(ne,e=>{r()&&e(re)}),k(E),R(()=>{G(p,`${i().length??``} Snapshot${i().length===1?``:`s`}`),G(h,`${V(v).length??``} Redo${V(v).length===1?``:`s`}`),ee.disabled=i().length<=1,te.disabled=V(v).length===0}),di(x,()=>u.priority,e=>u.priority=e),H(`click`,ee,()=>f()),H(`click`,te,()=>c.redo()),W(e,t)},sidebar:e=>{var t=cs(),o=F(t);fa(o,{get data(){return u},get errors(){return a()},get hasErrors(){return n()},get isDirty(){return r()},onFill:_,width:`xl:w-96`});var s=L(o,2),c=L(F(s),2),l=e=>{W(e,rs())},d=e=>{var t=as();$r(t,5,i,Yr,(e,t,n)=>{var r=is(),i=F(r);i.textContent=n+1;var a=L(i,2),o=F(a,!0);k(a),k(r),R(()=>G(o,V(t).title)),W(e,r)}),k(t),W(e,t)};K(c,e=>{i().length===0?e(l):e(d,-1)}),k(s);var f=L(s,2),p=L(F(f),2),m=e=>{W(e,os())},h=e=>{var t=as();$r(t,21,()=>V(v),Yr,(e,t,n)=>{var r=ss(),i=F(r);i.textContent=n+1;var a=L(i,2),o=F(a,!0);k(a),k(r),R(()=>G(o,V(t).title)),W(e,r)}),k(t),W(e,t)};K(p,e=>{V(v).length===0?e(m):e(h,-1)}),k(f),k(t),W(e,t)},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=ls(),r=I(n);J(r,{code:`import { createSvState, undoRedoPlugin } from 'svstate'; + +const undoRedo = undoRedoPlugin(); + +const { data, reset, rollback, state } = createSvState( + { title: 'My Document', content: '', priority: 'medium' }, + { + validator: (source) => ({ /* ... */ }), + effect: ({ snapshot, property }) => { + snapshot(\`Changed \${property}\`); + } + }, + { maxSnapshots: 10, plugins: [undoRedo] } +);`,title:`Setup with undoRedoPlugin`}),J(L(r,2),{code:`// Undo (built-in rollback) +rollback(); + +// Redo (from undoRedoPlugin) +undoRedo.redo(); + +// Check if redo is available +undoRedo.canRedo(); // boolean + +// Subscribe to redo stack +undoRedo.redoStack; // Readable`,title:`Undo/Redo Usage`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),s()}Nr([`click`]);var ds=U(`
                  `),fs=U(`
                  `,1),ps=U(` `,1);function ms(e,t){We(t,!0);let n=()=>A(u,`$hasErrors`,a),r=()=>A(d,`$isDirty`,a),i=()=>A(l,`$errors`,a),[a,o]=ft(),{data:s,reset:c,state:{errors:l,hasErrors:u,isDirty:d}}=ia({firstName:`Alice`,lastName:`Smith`,email:`alice.smith@example.com`,phone:``,bio:``},{validator:e=>({firstName:q(e.firstName).prepare(`trim`).required().minLength(2).maxLength(30).getError(),lastName:q(e.lastName).prepare(`trim`).required().minLength(2).maxLength(30).getError(),email:q(e.email).prepare(`trim`).required().email().getError(),phone:q(e.phone).prepare(`trim`).required().minLength(10).getError(),bio:q(e.bio).maxLength(200).getError()})}),f=()=>{s.firstName=`John`,s.lastName=`Doe${X()}`,s.email=`john.doe.${X()}@example.com`,s.phone=`555-${X().slice(0,3)}-${X().slice(0,4)}`,s.bio=`Software developer with a passion for clean code.`};ba(e,{description:`Demonstrates the reset() function to restore state back to its initial values.`,title:`Reset Demo`,main:e=>{var t=fs(),a=I(t);Ta(a,{get hasErrors(){return n()},get isDirty(){return r()}});var o=L(a,2),l=F(o);{let e=j(()=>i()?.firstName);Y(l,{id:`firstName`,get error(){return V(e)},label:`First Name`,placeholder:`Enter first name`,get value(){return s.firstName},set value(e){s.firstName=e}})}var u=L(l,2);{let e=j(()=>i()?.lastName);Y(u,{id:`lastName`,get error(){return V(e)},label:`Last Name`,placeholder:`Enter last name`,get value(){return s.lastName},set value(e){s.lastName=e}})}var d=L(u,2);{let e=j(()=>i()?.email);Y(d,{id:`email`,get error(){return V(e)},label:`Email`,placeholder:`Enter email`,type:`email`,get value(){return s.email},set value(e){s.email=e}})}var f=L(d,2);{let e=j(()=>i()?.phone);Y(f,{id:`phone`,get error(){return V(e)},label:`Phone`,placeholder:`555-123-4567`,get value(){return s.phone},set value(e){s.phone=e}})}var p=L(f,2);{let e=j(()=>i()?.bio);Qa(p,{id:`bio`,get error(){return V(e)},label:`Bio`,placeholder:`Tell us about yourself`,required:!1,get value(){return s.bio},set value(e){s.bio=e}})}k(o);var m=L(o,2),h=e=>{var t=ds(),n=F(t);k(t),H(`click`,n,c),W(e,t)};K(m,e=>{r()&&e(h)}),W(e,t)},sidebar:e=>{fa(e,{get data(){return s},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},onFill:f})},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=ps(),r=I(n);J(r,{code:`const sourceData = { + firstName: 'Alice', + lastName: 'Smith', + email: 'alice.smith@example.com', + phone: '', + bio: '' +}; + +const { data, reset, state: { errors, hasErrors, isDirty } } = createSvState(sourceData, { + validator: (source) => ({ + firstName: stringValidator(source.firstName).prepare('trim').required().minLength(2).maxLength(30).getError(), + lastName: stringValidator(source.lastName).prepare('trim').required().minLength(2).maxLength(30).getError(), + email: stringValidator(source.email).prepare('trim').required().email().getError(), + phone: stringValidator(source.phone).prepare('trim').required().minLength(10).getError(), + bio: stringValidator(source.bio).maxLength(200).getError() + }) +});`,title:`State Setup with Reset`}),J(L(r,2),{code:` +{#if $isDirty} + +{/if} + + +`,title:`Conditional Reset Button`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),o()}Nr([`click`]);var hs=U(``),gs=U(`
                  Max: 5
                  `,1),_s=U(`

                  No snapshots yet

                  `),vs=U(`
                • `),ys=U(`
                    `),bs=U(`
                    Snapshot History
                    `),xs=U(` `,1);function Ss(e,t){We(t,!0);let n=()=>A(h,`$hasErrors`,o),r=()=>A(g,`$isDirty`,o),i=()=>A(_,`$snapshots`,o),a=()=>A(m,`$errors`,o),[o,s]=ft(),c={firstName:`Alice`,lastName:`Smith`,email:`alice.smith@example.com`,phone:``,bio:``},l=e=>e.charAt(0).toUpperCase()+e.slice(1).replaceAll(/([A-Z])/g,` $1`),{data:u,reset:d,rollback:f,rollbackTo:p,state:{errors:m,hasErrors:h,isDirty:g,snapshots:_}}=ia(c,{validator:e=>({firstName:q(e.firstName).prepare(`trim`).required().minLength(2).maxLength(30).getError(),lastName:q(e.lastName).prepare(`trim`).required().minLength(2).maxLength(30).getError(),email:q(e.email).prepare(`trim`).required().email().getError(),phone:q(e.phone).prepare(`trim`).required().minLength(10).getError(),bio:q(e.bio).maxLength(200).getError()}),effect:({snapshot:e,property:t})=>{e(`Changed ${l(t)}`)}},{maxSnapshots:5}),v=()=>{u.firstName=`John`,u.lastName=`Doe${X()}`,u.email=`john.doe.${X()}@example.com`,u.phone=`555-${X().slice(0,3)}-${X().slice(0,4)}`,u.bio=`Software developer with a passion for clean code.`};ba(e,{description:`Shows snapshot creation for undo functionality with rollback(), rollbackTo(), and maxSnapshots support.`,title:`Snapshot & Rollback Demo`,main:e=>{var t=gs(),o=I(t);Ta(o,{get hasErrors(){return n()},get isDirty(){return r()}});var s=L(o,2),c=F(s),l=F(c);k(c),Pe(2),k(s);var m=L(s,2),h=F(m);{let e=j(()=>a()?.firstName);Y(h,{id:`firstName`,get error(){return V(e)},label:`First Name`,placeholder:`Enter first name`,get value(){return u.firstName},set value(e){u.firstName=e}})}var g=L(h,2);{let e=j(()=>a()?.lastName);Y(g,{id:`lastName`,get error(){return V(e)},label:`Last Name`,placeholder:`Enter last name`,get value(){return u.lastName},set value(e){u.lastName=e}})}var _=L(g,2);{let e=j(()=>a()?.email);Y(_,{id:`email`,get error(){return V(e)},label:`Email`,placeholder:`Enter email`,type:`email`,get value(){return u.email},set value(e){u.email=e}})}var v=L(_,2);{let e=j(()=>a()?.phone);Y(v,{id:`phone`,get error(){return V(e)},label:`Phone`,placeholder:`555-123-4567`,get value(){return u.phone},set value(e){u.phone=e}})}var y=L(v,2);{let e=j(()=>a()?.bio);Qa(y,{id:`bio`,get error(){return V(e)},label:`Bio`,placeholder:`Tell us about yourself`,required:!1,get value(){return u.bio},set value(e){u.bio=e}})}k(m);var b=L(m,2),x=F(b),S=L(x,2),C=L(S,2),w=e=>{var t=hs();H(`click`,t,d),W(e,t)};K(C,e=>{r()&&e(w)}),k(b),R(()=>{G(l,`${i().length??``} Snapshot${i().length===1?``:`s`}`),x.disabled=i().length<=1,S.disabled=i().length<=1}),H(`click`,x,()=>f()),H(`click`,S,()=>p(`Initial`)),W(e,t)},sidebar:e=>{var t=bs(),o=F(t);fa(o,{get data(){return u},get errors(){return a()},get hasErrors(){return n()},get isDirty(){return r()},onFill:v,width:`xl:w-96`});var s=L(o,2),c=L(F(s),2),l=e=>{W(e,_s())},d=e=>{var t=ys();$r(t,5,i,Yr,(e,t,n)=>{var r=vs(),a=F(r);a.textContent=n+1;var o=L(a,2),s=F(o,!0);k(o),k(r),R(()=>{o.disabled=i().length<=1,G(s,V(t).title)}),H(`click`,o,()=>p(V(t).title)),W(e,r)}),k(t),W(e,t)};K(c,e=>{i().length===0?e(l):e(d,-1)}),k(s),k(t),W(e,t)},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=xs(),r=I(n);J(r,{code:`const sourceData = { + firstName: 'Alice', lastName: 'Smith', email: 'alice.smith@example.com', phone: '', bio: '' +}; + +const { data, reset, rollback, rollbackTo, state: { errors, hasErrors, isDirty, snapshots } } = + createSvState(sourceData, { + validator: (source) => ({ /* validation rules */ }), + effect: ({ snapshot, property }) => { + snapshot(\`Changed \${formatFieldName(property)}\`); + } + }, { maxSnapshots: 5 });`,title:`State Setup with Snapshots & maxSnapshots`});var i=L(r,2);J(i,{code:`// Effect callback creates snapshots on each change +effect: ({ snapshot, property }) => { + snapshot(\`Changed \${property}\`); // Creates undo point + // If same title, replaces last snapshot (debouncing) + // Use snapshot(title, false) to always create new +}`,title:`Effect with Snapshot Creation`}),J(L(i,2),{code:`// Undo last change +rollback(); + +// Undo 3 changes at once +rollback(3); + +// Roll back to a named snapshot (returns true if found) +rollbackTo('Changed First Name'); + +// Roll back to initial state +rollbackTo('Initial'); + +// Reset to initial state (clears all snapshots) +reset();`,title:`Rollback, RollbackTo & Reset Usage`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),s()}Nr([`click`]);var Cs;function Z(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;en?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}var ws=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Ts=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(Cs=globalThis).__zod_globalConfig??(Cs.__zod_globalConfig={});var Es=globalThis.__zod_globalConfig;function Ds(e){return e&&Object.assign(Es,e),Es}function Os(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function ks(e,t){return typeof t==`bigint`?t.toString():t}function As(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function js(e){return e==null}function Ms(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Ns(e,t){let n=e/t,r=Math.round(n),i=2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r){};function Bs(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Vs=As(()=>{if(Es.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function Hs(e){if(Bs(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return Bs(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function Us(e){return Hs(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var Ws=new Set([`string`,`number`,`symbol`]);function Gs(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Ks(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function $(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function qs(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var Js={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function Ys(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return Ks(e,Is(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return Fs(this,`shape`,e),e},checks:[]}))}function Xs(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return Ks(e,Is(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return Fs(this,`shape`,r),r},checks:[]}))}function Zs(e,t){if(!Hs(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return Ks(e,Is(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Fs(this,`shape`,n),n}}))}function Qs(e,t){if(!Hs(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return Ks(e,Is(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Fs(this,`shape`,n),n}}))}function $s(e,t){if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);return Ks(e,Is(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Fs(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function ec(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return Ks(t,Is(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return Fs(this,`shape`,i),i},checks:[]}))}function tc(e,t,n){return Ks(t,Is(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return Fs(this,`shape`,i),i}}))}function nc(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function ac(e){return typeof e==`string`?e:e?.message}function oc(e,t,n){let r=e.message?e.message:ac(e.inst?._zod.def?.error?.(e))??ac(t?.error?.(e))??ac(n.customError?.(e))??ac(n.localeError?.(e))??`Invalid input`,{inst:i,continue:a,input:o,...s}=e;return s.path??=[],s.message=r,t?.reportInput&&(s.input=o),s}function sc(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function cc(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var lc=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,ks,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},uc=Z(`$ZodError`,lc),dc=Z(`$ZodError`,lc,{Parent:Error});function fc(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function pc(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i(t,n,r,i)=>{let a=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new ws;if(o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>oc(e,a,Ds())));throw zs(t,i?.callee),t}return o.value},hc=e=>async(t,n,r,i)=>{let a=r?{...r,async:!0}:{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>oc(e,a,Ds())));throw zs(t,i?.callee),t}return o.value},gc=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new ws;return a.issues.length?{success:!1,error:new(e??uc)(a.issues.map(e=>oc(e,i,Ds())))}:{success:!0,data:a.value}},_c=gc(dc),vc=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>oc(e,i,Ds())))}:{success:!0,data:a.value}},yc=vc(dc),bc=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return mc(e)(t,n,i)},xc=e=>(t,n,r)=>mc(e)(t,n,r),Sc=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return hc(e)(t,n,i)},Cc=e=>async(t,n,r)=>hc(e)(t,n,r),wc=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return gc(e)(t,n,i)},Tc=e=>(t,n,r)=>gc(e)(t,n,r),Ec=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return vc(e)(t,n,i)},Dc=e=>async(t,n,r)=>vc(e)(t,n,r),Oc=/^[cC][0-9a-z]{6,}$/,kc=/^[0-9a-z]+$/,Ac=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,jc=/^[0-9a-vA-V]{20}$/,Mc=/^[A-Za-z0-9]{27}$/,Nc=/^[a-zA-Z0-9_-]{21}$/,Pc=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Fc=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Ic=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Lc=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Rc=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function zc(){return new RegExp(Rc,`u`)}var Bc=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Vc=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Hc=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Uc=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Wc=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Gc=/^[A-Za-z0-9_-]*$/,Kc=/^https?$/,qc=/^\+[1-9]\d{6,14}$/,Jc=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,Yc=RegExp(`^${Jc}$`);function Xc(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Zc(e){return RegExp(`^${Xc(e)}$`)}function Qc(e){let t=Xc({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${Jc}T(?:${r})$`)}var $c=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},el=/^-?\d+$/,tl=/^-?\d+(?:\.\d+)?$/,nl=/^[^A-Z]*$/,rl=/^[^a-z]*$/,il=Z(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),al={number:`number`,bigint:`bigint`,object:`date`},ol=Z(`$ZodCheckLessThan`,(e,t)=>{il.init(e,t);let n=al[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value{(t.inclusive?r.value<=t.value:r.value{il.init(e,t);let n=al[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),cl=Z(`$ZodCheckMultipleOf`,(e,t)=>{il.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):Ns(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),ll=Z(`$ZodCheckNumberFormat`,(e,t)=>{il.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=Js[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=el)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}sa&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),ul=Z(`$ZodCheckMaxLength`,(e,t)=>{var n;il.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!js(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum{let r=n.value;if(r.length<=t.maximum)return;let i=sc(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),dl=Z(`$ZodCheckMinLength`,(e,t)=>{var n;il.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!js(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=sc(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),fl=Z(`$ZodCheckLengthEquals`,(e,t)=>{var n;il.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!js(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=sc(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),pl=Z(`$ZodCheckStringFormat`,(e,t)=>{var n,r;il.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),ml=Z(`$ZodCheckRegex`,(e,t)=>{pl.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),hl=Z(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=nl,pl.init(e,t)}),gl=Z(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=rl,pl.init(e,t)}),_l=Z(`$ZodCheckIncludes`,(e,t)=>{il.init(e,t);let n=Gs(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),vl=Z(`$ZodCheckStartsWith`,(e,t)=>{il.init(e,t);let n=RegExp(`^${Gs(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),yl=Z(`$ZodCheckEndsWith`,(e,t)=>{il.init(e,t);let n=RegExp(`.*${Gs(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),bl=Z(`$ZodCheckOverwrite`,(e,t)=>{il.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),xl=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(` +`).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(` +`))}},Sl={major:4,minor:4,patch:3},Cl=Z(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Sl;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=nc(e),i;for(let a of t){if(a._zod.def.when){if(rc(e)||!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,o=a._zod.check(e);if(o instanceof Promise&&n?.async===!1)throw new ws;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=nc(e,t))});else{if(e.issues.length===t)continue;r||=nc(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(nc(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new ws;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let o=e._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new ws;return o.then(e=>t(e,r,a))}return t(o,r,a)}}Q(e,`~standard`,()=>({validate:t=>{try{let n=_c(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return yc(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),wl=Z(`$ZodString`,(e,t)=>{Cl.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??$c(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),Tl=Z(`$ZodStringFormat`,(e,t)=>{pl.init(e,t),wl.init(e,t)}),El=Z(`$ZodGUID`,(e,t)=>{t.pattern??=Fc,Tl.init(e,t)}),Dl=Z(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=Ic(e)}else t.pattern??=Ic();Tl.init(e,t)}),Ol=Z(`$ZodEmail`,(e,t)=>{t.pattern??=Lc,Tl.init(e,t)}),kl=Z(`$ZodURL`,(e,t)=>{Tl.init(e,t),e._zod.check=n=>{try{let r=n.value.trim();if(!t.normalize&&t.protocol?.source===Kc.source&&!/^https?:\/\//i.test(r)){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}let i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),n.value=t.normalize?i.href:r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),Al=Z(`$ZodEmoji`,(e,t)=>{t.pattern??=zc(),Tl.init(e,t)}),jl=Z(`$ZodNanoID`,(e,t)=>{t.pattern??=Nc,Tl.init(e,t)}),Ml=Z(`$ZodCUID`,(e,t)=>{t.pattern??=Oc,Tl.init(e,t)}),Nl=Z(`$ZodCUID2`,(e,t)=>{t.pattern??=kc,Tl.init(e,t)}),Pl=Z(`$ZodULID`,(e,t)=>{t.pattern??=Ac,Tl.init(e,t)}),Fl=Z(`$ZodXID`,(e,t)=>{t.pattern??=jc,Tl.init(e,t)}),Il=Z(`$ZodKSUID`,(e,t)=>{t.pattern??=Mc,Tl.init(e,t)}),Ll=Z(`$ZodISODateTime`,(e,t)=>{t.pattern??=Qc(t),Tl.init(e,t)}),Rl=Z(`$ZodISODate`,(e,t)=>{t.pattern??=Yc,Tl.init(e,t)}),zl=Z(`$ZodISOTime`,(e,t)=>{t.pattern??=Zc(t),Tl.init(e,t)}),Bl=Z(`$ZodISODuration`,(e,t)=>{t.pattern??=Pc,Tl.init(e,t)}),Vl=Z(`$ZodIPv4`,(e,t)=>{t.pattern??=Bc,Tl.init(e,t),e._zod.bag.format=`ipv4`}),Hl=Z(`$ZodIPv6`,(e,t)=>{t.pattern??=Vc,Tl.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),Ul=Z(`$ZodCIDRv4`,(e,t)=>{t.pattern??=Hc,Tl.init(e,t)}),Wl=Z(`$ZodCIDRv6`,(e,t)=>{t.pattern??=Uc,Tl.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function Gl(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Kl=Z(`$ZodBase64`,(e,t)=>{t.pattern??=Wc,Tl.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{Gl(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function ql(e){if(!Gc.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return Gl(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var Jl=Z(`$ZodBase64URL`,(e,t)=>{t.pattern??=Gc,Tl.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{ql(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),Yl=Z(`$ZodE164`,(e,t)=>{t.pattern??=qc,Tl.init(e,t)});function Xl(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var Zl=Z(`$ZodJWT`,(e,t)=>{Tl.init(e,t),e._zod.check=n=>{Xl(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),Ql=Z(`$ZodNumber`,(e,t)=>{Cl.init(e,t),e._zod.pattern=e._zod.bag.pattern??tl,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),$l=Z(`$ZodNumberFormat`,(e,t)=>{ll.init(e,t),Ql.init(e,t)}),eu=Z(`$ZodUnknown`,(e,t)=>{Cl.init(e,t),e._zod.parse=e=>e}),tu=Z(`$ZodNever`,(e,t)=>{Cl.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function nu(e,t,n){e.issues.length&&t.issues.push(...ic(n,e.issues)),t.value[n]=e.value}var ru=Z(`$ZodArray`,(e,t)=>{Cl.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;enu(t,n,e))):nu(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function iu(e,t,n,r,i,a){let o=n in r;if(e.issues.length){if(i&&a&&!o)return;t.issues.push(...ic(n,e.issues))}if(!o&&!i){e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]});return}e.value===void 0?o&&(t.value[n]=void 0):t.value[n]=e.value}function au(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=qs(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function ou(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optin===`optional`,d=c.optout===`optional`;for(let i in t){if(i===`__proto__`||s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>iu(e,n,i,t,u,d))):iu(a,n,i,t,u,d)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}var su=Z(`$ZodObject`,(e,t)=>{if(Cl.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,"shape",{get:()=>{let n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}let n=As(()=>au(t));Q(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=Bs,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e],r=n._zod.optin===`optional`,i=n._zod.optout===`optional`,a=n._zod.run({value:s[e],issues:[]},o);a instanceof Promise?c.push(a.then(n=>iu(n,t,e,s,r,i))):iu(a,t,e,s,r,i)}return i?ou(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),cu=Z(`$ZodObjectJIT`,(e,t)=>{su.init(e,t);let n=e._zod.parse,r=As(()=>au(t)),i=e=>{let t=new xl([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=Ls(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let r of n.keys){let n=a[r],o=Ls(r),s=e[r],c=s?._zod?.optin===`optional`,l=s?._zod?.optout===`optional`;t.write(`const ${n} = ${i(r)};`),c&&l?t.write(` + if (${n}.issues.length) { + if (${o} in input) { + payload.issues = payload.issues.concat(${n}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${o}, ...iss.path] : [${o}] + }))); + } + } + + if (${n}.value === undefined) { + if (${o} in input) { + newResult[${o}] = undefined; + } + } else { + newResult[${o}] = ${n}.value; + } + + `):c?t.write(` + if (${n}.issues.length) { + payload.issues = payload.issues.concat(${n}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${o}, ...iss.path] : [${o}] + }))); + } + + if (${n}.value === undefined) { + if (${o} in input) { + newResult[${o}] = undefined; + } + } else { + newResult[${o}] = ${n}.value; + } + + `):t.write(` + const ${n}_present = ${o} in input; + if (${n}.issues.length) { + payload.issues = payload.issues.concat(${n}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${o}, ...iss.path] : [${o}] + }))); + } + if (!${n}_present && !${n}.issues.length) { + payload.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: undefined, + path: [${o}] + }); + } + + if (${n}_present) { + if (${n}.value === undefined) { + newResult[${o}] = undefined; + } else { + newResult[${o}] = ${n}.value; + } + } + + `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=Bs,s=!Es.jitless,c=s&&Vs.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?ou([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function lu(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!nc(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>oc(e,r,Ds())))}),t)}var uu=Z(`$ZodUnion`,(e,t)=>{Cl.init(e,t),Q(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),Q(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),Q(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),Q(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>Ms(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>lu(t,r,e,i)):lu(o,r,e,i)}}),du=Z(`$ZodIntersection`,(e,t)=>{Cl.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>pu(e,t,n)):pu(e,i,a)}});function fu(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Hs(e)&&Hs(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=fu(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;re.l&&e.r).map(([e])=>e);if(a.length&&i&&e.issues.push({...i,keys:a}),nc(e))return e;let o=fu(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var mu=Z(`$ZodEnum`,(e,t)=>{Cl.init(e,t);let n=Os(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>Ws.has(typeof e)).map(e=>typeof e==`string`?Gs(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),hu=Z(`$ZodLiteral`,(e,t)=>{if(Cl.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?Gs(e):e?Gs(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),gu=Z(`$ZodTransform`,(e,t)=>{Cl.init(e,t),e._zod.optin=`optional`,e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Ts(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new ws;return n.value=i,n.fallback=!0,n}});function _u(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var vu=Z(`$ZodOptional`,(e,t)=>{Cl.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,Q(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),Q(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Ms(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>_u(e,r)):_u(i,r)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),yu=Z(`$ZodExactOptional`,(e,t)=>{vu.init(e,t),Q(e._zod,`values`,()=>t.innerType._zod.values),Q(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),bu=Z(`$ZodNullable`,(e,t)=>{Cl.init(e,t),Q(e._zod,`optin`,()=>t.innerType._zod.optin),Q(e._zod,`optout`,()=>t.innerType._zod.optout),Q(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Ms(e.source)}|null)$`):void 0}),Q(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),xu=Z(`$ZodDefault`,(e,t)=>{Cl.init(e,t),e._zod.optin=`optional`,Q(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Su(e,t)):Su(r,t)}});function Su(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Cu=Z(`$ZodPrefault`,(e,t)=>{Cl.init(e,t),e._zod.optin=`optional`,Q(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),wu=Z(`$ZodNonOptional`,(e,t)=>{Cl.init(e,t),Q(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>Tu(t,e)):Tu(i,e)}});function Tu(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var Eu=Z(`$ZodCatch`,(e,t)=>{Cl.init(e,t),e._zod.optin=`optional`,Q(e._zod,`optout`,()=>t.innerType._zod.optout),Q(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>oc(e,n,Ds()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>oc(e,n,Ds()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),Du=Z(`$ZodPipe`,(e,t)=>{Cl.init(e,t),Q(e._zod,`values`,()=>t.in._zod.values),Q(e._zod,`optin`,()=>t.in._zod.optin),Q(e._zod,`optout`,()=>t.out._zod.optout),Q(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Ou(e,t.in,n)):Ou(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Ou(e,t.out,n)):Ou(r,t.out,n)}});function Ou(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var ku=Z(`$ZodReadonly`,(e,t)=>{Cl.init(e,t),Q(e._zod,`propValues`,()=>t.innerType._zod.propValues),Q(e._zod,`values`,()=>t.innerType._zod.values),Q(e._zod,`optin`,()=>t.innerType?._zod?.optin),Q(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Au):Au(r)}});function Au(e){return e.value=Object.freeze(e.value),e}var ju=Z(`$ZodCustom`,(e,t)=>{il.init(e,t),Cl.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>Mu(t,n,r,e));Mu(i,n,r,e)}});function Mu(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(cc(e))}}var Nu,Pu=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function Fu(){return new Pu}(Nu=globalThis).__zod_globalRegistry??(Nu.__zod_globalRegistry=Fu());var Iu=globalThis.__zod_globalRegistry;function Lu(e,t){return new e({type:`string`,...$(t)})}function Ru(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...$(t)})}function zu(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...$(t)})}function Bu(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...$(t)})}function Vu(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...$(t)})}function Hu(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...$(t)})}function Uu(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...$(t)})}function Wu(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...$(t)})}function Gu(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...$(t)})}function Ku(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...$(t)})}function qu(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...$(t)})}function Ju(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...$(t)})}function Yu(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...$(t)})}function Xu(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...$(t)})}function Zu(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...$(t)})}function Qu(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...$(t)})}function $u(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...$(t)})}function ed(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...$(t)})}function td(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...$(t)})}function nd(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...$(t)})}function rd(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...$(t)})}function id(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...$(t)})}function ad(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...$(t)})}function od(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...$(t)})}function sd(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...$(t)})}function cd(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...$(t)})}function ld(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...$(t)})}function ud(e,t){return new e({type:`number`,checks:[],...$(t)})}function dd(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...$(t)})}function fd(e){return new e({type:`unknown`})}function pd(e,t){return new e({type:`never`,...$(t)})}function md(e,t){return new ol({check:`less_than`,...$(t),value:e,inclusive:!1})}function hd(e,t){return new ol({check:`less_than`,...$(t),value:e,inclusive:!0})}function gd(e,t){return new sl({check:`greater_than`,...$(t),value:e,inclusive:!1})}function _d(e,t){return new sl({check:`greater_than`,...$(t),value:e,inclusive:!0})}function vd(e,t){return new cl({check:`multiple_of`,...$(t),value:e})}function yd(e,t){return new ul({check:`max_length`,...$(t),maximum:e})}function bd(e,t){return new dl({check:`min_length`,...$(t),minimum:e})}function xd(e,t){return new fl({check:`length_equals`,...$(t),length:e})}function Sd(e,t){return new ml({check:`string_format`,format:`regex`,...$(t),pattern:e})}function Cd(e){return new hl({check:`string_format`,format:`lowercase`,...$(e)})}function wd(e){return new gl({check:`string_format`,format:`uppercase`,...$(e)})}function Td(e,t){return new _l({check:`string_format`,format:`includes`,...$(t),includes:e})}function Ed(e,t){return new vl({check:`string_format`,format:`starts_with`,...$(t),prefix:e})}function Dd(e,t){return new yl({check:`string_format`,format:`ends_with`,...$(t),suffix:e})}function Od(e){return new bl({check:`overwrite`,tx:e})}function kd(e){return Od(t=>t.normalize(e))}function Ad(){return Od(e=>e.trim())}function jd(){return Od(e=>e.toLowerCase())}function Md(){return Od(e=>e.toUpperCase())}function Nd(){return Od(e=>Rs(e))}function Pd(e,t,n){return new e({type:`array`,element:t,...$(n)})}function Fd(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...$(n)})}function Id(e,t){let n=Ld(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(cc(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=t.value,r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(cc(r))}},e(t.value,t)),t);return n}function Ld(e,t){let n=new il({check:`custom`,...$(t)});return n._zod.check=e,n}function Rd(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??Iu,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,external:e?.external??void 0}}function zd(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,zd(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io===`input`&&Hd(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function Bd(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${a}`}}if(t[1]===n)return{ref:`#`};let i=`#/${r}/`,a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+a}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function Vd(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,o[e.defId]=e.def)}e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:Wd(t,`input`,e.processors),output:Wd(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function Hd(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return Hd(r.element,n);if(r.type===`set`)return Hd(r.valueType,n);if(r.type===`lazy`)return Hd(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`)return Hd(r.innerType,n);if(r.type===`intersection`)return Hd(r.left,n)||Hd(r.right,n);if(r.type===`record`||r.type===`map`)return Hd(r.keyType,n)||Hd(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:Hd(r.in,n)||Hd(r.out,n);if(r.type===`object`){for(let e in r.shape)if(Hd(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(Hd(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(Hd(e,n))return!0;return!!(r.rest&&Hd(r.rest,n))}return!1}var Ud=(e,t={})=>n=>{let r=Rd({...n,processors:t});return zd(e,r),Bd(r,e),Vd(r,e)},Wd=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Rd({...i??{},target:a,io:t,processors:n});return zd(e,o),Bd(o,e),Vd(o,e)},Gd={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},Kd=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=Gd[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},qd=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;i.type=typeof s==`string`&&s.includes(`int`)?`integer`:`number`;let d=typeof u==`number`&&u>=(a??-1/0),f=typeof l==`number`&&l<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;d?p?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l:typeof o==`number`&&(i.maximum=o),typeof c==`number`&&(i.multipleOf=c)},Jd=(e,t,n,r)=>{n.not={}},Yd=(e,t,n,r)=>{let i=e._zod.def,a=Os(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},Xd=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0)if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a},Zd=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},Qd=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},$d=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=zd(a.element,t,{...r,path:[...r.path,`items`]})},ef=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=zd(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=zd(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},tf=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>zd(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},nf=(e,t,n,r)=>{let i=e._zod.def,a=zd(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=zd(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},rf=(e,t,n,r)=>{let i=e._zod.def,a=zd(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},af=(e,t,n,r)=>{let i=e._zod.def;zd(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},of=(e,t,n,r)=>{let i=e._zod.def;zd(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},sf=(e,t,n,r)=>{let i=e._zod.def;zd(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},cf=(e,t,n,r)=>{let i=e._zod.def;zd(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},lf=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;zd(o,t,r);let s=t.seen.get(e);s.ref=o},uf=(e,t,n,r)=>{let i=e._zod.def;zd(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},df=(e,t,n,r)=>{let i=e._zod.def;zd(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},ff=Z(`ZodISODateTime`,(e,t)=>{Ll.init(e,t),zf.init(e,t)});function pf(e){return od(ff,e)}var mf=Z(`ZodISODate`,(e,t)=>{Rl.init(e,t),zf.init(e,t)});function hf(e){return sd(mf,e)}var gf=Z(`ZodISOTime`,(e,t)=>{zl.init(e,t),zf.init(e,t)});function _f(e){return cd(gf,e)}var vf=Z(`ZodISODuration`,(e,t)=>{Bl.init(e,t),zf.init(e,t)});function yf(e){return ld(vf,e)}var bf=Z(`ZodError`,(e,t)=>{uc.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>pc(e,t)},flatten:{value:t=>fc(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,ks,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,ks,2)}},isEmpty:{get(){return e.issues.length===0}}})},{Parent:Error}),xf=mc(bf),Sf=hc(bf),Cf=gc(bf),wf=vc(bf),Tf=bc(bf),Ef=xc(bf),Df=Sc(bf),Of=Cc(bf),kf=wc(bf),Af=Tc(bf),jf=Ec(bf),Mf=Dc(bf),Nf=new WeakMap;function Pf(e,t,n){let r=Object.getPrototypeOf(e),i=Nf.get(r);if(i||(i=new Set,Nf.set(r,i)),!i.has(t)){i.add(t);for(let e in n){let t=n[e];Object.defineProperty(r,e,{configurable:!0,enumerable:!1,get(){let n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var Ff=Z(`ZodType`,(e,t)=>(Cl.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:Wd(e,`input`),output:Wd(e,`output`)}}),e.toJSONSchema=Ud(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>xf(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Cf(e,t,n),e.parseAsync=async(t,n)=>Sf(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>wf(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Tf(e,t,n),e.decode=(t,n)=>Ef(e,t,n),e.encodeAsync=async(t,n)=>Df(e,t,n),e.decodeAsync=async(t,n)=>Of(e,t,n),e.safeEncode=(t,n)=>kf(e,t,n),e.safeDecode=(t,n)=>Af(e,t,n),e.safeEncodeAsync=async(t,n)=>jf(e,t,n),e.safeDecodeAsync=async(t,n)=>Mf(e,t,n),Pf(e,`ZodType`,{check(...e){let t=this.def;return this.clone(Is(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Ks(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(Kp(e,t))},superRefine(e,t){return this.check(qp(e,t))},overwrite(e){return this.check(Od(e))},optional(){return Op(this)},exactOptional(){return Ap(this)},nullable(){return Mp(this)},nullish(){return Op(Mp(this))},nonoptional(e){return Rp(this,e)},array(){return mp(this)},or(e){return vp([this,e])},and(e){return bp(this,e)},transform(e){return Hp(this,Ep(e))},default(e){return Pp(this,e)},prefault(e){return Ip(this,e)},catch(e){return Bp(this,e)},pipe(e){return Hp(this,e)},readonly(){return Wp(this)},describe(e){let t=this.clone();return Iu.add(t,{description:e}),t},meta(...e){if(e.length===0)return Iu.get(this);let t=this.clone();return Iu.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get(){return Iu.get(e)?.description},configurable:!0}),e)),If=Z(`_ZodString`,(e,t)=>{wl.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Kd(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,Pf(e,`_ZodString`,{regex(...e){return this.check(Sd(...e))},includes(...e){return this.check(Td(...e))},startsWith(...e){return this.check(Ed(...e))},endsWith(...e){return this.check(Dd(...e))},min(...e){return this.check(bd(...e))},max(...e){return this.check(yd(...e))},length(...e){return this.check(xd(...e))},nonempty(...e){return this.check(bd(1,...e))},lowercase(e){return this.check(Cd(e))},uppercase(e){return this.check(wd(e))},trim(){return this.check(Ad())},normalize(...e){return this.check(kd(...e))},toLowerCase(){return this.check(jd())},toUpperCase(){return this.check(Md())},slugify(){return this.check(Nd())}})}),Lf=Z(`ZodString`,(e,t)=>{wl.init(e,t),If.init(e,t),e.email=t=>e.check(Ru(Bf,t)),e.url=t=>e.check(Wu(Uf,t)),e.jwt=t=>e.check(ad(ip,t)),e.emoji=t=>e.check(Gu(Wf,t)),e.guid=t=>e.check(zu(Vf,t)),e.uuid=t=>e.check(Bu(Hf,t)),e.uuidv4=t=>e.check(Vu(Hf,t)),e.uuidv6=t=>e.check(Hu(Hf,t)),e.uuidv7=t=>e.check(Uu(Hf,t)),e.nanoid=t=>e.check(Ku(Gf,t)),e.guid=t=>e.check(zu(Vf,t)),e.cuid=t=>e.check(qu(Kf,t)),e.cuid2=t=>e.check(Ju(qf,t)),e.ulid=t=>e.check(Yu(Jf,t)),e.base64=t=>e.check(nd(tp,t)),e.base64url=t=>e.check(rd(np,t)),e.xid=t=>e.check(Xu(Yf,t)),e.ksuid=t=>e.check(Zu(Xf,t)),e.ipv4=t=>e.check(Qu(Zf,t)),e.ipv6=t=>e.check($u(Qf,t)),e.cidrv4=t=>e.check(ed($f,t)),e.cidrv6=t=>e.check(td(ep,t)),e.e164=t=>e.check(id(rp,t)),e.datetime=t=>e.check(pf(t)),e.date=t=>e.check(hf(t)),e.time=t=>e.check(_f(t)),e.duration=t=>e.check(yf(t))});function Rf(e){return Lu(Lf,e)}var zf=Z(`ZodStringFormat`,(e,t)=>{Tl.init(e,t),If.init(e,t)}),Bf=Z(`ZodEmail`,(e,t)=>{Ol.init(e,t),zf.init(e,t)}),Vf=Z(`ZodGUID`,(e,t)=>{El.init(e,t),zf.init(e,t)}),Hf=Z(`ZodUUID`,(e,t)=>{Dl.init(e,t),zf.init(e,t)}),Uf=Z(`ZodURL`,(e,t)=>{kl.init(e,t),zf.init(e,t)}),Wf=Z(`ZodEmoji`,(e,t)=>{Al.init(e,t),zf.init(e,t)}),Gf=Z(`ZodNanoID`,(e,t)=>{jl.init(e,t),zf.init(e,t)}),Kf=Z(`ZodCUID`,(e,t)=>{Ml.init(e,t),zf.init(e,t)}),qf=Z(`ZodCUID2`,(e,t)=>{Nl.init(e,t),zf.init(e,t)}),Jf=Z(`ZodULID`,(e,t)=>{Pl.init(e,t),zf.init(e,t)}),Yf=Z(`ZodXID`,(e,t)=>{Fl.init(e,t),zf.init(e,t)}),Xf=Z(`ZodKSUID`,(e,t)=>{Il.init(e,t),zf.init(e,t)}),Zf=Z(`ZodIPv4`,(e,t)=>{Vl.init(e,t),zf.init(e,t)}),Qf=Z(`ZodIPv6`,(e,t)=>{Hl.init(e,t),zf.init(e,t)}),$f=Z(`ZodCIDRv4`,(e,t)=>{Ul.init(e,t),zf.init(e,t)}),ep=Z(`ZodCIDRv6`,(e,t)=>{Wl.init(e,t),zf.init(e,t)}),tp=Z(`ZodBase64`,(e,t)=>{Kl.init(e,t),zf.init(e,t)}),np=Z(`ZodBase64URL`,(e,t)=>{Jl.init(e,t),zf.init(e,t)}),rp=Z(`ZodE164`,(e,t)=>{Yl.init(e,t),zf.init(e,t)}),ip=Z(`ZodJWT`,(e,t)=>{Zl.init(e,t),zf.init(e,t)}),ap=Z(`ZodNumber`,(e,t)=>{Ql.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qd(e,t,n,r),Pf(e,`ZodNumber`,{gt(e,t){return this.check(gd(e,t))},gte(e,t){return this.check(_d(e,t))},min(e,t){return this.check(_d(e,t))},lt(e,t){return this.check(md(e,t))},lte(e,t){return this.check(hd(e,t))},max(e,t){return this.check(hd(e,t))},int(e){return this.check(cp(e))},safe(e){return this.check(cp(e))},positive(e){return this.check(gd(0,e))},nonnegative(e){return this.check(_d(0,e))},negative(e){return this.check(md(0,e))},nonpositive(e){return this.check(hd(0,e))},multipleOf(e,t){return this.check(vd(e,t))},step(e,t){return this.check(vd(e,t))},finite(){return this}});let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function op(e){return ud(ap,e)}var sp=Z(`ZodNumberFormat`,(e,t)=>{$l.init(e,t),ap.init(e,t)});function cp(e){return dd(sp,e)}var lp=Z(`ZodUnknown`,(e,t)=>{eu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function up(){return fd(lp)}var dp=Z(`ZodNever`,(e,t)=>{tu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Jd(e,t,n,r)});function fp(e){return pd(dp,e)}var pp=Z(`ZodArray`,(e,t)=>{ru.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>$d(e,t,n,r),e.element=t.element,Pf(e,`ZodArray`,{min(e,t){return this.check(bd(e,t))},nonempty(e){return this.check(bd(1,e))},max(e,t){return this.check(yd(e,t))},length(e,t){return this.check(xd(e,t))},unwrap(){return this.element}})});function mp(e,t){return Pd(pp,e,t)}var hp=Z(`ZodObject`,(e,t)=>{cu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ef(e,t,n,r),Q(e,`shape`,()=>t.shape),Pf(e,`ZodObject`,{keyof(){return Sp(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:up()})},loose(){return this.clone({...this._zod.def,catchall:up()})},strict(){return this.clone({...this._zod.def,catchall:fp()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return Zs(this,e)},safeExtend(e){return Qs(this,e)},merge(e){return $s(this,e)},pick(e){return Ys(this,e)},omit(e){return Xs(this,e)},partial(...e){return ec(Dp,this,e[0])},required(...e){return tc(Lp,this,e[0])}})});function gp(e,t){return new hp({type:`object`,shape:e??{},...$(t)})}var _p=Z(`ZodUnion`,(e,t)=>{uu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>tf(e,t,n,r),e.options=t.options});function vp(e,t){return new _p({type:`union`,options:e,...$(t)})}var yp=Z(`ZodIntersection`,(e,t)=>{du.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>nf(e,t,n,r)});function bp(e,t){return new yp({type:`intersection`,left:e,right:t})}var xp=Z(`ZodEnum`,(e,t)=>{mu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Yd(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new xp({...t,checks:[],...$(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new xp({...t,checks:[],...$(r),entries:i})}});function Sp(e,t){return new xp({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...$(t)})}var Cp=Z(`ZodLiteral`,(e,t)=>{hu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Xd(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function wp(e,t){return new Cp({type:`literal`,values:Array.isArray(e)?e:[e],...$(t)})}var Tp=Z(`ZodTransform`,(e,t)=>{gu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Qd(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Ts(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(cc(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(cc(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});function Ep(e){return new Tp({type:`transform`,transform:e})}var Dp=Z(`ZodOptional`,(e,t)=>{vu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>df(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Op(e){return new Dp({type:`optional`,innerType:e})}var kp=Z(`ZodExactOptional`,(e,t)=>{yu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>df(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ap(e){return new kp({type:`optional`,innerType:e})}var jp=Z(`ZodNullable`,(e,t)=>{bu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>rf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Mp(e){return new jp({type:`nullable`,innerType:e})}var Np=Z(`ZodDefault`,(e,t)=>{xu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>of(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Pp(e,t){return new Np({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Us(t)}})}var Fp=Z(`ZodPrefault`,(e,t)=>{Cu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>sf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ip(e,t){return new Fp({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():Us(t)}})}var Lp=Z(`ZodNonOptional`,(e,t)=>{wu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>af(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Rp(e,t){return new Lp({type:`nonoptional`,innerType:e,...$(t)})}var zp=Z(`ZodCatch`,(e,t)=>{Eu.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>cf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Bp(e,t){return new zp({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var Vp=Z(`ZodPipe`,(e,t)=>{Du.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>lf(e,t,n,r),e.in=t.in,e.out=t.out});function Hp(e,t){return new Vp({type:`pipe`,in:e,out:t})}var Up=Z(`ZodReadonly`,(e,t)=>{ku.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>uf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Wp(e){return new Up({type:`readonly`,innerType:e})}var Gp=Z(`ZodCustom`,(e,t)=>{ju.init(e,t),Ff.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Zd(e,t,n,r)});function Kp(e,t={}){return Fd(Gp,e,t)}function qp(e,t){return Id(e,t)}var Jp=U(`
                    `,1),Yp=U(` `,1);function Xp(e,t){We(t,!0);let n=()=>A(g,`$hasErrors`,o),r=()=>A(_,`$isDirty`,o),i=()=>A(h,`$errors`,o),a=()=>A(v,`$isDirtyByField`,o),[o,s]=ft(),c=gp({username:Rf().min(3).max(20).regex(/^\S+$/,`Must not contain spaces`),email:Rf().min(1,`Required`).email(),age:op().int().min(18).max(120),website:Rf().url().optional().or(wp(``)),bio:Rf().max(200).optional()});function l(e,t,n){let r=e.safeParse(t);if(r.success)return Object.fromEntries(n.map(e=>[e,``]));let i={};for(let e of r.error.issues){let t=String(e.path[0]);Object.hasOwn(i,t)||(i[t]=e.message)}return Object.fromEntries(n.map(e=>[e,i[e]??``]))}let u=c.pick({username:!0,email:!0,age:!0,website:!0}),d=Object.keys(u.shape),f=[...d,`bio`],p={username:{label:`Username`,placeholder:`Enter username`,type:`text`},email:{label:`Email`,placeholder:`Enter email`,type:`email`},age:{label:`Age`,placeholder:`Enter age`,type:`number`},website:{label:`Website`,placeholder:`https://example.com`,type:`text`}},{data:m,state:{errors:h,hasErrors:g,isDirty:_,isDirtyByField:v}}=ia({username:``,email:``,age:0,website:``,bio:``},{validator:e=>l(c,e,f)}),y=()=>{m.username=`user${X()}`,m.email=`${X()}@example.com`,m.age=Ea(18,65),m.bio=`Hello, I am a demo user!`,m.website=`https://${X()}.com`},b=String.raw`import { z } from 'zod'; + +const userSchema = z.object({ + username: z.string().min(3).max(20).regex(/^\S+$/, 'Must not contain spaces'), + email: z.string().min(1, 'Required').email(), + age: z.number().int().min(18).max(120), + website: z.string().url().optional().or(z.literal('')), + bio: z.string().max(200).optional() +});`;ba(e,{description:`Demonstrates using Zod schemas for validation with svstate, including dynamic form rendering via z.pick() shape keys.`,title:`Zod Integration Demo`,main:e=>{var t=Jp(),o=I(t);Ta(o,{get hasErrors(){return n()},get isDirty(){return r()}});var s=L(o,2),c=F(s);$r(c,16,()=>d,e=>e,(e,t)=>{let n=j(()=>p[t]);{let r=j(()=>i()?.[t]),o=j(()=>t!==`website`);Y(e,{get id(){return t},get error(){return V(r)},get isDirty(){return a()[t]},get label(){return V(n).label},get placeholder(){return V(n).placeholder},get required(){return V(o)},get type(){return V(n).type},get value(){return m[t]},set value(e){m[t]=e}})}});var l=L(c,2);{let e=j(()=>i()?.bio);Qa(l,{id:`bio`,get error(){return V(e)},get isDirty(){return a().bio},label:`Bio`,placeholder:`Tell us about yourself (not in pick subset)`,get value(){return m.bio},set value(e){m.bio=e}})}k(s),W(e,t)},sidebar:e=>{fa(e,{get data(){return m},get errors(){return i()},get hasErrors(){return n()},get isDirty(){return r()},get isDirtyByField(){return a()},onFill:y})},sourceCode:e=>{Ca(e,{children:(e,t)=>{var n=Yp(),r=I(n);J(r,{get code(){return b},title:`Zod Schema Definition`});var i=L(r,2);J(i,{code:`function zodToSvstateErrors(schema, source, fields) { + const result = schema.safeParse(source); + if (result.success) + return Object.fromEntries(fields.map(f => [f, ''])); + + const errorMap = {}; + for (const issue of result.error.issues) { + const key = String(issue.path[0]); + if (!errorMap[key]) errorMap[key] = issue.message; + } + return Object.fromEntries( + fields.map(f => [f, errorMap[f] ?? '']) + ); +} + +const { data, state: { errors, hasErrors } } = createSvState(sourceData, { + validator: (source) => zodToSvstateErrors(userSchema, source, allFields) +});`,title:`Bridge Function (Zod → svstate)`}),J(L(i,2),{code:`// Pick a subset of fields for dynamic rendering +const pickedSchema = userSchema.pick({ username: true, email: true, age: true, website: true }); +const dynamicFields = Object.keys(pickedSchema.shape); + +const fieldMeta = { + username: { label: 'Username', placeholder: 'Enter username', type: 'text' }, + email: { label: 'Email', placeholder: 'Enter email', type: 'email' }, + age: { label: 'Age', placeholder: 'Enter age', type: 'number' }, + website: { label: 'Website', placeholder: 'https://...', type: 'text' }, +}; + +// In template: +{#each dynamicFields as field} + +{/each} + + +`,title:`Dynamic Rendering via z.pick()`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Ge(),s()}var Zp=U(``),Qp=U(`
                    svstate logo

                    svstate

                    A Svelte 5 library that provides a supercharged $state() with deep reactive proxies, validation, snapshot/undo, + and side effects — built for complex, real-world applications.

                    $ npm i svstate
                    `);function $p(e){let t=[{value:`basic-validation`,name:`Basic Validation`},{value:`nested-objects`,name:`Nested Objects`},{value:`array-property`,name:`Array Property`},{value:`calculated-fields`,name:`Calculated Fields`},{value:`calculated-class`,name:`State with Methods`},{value:`reset-demo`,name:`Reset`},{value:`snapshot-demo`,name:`Snapshot & Rollback`},{value:`action-demo`,name:`Action & Error`},{value:`async-validation`,name:`Async Validation`},{value:`options-demo`,name:`Options`},{value:`zod-validation`,name:`Zod Integration`},{value:`plugin-devtools`,name:`Plugin: Devtools`},{value:`plugin-persist-sync`,name:`Plugin: Persist & Sync`},{value:`plugin-undo-redo`,name:`Plugin: Undo/Redo`},{value:`plugin-autosave-analytics`,name:`Plugin: Autosave & Analytics`}],n=N(`basic-validation`),r=`1.5.6`,i=`/svstate`;var a=Qp(),o=F(a),s=F(o),c=L(s,2),l=F(c),u=L(F(l),2),d=F(u);k(u),k(l);var f=L(l,4),p=L(F(f),4);k(f);var m=L(f,2);k(c),k(o);var h=L(o,2),g=F(h),_=F(g),v=L(F(_),2);$r(v,21,()=>t,Yr,(e,t)=>{var n=Zp(),r=F(n,!0);k(n);var i={};R(()=>{G(r,V(t).name),i!==(i=V(t).value)&&(n.value=(n.__value=V(t).value)??``)}),W(e,n)}),k(v),k(_),k(g);var y=L(g,2),b=F(y),x=e=>{to(e,{})},S=e=>{bo(e,{})},C=e=>{Ua(e,{})},w=e=>{uo(e,{})},T=e=>{so(e,{})},E=e=>{ms(e,{})},ee=e=>{Ss(e,{})},te=e=>{Na(e,{})},ne=e=>{Ya(e,{})},re=e=>{Oo(e,{})},ie=e=>{Xp(e,{})},ae=e=>{qo(e,{})},oe=e=>{es(e,{})},se=e=>{us(e,{})},ce=e=>{zo(e,{})};K(b,e=>{V(n)===`basic-validation`?e(x):V(n)===`nested-objects`?e(S,1):V(n)===`array-property`?e(C,2):V(n)===`calculated-fields`?e(w,3):V(n)===`calculated-class`?e(T,4):V(n)===`reset-demo`?e(E,5):V(n)===`snapshot-demo`?e(ee,6):V(n)===`action-demo`?e(te,7):V(n)===`async-validation`?e(ne,8):V(n)===`options-demo`?e(re,9):V(n)===`zod-validation`?e(ie,10):V(n)===`plugin-devtools`?e(ae,11):V(n)===`plugin-persist-sync`?e(oe,12):V(n)===`plugin-undo-redo`?e(se,13):V(n)===`plugin-autosave-analytics`&&e(ce,14)}),k(y),k(h),k(a),R(()=>{_i(s,`src`,`${i}/favicon.png`),G(d,`v${r}`),_i(m,`href`,`${i}/llms.txt`)}),H(`click`,p,()=>navigator.clipboard.writeText(`npm i svstate@${r}`)),di(v,()=>V(n),e=>P(n,e)),W(e,a)}Nr([`click`]),Hr($p,{target:document.querySelector(`#app`)}); \ No newline at end of file diff --git a/docs/assets/index-RzZBKdI5.css b/docs/assets/index-RzZBKdI5.css new file mode 100644 index 0000000..929912e --- /dev/null +++ b/docs/assets/index-RzZBKdI5.css @@ -0,0 +1,2 @@ +/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */ +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.relative{position:relative}.top-9{top:calc(var(--spacing) * 9)}.right-3{right:calc(var(--spacing) * 3)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-2{height:calc(var(--spacing) * 2)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-20{height:calc(var(--spacing) * 20)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-screen{min-height:100vh}.w-2{width:calc(var(--spacing) * 2)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-20{width:calc(var(--spacing) * 20)}.w-full{width:100%}.min-w-0{min-width:0}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-green-200{border-color:var(--color-green-200)}.border-purple-200{border-color:var(--color-purple-200)}.border-red-200{border-color:var(--color-red-200)}.border-red-500{border-color:var(--color-red-500)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-600{background-color:var(--color-amber-600)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-200{background-color:var(--color-blue-200)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-600{background-color:var(--color-orange-600)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-200{background-color:var(--color-purple-200)}.bg-purple-600{background-color:var(--color-purple-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-600{background-color:var(--color-red-600)}.bg-white{background-color:var(--color-white)}.bg-yellow-100{background-color:var(--color-yellow-100)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-800{color:var(--color-blue-800)}.text-blue-900{color:var(--color-blue-900)}.text-emerald-800{color:var(--color-emerald-800)}.text-gray-100{color:var(--color-gray-100)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-800{color:var(--color-green-800)}.text-indigo-800{color:var(--color-indigo-800)}.text-orange-800{color:var(--color-orange-800)}.text-purple-600{color:var(--color-purple-600)}.text-purple-800{color:var(--color-purple-800)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-white{color:var(--color-white)}.text-yellow-800{color:var(--color-yellow-800)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.placeholder-red-400::placeholder{color:var(--color-red-400)}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:bg-amber-700:hover{background-color:var(--color-amber-700)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-emerald-700:hover{background-color:var(--color-emerald-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:bg-orange-200:hover{background-color:var(--color-orange-200)}.hover\:bg-orange-700:hover{background-color:var(--color-orange-700)}.hover\:bg-purple-700:hover{background-color:var(--color-purple-700)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-purple-700:hover{color:var(--color-purple-700)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-red-500:focus{border-color:var(--color-red-500)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-amber-500:focus{--tw-ring-color:var(--color-amber-500)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-emerald-500:focus{--tw-ring-color:var(--color-emerald-500)}.focus\:ring-green-500:focus{--tw-ring-color:var(--color-green-500)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:ring-orange-500:focus{--tw-ring-color:var(--color-orange-500)}.focus\:ring-purple-500:focus{--tw-ring-color:var(--color-purple-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:no-underline:disabled{text-decoration-line:none}.disabled\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\:hover\:text-gray-600:disabled:hover{color:var(--color-gray-600)}}@media (width>=40rem){.sm\:mb-8{margin-bottom:calc(var(--spacing) * 8)}.sm\:inline-flex{display:inline-flex}.sm\:h-5{height:calc(var(--spacing) * 5)}.sm\:h-32{height:calc(var(--spacing) * 32)}.sm\:w-5{width:calc(var(--spacing) * 5)}.sm\:w-32{width:calc(var(--spacing) * 32)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:text-left{text-align:left}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (width>=48rem){.md\:p-8{padding:calc(var(--spacing) * 8)}}@media (width>=64rem){.lg\:w-64{width:calc(var(--spacing) * 64)}.lg\:flex-shrink-0{flex-shrink:0}.lg\:flex-row{flex-direction:row}.lg\:gap-6{gap:calc(var(--spacing) * 6)}}@media (width>=80rem){.xl\:w-80{width:calc(var(--spacing) * 80)}.xl\:w-96{width:calc(var(--spacing) * 96)}.xl\:flex-row{flex-direction:row}.xl\:gap-6{gap:calc(var(--spacing) * 6)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}} diff --git a/docs/index.html b/docs/index.html index 47358dc..a331d8d 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,8 +5,8 @@ svstate demo - - + + diff --git a/eslint.config.mjs b/eslint.config.mjs index 62c5ddb..d294d0e 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -32,7 +32,7 @@ export default [ ] }, ...compat.extends('eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'), - unicorn.configs.all, + unicorn.configs.recommended, { plugins: { '@typescript-eslint': typescriptEslint, diff --git a/package-lock.json b/package-lock.json index 0f4aef5..3269517 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,35 +1,35 @@ { "name": "svstate", - "version": "1.5.5", + "version": "1.5.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "svstate", - "version": "1.5.5", + "version": "1.5.6", "license": "ISC", "devDependencies": { - "@eslint/eslintrc": "^3.3.5", + "@eslint/eslintrc": "^3.3.6", "@eslint/js": "^10.0.1", - "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@types/node": "^25.9.1", - "@typescript-eslint/eslint-plugin": "^8.60.1", - "@typescript-eslint/parser": "^8.60.1", - "@vitest/coverage-v8": "^4.1.8", - "eslint": "^10.4.1", + "@sveltejs/vite-plugin-svelte": "^7.2.0", + "@types/node": "^22.20.1", + "@typescript-eslint/eslint-plugin": "^8.65.0", + "@typescript-eslint/parser": "^8.65.0", + "@vitest/coverage-v8": "^4.1.10", + "eslint": "^10.8.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-simple-import-sort": "^13.0.0", - "eslint-plugin-unicorn": "^64.0.0", + "eslint-plugin-simple-import-sort": "^14.0.0", + "eslint-plugin-unicorn": "^72.0.0", "nodemon": "^3.1.14", - "prettier": "^3.8.3", - "svelte": "^5.56.1", + "prettier": "^3.9.6", + "svelte": "^5.56.8", "ts-node": "^10.9.2", - "tsx": "^4.22.4", + "tsx": "^4.23.1", "typescript": "^6.0.3", - "vitest": "^4.1.8" + "vitest": "^4.1.10" }, "engines": { - "node": ">=20", + "node": ">=22", "npm": ">=9" }, "peerDependencies": { @@ -121,21 +121,21 @@ } }, "node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "version": "2.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-2.0.0-alpha.3.tgz", + "integrity": "sha512-AZypUeJ/yByuxyS7BlSNRDOMLMlROYtjYdIAuBmJssVz1UJDSeYxLrdizhXCFYhedC5bqd/ASy8EuNXbVVXp9g==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.2.1", + "@emnapi/wasi-threads": "2.0.1", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "version": "2.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-2.0.0-alpha.3.tgz", + "integrity": "sha512-hFPAhMUjJD9BSyCANEISPOogeXC9Zo9ZQl7L6vKnaVsMkCtzznaW/naYypeyl0Gv5rYfWYsZbpixTMpjDJzQeA==", "dev": true, "license": "MIT", "optional": true, @@ -144,9 +144,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", - "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-2.0.1.tgz", + "integrity": "sha512-9DsSk+o5NBX0CCJT8s0EROGSGxjR/tKu6aBTaVyq+SjAEQH4XcdcRxPBRzsBLizTTJ49MJjF+jgu3qnO9GLQcQ==", "dev": true, "license": "MIT", "optional": true, @@ -155,9 +155,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", - "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", "cpu": [ "ppc64" ], @@ -172,9 +172,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", - "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", "cpu": [ "arm" ], @@ -189,9 +189,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", - "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", "cpu": [ "arm64" ], @@ -206,9 +206,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", - "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", "cpu": [ "x64" ], @@ -223,9 +223,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", - "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", "cpu": [ "arm64" ], @@ -240,9 +240,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", - "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", "cpu": [ "x64" ], @@ -257,9 +257,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", - "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", "cpu": [ "arm64" ], @@ -274,9 +274,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", - "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", "cpu": [ "x64" ], @@ -291,9 +291,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", - "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", "cpu": [ "arm" ], @@ -308,9 +308,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", - "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", "cpu": [ "arm64" ], @@ -325,9 +325,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", - "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", "cpu": [ "ia32" ], @@ -342,9 +342,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", - "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", "cpu": [ "loong64" ], @@ -359,9 +359,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", - "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", "cpu": [ "mips64el" ], @@ -376,9 +376,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", - "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", "cpu": [ "ppc64" ], @@ -393,9 +393,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", - "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", "cpu": [ "riscv64" ], @@ -410,9 +410,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", - "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", "cpu": [ "s390x" ], @@ -427,9 +427,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", - "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", "cpu": [ "x64" ], @@ -444,9 +444,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", - "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", "cpu": [ "arm64" ], @@ -461,9 +461,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", - "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", "cpu": [ "x64" ], @@ -478,9 +478,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", - "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", "cpu": [ "arm64" ], @@ -495,9 +495,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", - "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", "cpu": [ "x64" ], @@ -512,9 +512,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", - "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", "cpu": [ "arm64" ], @@ -529,9 +529,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", - "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", "cpu": [ "x64" ], @@ -546,9 +546,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", - "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", "cpu": [ "arm64" ], @@ -563,9 +563,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", - "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", "cpu": [ "ia32" ], @@ -580,9 +580,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", - "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", "cpu": [ "x64" ], @@ -597,9 +597,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", - "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", "dev": true, "license": "MIT", "dependencies": { @@ -651,26 +651,26 @@ } }, "node_modules/@eslint/config-array/node_modules/brace-expansion": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", - "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.5" + "brace-expansion": "^5.0.8" }, "engines": { "node": "18 || 20 || >=22" @@ -680,9 +680,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz", - "integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.7.0.tgz", + "integrity": "sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -705,10 +705,24 @@ "node": "^20.19.0 || ^22.13.0 || >=24" } }, + "node_modules/@eslint/css-tree": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@eslint/css-tree/-/css-tree-4.0.5.tgz", + "integrity": "sha512-iPmijIAq4hlIJB86PYmY/fcZORHtjphSqICDbwuw32A/JmkhZQ/K/6TjHE03zqf3n5yABpVcbRAMG8Mi9ojy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.29.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, "node_modules/@eslint/eslintrc": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", - "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.6.tgz", + "integrity": "sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==", "dev": true, "license": "MIT", "dependencies": { @@ -718,7 +732,7 @@ "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.1", + "js-yaml": "^4.3.0", "minimatch": "^3.1.5", "strip-json-comments": "^3.1.1" }, @@ -891,28 +905,31 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", - "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.2.tgz", + "integrity": "sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@tybys/wasm-util": "^0.10.1" + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/Brooooooklyn" }, "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.3", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.3" } }, "node_modules/@oxc-project/types": { - "version": "0.133.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz", - "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.142.0.tgz", + "integrity": "sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==", "dev": true, "license": "MIT", "funding": { @@ -920,9 +937,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", - "integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.1.tgz", + "integrity": "sha512-02hOeOSryYxVrOIphmLAsqnCJWxwlzFk+pEt/N/i6OgT3lShHO7xGCU5cpgchRDHboAEbSjzgGh+O/u1GswQmA==", "cpu": [ "arm64" ], @@ -937,9 +954,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz", - "integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.1.tgz", + "integrity": "sha512-fMsTOnN0OjFm3CyppWPitKnc8UlliVARUULW6cfU6AIqjdtgmSFWSk9vecHzZduv/yMWIHDlRhM1e8Iff9uAfA==", "cpu": [ "arm64" ], @@ -954,9 +971,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz", - "integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.1.tgz", + "integrity": "sha512-1wjKdz/XLGKHaTNHjQveQ/B23TKx4ItAqm1JbyVuvNPc4Ze0Fb48s49TAd/2zcplPl8okE/UbTgmlVfwT7eFeQ==", "cpu": [ "x64" ], @@ -971,9 +988,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz", - "integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.1.tgz", + "integrity": "sha512-Fa0jHR07E7YBN4vOEsbVf2briYNsuOowfLJaXULZM0ldMlaCaj2LJgLMbMe4iacRyZmvR8efFhgR9wKuGclQUg==", "cpu": [ "x64" ], @@ -988,9 +1005,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz", - "integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.1.tgz", + "integrity": "sha512-pzkgu1SSHGgRRyRZ4fbmSgmajbVt+epaLP99NDjFft69v/ypfTi6swBMiVdh2EkQ0OSnHE1lZDM7DRGkyAzUpA==", "cpu": [ "arm" ], @@ -1005,13 +1022,16 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz", - "integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.1.tgz", + "integrity": "sha512-QI5SEDY8cbiYWHx0VO4vIc3UlS6a32vXHjU8Qy/17adEmZIPuByJg13UEvo9c/UCiUkdcVWY83C+b+JrwnNyUg==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1022,13 +1042,16 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz", - "integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.1.tgz", + "integrity": "sha512-Sm41FyCeXqmYcERoYOCbGIL5hNfd8w9LQ7Y61Bev48HkcjaJqV/iiVOaiDxjVTRMS+QKrZmD8cfPt4uMVnvM+A==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1039,13 +1062,16 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz", - "integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.1.tgz", + "integrity": "sha512-2x+WhXTGl9yJYPbltW/BSEPTVz9OIWQyER4N+gJEDWkkn904eRcBzELqh/Hf7K0w/ubGbKNMv0ZC+94QK/IFEg==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1056,13 +1082,16 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz", - "integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.1.tgz", + "integrity": "sha512-eEjmQpuRQayHPWWnywaWHkFT3ToPbP3RYy42VVd/B9aBGDA+Ol25EIWHxKQST3IiWJjikCWUF7KtbfqwZrzVwQ==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1073,13 +1102,16 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz", - "integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.1.tgz", + "integrity": "sha512-/Orga1fZYkLc/56jBICcHrKchl8Z2UKdDSr3LG9ToWO1lQ6a4Livk9Xz+9WN91zsz5QR3XQz2NNoSDEvP6qadw==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1090,13 +1122,16 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz", - "integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.1.tgz", + "integrity": "sha512-xxBJRL+0q0Kce7orznGWLuylHDY65vuARXZRpX+hPdv+DqK2c3NlCsVA98tlWzWNEE7yPqA/1NQ5nnCrj49Y5A==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1107,9 +1142,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz", - "integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.1.tgz", + "integrity": "sha512-M6AdXIXw3s+/8XpKMzdGDEXGS1S7kwUsy+rcTIUIOx5Ge4nXKCtAFHFV9YKkXvGcC5WMoTjAteLzlsQROVI0Yw==", "cpu": [ "arm64" ], @@ -1124,28 +1159,25 @@ } }, "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz", - "integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==", - "cpu": [ - "wasm32" - ], + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.2.1.tgz", + "integrity": "sha512-/TX0SoRGojHzSAHpfVBbavRVSazg5U3h3Y3VXfcc0cdugq6kxdqw8LPGFiPr+/7gE/60zRcsOY2Vi9b9eT0jww==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "1.10.0", - "@emnapi/runtime": "1.10.0", - "@napi-rs/wasm-runtime": "^1.1.4" + "@emnapi/core": "2.0.0-alpha.3", + "@emnapi/runtime": "2.0.0-alpha.3", + "@napi-rs/wasm-runtime": "^1.2.0" }, "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz", - "integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.1.tgz", + "integrity": "sha512-EvRrivJieyHG+AO9lleZWgq+g0+S7oV2C51yuqlcyU/R9net+sI4Pj0F+lUoP2bEr6TWX3SqFaaS0SzfLxSzkw==", "cpu": [ "arm64" ], @@ -1160,9 +1192,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz", - "integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.1.tgz", + "integrity": "sha512-Z4eCmn5QJ/5+azF9knpLWKfVd9aidn0mAe9TpJgvBLId9Ax3t0+JVxBmT25Bv7NBbVW1TZyKjQjQReouMeH5UQ==", "cpu": [ "x64" ], @@ -1191,9 +1223,9 @@ "license": "MIT" }, "node_modules/@sveltejs/acorn-typescript": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.10.tgz", - "integrity": "sha512-4WfKk68eTih+MiJD4fSbxN7E8kVBmTMPWHUPYjvl2N0rMs53YLTT8/YjKU5Dtnz5LqDjl7LEw4U7lXR2W3J5WA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.11.tgz", + "integrity": "sha512-LFuZUkjJ9iF7JZye/aG5XM0SFcQ5VyL0oVX4WJ9dc0Va3R3s0OauX1BESVCb+YN/ol8TAfqGDDAQsTG627Y5kw==", "dev": true, "license": "MIT", "peerDependencies": { @@ -1201,9 +1233,9 @@ } }, "node_modules/@sveltejs/vite-plugin-svelte": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-7.1.2.tgz", - "integrity": "sha512-DrUBA2UXRfDmUX/ZTiEopd3X40yavsJF1FX2RygcuIScHL7o5YX1fMvoYnDhjeJQC4weCOklirpNWlcb2NiSeA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-7.2.0.tgz", + "integrity": "sha512-1SpkuMSRLfugrVX+IrKfE1RUegzo8AQzKQ6qQPfVzbcWi5IhuTPaKb5ZrLpucleFznkc4/RTeSPoRnGWFxX+EQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1249,9 +1281,9 @@ "license": "MIT" }, "node_modules/@tybys/wasm-util": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", - "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", "dev": true, "license": "MIT", "optional": true, @@ -1299,13 +1331,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz", - "integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==", + "version": "22.20.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.1.tgz", + "integrity": "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": ">=7.24.0 <7.24.7" + "undici-types": "~6.21.0" } }, "node_modules/@types/trusted-types": { @@ -1316,17 +1348,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.60.1.tgz", - "integrity": "sha512-JQ4S5GB0tfjO8BuJ4fcX+HodkzJjYBV+7OJ+wLygaX7OGQ7FudyHL4NSCA6ob+w3Yn+5MkKIozOwQhXeM7opVg==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.65.0.tgz", + "integrity": "sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.60.1", - "@typescript-eslint/type-utils": "8.60.1", - "@typescript-eslint/utils": "8.60.1", - "@typescript-eslint/visitor-keys": "8.60.1", + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/type-utils": "8.65.0", + "@typescript-eslint/utils": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -1339,15 +1371,15 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.60.1", + "@typescript-eslint/parser": "^8.65.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", "dev": true, "license": "MIT", "engines": { @@ -1355,16 +1387,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.60.1.tgz", - "integrity": "sha512-A0M6ua6H252bVjPvvtSgl2QA4+ET9S5Mtkb2GDyTxIhH/C4qDItT7RQNO5PhMC6NXGYXOR9dIalcDDgBKT7oFA==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.65.0.tgz", + "integrity": "sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.60.1", - "@typescript-eslint/types": "8.60.1", - "@typescript-eslint/typescript-estree": "8.60.1", - "@typescript-eslint/visitor-keys": "8.60.1", + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0", "debug": "^4.4.3" }, "engines": { @@ -1380,14 +1412,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.60.1.tgz", - "integrity": "sha512-eXkTH2bxmXlqD1RnOPmLZ9ZM9D3VwSx04JOwBnP9RQ+yUA5a2Mu7SfW8uaV2Aon53NJzZlZYuX7tn91Izf+xaw==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.65.0.tgz", + "integrity": "sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.60.1", - "@typescript-eslint/types": "^8.60.1", + "@typescript-eslint/tsconfig-utils": "^8.65.0", + "@typescript-eslint/types": "^8.65.0", "debug": "^4.4.3" }, "engines": { @@ -1402,14 +1434,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.60.1.tgz", - "integrity": "sha512-gvI5OQoptnxQnchOirukCuQ55svJSTuD/4k5+pC267xyBtYry748R9/c3tYUzb/iE6RZfllRz2lVulLCHkTm4w==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.65.0.tgz", + "integrity": "sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.60.1", - "@typescript-eslint/visitor-keys": "8.60.1" + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1420,9 +1452,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.60.1.tgz", - "integrity": "sha512-nh8w4qAteiKuZu3pSSzG/yGKpw0OlkrKnzFmbVRenKaD4qc+7i1GrmZaLVkr8rk4uipiPGMOW4YsM6WmKZ5CvA==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.65.0.tgz", + "integrity": "sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg==", "dev": true, "license": "MIT", "engines": { @@ -1437,15 +1469,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.60.1.tgz", - "integrity": "sha512-sdwTrpjosW7ANQYJ39ZBF1ZyEMEGVB2UsikrserVM/30a/F1dTLnu9bGxEdosugyu5caigjLrR2qiD11asjI1A==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.65.0.tgz", + "integrity": "sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.60.1", - "@typescript-eslint/typescript-estree": "8.60.1", - "@typescript-eslint/utils": "8.60.1", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0", + "@typescript-eslint/utils": "8.65.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -1462,9 +1494,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.60.1.tgz", - "integrity": "sha512-4h0tY8ppCkdCzcrl2YM5M3my0xsE1Tf8om3owEu5oPWmXwkKRmk0j0LGDzYBGUcAlesEbxBhazqu/K4cu3Ug7w==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.65.0.tgz", + "integrity": "sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==", "dev": true, "license": "MIT", "engines": { @@ -1476,16 +1508,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.60.1.tgz", - "integrity": "sha512-alpRkfG8hlVE5kdJW2GkfgDgXxold3e8e4l6EnmhRmRLbekgAPCCGDVD++sABy9FcgPFroq+uFcCSM1vR57Cew==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.65.0.tgz", + "integrity": "sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.60.1", - "@typescript-eslint/tsconfig-utils": "8.60.1", - "@typescript-eslint/types": "8.60.1", - "@typescript-eslint/visitor-keys": "8.60.1", + "@typescript-eslint/project-service": "8.65.0", + "@typescript-eslint/tsconfig-utils": "8.65.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -1514,26 +1546,26 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", - "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.5" + "brace-expansion": "^5.0.8" }, "engines": { "node": "18 || 20 || >=22" @@ -1543,16 +1575,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.60.1.tgz", - "integrity": "sha512-h2MPBLoNtjc3qZWfY3Tl51yPorQ2McHn8pJfcMNTcIvrrZrr90Ykffit0yjrPFWQcRcUxzH20+6OcVdW4yHtUg==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.65.0.tgz", + "integrity": "sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.60.1", - "@typescript-eslint/types": "8.60.1", - "@typescript-eslint/typescript-estree": "8.60.1" + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1567,13 +1599,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.60.1.tgz", - "integrity": "sha512-EbGRQg4FhrmwLodl+t3JNAnXHWVr9Vp+Zl1QBZVPY4ByfkzIT8cX3K6QWODHtkIZqqJVEWvhHSx3v5PDHsaQag==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.65.0.tgz", + "integrity": "sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.60.1", + "@typescript-eslint/types": "8.65.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -1598,14 +1630,14 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.8.tgz", - "integrity": "sha512-lt3kovsyHwYe00wq4D1ti0Z974fWj4NLp6siqiyEufUpyFwK9Yhi7rBhac9JL5aA0zoMrJqc4vYPZRUnI7l7nw==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", + "integrity": "sha512-IM49HmthevbgAO4anp1hwtoT9wYe59w0LR00gr+eagHE+ZJ5lK4sLPeO0ubgoJcwLk6dehU3R24N+FbEEKDc8g==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.1.8", + "@vitest/utils": "4.1.10", "ast-v8-to-istanbul": "^1.0.0", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", @@ -1619,8 +1651,8 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "4.1.8", - "vitest": "4.1.8" + "@vitest/browser": "4.1.10", + "vitest": "4.1.10" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -1629,16 +1661,16 @@ } }, "node_modules/@vitest/expect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.8.tgz", - "integrity": "sha512-h3nDO677RDLEGlBxyQ5CW8RlMThSKSRLUePLOx09gNIWRL40edgA1GCZSZgf1W55MFAG6/Sw14KeaAnqv0NKdQ==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.10.tgz", + "integrity": "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==", "dev": true, "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.8", - "@vitest/utils": "4.1.8", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" }, @@ -1647,13 +1679,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.8.tgz", - "integrity": "sha512-LEiN/xe4OSIbKe9HQIp5OC24agGD9J5CnmMgsLohVVoOPWL9a2sBoR6VBx43jQZb7Kr1l4RCuyCJzcAa0+dojw==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.10.tgz", + "integrity": "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "4.1.8", + "@vitest/spy": "4.1.10", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, @@ -1674,9 +1706,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.8.tgz", - "integrity": "sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.10.tgz", + "integrity": "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==", "dev": true, "license": "MIT", "dependencies": { @@ -1687,13 +1719,13 @@ } }, "node_modules/@vitest/runner": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.8.tgz", - "integrity": "sha512-EmVxeBAfMJvycdjd6Hm+RbFBbA9fKvo0Kx37hNpBYoYeavH3RNsBXWDooR1mgD52dCrxIIuP7UotpfiwOikvcg==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.10.tgz", + "integrity": "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "4.1.8", + "@vitest/utils": "4.1.10", "pathe": "^2.0.3" }, "funding": { @@ -1701,14 +1733,14 @@ } }, "node_modules/@vitest/snapshot": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.8.tgz", - "integrity": "sha512-acfZboRmAIf05DEKcBQy33VXojFJjtUdLyo7oOmV9kebb2xdU01UknNiPuPZoJZQyO7DF0gZdTGTpeAzET9QPQ==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.10.tgz", + "integrity": "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.8", - "@vitest/utils": "4.1.8", + "@vitest/pretty-format": "4.1.10", + "@vitest/utils": "4.1.10", "magic-string": "^0.30.21", "pathe": "^2.0.3" }, @@ -1717,9 +1749,9 @@ } }, "node_modules/@vitest/spy": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.8.tgz", - "integrity": "sha512-6EevtBp6OZOPF7bmz36HrGMeP3txgVSrgebWxHOafDXGkhIzfXK14f8KF6MuFfgXXUeHxmpD3BQxkV00/3s5mA==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.10.tgz", + "integrity": "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==", "dev": true, "license": "MIT", "funding": { @@ -1727,13 +1759,13 @@ } }, "node_modules/@vitest/utils": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.8.tgz", - "integrity": "sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz", + "integrity": "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.8", + "@vitest/pretty-format": "4.1.10", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" }, @@ -1742,9 +1774,9 @@ } }, "node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", "dev": true, "license": "MIT", "bin": { @@ -1843,9 +1875,9 @@ } }, "node_modules/ast-v8-to-istanbul": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.3.tgz", - "integrity": "sha512-jCMQ6ZylLPudp0CDfBmQBZUsrh1/8psbmu9ibeVWKuHWD0YrH9YABwlKu5kVEFoT0GCQQW9Z/SxfuEbbkGQCRg==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.5.tgz", + "integrity": "sha512-UPAgKJFSEGMWSDr3LX4tqnAb4f7KGT8O40Tyx8wbYmmZ/yn58lNCm8h3svs3eXgiGd5AXxz8NDOvXWvicq+rJA==", "dev": true, "license": "MIT", "dependencies": { @@ -1872,9 +1904,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.10.33", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.33.tgz", - "integrity": "sha512-bA6+tcSLpz2tIEdDXZPpPTIuxBcC4+w6SieaYyfigIa4h8GlFxbA17v22Vx3JUtuZQj9SgOsnbK+aTBzyDyEuw==", + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.8.tgz", + "integrity": "sha512-zAgkquC2WYF0PIc6XbNYkA2uuxxFavzgmX61R+dHDUa558V8Ejf8ozTZFR6QzM24RWu4kBcRkhJ5kpz77j9fnQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -1898,9 +1930,9 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", - "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", "dev": true, "license": "MIT", "dependencies": { @@ -1922,9 +1954,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", - "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "version": "4.28.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.7.tgz", + "integrity": "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==", "dev": true, "funding": [ { @@ -1942,10 +1974,10 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.10.12", - "caniuse-lite": "^1.0.30001782", - "electron-to-chromium": "^1.5.328", - "node-releases": "^2.0.36", + "baseline-browser-mapping": "^2.10.44", + "caniuse-lite": "^1.0.30001806", + "electron-to-chromium": "^1.5.393", + "node-releases": "^2.0.51", "update-browserslist-db": "^1.2.3" }, "bin": { @@ -1956,9 +1988,9 @@ } }, "node_modules/builtin-modules": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-5.2.0.tgz", - "integrity": "sha512-02yxLeyxF4dNl6SlY6/5HfRSrSdZ/sCPoxy2kZNP5dZZX8LSAD9aE2gtJIUgWrsQTiMPl3mxESyrobSwvRGisQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-5.3.0.tgz", + "integrity": "sha512-hMQUl2bUFG339QygPM97E+mc8OY1IAchORZxm4a/frcYwKzozMzRVDBwHW0NjOqGElLm2O37AVQE8ikxlZHrMQ==", "dev": true, "license": "MIT", "engines": { @@ -1979,9 +2011,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001793", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz", - "integrity": "sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==", + "version": "1.0.30001806", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz", + "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==", "dev": true, "funding": [ { @@ -2070,29 +2102,6 @@ "node": ">=8" } }, - "node_modules/clean-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", - "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/clean-regexp/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -2110,6 +2119,19 @@ "dev": true, "license": "MIT" }, + "node_modules/convert-hrtime": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -2188,6 +2210,19 @@ "node": ">=0.10.0" } }, + "node_modules/detect-indent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-7.0.2.tgz", + "integrity": "sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", @@ -2199,9 +2234,9 @@ } }, "node_modules/devalue": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.8.1.tgz", - "integrity": "sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.9.0.tgz", + "integrity": "sha512-RWrqdArjvPbsATEhOPUo6Wndc/iWnkWKlhIrdlF3zMMYo/c3CVtoaVAyLtWxz5h8nSlkHzxnzV2uLydPXmtF+A==", "dev": true, "license": "MIT" }, @@ -2216,23 +2251,36 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.365", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.365.tgz", - "integrity": "sha512-xfip4u1QF1s+URFqpA6N+OeFpDGpN7VJz1f3MO3bVL0QYBjpGiZ5/Of7kugvM+o8TTqmanUlviHN3c8M9vYWCw==", + "version": "1.5.399", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.399.tgz", + "integrity": "sha512-lEcqhErbHjXRvd41rnWLpzbyU/IXfIYo7QwaFWmxGeLiLyY2TBCdHnWY88vB+p3ubnihRypDm66panXl7TylLA==", "dev": true, "license": "ISC" }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/es-module-lexer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", - "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.1.tgz", + "integrity": "sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==", "dev": true, "license": "MIT" }, "node_modules/esbuild": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", - "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2243,32 +2291,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.0", - "@esbuild/android-arm": "0.28.0", - "@esbuild/android-arm64": "0.28.0", - "@esbuild/android-x64": "0.28.0", - "@esbuild/darwin-arm64": "0.28.0", - "@esbuild/darwin-x64": "0.28.0", - "@esbuild/freebsd-arm64": "0.28.0", - "@esbuild/freebsd-x64": "0.28.0", - "@esbuild/linux-arm": "0.28.0", - "@esbuild/linux-arm64": "0.28.0", - "@esbuild/linux-ia32": "0.28.0", - "@esbuild/linux-loong64": "0.28.0", - "@esbuild/linux-mips64el": "0.28.0", - "@esbuild/linux-ppc64": "0.28.0", - "@esbuild/linux-riscv64": "0.28.0", - "@esbuild/linux-s390x": "0.28.0", - "@esbuild/linux-x64": "0.28.0", - "@esbuild/netbsd-arm64": "0.28.0", - "@esbuild/netbsd-x64": "0.28.0", - "@esbuild/openbsd-arm64": "0.28.0", - "@esbuild/openbsd-x64": "0.28.0", - "@esbuild/openharmony-arm64": "0.28.0", - "@esbuild/sunos-x64": "0.28.0", - "@esbuild/win32-arm64": "0.28.0", - "@esbuild/win32-ia32": "0.28.0", - "@esbuild/win32-x64": "0.28.0" + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" } }, "node_modules/escalade": { @@ -2295,16 +2343,19 @@ } }, "node_modules/eslint": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.4.1.tgz", - "integrity": "sha512-AyIKhnOBuOAdueD7RB3xB+YeAWScb9jHsJBgH2Hcde8InP5JYhqrRR6iTMHyTEwgENK54Cp44e4v8BwNhsuHuw==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.8.0.tgz", + "integrity": "sha512-nuKKvN+oIBO0koN7Tm7dlkmnkc21mtt0QJLwAKzjLq14y6lRTdVG36MZHJ8eQHwdJMwZbQNMlPOYedMq/oVJvQ==", "dev": true, "license": "MIT", + "workspaces": [ + "packages/*" + ], "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", "@eslint/config-array": "^0.23.5", - "@eslint/config-helpers": "^0.6.0", + "@eslint/config-helpers": "^0.7.0", "@eslint/core": "^1.2.1", "@eslint/plugin-kit": "^0.7.2", "@humanfs/node": "^0.16.6", @@ -2328,7 +2379,7 @@ "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "minimatch": "^10.2.4", + "minimatch": "^10.2.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -2367,9 +2418,9 @@ } }, "node_modules/eslint-plugin-simple-import-sort": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-13.0.0.tgz", - "integrity": "sha512-McAc+/Nlvcg4byY/CABGH8kqnefWBj8s3JA2okEtz8ixbECQgU46p0HkTUKa4YS7wvgGceimlc34p1nXqbWqtA==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-14.0.0.tgz", + "integrity": "sha512-NUJO0+XFCkk+o5EsAJruTgnfMEpeWrPWeJS15UVF60GgXmqz1BJ9/3hzlvG7lkL8Bubzos5cCLptThbFfPnSMQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -2377,43 +2428,47 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "64.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-64.0.0.tgz", - "integrity": "sha512-rNZwalHh8i0UfPlhNwg5BTUO1CMdKNmjqe+TgzOTZnpKoi8VBgsW7u9qCHIdpxEzZ1uwrJrPF0uRb7l//K38gA==", + "version": "72.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-72.0.0.tgz", + "integrity": "sha512-hqO6ksoOHO+ZhdseTuKRVQbx9U7PRO/cv8qAR1mctwzdVO2hYud8uS9luAhp43RJgziYgHAph8eHyipT8GL0ng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", "@eslint-community/eslint-utils": "^4.9.1", + "@eslint/css-tree": "^4.0.4", + "browserslist": "^4.28.4", "change-case": "^5.4.4", "ci-info": "^4.4.0", - "clean-regexp": "^1.0.0", "core-js-compat": "^3.49.0", + "detect-indent": "^7.0.2", + "entities": "^4.5.0", "find-up-simple": "^1.0.1", - "globals": "^17.4.0", + "globals": "^17.7.0", "indent-string": "^5.0.0", "is-builtin-module": "^5.0.0", - "jsesc": "^3.1.0", + "is-identifier": "^1.1.0", "pluralize": "^8.0.0", - "regexp-tree": "^0.1.27", - "regjsparser": "^0.13.0", - "semver": "^7.7.4", - "strip-indent": "^4.1.1" + "quote-js-string": "^0.1.0", + "regjsparser": "^0.13.2", + "reserved-identifiers": "^1.2.0", + "semver": "^7.8.5", + "strip-indent": "^4.1.1", + "yaml": "^2.9.0" }, "engines": { - "node": "^20.10.0 || >=21.0.0" + "node": ">=22" }, "funding": { "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" }, "peerDependencies": { - "eslint": ">=9.38.0" + "eslint": ">=10.4" } }, "node_modules/eslint-plugin-unicorn/node_modules/globals": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.6.0.tgz", - "integrity": "sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==", + "version": "17.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.8.0.tgz", + "integrity": "sha512-Zz/LMDZScFmkakeL2cTHzf+PbWKdpU3uclqkZT7TjDG58j5WPt0PpA+n9uPI24fZtlw07q0OtEi84K+umsRzqQ==", "dev": true, "license": "MIT", "engines": { @@ -2466,16 +2521,16 @@ } }, "node_modules/eslint/node_modules/brace-expansion": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", - "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { @@ -2510,13 +2565,13 @@ } }, "node_modules/eslint/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.5" + "brace-expansion": "^5.0.8" }, "engines": { "node": "18 || 20 || >=22" @@ -2577,9 +2632,9 @@ } }, "node_modules/esrap": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.10.tgz", - "integrity": "sha512-HUTyxhhAQBl1hhsyLlHD1sh9xF6o6vaejzLxK5sge+LzrdEflQPQaNhC+n98d+OVB8v3LCCF+y80x/4bACjjJw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.3.0.tgz", + "integrity": "sha512-GQ/7RN8uOtEfNpzZzBMTzW9JBcX42oaSVtPzdF+6cEL8pqIL094iUpr9jzYGn4O4P/1S60dJ6izyT8F4LYARng==", "dev": true, "license": "MIT", "dependencies": { @@ -2638,9 +2693,9 @@ } }, "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==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", + "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2739,9 +2794,9 @@ } }, "node_modules/flatted": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", - "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", "dev": true, "license": "ISC" }, @@ -2760,6 +2815,19 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-timeout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.2.tgz", + "integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -2803,6 +2871,22 @@ "dev": true, "license": "MIT" }, + "node_modules/identifier-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/identifier-regex/-/identifier-regex-1.1.0.tgz", + "integrity": "sha512-SLX4H/vtcYlYnL7XqnuJKHU7Z8517TgsW9nmQiGOgMCjQ8V/deLYu6bEmbGoXe7WMMhc9+EUGyFFneHja8KabA==", + "dev": true, + "license": "MIT", + "dependencies": { + "reserved-identifiers": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -2912,6 +2996,23 @@ "node": ">=0.10.0" } }, + "node_modules/is-identifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-identifier/-/is-identifier-1.1.0.tgz", + "integrity": "sha512-NhOds0mDx9lJu+1lBRO0xbwFo5nobA7GCk/0e5xjr6+6XugX985+0OyGX35BNrTkPAsdLcIKg02HUQJOK8D8kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "identifier-regex": "^1.1.0", + "super-regex": "^1.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -2986,9 +3087,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", - "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", + "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", "dev": true, "funding": [ { @@ -3067,9 +3168,9 @@ } }, "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", "dev": true, "license": "MPL-2.0", "dependencies": { @@ -3083,23 +3184,23 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" } }, "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", "cpu": [ "arm64" ], @@ -3118,9 +3219,9 @@ } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", "cpu": [ "arm64" ], @@ -3139,9 +3240,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", "cpu": [ "x64" ], @@ -3160,9 +3261,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", "cpu": [ "x64" ], @@ -3181,9 +3282,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", "cpu": [ "arm" ], @@ -3202,13 +3303,16 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -3223,13 +3327,16 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -3244,13 +3351,16 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -3265,13 +3375,16 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -3286,9 +3399,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", "cpu": [ "arm64" ], @@ -3307,9 +3420,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", "cpu": [ "x64" ], @@ -3361,17 +3474,35 @@ } }, "node_modules/magicast": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.3.tgz", - "integrity": "sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.4.tgz", + "integrity": "sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.3", - "@babel/types": "^7.29.0", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", "source-map-js": "^1.2.1" } }, + "node_modules/make-asynchronous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/make-asynchronous/-/make-asynchronous-1.1.0.tgz", + "integrity": "sha512-ayF7iT+44LXdxJLTrTd3TLQpFDDvPCBxXxbv+pMUSuHA5Q8zyAfwkRP6aHHwNVFBUFWtxAHqwNJxF8vMZLAbVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-event": "^6.0.0", + "type-fest": "^4.6.0", + "web-worker": "^1.5.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -3395,6 +3526,13 @@ "dev": true, "license": "ISC" }, + "node_modules/mdn-data": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.29.0.tgz", + "integrity": "sha512-pVxQFCcaYUEAH853+v7yoI/qzhxXSq1bTb9obMYGYAN1c3Hen+XDCEvr296XhstrwlSTNgOR7mCSD4JPjbJe5A==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/minimatch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", @@ -3416,9 +3554,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", - "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", "dev": true, "funding": [ { @@ -3442,9 +3580,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.47", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.47.tgz", - "integrity": "sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==", + "version": "2.0.51", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.51.tgz", + "integrity": "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==", "dev": true, "license": "MIT", "engines": { @@ -3491,16 +3629,16 @@ } }, "node_modules/nodemon/node_modules/brace-expansion": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", - "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/nodemon/node_modules/has-flag": { @@ -3514,13 +3652,13 @@ } }, "node_modules/nodemon/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.5" + "brace-expansion": "^5.0.8" }, "engines": { "node": "18 || 20 || >=22" @@ -3553,15 +3691,18 @@ } }, "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==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", + "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", "dev": true, "funding": [ "https://github.com/sponsors/sxzz", "https://opencollective.com/debug" ], - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } }, "node_modules/optionator": { "version": "0.9.4", @@ -3581,6 +3722,22 @@ "node": ">= 0.8.0" } }, + "node_modules/p-event": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.1.tgz", + "integrity": "sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -3613,6 +3770,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-timeout": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -3684,9 +3854,9 @@ } }, "node_modules/postcss": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", - "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", "dev": true, "funding": [ { @@ -3704,7 +3874,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -3723,9 +3893,9 @@ } }, "node_modules/prettier": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz", - "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz", + "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", "dev": true, "license": "MIT", "bin": { @@ -3755,6 +3925,19 @@ "node": ">=6" } }, + "node_modules/quote-js-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/quote-js-string/-/quote-js-string-0.1.0.tgz", + "integrity": "sha512-Y3NoRtprEEZQD8RfxMCfS0ZTqc4e+i18OrXEXAvpM6TfC/3y+0L5rNbZiSnbBBEkDfFzbpd8o+cE8q3/anjMGA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22" + }, + "funding": { + "url": "https://github.com/sindresorhus/quote-js-string?sponsor=1" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -3768,20 +3951,10 @@ "node": ">=8.10.0" } }, - "node_modules/regexp-tree": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", - "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", - "dev": true, - "license": "MIT", - "bin": { - "regexp-tree": "bin/regexp-tree" - } - }, "node_modules/regjsparser": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz", - "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.2.tgz", + "integrity": "sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -3791,6 +3964,19 @@ "regjsparser": "bin/parser" } }, + "node_modules/reserved-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/reserved-identifiers/-/reserved-identifiers-1.2.0.tgz", + "integrity": "sha512-yE7KUfFvaBFzGPs5H3Ops1RevfUEsDc5Iz65rOwWg4lE8HJSYtle77uul3+573457oHvBKuHYDl/xqUkKpEEdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -3802,13 +3988,13 @@ } }, "node_modules/rolldown": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz", - "integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.1.tgz", + "integrity": "sha512-4FKJhg8d3OiyQOA6Q1Q0hoFFpW9/OoX+VsHzpECsdsIZoOArrAK90gl59YK/Z+gnDel45bgJZK03ozH/9bCqEw==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.133.0", + "@oxc-project/types": "=0.142.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -3818,27 +4004,27 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.3", - "@rolldown/binding-darwin-arm64": "1.0.3", - "@rolldown/binding-darwin-x64": "1.0.3", - "@rolldown/binding-freebsd-x64": "1.0.3", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", - "@rolldown/binding-linux-arm64-gnu": "1.0.3", - "@rolldown/binding-linux-arm64-musl": "1.0.3", - "@rolldown/binding-linux-ppc64-gnu": "1.0.3", - "@rolldown/binding-linux-s390x-gnu": "1.0.3", - "@rolldown/binding-linux-x64-gnu": "1.0.3", - "@rolldown/binding-linux-x64-musl": "1.0.3", - "@rolldown/binding-openharmony-arm64": "1.0.3", - "@rolldown/binding-wasm32-wasi": "1.0.3", - "@rolldown/binding-win32-arm64-msvc": "1.0.3", - "@rolldown/binding-win32-x64-msvc": "1.0.3" + "@rolldown/binding-android-arm64": "1.2.1", + "@rolldown/binding-darwin-arm64": "1.2.1", + "@rolldown/binding-darwin-x64": "1.2.1", + "@rolldown/binding-freebsd-x64": "1.2.1", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.1", + "@rolldown/binding-linux-arm64-gnu": "1.2.1", + "@rolldown/binding-linux-arm64-musl": "1.2.1", + "@rolldown/binding-linux-ppc64-gnu": "1.2.1", + "@rolldown/binding-linux-s390x-gnu": "1.2.1", + "@rolldown/binding-linux-x64-gnu": "1.2.1", + "@rolldown/binding-linux-x64-musl": "1.2.1", + "@rolldown/binding-openharmony-arm64": "1.2.1", + "@rolldown/binding-wasm32-wasi": "1.2.1", + "@rolldown/binding-win32-arm64-msvc": "1.2.1", + "@rolldown/binding-win32-x64-msvc": "1.2.1" } }, "node_modules/semver": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", - "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { @@ -3909,9 +4095,9 @@ "license": "MIT" }, "node_modules/std-env": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz", - "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", + "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", "dev": true, "license": "MIT" }, @@ -3941,6 +4127,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/super-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-1.1.0.tgz", + "integrity": "sha512-WHkws2ZflZe41zj6AolvvmaTrWds/VuyeYr9iPVv/oQeaIoVxMKaushfFWpOGDT+GuBrM/sVqF8KUCYQlSSTdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-timeout": "^1.0.1", + "make-asynchronous": "^1.0.1", + "time-span": "^5.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -3955,9 +4159,9 @@ } }, "node_modules/svelte": { - "version": "5.56.1", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.56.1.tgz", - "integrity": "sha512-eArsJmvl3xZVuTYD852PzIEdg2wgDdIZ1NEsIPbzAukHwi284B18No4nK2rCO9AwsWUDza4Cjvmoa4HaojTl5g==", + "version": "5.56.8", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.56.8.tgz", + "integrity": "sha512-PY8LOw7xP6c8IOiVqdo0sbbZVYhXRSfklOQLAUyGBKqjTX0wx/z4l/9J+PmBpmlLnxzEb1NqltxQ5/wZme/Cmg==", "dev": true, "license": "MIT", "dependencies": { @@ -3972,7 +4176,7 @@ "clsx": "^2.1.1", "devalue": "^5.8.1", "esm-env": "^1.2.1", - "esrap": "^2.2.9", + "esrap": "^2.2.12", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", @@ -3982,6 +4186,22 @@ "node": ">=18" } }, + "node_modules/time-span": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "convert-hrtime": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", @@ -4035,9 +4255,9 @@ } }, "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { @@ -4048,9 +4268,9 @@ } }, "node_modules/tinyrainbow": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", - "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.1.tgz", + "integrity": "sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==", "dev": true, "license": "MIT", "engines": { @@ -4146,9 +4366,9 @@ "optional": true }, "node_modules/tsx": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.22.4.tgz", - "integrity": "sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==", + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.23.1.tgz", + "integrity": "sha512-GQHnkIfxyx1wYCOS/wonik5MVRZU9hi1TEZmzGZSCJB1y9YgoZ8H6itNE/u4suE+yLmOzuE4E5S4TZ/ZX2wcWQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4177,6 +4397,19 @@ "node": ">= 0.8.0" } }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/typescript": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", @@ -4199,9 +4432,9 @@ "license": "MIT" }, "node_modules/undici-types": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", - "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "dev": true, "license": "MIT" }, @@ -4254,16 +4487,16 @@ "license": "MIT" }, "node_modules/vite": { - "version": "8.0.16", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz", - "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.0.tgz", + "integrity": "sha512-pn+CFpM0lwDeKwmOq1ZaBK/9sjorZcgqxki6MbY/jPEVd9vichIlmlD4HmQ5wdP5EgqQCFRaACBxMC7uEGc6lQ==", "dev": true, "license": "MIT", "dependencies": { - "lightningcss": "^1.32.0", - "picomatch": "^4.0.4", - "postcss": "^8.5.15", - "rolldown": "1.0.3", + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.23", + "rolldown": "~1.2.0", "tinyglobby": "^0.2.17" }, "bin": { @@ -4280,7 +4513,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.1.18", + "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", @@ -4332,9 +4565,9 @@ } }, "node_modules/vite/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { @@ -4365,19 +4598,19 @@ } }, "node_modules/vitest": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.8.tgz", - "integrity": "sha512-flY6ScbCIt9HThs+C5HS7jvGOB560DJtk/Z15IQROTA6zEy49Nh8T/dofWTQL+n3vswqn87sbJNiuqw1SDp5Ig==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.10.tgz", + "integrity": "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "4.1.8", - "@vitest/mocker": "4.1.8", - "@vitest/pretty-format": "4.1.8", - "@vitest/runner": "4.1.8", - "@vitest/snapshot": "4.1.8", - "@vitest/spy": "4.1.8", - "@vitest/utils": "4.1.8", + "@vitest/expect": "4.1.10", + "@vitest/mocker": "4.1.10", + "@vitest/pretty-format": "4.1.10", + "@vitest/runner": "4.1.10", + "@vitest/snapshot": "4.1.10", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", @@ -4405,12 +4638,12 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.8", - "@vitest/browser-preview": "4.1.8", - "@vitest/browser-webdriverio": "4.1.8", - "@vitest/coverage-istanbul": "4.1.8", - "@vitest/coverage-v8": "4.1.8", - "@vitest/ui": "4.1.8", + "@vitest/browser-playwright": "4.1.10", + "@vitest/browser-preview": "4.1.10", + "@vitest/browser-webdriverio": "4.1.10", + "@vitest/coverage-istanbul": "4.1.10", + "@vitest/coverage-v8": "4.1.10", + "@vitest/ui": "4.1.10", "happy-dom": "*", "jsdom": "*", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -4455,9 +4688,9 @@ } }, "node_modules/vitest/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { @@ -4467,6 +4700,13 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/web-worker": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", + "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -4510,6 +4750,22 @@ "node": ">=0.10.0" } }, + "node_modules/yaml": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", diff --git a/package.json b/package.json index fae67ff..4f6e766 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "svstate", - "version": "1.5.5", + "version": "1.5.6", "description": "Supercharged $state() for Svelte 5: deep reactive proxy with validation, cross-field rules, computed & side-effects", "author": "BCsabaEngine", "license": "ISC", @@ -14,7 +14,7 @@ } }, "engines": { - "node": ">=20", + "node": ">=22", "npm": ">=9" }, "files": [ @@ -53,24 +53,24 @@ "proxy" ], "devDependencies": { - "@eslint/eslintrc": "^3.3.5", + "@eslint/eslintrc": "^3.3.6", "@eslint/js": "^10.0.1", - "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@types/node": "^25.9.1", - "@typescript-eslint/eslint-plugin": "^8.60.1", - "@typescript-eslint/parser": "^8.60.1", - "@vitest/coverage-v8": "^4.1.8", - "eslint": "^10.4.1", + "@sveltejs/vite-plugin-svelte": "^7.2.0", + "@types/node": "^22.20.1", + "@typescript-eslint/eslint-plugin": "^8.65.0", + "@typescript-eslint/parser": "^8.65.0", + "@vitest/coverage-v8": "^4.1.10", + "eslint": "^10.8.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-simple-import-sort": "^13.0.0", - "eslint-plugin-unicorn": "^64.0.0", + "eslint-plugin-simple-import-sort": "^14.0.0", + "eslint-plugin-unicorn": "^72.0.0", "nodemon": "^3.1.14", - "prettier": "^3.8.3", - "svelte": "^5.56.1", + "prettier": "^3.9.6", + "svelte": "^5.56.8", "ts-node": "^10.9.2", - "tsx": "^4.22.4", + "tsx": "^4.23.1", "typescript": "^6.0.3", - "vitest": "^4.1.8" + "vitest": "^4.1.10" }, "peerDependencies": { "svelte": "^5.0.0" diff --git a/src/plugins/analytics.ts b/src/plugins/analytics.ts index 2c95f97..5436de4 100644 --- a/src/plugins/analytics.ts +++ b/src/plugins/analytics.ts @@ -34,7 +34,8 @@ export function analyticsPlugin>( const doFlush = () => { if (buffer.length === 0) return; - const events = buffer.splice(0); + const events = buffer.slice(); + buffer.length = 0; options.onFlush(events); }; diff --git a/src/plugins/autosave.ts b/src/plugins/autosave.ts index 9532666..6d12d22 100644 --- a/src/plugins/autosave.ts +++ b/src/plugins/autosave.ts @@ -23,21 +23,21 @@ export function autosavePlugin>( let context: PluginContext | undefined; let idleTimeout: ReturnType | undefined; let intervalTimer: ReturnType | undefined; - let saving = false; - let destroyed = false; + let isSaving = false; + let isDestroyed = false; const doSave = async () => { if (!context) return; if (onlyWhenDirty && !get(context.state.isDirty)) return; - if (saving) return; + if (isSaving) return; - saving = true; + isSaving = true; try { await options.save(context.data); } catch (error) { options.onError?.(error); } finally { - saving = false; + isSaving = false; } }; @@ -58,7 +58,7 @@ export function autosavePlugin>( if (intervalMs > 0) intervalTimer = setInterval(doSave, intervalMs); - if (options.onVisibilityHidden && typeof document !== 'undefined') + if (typeof document !== 'undefined' && options.onVisibilityHidden) document.addEventListener('visibilitychange', handleVisibility); }, @@ -71,35 +71,39 @@ export function autosavePlugin>( }, destroy() { - destroyed = true; + isDestroyed = true; clearTimeout(idleTimeout); if (intervalTimer !== undefined) clearInterval(intervalTimer); if (typeof document !== 'undefined') document.removeEventListener('visibilitychange', handleVisibility); if (saveOnDestroy && context) { - saving = false; + isSaving = false; + const activeContext = context; // Fire-and-forget save on destroy - const shouldSave = !onlyWhenDirty || get(context.state.isDirty); - if (shouldSave) - try { - const result = options.save(context.data); - if (result instanceof Promise) result.catch((error: unknown) => options.onError?.(error)); - } catch (error) { - options.onError?.(error); - } + const shouldSave = !onlyWhenDirty || get(activeContext.state.isDirty); + if (shouldSave) { + const trySave = async () => { + try { + await options.save(activeContext.data); + } catch (error) { + options.onError?.(error); + } + }; + void trySave(); + } } }, async saveNow() { - if (destroyed) return; + if (isDestroyed) return; clearTimeout(idleTimeout); - saving = false; + isSaving = false; await doSave(); }, isSaving() { - return saving; + return isSaving; } }; diff --git a/src/plugins/history.ts b/src/plugins/history.ts index 40da89a..4e0e32d 100644 --- a/src/plugins/history.ts +++ b/src/plugins/history.ts @@ -13,6 +13,8 @@ export type HistoryPluginInstance> = SvStatePl syncFromUrl(): void; }; +const isNullOrUndefined = (value: unknown): boolean => value === undefined || value === null; + const defaultSerialize: (value: unknown, field: string) => string = String; const defaultDeserialize: (parameter: string, field: string) => unknown = (parameter) => parameter; @@ -68,11 +70,11 @@ export function historyPlugin>(options: Histor const value = getValueAtPath(context.data as unknown as Record, stateField); const url = new URL(window.location.href); - if (value === undefined || value === null || value === '') url.searchParams.delete(urlParameter); + if (value === '' || isNullOrUndefined(value)) url.searchParams.delete(urlParameter); else url.searchParams.set(urlParameter, serialize(value, stateField)); - if (mode === 'push') window.history.pushState({}, '', url.toString()); - else window.history.replaceState({}, '', url.toString()); + if (mode === 'push') window.history.pushState({}, '', url.href); + else window.history.replaceState({}, '', url.href); }; return { @@ -89,7 +91,7 @@ export function historyPlugin>(options: Histor }, onChange(event) { - if (event.property in options.fields) updateUrl(event.property); + if (Object.hasOwn(options.fields, event.property)) updateUrl(event.property); }, destroy() { diff --git a/src/plugins/persist.ts b/src/plugins/persist.ts index 429dc13..ad781e2 100644 --- a/src/plugins/persist.ts +++ b/src/plugins/persist.ts @@ -11,7 +11,7 @@ const isValidStorageFormat = (value: unknown): value is StorageFormat => isPlainObject((value as StorageFormat).data); const safeMerge = (target: Record, source: Record): void => { - for (const key of Object.keys(source)) if (!DANGEROUS_KEYS.has(key)) target[key] = source[key]; + for (const [key, value] of Object.entries(source)) if (!DANGEROUS_KEYS.has(key)) target[key] = value; }; export type PersistOptions = { @@ -56,6 +56,27 @@ const setValueAtPath = (target: Record, path: string, value: un if (!DANGEROUS_KEYS.has(lastPart)) current[lastPart] = value; }; +const excludePath = (filtered: Record, path: string): void => { + const parts = path.split('.'); + if (parts.length === 1) { + delete filtered[path]; + return; + } + let current: Record = filtered; + for (let index = 0; index < parts.length - 1; index++) { + const part = parts[index]!; + if (current[part] === undefined) return; + if (index === parts.length - 2) { + const parent = current[part] as Record; + current[part] = { ...parent }; + delete (current[part] as Record)[parts.at(-1)!]; + } else { + current[part] = { ...(current[part] as Record) }; + current = current[part] as Record; + } + } +}; + const filterData = (data: Record, include?: string[], exclude?: string[]): Record => { if (include) { const filtered: Record = {}; @@ -67,25 +88,7 @@ const filterData = (data: Record, include?: string[], exclude?: } if (exclude) { const filtered = { ...data }; - for (const path of exclude) { - const parts = path.split('.'); - if (parts.length === 1) delete filtered[path]; - else { - let current: Record = filtered; - for (let index = 0; index < parts.length - 1; index++) { - const part = parts[index]!; - if (current[part] === undefined) break; - if (index === parts.length - 2) { - const parent = current[part] as Record; - current[part] = { ...parent }; - delete (current[part] as Record)[parts.at(-1)!]; - } else { - current[part] = { ...(current[part] as Record) }; - current = current[part] as Record; - } - } - } - } + for (const path of exclude) excludePath(filtered, path); return filtered; } return data; @@ -98,7 +101,7 @@ export function persistPlugin>( const throttleMs = options.throttle ?? 300; const version = options.version ?? 1; - let restored = false; + let isRestored = false; let pendingTimeout: ReturnType | undefined; let contextData: T | undefined; @@ -136,7 +139,7 @@ export function persistPlugin>( } safeMerge(context.data as unknown as Record, parsed.data); - restored = true; + isRestored = true; } catch { // Invalid stored data — ignore } @@ -151,10 +154,10 @@ export function persistPlugin>( }, destroy() { - if (pendingTimeout !== undefined) { - clearTimeout(pendingTimeout); - writeToStorage(); - } + if (pendingTimeout === undefined) return; + + clearTimeout(pendingTimeout); + writeToStorage(); }, clearPersistedState() { @@ -162,7 +165,7 @@ export function persistPlugin>( }, isRestored() { - return restored; + return isRestored; } }; diff --git a/src/plugins/sync.ts b/src/plugins/sync.ts index 0d5cc45..e765410 100644 --- a/src/plugins/sync.ts +++ b/src/plugins/sync.ts @@ -14,7 +14,7 @@ const isWithinDepthLimit = (value: unknown, depth = 0): boolean => { }; const safeMerge = (target: Record, source: Record): void => { - for (const key of Object.keys(source)) if (!DANGEROUS_KEYS.has(key)) target[key] = source[key]; + for (const [key, value] of Object.entries(source)) if (!DANGEROUS_KEYS.has(key)) target[key] = value; }; export type SyncOptions = { @@ -41,7 +41,7 @@ export function syncPlugin>(options: SyncOptio if (!channel || !context) return; // eslint-disable-next-line unicorn/prefer-structured-clone -- structuredClone fails on Svelte reactive proxies const cloned = JSON.parse(JSON.stringify(context.data)) as T; - // eslint-disable-next-line unicorn/require-post-message-target-origin -- BroadcastChannel.postMessage has no targetOrigin + channel.postMessage({ type: 'sync', data: cloned }); }; diff --git a/src/plugins/undo-redo.ts b/src/plugins/undo-redo.ts index 12c0d1c..860a7dd 100644 --- a/src/plugins/undo-redo.ts +++ b/src/plugins/undo-redo.ts @@ -49,14 +49,14 @@ export function undoRedoPlugin>( onRollback() { // previousTipSnapshot is captured by the subscription (which fires synchronously // before onRollback) when it detects the snapshot list shrinking. - if (previousTipSnapshot) { - redoStore.update((stack) => { - const updated = [...stack, previousTipSnapshot!]; - const max = options?.maxRedoStack; - return max && max > 0 ? updated.slice(-max) : updated; - }); - previousTipSnapshot = undefined; - } + if (!previousTipSnapshot) return; + + redoStore.update((stack) => { + const updated = [...stack, previousTipSnapshot!]; + const max = options?.maxRedoStack; + return max && max > 0 ? updated.slice(-max) : updated; + }); + previousTipSnapshot = undefined; }, onChange() { diff --git a/src/proxy.ts b/src/proxy.ts index 2fc1279..44de3c3 100644 --- a/src/proxy.ts +++ b/src/proxy.ts @@ -24,7 +24,7 @@ export const ChangeProxy = (source: T, changed: ProxyChanged)[property]; const value = (object as Record)[property]; if (isProxiable(value)) { - const pathSegment = Number.isInteger(Number(property)) ? '' : String(property); + const pathSegment = Number.isSafeInteger(Number(property)) ? '' : String(property); const childPath = pathSegment ? (parentPath ? `${parentPath}.${pathSegment}` : pathSegment) : parentPath; return createProxy(value as object, childPath); } @@ -38,7 +38,7 @@ export const ChangeProxy = (source: T, changed: ProxyChanged)[property]; if (oldValue !== incomingValue) { (object as Record)[property] = incomingValue; - const pathSegment = Number.isInteger(Number(property)) ? '' : String(property); + const pathSegment = Number.isSafeInteger(Number(property)) ? '' : String(property); const fullPath = pathSegment ? (parentPath ? `${parentPath}.${pathSegment}` : pathSegment) : parentPath; changed(data as T, fullPath, incomingValue, oldValue); } diff --git a/src/state.svelte.ts b/src/state.svelte.ts index cd3b8f5..159d666 100644 --- a/src/state.svelte.ts +++ b/src/state.svelte.ts @@ -13,7 +13,7 @@ export type Snapshot = { data: T; }; -export type SnapshotFunction = (title: string, replace?: boolean) => void; +export type SnapshotFunction = (title: string, shouldReplace?: boolean) => void; export type EffectContext = { snapshot: SnapshotFunction; @@ -61,9 +61,9 @@ type StateResult = { }; // Helpers -const checkHasErrors = (validator: Validator): boolean => - Object.values(validator).some((item) => (typeof item === 'string' ? !!item : checkHasErrors(item))); -const hasAnyErrors = ($errors: Validator | undefined): boolean => !!$errors && checkHasErrors($errors); +const hasValidatorErrors = (validator: Validator): boolean => + Object.values(validator).some((item) => (typeof item === 'string' ? !!item : hasValidatorErrors(item))); +const hasAnyErrors = ($errors: Validator | undefined): boolean => !!$errors && hasValidatorErrors($errors); const DANGEROUS_KEYS = new Set(['__proto__', 'constructor', 'prototype']); @@ -103,10 +103,14 @@ const getSyncErrorForPath = (errors: Validator | undefined, path: string): strin const getMatchingAsyncValidatorPaths = (asyncValidator: AsyncValidator, changedPath: string): string[] => { const matches: string[] = []; for (const registeredPath of Object.keys(asyncValidator)) - // Exact match or changed path is a prefix of registered path - if (registeredPath === changedPath || registeredPath.startsWith(changedPath + '.')) matches.push(registeredPath); - // Changed path is nested within registered path (e.g., validator for 'user', changed 'user.name') - else if (changedPath.startsWith(registeredPath + '.')) matches.push(registeredPath); + // Exact match, changed path is a prefix of registered path, or changed path is nested + // within registered path (e.g., validator for 'user', changed 'user.name') + if ( + registeredPath === changedPath || + registeredPath.startsWith(changedPath + '.') || + changedPath.startsWith(registeredPath + '.') + ) + matches.push(registeredPath); return matches; }; @@ -204,13 +208,13 @@ export function createSvState, V extends Valid callPlugins('onValidation', result); }; - const createSnapshot: SnapshotFunction = (title: string, replace = true) => { + const createSnapshot: SnapshotFunction = (title: string, shouldReplace = true) => { const currentSnapshots = get(snapshots); const createdSnapshot: Snapshot = { title, data: deepClone(stateObject) }; const lastSnapshot = currentSnapshots.at(-1); let updatedSnapshots: Snapshot[] = - replace && lastSnapshot && lastSnapshot.title === title + shouldReplace && lastSnapshot && lastSnapshot.title === title ? [...currentSnapshots.slice(0, -1), createdSnapshot] : [...currentSnapshots, createdSnapshot]; @@ -223,7 +227,7 @@ export function createSvState, V extends Valid callPlugins('onSnapshot', createdSnapshot); }; - let validationScheduled = false; + let isValidationScheduled = false; let validationTimeout: ReturnType | undefined; const scheduleValidation = () => { @@ -235,11 +239,11 @@ export function createSvState, V extends Valid runValidation(); }, usedOptions.debounceValidation); } else { - if (validationScheduled) return; - validationScheduled = true; + if (isValidationScheduled) return; + isValidationScheduled = true; queueMicrotask(() => { runValidation(); - validationScheduled = false; + isValidationScheduled = false; }); } }; @@ -336,7 +340,7 @@ export function createSvState, V extends Valid }; const scheduleAsyncValidation = (path: string) => { - if (!asyncValidator || !asyncValidator[path]) return; + if (!asyncValidator || !Object.hasOwn(asyncValidator, path)) return; // Cancel any existing validation for this path cancelAsyncValidation(path); @@ -446,6 +450,7 @@ export function createSvState, V extends Valid if (targetSnapshot) callPlugins('onRollback', targetSnapshot); }; + // eslint-disable-next-line unicorn/consistent-boolean-name -- rollbackTo is a public API method name, not a boolean flag const rollbackTo = (title: string): boolean => { const currentSnapshots = get(snapshots); if (currentSnapshots.length <= 1) return false; diff --git a/src/validators.ts b/src/validators.ts index 4b97850..7b99a2e 100644 --- a/src/validators.ts +++ b/src/validators.ts @@ -30,8 +30,8 @@ export function stringValidator(input: string | null | undefined): StringValidat return builder; }, - requiredIf(cond: boolean) { - if (cond && !error && (isNullish || !processedInput)) setError('Required'); + requiredIf(shouldRequire: boolean) { + if (shouldRequire && !error && (isNullish || !processedInput)) setError('Required'); return builder; }, @@ -74,7 +74,7 @@ export function stringValidator(input: string | null | undefined): StringValidat startsWith(prefix: string | string[]) { if (error) return builder; const prefixes = Array.isArray(prefix) ? prefix : [prefix]; - if (processedInput && !prefixes.some((p) => processedInput.startsWith(p))) + if (processedInput && prefixes.every((p) => !processedInput.startsWith(p))) setError(`Must start with ${prefixes.join(', ')}`); return builder; }, @@ -116,7 +116,7 @@ export function stringValidator(input: string | null | undefined): StringValidat endsWith(suffix: string | string[]) { if (error || !processedInput) return builder; const suffixes = Array.isArray(suffix) ? suffix : [suffix]; - if (!suffixes.some((s) => processedInput.endsWith(s))) setError(`Must end with ${suffixes.join(', ')}`); + if (suffixes.every((s) => !processedInput.endsWith(s))) setError(`Must end with ${suffixes.join(', ')}`); return builder; }, @@ -162,7 +162,7 @@ type StringValidatorBuilder = { prepare(...prepares: (BaseOption | 'localeLower')[]): StringValidatorBuilder; prepare(...prepares: BaseOption[]): StringValidatorBuilder; required(): StringValidatorBuilder; - requiredIf(cond: boolean): StringValidatorBuilder; + requiredIf(shouldRequire: boolean): StringValidatorBuilder; noSpace(): StringValidatorBuilder; notBlank(): StringValidatorBuilder; minLength(length: number): StringValidatorBuilder; @@ -198,8 +198,8 @@ export function numberValidator(input: number | null | undefined): NumberValidat return builder; }, - requiredIf(cond: boolean) { - if (cond && !error && (isNullish || Number.isNaN(input))) setError('Required'); + requiredIf(shouldRequire: boolean) { + if (shouldRequire && !error && (isNullish || Number.isNaN(input))) setError('Required'); return builder; }, @@ -223,7 +223,7 @@ export function numberValidator(input: number | null | undefined): NumberValidat integer() { if (isNullish) return builder; - if (!error && !Number.isInteger(input)) setError('Must be an integer'); + if (!error && !Number.isSafeInteger(input)) setError('Must be an integer'); return builder; }, @@ -288,7 +288,7 @@ export function numberValidator(input: number | null | undefined): NumberValidat type NumberValidatorBuilder = { required(): NumberValidatorBuilder; - requiredIf(cond: boolean): NumberValidatorBuilder; + requiredIf(shouldRequire: boolean): NumberValidatorBuilder; min(n: number): NumberValidatorBuilder; max(n: number): NumberValidatorBuilder; between(min: number, max: number): NumberValidatorBuilder; @@ -319,8 +319,8 @@ export function arrayValidator(input: T[] | null | undefined): ArrayValidator return builder; }, - requiredIf(cond: boolean) { - if (cond && !error && (isNullish || array.length === 0)) setError('Required'); + requiredIf(shouldRequire: boolean) { + if (shouldRequire && !error && (isNullish || array.length === 0)) setError('Required'); return builder; }, @@ -408,7 +408,7 @@ export function arrayValidator(input: T[] | null | undefined): ArrayValidator type ArrayValidatorBuilder = { required(): ArrayValidatorBuilder; - requiredIf(cond: boolean): ArrayValidatorBuilder; + requiredIf(shouldRequire: boolean): ArrayValidatorBuilder; minLength(n: number): ArrayValidatorBuilder; maxLength(n: number): ArrayValidatorBuilder; unique(): ArrayValidatorBuilder; @@ -427,7 +427,7 @@ export function dateValidator(input: Date | string | number | null | undefined): if (!error) error = message; }; - const date = isNullish ? new Date(Number.NaN) : input instanceof Date ? input : new Date(input); + const date = isNullish ? new Date(NaN) : input instanceof Date ? input : new Date(input); const isValid = !isNullish && !Number.isNaN(date.getTime()); const builder: DateValidatorBuilder = { @@ -436,8 +436,8 @@ export function dateValidator(input: Date | string | number | null | undefined): return builder; }, - requiredIf(cond: boolean) { - if (cond && !error && !isValid) setError('Required'); + requiredIf(shouldRequire: boolean) { + if (shouldRequire && !error && !isValid) setError('Required'); return builder; }, @@ -521,7 +521,7 @@ export function dateValidator(input: Date | string | number | null | undefined): type DateValidatorBuilder = { required(): DateValidatorBuilder; - requiredIf(cond: boolean): DateValidatorBuilder; + requiredIf(shouldRequire: boolean): DateValidatorBuilder; before(target: Date | string | number): DateValidatorBuilder; after(target: Date | string | number): DateValidatorBuilder; between(start: Date | string | number, end: Date | string | number): DateValidatorBuilder; diff --git a/test/async-validation.test.svelte.ts b/test/async-validation.test.svelte.ts index 6aa594a..7b0e7e7 100644 --- a/test/async-validation.test.svelte.ts +++ b/test/async-validation.test.svelte.ts @@ -4,7 +4,7 @@ import { createSvState, stringValidator } from '../src/index'; describe('async validation - basic functionality', () => { it('should run async validator after sync passes', async () => { - let asyncValidatorCalled = false; + let isAsyncValidatorCalled = false; const { data, state } = createSvState( { username: '' }, @@ -14,7 +14,7 @@ describe('async validation - basic functionality', () => { }), asyncValidator: { username: async (value) => { - asyncValidatorCalled = true; + isAsyncValidatorCalled = true; return value === 'taken' ? 'Username already taken' : ''; } } @@ -26,12 +26,12 @@ describe('async validation - basic functionality', () => { data.username = 'validuser'; await new Promise((resolve) => setTimeout(resolve, 50)); - expect(asyncValidatorCalled).toBe(true); + expect(isAsyncValidatorCalled).toBe(true); expect(get(state.asyncErrors)).toEqual({ username: '' }); }); it('should skip async validator when sync fails', async () => { - let asyncValidatorCalled = false; + let isAsyncValidatorCalled = false; const { data, state } = createSvState( { username: '' }, @@ -41,7 +41,7 @@ describe('async validation - basic functionality', () => { }), asyncValidator: { username: async () => { - asyncValidatorCalled = true; + isAsyncValidatorCalled = true; return ''; } } @@ -53,7 +53,7 @@ describe('async validation - basic functionality', () => { data.username = 'ab'; await new Promise((resolve) => setTimeout(resolve, 50)); - expect(asyncValidatorCalled).toBe(false); + expect(isAsyncValidatorCalled).toBe(false); expect(get(state.hasErrors)).toBe(true); }); @@ -356,14 +356,14 @@ describe('async validation - rollback and reset', () => { describe('async validation - runAsyncValidationOnInit', () => { it('should run async validation on init when configured', async () => { - let asyncValidatorCalled = false; + let isAsyncValidatorCalled = false; createSvState( { username: 'testuser' }, { asyncValidator: { username: async () => { - asyncValidatorCalled = true; + isAsyncValidatorCalled = true; return ''; } } @@ -373,18 +373,18 @@ describe('async validation - runAsyncValidationOnInit', () => { await new Promise((resolve) => setTimeout(resolve, 50)); - expect(asyncValidatorCalled).toBe(true); + expect(isAsyncValidatorCalled).toBe(true); }); it('should not run async validation on init by default', async () => { - let asyncValidatorCalled = false; + let isAsyncValidatorCalled = false; createSvState( { username: 'testuser' }, { asyncValidator: { username: async () => { - asyncValidatorCalled = true; + isAsyncValidatorCalled = true; return ''; } } @@ -394,7 +394,7 @@ describe('async validation - runAsyncValidationOnInit', () => { await new Promise((resolve) => setTimeout(resolve, 50)); - expect(asyncValidatorCalled).toBe(false); + expect(isAsyncValidatorCalled).toBe(false); }); }); @@ -513,7 +513,7 @@ describe('async validation - multiple fields', () => { describe('async validation - nested paths', () => { it('should trigger async validator when nested property changes', async () => { - let asyncValidatorCalled = false; + let isAsyncValidatorCalled = false; let receivedValue: unknown; const { data, state } = createSvState( @@ -521,7 +521,7 @@ describe('async validation - nested paths', () => { { asyncValidator: { 'user.name': async (value) => { - asyncValidatorCalled = true; + isAsyncValidatorCalled = true; receivedValue = value; return value === 'taken' ? 'Name taken' : ''; } @@ -533,20 +533,20 @@ describe('async validation - nested paths', () => { data.user.name = 'testname'; await new Promise((resolve) => setTimeout(resolve, 50)); - expect(asyncValidatorCalled).toBe(true); + expect(isAsyncValidatorCalled).toBe(true); expect(receivedValue).toBe('testname'); expect(get(state.asyncErrors)).toEqual({ 'user.name': '' }); }); it('should trigger async validator when parent property changes', async () => { - let asyncValidatorCalled = false; + let isAsyncValidatorCalled = false; const { data, state } = createSvState( { user: { name: '' } }, { asyncValidator: { user: async (value) => { - asyncValidatorCalled = true; + isAsyncValidatorCalled = true; const user = value as { name: string }; return user.name === 'taken' ? 'User invalid' : ''; } @@ -558,7 +558,7 @@ describe('async validation - nested paths', () => { data.user.name = 'taken'; await new Promise((resolve) => setTimeout(resolve, 50)); - expect(asyncValidatorCalled).toBe(true); + expect(isAsyncValidatorCalled).toBe(true); expect(get(state.asyncErrors)).toEqual({ user: 'User invalid' }); }); }); @@ -716,7 +716,7 @@ describe('async validation - maxConcurrentAsyncValidations', () => { }); it('should remove cancelled validation from queue', async () => { - let fieldEValidatorCalled = false; + let isFieldEValidatorCalled = false; const { data } = createSvState( { a: '', b: '', c: '', d: '', e: '' }, @@ -739,7 +739,7 @@ describe('async validation - maxConcurrentAsyncValidations', () => { return ''; }, e: async () => { - fieldEValidatorCalled = true; + isFieldEValidatorCalled = true; return ''; } } @@ -764,7 +764,7 @@ describe('async validation - maxConcurrentAsyncValidations', () => { await new Promise((resolve) => setTimeout(resolve, 300)); // e should have been called (with the second value) - expect(fieldEValidatorCalled).toBe(true); + expect(isFieldEValidatorCalled).toBe(true); }); it('should use default limit of 4 when not specified', async () => { diff --git a/test/plugins-analytics.test.svelte.ts b/test/plugins-analytics.test.svelte.ts index 267d740..672fc7b 100644 --- a/test/plugins-analytics.test.svelte.ts +++ b/test/plugins-analytics.test.svelte.ts @@ -5,7 +5,9 @@ describe('analyticsPlugin', () => { it('should buffer events and flush at batch size', () => { const flushed: AnalyticsEvent[][] = []; const analytics = analyticsPlugin({ - onFlush: (events) => flushed.push([...events]), + onFlush: (events) => { + flushed.push([...events]); + }, batchSize: 3, flushInterval: 0 }); @@ -24,7 +26,9 @@ describe('analyticsPlugin', () => { it('should flush on interval', async () => { const flushed: AnalyticsEvent[][] = []; const analytics = analyticsPlugin({ - onFlush: (events) => flushed.push([...events]), + onFlush: (events) => { + flushed.push([...events]); + }, batchSize: 100, flushInterval: 50 }); @@ -40,7 +44,9 @@ describe('analyticsPlugin', () => { it('should filter by include types', () => { const flushed: AnalyticsEvent[][] = []; const analytics = analyticsPlugin({ - onFlush: (events) => flushed.push([...events]), + onFlush: (events) => { + flushed.push([...events]); + }, batchSize: 100, flushInterval: 0, include: ['action'] @@ -58,7 +64,9 @@ describe('analyticsPlugin', () => { it('should flush remaining on destroy', () => { const flushed: AnalyticsEvent[][] = []; const analytics = analyticsPlugin({ - onFlush: (events) => flushed.push([...events]), + onFlush: (events) => { + flushed.push([...events]); + }, batchSize: 100, flushInterval: 0 }); @@ -75,7 +83,9 @@ describe('analyticsPlugin', () => { it('should flush all pending with flush()', () => { const flushed: AnalyticsEvent[][] = []; const analytics = analyticsPlugin({ - onFlush: (events) => flushed.push([...events]), + onFlush: (events) => { + flushed.push([...events]); + }, batchSize: 100, flushInterval: 0 }); @@ -92,7 +102,9 @@ describe('analyticsPlugin', () => { it('should track action events', async () => { const flushed: AnalyticsEvent[][] = []; const analytics = analyticsPlugin({ - onFlush: (events) => flushed.push([...events]), + onFlush: (events) => { + flushed.push([...events]); + }, batchSize: 100, flushInterval: 0 }); @@ -110,7 +122,9 @@ describe('analyticsPlugin', () => { it('should track rollback and reset events', () => { const flushed: AnalyticsEvent[][] = []; const analytics = analyticsPlugin({ - onFlush: (events) => flushed.push([...events]), + onFlush: (events) => { + flushed.push([...events]); + }, batchSize: 100, flushInterval: 0 }); @@ -135,7 +149,9 @@ describe('analyticsPlugin', () => { it('should track snapshot events', () => { const flushed: AnalyticsEvent[][] = []; const analytics = analyticsPlugin({ - onFlush: (events) => flushed.push([...events]), + onFlush: (events) => { + flushed.push([...events]); + }, batchSize: 100, flushInterval: 0 }); diff --git a/test/plugins-autosave.test.svelte.ts b/test/plugins-autosave.test.svelte.ts index 71e8c9b..175d756 100644 --- a/test/plugins-autosave.test.svelte.ts +++ b/test/plugins-autosave.test.svelte.ts @@ -86,7 +86,9 @@ describe('autosavePlugin', () => { }, idle: 50, onlyWhenDirty: false, - onError: (error) => errors.push(error) + onError: (error) => { + errors.push(error); + } }); const { data } = createSvState({ name: 'test' }, undefined, { plugins: [autosave] }); diff --git a/test/plugins-sync.test.svelte.ts b/test/plugins-sync.test.svelte.ts index 303fb2a..ede6067 100644 --- a/test/plugins-sync.test.svelte.ts +++ b/test/plugins-sync.test.svelte.ts @@ -4,8 +4,13 @@ import { createSvState } from '../src/state.svelte'; // Mock BroadcastChannel class MockBroadcastChannel { static channels = new Map(); - name: string; + + static reset() { + this.channels.clear(); + } + private listeners: ((event: MessageEvent) => void)[] = []; + name: string; constructor(name: string) { this.name = name; @@ -32,20 +37,16 @@ class MockBroadcastChannel { } this.listeners = []; } - - static reset() { - MockBroadcastChannel.channels.clear(); - } } describe('syncPlugin', () => { beforeEach(() => { MockBroadcastChannel.reset(); - (globalThis as Record).BroadcastChannel = MockBroadcastChannel; + vi.stubGlobal('BroadcastChannel', MockBroadcastChannel); }); afterEach(() => { - delete (globalThis as Record).BroadcastChannel; + vi.unstubAllGlobals(); }); it('should broadcast changes to other tabs', async () => { diff --git a/test/state.test.svelte.ts b/test/state.test.svelte.ts index a4fe3cc..1e8ea3a 100644 --- a/test/state.test.svelte.ts +++ b/test/state.test.svelte.ts @@ -450,19 +450,19 @@ describe('reset', () => { describe('action execution', () => { it('should execute action', async () => { - let actionCalled = false; + let isActionCalled = false; const { execute } = createSvState( { value: 0 }, { action: async () => { - actionCalled = true; + isActionCalled = true; } } ); await execute(); - expect(actionCalled).toBe(true); + expect(isActionCalled).toBe(true); }); it('should pass parameters to action', async () => { @@ -482,12 +482,12 @@ describe('action execution', () => { }); it('should set actionInProgress during execution', async () => { - let progressDuringAction = false; + let isProgressDuringAction = false; const { execute, state } = createSvState( { value: 0 }, { action: async () => { - progressDuringAction = get(state.actionInProgress); + isProgressDuringAction = get(state.actionInProgress); await new Promise((resolve) => setTimeout(resolve, 10)); } } @@ -500,7 +500,7 @@ describe('action execution', () => { await promise; - expect(progressDuringAction).toBe(true); + expect(isProgressDuringAction).toBe(true); expect(get(state.actionInProgress)).toBe(false); }); @@ -881,7 +881,7 @@ describe('async actionCompleted', () => { }); it('should set actionInProgress to false only after async actionCompleted completes', async () => { - let actionInProgressDuringCallback = false; + let isActionInProgressDuringCallback = false; const { execute, state } = createSvState( { value: 0 }, @@ -890,7 +890,7 @@ describe('async actionCompleted', () => { await new Promise((resolve) => setTimeout(resolve, 5)); }, actionCompleted: async () => { - actionInProgressDuringCallback = get(state.actionInProgress); + isActionInProgressDuringCallback = get(state.actionInProgress); await new Promise((resolve) => setTimeout(resolve, 10)); } } @@ -898,7 +898,7 @@ describe('async actionCompleted', () => { await execute(); - expect(actionInProgressDuringCallback).toBe(true); + expect(isActionInProgressDuringCallback).toBe(true); expect(get(state.actionInProgress)).toBe(false); }); }); @@ -920,13 +920,13 @@ describe('async effect rejection', () => { }); it('should not throw error when effect callback is synchronous', () => { - let effectCalled = false; + let isEffectCalled = false; const { data } = createSvState( { value: 0 }, { effect: () => { - effectCalled = true; + isEffectCalled = true; } } ); @@ -935,42 +935,42 @@ describe('async effect rejection', () => { data.value = 1; }).not.toThrow(); - expect(effectCalled).toBe(true); + expect(isEffectCalled).toBe(true); }); }); describe('synchronous action', () => { it('should handle synchronous action', async () => { - let actionCalled = false; + let isActionCalled = false; const { execute } = createSvState( { value: 0 }, { action: () => { - actionCalled = true; + isActionCalled = true; } } ); await execute(); - expect(actionCalled).toBe(true); + expect(isActionCalled).toBe(true); }); it('should handle synchronous actionCompleted', async () => { - let completedCalled = false; + let isCompletedCalled = false; const { execute } = createSvState( { value: 0 }, { action: () => {}, actionCompleted: () => { - completedCalled = true; + isCompletedCalled = true; } } ); await execute(); - expect(completedCalled).toBe(true); + expect(isCompletedCalled).toBe(true); }); }); @@ -1398,8 +1398,7 @@ describe('rollbackTo', () => { { value: 0 }, { effect: ({ snapshot, currentValue }) => { - if (currentValue === 2) snapshot('Milestone', false); - else if (currentValue === 5) snapshot('Milestone', false); + if (currentValue === 2 || currentValue === 5) snapshot('Milestone', false); else snapshot(`Set to ${currentValue}`, false); } } diff --git a/test/validators.test.ts b/test/validators.test.ts index f40925f..9ffdd70 100644 --- a/test/validators.test.ts +++ b/test/validators.test.ts @@ -53,7 +53,7 @@ describe('stringValidator', () => { }); it('should fail for whitespace-only when trimmed', () => { - expect(stringValidator(' ').prepare('trim').required().getError()).toBe('Required'); + expect(stringValidator(' '.repeat(3)).prepare('trim').required().getError()).toBe('Required'); }); }); @@ -110,7 +110,7 @@ describe('stringValidator', () => { }); it('should fail for whitespace-only string', () => { - expect(stringValidator(' ').notBlank().getError()).toBe('Must not be blank'); + expect(stringValidator(' '.repeat(3)).notBlank().getError()).toBe('Must not be blank'); expect(stringValidator('\t\n').notBlank().getError()).toBe('Must not be blank'); }); @@ -344,7 +344,7 @@ describe('stringValidator', () => { }); it('should pass for http URL', () => { - expect(stringValidator('http://example.com').website('required').getError()).toBe(''); + expect(stringValidator('https://example.com').website('required').getError()).toBe(''); }); it('should fail for URL without prefix', () => { @@ -372,7 +372,7 @@ describe('stringValidator', () => { }); it('should fail for http URL', () => { - expect(stringValidator('http://example.com').website('forbidden').getError()).toBe( + expect(stringValidator('https://example.com').website('forbidden').getError()).toBe( 'Must not start with http:// or https://' ); }); @@ -384,7 +384,7 @@ describe('stringValidator', () => { }); it('should pass for URL with http prefix', () => { - expect(stringValidator('http://example.com').website('optional').getError()).toBe(''); + expect(stringValidator('https://example.com').website('optional').getError()).toBe(''); }); it('should pass for URL without prefix', () => { @@ -395,7 +395,7 @@ describe('stringValidator', () => { describe('default parameter', () => { it('should default to optional when no parameter provided', () => { expect(stringValidator('https://example.com').website().getError()).toBe(''); - expect(stringValidator('http://example.com').website().getError()).toBe(''); + expect(stringValidator('https://example.com').website().getError()).toBe(''); expect(stringValidator('example.com').website().getError()).toBe(''); }); }); @@ -626,7 +626,7 @@ describe('numberValidator', () => { }); it('should fail for NaN', () => { - expect(numberValidator(Number.NaN).required().getError()).toBe('Required'); + expect(numberValidator(NaN).required().getError()).toBe('Required'); }); }); @@ -638,7 +638,7 @@ describe('numberValidator', () => { }); it('should fail for NaN when condition is true', () => { - expect(numberValidator(Number.NaN).requiredIf(true).getError()).toBe('Required'); + expect(numberValidator(NaN).requiredIf(true).getError()).toBe('Required'); }); it('should pass for valid value when condition is true', () => { @@ -656,7 +656,7 @@ describe('numberValidator', () => { }); it('should pass for NaN when condition is false', () => { - expect(numberValidator(Number.NaN).requiredIf(false).getError()).toBe(''); + expect(numberValidator(NaN).requiredIf(false).getError()).toBe(''); }); it('should pass for valid value when condition is false', () => { @@ -839,7 +839,7 @@ describe('numberValidator', () => { describe('decimal', () => { it('should pass when decimal places are within limit', () => { - expect(numberValidator(3.14).decimal(2).getError()).toBe(''); + expect(numberValidator(4.56).decimal(2).getError()).toBe(''); }); it('should pass for integer when decimal places allowed', () => { @@ -851,7 +851,7 @@ describe('numberValidator', () => { }); it('should fail when decimal places exceed limit', () => { - expect(numberValidator(3.141_59).decimal(2).getError()).toBe('Maximum 2 decimal places'); + expect(numberValidator(4.56789).decimal(2).getError()).toBe('Maximum 2 decimal places'); }); it('should pass for zero decimal places with integer', () => { @@ -863,7 +863,7 @@ describe('numberValidator', () => { }); it('should skip decimal validation for NaN input', () => { - expect(numberValidator(Number.NaN).decimal(2).getError()).toBe(''); + expect(numberValidator(NaN).decimal(2).getError()).toBe(''); }); }); @@ -901,7 +901,7 @@ describe('numberValidator', () => { describe('method chaining', () => { it('should return first error only', () => { - expect(numberValidator(Number.NaN).required().min(5).getError()).toBe('Required'); + expect(numberValidator(NaN).required().min(5).getError()).toBe('Required'); }); it('should chain multiple validations successfully', () => {