diff --git a/.gitignore b/.gi similarity index 100% rename from .gitignore rename to .gi diff --git a/.svelte-kit/ambient.d.ts b/.svelte-kit/ambient.d.ts new file mode 100644 index 0000000..f762020 --- /dev/null +++ b/.svelte-kit/ambient.d.ts @@ -0,0 +1,279 @@ + +// this file is generated — do not edit it + + +/// + +/** + * Environment variables [loaded by Vite](https://vitejs.dev/guide/env-and-mode.html#env-files) from `.env` files and `process.env`. Like [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), this module cannot be imported into client-side code. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://svelte.dev/docs/kit/configuration#env) (if configured). + * + * _Unlike_ [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), the values exported from this module are statically injected into your bundle at build time, enabling optimisations like dead code elimination. + * + * ```ts + * import { API_KEY } from '$env/static/private'; + * ``` + * + * Note that all environment variables referenced in your code should be declared (for example in an `.env` file), even if they don't have a value until the app is deployed: + * + * ``` + * MY_FEATURE_FLAG="" + * ``` + * + * You can override `.env` values from the command line like so: + * + * ```bash + * MY_FEATURE_FLAG="enabled" npm run dev + * ``` + */ +declare module '$env/static/private' { + export const SHELL: string; + export const npm_command: string; + export const SESSION_MANAGER: string; + export const npm_config_userconfig: string; + export const COLORTERM: string; + export const XDG_CONFIG_DIRS: string; + export const npm_config_cache: string; + export const XDG_SESSION_PATH: string; + export const XDG_MENU_PREFIX: string; + export const TERM_PROGRAM_VERSION: string; + export const ICEAUTHORITY: string; + export const NODE: string; + export const LC_ADDRESS: string; + export const LC_NAME: string; + export const MEMORY_PRESSURE_WRITE: string; + export const COLOR: string; + export const npm_config_local_prefix: string; + export const DESKTOP_SESSION: string; + export const LC_MONETARY: string; + export const GTK_RC_FILES: string; + export const NO_AT_BRIDGE: string; + export const npm_config_globalconfig: string; + export const EDITOR: string; + export const XDG_SEAT: string; + export const PWD: string; + export const LOGNAME: string; + export const XDG_SESSION_DESKTOP: string; + export const XDG_SESSION_TYPE: string; + export const npm_config_init_module: string; + export const SYSTEMD_EXEC_PID: string; + export const _: string; + export const XAUTHORITY: string; + export const VSCODE_GIT_ASKPASS_NODE: string; + export const MOTD_SHOWN: string; + export const GTK2_RC_FILES: string; + export const HOME: string; + export const LANG: string; + export const LC_PAPER: string; + export const XDG_CURRENT_DESKTOP: string; + export const npm_package_version: string; + export const MEMORY_PRESSURE_WATCH: string; + export const WAYLAND_DISPLAY: string; + export const GIT_ASKPASS: string; + export const XDG_SEAT_PATH: string; + export const INVOCATION_ID: string; + export const MANAGERPID: string; + export const INIT_CWD: string; + export const CHROME_DESKTOP: string; + export const KDE_SESSION_UID: string; + export const npm_lifecycle_script: string; + export const VSCODE_GIT_ASKPASS_EXTRA_ARGS: string; + export const XKB_DEFAULT_LAYOUT: string; + export const npm_config_npm_version: string; + export const XDG_SESSION_CLASS: string; + export const LC_IDENTIFICATION: string; + export const TERM: string; + export const npm_package_name: string; + export const npm_config_prefix: string; + export const USER: string; + export const VSCODE_GIT_IPC_HANDLE: string; + export const QT_WAYLAND_RECONNECT: string; + export const KDE_SESSION_VERSION: string; + export const PAM_KWALLET5_LOGIN: string; + export const DISPLAY: string; + export const npm_lifecycle_event: string; + export const GSK_RENDERER: string; + export const SHLVL: string; + export const LC_TELEPHONE: string; + export const LC_MEASUREMENT: string; + export const XDG_VTNR: string; + export const XDG_SESSION_ID: string; + export const npm_config_user_agent: string; + export const ROCM_PATH: string; + export const npm_execpath: string; + export const XDG_RUNTIME_DIR: string; + export const MKLROOT: string; + export const DEBUGINFOD_URLS: string; + export const npm_package_json: string; + export const LC_TIME: string; + export const VSCODE_GIT_ASKPASS_MAIN: string; + export const QT_AUTO_SCREEN_SCALE_FACTOR: string; + export const JOURNAL_STREAM: string; + export const XDG_DATA_DIRS: string; + export const KDE_FULL_SESSION: string; + export const GDK_BACKEND: string; + export const npm_config_noproxy: string; + export const BROWSER: string; + export const PATH: string; + export const npm_config_node_gyp: string; + export const ORIGINAL_XDG_CURRENT_DESKTOP: string; + export const DBUS_SESSION_BUS_ADDRESS: string; + export const npm_config_global_prefix: string; + export const KDE_APPLICATIONS_AS_SCOPE: string; + export const MAIL: string; + export const npm_node_execpath: string; + export const npm_config_engine_strict: string; + export const LC_NUMERIC: string; + export const TERM_PROGRAM: string; + export const NODE_ENV: string; +} + +/** + * Similar to [`$env/static/private`](https://svelte.dev/docs/kit/$env-static-private), except that it only includes environment variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code. + * + * Values are replaced statically at build time. + * + * ```ts + * import { PUBLIC_BASE_URL } from '$env/static/public'; + * ``` + */ +declare module '$env/static/public' { + +} + +/** + * This module provides access to runtime environment variables, as defined by the platform you're running on. For example if you're using [`adapter-node`](https://github.com/sveltejs/kit/tree/main/packages/adapter-node) (or running [`vite preview`](https://svelte.dev/docs/kit/cli)), this is equivalent to `process.env`. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://svelte.dev/docs/kit/configuration#env) (if configured). + * + * This module cannot be imported into client-side code. + * + * Dynamic environment variables cannot be used during prerendering. + * + * ```ts + * import { env } from '$env/dynamic/private'; + * console.log(env.DEPLOYMENT_SPECIFIC_VARIABLE); + * ``` + * + * > In `dev`, `$env/dynamic` always includes environment variables from `.env`. In `prod`, this behavior will depend on your adapter. + */ +declare module '$env/dynamic/private' { + export const env: { + SHELL: string; + npm_command: string; + SESSION_MANAGER: string; + npm_config_userconfig: string; + COLORTERM: string; + XDG_CONFIG_DIRS: string; + npm_config_cache: string; + XDG_SESSION_PATH: string; + XDG_MENU_PREFIX: string; + TERM_PROGRAM_VERSION: string; + ICEAUTHORITY: string; + NODE: string; + LC_ADDRESS: string; + LC_NAME: string; + MEMORY_PRESSURE_WRITE: string; + COLOR: string; + npm_config_local_prefix: string; + DESKTOP_SESSION: string; + LC_MONETARY: string; + GTK_RC_FILES: string; + NO_AT_BRIDGE: string; + npm_config_globalconfig: string; + EDITOR: string; + XDG_SEAT: string; + PWD: string; + LOGNAME: string; + XDG_SESSION_DESKTOP: string; + XDG_SESSION_TYPE: string; + npm_config_init_module: string; + SYSTEMD_EXEC_PID: string; + _: string; + XAUTHORITY: string; + VSCODE_GIT_ASKPASS_NODE: string; + MOTD_SHOWN: string; + GTK2_RC_FILES: string; + HOME: string; + LANG: string; + LC_PAPER: string; + XDG_CURRENT_DESKTOP: string; + npm_package_version: string; + MEMORY_PRESSURE_WATCH: string; + WAYLAND_DISPLAY: string; + GIT_ASKPASS: string; + XDG_SEAT_PATH: string; + INVOCATION_ID: string; + MANAGERPID: string; + INIT_CWD: string; + CHROME_DESKTOP: string; + KDE_SESSION_UID: string; + npm_lifecycle_script: string; + VSCODE_GIT_ASKPASS_EXTRA_ARGS: string; + XKB_DEFAULT_LAYOUT: string; + npm_config_npm_version: string; + XDG_SESSION_CLASS: string; + LC_IDENTIFICATION: string; + TERM: string; + npm_package_name: string; + npm_config_prefix: string; + USER: string; + VSCODE_GIT_IPC_HANDLE: string; + QT_WAYLAND_RECONNECT: string; + KDE_SESSION_VERSION: string; + PAM_KWALLET5_LOGIN: string; + DISPLAY: string; + npm_lifecycle_event: string; + GSK_RENDERER: string; + SHLVL: string; + LC_TELEPHONE: string; + LC_MEASUREMENT: string; + XDG_VTNR: string; + XDG_SESSION_ID: string; + npm_config_user_agent: string; + ROCM_PATH: string; + npm_execpath: string; + XDG_RUNTIME_DIR: string; + MKLROOT: string; + DEBUGINFOD_URLS: string; + npm_package_json: string; + LC_TIME: string; + VSCODE_GIT_ASKPASS_MAIN: string; + QT_AUTO_SCREEN_SCALE_FACTOR: string; + JOURNAL_STREAM: string; + XDG_DATA_DIRS: string; + KDE_FULL_SESSION: string; + GDK_BACKEND: string; + npm_config_noproxy: string; + BROWSER: string; + PATH: string; + npm_config_node_gyp: string; + ORIGINAL_XDG_CURRENT_DESKTOP: string; + DBUS_SESSION_BUS_ADDRESS: string; + npm_config_global_prefix: string; + KDE_APPLICATIONS_AS_SCOPE: string; + MAIL: string; + npm_node_execpath: string; + npm_config_engine_strict: string; + LC_NUMERIC: string; + TERM_PROGRAM: string; + NODE_ENV: string; + [key: `PUBLIC_${string}`]: undefined; + [key: `${string}`]: string | undefined; + } +} + +/** + * Similar to [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), but only includes variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code. + * + * Note that public dynamic environment variables must all be sent from the server to the client, causing larger network requests — when possible, use `$env/static/public` instead. + * + * Dynamic environment variables cannot be used during prerendering. + * + * ```ts + * import { env } from '$env/dynamic/public'; + * console.log(env.PUBLIC_DEPLOYMENT_SPECIFIC_VARIABLE); + * ``` + */ +declare module '$env/dynamic/public' { + export const env: { + [key: `PUBLIC_${string}`]: string | undefined; + } +} diff --git a/.svelte-kit/generated/client/app.js b/.svelte-kit/generated/client/app.js new file mode 100644 index 0000000..b0d1237 --- /dev/null +++ b/.svelte-kit/generated/client/app.js @@ -0,0 +1,28 @@ +export { matchers } from './matchers.js'; + +export const nodes = [ + () => import('./nodes/0'), + () => import('./nodes/1'), + () => import('./nodes/2') +]; + +export const server_loads = []; + +export const dictionary = { + "/": [2] + }; + +export const hooks = { + handleError: (({ error }) => { console.error(error) }), + + reroute: (() => {}), + transport: {} +}; + +export const decoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.decode])); + +export const hash = false; + +export const decode = (type, value) => decoders[type](value); + +export { default as root } from '../root.js'; \ No newline at end of file diff --git a/.svelte-kit/generated/client/matchers.js b/.svelte-kit/generated/client/matchers.js new file mode 100644 index 0000000..f6bd30a --- /dev/null +++ b/.svelte-kit/generated/client/matchers.js @@ -0,0 +1 @@ +export const matchers = {}; \ No newline at end of file diff --git a/.svelte-kit/generated/client/nodes/0.js b/.svelte-kit/generated/client/nodes/0.js new file mode 100644 index 0000000..f02ab1d --- /dev/null +++ b/.svelte-kit/generated/client/nodes/0.js @@ -0,0 +1 @@ +export { default as component } from "../../../../node_modules/@sveltejs/kit/src/runtime/components/svelte-5/layout.svelte"; \ No newline at end of file diff --git a/.svelte-kit/generated/client/nodes/1.js b/.svelte-kit/generated/client/nodes/1.js new file mode 100644 index 0000000..bf58bad --- /dev/null +++ b/.svelte-kit/generated/client/nodes/1.js @@ -0,0 +1 @@ +export { default as component } from "../../../../node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte"; \ No newline at end of file diff --git a/.svelte-kit/generated/client/nodes/2.js b/.svelte-kit/generated/client/nodes/2.js new file mode 100644 index 0000000..1cb4f85 --- /dev/null +++ b/.svelte-kit/generated/client/nodes/2.js @@ -0,0 +1 @@ +export { default as component } from "../../../../src/routes/+page.svelte"; \ No newline at end of file diff --git a/.svelte-kit/generated/root.js b/.svelte-kit/generated/root.js new file mode 100644 index 0000000..4d1e892 --- /dev/null +++ b/.svelte-kit/generated/root.js @@ -0,0 +1,3 @@ +import { asClassComponent } from 'svelte/legacy'; +import Root from './root.svelte'; +export default asClassComponent(Root); \ No newline at end of file diff --git a/.svelte-kit/generated/root.svelte b/.svelte-kit/generated/root.svelte new file mode 100644 index 0000000..8f82bae --- /dev/null +++ b/.svelte-kit/generated/root.svelte @@ -0,0 +1,66 @@ + + + + +{#if constructors[1]} + {@const Pyramid_0 = constructors[0]} + + + + + + +{:else} + {@const Pyramid_0 = constructors[0]} + + + +{/if} + +{#if mounted} +
+ {#if navigated} + {title} + {/if} +
+{/if} \ No newline at end of file diff --git a/.svelte-kit/generated/server/internal.js b/.svelte-kit/generated/server/internal.js new file mode 100644 index 0000000..11eec8a --- /dev/null +++ b/.svelte-kit/generated/server/internal.js @@ -0,0 +1,48 @@ + +import root from '../root.js'; +import { set_building, set_prerendering } from '__sveltekit/environment'; +import { set_assets } from '__sveltekit/paths'; +import { set_manifest, set_read_implementation } from '__sveltekit/server'; +import { set_private_env, set_public_env, set_safe_public_env } from '../../../node_modules/@sveltejs/kit/src/runtime/shared-server.js'; + +export const options = { + app_template_contains_nonce: false, + csp: {"mode":"auto","directives":{"upgrade-insecure-requests":false,"block-all-mixed-content":false},"reportOnly":{"upgrade-insecure-requests":false,"block-all-mixed-content":false}}, + csrf_check_origin: true, + embedded: false, + env_public_prefix: 'PUBLIC_', + env_private_prefix: '', + hash_routing: false, + hooks: null, // added lazily, via `get_hooks` + preload_strategy: "modulepreload", + root, + service_worker: false, + templates: { + app: ({ head, body, assets, nonce, env }) => "\n\n \n \n \n \n \n \n
" + body + "
\n \n\n\n", + error: ({ status, message }) => "\n\n\t\n\t\t\n\t\t" + message + "\n\n\t\t\n\t\n\t\n\t\t
\n\t\t\t" + status + "\n\t\t\t
\n\t\t\t\t

" + message + "

\n\t\t\t
\n\t\t
\n\t\n\n" + }, + version_hash: "2x21hb" +}; + +export async function get_hooks() { + let handle; + let handleFetch; + let handleError; + let init; + + + let reroute; + let transport; + + + return { + handle, + handleFetch, + handleError, + init, + reroute, + transport + }; +} + +export { set_assets, set_building, set_manifest, set_prerendering, set_private_env, set_public_env, set_read_implementation, set_safe_public_env }; diff --git a/.svelte-kit/non-ambient.d.ts b/.svelte-kit/non-ambient.d.ts new file mode 100644 index 0000000..46bd7fb --- /dev/null +++ b/.svelte-kit/non-ambient.d.ts @@ -0,0 +1,25 @@ + +// this file is generated — do not edit it + + +declare module "svelte/elements" { + export interface HTMLAttributes { + 'data-sveltekit-keepfocus'?: true | '' | 'off' | undefined | null; + 'data-sveltekit-noscroll'?: true | '' | 'off' | undefined | null; + 'data-sveltekit-preload-code'?: + | true + | '' + | 'eager' + | 'viewport' + | 'hover' + | 'tap' + | 'off' + | undefined + | null; + 'data-sveltekit-preload-data'?: true | '' | 'hover' | 'tap' | 'off' | undefined | null; + 'data-sveltekit-reload'?: true | '' | 'off' | undefined | null; + 'data-sveltekit-replacestate'?: true | '' | 'off' | undefined | null; + } +} + +export {}; diff --git a/.svelte-kit/tsconfig.json b/.svelte-kit/tsconfig.json new file mode 100644 index 0000000..a2a7665 --- /dev/null +++ b/.svelte-kit/tsconfig.json @@ -0,0 +1,49 @@ +{ + "compilerOptions": { + "paths": { + "$lib": [ + "../src/lib" + ], + "$lib/*": [ + "../src/lib/*" + ] + }, + "rootDirs": [ + "..", + "./types" + ], + "verbatimModuleSyntax": true, + "isolatedModules": true, + "lib": [ + "esnext", + "DOM", + "DOM.Iterable" + ], + "moduleResolution": "bundler", + "module": "esnext", + "noEmit": true, + "target": "esnext" + }, + "include": [ + "ambient.d.ts", + "non-ambient.d.ts", + "./types/**/$types.d.ts", + "../vite.config.js", + "../vite.config.ts", + "../src/**/*.js", + "../src/**/*.ts", + "../src/**/*.svelte", + "../tests/**/*.js", + "../tests/**/*.ts", + "../tests/**/*.svelte" + ], + "exclude": [ + "../node_modules/**", + "../src/service-worker.js", + "../src/service-worker/**/*.js", + "../src/service-worker.ts", + "../src/service-worker/**/*.ts", + "../src/service-worker.d.ts", + "../src/service-worker/**/*.d.ts" + ] +} \ No newline at end of file diff --git a/.svelte-kit/types/route_meta_data.json b/.svelte-kit/types/route_meta_data.json new file mode 100644 index 0000000..a96ec02 --- /dev/null +++ b/.svelte-kit/types/route_meta_data.json @@ -0,0 +1,3 @@ +{ + "/": [] +} \ No newline at end of file diff --git a/.svelte-kit/types/src/routes/$types.d.ts b/.svelte-kit/types/src/routes/$types.d.ts new file mode 100644 index 0000000..9e82d29 --- /dev/null +++ b/.svelte-kit/types/src/routes/$types.d.ts @@ -0,0 +1,24 @@ +import type * as Kit from '@sveltejs/kit'; + +type Expand = T extends infer O ? { [K in keyof O]: O[K] } : never; +// @ts-ignore +type MatcherParam = M extends (param : string) => param is infer U ? U extends string ? U : string : string; +type RouteParams = { }; +type RouteId = '/'; +type MaybeWithVoid = {} extends T ? T | void : T; +export type RequiredKeys = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T]; +type OutputDataShape = MaybeWithVoid> & Partial> & Record> +type EnsureDefined = T extends null | undefined ? {} : T; +type OptionalUnion, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude]?: never } & U : never; +export type Snapshot = Kit.Snapshot; +type PageParentData = EnsureDefined; +type LayoutRouteId = RouteId | "/" | null +type LayoutParams = RouteParams & { } +type LayoutParentData = EnsureDefined<{}>; + +export type PageServerData = null; +export type PageData = Expand; +export type PageProps = { data: PageData } +export type LayoutServerData = null; +export type LayoutData = Expand; +export type LayoutProps = { data: LayoutData; children: import("svelte").Snippet } \ No newline at end of file diff --git a/node_modules/.bin/acorn b/node_modules/.bin/acorn new file mode 120000 index 0000000..cf76760 --- /dev/null +++ b/node_modules/.bin/acorn @@ -0,0 +1 @@ +../acorn/bin/acorn \ No newline at end of file diff --git a/node_modules/.bin/esbuild b/node_modules/.bin/esbuild new file mode 120000 index 0000000..c83ac07 --- /dev/null +++ b/node_modules/.bin/esbuild @@ -0,0 +1 @@ +../esbuild/bin/esbuild \ No newline at end of file diff --git a/node_modules/.bin/nanoid b/node_modules/.bin/nanoid new file mode 120000 index 0000000..e2be547 --- /dev/null +++ b/node_modules/.bin/nanoid @@ -0,0 +1 @@ +../nanoid/bin/nanoid.cjs \ No newline at end of file diff --git a/node_modules/.bin/rollup b/node_modules/.bin/rollup new file mode 120000 index 0000000..5939621 --- /dev/null +++ b/node_modules/.bin/rollup @@ -0,0 +1 @@ +../rollup/dist/bin/rollup \ No newline at end of file diff --git a/node_modules/.bin/svelte-check b/node_modules/.bin/svelte-check new file mode 120000 index 0000000..2d8d3dc --- /dev/null +++ b/node_modules/.bin/svelte-check @@ -0,0 +1 @@ +../svelte-check/bin/svelte-check \ No newline at end of file diff --git a/node_modules/.bin/svelte-kit b/node_modules/.bin/svelte-kit new file mode 120000 index 0000000..faccdd4 --- /dev/null +++ b/node_modules/.bin/svelte-kit @@ -0,0 +1 @@ +../@sveltejs/kit/svelte-kit.js \ No newline at end of file diff --git a/node_modules/.bin/tsc b/node_modules/.bin/tsc new file mode 120000 index 0000000..0863208 --- /dev/null +++ b/node_modules/.bin/tsc @@ -0,0 +1 @@ +../typescript/bin/tsc \ No newline at end of file diff --git a/node_modules/.bin/tsserver b/node_modules/.bin/tsserver new file mode 120000 index 0000000..f8f8f1a --- /dev/null +++ b/node_modules/.bin/tsserver @@ -0,0 +1 @@ +../typescript/bin/tsserver \ No newline at end of file diff --git a/node_modules/.bin/vite b/node_modules/.bin/vite new file mode 120000 index 0000000..6d1e3be --- /dev/null +++ b/node_modules/.bin/vite @@ -0,0 +1 @@ +../vite/bin/vite.js \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..b86aa74 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,812 @@ +{ + "name": "site", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", + "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.1.tgz", + "integrity": "sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.1.tgz", + "integrity": "sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@sveltejs/adapter-auto": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-4.0.0.tgz", + "integrity": "sha512-kmuYSQdD2AwThymQF0haQhM8rE5rhutQXG4LNbnbShwhMO4qQGnKaaTy+88DuNSuoQDi58+thpq8XpHc1+oEKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-meta-resolve": "^4.1.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.17.3.tgz", + "integrity": "sha512-GcNaPDr0ti4O/TonPewkML2DG7UVXkSxPN3nPMlpmx0Rs4b2kVP4gymz98WEHlfzPXdd4uOOT1Js26DtieTNBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^0.6.0", + "devalue": "^5.1.0", + "esm-env": "^1.2.2", + "import-meta-resolve": "^4.1.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^3.0.0" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.3 || ^6.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.0.3.tgz", + "integrity": "sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", + "debug": "^4.4.0", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.15", + "vitefu": "^1.0.4" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22" + }, + "peerDependencies": { + "svelte": "^5.0.0", + "vite": "^6.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-4.0.1.tgz", + "integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.7" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.0", + "svelte": "^5.0.0", + "vite": "^6.0.0" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-typescript": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz", + "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": ">=8.9.0" + } + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/devalue": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", + "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", + "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.0", + "@esbuild/android-arm": "0.25.0", + "@esbuild/android-arm64": "0.25.0", + "@esbuild/android-x64": "0.25.0", + "@esbuild/darwin-arm64": "0.25.0", + "@esbuild/darwin-x64": "0.25.0", + "@esbuild/freebsd-arm64": "0.25.0", + "@esbuild/freebsd-x64": "0.25.0", + "@esbuild/linux-arm": "0.25.0", + "@esbuild/linux-arm64": "0.25.0", + "@esbuild/linux-ia32": "0.25.0", + "@esbuild/linux-loong64": "0.25.0", + "@esbuild/linux-mips64el": "0.25.0", + "@esbuild/linux-ppc64": "0.25.0", + "@esbuild/linux-riscv64": "0.25.0", + "@esbuild/linux-s390x": "0.25.0", + "@esbuild/linux-x64": "0.25.0", + "@esbuild/netbsd-arm64": "0.25.0", + "@esbuild/netbsd-x64": "0.25.0", + "@esbuild/openbsd-arm64": "0.25.0", + "@esbuild/openbsd-x64": "0.25.0", + "@esbuild/sunos-x64": "0.25.0", + "@esbuild/win32-arm64": "0.25.0", + "@esbuild/win32-ia32": "0.25.0", + "@esbuild/win32-x64": "0.25.0" + } + }, + "node_modules/esm-env": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esrap": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.3.tgz", + "integrity": "sha512-Xddc1RsoFJ4z9nR7W7BFaEPIp4UXoeQ0+077UdWLxbafMQFyU79sQJMk7kxNgRwQ9/aVgaKacCHC2pUACGwmYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.6" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "dev": true, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/readdirp": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/rollup": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.1.tgz", + "integrity": "sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.32.1", + "@rollup/rollup-android-arm64": "4.32.1", + "@rollup/rollup-darwin-arm64": "4.32.1", + "@rollup/rollup-darwin-x64": "4.32.1", + "@rollup/rollup-freebsd-arm64": "4.32.1", + "@rollup/rollup-freebsd-x64": "4.32.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.32.1", + "@rollup/rollup-linux-arm-musleabihf": "4.32.1", + "@rollup/rollup-linux-arm64-gnu": "4.32.1", + "@rollup/rollup-linux-arm64-musl": "4.32.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.32.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.32.1", + "@rollup/rollup-linux-riscv64-gnu": "4.32.1", + "@rollup/rollup-linux-s390x-gnu": "4.32.1", + "@rollup/rollup-linux-x64-gnu": "4.32.1", + "@rollup/rollup-linux-x64-musl": "4.32.1", + "@rollup/rollup-win32-arm64-msvc": "4.32.1", + "@rollup/rollup-win32-ia32-msvc": "4.32.1", + "@rollup/rollup-win32-x64-msvc": "4.32.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/sirv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz", + "integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svelte": { + "version": "5.19.6", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.19.6.tgz", + "integrity": "sha512-6ydekB3qyqUal+UhfMjmVOjRGtxysR8vuiMhi2nwuBtPJWnctVlsGspjVFB05qmR+TXI1emuqtZt81c0XiFleA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "acorn-typescript": "^1.4.13", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "clsx": "^2.1.1", + "esm-env": "^1.2.1", + "esrap": "^1.4.3", + "is-reference": "^3.0.3", + "locate-character": "^3.0.0", + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/svelte-check": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.1.4.tgz", + "integrity": "sha512-v0j7yLbT29MezzaQJPEDwksybTE2Ups9rUxEXy92T06TiA0cbqcO8wAOwNUVkFW6B0hsYHA+oAX3BS8b/2oHtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "chokidar": "^4.0.1", + "fdir": "^6.2.0", + "picocolors": "^1.0.0", + "sade": "^1.7.4" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "engines": { + "node": ">= 18.0.0" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": ">=5.0.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/vite": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.0.tgz", + "integrity": "sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "postcss": "^8.5.3", + "rollup": "^4.30.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.5.tgz", + "integrity": "sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA==", + "dev": true, + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/zimmerframe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", + "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/node_modules/.svelte2tsx-language-server-files/svelte-native-jsx.d.ts b/node_modules/.svelte2tsx-language-server-files/svelte-native-jsx.d.ts new file mode 100644 index 0000000..0c08d71 --- /dev/null +++ b/node_modules/.svelte2tsx-language-server-files/svelte-native-jsx.d.ts @@ -0,0 +1,32 @@ +declare namespace svelteNative.JSX { + + // Every namespace eligible for use needs to implement the following two functions + function mapElementTag( + tag: string + ): any; + + function createElement( + element: Key | undefined | null, attrs: Elements[Key] + ): any; + function createElement( + element: Key | undefined | null, attrEnhancers: T, attrs: Elements[Key] & T + ): any; + + + /* svelte specific */ + interface ElementClass { + $$prop_def: any; + } + + interface ElementAttributesProperty { + $$prop_def: any; // specify the property name to use + } + + // Add empty IntrinsicAttributes to prevent fallback to the one in the JSX namespace + interface IntrinsicAttributes { + } + + interface IntrinsicElements { + [name: string]: { [name: string]: any }; + } +} \ No newline at end of file diff --git a/node_modules/.svelte2tsx-language-server-files/svelte-shims-v4.d.ts b/node_modules/.svelte2tsx-language-server-files/svelte-shims-v4.d.ts new file mode 100644 index 0000000..fcaf92f --- /dev/null +++ b/node_modules/.svelte2tsx-language-server-files/svelte-shims-v4.d.ts @@ -0,0 +1,287 @@ +// Whenever a ambient declaration changes, its number should be increased +// This way, we avoid the situation where multiple ambient versions of svelte2tsx +// are loaded and their declarations conflict each other +// See https://github.com/sveltejs/language-tools/issues/1059 for an example bug that stems from it +// If you change anything in this file, think about whether or not it should be backported to svelte-shims.d.ts + +type AConstructorTypeOf = new (...args: U) => T; + +/** @internal PRIVATE API, DO NOT USE */ +type SvelteActionReturnType = { + update?: (args: any) => void, + destroy?: () => void +} | void + +/** @internal PRIVATE API, DO NOT USE */ +type SvelteTransitionConfig = { + delay?: number, + duration?: number, + easing?: (t: number) => number, + css?: (t: number, u: number) => string, + tick?: (t: number, u: number) => void +} + +/** @internal PRIVATE API, DO NOT USE */ +type SvelteTransitionReturnType = SvelteTransitionConfig | (() => SvelteTransitionConfig) + +/** @internal PRIVATE API, DO NOT USE */ +type SvelteAnimationReturnType = { + delay?: number, + duration?: number, + easing?: (t: number) => number, + css?: (t: number, u: number) => string, + tick?: (t: number, u: number) => void +} + +/** @internal PRIVATE API, DO NOT USE */ +type SvelteWithOptionalProps = Omit & Partial>; +/** @internal PRIVATE API, DO NOT USE */ +type SvelteAllProps = { [index: string]: any } +/** @internal PRIVATE API, DO NOT USE */ +type SveltePropsAnyFallback = {[K in keyof Props]: Props[K] extends never ? never : Props[K] extends undefined ? any : Props[K]} +/** @internal PRIVATE API, DO NOT USE */ +type SvelteSlotsAnyFallback = {[K in keyof Slots]: {[S in keyof Slots[K]]: Slots[K][S] extends undefined ? any : Slots[K][S]}} +/** @internal PRIVATE API, DO NOT USE */ +type SvelteRestProps = { [index: string]: any } +/** @internal PRIVATE API, DO NOT USE */ +type SvelteSlots = { [index: string]: any } +/** @internal PRIVATE API, DO NOT USE */ +type SvelteStore = { subscribe: (run: (value: T) => any, invalidate?: any) => any } + +// Forces TypeScript to look into the type which results in a better representation of it +// which helps for error messages and is necessary for d.ts file transformation so that +// no ambient type references are left in the output +/** @internal PRIVATE API, DO NOT USE */ +type Expand = T extends infer O ? { [K in keyof O]: O[K] } : never; + +/** @internal PRIVATE API, DO NOT USE */ +type KeysMatching = {[K in keyof Obj]-?: Obj[K] extends V ? K : never}[keyof Obj] +/** @internal PRIVATE API, DO NOT USE */ +declare type __sveltets_2_CustomEvents = {[K in KeysMatching]: T[K] extends CustomEvent ? T[K]['detail']: T[K]} + +declare function __sveltets_2_ensureRightProps(props: Props): {}; +declare function __sveltets_2_instanceOf(type: AConstructorTypeOf): T; +declare function __sveltets_2_allPropsType(): SvelteAllProps +declare function __sveltets_2_restPropsType(): SvelteRestProps +declare function __sveltets_2_slotsType(slots: Slots): Record; + +// Overload of the following two functions is necessary. +// An empty array of optionalProps makes OptionalProps type any, which means we lose the prop typing. +// optionalProps need to be first or its type cannot be infered correctly. + +declare function __sveltets_2_partial( + render: {props: Props, events: Events, slots: Slots, exports?: Exports, bindings?: Bindings } +): {props: Expand>, events: Events, slots: Expand>, exports?: Exports, bindings?: Bindings } +declare function __sveltets_2_partial( + optionalProps: OptionalProps[], + render: {props: Props, events: Events, slots: Slots, exports?: Exports, bindings?: Bindings } +): {props: Expand, OptionalProps>>, events: Events, slots: Expand>, exports?: Exports, bindings?: Bindings } + +declare function __sveltets_2_partial_with_any( + render: {props: Props, events: Events, slots: Slots, exports?: Exports, bindings?: Bindings } +): {props: Expand & SvelteAllProps>, events: Events, slots: Expand>, exports?: Exports, bindings?: Bindings } +declare function __sveltets_2_partial_with_any( + optionalProps: OptionalProps[], + render: {props: Props, events: Events, slots: Slots, exports?: Exports, bindings?: Bindings } +): {props: Expand, OptionalProps> & SvelteAllProps>, events: Events, slots: Expand>, exports?: Exports, bindings?: Bindings } + + +declare function __sveltets_2_with_any( + render: {props: Props, events: Events, slots: Slots, exports?: Exports, bindings?: Bindings } +): {props: Expand, events: Events, slots: Slots, exports?: Exports, bindings?: Bindings } + +declare function __sveltets_2_with_any_event( + render: {props: Props, events: Events, slots: Slots, exports?: Exports, bindings?: Bindings } +): {props: Props, events: Events & {[evt: string]: CustomEvent;}, slots: Slots, exports?: Exports, bindings?: Bindings } + +declare function __sveltets_2_store_get(store: SvelteStore): T +declare function __sveltets_2_store_get | undefined | null>(store: Store): Store extends SvelteStore ? T : Store; +declare function __sveltets_2_any(dummy: any): any; +declare function __sveltets_2_invalidate(getValue: () => T): T + +declare function __sveltets_2_mapWindowEvent( + event: K +): HTMLBodyElementEventMap[K]; +declare function __sveltets_2_mapBodyEvent( + event: K +): WindowEventMap[K]; +declare function __sveltets_2_mapElementEvent( + event: K +): HTMLElementEventMap[K]; + +declare function __sveltets_2_bubbleEventDef( + events: Events, eventKey: K +): Events[K]; +declare function __sveltets_2_bubbleEventDef( + events: any, eventKey: string +): any; + +declare const __sveltets_2_customEvent: CustomEvent; +declare function __sveltets_2_toEventTypings(): {[Key in keyof Typings]: CustomEvent}; + +declare function __sveltets_2_unionType(t1: T1, t2: T2): T1 | T2; +declare function __sveltets_2_unionType(t1: T1, t2: T2, t3: T3): T1 | T2 | T3; +declare function __sveltets_2_unionType(t1: T1, t2: T2, t3: T3, t4: T4): T1 | T2 | T3 | T4; +declare function __sveltets_2_unionType(...types: any[]): any; + +declare function __sveltets_2_createSvelte2TsxComponent( + render: {props: Props, events: Events, slots: Slots } +): typeof import("svelte").SvelteComponent; + +declare function __sveltets_2_unwrapArr(arr: ArrayLike): T +declare function __sveltets_2_unwrapPromiseLike(promise: PromiseLike | T): T + +// v2 +declare function __sveltets_2_createCreateSlot>>(): (slotName: SlotName, attrs: Slots[SlotName]) => Record; +declare function __sveltets_2_createComponentAny(props: Record): import("svelte").SvelteComponent; + +declare function __sveltets_2_any(...dummy: any[]): any; +declare function __sveltets_2_empty(...dummy: any[]): {}; +declare function __sveltets_2_union(t1:T1,t2?:T2,t3?:T3,t4?:T4,t5?:T5,t6?:T6,t7?:T7,t8?:T8,t9?:T9,t10?:T10): T1 & T2 & T3 & T4 & T5 & T6 & T7 & T8 & T9 & T10; +declare function __sveltets_2_nonNullable(type: T): NonNullable; + +declare function __sveltets_2_cssProp(prop: Record): {}; + +// @ts-ignore Svelte v3/v4 don't have this +declare function __sveltets_2_ensureSnippet(val: ReturnType | undefined | null): any; + +/** @internal PRIVATE API, DO NOT USE */ +type __sveltets_2_SvelteAnimationReturnType = { + delay?: number, + duration?: number, + easing?: (t: number) => number, + css?: (t: number, u: number) => string, + tick?: (t: number, u: number) => void +} +declare var __sveltets_2_AnimationMove: { from: DOMRect, to: DOMRect } +declare function __sveltets_2_ensureAnimation(animationCall: __sveltets_2_SvelteAnimationReturnType): {}; + +/** @internal PRIVATE API, DO NOT USE */ +type __sveltets_2_SvelteActionReturnType = { + update?: (args: any) => void, + destroy?: () => void, + $$_attributes?: Record, +} | void +declare function __sveltets_2_ensureAction(actionCall: T): T extends {$$_attributes?: any} ? T['$$_attributes'] : {}; + +/** @internal PRIVATE API, DO NOT USE */ +type __sveltets_2_SvelteTransitionConfig = { + delay?: number, + duration?: number, + easing?: (t: number) => number, + css?: (t: number, u: number) => string, + tick?: (t: number, u: number) => void +} +/** @internal PRIVATE API, DO NOT USE */ +type __sveltets_2_SvelteTransitionReturnType = __sveltets_2_SvelteTransitionConfig | (() => __sveltets_2_SvelteTransitionConfig) +declare function __sveltets_2_ensureTransition(transitionCall: __sveltets_2_SvelteTransitionReturnType): {}; + +// Includes undefined and null for all types as all usages also allow these +declare function __sveltets_2_ensureType(type: AConstructorTypeOf, el: T | undefined | null): {}; +declare function __sveltets_2_ensureType(type1: AConstructorTypeOf, type2: AConstructorTypeOf, el: T1 | T2 | undefined | null): {}; + +// The following is necessary because there are two clashing errors that can't be solved at the same time +// when using Svelte2TsxComponent, more precisely the event typings in +// __sveltets_2_ensureComponent _SvelteComponent>(type: T): T; +// If we type it as "any", we have an error when using sth like {a: CustomEvent} +// If we type it as "{}", we have an error when using sth like {[evt: string]: CustomEvent} +// If we type it as "unknown", we get all kinds of follow up errors which we want to avoid +// Therefore introduce two more base classes just for this case. +/** + * Ambient type only used for intellisense, DO NOT USE IN YOUR PROJECT + */ +declare type ATypedSvelteComponent = { + /** + * @internal This is for type checking capabilities only + * and does not exist at runtime. Don't use this property. + */ + $$prop_def: any; + /** + * @internal This is for type checking capabilities only + * and does not exist at runtime. Don't use this property. + */ + $$events_def: any; + /** + * @internal This is for type checking capabilities only + * and does not exist at runtime. Don't use this property. + */ + $$slot_def: any; + + $on(event: string, handler: any): () => void; +} +/** + * Ambient type only used for intellisense, DO NOT USE IN YOUR PROJECT. + * + * If you're looking for the type of a Svelte Component, use `SvelteComponent` and `ComponentType` instead: + * + * ```ts + * import type { ComponentType, SvelteComponent } from "svelte"; + * let myComponentConstructor: ComponentType = ..; + * ``` + */ +declare type ConstructorOfATypedSvelteComponent = new (args: {target: any, props?: any}) => ATypedSvelteComponent +// Usage note: Cannot properly transform generic function components to class components due to TypeScript limitations +declare function __sveltets_2_ensureComponent< + T extends + | ConstructorOfATypedSvelteComponent + | (typeof import('svelte') extends { mount: any } + ? // @ts-ignore svelte.Component doesn't exist in Svelte 4 + import('svelte').Component + : never) + | null + | undefined +>( + type: T +): NonNullable< + T extends ConstructorOfATypedSvelteComponent + ? T + : typeof import('svelte') extends { mount: any } + ? // @ts-ignore svelte.Component doesn't exist in Svelte 4 + T extends import('svelte').Component< + infer Props extends Record, + infer Exports extends Record, + infer Bindings extends string + > + ? new ( + options: import('svelte').ComponentConstructorOptions + ) => import('svelte').SvelteComponent & + Exports & { $$bindings: Bindings } + : never + : never +>; + +declare function __sveltets_2_ensureArray | Iterable>(array: T): T extends ArrayLike ? U[] : T extends Iterable ? Iterable : any[]; + +type __sveltets_2_PropsWithChildren = Props & + (Slots extends { default: any } + // This is unfortunate because it means "accepts no props" turns into "accepts any prop" + // but the alternative is non-fixable type errors because of the way TypeScript index + // signatures work (they will always take precedence and make an impossible-to-satisfy children type). + ? Props extends Record + ? any + : { children?: any } + : {}); +declare function __sveltets_2_runes_constructor(render: {props: Props }): import("svelte").ComponentConstructorOptions; + +declare function __sveltets_2_get_set_binding(get: (() => T) | null | undefined, set: (t: T) => void): T; + +declare function __sveltets_$$bindings(...bindings: Bindings): Bindings[number]; + +declare function __sveltets_2_fn_component< + Props extends Record, Exports extends Record, Bindings extends string + // @ts-ignore Svelte 5 only +>(klass: {props: Props, exports?: Exports, bindings?: Bindings }): import('svelte').Component; + +interface __sveltets_2_IsomorphicComponent = any, Events extends Record = any, Slots extends Record = any, Exports = {}, Bindings = string> { + new (options: import('svelte').ComponentConstructorOptions): import('svelte').SvelteComponent & { $$bindings?: Bindings } & Exports; + (internal: unknown, props: Props extends Record ? {$$events?: Events, $$slots?: Slots} : Props & {$$events?: Events, $$slots?: Slots}): Exports & { $set?: any, $on?: any }; + z_$$bindings?: Bindings; +} + +declare function __sveltets_2_isomorphic_component< + Props extends Record, Events extends Record, Slots extends Record, Exports extends Record, Bindings extends string +>(klass: {props: Props, events: Events, slots: Slots, exports?: Exports, bindings?: Bindings }): __sveltets_2_IsomorphicComponent; + +declare function __sveltets_2_isomorphic_component_slots< + Props extends Record, Events extends Record, Slots extends Record, Exports extends Record, Bindings extends string +>(klass: {props: Props, events: Events, slots: Slots, exports?: Exports, bindings?: Bindings }): __sveltets_2_IsomorphicComponent<__sveltets_2_PropsWithChildren, Events, Slots, Exports, Bindings>; diff --git a/node_modules/.vite/_svelte_metadata.json b/node_modules/.vite/_svelte_metadata.json new file mode 100644 index 0000000..5a0d504 --- /dev/null +++ b/node_modules/.vite/_svelte_metadata.json @@ -0,0 +1 @@ +{"compilerOptions":{"css":"external","dev":true,"hmr":true},"configFile":false,"extensions":[".svelte"],"preprocess":[{"name":"vite-preprocess","style":"async ({ attributes, content, filename = '' }) => {\n\t\tconst ext = attributes.lang ? `.${attributes.lang}` : '.css';\n\t\tif (attributes.lang && !isCSSRequest(ext)) return;\n\t\tif (!cssTransform) {\n\t\t\tcssTransform = createCssTransform(style, config).then((t) => (cssTransform = t));\n\t\t}\n\t\tconst transform = await cssTransform;\n\t\tconst suffix = `${lang_sep}${ext}`;\n\t\tconst moduleId = `${filename}${suffix}`;\n\t\tconst { code, map, deps } = await transform(content, moduleId);\n\t\tremoveLangSuffix(map, suffix);\n\t\tmapToRelative(map, filename);\n\t\tconst dependencies = deps ? Array.from(deps).filter((d) => !d.endsWith(suffix)) : undefined;\n\t\treturn {\n\t\t\tcode,\n\t\t\tmap: map ?? undefined,\n\t\t\tdependencies\n\t\t};\n\t}"},{"script":"({ content, filename }) => {\n\t\tif (!filename) return;\n\n\t\tconst basename = path.basename(filename);\n\t\tif (basename.startsWith('+page.') || basename.startsWith('+layout.')) {\n\t\t\tconst match = content.match(options_regex);\n\t\t\tif (match) {\n\t\t\t\tconst fixed = basename.replace('.svelte', '(.server).js/ts');\n\n\t\t\t\tconst message =\n\t\t\t\t\t`\\n${colors.bold().red(path.relative('.', filename))}\\n` +\n\t\t\t\t\t`\\`${match[1]}\\` will be ignored — move it to ${fixed} instead. See https://svelte.dev/docs/kit/page-options for more information.`;\n\n\t\t\t\tif (!warned.has(message)) {\n\t\t\t\t\tconsole.log(message);\n\t\t\t\t\twarned.add(message);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}","markup":"({ content, filename }) => {\n\t\tif (!filename) return;\n\n\t\tconst basename = path.basename(filename);\n\t\tconst has_children =\n\t\t\tcontent.includes('\\`${isSvelte5Plus() ? ' or `{@render ...}` tag' : ''}` +\n\t\t\t\t' missing — inner content will not be rendered';\n\n\t\t\tif (!warned.has(message)) {\n\t\t\t\tconsole.log(message);\n\t\t\t\twarned.add(message);\n\t\t\t}\n\t\t}\n\t}"}]} \ No newline at end of file diff --git a/node_modules/.vite/deps/_metadata.json b/node_modules/.vite/deps/_metadata.json new file mode 100644 index 0000000..e4e5c0a --- /dev/null +++ b/node_modules/.vite/deps/_metadata.json @@ -0,0 +1,142 @@ +{ + "hash": "59b8483d", + "configHash": "128179c4", + "lockfileHash": "a4492988", + "browserHash": "5274aa10", + "optimized": { + "svelte": { + "src": "../../svelte/src/index-client.js", + "file": "svelte.js", + "fileHash": "30edb4ea", + "needsInterop": false + }, + "svelte/animate": { + "src": "../../svelte/src/animate/index.js", + "file": "svelte_animate.js", + "fileHash": "efe49e75", + "needsInterop": false + }, + "svelte/easing": { + "src": "../../svelte/src/easing/index.js", + "file": "svelte_easing.js", + "fileHash": "6aef75b7", + "needsInterop": false + }, + "svelte/internal": { + "src": "../../svelte/src/internal/index.js", + "file": "svelte_internal.js", + "fileHash": "0e075b60", + "needsInterop": true + }, + "svelte/internal/client": { + "src": "../../svelte/src/internal/client/index.js", + "file": "svelte_internal_client.js", + "fileHash": "d94966ec", + "needsInterop": false + }, + "svelte/internal/disclose-version": { + "src": "../../svelte/src/internal/disclose-version.js", + "file": "svelte_internal_disclose-version.js", + "fileHash": "63eecaea", + "needsInterop": false + }, + "svelte/internal/flags/legacy": { + "src": "../../svelte/src/internal/flags/legacy.js", + "file": "svelte_internal_flags_legacy.js", + "fileHash": "93c2442d", + "needsInterop": false + }, + "svelte/internal/flags/tracing": { + "src": "../../svelte/src/internal/flags/tracing.js", + "file": "svelte_internal_flags_tracing.js", + "fileHash": "e66f93f2", + "needsInterop": false + }, + "svelte/legacy": { + "src": "../../svelte/src/legacy/legacy-client.js", + "file": "svelte_legacy.js", + "fileHash": "e1a27bb6", + "needsInterop": false + }, + "svelte/motion": { + "src": "../../svelte/src/motion/index.js", + "file": "svelte_motion.js", + "fileHash": "1d8e2fab", + "needsInterop": false + }, + "svelte/reactivity": { + "src": "../../svelte/src/reactivity/index-client.js", + "file": "svelte_reactivity.js", + "fileHash": "77d9e53c", + "needsInterop": false + }, + "svelte/reactivity/window": { + "src": "../../svelte/src/reactivity/window/index.js", + "file": "svelte_reactivity_window.js", + "fileHash": "a6e0d036", + "needsInterop": false + }, + "svelte/store": { + "src": "../../svelte/src/store/index-client.js", + "file": "svelte_store.js", + "fileHash": "34081923", + "needsInterop": false + }, + "svelte/transition": { + "src": "../../svelte/src/transition/index.js", + "file": "svelte_transition.js", + "fileHash": "98c02919", + "needsInterop": false + }, + "svelte/events": { + "src": "../../svelte/src/events/index.js", + "file": "svelte_events.js", + "fileHash": "dd3ffcda", + "needsInterop": false + }, + "clsx": { + "src": "../../clsx/dist/clsx.mjs", + "file": "clsx.js", + "fileHash": "de0643ec", + "needsInterop": false + } + }, + "chunks": { + "chunk-RJCGZ5WE": { + "file": "chunk-RJCGZ5WE.js" + }, + "chunk-MAVRAI4X": { + "file": "chunk-MAVRAI4X.js" + }, + "chunk-QKODC7H5": { + "file": "chunk-QKODC7H5.js" + }, + "chunk-7RQDXF5S": { + "file": "chunk-7RQDXF5S.js" + }, + "chunk-YERFD2CZ": { + "file": "chunk-YERFD2CZ.js" + }, + "chunk-D2CNISQR": { + "file": "chunk-D2CNISQR.js" + }, + "chunk-YGTFLEU5": { + "file": "chunk-YGTFLEU5.js" + }, + "chunk-QCBUMAKQ": { + "file": "chunk-QCBUMAKQ.js" + }, + "chunk-X4XZK27Q": { + "file": "chunk-X4XZK27Q.js" + }, + "chunk-U7P2NEEE": { + "file": "chunk-U7P2NEEE.js" + }, + "chunk-RVAV4ZRS": { + "file": "chunk-RVAV4ZRS.js" + }, + "chunk-UGBVNEQM": { + "file": "chunk-UGBVNEQM.js" + } + } +} \ No newline at end of file diff --git a/node_modules/.vite/deps/chunk-7RQDXF5S.js b/node_modules/.vite/deps/chunk-7RQDXF5S.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/.vite/deps/chunk-7RQDXF5S.js.map b/node_modules/.vite/deps/chunk-7RQDXF5S.js.map new file mode 100644 index 0000000..9865211 --- /dev/null +++ b/node_modules/.vite/deps/chunk-7RQDXF5S.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": [], + "sourcesContent": [], + "mappings": "", + "names": [] +} diff --git a/node_modules/.vite/deps/chunk-D2CNISQR.js b/node_modules/.vite/deps/chunk-D2CNISQR.js new file mode 100644 index 0000000..7c325ec --- /dev/null +++ b/node_modules/.vite/deps/chunk-D2CNISQR.js @@ -0,0 +1,3897 @@ +import { + append, + assign_nodes, + createClassComponent, + create_fragment_from_html, + hash, + is_capture_event, + is_delegated, + is_raw_text_element, + is_void, + normalize_attribute, + sanitize_location, + set_should_intro, + should_intro +} from "./chunk-YGTFLEU5.js"; +import { + BLOCK_EFFECT, + BOUNDARY_EFFECT, + BRANCH_EFFECT, + EACH_INDEX_REACTIVE, + EACH_IS_ANIMATED, + EACH_IS_CONTROLLED, + EACH_ITEM_IMMUTABLE, + EACH_ITEM_REACTIVE, + EFFECT_RAN, + EFFECT_TRANSPARENT, + FILENAME, + HMR, + HYDRATION_END, + HYDRATION_ERROR, + HYDRATION_START, + HYDRATION_START_ELSE, + INERT, + LEGACY_DERIVED_PROP, + LEGACY_PROPS, + LOADING_ATTR_SYMBOL, + NAMESPACE_SVG, + PROPS_IS_BINDABLE, + PROPS_IS_IMMUTABLE, + PROPS_IS_LAZY_INITIAL, + PROPS_IS_RUNES, + PROPS_IS_UPDATED, + ROOT_EFFECT, + STATE_SYMBOL, + TRANSITION_GLOBAL, + TRANSITION_IN, + TRANSITION_OUT, + UNINITIALIZED, + active_effect, + active_reaction, + add_form_reset_listener, + array_from, + autofocus, + bind_invalid_checkbox_value, + block, + branch, + captured_signals, + clear_text_content, + component_api_changed, + component_api_invalid_new, + component_context, + create_event, + create_text, + deep_read_state, + define_property, + delegate, + derived, + derived_safe_equal, + destroy_effect, + dev_current_component_function, + dynamic_void_element_content, + each_key_duplicate, + effect, + effect_root, + flush_sync, + get, + get_component, + get_descriptor, + get_descriptors, + get_first_child, + get_next_sibling, + get_prototype_of, + handle_error, + hydrate_next, + hydrate_node, + hydrating, + inspect_effect, + internal_set, + invalid_snippet, + is, + is_array, + is_function, + is_promise, + is_runes, + lifecycle_legacy_only, + lifecycle_outside_component, + listen, + listen_to_event_and_reset_event, + mutable_source, + next, + noop, + not_equal, + object_keys, + pause_children, + pause_effect, + props_invalid_value, + props_rest_readonly, + proxy, + queue_idle_task, + queue_micro_task, + remove_nodes, + render_effect, + reset_is_throwing_error, + resume_effect, + run, + run_all, + run_out_transitions, + rune_outside_svelte, + safe_equals, + safe_not_equal, + set, + set_active_effect, + set_active_reaction, + set_component_context, + set_dev_current_component_function, + set_hydrate_node, + set_hydrating, + snapshot, + source, + store_invalid_shape, + svelte_element_invalid_this_value, + teardown, + untrack, + update, + user_effect, + user_pre_effect, + validate_effect, + without_reactive_context +} from "./chunk-QCBUMAKQ.js"; +import { + assignment_value_stale, + binding_property_non_reactive, + console_log_state, + hydration_attribute_changed, + hydration_html_changed, + hydration_mismatch, + invalid_raw_snippet_render, + true_default +} from "./chunk-X4XZK27Q.js"; +import { + clsx +} from "./chunk-U7P2NEEE.js"; +import { + legacy_mode_flag +} from "./chunk-RVAV4ZRS.js"; +import { + __privateAdd, + __privateGet, + __privateMethod, + __privateSet, + __publicField +} from "./chunk-UGBVNEQM.js"; + +// node_modules/svelte/src/internal/client/dev/assign.js +function compare(a, b, property, location) { + if (a !== b) { + assignment_value_stale( + property, + /** @type {string} */ + sanitize_location(location) + ); + } + return a; +} +function assign(object, property, value, location) { + return compare( + object[property] = value, + untrack(() => object[property]), + property, + location + ); +} +function assign_and(object, property, value, location) { + return compare( + object[property] && (object[property] = value), + untrack(() => object[property]), + property, + location + ); +} +function assign_or(object, property, value, location) { + return compare( + object[property] || (object[property] = value), + untrack(() => object[property]), + property, + location + ); +} +function assign_nullish(object, property, value, location) { + return compare( + object[property] ?? (object[property] = value), + untrack(() => object[property]), + property, + location + ); +} + +// node_modules/svelte/src/internal/client/dev/css.js +var all_styles = /* @__PURE__ */ new Map(); +function register_style(hash2, style) { + var styles = all_styles.get(hash2); + if (!styles) { + styles = /* @__PURE__ */ new Set(); + all_styles.set(hash2, styles); + } + styles.add(style); +} +function cleanup_styles(hash2) { + var styles = all_styles.get(hash2); + if (!styles) return; + for (const style of styles) { + style.remove(); + } + all_styles.delete(hash2); +} + +// node_modules/svelte/src/internal/client/dev/elements.js +function add_locations(fn, filename, locations) { + return (...args) => { + const dom = fn(...args); + var node = hydrating ? dom : dom.nodeType === 11 ? dom.firstChild : dom; + assign_locations(node, filename, locations); + return dom; + }; +} +function assign_location(element2, filename, location) { + element2.__svelte_meta = { + loc: { file: filename, line: location[0], column: location[1] } + }; + if (location[2]) { + assign_locations(element2.firstChild, filename, location[2]); + } +} +function assign_locations(node, filename, locations) { + var i = 0; + var depth = 0; + while (node && i < locations.length) { + if (hydrating && node.nodeType === 8) { + var comment2 = ( + /** @type {Comment} */ + node + ); + if (comment2.data === HYDRATION_START || comment2.data === HYDRATION_START_ELSE) depth += 1; + else if (comment2.data[0] === HYDRATION_END) depth -= 1; + } + if (depth === 0 && node.nodeType === 1) { + assign_location( + /** @type {Element} */ + node, + filename, + locations[i++] + ); + } + node = node.nextSibling; + } +} + +// node_modules/svelte/src/internal/client/dev/hmr.js +function hmr(original, get_source) { + function wrapper(anchor, props) { + let instance = {}; + let effect2; + let ran = false; + block(() => { + const source2 = get_source(); + const component2 = get(source2); + if (effect2) { + for (var k in instance) delete instance[k]; + destroy_effect(effect2); + } + effect2 = branch(() => { + if (ran) set_should_intro(false); + Object.defineProperties( + instance, + Object.getOwnPropertyDescriptors( + // @ts-expect-error + new.target ? new component2(anchor, props) : component2(anchor, props) + ) + ); + if (ran) set_should_intro(true); + }); + }, EFFECT_TRANSPARENT); + ran = true; + if (hydrating) { + anchor = hydrate_node; + } + return instance; + } + wrapper[FILENAME] = original[FILENAME]; + wrapper[HMR] = { + // When we accept an update, we set the original source to the new component + original, + // The `get_source` parameter reads `wrapper[HMR].source`, but in the `accept` + // function we always replace it with `previous[HMR].source`, which in practice + // means we only ever update the original + source: source(original) + }; + return wrapper; +} + +// node_modules/svelte/src/internal/client/dev/legacy.js +function check_target(target) { + if (target) { + component_api_invalid_new(target[FILENAME] ?? "a component", target.name); + } +} +function legacy_api() { + var _a; + const component2 = (_a = component_context) == null ? void 0 : _a.function; + function error(method) { + var _a2; + const parent = ((_a2 = get_component()) == null ? void 0 : _a2[FILENAME]) ?? "Something"; + component_api_changed(parent, method, component2[FILENAME]); + } + return { + $destroy: () => error("$destroy()"), + $on: () => error("$on(...)"), + $set: () => error("$set(...)") + }; +} + +// node_modules/svelte/src/internal/client/dev/inspect.js +function inspect(get_value, inspector = console.log) { + validate_effect("$inspect"); + let initial = true; + inspect_effect(() => { + var value = UNINITIALIZED; + try { + value = get_value(); + } catch (error) { + console.error(error); + } + if (value !== UNINITIALIZED) { + inspector(initial ? "init" : "update", ...snapshot(value, true)); + } + initial = false; + }); +} + +// node_modules/svelte/src/internal/client/dom/blocks/await.js +var PENDING = 0; +var THEN = 1; +var CATCH = 2; +function await_block(node, get_input, pending_fn, then_fn, catch_fn) { + var _a; + if (hydrating) { + hydrate_next(); + } + var anchor = node; + var runes = is_runes(); + var active_component_context = component_context; + var component_function = true_default ? (_a = component_context) == null ? void 0 : _a.function : null; + var input = UNINITIALIZED; + var pending_effect; + var then_effect; + var catch_effect; + var input_source = (runes ? source : mutable_source)( + /** @type {V} */ + void 0 + ); + var error_source = (runes ? source : mutable_source)(void 0); + var resolved = false; + function update2(state2, restore) { + resolved = true; + if (restore) { + set_active_effect(effect2); + set_active_reaction(effect2); + set_component_context(active_component_context); + if (true_default) set_dev_current_component_function(component_function); + } + try { + if (state2 === PENDING && pending_fn) { + if (pending_effect) resume_effect(pending_effect); + else pending_effect = branch(() => pending_fn(anchor)); + } + if (state2 === THEN && then_fn) { + if (then_effect) resume_effect(then_effect); + else then_effect = branch(() => then_fn(anchor, input_source)); + } + if (state2 === CATCH && catch_fn) { + if (catch_effect) resume_effect(catch_effect); + else catch_effect = branch(() => catch_fn(anchor, error_source)); + } + if (state2 !== PENDING && pending_effect) { + pause_effect(pending_effect, () => pending_effect = null); + } + if (state2 !== THEN && then_effect) { + pause_effect(then_effect, () => then_effect = null); + } + if (state2 !== CATCH && catch_effect) { + pause_effect(catch_effect, () => catch_effect = null); + } + } finally { + if (restore) { + if (true_default) set_dev_current_component_function(null); + set_component_context(null); + set_active_reaction(null); + set_active_effect(null); + flush_sync(); + } + } + } + var effect2 = block(() => { + if (input === (input = get_input())) return; + if (is_promise(input)) { + var promise = input; + resolved = false; + promise.then( + (value) => { + if (promise !== input) return; + internal_set(input_source, value); + update2(THEN, true); + }, + (error) => { + if (promise !== input) return; + internal_set(error_source, error); + update2(CATCH, true); + if (!catch_fn) { + throw error_source.v; + } + } + ); + if (hydrating) { + if (pending_fn) { + pending_effect = branch(() => pending_fn(anchor)); + } + } else { + queue_micro_task(() => { + if (!resolved) update2(PENDING, true); + }); + } + } else { + internal_set(input_source, input); + update2(THEN, false); + } + return () => input = UNINITIALIZED; + }); + if (hydrating) { + anchor = hydrate_node; + } +} + +// node_modules/svelte/src/internal/client/dom/blocks/if.js +function if_block(node, fn, elseif = false) { + if (hydrating) { + hydrate_next(); + } + var anchor = node; + var consequent_effect = null; + var alternate_effect = null; + var condition = UNINITIALIZED; + var flags = elseif ? EFFECT_TRANSPARENT : 0; + var has_branch = false; + const set_branch = (fn2, flag = true) => { + has_branch = true; + update_branch(flag, fn2); + }; + const update_branch = (new_condition, fn2) => { + if (condition === (condition = new_condition)) return; + let mismatch = false; + if (hydrating) { + const is_else = ( + /** @type {Comment} */ + anchor.data === HYDRATION_START_ELSE + ); + if (!!condition === is_else) { + anchor = remove_nodes(); + set_hydrate_node(anchor); + set_hydrating(false); + mismatch = true; + } + } + if (condition) { + if (consequent_effect) { + resume_effect(consequent_effect); + } else if (fn2) { + consequent_effect = branch(() => fn2(anchor)); + } + if (alternate_effect) { + pause_effect(alternate_effect, () => { + alternate_effect = null; + }); + } + } else { + if (alternate_effect) { + resume_effect(alternate_effect); + } else if (fn2) { + alternate_effect = branch(() => fn2(anchor)); + } + if (consequent_effect) { + pause_effect(consequent_effect, () => { + consequent_effect = null; + }); + } + } + if (mismatch) { + set_hydrating(true); + } + }; + block(() => { + has_branch = false; + fn(set_branch); + if (!has_branch) { + update_branch(null, null); + } + }, flags); + if (hydrating) { + anchor = hydrate_node; + } +} + +// node_modules/svelte/src/internal/client/dom/blocks/key.js +function key_block(node, get_key, render_fn) { + if (hydrating) { + hydrate_next(); + } + var anchor = node; + var key = UNINITIALIZED; + var effect2; + var changed = is_runes() ? not_equal : safe_not_equal; + block(() => { + if (changed(key, key = get_key())) { + if (effect2) { + pause_effect(effect2); + } + effect2 = branch(() => render_fn(anchor)); + } + }); + if (hydrating) { + anchor = hydrate_node; + } +} + +// node_modules/svelte/src/internal/client/dom/blocks/css-props.js +function css_props(element2, get_styles) { + if (hydrating) { + set_hydrate_node( + /** @type {TemplateNode} */ + get_first_child(element2) + ); + } + render_effect(() => { + var styles = get_styles(); + for (var key in styles) { + var value = styles[key]; + if (value) { + element2.style.setProperty(key, value); + } else { + element2.style.removeProperty(key); + } + } + }); + teardown(() => { + element2.remove(); + }); +} + +// node_modules/svelte/src/internal/client/dom/blocks/each.js +var current_each_item = null; +function set_current_each_item(item) { + current_each_item = item; +} +function index(_, i) { + return i; +} +function pause_effects(state2, items, controlled_anchor, items_map) { + var transitions = []; + var length = items.length; + for (var i = 0; i < length; i++) { + pause_children(items[i].e, transitions, true); + } + var is_controlled = length > 0 && transitions.length === 0 && controlled_anchor !== null; + if (is_controlled) { + var parent_node = ( + /** @type {Element} */ + /** @type {Element} */ + controlled_anchor.parentNode + ); + clear_text_content(parent_node); + parent_node.append( + /** @type {Element} */ + controlled_anchor + ); + items_map.clear(); + link(state2, items[0].prev, items[length - 1].next); + } + run_out_transitions(transitions, () => { + for (var i2 = 0; i2 < length; i2++) { + var item = items[i2]; + if (!is_controlled) { + items_map.delete(item.k); + link(state2, item.prev, item.next); + } + destroy_effect(item.e, !is_controlled); + } + }); +} +function each(node, flags, get_collection, get_key, render_fn, fallback_fn = null) { + var anchor = node; + var state2 = { flags, items: /* @__PURE__ */ new Map(), first: null }; + var is_controlled = (flags & EACH_IS_CONTROLLED) !== 0; + if (is_controlled) { + var parent_node = ( + /** @type {Element} */ + node + ); + anchor = hydrating ? set_hydrate_node( + /** @type {Comment | Text} */ + get_first_child(parent_node) + ) : parent_node.appendChild(create_text()); + } + if (hydrating) { + hydrate_next(); + } + var fallback2 = null; + var was_empty = false; + var each_array = derived_safe_equal(() => { + var collection = get_collection(); + return is_array(collection) ? collection : collection == null ? [] : array_from(collection); + }); + block(() => { + var array = get(each_array); + var length = array.length; + if (was_empty && length === 0) { + return; + } + was_empty = length === 0; + let mismatch = false; + if (hydrating) { + var is_else = ( + /** @type {Comment} */ + anchor.data === HYDRATION_START_ELSE + ); + if (is_else !== (length === 0)) { + anchor = remove_nodes(); + set_hydrate_node(anchor); + set_hydrating(false); + mismatch = true; + } + } + if (hydrating) { + var prev = null; + var item; + for (var i = 0; i < length; i++) { + if (hydrate_node.nodeType === 8 && /** @type {Comment} */ + hydrate_node.data === HYDRATION_END) { + anchor = /** @type {Comment} */ + hydrate_node; + mismatch = true; + set_hydrating(false); + break; + } + var value = array[i]; + var key = get_key(value, i); + item = create_item( + hydrate_node, + state2, + prev, + null, + value, + key, + i, + render_fn, + flags, + get_collection + ); + state2.items.set(key, item); + prev = item; + } + if (length > 0) { + set_hydrate_node(remove_nodes()); + } + } + if (!hydrating) { + reconcile(array, state2, anchor, render_fn, flags, get_key, get_collection); + } + if (fallback_fn !== null) { + if (length === 0) { + if (fallback2) { + resume_effect(fallback2); + } else { + fallback2 = branch(() => fallback_fn(anchor)); + } + } else if (fallback2 !== null) { + pause_effect(fallback2, () => { + fallback2 = null; + }); + } + } + if (mismatch) { + set_hydrating(true); + } + get(each_array); + }); + if (hydrating) { + anchor = hydrate_node; + } +} +function reconcile(array, state2, anchor, render_fn, flags, get_key, get_collection) { + var _a, _b, _c, _d; + var is_animated = (flags & EACH_IS_ANIMATED) !== 0; + var should_update = (flags & (EACH_ITEM_REACTIVE | EACH_INDEX_REACTIVE)) !== 0; + var length = array.length; + var items = state2.items; + var first = state2.first; + var current = first; + var seen; + var prev = null; + var to_animate; + var matched = []; + var stashed = []; + var value; + var key; + var item; + var i; + if (is_animated) { + for (i = 0; i < length; i += 1) { + value = array[i]; + key = get_key(value, i); + item = items.get(key); + if (item !== void 0) { + (_a = item.a) == null ? void 0 : _a.measure(); + (to_animate ?? (to_animate = /* @__PURE__ */ new Set())).add(item); + } + } + } + for (i = 0; i < length; i += 1) { + value = array[i]; + key = get_key(value, i); + item = items.get(key); + if (item === void 0) { + var child_anchor = current ? ( + /** @type {TemplateNode} */ + current.e.nodes_start + ) : anchor; + prev = create_item( + child_anchor, + state2, + prev, + prev === null ? state2.first : prev.next, + value, + key, + i, + render_fn, + flags, + get_collection + ); + items.set(key, prev); + matched = []; + stashed = []; + current = prev.next; + continue; + } + if (should_update) { + update_item(item, value, i, flags); + } + if ((item.e.f & INERT) !== 0) { + resume_effect(item.e); + if (is_animated) { + (_b = item.a) == null ? void 0 : _b.unfix(); + (to_animate ?? (to_animate = /* @__PURE__ */ new Set())).delete(item); + } + } + if (item !== current) { + if (seen !== void 0 && seen.has(item)) { + if (matched.length < stashed.length) { + var start = stashed[0]; + var j; + prev = start.prev; + var a = matched[0]; + var b = matched[matched.length - 1]; + for (j = 0; j < matched.length; j += 1) { + move(matched[j], start, anchor); + } + for (j = 0; j < stashed.length; j += 1) { + seen.delete(stashed[j]); + } + link(state2, a.prev, b.next); + link(state2, prev, a); + link(state2, b, start); + current = start; + prev = b; + i -= 1; + matched = []; + stashed = []; + } else { + seen.delete(item); + move(item, current, anchor); + link(state2, item.prev, item.next); + link(state2, item, prev === null ? state2.first : prev.next); + link(state2, prev, item); + prev = item; + } + continue; + } + matched = []; + stashed = []; + while (current !== null && current.k !== key) { + if ((current.e.f & INERT) === 0) { + (seen ?? (seen = /* @__PURE__ */ new Set())).add(current); + } + stashed.push(current); + current = current.next; + } + if (current === null) { + continue; + } + item = current; + } + matched.push(item); + prev = item; + current = item.next; + } + if (current !== null || seen !== void 0) { + var to_destroy = seen === void 0 ? [] : array_from(seen); + while (current !== null) { + if ((current.e.f & INERT) === 0) { + to_destroy.push(current); + } + current = current.next; + } + var destroy_length = to_destroy.length; + if (destroy_length > 0) { + var controlled_anchor = (flags & EACH_IS_CONTROLLED) !== 0 && length === 0 ? anchor : null; + if (is_animated) { + for (i = 0; i < destroy_length; i += 1) { + (_c = to_destroy[i].a) == null ? void 0 : _c.measure(); + } + for (i = 0; i < destroy_length; i += 1) { + (_d = to_destroy[i].a) == null ? void 0 : _d.fix(); + } + } + pause_effects(state2, to_destroy, controlled_anchor, items); + } + } + if (is_animated) { + queue_micro_task(() => { + var _a2; + if (to_animate === void 0) return; + for (item of to_animate) { + (_a2 = item.a) == null ? void 0 : _a2.apply(); + } + }); + } + active_effect.first = state2.first && state2.first.e; + active_effect.last = prev && prev.e; +} +function update_item(item, value, index2, type) { + if ((type & EACH_ITEM_REACTIVE) !== 0) { + internal_set(item.v, value); + } + if ((type & EACH_INDEX_REACTIVE) !== 0) { + internal_set( + /** @type {Value} */ + item.i, + index2 + ); + } else { + item.i = index2; + } +} +function create_item(anchor, state2, prev, next2, value, key, index2, render_fn, flags, get_collection) { + var previous_each_item = current_each_item; + var reactive = (flags & EACH_ITEM_REACTIVE) !== 0; + var mutable = (flags & EACH_ITEM_IMMUTABLE) === 0; + var v = reactive ? mutable ? mutable_source(value) : source(value) : value; + var i = (flags & EACH_INDEX_REACTIVE) === 0 ? index2 : source(index2); + if (true_default && reactive) { + v.debug = () => { + var collection_index = typeof i === "number" ? index2 : i.v; + get_collection()[collection_index]; + }; + } + var item = { + i, + v, + k: key, + a: null, + // @ts-expect-error + e: null, + prev, + next: next2 + }; + current_each_item = item; + try { + item.e = branch(() => render_fn(anchor, v, i, get_collection), hydrating); + item.e.prev = prev && prev.e; + item.e.next = next2 && next2.e; + if (prev === null) { + state2.first = item; + } else { + prev.next = item; + prev.e.next = item.e; + } + if (next2 !== null) { + next2.prev = item; + next2.e.prev = item.e; + } + return item; + } finally { + current_each_item = previous_each_item; + } +} +function move(item, next2, anchor) { + var end = item.next ? ( + /** @type {TemplateNode} */ + item.next.e.nodes_start + ) : anchor; + var dest = next2 ? ( + /** @type {TemplateNode} */ + next2.e.nodes_start + ) : anchor; + var node = ( + /** @type {TemplateNode} */ + item.e.nodes_start + ); + while (node !== end) { + var next_node = ( + /** @type {TemplateNode} */ + get_next_sibling(node) + ); + dest.before(node); + node = next_node; + } +} +function link(state2, prev, next2) { + if (prev === null) { + state2.first = next2; + } else { + prev.next = next2; + prev.e.next = next2 && next2.e; + } + if (next2 !== null) { + next2.prev = prev; + next2.e.prev = prev && prev.e; + } +} + +// node_modules/svelte/src/internal/client/dom/blocks/html.js +function check_hash(element2, server_hash, value) { + var _a, _b; + if (!server_hash || server_hash === hash(String(value ?? ""))) return; + let location; + const loc = (_a = element2.__svelte_meta) == null ? void 0 : _a.loc; + if (loc) { + location = `near ${loc.file}:${loc.line}:${loc.column}`; + } else if ((_b = dev_current_component_function) == null ? void 0 : _b[FILENAME]) { + location = `in ${dev_current_component_function[FILENAME]}`; + } + hydration_html_changed(sanitize_location(location)); +} +function html(node, get_value, svg, mathml, skip_warning) { + var anchor = node; + var value = ""; + var effect2; + block(() => { + if (value === (value = get_value() ?? "")) { + if (hydrating) { + hydrate_next(); + } + return; + } + if (effect2 !== void 0) { + destroy_effect(effect2); + effect2 = void 0; + } + if (value === "") return; + effect2 = branch(() => { + if (hydrating) { + var hash2 = ( + /** @type {Comment} */ + hydrate_node.data + ); + var next2 = hydrate_next(); + var last = next2; + while (next2 !== null && (next2.nodeType !== 8 || /** @type {Comment} */ + next2.data !== "")) { + last = next2; + next2 = /** @type {TemplateNode} */ + get_next_sibling(next2); + } + if (next2 === null) { + hydration_mismatch(); + throw HYDRATION_ERROR; + } + if (true_default && !skip_warning) { + check_hash( + /** @type {Element} */ + next2.parentNode, + hash2, + value + ); + } + assign_nodes(hydrate_node, last); + anchor = set_hydrate_node(next2); + return; + } + var html2 = value + ""; + if (svg) html2 = `${html2}`; + else if (mathml) html2 = `${html2}`; + var node2 = create_fragment_from_html(html2); + if (svg || mathml) { + node2 = /** @type {Element} */ + get_first_child(node2); + } + assign_nodes( + /** @type {TemplateNode} */ + get_first_child(node2), + /** @type {TemplateNode} */ + node2.lastChild + ); + if (svg || mathml) { + while (get_first_child(node2)) { + anchor.before( + /** @type {Node} */ + get_first_child(node2) + ); + } + } else { + anchor.before(node2); + } + }); + }); +} + +// node_modules/svelte/src/internal/client/dom/blocks/slot.js +function slot(anchor, $$props, name, slot_props, fallback_fn) { + var _a; + if (hydrating) { + hydrate_next(); + } + var slot_fn = (_a = $$props.$$slots) == null ? void 0 : _a[name]; + var is_interop = false; + if (slot_fn === true) { + slot_fn = $$props[name === "default" ? "children" : name]; + is_interop = true; + } + if (slot_fn === void 0) { + if (fallback_fn !== null) { + fallback_fn(anchor); + } + } else { + slot_fn(anchor, is_interop ? () => slot_props : slot_props); + } +} +function sanitize_slots(props) { + const sanitized = {}; + if (props.children) sanitized.default = true; + for (const key in props.$$slots) { + sanitized[key] = true; + } + return sanitized; +} + +// node_modules/svelte/src/internal/client/dom/blocks/snippet.js +function snippet(node, get_snippet, ...args) { + var anchor = node; + var snippet2 = noop; + var snippet_effect; + block(() => { + if (snippet2 === (snippet2 = get_snippet())) return; + if (snippet_effect) { + destroy_effect(snippet_effect); + snippet_effect = null; + } + if (true_default && snippet2 == null) { + invalid_snippet(); + } + snippet_effect = branch(() => ( + /** @type {SnippetFn} */ + snippet2(anchor, ...args) + )); + }, EFFECT_TRANSPARENT); + if (hydrating) { + anchor = hydrate_node; + } +} +function wrap_snippet(component2, fn) { + return (node, ...args) => { + var previous_component_function = dev_current_component_function; + set_dev_current_component_function(component2); + try { + return fn(node, ...args); + } finally { + set_dev_current_component_function(previous_component_function); + } + }; +} +function createRawSnippet(fn) { + return (anchor, ...params) => { + var _a; + var snippet2 = fn(...params); + var element2; + if (hydrating) { + element2 = /** @type {Element} */ + hydrate_node; + hydrate_next(); + } else { + var html2 = snippet2.render().trim(); + var fragment = create_fragment_from_html(html2); + element2 = /** @type {Element} */ + get_first_child(fragment); + if (true_default && (get_next_sibling(element2) !== null || element2.nodeType !== 1)) { + invalid_raw_snippet_render(); + } + anchor.before(element2); + } + const result = (_a = snippet2.setup) == null ? void 0 : _a.call(snippet2, element2); + assign_nodes(element2, element2); + if (typeof result === "function") { + teardown(result); + } + }; +} + +// node_modules/svelte/src/internal/client/dom/blocks/svelte-component.js +function component(node, get_component2, render_fn) { + if (hydrating) { + hydrate_next(); + } + var anchor = node; + var component2; + var effect2; + block(() => { + if (component2 === (component2 = get_component2())) return; + if (effect2) { + pause_effect(effect2); + effect2 = null; + } + if (component2) { + effect2 = branch(() => render_fn(anchor, component2)); + } + }, EFFECT_TRANSPARENT); + if (hydrating) { + anchor = hydrate_node; + } +} + +// node_modules/svelte/src/internal/client/dom/blocks/svelte-element.js +function element(node, get_tag, is_svg, render_fn, get_namespace, location) { + var _a; + let was_hydrating = hydrating; + if (hydrating) { + hydrate_next(); + } + var filename = true_default && location && ((_a = component_context) == null ? void 0 : _a.function[FILENAME]); + var tag; + var current_tag; + var element2 = null; + if (hydrating && hydrate_node.nodeType === 1) { + element2 = /** @type {Element} */ + hydrate_node; + hydrate_next(); + } + var anchor = ( + /** @type {TemplateNode} */ + hydrating ? hydrate_node : node + ); + var effect2; + var each_item_block = current_each_item; + block(() => { + const next_tag = get_tag() || null; + var ns = get_namespace ? get_namespace() : is_svg || next_tag === "svg" ? NAMESPACE_SVG : null; + if (next_tag === tag) return; + var previous_each_item = current_each_item; + set_current_each_item(each_item_block); + if (effect2) { + if (next_tag === null) { + pause_effect(effect2, () => { + effect2 = null; + current_tag = null; + }); + } else if (next_tag === current_tag) { + resume_effect(effect2); + } else { + destroy_effect(effect2); + set_should_intro(false); + } + } + if (next_tag && next_tag !== current_tag) { + effect2 = branch(() => { + element2 = hydrating ? ( + /** @type {Element} */ + element2 + ) : ns ? document.createElementNS(ns, next_tag) : document.createElement(next_tag); + if (true_default && location) { + element2.__svelte_meta = { + loc: { + file: filename, + line: location[0], + column: location[1] + } + }; + } + assign_nodes(element2, element2); + if (render_fn) { + if (hydrating && is_raw_text_element(next_tag)) { + element2.append(document.createComment("")); + } + var child_anchor = ( + /** @type {TemplateNode} */ + hydrating ? get_first_child(element2) : element2.appendChild(create_text()) + ); + if (hydrating) { + if (child_anchor === null) { + set_hydrating(false); + } else { + set_hydrate_node(child_anchor); + } + } + render_fn(element2, child_anchor); + } + active_effect.nodes_end = element2; + anchor.before(element2); + }); + } + tag = next_tag; + if (tag) current_tag = tag; + set_should_intro(true); + set_current_each_item(previous_each_item); + }, EFFECT_TRANSPARENT); + if (was_hydrating) { + set_hydrating(true); + set_hydrate_node(anchor); + } +} + +// node_modules/svelte/src/internal/client/dom/css.js +function append_styles(anchor, css) { + queue_micro_task(() => { + var root = anchor.getRootNode(); + var target = ( + /** @type {ShadowRoot} */ + root.host ? ( + /** @type {ShadowRoot} */ + root + ) : ( + /** @type {Document} */ + root.head ?? /** @type {Document} */ + root.ownerDocument.head + ) + ); + if (!target.querySelector("#" + css.hash)) { + const style = document.createElement("style"); + style.id = css.hash; + style.textContent = css.code; + target.appendChild(style); + if (true_default) { + register_style(css.hash, style); + } + } + }); +} + +// node_modules/svelte/src/internal/client/dom/elements/actions.js +function action(dom, action2, get_value) { + effect(() => { + var payload = untrack(() => action2(dom, get_value == null ? void 0 : get_value()) || {}); + if (get_value && (payload == null ? void 0 : payload.update)) { + var inited = false; + var prev = ( + /** @type {any} */ + {} + ); + render_effect(() => { + var value = get_value(); + deep_read_state(value); + if (inited && safe_not_equal(prev, value)) { + prev = value; + payload.update(value); + } + }); + inited = true; + } + if (payload == null ? void 0 : payload.destroy) { + return () => ( + /** @type {Function} */ + payload.destroy() + ); + } + }); +} + +// node_modules/svelte/src/escaping.js +var ATTR_REGEX = /[&"<]/g; +var CONTENT_REGEX = /[&<]/g; +function escape_html(value, is_attr) { + const str = String(value ?? ""); + const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX; + pattern.lastIndex = 0; + let escaped = ""; + let last = 0; + while (pattern.test(str)) { + const i = pattern.lastIndex - 1; + const ch = str[i]; + escaped += str.substring(last, i) + (ch === "&" ? "&" : ch === '"' ? """ : "<"); + last = i + 1; + } + return escaped + str.substring(last); +} + +// node_modules/svelte/src/internal/shared/attributes.js +var replacements = { + translate: /* @__PURE__ */ new Map([ + [true, "yes"], + [false, "no"] + ]) +}; +function attr(name, value, is_boolean = false) { + if (value == null || !value && is_boolean || value === "" && name === "class") return ""; + const normalized = name in replacements && replacements[name].get(value) || value; + const assignment = is_boolean ? "" : `="${escape_html(normalized, true)}"`; + return ` ${name}${assignment}`; +} +function clsx2(value) { + if (typeof value === "object") { + return clsx(value); + } else { + return value ?? ""; + } +} + +// node_modules/svelte/src/internal/client/dom/elements/attributes.js +function remove_input_defaults(input) { + if (!hydrating) return; + var already_removed = false; + var remove_defaults = () => { + if (already_removed) return; + already_removed = true; + if (input.hasAttribute("value")) { + var value = input.value; + set_attribute(input, "value", null); + input.value = value; + } + if (input.hasAttribute("checked")) { + var checked = input.checked; + set_attribute(input, "checked", null); + input.checked = checked; + } + }; + input.__on_r = remove_defaults; + queue_idle_task(remove_defaults); + add_form_reset_listener(); +} +function set_value(element2, value) { + var attributes = element2.__attributes ?? (element2.__attributes = {}); + if (attributes.value === (attributes.value = // treat null and undefined the same for the initial value + value ?? void 0) || // @ts-expect-error + // `progress` elements always need their value set when it's `0` + element2.value === value && (value !== 0 || element2.nodeName !== "PROGRESS")) { + return; + } + element2.value = value ?? ""; +} +function set_checked(element2, checked) { + var attributes = element2.__attributes ?? (element2.__attributes = {}); + if (attributes.checked === (attributes.checked = // treat null and undefined the same for the initial value + checked ?? void 0)) { + return; + } + element2.checked = checked; +} +function set_selected(element2, selected) { + if (selected) { + if (!element2.hasAttribute("selected")) { + element2.setAttribute("selected", ""); + } + } else { + element2.removeAttribute("selected"); + } +} +function set_default_checked(element2, checked) { + const existing_value = element2.checked; + element2.defaultChecked = checked; + element2.checked = existing_value; +} +function set_default_value(element2, value) { + const existing_value = element2.value; + element2.defaultValue = value; + element2.value = existing_value; +} +function set_attribute(element2, attribute, value, skip_warning) { + var attributes = element2.__attributes ?? (element2.__attributes = {}); + if (hydrating) { + attributes[attribute] = element2.getAttribute(attribute); + if (attribute === "src" || attribute === "srcset" || attribute === "href" && element2.nodeName === "LINK") { + if (!skip_warning) { + check_src_in_dev_hydration(element2, attribute, value ?? ""); + } + return; + } + } + if (attributes[attribute] === (attributes[attribute] = value)) return; + if (attribute === "style" && "__styles" in element2) { + element2.__styles = {}; + } + if (attribute === "loading") { + element2[LOADING_ATTR_SYMBOL] = value; + } + if (value == null) { + element2.removeAttribute(attribute); + } else if (typeof value !== "string" && get_setters(element2).includes(attribute)) { + element2[attribute] = value; + } else { + element2.setAttribute(attribute, value); + } +} +function set_xlink_attribute(dom, attribute, value) { + dom.setAttributeNS("http://www.w3.org/1999/xlink", attribute, value); +} +function set_custom_element_data(node, prop2, value) { + var previous_reaction = active_reaction; + var previous_effect = active_effect; + set_active_reaction(null); + set_active_effect(null); + try { + if ( + // Don't compute setters for custom elements while they aren't registered yet, + // because during their upgrade/instantiation they might add more setters. + // Instead, fall back to a simple "an object, then set as property" heuristic. + setters_cache.has(node.nodeName) || // customElements may not be available in browser extension contexts + !customElements || customElements.get(node.tagName.toLowerCase()) ? get_setters(node).includes(prop2) : value && typeof value === "object" + ) { + node[prop2] = value; + } else { + set_attribute(node, prop2, value == null ? value : String(value)); + } + } finally { + set_active_reaction(previous_reaction); + set_active_effect(previous_effect); + } +} +function set_attributes(element2, prev, next2, css_hash, preserve_attribute_case = false, is_custom_element = false, skip_warning = false) { + var current = prev || {}; + var is_option_element = element2.tagName === "OPTION"; + for (var key in prev) { + if (!(key in next2)) { + next2[key] = null; + } + } + if (next2.class) { + next2.class = clsx2(next2.class); + } + if (css_hash !== void 0) { + next2.class = next2.class ? next2.class + " " + css_hash : css_hash; + } + var setters = get_setters(element2); + var attributes = ( + /** @type {Record} **/ + element2.__attributes ?? (element2.__attributes = {}) + ); + for (const key2 in next2) { + let value = next2[key2]; + if (is_option_element && key2 === "value" && value == null) { + element2.value = element2.__value = ""; + current[key2] = value; + continue; + } + var prev_value = current[key2]; + if (value === prev_value) continue; + current[key2] = value; + var prefix = key2[0] + key2[1]; + if (prefix === "$$") continue; + if (prefix === "on") { + const opts = {}; + const event_handle_key = "$$" + key2; + let event_name = key2.slice(2); + var delegated = is_delegated(event_name); + if (is_capture_event(event_name)) { + event_name = event_name.slice(0, -7); + opts.capture = true; + } + if (!delegated && prev_value) { + if (value != null) continue; + element2.removeEventListener(event_name, current[event_handle_key], opts); + current[event_handle_key] = null; + } + if (value != null) { + if (!delegated) { + let handle = function(evt) { + current[key2].call(this, evt); + }; + current[event_handle_key] = create_event(event_name, element2, handle, opts); + } else { + element2[`__${event_name}`] = value; + delegate([event_name]); + } + } else if (delegated) { + element2[`__${event_name}`] = void 0; + } + } else if (key2 === "style" && value != null) { + element2.style.cssText = value + ""; + } else if (key2 === "autofocus") { + autofocus( + /** @type {HTMLElement} */ + element2, + Boolean(value) + ); + } else if (key2 === "__value" || key2 === "value" && value != null) { + element2.value = element2[key2] = element2.__value = value; + } else if (key2 === "selected" && is_option_element) { + set_selected( + /** @type {HTMLOptionElement} */ + element2, + value + ); + } else { + var name = key2; + if (!preserve_attribute_case) { + name = normalize_attribute(name); + } + var is_default = name === "defaultValue" || name === "defaultChecked"; + if (value == null && !is_custom_element && !is_default) { + attributes[key2] = null; + if (name === "value" || name === "checked") { + let input = ( + /** @type {HTMLInputElement} */ + element2 + ); + if (name === "value") { + let prev2 = input.defaultValue; + input.removeAttribute(name); + input.defaultValue = prev2; + } else { + let prev2 = input.defaultChecked; + input.removeAttribute(name); + input.defaultChecked = prev2; + } + } else { + element2.removeAttribute(key2); + } + } else if (is_default || setters.includes(name) && (is_custom_element || typeof value !== "string")) { + element2[name] = value; + } else if (typeof value !== "function") { + if (hydrating && (name === "src" || name === "href" || name === "srcset")) { + if (!skip_warning) check_src_in_dev_hydration(element2, name, value ?? ""); + } else { + set_attribute(element2, name, value); + } + } + } + if (key2 === "style" && "__styles" in element2) { + element2.__styles = {}; + } + } + return current; +} +var setters_cache = /* @__PURE__ */ new Map(); +function get_setters(element2) { + var setters = setters_cache.get(element2.nodeName); + if (setters) return setters; + setters_cache.set(element2.nodeName, setters = []); + var descriptors; + var proto = element2; + var element_proto = Element.prototype; + while (element_proto !== proto) { + descriptors = get_descriptors(proto); + for (var key in descriptors) { + if (descriptors[key].set) { + setters.push(key); + } + } + proto = get_prototype_of(proto); + } + return setters; +} +function check_src_in_dev_hydration(element2, attribute, value) { + if (!true_default) return; + if (attribute === "srcset" && srcset_url_equal(element2, value)) return; + if (src_url_equal(element2.getAttribute(attribute) ?? "", value)) return; + hydration_attribute_changed( + attribute, + element2.outerHTML.replace(element2.innerHTML, element2.innerHTML && "..."), + String(value) + ); +} +function src_url_equal(element_src, url) { + if (element_src === url) return true; + return new URL(element_src, document.baseURI).href === new URL(url, document.baseURI).href; +} +function split_srcset(srcset) { + return srcset.split(",").map((src) => src.trim().split(" ").filter(Boolean)); +} +function srcset_url_equal(element2, srcset) { + var element_urls = split_srcset(element2.srcset); + var urls = split_srcset(srcset); + return urls.length === element_urls.length && urls.every( + ([url, width], i) => width === element_urls[i][1] && // We need to test both ways because Vite will create an a full URL with + // `new URL(asset, import.meta.url).href` for the client when `base: './'`, and the + // relative URLs inside srcset are not automatically resolved to absolute URLs by + // browsers (in contrast to img.src). This means both SSR and DOM code could + // contain relative or absolute URLs. + (src_url_equal(element_urls[i][0], url) || src_url_equal(url, element_urls[i][0])) + ); +} +function handle_lazy_img(element2) { + if (!hydrating && element2.loading === "lazy") { + var src = element2.src; + element2[LOADING_ATTR_SYMBOL] = null; + element2.loading = "eager"; + element2.removeAttribute("src"); + requestAnimationFrame(() => { + if (element2[LOADING_ATTR_SYMBOL] !== "eager") { + element2.loading = "lazy"; + } + element2.src = src; + }); + } +} + +// node_modules/svelte/src/internal/client/dom/elements/class.js +function set_svg_class(dom, value, hash2) { + var prev_class_name = dom.__className; + var next_class_name = to_class(value, hash2); + if (hydrating && dom.getAttribute("class") === next_class_name) { + dom.__className = next_class_name; + } else if (prev_class_name !== next_class_name || hydrating && dom.getAttribute("class") !== next_class_name) { + if (next_class_name === "") { + dom.removeAttribute("class"); + } else { + dom.setAttribute("class", next_class_name); + } + dom.__className = next_class_name; + } +} +function set_mathml_class(dom, value, hash2) { + var prev_class_name = dom.__className; + var next_class_name = to_class(value, hash2); + if (hydrating && dom.getAttribute("class") === next_class_name) { + dom.__className = next_class_name; + } else if (prev_class_name !== next_class_name || hydrating && dom.getAttribute("class") !== next_class_name) { + if (next_class_name === "") { + dom.removeAttribute("class"); + } else { + dom.setAttribute("class", next_class_name); + } + dom.__className = next_class_name; + } +} +function set_class(dom, value, hash2) { + var prev_class_name = dom.__className; + var next_class_name = to_class(value, hash2); + if (hydrating && dom.className === next_class_name) { + dom.__className = next_class_name; + } else if (prev_class_name !== next_class_name || hydrating && dom.className !== next_class_name) { + if (value == null && !hash2) { + dom.removeAttribute("class"); + } else { + dom.className = next_class_name; + } + dom.__className = next_class_name; + } +} +function to_class(value, hash2) { + return (value == null ? "" : value) + (hash2 ? " " + hash2 : ""); +} +function toggle_class(dom, class_name, value) { + if (value) { + if (dom.classList.contains(class_name)) return; + dom.classList.add(class_name); + } else { + if (!dom.classList.contains(class_name)) return; + dom.classList.remove(class_name); + } +} + +// node_modules/svelte/src/internal/client/dom/elements/style.js +function set_style(dom, key, value, important) { + var styles = dom.__styles ?? (dom.__styles = {}); + if (styles[key] === value) { + return; + } + styles[key] = value; + if (value == null) { + dom.style.removeProperty(key); + } else { + dom.style.setProperty(key, value, important ? "important" : ""); + } +} + +// node_modules/svelte/src/internal/client/timing.js +var now = true_default ? () => performance.now() : () => Date.now(); +var raf = { + // don't access requestAnimationFrame eagerly outside method + // this allows basic testing of user code without JSDOM + // bunder will eval and remove ternary when the user's app is built + tick: ( + /** @param {any} _ */ + (_) => (true_default ? requestAnimationFrame : noop)(_) + ), + now: () => now(), + tasks: /* @__PURE__ */ new Set() +}; + +// node_modules/svelte/src/internal/client/loop.js +function run_tasks() { + const now2 = raf.now(); + raf.tasks.forEach((task) => { + if (!task.c(now2)) { + raf.tasks.delete(task); + task.f(); + } + }); + if (raf.tasks.size !== 0) { + raf.tick(run_tasks); + } +} +function loop(callback) { + let task; + if (raf.tasks.size === 0) { + raf.tick(run_tasks); + } + return { + promise: new Promise((fulfill) => { + raf.tasks.add(task = { c: callback, f: fulfill }); + }), + abort() { + raf.tasks.delete(task); + } + }; +} + +// node_modules/svelte/src/internal/client/dom/elements/transitions.js +function dispatch_event(element2, type) { + element2.dispatchEvent(new CustomEvent(type)); +} +function css_property_to_camelcase(style) { + if (style === "float") return "cssFloat"; + if (style === "offset") return "cssOffset"; + if (style.startsWith("--")) return style; + const parts = style.split("-"); + if (parts.length === 1) return parts[0]; + return parts[0] + parts.slice(1).map( + /** @param {any} word */ + (word) => word[0].toUpperCase() + word.slice(1) + ).join(""); +} +function css_to_keyframe(css) { + const keyframe = {}; + const parts = css.split(";"); + for (const part of parts) { + const [property, value] = part.split(":"); + if (!property || value === void 0) break; + const formatted_property = css_property_to_camelcase(property.trim()); + keyframe[formatted_property] = value.trim(); + } + return keyframe; +} +var linear = (t) => t; +function animation(element2, get_fn, get_params) { + var item = ( + /** @type {EachItem} */ + current_each_item + ); + var from; + var to; + var animation2; + var original_styles = null; + item.a ?? (item.a = { + element: element2, + measure() { + from = this.element.getBoundingClientRect(); + }, + apply() { + animation2 == null ? void 0 : animation2.abort(); + to = this.element.getBoundingClientRect(); + if (from.left !== to.left || from.right !== to.right || from.top !== to.top || from.bottom !== to.bottom) { + const options = get_fn()(this.element, { from, to }, get_params == null ? void 0 : get_params()); + animation2 = animate(this.element, options, void 0, 1, () => { + animation2 == null ? void 0 : animation2.abort(); + animation2 = void 0; + }); + } + }, + fix() { + if (element2.getAnimations().length) return; + var { position, width, height } = getComputedStyle(element2); + if (position !== "absolute" && position !== "fixed") { + var style = ( + /** @type {HTMLElement | SVGElement} */ + element2.style + ); + original_styles = { + position: style.position, + width: style.width, + height: style.height, + transform: style.transform + }; + style.position = "absolute"; + style.width = width; + style.height = height; + var to2 = element2.getBoundingClientRect(); + if (from.left !== to2.left || from.top !== to2.top) { + var transform = `translate(${from.left - to2.left}px, ${from.top - to2.top}px)`; + style.transform = style.transform ? `${style.transform} ${transform}` : transform; + } + } + }, + unfix() { + if (original_styles) { + var style = ( + /** @type {HTMLElement | SVGElement} */ + element2.style + ); + style.position = original_styles.position; + style.width = original_styles.width; + style.height = original_styles.height; + style.transform = original_styles.transform; + } + } + }); + item.a.element = element2; +} +function transition(flags, element2, get_fn, get_params) { + var is_intro = (flags & TRANSITION_IN) !== 0; + var is_outro = (flags & TRANSITION_OUT) !== 0; + var is_both = is_intro && is_outro; + var is_global = (flags & TRANSITION_GLOBAL) !== 0; + var direction = is_both ? "both" : is_intro ? "in" : "out"; + var current_options; + var inert = element2.inert; + var overflow = element2.style.overflow; + var intro; + var outro; + function get_options() { + var previous_reaction = active_reaction; + var previous_effect = active_effect; + set_active_reaction(null); + set_active_effect(null); + try { + return current_options ?? (current_options = get_fn()(element2, (get_params == null ? void 0 : get_params()) ?? /** @type {P} */ + {}, { + direction + })); + } finally { + set_active_reaction(previous_reaction); + set_active_effect(previous_effect); + } + } + var transition2 = { + is_global, + in() { + var _a; + element2.inert = inert; + if (!is_intro) { + outro == null ? void 0 : outro.abort(); + (_a = outro == null ? void 0 : outro.reset) == null ? void 0 : _a.call(outro); + return; + } + if (!is_outro) { + intro == null ? void 0 : intro.abort(); + } + dispatch_event(element2, "introstart"); + intro = animate(element2, get_options(), outro, 1, () => { + dispatch_event(element2, "introend"); + intro == null ? void 0 : intro.abort(); + intro = current_options = void 0; + element2.style.overflow = overflow; + }); + }, + out(fn) { + if (!is_outro) { + fn == null ? void 0 : fn(); + current_options = void 0; + return; + } + element2.inert = true; + dispatch_event(element2, "outrostart"); + outro = animate(element2, get_options(), intro, 0, () => { + dispatch_event(element2, "outroend"); + fn == null ? void 0 : fn(); + }); + }, + stop: () => { + intro == null ? void 0 : intro.abort(); + outro == null ? void 0 : outro.abort(); + } + }; + var e = ( + /** @type {Effect} */ + active_effect + ); + (e.transitions ?? (e.transitions = [])).push(transition2); + if (is_intro && should_intro) { + var run2 = is_global; + if (!run2) { + var block2 = ( + /** @type {Effect | null} */ + e.parent + ); + while (block2 && (block2.f & EFFECT_TRANSPARENT) !== 0) { + while (block2 = block2.parent) { + if ((block2.f & BLOCK_EFFECT) !== 0) break; + } + } + run2 = !block2 || (block2.f & EFFECT_RAN) !== 0; + } + if (run2) { + effect(() => { + untrack(() => transition2.in()); + }); + } + } +} +function animate(element2, options, counterpart, t2, on_finish) { + var is_intro = t2 === 1; + if (is_function(options)) { + var a; + var aborted = false; + queue_micro_task(() => { + if (aborted) return; + var o = options({ direction: is_intro ? "in" : "out" }); + a = animate(element2, o, counterpart, t2, on_finish); + }); + return { + abort: () => { + aborted = true; + a == null ? void 0 : a.abort(); + }, + deactivate: () => a.deactivate(), + reset: () => a.reset(), + t: () => a.t() + }; + } + counterpart == null ? void 0 : counterpart.deactivate(); + if (!(options == null ? void 0 : options.duration)) { + on_finish(); + return { + abort: noop, + deactivate: noop, + reset: noop, + t: () => t2 + }; + } + const { delay = 0, css, tick: tick2, easing = linear } = options; + var keyframes = []; + if (is_intro && counterpart === void 0) { + if (tick2) { + tick2(0, 1); + } + if (css) { + var styles = css_to_keyframe(css(0, 1)); + keyframes.push(styles, styles); + } + } + var get_t = () => 1 - t2; + var animation2 = element2.animate(keyframes, { duration: delay }); + animation2.onfinish = () => { + var t1 = (counterpart == null ? void 0 : counterpart.t()) ?? 1 - t2; + counterpart == null ? void 0 : counterpart.abort(); + var delta = t2 - t1; + var duration = ( + /** @type {number} */ + options.duration * Math.abs(delta) + ); + var keyframes2 = []; + if (duration > 0) { + var needs_overflow_hidden = false; + if (css) { + var n = Math.ceil(duration / (1e3 / 60)); + for (var i = 0; i <= n; i += 1) { + var t = t1 + delta * easing(i / n); + var styles2 = css_to_keyframe(css(t, 1 - t)); + keyframes2.push(styles2); + needs_overflow_hidden || (needs_overflow_hidden = styles2.overflow === "hidden"); + } + } + if (needs_overflow_hidden) { + element2.style.overflow = "hidden"; + } + get_t = () => { + var time = ( + /** @type {number} */ + /** @type {globalThis.Animation} */ + animation2.currentTime + ); + return t1 + delta * easing(time / duration); + }; + if (tick2) { + loop(() => { + if (animation2.playState !== "running") return false; + var t3 = get_t(); + tick2(t3, 1 - t3); + return true; + }); + } + } + animation2 = element2.animate(keyframes2, { duration, fill: "forwards" }); + animation2.onfinish = () => { + get_t = () => t2; + tick2 == null ? void 0 : tick2(t2, 1 - t2); + on_finish(); + }; + }; + return { + abort: () => { + if (animation2) { + animation2.cancel(); + animation2.effect = null; + animation2.onfinish = noop; + } + }, + deactivate: () => { + on_finish = noop; + }, + reset: () => { + if (t2 === 0) { + tick2 == null ? void 0 : tick2(1, 0); + } + }, + t: () => get_t() + }; +} + +// node_modules/svelte/src/internal/client/dom/elements/bindings/document.js +function bind_active_element(update2) { + listen(document, ["focusin", "focusout"], (event2) => { + if (event2 && event2.type === "focusout" && /** @type {FocusEvent} */ + event2.relatedTarget) { + return; + } + update2(document.activeElement); + }); +} + +// node_modules/svelte/src/internal/client/dom/elements/bindings/input.js +function bind_value(input, get3, set2 = get3) { + var runes = is_runes(); + listen_to_event_and_reset_event(input, "input", (is_reset) => { + if (true_default && input.type === "checkbox") { + bind_invalid_checkbox_value(); + } + var value = is_reset ? input.defaultValue : input.value; + value = is_numberlike_input(input) ? to_number(value) : value; + set2(value); + if (runes && value !== (value = get3())) { + var start = input.selectionStart; + var end = input.selectionEnd; + input.value = value ?? ""; + if (end !== null) { + input.selectionStart = start; + input.selectionEnd = Math.min(end, input.value.length); + } + } + }); + if ( + // If we are hydrating and the value has since changed, + // then use the updated value from the input instead. + hydrating && input.defaultValue !== input.value || // If defaultValue is set, then value == defaultValue + // TODO Svelte 6: remove input.value check and set to empty string? + untrack(get3) == null && input.value + ) { + set2(is_numberlike_input(input) ? to_number(input.value) : input.value); + } + render_effect(() => { + if (true_default && input.type === "checkbox") { + bind_invalid_checkbox_value(); + } + var value = get3(); + if (is_numberlike_input(input) && value === to_number(input.value)) { + return; + } + if (input.type === "date" && !value && !input.value) { + return; + } + if (value !== input.value) { + input.value = value ?? ""; + } + }); +} +var pending = /* @__PURE__ */ new Set(); +function bind_group(inputs, group_index, input, get3, set2 = get3) { + var is_checkbox = input.getAttribute("type") === "checkbox"; + var binding_group = inputs; + let hydration_mismatch2 = false; + if (group_index !== null) { + for (var index2 of group_index) { + binding_group = binding_group[index2] ?? (binding_group[index2] = []); + } + } + binding_group.push(input); + listen_to_event_and_reset_event( + input, + "change", + () => { + var value = input.__value; + if (is_checkbox) { + value = get_binding_group_value(binding_group, value, input.checked); + } + set2(value); + }, + // TODO better default value handling + () => set2(is_checkbox ? [] : null) + ); + render_effect(() => { + var value = get3(); + if (hydrating && input.defaultChecked !== input.checked) { + hydration_mismatch2 = true; + return; + } + if (is_checkbox) { + value = value || []; + input.checked = value.includes(input.__value); + } else { + input.checked = is(input.__value, value); + } + }); + teardown(() => { + var index3 = binding_group.indexOf(input); + if (index3 !== -1) { + binding_group.splice(index3, 1); + } + }); + if (!pending.has(binding_group)) { + pending.add(binding_group); + queue_micro_task(() => { + binding_group.sort((a, b) => a.compareDocumentPosition(b) === 4 ? -1 : 1); + pending.delete(binding_group); + }); + } + queue_micro_task(() => { + if (hydration_mismatch2) { + var value; + if (is_checkbox) { + value = get_binding_group_value(binding_group, value, input.checked); + } else { + var hydration_input = binding_group.find((input2) => input2.checked); + value = hydration_input == null ? void 0 : hydration_input.__value; + } + set2(value); + } + }); +} +function bind_checked(input, get3, set2 = get3) { + listen_to_event_and_reset_event(input, "change", (is_reset) => { + var value = is_reset ? input.defaultChecked : input.checked; + set2(value); + }); + if ( + // If we are hydrating and the value has since changed, + // then use the update value from the input instead. + hydrating && input.defaultChecked !== input.checked || // If defaultChecked is set, then checked == defaultChecked + untrack(get3) == null + ) { + set2(input.checked); + } + render_effect(() => { + var value = get3(); + input.checked = Boolean(value); + }); +} +function get_binding_group_value(group, __value, checked) { + var value = /* @__PURE__ */ new Set(); + for (var i = 0; i < group.length; i += 1) { + if (group[i].checked) { + value.add(group[i].__value); + } + } + if (!checked) { + value.delete(__value); + } + return Array.from(value); +} +function is_numberlike_input(input) { + var type = input.type; + return type === "number" || type === "range"; +} +function to_number(value) { + return value === "" ? null : +value; +} +function bind_files(input, get3, set2 = get3) { + listen_to_event_and_reset_event(input, "change", () => { + set2(input.files); + }); + if ( + // If we are hydrating and the value has since changed, + // then use the updated value from the input instead. + hydrating && input.files + ) { + set2(input.files); + } + render_effect(() => { + input.files = get3(); + }); +} + +// node_modules/svelte/src/internal/client/dom/elements/bindings/media.js +function time_ranges_to_array(ranges) { + var array = []; + for (var i = 0; i < ranges.length; i += 1) { + array.push({ start: ranges.start(i), end: ranges.end(i) }); + } + return array; +} +function bind_current_time(media, get3, set2 = get3) { + var raf_id; + var value; + var callback = () => { + cancelAnimationFrame(raf_id); + if (!media.paused) { + raf_id = requestAnimationFrame(callback); + } + var next_value = media.currentTime; + if (value !== next_value) { + set2(value = next_value); + } + }; + raf_id = requestAnimationFrame(callback); + media.addEventListener("timeupdate", callback); + render_effect(() => { + var next_value = Number(get3()); + if (value !== next_value && !isNaN( + /** @type {any} */ + next_value + )) { + media.currentTime = value = next_value; + } + }); + teardown(() => { + cancelAnimationFrame(raf_id); + media.removeEventListener("timeupdate", callback); + }); +} +function bind_buffered(media, set2) { + listen(media, ["loadedmetadata", "progress"], () => set2(time_ranges_to_array(media.buffered))); +} +function bind_seekable(media, set2) { + listen(media, ["loadedmetadata"], () => set2(time_ranges_to_array(media.seekable))); +} +function bind_played(media, set2) { + listen(media, ["timeupdate"], () => set2(time_ranges_to_array(media.played))); +} +function bind_seeking(media, set2) { + listen(media, ["seeking", "seeked"], () => set2(media.seeking)); +} +function bind_ended(media, set2) { + listen(media, ["timeupdate", "ended"], () => set2(media.ended)); +} +function bind_ready_state(media, set2) { + listen( + media, + ["loadedmetadata", "loadeddata", "canplay", "canplaythrough", "playing", "waiting", "emptied"], + () => set2(media.readyState) + ); +} +function bind_playback_rate(media, get3, set2 = get3) { + effect(() => { + var value = Number(get3()); + if (value !== media.playbackRate && !isNaN(value)) { + media.playbackRate = value; + } + }); + effect(() => { + listen(media, ["ratechange"], () => { + set2(media.playbackRate); + }); + }); +} +function bind_paused(media, get3, set2 = get3) { + var paused = get3(); + var update2 = () => { + if (paused !== media.paused) { + set2(paused = media.paused); + } + }; + listen(media, ["play", "pause", "canplay"], update2, paused == null); + effect(() => { + if ((paused = !!get3()) !== media.paused) { + if (paused) { + media.pause(); + } else { + media.play().catch(() => { + set2(paused = true); + }); + } + } + }); +} +function bind_volume(media, get3, set2 = get3) { + var callback = () => { + set2(media.volume); + }; + if (get3() == null) { + callback(); + } + listen(media, ["volumechange"], callback, false); + render_effect(() => { + var value = Number(get3()); + if (value !== media.volume && !isNaN(value)) { + media.volume = value; + } + }); +} +function bind_muted(media, get3, set2 = get3) { + var callback = () => { + set2(media.muted); + }; + if (get3() == null) { + callback(); + } + listen(media, ["volumechange"], callback, false); + render_effect(() => { + var value = !!get3(); + if (media.muted !== value) media.muted = value; + }); +} + +// node_modules/svelte/src/internal/client/dom/elements/bindings/navigator.js +function bind_online(update2) { + listen(window, ["online", "offline"], () => { + update2(navigator.onLine); + }); +} + +// node_modules/svelte/src/internal/client/dom/elements/bindings/props.js +function bind_prop(props, prop2, value) { + var desc = get_descriptor(props, prop2); + if (desc && desc.set) { + props[prop2] = value; + teardown(() => { + props[prop2] = null; + }); + } +} + +// node_modules/svelte/src/internal/client/dom/elements/bindings/select.js +function select_option(select, value, mounting) { + if (select.multiple) { + return select_options(select, value); + } + for (var option of select.options) { + var option_value = get_option_value(option); + if (is(option_value, value)) { + option.selected = true; + return; + } + } + if (!mounting || value !== void 0) { + select.selectedIndex = -1; + } +} +function init_select(select, get_value) { + let mounting = true; + effect(() => { + if (get_value) { + select_option(select, untrack(get_value), mounting); + } + mounting = false; + var observer = new MutationObserver(() => { + var value = select.__value; + select_option(select, value); + }); + observer.observe(select, { + // Listen to option element changes + childList: true, + subtree: true, + // because of + // Listen to option element value attribute changes + // (doesn't get notified of select value changes, + // because that property is not reflected as an attribute) + attributes: true, + attributeFilter: ["value"] + }); + return () => { + observer.disconnect(); + }; + }); +} +function bind_select_value(select, get3, set2 = get3) { + var mounting = true; + listen_to_event_and_reset_event(select, "change", (is_reset) => { + var query = is_reset ? "[selected]" : ":checked"; + var value; + if (select.multiple) { + value = [].map.call(select.querySelectorAll(query), get_option_value); + } else { + var selected_option = select.querySelector(query) ?? // will fall back to first non-disabled option if no option is selected + select.querySelector("option:not([disabled])"); + value = selected_option && get_option_value(selected_option); + } + set2(value); + }); + effect(() => { + var value = get3(); + select_option(select, value, mounting); + if (mounting && value === void 0) { + var selected_option = select.querySelector(":checked"); + if (selected_option !== null) { + value = get_option_value(selected_option); + set2(value); + } + } + select.__value = value; + mounting = false; + }); + init_select(select); +} +function select_options(select, value) { + for (var option of select.options) { + option.selected = ~value.indexOf(get_option_value(option)); + } +} +function get_option_value(option) { + if ("__value" in option) { + return option.__value; + } else { + return option.value; + } +} + +// node_modules/svelte/src/internal/client/dom/elements/bindings/size.js +var _listeners, _observer, _options, _ResizeObserverSingleton_instances, getObserver_fn; +var _ResizeObserverSingleton = class _ResizeObserverSingleton { + /** @param {ResizeObserverOptions} options */ + constructor(options) { + __privateAdd(this, _ResizeObserverSingleton_instances); + /** */ + __privateAdd(this, _listeners, /* @__PURE__ */ new WeakMap()); + /** @type {ResizeObserver | undefined} */ + __privateAdd(this, _observer); + /** @type {ResizeObserverOptions} */ + __privateAdd(this, _options); + __privateSet(this, _options, options); + } + /** + * @param {Element} element + * @param {(entry: ResizeObserverEntry) => any} listener + */ + observe(element2, listener) { + var listeners = __privateGet(this, _listeners).get(element2) || /* @__PURE__ */ new Set(); + listeners.add(listener); + __privateGet(this, _listeners).set(element2, listeners); + __privateMethod(this, _ResizeObserverSingleton_instances, getObserver_fn).call(this).observe(element2, __privateGet(this, _options)); + return () => { + var listeners2 = __privateGet(this, _listeners).get(element2); + listeners2.delete(listener); + if (listeners2.size === 0) { + __privateGet(this, _listeners).delete(element2); + __privateGet(this, _observer).unobserve(element2); + } + }; + } +}; +_listeners = new WeakMap(); +_observer = new WeakMap(); +_options = new WeakMap(); +_ResizeObserverSingleton_instances = new WeakSet(); +getObserver_fn = function() { + return __privateGet(this, _observer) ?? __privateSet(this, _observer, new ResizeObserver( + /** @param {any} entries */ + (entries) => { + for (var entry of entries) { + _ResizeObserverSingleton.entries.set(entry.target, entry); + for (var listener of __privateGet(this, _listeners).get(entry.target) || []) { + listener(entry); + } + } + } + )); +}; +/** @static */ +__publicField(_ResizeObserverSingleton, "entries", /* @__PURE__ */ new WeakMap()); +var ResizeObserverSingleton = _ResizeObserverSingleton; +var resize_observer_content_box = new ResizeObserverSingleton({ + box: "content-box" +}); +var resize_observer_border_box = new ResizeObserverSingleton({ + box: "border-box" +}); +var resize_observer_device_pixel_content_box = new ResizeObserverSingleton({ + box: "device-pixel-content-box" +}); +function bind_resize_observer(element2, type, set2) { + var observer = type === "contentRect" || type === "contentBoxSize" ? resize_observer_content_box : type === "borderBoxSize" ? resize_observer_border_box : resize_observer_device_pixel_content_box; + var unsub = observer.observe( + element2, + /** @param {any} entry */ + (entry) => set2(entry[type]) + ); + teardown(unsub); +} +function bind_element_size(element2, type, set2) { + var unsub = resize_observer_border_box.observe(element2, () => set2(element2[type])); + effect(() => { + untrack(() => set2(element2[type])); + return unsub; + }); +} + +// node_modules/svelte/src/internal/client/dom/elements/bindings/this.js +function is_bound_this(bound_value, element_or_component) { + return bound_value === element_or_component || (bound_value == null ? void 0 : bound_value[STATE_SYMBOL]) === element_or_component; +} +function bind_this(element_or_component = {}, update2, get_value, get_parts) { + effect(() => { + var old_parts; + var parts; + render_effect(() => { + old_parts = parts; + parts = (get_parts == null ? void 0 : get_parts()) || []; + untrack(() => { + if (element_or_component !== get_value(...parts)) { + update2(element_or_component, ...parts); + if (old_parts && is_bound_this(get_value(...old_parts), element_or_component)) { + update2(null, ...old_parts); + } + } + }); + }); + return () => { + queue_micro_task(() => { + if (parts && is_bound_this(get_value(...parts), element_or_component)) { + update2(null, ...parts); + } + }); + }; + }); + return element_or_component; +} + +// node_modules/svelte/src/internal/client/dom/elements/bindings/universal.js +function bind_content_editable(property, element2, get3, set2 = get3) { + element2.addEventListener("input", () => { + set2(element2[property]); + }); + render_effect(() => { + var value = get3(); + if (element2[property] !== value) { + if (value == null) { + var non_null_value = element2[property]; + set2(non_null_value); + } else { + element2[property] = value + ""; + } + } + }); +} +function bind_property(property, event_name, element2, set2, get3) { + var handler = () => { + set2(element2[property]); + }; + element2.addEventListener(event_name, handler); + if (get3) { + render_effect(() => { + element2[property] = get3(); + }); + } else { + handler(); + } + if (element2 === document.body || element2 === window || element2 === document) { + teardown(() => { + element2.removeEventListener(event_name, handler); + }); + } +} +function bind_focused(element2, set2) { + listen(element2, ["focus", "blur"], () => { + set2(element2 === document.activeElement); + }); +} + +// node_modules/svelte/src/internal/client/dom/elements/bindings/window.js +function bind_window_scroll(type, get3, set2 = get3) { + var is_scrolling_x = type === "x"; + var target_handler = () => without_reactive_context(() => { + scrolling = true; + clearTimeout(timeout); + timeout = setTimeout(clear, 100); + set2(window[is_scrolling_x ? "scrollX" : "scrollY"]); + }); + addEventListener("scroll", target_handler, { + passive: true + }); + var scrolling = false; + var timeout; + var clear = () => { + scrolling = false; + }; + var first = true; + render_effect(() => { + var latest_value = get3(); + if (first) { + first = false; + } else if (!scrolling && latest_value != null) { + scrolling = true; + clearTimeout(timeout); + if (is_scrolling_x) { + scrollTo(latest_value, window.scrollY); + } else { + scrollTo(window.scrollX, latest_value); + } + timeout = setTimeout(clear, 100); + } + }); + effect(target_handler); + teardown(() => { + removeEventListener("scroll", target_handler); + }); +} +function bind_window_size(type, set2) { + listen(window, ["resize"], () => without_reactive_context(() => set2(window[type]))); +} + +// node_modules/svelte/src/internal/client/dom/legacy/lifecycle.js +function init(immutable = false) { + const context = ( + /** @type {ComponentContextLegacy} */ + component_context + ); + const callbacks = context.l.u; + if (!callbacks) return; + let props = () => deep_read_state(context.s); + if (immutable) { + let version = 0; + let prev = ( + /** @type {Record} */ + {} + ); + const d = derived(() => { + let changed = false; + const props2 = context.s; + for (const key in props2) { + if (props2[key] !== prev[key]) { + prev[key] = props2[key]; + changed = true; + } + } + if (changed) version++; + return version; + }); + props = () => get(d); + } + if (callbacks.b.length) { + user_pre_effect(() => { + observe_all(context, props); + run_all(callbacks.b); + }); + } + user_effect(() => { + const fns = untrack(() => callbacks.m.map(run)); + return () => { + for (const fn of fns) { + if (typeof fn === "function") { + fn(); + } + } + }; + }); + if (callbacks.a.length) { + user_effect(() => { + observe_all(context, props); + run_all(callbacks.a); + }); + } +} +function observe_all(context, props) { + if (context.l.s) { + for (const signal of context.l.s) get(signal); + } + props(); +} + +// node_modules/svelte/src/internal/client/dom/legacy/misc.js +function reactive_import(fn) { + var s = source(0); + return function() { + if (arguments.length === 1) { + set(s, get(s) + 1); + return arguments[0]; + } else { + get(s); + return fn(); + } + }; +} +function bubble_event($$props, event2) { + var _a; + var events = ( + /** @type {Record} */ + (_a = $$props.$$events) == null ? void 0 : _a[event2.type] + ); + var callbacks = is_array(events) ? events.slice() : events == null ? [] : [events]; + for (var fn of callbacks) { + fn.call(this, event2); + } +} +function add_legacy_event_listener($$props, event_name, event_callback) { + var _a; + $$props.$$events || ($$props.$$events = {}); + (_a = $$props.$$events)[event_name] || (_a[event_name] = []); + $$props.$$events[event_name].push(event_callback); +} +function update_legacy_props($$new_props) { + for (var key in $$new_props) { + if (key in this) { + this[key] = $$new_props[key]; + } + } +} + +// node_modules/svelte/src/index-client.js +if (true_default) { + let throw_rune_error = function(rune) { + if (!(rune in globalThis)) { + let value; + Object.defineProperty(globalThis, rune, { + configurable: true, + // eslint-disable-next-line getter-return + get: () => { + if (value !== void 0) { + return value; + } + rune_outside_svelte(rune); + }, + set: (v) => { + value = v; + } + }); + } + }; + throw_rune_error("$state"); + throw_rune_error("$effect"); + throw_rune_error("$derived"); + throw_rune_error("$inspect"); + throw_rune_error("$props"); + throw_rune_error("$bindable"); +} +function onMount(fn) { + if (component_context === null) { + lifecycle_outside_component("onMount"); + } + if (legacy_mode_flag && component_context.l !== null) { + init_update_callbacks(component_context).m.push(fn); + } else { + user_effect(() => { + const cleanup = untrack(fn); + if (typeof cleanup === "function") return ( + /** @type {() => void} */ + cleanup + ); + }); + } +} +function onDestroy(fn) { + if (component_context === null) { + lifecycle_outside_component("onDestroy"); + } + onMount(() => () => untrack(fn)); +} +function create_custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { + return new CustomEvent(type, { detail, bubbles, cancelable }); +} +function createEventDispatcher() { + const active_component_context = component_context; + if (active_component_context === null) { + lifecycle_outside_component("createEventDispatcher"); + } + return (type, detail, options) => { + var _a; + const events = ( + /** @type {Record} */ + (_a = active_component_context.s.$$events) == null ? void 0 : _a[ + /** @type {any} */ + type + ] + ); + if (events) { + const callbacks = is_array(events) ? events.slice() : [events]; + const event2 = create_custom_event( + /** @type {string} */ + type, + detail, + options + ); + for (const fn of callbacks) { + fn.call(active_component_context.x, event2); + } + return !event2.defaultPrevented; + } + return true; + }; +} +function beforeUpdate(fn) { + if (component_context === null) { + lifecycle_outside_component("beforeUpdate"); + } + if (component_context.l === null) { + lifecycle_legacy_only("beforeUpdate"); + } + init_update_callbacks(component_context).b.push(fn); +} +function afterUpdate(fn) { + if (component_context === null) { + lifecycle_outside_component("afterUpdate"); + } + if (component_context.l === null) { + lifecycle_legacy_only("afterUpdate"); + } + init_update_callbacks(component_context).a.push(fn); +} +function init_update_callbacks(context) { + var l = ( + /** @type {ComponentContextLegacy} */ + context.l + ); + return l.u ?? (l.u = { a: [], b: [], m: [] }); +} +function flushSync(fn) { + flush_sync(fn); +} + +// node_modules/svelte/src/store/utils.js +function subscribe_to_store(store, run2, invalidate) { + if (store == null) { + run2(void 0); + if (invalidate) invalidate(void 0); + return noop; + } + const unsub = untrack( + () => store.subscribe( + run2, + // @ts-expect-error + invalidate + ) + ); + return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; +} + +// node_modules/svelte/src/store/shared/index.js +var subscriber_queue = []; +function readable(value, start) { + return { + subscribe: writable(value, start).subscribe + }; +} +function writable(value, start = noop) { + let stop = null; + const subscribers = /* @__PURE__ */ new Set(); + function set2(new_value) { + if (safe_not_equal(value, new_value)) { + value = new_value; + if (stop) { + const run_queue = !subscriber_queue.length; + for (const subscriber of subscribers) { + subscriber[1](); + subscriber_queue.push(subscriber, value); + } + if (run_queue) { + for (let i = 0; i < subscriber_queue.length; i += 2) { + subscriber_queue[i][0](subscriber_queue[i + 1]); + } + subscriber_queue.length = 0; + } + } + } + } + function update2(fn) { + set2(fn( + /** @type {T} */ + value + )); + } + function subscribe(run2, invalidate = noop) { + const subscriber = [run2, invalidate]; + subscribers.add(subscriber); + if (subscribers.size === 1) { + stop = start(set2, update2) || noop; + } + run2( + /** @type {T} */ + value + ); + return () => { + subscribers.delete(subscriber); + if (subscribers.size === 0 && stop) { + stop(); + stop = null; + } + }; + } + return { set: set2, update: update2, subscribe }; +} +function derived2(stores, fn, initial_value) { + const single = !Array.isArray(stores); + const stores_array = single ? [stores] : stores; + if (!stores_array.every(Boolean)) { + throw new Error("derived() expects stores as input, got a falsy value"); + } + const auto = fn.length < 2; + return readable(initial_value, (set2, update2) => { + let started = false; + const values = []; + let pending2 = 0; + let cleanup = noop; + const sync = () => { + if (pending2) { + return; + } + cleanup(); + const result = fn(single ? values[0] : values, set2, update2); + if (auto) { + set2(result); + } else { + cleanup = typeof result === "function" ? result : noop; + } + }; + const unsubscribers = stores_array.map( + (store, i) => subscribe_to_store( + store, + (value) => { + values[i] = value; + pending2 &= ~(1 << i); + if (started) { + sync(); + } + }, + () => { + pending2 |= 1 << i; + } + ) + ); + started = true; + sync(); + return function stop() { + run_all(unsubscribers); + cleanup(); + started = false; + }; + }); +} +function readonly(store) { + return { + // @ts-expect-error TODO i suspect the bind is unnecessary + subscribe: store.subscribe.bind(store) + }; +} +function get2(store) { + let value; + subscribe_to_store(store, (_) => value = _)(); + return value; +} + +// node_modules/svelte/src/internal/client/reactivity/store.js +var is_store_binding = false; +var IS_UNMOUNTED = Symbol(); +function store_get(store, store_name, stores) { + const entry = stores[store_name] ?? (stores[store_name] = { + store: null, + source: mutable_source(void 0), + unsubscribe: noop + }); + if (entry.store !== store && !(IS_UNMOUNTED in stores)) { + entry.unsubscribe(); + entry.store = store ?? null; + if (store == null) { + entry.source.v = void 0; + entry.unsubscribe = noop; + } else { + var is_synchronous_callback = true; + entry.unsubscribe = subscribe_to_store(store, (v) => { + if (is_synchronous_callback) { + entry.source.v = v; + } else { + set(entry.source, v); + } + }); + is_synchronous_callback = false; + } + } + if (store && IS_UNMOUNTED in stores) { + return get2(store); + } + return get(entry.source); +} +function store_unsub(store, store_name, stores) { + let entry = stores[store_name]; + if (entry && entry.store !== store) { + entry.unsubscribe(); + entry.unsubscribe = noop; + } + return store; +} +function store_set(store, value) { + store.set(value); + return value; +} +function invalidate_store(stores, store_name) { + var entry = stores[store_name]; + if (entry.store !== null) { + store_set(entry.store, entry.source.v); + } +} +function setup_stores() { + const stores = {}; + function cleanup() { + teardown(() => { + for (var store_name in stores) { + const ref = stores[store_name]; + ref.unsubscribe(); + } + define_property(stores, IS_UNMOUNTED, { + enumerable: false, + value: true + }); + }); + } + return [stores, cleanup]; +} +function store_mutate(store, expression, new_value) { + store.set(new_value); + return expression; +} +function update_store(store, store_value, d = 1) { + store.set(store_value + d); + return store_value; +} +function update_pre_store(store, store_value, d = 1) { + const value = store_value + d; + store.set(value); + return value; +} +function mark_store_binding() { + is_store_binding = true; +} +function capture_store_binding(fn) { + var previous_is_store_binding = is_store_binding; + try { + is_store_binding = false; + return [fn(), is_store_binding]; + } finally { + is_store_binding = previous_is_store_binding; + } +} + +// node_modules/svelte/src/internal/client/reactivity/props.js +function update_prop(fn, d = 1) { + const value = fn(); + fn(value + d); + return value; +} +function update_pre_prop(fn, d = 1) { + const value = fn() + d; + fn(value); + return value; +} +var rest_props_handler = { + get(target, key) { + if (target.exclude.includes(key)) return; + return target.props[key]; + }, + set(target, key) { + if (true_default) { + props_rest_readonly(`${target.name}.${String(key)}`); + } + return false; + }, + getOwnPropertyDescriptor(target, key) { + if (target.exclude.includes(key)) return; + if (key in target.props) { + return { + enumerable: true, + configurable: true, + value: target.props[key] + }; + } + }, + has(target, key) { + if (target.exclude.includes(key)) return false; + return key in target.props; + }, + ownKeys(target) { + return Reflect.ownKeys(target.props).filter((key) => !target.exclude.includes(key)); + } +}; +function rest_props(props, exclude, name) { + return new Proxy( + true_default ? { props, exclude, name, other: {}, to_proxy: [] } : { props, exclude }, + rest_props_handler + ); +} +var legacy_rest_props_handler = { + get(target, key) { + if (target.exclude.includes(key)) return; + get(target.version); + return key in target.special ? target.special[key]() : target.props[key]; + }, + set(target, key, value) { + if (!(key in target.special)) { + target.special[key] = prop( + { + get [key]() { + return target.props[key]; + } + }, + /** @type {string} */ + key, + PROPS_IS_UPDATED + ); + } + target.special[key](value); + update(target.version); + return true; + }, + getOwnPropertyDescriptor(target, key) { + if (target.exclude.includes(key)) return; + if (key in target.props) { + return { + enumerable: true, + configurable: true, + value: target.props[key] + }; + } + }, + deleteProperty(target, key) { + if (target.exclude.includes(key)) return true; + target.exclude.push(key); + update(target.version); + return true; + }, + has(target, key) { + if (target.exclude.includes(key)) return false; + return key in target.props; + }, + ownKeys(target) { + return Reflect.ownKeys(target.props).filter((key) => !target.exclude.includes(key)); + } +}; +function legacy_rest_props(props, exclude) { + return new Proxy({ props, exclude, special: {}, version: source(0) }, legacy_rest_props_handler); +} +var spread_props_handler = { + get(target, key) { + let i = target.props.length; + while (i--) { + let p = target.props[i]; + if (is_function(p)) p = p(); + if (typeof p === "object" && p !== null && key in p) return p[key]; + } + }, + set(target, key, value) { + let i = target.props.length; + while (i--) { + let p = target.props[i]; + if (is_function(p)) p = p(); + const desc = get_descriptor(p, key); + if (desc && desc.set) { + desc.set(value); + return true; + } + } + return false; + }, + getOwnPropertyDescriptor(target, key) { + let i = target.props.length; + while (i--) { + let p = target.props[i]; + if (is_function(p)) p = p(); + if (typeof p === "object" && p !== null && key in p) { + const descriptor = get_descriptor(p, key); + if (descriptor && !descriptor.configurable) { + descriptor.configurable = true; + } + return descriptor; + } + } + }, + has(target, key) { + if (key === STATE_SYMBOL || key === LEGACY_PROPS) return false; + for (let p of target.props) { + if (is_function(p)) p = p(); + if (p != null && key in p) return true; + } + return false; + }, + ownKeys(target) { + const keys = []; + for (let p of target.props) { + if (is_function(p)) p = p(); + for (const key in p) { + if (!keys.includes(key)) keys.push(key); + } + } + return keys; + } +}; +function spread_props(...props) { + return new Proxy({ props }, spread_props_handler); +} +function with_parent_branch(fn) { + var effect2 = active_effect; + var previous_effect = active_effect; + while (effect2 !== null && (effect2.f & (BRANCH_EFFECT | ROOT_EFFECT)) === 0) { + effect2 = effect2.parent; + } + try { + set_active_effect(effect2); + return fn(); + } finally { + set_active_effect(previous_effect); + } +} +function prop(props, key, flags, fallback2) { + var _a; + var immutable = (flags & PROPS_IS_IMMUTABLE) !== 0; + var runes = !legacy_mode_flag || (flags & PROPS_IS_RUNES) !== 0; + var bindable = (flags & PROPS_IS_BINDABLE) !== 0; + var lazy = (flags & PROPS_IS_LAZY_INITIAL) !== 0; + var is_store_sub = false; + var prop_value; + if (bindable) { + [prop_value, is_store_sub] = capture_store_binding(() => ( + /** @type {V} */ + props[key] + )); + } else { + prop_value = /** @type {V} */ + props[key]; + } + var is_entry_props = STATE_SYMBOL in props || LEGACY_PROPS in props; + var setter = bindable && (((_a = get_descriptor(props, key)) == null ? void 0 : _a.set) ?? (is_entry_props && key in props && ((v) => props[key] = v))) || void 0; + var fallback_value = ( + /** @type {V} */ + fallback2 + ); + var fallback_dirty = true; + var fallback_used = false; + var get_fallback = () => { + fallback_used = true; + if (fallback_dirty) { + fallback_dirty = false; + if (lazy) { + fallback_value = untrack( + /** @type {() => V} */ + fallback2 + ); + } else { + fallback_value = /** @type {V} */ + fallback2; + } + } + return fallback_value; + }; + if (prop_value === void 0 && fallback2 !== void 0) { + if (setter && runes) { + props_invalid_value(key); + } + prop_value = get_fallback(); + if (setter) setter(prop_value); + } + var getter; + if (runes) { + getter = () => { + var value = ( + /** @type {V} */ + props[key] + ); + if (value === void 0) return get_fallback(); + fallback_dirty = true; + fallback_used = false; + return value; + }; + } else { + var derived_getter = with_parent_branch( + () => (immutable ? derived : derived_safe_equal)(() => ( + /** @type {V} */ + props[key] + )) + ); + derived_getter.f |= LEGACY_DERIVED_PROP; + getter = () => { + var value = get(derived_getter); + if (value !== void 0) fallback_value = /** @type {V} */ + void 0; + return value === void 0 ? fallback_value : value; + }; + } + if ((flags & PROPS_IS_UPDATED) === 0) { + return getter; + } + if (setter) { + var legacy_parent = props.$$legacy; + return function(value, mutation) { + if (arguments.length > 0) { + if (!runes || !mutation || legacy_parent || is_store_sub) { + setter(mutation ? getter() : value); + } + return value; + } else { + return getter(); + } + }; + } + var from_child = false; + var was_from_child = false; + var inner_current_value = mutable_source(prop_value); + var current_value = with_parent_branch( + () => derived(() => { + var parent_value = getter(); + var child_value = get(inner_current_value); + if (from_child) { + from_child = false; + was_from_child = true; + return child_value; + } + was_from_child = false; + return inner_current_value.v = parent_value; + }) + ); + if (!immutable) current_value.equals = safe_equals; + return function(value, mutation) { + if (captured_signals !== null) { + from_child = was_from_child; + getter(); + get(inner_current_value); + } + if (arguments.length > 0) { + const new_value = mutation ? get(current_value) : runes && bindable ? proxy(value) : value; + if (!current_value.equals(new_value)) { + from_child = true; + set(inner_current_value, new_value); + if (fallback_used && fallback_value !== void 0) { + fallback_value = new_value; + } + untrack(() => get(current_value)); + } + return value; + } + return get(current_value); + }; +} + +// node_modules/svelte/src/internal/client/dom/blocks/boundary.js +function with_boundary(boundary2, fn) { + var previous_effect = active_effect; + var previous_reaction = active_reaction; + var previous_ctx = component_context; + set_active_effect(boundary2); + set_active_reaction(boundary2); + set_component_context(boundary2.ctx); + try { + fn(); + } finally { + set_active_effect(previous_effect); + set_active_reaction(previous_reaction); + set_component_context(previous_ctx); + } +} +function boundary(node, props, boundary_fn) { + var anchor = node; + var boundary_effect; + block(() => { + var boundary2 = ( + /** @type {Effect} */ + active_effect + ); + var hydrate_open = hydrate_node; + var is_creating_fallback = false; + boundary2.fn = (error) => { + var onerror = props.onerror; + let failed = props.failed; + if (!onerror && !failed || is_creating_fallback) { + throw error; + } + var reset2 = () => { + pause_effect(boundary_effect); + with_boundary(boundary2, () => { + is_creating_fallback = false; + boundary_effect = branch(() => boundary_fn(anchor)); + reset_is_throwing_error(); + }); + }; + onerror == null ? void 0 : onerror(error, reset2); + if (boundary_effect) { + destroy_effect(boundary_effect); + } else if (hydrating) { + set_hydrate_node(hydrate_open); + next(); + set_hydrate_node(remove_nodes()); + } + if (failed) { + queue_micro_task(() => { + with_boundary(boundary2, () => { + is_creating_fallback = true; + try { + boundary_effect = branch(() => { + failed( + anchor, + () => error, + () => reset2 + ); + }); + } catch (error2) { + handle_error(error2, boundary2, null, boundary2.ctx); + } + reset_is_throwing_error(); + is_creating_fallback = false; + }); + }); + } + }; + if (hydrating) { + hydrate_next(); + } + boundary_effect = branch(() => boundary_fn(anchor)); + reset_is_throwing_error(); + }, EFFECT_TRANSPARENT | BOUNDARY_EFFECT); + if (hydrating) { + anchor = hydrate_node; + } +} + +// node_modules/svelte/src/internal/client/validate.js +function validate_each_keys(collection, key_fn) { + render_effect(() => { + const keys = /* @__PURE__ */ new Map(); + const maybe_array = collection(); + const array = is_array(maybe_array) ? maybe_array : maybe_array == null ? [] : Array.from(maybe_array); + const length = array.length; + for (let i = 0; i < length; i++) { + const key = key_fn(array[i], i); + if (keys.has(key)) { + const a = String(keys.get(key)); + const b = String(i); + let k = String(key); + if (k.startsWith("[object ")) k = null; + each_key_duplicate(a, b, k); + } + keys.set(key, i); + } + }); +} +function validate_binding(binding, get_object, get_property, line, column) { + var _a; + var warned = false; + var filename = (_a = dev_current_component_function) == null ? void 0 : _a[FILENAME]; + render_effect(() => { + if (warned) return; + var [object, is_store_sub] = capture_store_binding(get_object); + if (is_store_sub) return; + var property = get_property(); + var ran = false; + var effect2 = render_effect(() => { + if (ran) return; + object[property]; + }); + ran = true; + if (effect2.deps === null) { + var location = `${filename}:${line}:${column}`; + binding_property_non_reactive(binding, location); + warned = true; + } + }); +} + +// node_modules/svelte/src/internal/client/dom/elements/custom-element.js +var SvelteElement; +if (typeof HTMLElement === "function") { + SvelteElement = class extends HTMLElement { + /** + * @param {*} $$componentCtor + * @param {*} $$slots + * @param {*} use_shadow_dom + */ + constructor($$componentCtor, $$slots, use_shadow_dom) { + super(); + /** The Svelte component constructor */ + __publicField(this, "$$ctor"); + /** Slots */ + __publicField(this, "$$s"); + /** @type {any} The Svelte component instance */ + __publicField(this, "$$c"); + /** Whether or not the custom element is connected */ + __publicField(this, "$$cn", false); + /** @type {Record} Component props data */ + __publicField(this, "$$d", {}); + /** `true` if currently in the process of reflecting component props back to attributes */ + __publicField(this, "$$r", false); + /** @type {Record} Props definition (name, reflected, type etc) */ + __publicField(this, "$$p_d", {}); + /** @type {Record} Event listeners */ + __publicField(this, "$$l", {}); + /** @type {Map} Event listener unsubscribe functions */ + __publicField(this, "$$l_u", /* @__PURE__ */ new Map()); + /** @type {any} The managed render effect for reflecting attributes */ + __publicField(this, "$$me"); + this.$$ctor = $$componentCtor; + this.$$s = $$slots; + if (use_shadow_dom) { + this.attachShadow({ mode: "open" }); + } + } + /** + * @param {string} type + * @param {EventListenerOrEventListenerObject} listener + * @param {boolean | AddEventListenerOptions} [options] + */ + addEventListener(type, listener, options) { + this.$$l[type] = this.$$l[type] || []; + this.$$l[type].push(listener); + if (this.$$c) { + const unsub = this.$$c.$on(type, listener); + this.$$l_u.set(listener, unsub); + } + super.addEventListener(type, listener, options); + } + /** + * @param {string} type + * @param {EventListenerOrEventListenerObject} listener + * @param {boolean | AddEventListenerOptions} [options] + */ + removeEventListener(type, listener, options) { + super.removeEventListener(type, listener, options); + if (this.$$c) { + const unsub = this.$$l_u.get(listener); + if (unsub) { + unsub(); + this.$$l_u.delete(listener); + } + } + } + async connectedCallback() { + this.$$cn = true; + if (!this.$$c) { + let create_slot = function(name) { + return (anchor) => { + const slot2 = document.createElement("slot"); + if (name !== "default") slot2.name = name; + append(anchor, slot2); + }; + }; + await Promise.resolve(); + if (!this.$$cn || this.$$c) { + return; + } + const $$slots = {}; + const existing_slots = get_custom_elements_slots(this); + for (const name of this.$$s) { + if (name in existing_slots) { + if (name === "default" && !this.$$d.children) { + this.$$d.children = create_slot(name); + $$slots.default = true; + } else { + $$slots[name] = create_slot(name); + } + } + } + for (const attribute of this.attributes) { + const name = this.$$g_p(attribute.name); + if (!(name in this.$$d)) { + this.$$d[name] = get_custom_element_value(name, attribute.value, this.$$p_d, "toProp"); + } + } + for (const key in this.$$p_d) { + if (!(key in this.$$d) && this[key] !== void 0) { + this.$$d[key] = this[key]; + delete this[key]; + } + } + this.$$c = createClassComponent({ + component: this.$$ctor, + target: this.shadowRoot || this, + props: { + ...this.$$d, + $$slots, + $$host: this + } + }); + this.$$me = effect_root(() => { + render_effect(() => { + var _a; + this.$$r = true; + for (const key of object_keys(this.$$c)) { + if (!((_a = this.$$p_d[key]) == null ? void 0 : _a.reflect)) continue; + this.$$d[key] = this.$$c[key]; + const attribute_value = get_custom_element_value( + key, + this.$$d[key], + this.$$p_d, + "toAttribute" + ); + if (attribute_value == null) { + this.removeAttribute(this.$$p_d[key].attribute || key); + } else { + this.setAttribute(this.$$p_d[key].attribute || key, attribute_value); + } + } + this.$$r = false; + }); + }); + for (const type in this.$$l) { + for (const listener of this.$$l[type]) { + const unsub = this.$$c.$on(type, listener); + this.$$l_u.set(listener, unsub); + } + } + this.$$l = {}; + } + } + // We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte + // and setting attributes through setAttribute etc, this is helpful + /** + * @param {string} attr + * @param {string} _oldValue + * @param {string} newValue + */ + attributeChangedCallback(attr2, _oldValue, newValue) { + var _a; + if (this.$$r) return; + attr2 = this.$$g_p(attr2); + this.$$d[attr2] = get_custom_element_value(attr2, newValue, this.$$p_d, "toProp"); + (_a = this.$$c) == null ? void 0 : _a.$set({ [attr2]: this.$$d[attr2] }); + } + disconnectedCallback() { + this.$$cn = false; + Promise.resolve().then(() => { + if (!this.$$cn && this.$$c) { + this.$$c.$destroy(); + this.$$me(); + this.$$c = void 0; + } + }); + } + /** + * @param {string} attribute_name + */ + $$g_p(attribute_name) { + return object_keys(this.$$p_d).find( + (key) => this.$$p_d[key].attribute === attribute_name || !this.$$p_d[key].attribute && key.toLowerCase() === attribute_name + ) || attribute_name; + } + }; +} +function get_custom_element_value(prop2, value, props_definition, transform) { + var _a; + const type = (_a = props_definition[prop2]) == null ? void 0 : _a.type; + value = type === "Boolean" && typeof value !== "boolean" ? value != null : value; + if (!transform || !props_definition[prop2]) { + return value; + } else if (transform === "toAttribute") { + switch (type) { + case "Object": + case "Array": + return value == null ? null : JSON.stringify(value); + case "Boolean": + return value ? "" : null; + case "Number": + return value == null ? null : value; + default: + return value; + } + } else { + switch (type) { + case "Object": + case "Array": + return value && JSON.parse(value); + case "Boolean": + return value; + // conversion already handled above + case "Number": + return value != null ? +value : value; + default: + return value; + } + } +} +function get_custom_elements_slots(element2) { + const result = {}; + element2.childNodes.forEach((node) => { + result[ + /** @type {Element} node */ + node.slot || "default" + ] = true; + }); + return result; +} +function create_custom_element(Component, props_definition, slots, exports, use_shadow_dom, extend) { + let Class = class extends SvelteElement { + constructor() { + super(Component, slots, use_shadow_dom); + this.$$p_d = props_definition; + } + static get observedAttributes() { + return object_keys(props_definition).map( + (key) => (props_definition[key].attribute || key).toLowerCase() + ); + } + }; + object_keys(props_definition).forEach((prop2) => { + define_property(Class.prototype, prop2, { + get() { + return this.$$c && prop2 in this.$$c ? this.$$c[prop2] : this.$$d[prop2]; + }, + set(value) { + var _a; + value = get_custom_element_value(prop2, value, props_definition); + this.$$d[prop2] = value; + var component2 = this.$$c; + if (component2) { + var setter = (_a = get_descriptor(component2, prop2)) == null ? void 0 : _a.get; + if (setter) { + component2[prop2] = value; + } else { + component2.$set({ [prop2]: value }); + } + } + } + }); + }); + exports.forEach((property) => { + define_property(Class.prototype, property, { + get() { + var _a; + return (_a = this.$$c) == null ? void 0 : _a[property]; + } + }); + }); + if (extend) { + Class = extend(Class); + } + Component.element = /** @type {any} */ + Class; + return Class; +} + +// node_modules/svelte/src/internal/shared/validate.js +function validate_void_dynamic_element(tag_fn) { + const tag = tag_fn(); + if (tag && is_void(tag)) { + dynamic_void_element_content(tag); + } +} +function validate_dynamic_element_tag(tag_fn) { + const tag = tag_fn(); + const is_string = typeof tag === "string"; + if (tag && !is_string) { + svelte_element_invalid_this_value(); + } +} +function validate_store(store, name) { + if (store != null && typeof store.subscribe !== "function") { + store_invalid_shape(name); + } +} + +// node_modules/svelte/src/internal/client/dev/console-log.js +function log_if_contains_state(method, ...objects) { + untrack(() => { + try { + let has_state = false; + const transformed = []; + for (const obj of objects) { + if (obj && typeof obj === "object" && STATE_SYMBOL in obj) { + transformed.push(snapshot(obj, true)); + has_state = true; + } else { + transformed.push(obj); + } + } + if (has_state) { + console_log_state(method); + console.log("%c[snapshot]", "color: grey", ...transformed); + } + } catch { + } + }); + return objects; +} + +export { + assign, + assign_and, + assign_or, + assign_nullish, + cleanup_styles, + add_locations, + hmr, + check_target, + legacy_api, + inspect, + await_block, + if_block, + key_block, + css_props, + index, + each, + html, + slot, + sanitize_slots, + snippet, + wrap_snippet, + createRawSnippet, + component, + element, + append_styles, + action, + attr, + clsx2 as clsx, + remove_input_defaults, + set_value, + set_checked, + set_selected, + set_default_checked, + set_default_value, + set_attribute, + set_xlink_attribute, + set_custom_element_data, + set_attributes, + handle_lazy_img, + set_svg_class, + set_mathml_class, + set_class, + toggle_class, + set_style, + raf, + loop, + animation, + transition, + bind_active_element, + bind_value, + bind_group, + bind_checked, + bind_files, + bind_current_time, + bind_buffered, + bind_seekable, + bind_played, + bind_seeking, + bind_ended, + bind_ready_state, + bind_playback_rate, + bind_paused, + bind_volume, + bind_muted, + bind_online, + bind_prop, + select_option, + init_select, + bind_select_value, + bind_resize_observer, + bind_element_size, + bind_this, + bind_content_editable, + bind_property, + bind_focused, + bind_window_scroll, + bind_window_size, + init, + reactive_import, + bubble_event, + add_legacy_event_listener, + update_legacy_props, + readable, + writable, + derived2 as derived, + readonly, + get2 as get, + store_get, + store_unsub, + store_set, + invalidate_store, + setup_stores, + store_mutate, + update_store, + update_pre_store, + mark_store_binding, + update_prop, + update_pre_prop, + rest_props, + legacy_rest_props, + spread_props, + prop, + boundary, + validate_each_keys, + validate_binding, + create_custom_element, + validate_void_dynamic_element, + validate_dynamic_element_tag, + validate_store, + log_if_contains_state, + onMount, + onDestroy, + createEventDispatcher, + beforeUpdate, + afterUpdate, + flushSync +}; +//# sourceMappingURL=chunk-D2CNISQR.js.map diff --git a/node_modules/.vite/deps/chunk-D2CNISQR.js.map b/node_modules/.vite/deps/chunk-D2CNISQR.js.map new file mode 100644 index 0000000..16eb651 --- /dev/null +++ b/node_modules/.vite/deps/chunk-D2CNISQR.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../svelte/src/internal/client/dev/assign.js", "../../svelte/src/internal/client/dev/css.js", "../../svelte/src/internal/client/dev/elements.js", "../../svelte/src/internal/client/dev/hmr.js", "../../svelte/src/internal/client/dev/legacy.js", "../../svelte/src/internal/client/dev/inspect.js", "../../svelte/src/internal/client/dom/blocks/await.js", "../../svelte/src/internal/client/dom/blocks/if.js", "../../svelte/src/internal/client/dom/blocks/key.js", "../../svelte/src/internal/client/dom/blocks/css-props.js", "../../svelte/src/internal/client/dom/blocks/each.js", "../../svelte/src/internal/client/dom/blocks/html.js", "../../svelte/src/internal/client/dom/blocks/slot.js", "../../svelte/src/internal/client/dom/blocks/snippet.js", "../../svelte/src/internal/client/dom/blocks/svelte-component.js", "../../svelte/src/internal/client/dom/blocks/svelte-element.js", "../../svelte/src/internal/client/dom/css.js", "../../svelte/src/internal/client/dom/elements/actions.js", "../../svelte/src/escaping.js", "../../svelte/src/internal/shared/attributes.js", "../../svelte/src/internal/client/dom/elements/attributes.js", "../../svelte/src/internal/client/dom/elements/class.js", "../../svelte/src/internal/client/dom/elements/style.js", "../../svelte/src/internal/client/timing.js", "../../svelte/src/internal/client/loop.js", "../../svelte/src/internal/client/dom/elements/transitions.js", "../../svelte/src/internal/client/dom/elements/bindings/document.js", "../../svelte/src/internal/client/dom/elements/bindings/input.js", "../../svelte/src/internal/client/dom/elements/bindings/media.js", "../../svelte/src/internal/client/dom/elements/bindings/navigator.js", "../../svelte/src/internal/client/dom/elements/bindings/props.js", "../../svelte/src/internal/client/dom/elements/bindings/select.js", "../../svelte/src/internal/client/dom/elements/bindings/size.js", "../../svelte/src/internal/client/dom/elements/bindings/this.js", "../../svelte/src/internal/client/dom/elements/bindings/universal.js", "../../svelte/src/internal/client/dom/elements/bindings/window.js", "../../svelte/src/internal/client/dom/legacy/lifecycle.js", "../../svelte/src/internal/client/dom/legacy/misc.js", "../../svelte/src/index-client.js", "../../svelte/src/store/utils.js", "../../svelte/src/store/shared/index.js", "../../svelte/src/internal/client/reactivity/store.js", "../../svelte/src/internal/client/reactivity/props.js", "../../svelte/src/internal/client/dom/blocks/boundary.js", "../../svelte/src/internal/client/validate.js", "../../svelte/src/internal/client/dom/elements/custom-element.js", "../../svelte/src/internal/shared/validate.js", "../../svelte/src/internal/client/dev/console-log.js"], + "sourcesContent": ["import { sanitize_location } from '../../../utils.js';\nimport { untrack } from '../runtime.js';\nimport * as w from '../warnings.js';\n\n/**\n *\n * @param {any} a\n * @param {any} b\n * @param {string} property\n * @param {string} location\n */\nfunction compare(a, b, property, location) {\n\tif (a !== b) {\n\t\tw.assignment_value_stale(property, /** @type {string} */ (sanitize_location(location)));\n\t}\n\n\treturn a;\n}\n\n/**\n * @param {any} object\n * @param {string} property\n * @param {any} value\n * @param {string} location\n */\nexport function assign(object, property, value, location) {\n\treturn compare(\n\t\t(object[property] = value),\n\t\tuntrack(() => object[property]),\n\t\tproperty,\n\t\tlocation\n\t);\n}\n\n/**\n * @param {any} object\n * @param {string} property\n * @param {any} value\n * @param {string} location\n */\nexport function assign_and(object, property, value, location) {\n\treturn compare(\n\t\t(object[property] &&= value),\n\t\tuntrack(() => object[property]),\n\t\tproperty,\n\t\tlocation\n\t);\n}\n\n/**\n * @param {any} object\n * @param {string} property\n * @param {any} value\n * @param {string} location\n */\nexport function assign_or(object, property, value, location) {\n\treturn compare(\n\t\t(object[property] ||= value),\n\t\tuntrack(() => object[property]),\n\t\tproperty,\n\t\tlocation\n\t);\n}\n\n/**\n * @param {any} object\n * @param {string} property\n * @param {any} value\n * @param {string} location\n */\nexport function assign_nullish(object, property, value, location) {\n\treturn compare(\n\t\t(object[property] ??= value),\n\t\tuntrack(() => object[property]),\n\t\tproperty,\n\t\tlocation\n\t);\n}\n", "/** @type {Map>} */\nvar all_styles = new Map();\n\n/**\n * @param {String} hash\n * @param {HTMLStyleElement} style\n */\nexport function register_style(hash, style) {\n\tvar styles = all_styles.get(hash);\n\n\tif (!styles) {\n\t\tstyles = new Set();\n\t\tall_styles.set(hash, styles);\n\t}\n\n\tstyles.add(style);\n}\n\n/**\n * @param {String} hash\n */\nexport function cleanup_styles(hash) {\n\tvar styles = all_styles.get(hash);\n\tif (!styles) return;\n\n\tfor (const style of styles) {\n\t\tstyle.remove();\n\t}\n\n\tall_styles.delete(hash);\n}\n", "/** @import { SourceLocation } from '#shared' */\nimport { HYDRATION_END, HYDRATION_START, HYDRATION_START_ELSE } from '../../../constants.js';\nimport { hydrating } from '../dom/hydration.js';\n\n/**\n * @param {any} fn\n * @param {string} filename\n * @param {SourceLocation[]} locations\n * @returns {any}\n */\nexport function add_locations(fn, filename, locations) {\n\treturn (/** @type {any[]} */ ...args) => {\n\t\tconst dom = fn(...args);\n\n\t\tvar node = hydrating ? dom : dom.nodeType === 11 ? dom.firstChild : dom;\n\t\tassign_locations(node, filename, locations);\n\n\t\treturn dom;\n\t};\n}\n\n/**\n * @param {Element} element\n * @param {string} filename\n * @param {SourceLocation} location\n */\nfunction assign_location(element, filename, location) {\n\t// @ts-expect-error\n\telement.__svelte_meta = {\n\t\tloc: { file: filename, line: location[0], column: location[1] }\n\t};\n\n\tif (location[2]) {\n\t\tassign_locations(element.firstChild, filename, location[2]);\n\t}\n}\n\n/**\n * @param {Node | null} node\n * @param {string} filename\n * @param {SourceLocation[]} locations\n */\nfunction assign_locations(node, filename, locations) {\n\tvar i = 0;\n\tvar depth = 0;\n\n\twhile (node && i < locations.length) {\n\t\tif (hydrating && node.nodeType === 8) {\n\t\t\tvar comment = /** @type {Comment} */ (node);\n\t\t\tif (comment.data === HYDRATION_START || comment.data === HYDRATION_START_ELSE) depth += 1;\n\t\t\telse if (comment.data[0] === HYDRATION_END) depth -= 1;\n\t\t}\n\n\t\tif (depth === 0 && node.nodeType === 1) {\n\t\t\tassign_location(/** @type {Element} */ (node), filename, locations[i++]);\n\t\t}\n\n\t\tnode = node.nextSibling;\n\t}\n}\n", "/** @import { Source, Effect, TemplateNode } from '#client' */\nimport { FILENAME, HMR } from '../../../constants.js';\nimport { EFFECT_TRANSPARENT } from '../constants.js';\nimport { hydrate_node, hydrating } from '../dom/hydration.js';\nimport { block, branch, destroy_effect } from '../reactivity/effects.js';\nimport { source } from '../reactivity/sources.js';\nimport { set_should_intro } from '../render.js';\nimport { get } from '../runtime.js';\n\n/**\n * @template {(anchor: Comment, props: any) => any} Component\n * @param {Component} original\n * @param {() => Source} get_source\n */\nexport function hmr(original, get_source) {\n\t/**\n\t * @param {TemplateNode} anchor\n\t * @param {any} props\n\t */\n\tfunction wrapper(anchor, props) {\n\t\tlet instance = {};\n\n\t\t/** @type {Effect} */\n\t\tlet effect;\n\n\t\tlet ran = false;\n\n\t\tblock(() => {\n\t\t\tconst source = get_source();\n\t\t\tconst component = get(source);\n\n\t\t\tif (effect) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tfor (var k in instance) delete instance[k];\n\t\t\t\tdestroy_effect(effect);\n\t\t\t}\n\n\t\t\teffect = branch(() => {\n\t\t\t\t// when the component is invalidated, replace it without transitions\n\t\t\t\tif (ran) set_should_intro(false);\n\n\t\t\t\t// preserve getters/setters\n\t\t\t\tObject.defineProperties(\n\t\t\t\t\tinstance,\n\t\t\t\t\tObject.getOwnPropertyDescriptors(\n\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\tnew.target ? new component(anchor, props) : component(anchor, props)\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\tif (ran) set_should_intro(true);\n\t\t\t});\n\t\t}, EFFECT_TRANSPARENT);\n\n\t\tran = true;\n\n\t\tif (hydrating) {\n\t\t\tanchor = hydrate_node;\n\t\t}\n\n\t\treturn instance;\n\t}\n\n\t// @ts-expect-error\n\twrapper[FILENAME] = original[FILENAME];\n\n\t// @ts-expect-error\n\twrapper[HMR] = {\n\t\t// When we accept an update, we set the original source to the new component\n\t\toriginal,\n\t\t// The `get_source` parameter reads `wrapper[HMR].source`, but in the `accept`\n\t\t// function we always replace it with `previous[HMR].source`, which in practice\n\t\t// means we only ever update the original\n\t\tsource: source(original)\n\t};\n\n\treturn wrapper;\n}\n", "import * as e from '../errors.js';\nimport { component_context } from '../context.js';\nimport { FILENAME } from '../../../constants.js';\nimport { get_component } from './ownership.js';\n\n/** @param {Function & { [FILENAME]: string }} target */\nexport function check_target(target) {\n\tif (target) {\n\t\te.component_api_invalid_new(target[FILENAME] ?? 'a component', target.name);\n\t}\n}\n\nexport function legacy_api() {\n\tconst component = component_context?.function;\n\n\t/** @param {string} method */\n\tfunction error(method) {\n\t\t// @ts-expect-error\n\t\tconst parent = get_component()?.[FILENAME] ?? 'Something';\n\t\te.component_api_changed(parent, method, component[FILENAME]);\n\t}\n\n\treturn {\n\t\t$destroy: () => error('$destroy()'),\n\t\t$on: () => error('$on(...)'),\n\t\t$set: () => error('$set(...)')\n\t};\n}\n", "import { UNINITIALIZED } from '../../../constants.js';\nimport { snapshot } from '../../shared/clone.js';\nimport { inspect_effect, validate_effect } from '../reactivity/effects.js';\n\n/**\n * @param {() => any[]} get_value\n * @param {Function} [inspector]\n */\n// eslint-disable-next-line no-console\nexport function inspect(get_value, inspector = console.log) {\n\tvalidate_effect('$inspect');\n\n\tlet initial = true;\n\n\tinspect_effect(() => {\n\t\t/** @type {any} */\n\t\tvar value = UNINITIALIZED;\n\n\t\t// Capturing the value might result in an exception due to the inspect effect being\n\t\t// sync and thus operating on stale data. In the case we encounter an exception we\n\t\t// can bail-out of reporting the value. Instead we simply console.error the error\n\t\t// so at least it's known that an error occured, but we don't stop execution\n\t\ttry {\n\t\t\tvalue = get_value();\n\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(error);\n\t\t}\n\n\t\tif (value !== UNINITIALIZED) {\n\t\t\tinspector(initial ? 'init' : 'update', ...snapshot(value, true));\n\t\t}\n\n\t\tinitial = false;\n\t});\n}\n", "/** @import { Effect, Source, TemplateNode } from '#client' */\nimport { DEV } from 'esm-env';\nimport { is_promise } from '../../../shared/utils.js';\nimport { block, branch, pause_effect, resume_effect } from '../../reactivity/effects.js';\nimport { internal_set, mutable_source, source } from '../../reactivity/sources.js';\nimport { flush_sync, set_active_effect, set_active_reaction } from '../../runtime.js';\nimport { hydrate_next, hydrate_node, hydrating } from '../hydration.js';\nimport { queue_micro_task } from '../task.js';\nimport { UNINITIALIZED } from '../../../../constants.js';\nimport {\n\tcomponent_context,\n\tis_runes,\n\tset_component_context,\n\tset_dev_current_component_function\n} from '../../context.js';\n\nconst PENDING = 0;\nconst THEN = 1;\nconst CATCH = 2;\n\n/**\n * @template V\n * @param {TemplateNode} node\n * @param {(() => Promise)} get_input\n * @param {null | ((anchor: Node) => void)} pending_fn\n * @param {null | ((anchor: Node, value: Source) => void)} then_fn\n * @param {null | ((anchor: Node, error: unknown) => void)} catch_fn\n * @returns {void}\n */\nexport function await_block(node, get_input, pending_fn, then_fn, catch_fn) {\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar anchor = node;\n\tvar runes = is_runes();\n\tvar active_component_context = component_context;\n\n\t/** @type {any} */\n\tvar component_function = DEV ? component_context?.function : null;\n\n\t/** @type {V | Promise | typeof UNINITIALIZED} */\n\tvar input = UNINITIALIZED;\n\n\t/** @type {Effect | null} */\n\tvar pending_effect;\n\n\t/** @type {Effect | null} */\n\tvar then_effect;\n\n\t/** @type {Effect | null} */\n\tvar catch_effect;\n\n\tvar input_source = (runes ? source : mutable_source)(/** @type {V} */ (undefined));\n\tvar error_source = (runes ? source : mutable_source)(undefined);\n\tvar resolved = false;\n\n\t/**\n\t * @param {PENDING | THEN | CATCH} state\n\t * @param {boolean} restore\n\t */\n\tfunction update(state, restore) {\n\t\tresolved = true;\n\n\t\tif (restore) {\n\t\t\tset_active_effect(effect);\n\t\t\tset_active_reaction(effect); // TODO do we need both?\n\t\t\tset_component_context(active_component_context);\n\t\t\tif (DEV) set_dev_current_component_function(component_function);\n\t\t}\n\n\t\ttry {\n\t\t\tif (state === PENDING && pending_fn) {\n\t\t\t\tif (pending_effect) resume_effect(pending_effect);\n\t\t\t\telse pending_effect = branch(() => pending_fn(anchor));\n\t\t\t}\n\n\t\t\tif (state === THEN && then_fn) {\n\t\t\t\tif (then_effect) resume_effect(then_effect);\n\t\t\t\telse then_effect = branch(() => then_fn(anchor, input_source));\n\t\t\t}\n\n\t\t\tif (state === CATCH && catch_fn) {\n\t\t\t\tif (catch_effect) resume_effect(catch_effect);\n\t\t\t\telse catch_effect = branch(() => catch_fn(anchor, error_source));\n\t\t\t}\n\n\t\t\tif (state !== PENDING && pending_effect) {\n\t\t\t\tpause_effect(pending_effect, () => (pending_effect = null));\n\t\t\t}\n\n\t\t\tif (state !== THEN && then_effect) {\n\t\t\t\tpause_effect(then_effect, () => (then_effect = null));\n\t\t\t}\n\n\t\t\tif (state !== CATCH && catch_effect) {\n\t\t\t\tpause_effect(catch_effect, () => (catch_effect = null));\n\t\t\t}\n\t\t} finally {\n\t\t\tif (restore) {\n\t\t\t\tif (DEV) set_dev_current_component_function(null);\n\t\t\t\tset_component_context(null);\n\t\t\t\tset_active_reaction(null);\n\t\t\t\tset_active_effect(null);\n\n\t\t\t\t// without this, the DOM does not update until two ticks after the promise\n\t\t\t\t// resolves, which is unexpected behaviour (and somewhat irksome to test)\n\t\t\t\tflush_sync();\n\t\t\t}\n\t\t}\n\t}\n\n\tvar effect = block(() => {\n\t\tif (input === (input = get_input())) return;\n\n\t\tif (is_promise(input)) {\n\t\t\tvar promise = input;\n\n\t\t\tresolved = false;\n\n\t\t\tpromise.then(\n\t\t\t\t(value) => {\n\t\t\t\t\tif (promise !== input) return;\n\t\t\t\t\t// we technically could use `set` here since it's on the next microtick\n\t\t\t\t\t// but let's use internal_set for consistency and just to be safe\n\t\t\t\t\tinternal_set(input_source, value);\n\t\t\t\t\tupdate(THEN, true);\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tif (promise !== input) return;\n\t\t\t\t\t// we technically could use `set` here since it's on the next microtick\n\t\t\t\t\t// but let's use internal_set for consistency and just to be safe\n\t\t\t\t\tinternal_set(error_source, error);\n\t\t\t\t\tupdate(CATCH, true);\n\t\t\t\t\tif (!catch_fn) {\n\t\t\t\t\t\t// Rethrow the error if no catch block exists\n\t\t\t\t\t\tthrow error_source.v;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (hydrating) {\n\t\t\t\tif (pending_fn) {\n\t\t\t\t\tpending_effect = branch(() => pending_fn(anchor));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Wait a microtask before checking if we should show the pending state as\n\t\t\t\t// the promise might have resolved by the next microtask.\n\t\t\t\tqueue_micro_task(() => {\n\t\t\t\t\tif (!resolved) update(PENDING, true);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tinternal_set(input_source, input);\n\t\t\tupdate(THEN, false);\n\t\t}\n\n\t\t// Set the input to something else, in order to disable the promise callbacks\n\t\treturn () => (input = UNINITIALIZED);\n\t});\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n", "/** @import { Effect, TemplateNode } from '#client' */\nimport { EFFECT_TRANSPARENT } from '../../constants.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tremove_nodes,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport { block, branch, pause_effect, resume_effect } from '../../reactivity/effects.js';\nimport { HYDRATION_START_ELSE, UNINITIALIZED } from '../../../../constants.js';\n\n/**\n * @param {TemplateNode} node\n * @param {(branch: (fn: (anchor: Node) => void, flag?: boolean) => void) => void} fn\n * @param {boolean} [elseif] True if this is an `{:else if ...}` block rather than an `{#if ...}`, as that affects which transitions are considered 'local'\n * @returns {void}\n */\nexport function if_block(node, fn, elseif = false) {\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar anchor = node;\n\n\t/** @type {Effect | null} */\n\tvar consequent_effect = null;\n\n\t/** @type {Effect | null} */\n\tvar alternate_effect = null;\n\n\t/** @type {UNINITIALIZED | boolean | null} */\n\tvar condition = UNINITIALIZED;\n\n\tvar flags = elseif ? EFFECT_TRANSPARENT : 0;\n\n\tvar has_branch = false;\n\n\tconst set_branch = (/** @type {(anchor: Node) => void} */ fn, flag = true) => {\n\t\thas_branch = true;\n\t\tupdate_branch(flag, fn);\n\t};\n\n\tconst update_branch = (\n\t\t/** @type {boolean | null} */ new_condition,\n\t\t/** @type {null | ((anchor: Node) => void)} */ fn\n\t) => {\n\t\tif (condition === (condition = new_condition)) return;\n\n\t\t/** Whether or not there was a hydration mismatch. Needs to be a `let` or else it isn't treeshaken out */\n\t\tlet mismatch = false;\n\n\t\tif (hydrating) {\n\t\t\tconst is_else = /** @type {Comment} */ (anchor).data === HYDRATION_START_ELSE;\n\n\t\t\tif (!!condition === is_else) {\n\t\t\t\t// Hydration mismatch: remove everything inside the anchor and start fresh.\n\t\t\t\t// This could happen with `{#if browser}...{/if}`, for example\n\t\t\t\tanchor = remove_nodes();\n\n\t\t\t\tset_hydrate_node(anchor);\n\t\t\t\tset_hydrating(false);\n\t\t\t\tmismatch = true;\n\t\t\t}\n\t\t}\n\n\t\tif (condition) {\n\t\t\tif (consequent_effect) {\n\t\t\t\tresume_effect(consequent_effect);\n\t\t\t} else if (fn) {\n\t\t\t\tconsequent_effect = branch(() => fn(anchor));\n\t\t\t}\n\n\t\t\tif (alternate_effect) {\n\t\t\t\tpause_effect(alternate_effect, () => {\n\t\t\t\t\talternate_effect = null;\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tif (alternate_effect) {\n\t\t\t\tresume_effect(alternate_effect);\n\t\t\t} else if (fn) {\n\t\t\t\talternate_effect = branch(() => fn(anchor));\n\t\t\t}\n\n\t\t\tif (consequent_effect) {\n\t\t\t\tpause_effect(consequent_effect, () => {\n\t\t\t\t\tconsequent_effect = null;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (mismatch) {\n\t\t\t// continue in hydration mode\n\t\t\tset_hydrating(true);\n\t\t}\n\t};\n\n\tblock(() => {\n\t\thas_branch = false;\n\t\tfn(set_branch);\n\t\tif (!has_branch) {\n\t\t\tupdate_branch(null, null);\n\t\t}\n\t}, flags);\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n", "/** @import { Effect, TemplateNode } from '#client' */\nimport { UNINITIALIZED } from '../../../../constants.js';\nimport { block, branch, pause_effect } from '../../reactivity/effects.js';\nimport { not_equal, safe_not_equal } from '../../reactivity/equality.js';\nimport { is_runes } from '../../context.js';\nimport { hydrate_next, hydrate_node, hydrating } from '../hydration.js';\n\n/**\n * @template V\n * @param {TemplateNode} node\n * @param {() => V} get_key\n * @param {(anchor: Node) => TemplateNode | void} render_fn\n * @returns {void}\n */\nexport function key_block(node, get_key, render_fn) {\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar anchor = node;\n\n\t/** @type {V | typeof UNINITIALIZED} */\n\tvar key = UNINITIALIZED;\n\n\t/** @type {Effect} */\n\tvar effect;\n\n\tvar changed = is_runes() ? not_equal : safe_not_equal;\n\n\tblock(() => {\n\t\tif (changed(key, (key = get_key()))) {\n\t\t\tif (effect) {\n\t\t\t\tpause_effect(effect);\n\t\t\t}\n\n\t\t\teffect = branch(() => render_fn(anchor));\n\t\t}\n\t});\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n", "/** @import { TemplateNode } from '#client' */\nimport { render_effect, teardown } from '../../reactivity/effects.js';\nimport { hydrate_node, hydrating, set_hydrate_node } from '../hydration.js';\nimport { get_first_child } from '../operations.js';\n\n/**\n * @param {HTMLDivElement | SVGGElement} element\n * @param {() => Record} get_styles\n * @returns {void}\n */\nexport function css_props(element, get_styles) {\n\tif (hydrating) {\n\t\tset_hydrate_node(/** @type {TemplateNode} */ (get_first_child(element)));\n\t}\n\n\trender_effect(() => {\n\t\tvar styles = get_styles();\n\n\t\tfor (var key in styles) {\n\t\t\tvar value = styles[key];\n\n\t\t\tif (value) {\n\t\t\t\telement.style.setProperty(key, value);\n\t\t\t} else {\n\t\t\t\telement.style.removeProperty(key);\n\t\t\t}\n\t\t}\n\t});\n\n\tteardown(() => {\n\t\telement.remove();\n\t});\n}\n", "/** @import { EachItem, EachState, Effect, MaybeSource, Source, TemplateNode, TransitionManager, Value } from '#client' */\nimport {\n\tEACH_INDEX_REACTIVE,\n\tEACH_IS_ANIMATED,\n\tEACH_IS_CONTROLLED,\n\tEACH_ITEM_IMMUTABLE,\n\tEACH_ITEM_REACTIVE,\n\tHYDRATION_END,\n\tHYDRATION_START_ELSE\n} from '../../../../constants.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tremove_nodes,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport {\n\tclear_text_content,\n\tcreate_text,\n\tget_first_child,\n\tget_next_sibling\n} from '../operations.js';\nimport {\n\tblock,\n\tbranch,\n\tdestroy_effect,\n\trun_out_transitions,\n\tpause_children,\n\tpause_effect,\n\tresume_effect\n} from '../../reactivity/effects.js';\nimport { source, mutable_source, internal_set } from '../../reactivity/sources.js';\nimport { array_from, is_array } from '../../../shared/utils.js';\nimport { INERT } from '../../constants.js';\nimport { queue_micro_task } from '../task.js';\nimport { active_effect, active_reaction, get } from '../../runtime.js';\nimport { DEV } from 'esm-env';\nimport { derived_safe_equal } from '../../reactivity/deriveds.js';\n\n/**\n * The row of a keyed each block that is currently updating. We track this\n * so that `animate:` directives have something to attach themselves to\n * @type {EachItem | null}\n */\nexport let current_each_item = null;\n\n/** @param {EachItem | null} item */\nexport function set_current_each_item(item) {\n\tcurrent_each_item = item;\n}\n\n/**\n * @param {any} _\n * @param {number} i\n */\nexport function index(_, i) {\n\treturn i;\n}\n\n/**\n * Pause multiple effects simultaneously, and coordinate their\n * subsequent destruction. Used in each blocks\n * @param {EachState} state\n * @param {EachItem[]} items\n * @param {null | Node} controlled_anchor\n * @param {Map} items_map\n */\nfunction pause_effects(state, items, controlled_anchor, items_map) {\n\t/** @type {TransitionManager[]} */\n\tvar transitions = [];\n\tvar length = items.length;\n\n\tfor (var i = 0; i < length; i++) {\n\t\tpause_children(items[i].e, transitions, true);\n\t}\n\n\tvar is_controlled = length > 0 && transitions.length === 0 && controlled_anchor !== null;\n\t// If we have a controlled anchor, it means that the each block is inside a single\n\t// DOM element, so we can apply a fast-path for clearing the contents of the element.\n\tif (is_controlled) {\n\t\tvar parent_node = /** @type {Element} */ (\n\t\t\t/** @type {Element} */ (controlled_anchor).parentNode\n\t\t);\n\t\tclear_text_content(parent_node);\n\t\tparent_node.append(/** @type {Element} */ (controlled_anchor));\n\t\titems_map.clear();\n\t\tlink(state, items[0].prev, items[length - 1].next);\n\t}\n\n\trun_out_transitions(transitions, () => {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tvar item = items[i];\n\t\t\tif (!is_controlled) {\n\t\t\t\titems_map.delete(item.k);\n\t\t\t\tlink(state, item.prev, item.next);\n\t\t\t}\n\t\t\tdestroy_effect(item.e, !is_controlled);\n\t\t}\n\t});\n}\n\n/**\n * @template V\n * @param {Element | Comment} node The next sibling node, or the parent node if this is a 'controlled' block\n * @param {number} flags\n * @param {() => V[]} get_collection\n * @param {(value: V, index: number) => any} get_key\n * @param {(anchor: Node, item: MaybeSource, index: MaybeSource) => void} render_fn\n * @param {null | ((anchor: Node) => void)} fallback_fn\n * @returns {void}\n */\nexport function each(node, flags, get_collection, get_key, render_fn, fallback_fn = null) {\n\tvar anchor = node;\n\n\t/** @type {EachState} */\n\tvar state = { flags, items: new Map(), first: null };\n\n\tvar is_controlled = (flags & EACH_IS_CONTROLLED) !== 0;\n\n\tif (is_controlled) {\n\t\tvar parent_node = /** @type {Element} */ (node);\n\n\t\tanchor = hydrating\n\t\t\t? set_hydrate_node(/** @type {Comment | Text} */ (get_first_child(parent_node)))\n\t\t\t: parent_node.appendChild(create_text());\n\t}\n\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\t/** @type {Effect | null} */\n\tvar fallback = null;\n\n\tvar was_empty = false;\n\n\t// TODO: ideally we could use derived for runes mode but because of the ability\n\t// to use a store which can be mutated, we can't do that here as mutating a store\n\t// will still result in the collection array being the same from the store\n\tvar each_array = derived_safe_equal(() => {\n\t\tvar collection = get_collection();\n\n\t\treturn is_array(collection) ? collection : collection == null ? [] : array_from(collection);\n\t});\n\n\tblock(() => {\n\t\tvar array = get(each_array);\n\t\tvar length = array.length;\n\n\t\tif (was_empty && length === 0) {\n\t\t\t// ignore updates if the array is empty,\n\t\t\t// and it already was empty on previous run\n\t\t\treturn;\n\t\t}\n\t\twas_empty = length === 0;\n\n\t\t/** `true` if there was a hydration mismatch. Needs to be a `let` or else it isn't treeshaken out */\n\t\tlet mismatch = false;\n\n\t\tif (hydrating) {\n\t\t\tvar is_else = /** @type {Comment} */ (anchor).data === HYDRATION_START_ELSE;\n\n\t\t\tif (is_else !== (length === 0)) {\n\t\t\t\t// hydration mismatch — remove the server-rendered DOM and start over\n\t\t\t\tanchor = remove_nodes();\n\n\t\t\t\tset_hydrate_node(anchor);\n\t\t\t\tset_hydrating(false);\n\t\t\t\tmismatch = true;\n\t\t\t}\n\t\t}\n\n\t\t// this is separate to the previous block because `hydrating` might change\n\t\tif (hydrating) {\n\t\t\t/** @type {EachItem | null} */\n\t\t\tvar prev = null;\n\n\t\t\t/** @type {EachItem} */\n\t\t\tvar item;\n\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tif (\n\t\t\t\t\thydrate_node.nodeType === 8 &&\n\t\t\t\t\t/** @type {Comment} */ (hydrate_node).data === HYDRATION_END\n\t\t\t\t) {\n\t\t\t\t\t// The server rendered fewer items than expected,\n\t\t\t\t\t// so break out and continue appending non-hydrated items\n\t\t\t\t\tanchor = /** @type {Comment} */ (hydrate_node);\n\t\t\t\t\tmismatch = true;\n\t\t\t\t\tset_hydrating(false);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar value = array[i];\n\t\t\t\tvar key = get_key(value, i);\n\t\t\t\titem = create_item(\n\t\t\t\t\thydrate_node,\n\t\t\t\t\tstate,\n\t\t\t\t\tprev,\n\t\t\t\t\tnull,\n\t\t\t\t\tvalue,\n\t\t\t\t\tkey,\n\t\t\t\t\ti,\n\t\t\t\t\trender_fn,\n\t\t\t\t\tflags,\n\t\t\t\t\tget_collection\n\t\t\t\t);\n\t\t\t\tstate.items.set(key, item);\n\n\t\t\t\tprev = item;\n\t\t\t}\n\n\t\t\t// remove excess nodes\n\t\t\tif (length > 0) {\n\t\t\t\tset_hydrate_node(remove_nodes());\n\t\t\t}\n\t\t}\n\n\t\tif (!hydrating) {\n\t\t\treconcile(array, state, anchor, render_fn, flags, get_key, get_collection);\n\t\t}\n\n\t\tif (fallback_fn !== null) {\n\t\t\tif (length === 0) {\n\t\t\t\tif (fallback) {\n\t\t\t\t\tresume_effect(fallback);\n\t\t\t\t} else {\n\t\t\t\t\tfallback = branch(() => fallback_fn(anchor));\n\t\t\t\t}\n\t\t\t} else if (fallback !== null) {\n\t\t\t\tpause_effect(fallback, () => {\n\t\t\t\t\tfallback = null;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (mismatch) {\n\t\t\t// continue in hydration mode\n\t\t\tset_hydrating(true);\n\t\t}\n\n\t\t// When we mount the each block for the first time, the collection won't be\n\t\t// connected to this effect as the effect hasn't finished running yet and its deps\n\t\t// won't be assigned. However, it's possible that when reconciling the each block\n\t\t// that a mutation occurred and it's made the collection MAYBE_DIRTY, so reading the\n\t\t// collection again can provide consistency to the reactive graph again as the deriveds\n\t\t// will now be `CLEAN`.\n\t\tget(each_array);\n\t});\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n\n/**\n * Add, remove, or reorder items output by an each block as its input changes\n * @template V\n * @param {Array} array\n * @param {EachState} state\n * @param {Element | Comment | Text} anchor\n * @param {(anchor: Node, item: MaybeSource, index: number | Source, collection: () => V[]) => void} render_fn\n * @param {number} flags\n * @param {(value: V, index: number) => any} get_key\n * @param {() => V[]} get_collection\n * @returns {void}\n */\nfunction reconcile(array, state, anchor, render_fn, flags, get_key, get_collection) {\n\tvar is_animated = (flags & EACH_IS_ANIMATED) !== 0;\n\tvar should_update = (flags & (EACH_ITEM_REACTIVE | EACH_INDEX_REACTIVE)) !== 0;\n\n\tvar length = array.length;\n\tvar items = state.items;\n\tvar first = state.first;\n\tvar current = first;\n\n\t/** @type {undefined | Set} */\n\tvar seen;\n\n\t/** @type {EachItem | null} */\n\tvar prev = null;\n\n\t/** @type {undefined | Set} */\n\tvar to_animate;\n\n\t/** @type {EachItem[]} */\n\tvar matched = [];\n\n\t/** @type {EachItem[]} */\n\tvar stashed = [];\n\n\t/** @type {V} */\n\tvar value;\n\n\t/** @type {any} */\n\tvar key;\n\n\t/** @type {EachItem | undefined} */\n\tvar item;\n\n\t/** @type {number} */\n\tvar i;\n\n\tif (is_animated) {\n\t\tfor (i = 0; i < length; i += 1) {\n\t\t\tvalue = array[i];\n\t\t\tkey = get_key(value, i);\n\t\t\titem = items.get(key);\n\n\t\t\tif (item !== undefined) {\n\t\t\t\titem.a?.measure();\n\t\t\t\t(to_animate ??= new Set()).add(item);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (i = 0; i < length; i += 1) {\n\t\tvalue = array[i];\n\t\tkey = get_key(value, i);\n\t\titem = items.get(key);\n\n\t\tif (item === undefined) {\n\t\t\tvar child_anchor = current ? /** @type {TemplateNode} */ (current.e.nodes_start) : anchor;\n\n\t\t\tprev = create_item(\n\t\t\t\tchild_anchor,\n\t\t\t\tstate,\n\t\t\t\tprev,\n\t\t\t\tprev === null ? state.first : prev.next,\n\t\t\t\tvalue,\n\t\t\t\tkey,\n\t\t\t\ti,\n\t\t\t\trender_fn,\n\t\t\t\tflags,\n\t\t\t\tget_collection\n\t\t\t);\n\n\t\t\titems.set(key, prev);\n\n\t\t\tmatched = [];\n\t\t\tstashed = [];\n\n\t\t\tcurrent = prev.next;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (should_update) {\n\t\t\tupdate_item(item, value, i, flags);\n\t\t}\n\n\t\tif ((item.e.f & INERT) !== 0) {\n\t\t\tresume_effect(item.e);\n\t\t\tif (is_animated) {\n\t\t\t\titem.a?.unfix();\n\t\t\t\t(to_animate ??= new Set()).delete(item);\n\t\t\t}\n\t\t}\n\n\t\tif (item !== current) {\n\t\t\tif (seen !== undefined && seen.has(item)) {\n\t\t\t\tif (matched.length < stashed.length) {\n\t\t\t\t\t// more efficient to move later items to the front\n\t\t\t\t\tvar start = stashed[0];\n\t\t\t\t\tvar j;\n\n\t\t\t\t\tprev = start.prev;\n\n\t\t\t\t\tvar a = matched[0];\n\t\t\t\t\tvar b = matched[matched.length - 1];\n\n\t\t\t\t\tfor (j = 0; j < matched.length; j += 1) {\n\t\t\t\t\t\tmove(matched[j], start, anchor);\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (j = 0; j < stashed.length; j += 1) {\n\t\t\t\t\t\tseen.delete(stashed[j]);\n\t\t\t\t\t}\n\n\t\t\t\t\tlink(state, a.prev, b.next);\n\t\t\t\t\tlink(state, prev, a);\n\t\t\t\t\tlink(state, b, start);\n\n\t\t\t\t\tcurrent = start;\n\t\t\t\t\tprev = b;\n\t\t\t\t\ti -= 1;\n\n\t\t\t\t\tmatched = [];\n\t\t\t\t\tstashed = [];\n\t\t\t\t} else {\n\t\t\t\t\t// more efficient to move earlier items to the back\n\t\t\t\t\tseen.delete(item);\n\t\t\t\t\tmove(item, current, anchor);\n\n\t\t\t\t\tlink(state, item.prev, item.next);\n\t\t\t\t\tlink(state, item, prev === null ? state.first : prev.next);\n\t\t\t\t\tlink(state, prev, item);\n\n\t\t\t\t\tprev = item;\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tmatched = [];\n\t\t\tstashed = [];\n\n\t\t\twhile (current !== null && current.k !== key) {\n\t\t\t\t// If the each block isn't inert and an item has an effect that is already inert,\n\t\t\t\t// skip over adding it to our seen Set as the item is already being handled\n\t\t\t\tif ((current.e.f & INERT) === 0) {\n\t\t\t\t\t(seen ??= new Set()).add(current);\n\t\t\t\t}\n\t\t\t\tstashed.push(current);\n\t\t\t\tcurrent = current.next;\n\t\t\t}\n\n\t\t\tif (current === null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\titem = current;\n\t\t}\n\n\t\tmatched.push(item);\n\t\tprev = item;\n\t\tcurrent = item.next;\n\t}\n\n\tif (current !== null || seen !== undefined) {\n\t\tvar to_destroy = seen === undefined ? [] : array_from(seen);\n\n\t\twhile (current !== null) {\n\t\t\t// If the each block isn't inert, then inert effects are currently outroing and will be removed once the transition is finished\n\t\t\tif ((current.e.f & INERT) === 0) {\n\t\t\t\tto_destroy.push(current);\n\t\t\t}\n\t\t\tcurrent = current.next;\n\t\t}\n\n\t\tvar destroy_length = to_destroy.length;\n\n\t\tif (destroy_length > 0) {\n\t\t\tvar controlled_anchor = (flags & EACH_IS_CONTROLLED) !== 0 && length === 0 ? anchor : null;\n\n\t\t\tif (is_animated) {\n\t\t\t\tfor (i = 0; i < destroy_length; i += 1) {\n\t\t\t\t\tto_destroy[i].a?.measure();\n\t\t\t\t}\n\n\t\t\t\tfor (i = 0; i < destroy_length; i += 1) {\n\t\t\t\t\tto_destroy[i].a?.fix();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpause_effects(state, to_destroy, controlled_anchor, items);\n\t\t}\n\t}\n\n\tif (is_animated) {\n\t\tqueue_micro_task(() => {\n\t\t\tif (to_animate === undefined) return;\n\t\t\tfor (item of to_animate) {\n\t\t\t\titem.a?.apply();\n\t\t\t}\n\t\t});\n\t}\n\n\t/** @type {Effect} */ (active_effect).first = state.first && state.first.e;\n\t/** @type {Effect} */ (active_effect).last = prev && prev.e;\n}\n\n/**\n * @param {EachItem} item\n * @param {any} value\n * @param {number} index\n * @param {number} type\n * @returns {void}\n */\nfunction update_item(item, value, index, type) {\n\tif ((type & EACH_ITEM_REACTIVE) !== 0) {\n\t\tinternal_set(item.v, value);\n\t}\n\n\tif ((type & EACH_INDEX_REACTIVE) !== 0) {\n\t\tinternal_set(/** @type {Value} */ (item.i), index);\n\t} else {\n\t\titem.i = index;\n\t}\n}\n\n/**\n * @template V\n * @param {Node} anchor\n * @param {EachState} state\n * @param {EachItem | null} prev\n * @param {EachItem | null} next\n * @param {V} value\n * @param {unknown} key\n * @param {number} index\n * @param {(anchor: Node, item: V | Source, index: number | Value, collection: () => V[]) => void} render_fn\n * @param {number} flags\n * @param {() => V[]} get_collection\n * @returns {EachItem}\n */\nfunction create_item(\n\tanchor,\n\tstate,\n\tprev,\n\tnext,\n\tvalue,\n\tkey,\n\tindex,\n\trender_fn,\n\tflags,\n\tget_collection\n) {\n\tvar previous_each_item = current_each_item;\n\tvar reactive = (flags & EACH_ITEM_REACTIVE) !== 0;\n\tvar mutable = (flags & EACH_ITEM_IMMUTABLE) === 0;\n\n\tvar v = reactive ? (mutable ? mutable_source(value) : source(value)) : value;\n\tvar i = (flags & EACH_INDEX_REACTIVE) === 0 ? index : source(index);\n\n\tif (DEV && reactive) {\n\t\t// For tracing purposes, we need to link the source signal we create with the\n\t\t// collection + index so that tracing works as intended\n\t\t/** @type {Value} */ (v).debug = () => {\n\t\t\tvar collection_index = typeof i === 'number' ? index : i.v;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n\t\t\tget_collection()[collection_index];\n\t\t};\n\t}\n\n\t/** @type {EachItem} */\n\tvar item = {\n\t\ti,\n\t\tv,\n\t\tk: key,\n\t\ta: null,\n\t\t// @ts-expect-error\n\t\te: null,\n\t\tprev,\n\t\tnext\n\t};\n\n\tcurrent_each_item = item;\n\n\ttry {\n\t\titem.e = branch(() => render_fn(anchor, v, i, get_collection), hydrating);\n\n\t\titem.e.prev = prev && prev.e;\n\t\titem.e.next = next && next.e;\n\n\t\tif (prev === null) {\n\t\t\tstate.first = item;\n\t\t} else {\n\t\t\tprev.next = item;\n\t\t\tprev.e.next = item.e;\n\t\t}\n\n\t\tif (next !== null) {\n\t\t\tnext.prev = item;\n\t\t\tnext.e.prev = item.e;\n\t\t}\n\n\t\treturn item;\n\t} finally {\n\t\tcurrent_each_item = previous_each_item;\n\t}\n}\n\n/**\n * @param {EachItem} item\n * @param {EachItem | null} next\n * @param {Text | Element | Comment} anchor\n */\nfunction move(item, next, anchor) {\n\tvar end = item.next ? /** @type {TemplateNode} */ (item.next.e.nodes_start) : anchor;\n\n\tvar dest = next ? /** @type {TemplateNode} */ (next.e.nodes_start) : anchor;\n\tvar node = /** @type {TemplateNode} */ (item.e.nodes_start);\n\n\twhile (node !== end) {\n\t\tvar next_node = /** @type {TemplateNode} */ (get_next_sibling(node));\n\t\tdest.before(node);\n\t\tnode = next_node;\n\t}\n}\n\n/**\n * @param {EachState} state\n * @param {EachItem | null} prev\n * @param {EachItem | null} next\n */\nfunction link(state, prev, next) {\n\tif (prev === null) {\n\t\tstate.first = next;\n\t} else {\n\t\tprev.next = next;\n\t\tprev.e.next = next && next.e;\n\t}\n\n\tif (next !== null) {\n\t\tnext.prev = prev;\n\t\tnext.e.prev = prev && prev.e;\n\t}\n}\n", "/** @import { Effect, TemplateNode } from '#client' */\nimport { FILENAME, HYDRATION_ERROR } from '../../../../constants.js';\nimport { block, branch, destroy_effect } from '../../reactivity/effects.js';\nimport { hydrate_next, hydrate_node, hydrating, set_hydrate_node } from '../hydration.js';\nimport { create_fragment_from_html } from '../reconciler.js';\nimport { assign_nodes } from '../template.js';\nimport * as w from '../../warnings.js';\nimport { hash, sanitize_location } from '../../../../utils.js';\nimport { DEV } from 'esm-env';\nimport { dev_current_component_function } from '../../context.js';\nimport { get_first_child, get_next_sibling } from '../operations.js';\n\n/**\n * @param {Element} element\n * @param {string | null} server_hash\n * @param {string} value\n */\nfunction check_hash(element, server_hash, value) {\n\tif (!server_hash || server_hash === hash(String(value ?? ''))) return;\n\n\tlet location;\n\n\t// @ts-expect-error\n\tconst loc = element.__svelte_meta?.loc;\n\tif (loc) {\n\t\tlocation = `near ${loc.file}:${loc.line}:${loc.column}`;\n\t} else if (dev_current_component_function?.[FILENAME]) {\n\t\tlocation = `in ${dev_current_component_function[FILENAME]}`;\n\t}\n\n\tw.hydration_html_changed(sanitize_location(location));\n}\n\n/**\n * @param {Element | Text | Comment} node\n * @param {() => string} get_value\n * @param {boolean} svg\n * @param {boolean} mathml\n * @param {boolean} [skip_warning]\n * @returns {void}\n */\nexport function html(node, get_value, svg, mathml, skip_warning) {\n\tvar anchor = node;\n\n\tvar value = '';\n\n\t/** @type {Effect | undefined} */\n\tvar effect;\n\n\tblock(() => {\n\t\tif (value === (value = get_value() ?? '')) {\n\t\t\tif (hydrating) {\n\t\t\t\thydrate_next();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (effect !== undefined) {\n\t\t\tdestroy_effect(effect);\n\t\t\teffect = undefined;\n\t\t}\n\n\t\tif (value === '') return;\n\n\t\teffect = branch(() => {\n\t\t\tif (hydrating) {\n\t\t\t\t// We're deliberately not trying to repair mismatches between server and client,\n\t\t\t\t// as it's costly and error-prone (and it's an edge case to have a mismatch anyway)\n\t\t\t\tvar hash = /** @type {Comment} */ (hydrate_node).data;\n\t\t\t\tvar next = hydrate_next();\n\t\t\t\tvar last = next;\n\n\t\t\t\twhile (\n\t\t\t\t\tnext !== null &&\n\t\t\t\t\t(next.nodeType !== 8 || /** @type {Comment} */ (next).data !== '')\n\t\t\t\t) {\n\t\t\t\t\tlast = next;\n\t\t\t\t\tnext = /** @type {TemplateNode} */ (get_next_sibling(next));\n\t\t\t\t}\n\n\t\t\t\tif (next === null) {\n\t\t\t\t\tw.hydration_mismatch();\n\t\t\t\t\tthrow HYDRATION_ERROR;\n\t\t\t\t}\n\n\t\t\t\tif (DEV && !skip_warning) {\n\t\t\t\t\tcheck_hash(/** @type {Element} */ (next.parentNode), hash, value);\n\t\t\t\t}\n\n\t\t\t\tassign_nodes(hydrate_node, last);\n\t\t\t\tanchor = set_hydrate_node(next);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar html = value + '';\n\t\t\tif (svg) html = `${html}`;\n\t\t\telse if (mathml) html = `${html}`;\n\n\t\t\t// Don't use create_fragment_with_script_from_html here because that would mean script tags are executed.\n\t\t\t// @html is basically `.innerHTML = ...` and that doesn't execute scripts either due to security reasons.\n\t\t\t/** @type {DocumentFragment | Element} */\n\t\t\tvar node = create_fragment_from_html(html);\n\n\t\t\tif (svg || mathml) {\n\t\t\t\tnode = /** @type {Element} */ (get_first_child(node));\n\t\t\t}\n\n\t\t\tassign_nodes(\n\t\t\t\t/** @type {TemplateNode} */ (get_first_child(node)),\n\t\t\t\t/** @type {TemplateNode} */ (node.lastChild)\n\t\t\t);\n\n\t\t\tif (svg || mathml) {\n\t\t\t\twhile (get_first_child(node)) {\n\t\t\t\t\tanchor.before(/** @type {Node} */ (get_first_child(node)));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tanchor.before(node);\n\t\t\t}\n\t\t});\n\t});\n}\n", "import { hydrate_next, hydrating } from '../hydration.js';\n\n/**\n * @param {Comment} anchor\n * @param {Record} $$props\n * @param {string} name\n * @param {Record} slot_props\n * @param {null | ((anchor: Comment) => void)} fallback_fn\n */\nexport function slot(anchor, $$props, name, slot_props, fallback_fn) {\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar slot_fn = $$props.$$slots?.[name];\n\t// Interop: Can use snippets to fill slots\n\tvar is_interop = false;\n\tif (slot_fn === true) {\n\t\tslot_fn = $$props[name === 'default' ? 'children' : name];\n\t\tis_interop = true;\n\t}\n\n\tif (slot_fn === undefined) {\n\t\tif (fallback_fn !== null) {\n\t\t\tfallback_fn(anchor);\n\t\t}\n\t} else {\n\t\tslot_fn(anchor, is_interop ? () => slot_props : slot_props);\n\t}\n}\n\n/**\n * @param {Record} props\n * @returns {Record}\n */\nexport function sanitize_slots(props) {\n\t/** @type {Record} */\n\tconst sanitized = {};\n\tif (props.children) sanitized.default = true;\n\tfor (const key in props.$$slots) {\n\t\tsanitized[key] = true;\n\t}\n\treturn sanitized;\n}\n", "/** @import { Snippet } from 'svelte' */\n/** @import { Effect, TemplateNode } from '#client' */\n/** @import { Getters } from '#shared' */\nimport { EFFECT_TRANSPARENT } from '../../constants.js';\nimport { branch, block, destroy_effect, teardown } from '../../reactivity/effects.js';\nimport {\n\tdev_current_component_function,\n\tset_dev_current_component_function\n} from '../../context.js';\nimport { hydrate_next, hydrate_node, hydrating } from '../hydration.js';\nimport { create_fragment_from_html } from '../reconciler.js';\nimport { assign_nodes } from '../template.js';\nimport * as w from '../../warnings.js';\nimport * as e from '../../errors.js';\nimport { DEV } from 'esm-env';\nimport { get_first_child, get_next_sibling } from '../operations.js';\nimport { noop } from '../../../shared/utils.js';\n\n/**\n * @template {(node: TemplateNode, ...args: any[]) => void} SnippetFn\n * @param {TemplateNode} node\n * @param {() => SnippetFn | null | undefined} get_snippet\n * @param {(() => any)[]} args\n * @returns {void}\n */\nexport function snippet(node, get_snippet, ...args) {\n\tvar anchor = node;\n\n\t/** @type {SnippetFn | null | undefined} */\n\t// @ts-ignore\n\tvar snippet = noop;\n\n\t/** @type {Effect | null} */\n\tvar snippet_effect;\n\n\tblock(() => {\n\t\tif (snippet === (snippet = get_snippet())) return;\n\n\t\tif (snippet_effect) {\n\t\t\tdestroy_effect(snippet_effect);\n\t\t\tsnippet_effect = null;\n\t\t}\n\n\t\tif (DEV && snippet == null) {\n\t\t\te.invalid_snippet();\n\t\t}\n\n\t\tsnippet_effect = branch(() => /** @type {SnippetFn} */ (snippet)(anchor, ...args));\n\t}, EFFECT_TRANSPARENT);\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n\n/**\n * In development, wrap the snippet function so that it passes validation, and so that the\n * correct component context is set for ownership checks\n * @param {any} component\n * @param {(node: TemplateNode, ...args: any[]) => void} fn\n */\nexport function wrap_snippet(component, fn) {\n\treturn (/** @type {TemplateNode} */ node, /** @type {any[]} */ ...args) => {\n\t\tvar previous_component_function = dev_current_component_function;\n\t\tset_dev_current_component_function(component);\n\n\t\ttry {\n\t\t\treturn fn(node, ...args);\n\t\t} finally {\n\t\t\tset_dev_current_component_function(previous_component_function);\n\t\t}\n\t};\n}\n\n/**\n * Create a snippet programmatically\n * @template {unknown[]} Params\n * @param {(...params: Getters) => {\n * render: () => string\n * setup?: (element: Element) => void | (() => void)\n * }} fn\n * @returns {Snippet}\n */\nexport function createRawSnippet(fn) {\n\t// @ts-expect-error the types are a lie\n\treturn (/** @type {TemplateNode} */ anchor, /** @type {Getters} */ ...params) => {\n\t\tvar snippet = fn(...params);\n\n\t\t/** @type {Element} */\n\t\tvar element;\n\n\t\tif (hydrating) {\n\t\t\telement = /** @type {Element} */ (hydrate_node);\n\t\t\thydrate_next();\n\t\t} else {\n\t\t\tvar html = snippet.render().trim();\n\t\t\tvar fragment = create_fragment_from_html(html);\n\t\t\telement = /** @type {Element} */ (get_first_child(fragment));\n\n\t\t\tif (DEV && (get_next_sibling(element) !== null || element.nodeType !== 1)) {\n\t\t\t\tw.invalid_raw_snippet_render();\n\t\t\t}\n\n\t\t\tanchor.before(element);\n\t\t}\n\n\t\tconst result = snippet.setup?.(element);\n\t\tassign_nodes(element, element);\n\n\t\tif (typeof result === 'function') {\n\t\t\tteardown(result);\n\t\t}\n\t};\n}\n", "/** @import { TemplateNode, Dom, Effect } from '#client' */\nimport { EFFECT_TRANSPARENT } from '../../constants.js';\nimport { block, branch, pause_effect } from '../../reactivity/effects.js';\nimport { hydrate_next, hydrate_node, hydrating } from '../hydration.js';\n\n/**\n * @template P\n * @template {(props: P) => void} C\n * @param {TemplateNode} node\n * @param {() => C} get_component\n * @param {(anchor: TemplateNode, component: C) => Dom | void} render_fn\n * @returns {void}\n */\nexport function component(node, get_component, render_fn) {\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar anchor = node;\n\n\t/** @type {C} */\n\tvar component;\n\n\t/** @type {Effect | null} */\n\tvar effect;\n\n\tblock(() => {\n\t\tif (component === (component = get_component())) return;\n\n\t\tif (effect) {\n\t\t\tpause_effect(effect);\n\t\t\teffect = null;\n\t\t}\n\n\t\tif (component) {\n\t\t\teffect = branch(() => render_fn(anchor, component));\n\t\t}\n\t}, EFFECT_TRANSPARENT);\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n", "/** @import { Effect, TemplateNode } from '#client' */\nimport { FILENAME, NAMESPACE_SVG } from '../../../../constants.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport { create_text, get_first_child } from '../operations.js';\nimport {\n\tblock,\n\tbranch,\n\tdestroy_effect,\n\tpause_effect,\n\tresume_effect\n} from '../../reactivity/effects.js';\nimport { set_should_intro } from '../../render.js';\nimport { current_each_item, set_current_each_item } from './each.js';\nimport { active_effect } from '../../runtime.js';\nimport { component_context } from '../../context.js';\nimport { DEV } from 'esm-env';\nimport { EFFECT_TRANSPARENT } from '../../constants.js';\nimport { assign_nodes } from '../template.js';\nimport { is_raw_text_element } from '../../../../utils.js';\n\n/**\n * @param {Comment | Element} node\n * @param {() => string} get_tag\n * @param {boolean} is_svg\n * @param {undefined | ((element: Element, anchor: Node | null) => void)} render_fn,\n * @param {undefined | (() => string)} get_namespace\n * @param {undefined | [number, number]} location\n * @returns {void}\n */\nexport function element(node, get_tag, is_svg, render_fn, get_namespace, location) {\n\tlet was_hydrating = hydrating;\n\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar filename = DEV && location && component_context?.function[FILENAME];\n\n\t/** @type {string | null} */\n\tvar tag;\n\n\t/** @type {string | null} */\n\tvar current_tag;\n\n\t/** @type {null | Element} */\n\tvar element = null;\n\n\tif (hydrating && hydrate_node.nodeType === 1) {\n\t\telement = /** @type {Element} */ (hydrate_node);\n\t\thydrate_next();\n\t}\n\n\tvar anchor = /** @type {TemplateNode} */ (hydrating ? hydrate_node : node);\n\n\t/** @type {Effect | null} */\n\tvar effect;\n\n\t/**\n\t * The keyed `{#each ...}` item block, if any, that this element is inside.\n\t * We track this so we can set it when changing the element, allowing any\n\t * `animate:` directive to bind itself to the correct block\n\t */\n\tvar each_item_block = current_each_item;\n\n\tblock(() => {\n\t\tconst next_tag = get_tag() || null;\n\t\tvar ns = get_namespace ? get_namespace() : is_svg || next_tag === 'svg' ? NAMESPACE_SVG : null;\n\n\t\t// Assumption: Noone changes the namespace but not the tag (what would that even mean?)\n\t\tif (next_tag === tag) return;\n\n\t\t// See explanation of `each_item_block` above\n\t\tvar previous_each_item = current_each_item;\n\t\tset_current_each_item(each_item_block);\n\n\t\tif (effect) {\n\t\t\tif (next_tag === null) {\n\t\t\t\t// start outro\n\t\t\t\tpause_effect(effect, () => {\n\t\t\t\t\teffect = null;\n\t\t\t\t\tcurrent_tag = null;\n\t\t\t\t});\n\t\t\t} else if (next_tag === current_tag) {\n\t\t\t\t// same tag as is currently rendered — abort outro\n\t\t\t\tresume_effect(effect);\n\t\t\t} else {\n\t\t\t\t// tag is changing — destroy immediately, render contents without intro transitions\n\t\t\t\tdestroy_effect(effect);\n\t\t\t\tset_should_intro(false);\n\t\t\t}\n\t\t}\n\n\t\tif (next_tag && next_tag !== current_tag) {\n\t\t\teffect = branch(() => {\n\t\t\t\telement = hydrating\n\t\t\t\t\t? /** @type {Element} */ (element)\n\t\t\t\t\t: ns\n\t\t\t\t\t\t? document.createElementNS(ns, next_tag)\n\t\t\t\t\t\t: document.createElement(next_tag);\n\n\t\t\t\tif (DEV && location) {\n\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\telement.__svelte_meta = {\n\t\t\t\t\t\tloc: {\n\t\t\t\t\t\t\tfile: filename,\n\t\t\t\t\t\t\tline: location[0],\n\t\t\t\t\t\t\tcolumn: location[1]\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tassign_nodes(element, element);\n\n\t\t\t\tif (render_fn) {\n\t\t\t\t\tif (hydrating && is_raw_text_element(next_tag)) {\n\t\t\t\t\t\t// prevent hydration glitches\n\t\t\t\t\t\telement.append(document.createComment(''));\n\t\t\t\t\t}\n\n\t\t\t\t\t// If hydrating, use the existing ssr comment as the anchor so that the\n\t\t\t\t\t// inner open and close methods can pick up the existing nodes correctly\n\t\t\t\t\tvar child_anchor = /** @type {TemplateNode} */ (\n\t\t\t\t\t\thydrating ? get_first_child(element) : element.appendChild(create_text())\n\t\t\t\t\t);\n\n\t\t\t\t\tif (hydrating) {\n\t\t\t\t\t\tif (child_anchor === null) {\n\t\t\t\t\t\t\tset_hydrating(false);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tset_hydrate_node(child_anchor);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// `child_anchor` is undefined if this is a void element, but we still\n\t\t\t\t\t// need to call `render_fn` in order to run actions etc. If the element\n\t\t\t\t\t// contains children, it's a user error (which is warned on elsewhere)\n\t\t\t\t\t// and the DOM will be silently discarded\n\t\t\t\t\trender_fn(element, child_anchor);\n\t\t\t\t}\n\n\t\t\t\t// we do this after calling `render_fn` so that child effects don't override `nodes.end`\n\t\t\t\t/** @type {Effect} */ (active_effect).nodes_end = element;\n\n\t\t\t\tanchor.before(element);\n\t\t\t});\n\t\t}\n\n\t\ttag = next_tag;\n\t\tif (tag) current_tag = tag;\n\t\tset_should_intro(true);\n\n\t\tset_current_each_item(previous_each_item);\n\t}, EFFECT_TRANSPARENT);\n\n\tif (was_hydrating) {\n\t\tset_hydrating(true);\n\t\tset_hydrate_node(anchor);\n\t}\n}\n", "import { DEV } from 'esm-env';\nimport { queue_micro_task } from './task.js';\nimport { register_style } from '../dev/css.js';\n\n/**\n * @param {Node} anchor\n * @param {{ hash: string, code: string }} css\n */\nexport function append_styles(anchor, css) {\n\t// Use `queue_micro_task` to ensure `anchor` is in the DOM, otherwise getRootNode() will yield wrong results\n\tqueue_micro_task(() => {\n\t\tvar root = anchor.getRootNode();\n\n\t\tvar target = /** @type {ShadowRoot} */ (root).host\n\t\t\t? /** @type {ShadowRoot} */ (root)\n\t\t\t: /** @type {Document} */ (root).head ?? /** @type {Document} */ (root.ownerDocument).head;\n\n\t\t// Always querying the DOM is roughly the same perf as additionally checking for presence in a map first assuming\n\t\t// that you'll get cache hits half of the time, so we just always query the dom for simplicity and code savings.\n\t\tif (!target.querySelector('#' + css.hash)) {\n\t\t\tconst style = document.createElement('style');\n\t\t\tstyle.id = css.hash;\n\t\t\tstyle.textContent = css.code;\n\n\t\t\ttarget.appendChild(style);\n\n\t\t\tif (DEV) {\n\t\t\t\tregister_style(css.hash, style);\n\t\t\t}\n\t\t}\n\t});\n}\n", "/** @import { ActionPayload } from '#client' */\nimport { effect, render_effect } from '../../reactivity/effects.js';\nimport { safe_not_equal } from '../../reactivity/equality.js';\nimport { deep_read_state, untrack } from '../../runtime.js';\n\n/**\n * @template P\n * @param {Element} dom\n * @param {(dom: Element, value?: P) => ActionPayload

} action\n * @param {() => P} [get_value]\n * @returns {void}\n */\nexport function action(dom, action, get_value) {\n\teffect(() => {\n\t\tvar payload = untrack(() => action(dom, get_value?.()) || {});\n\n\t\tif (get_value && payload?.update) {\n\t\t\tvar inited = false;\n\t\t\t/** @type {P} */\n\t\t\tvar prev = /** @type {any} */ ({}); // initialize with something so it's never equal on first run\n\n\t\t\trender_effect(() => {\n\t\t\t\tvar value = get_value();\n\n\t\t\t\t// Action's update method is coarse-grained, i.e. when anything in the passed value changes, update.\n\t\t\t\t// This works in legacy mode because of mutable_source being updated as a whole, but when using $state\n\t\t\t\t// together with actions and mutation, it wouldn't notice the change without a deep read.\n\t\t\t\tdeep_read_state(value);\n\n\t\t\t\tif (inited && safe_not_equal(prev, value)) {\n\t\t\t\t\tprev = value;\n\t\t\t\t\t/** @type {Function} */ (payload.update)(value);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tinited = true;\n\t\t}\n\n\t\tif (payload?.destroy) {\n\t\t\treturn () => /** @type {Function} */ (payload.destroy)();\n\t\t}\n\t});\n}\n", "const ATTR_REGEX = /[&\"<]/g;\nconst CONTENT_REGEX = /[&<]/g;\n\n/**\n * @template V\n * @param {V} value\n * @param {boolean} [is_attr]\n */\nexport function escape_html(value, is_attr) {\n\tconst str = String(value ?? '');\n\n\tconst pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n\tpattern.lastIndex = 0;\n\n\tlet escaped = '';\n\tlet last = 0;\n\n\twhile (pattern.test(str)) {\n\t\tconst i = pattern.lastIndex - 1;\n\t\tconst ch = str[i];\n\t\tescaped += str.substring(last, i) + (ch === '&' ? '&' : ch === '\"' ? '"' : '<');\n\t\tlast = i + 1;\n\t}\n\n\treturn escaped + str.substring(last);\n}\n", "import { escape_html } from '../../escaping.js';\nimport { clsx as _clsx } from 'clsx';\n\n/**\n * `

` should be rendered as `
` and _not_\n * `
`, which is equivalent to `
`. There\n * may be other odd cases that need to be added to this list in future\n * @type {Record>}\n */\nconst replacements = {\n\ttranslate: new Map([\n\t\t[true, 'yes'],\n\t\t[false, 'no']\n\t])\n};\n\n/**\n * @template V\n * @param {string} name\n * @param {V} value\n * @param {boolean} [is_boolean]\n * @returns {string}\n */\nexport function attr(name, value, is_boolean = false) {\n\tif (value == null || (!value && is_boolean) || (value === '' && name === 'class')) return '';\n\tconst normalized = (name in replacements && replacements[name].get(value)) || value;\n\tconst assignment = is_boolean ? '' : `=\"${escape_html(normalized, true)}\"`;\n\treturn ` ${name}${assignment}`;\n}\n\n/**\n * Small wrapper around clsx to preserve Svelte's (weird) handling of falsy values.\n * TODO Svelte 6 revisit this, and likely turn all falsy values into the empty string (what clsx also does)\n * @param {any} value\n */\nexport function clsx(value) {\n\tif (typeof value === 'object') {\n\t\treturn _clsx(value);\n\t} else {\n\t\treturn value ?? '';\n\t}\n}\n", "import { DEV } from 'esm-env';\nimport { hydrating } from '../hydration.js';\nimport { get_descriptors, get_prototype_of } from '../../../shared/utils.js';\nimport { create_event, delegate } from './events.js';\nimport { add_form_reset_listener, autofocus } from './misc.js';\nimport * as w from '../../warnings.js';\nimport { LOADING_ATTR_SYMBOL } from '../../constants.js';\nimport { queue_idle_task } from '../task.js';\nimport { is_capture_event, is_delegated, normalize_attribute } from '../../../../utils.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tset_active_effect,\n\tset_active_reaction\n} from '../../runtime.js';\nimport { clsx } from '../../../shared/attributes.js';\n\n/**\n * The value/checked attribute in the template actually corresponds to the defaultValue property, so we need\n * to remove it upon hydration to avoid a bug when someone resets the form value.\n * @param {HTMLInputElement} input\n * @returns {void}\n */\nexport function remove_input_defaults(input) {\n\tif (!hydrating) return;\n\n\tvar already_removed = false;\n\n\t// We try and remove the default attributes later, rather than sync during hydration.\n\t// Doing it sync during hydration has a negative impact on performance, but deferring the\n\t// work in an idle task alleviates this greatly. If a form reset event comes in before\n\t// the idle callback, then we ensure the input defaults are cleared just before.\n\tvar remove_defaults = () => {\n\t\tif (already_removed) return;\n\t\talready_removed = true;\n\n\t\t// Remove the attributes but preserve the values\n\t\tif (input.hasAttribute('value')) {\n\t\t\tvar value = input.value;\n\t\t\tset_attribute(input, 'value', null);\n\t\t\tinput.value = value;\n\t\t}\n\n\t\tif (input.hasAttribute('checked')) {\n\t\t\tvar checked = input.checked;\n\t\t\tset_attribute(input, 'checked', null);\n\t\t\tinput.checked = checked;\n\t\t}\n\t};\n\n\t// @ts-expect-error\n\tinput.__on_r = remove_defaults;\n\tqueue_idle_task(remove_defaults);\n\tadd_form_reset_listener();\n}\n\n/**\n * @param {Element} element\n * @param {any} value\n */\nexport function set_value(element, value) {\n\t// @ts-expect-error\n\tvar attributes = (element.__attributes ??= {});\n\n\tif (\n\t\tattributes.value ===\n\t\t\t(attributes.value =\n\t\t\t\t// treat null and undefined the same for the initial value\n\t\t\t\tvalue ?? undefined) ||\n\t\t// @ts-expect-error\n\t\t// `progress` elements always need their value set when it's `0`\n\t\t(element.value === value && (value !== 0 || element.nodeName !== 'PROGRESS'))\n\t) {\n\t\treturn;\n\t}\n\n\t// @ts-expect-error\n\telement.value = value ?? '';\n}\n\n/**\n * @param {Element} element\n * @param {boolean} checked\n */\nexport function set_checked(element, checked) {\n\t// @ts-expect-error\n\tvar attributes = (element.__attributes ??= {});\n\n\tif (\n\t\tattributes.checked ===\n\t\t(attributes.checked =\n\t\t\t// treat null and undefined the same for the initial value\n\t\t\tchecked ?? undefined)\n\t) {\n\t\treturn;\n\t}\n\n\t// @ts-expect-error\n\telement.checked = checked;\n}\n\n/**\n * Sets the `selected` attribute on an `option` element.\n * Not set through the property because that doesn't reflect to the DOM,\n * which means it wouldn't be taken into account when a form is reset.\n * @param {HTMLOptionElement} element\n * @param {boolean} selected\n */\nexport function set_selected(element, selected) {\n\tif (selected) {\n\t\t// The selected option could've changed via user selection, and\n\t\t// setting the value without this check would set it back.\n\t\tif (!element.hasAttribute('selected')) {\n\t\t\telement.setAttribute('selected', '');\n\t\t}\n\t} else {\n\t\telement.removeAttribute('selected');\n\t}\n}\n\n/**\n * Applies the default checked property without influencing the current checked property.\n * @param {HTMLInputElement} element\n * @param {boolean} checked\n */\nexport function set_default_checked(element, checked) {\n\tconst existing_value = element.checked;\n\telement.defaultChecked = checked;\n\telement.checked = existing_value;\n}\n\n/**\n * Applies the default value property without influencing the current value property.\n * @param {HTMLInputElement | HTMLTextAreaElement} element\n * @param {string} value\n */\nexport function set_default_value(element, value) {\n\tconst existing_value = element.value;\n\telement.defaultValue = value;\n\telement.value = existing_value;\n}\n\n/**\n * @param {Element} element\n * @param {string} attribute\n * @param {string | null} value\n * @param {boolean} [skip_warning]\n */\nexport function set_attribute(element, attribute, value, skip_warning) {\n\t// @ts-expect-error\n\tvar attributes = (element.__attributes ??= {});\n\n\tif (hydrating) {\n\t\tattributes[attribute] = element.getAttribute(attribute);\n\n\t\tif (\n\t\t\tattribute === 'src' ||\n\t\t\tattribute === 'srcset' ||\n\t\t\t(attribute === 'href' && element.nodeName === 'LINK')\n\t\t) {\n\t\t\tif (!skip_warning) {\n\t\t\t\tcheck_src_in_dev_hydration(element, attribute, value ?? '');\n\t\t\t}\n\n\t\t\t// If we reset these attributes, they would result in another network request, which we want to avoid.\n\t\t\t// We assume they are the same between client and server as checking if they are equal is expensive\n\t\t\t// (we can't just compare the strings as they can be different between client and server but result in the\n\t\t\t// same url, so we would need to create hidden anchor elements to compare them)\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (attributes[attribute] === (attributes[attribute] = value)) return;\n\n\tif (attribute === 'style' && '__styles' in element) {\n\t\t// reset styles to force style: directive to update\n\t\telement.__styles = {};\n\t}\n\n\tif (attribute === 'loading') {\n\t\t// @ts-expect-error\n\t\telement[LOADING_ATTR_SYMBOL] = value;\n\t}\n\n\tif (value == null) {\n\t\telement.removeAttribute(attribute);\n\t} else if (typeof value !== 'string' && get_setters(element).includes(attribute)) {\n\t\t// @ts-ignore\n\t\telement[attribute] = value;\n\t} else {\n\t\telement.setAttribute(attribute, value);\n\t}\n}\n\n/**\n * @param {Element} dom\n * @param {string} attribute\n * @param {string} value\n */\nexport function set_xlink_attribute(dom, attribute, value) {\n\tdom.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\n\n/**\n * @param {HTMLElement} node\n * @param {string} prop\n * @param {any} value\n */\nexport function set_custom_element_data(node, prop, value) {\n\t// We need to ensure that setting custom element props, which can\n\t// invoke lifecycle methods on other custom elements, does not also\n\t// associate those lifecycle methods with the current active reaction\n\t// or effect\n\tvar previous_reaction = active_reaction;\n\tvar previous_effect = active_effect;\n\n\tset_active_reaction(null);\n\tset_active_effect(null);\n\ttry {\n\t\tif (\n\t\t\t// Don't compute setters for custom elements while they aren't registered yet,\n\t\t\t// because during their upgrade/instantiation they might add more setters.\n\t\t\t// Instead, fall back to a simple \"an object, then set as property\" heuristic.\n\t\t\tsetters_cache.has(node.nodeName) ||\n\t\t\t// customElements may not be available in browser extension contexts\n\t\t\t!customElements ||\n\t\t\tcustomElements.get(node.tagName.toLowerCase())\n\t\t\t\t? get_setters(node).includes(prop)\n\t\t\t\t: value && typeof value === 'object'\n\t\t) {\n\t\t\t// @ts-expect-error\n\t\t\tnode[prop] = value;\n\t\t} else {\n\t\t\t// We did getters etc checks already, stringify before passing to set_attribute\n\t\t\t// to ensure it doesn't invoke the same logic again, and potentially populating\n\t\t\t// the setters cache too early.\n\t\t\tset_attribute(node, prop, value == null ? value : String(value));\n\t\t}\n\t} finally {\n\t\tset_active_reaction(previous_reaction);\n\t\tset_active_effect(previous_effect);\n\t}\n}\n\n/**\n * Spreads attributes onto a DOM element, taking into account the currently set attributes\n * @param {Element & ElementCSSInlineStyle} element\n * @param {Record | undefined} prev\n * @param {Record} next New attributes - this function mutates this object\n * @param {string} [css_hash]\n * @param {boolean} [preserve_attribute_case]\n * @param {boolean} [is_custom_element]\n * @param {boolean} [skip_warning]\n * @returns {Record}\n */\nexport function set_attributes(\n\telement,\n\tprev,\n\tnext,\n\tcss_hash,\n\tpreserve_attribute_case = false,\n\tis_custom_element = false,\n\tskip_warning = false\n) {\n\tvar current = prev || {};\n\tvar is_option_element = element.tagName === 'OPTION';\n\n\tfor (var key in prev) {\n\t\tif (!(key in next)) {\n\t\t\tnext[key] = null;\n\t\t}\n\t}\n\n\tif (next.class) {\n\t\tnext.class = clsx(next.class);\n\t}\n\n\tif (css_hash !== undefined) {\n\t\tnext.class = next.class ? next.class + ' ' + css_hash : css_hash;\n\t}\n\n\tvar setters = get_setters(element);\n\n\t// @ts-expect-error\n\tvar attributes = /** @type {Record} **/ (element.__attributes ??= {});\n\n\t// since key is captured we use const\n\tfor (const key in next) {\n\t\t// let instead of var because referenced in a closure\n\t\tlet value = next[key];\n\n\t\t// Up here because we want to do this for the initial value, too, even if it's undefined,\n\t\t// and this wouldn't be reached in case of undefined because of the equality check below\n\t\tif (is_option_element && key === 'value' && value == null) {\n\t\t\t// The