8 lines
289 KiB
Plaintext
8 lines
289 KiB
Plaintext
{
|
|
"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/ownership.js", "../../svelte/src/internal/client/dev/legacy.js", "../../svelte/src/internal/client/dev/inspect.js", "../../svelte/src/internal/client/dom/blocks/async.js", "../../svelte/src/internal/client/dev/validation.js", "../../svelte/src/internal/client/dom/blocks/branches.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/shared/validate.js", "../../svelte/src/internal/client/dom/blocks/snippet.js", "../../svelte/src/internal/client/dom/blocks/svelte-component.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/blocks/svelte-element.js", "../../svelte/src/internal/client/dom/blocks/svelte-head.js", "../../svelte/src/internal/client/dom/css.js", "../../svelte/src/internal/client/dom/elements/actions.js", "../../svelte/src/internal/client/dom/elements/attachments.js", "../../svelte/src/escaping.js", "../../svelte/src/internal/shared/attributes.js", "../../svelte/src/internal/client/dom/elements/class.js", "../../svelte/src/internal/client/dom/elements/style.js", "../../svelte/src/internal/client/dom/elements/bindings/select.js", "../../svelte/src/internal/client/dom/elements/attributes.js", "../../svelte/src/internal/client/dom/elements/customizable-select.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/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/internal/client/hydratable.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/validate.js", "../../svelte/src/internal/client/dom/elements/custom-element.js", "../../svelte/src/internal/client/dev/console-log.js", "../../svelte/src/attachments/index.js"],
|
|
"sourcesContent": ["import { STATE_SYMBOL } from '#client/constants';\nimport { 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 && typeof b === 'object' && STATE_SYMBOL in 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<String, Set<HTMLStyleElement>>} */\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 '#client' */\nimport { COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, ELEMENT_NODE } from '#client/constants';\nimport { HYDRATION_END, HYDRATION_START, HYDRATION_START_ELSE } from '../../../constants.js';\nimport { hydrating } from '../dom/hydration.js';\nimport { dev_stack } from '../context.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 === DOCUMENT_FRAGMENT_NODE ? 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\tparent: dev_stack,\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 === COMMENT_NODE) {\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 === ELEMENT_NODE) {\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 { Effect, TemplateNode } from '#client' */\nimport { FILENAME, HMR } from '../../../constants.js';\nimport { EFFECT_TRANSPARENT } from '#client/constants';\nimport { hydrate_node, hydrating } from '../dom/hydration.js';\nimport { block, branch, destroy_effect } from '../reactivity/effects.js';\nimport { set, 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} fn\n */\nexport function hmr(fn) {\n\tconst current = source(fn);\n\n\t/**\n\t * @param {TemplateNode} anchor\n\t * @param {any} props\n\t */\n\tfunction wrapper(anchor, props) {\n\t\tlet component = {};\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\tif (component === (component = get(current))) {\n\t\t\t\treturn;\n\t\t\t}\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] = fn[FILENAME];\n\n\t// @ts-ignore\n\twrapper[HMR] = {\n\t\tfn,\n\t\tcurrent,\n\t\tupdate: (/** @type {any} */ incoming) => {\n\t\t\t// This logic ensures that the first version of the component is the one\n\t\t\t// whose update function and therefore block effect is preserved across updates.\n\t\t\t// If we don't do this dance and instead just use `incoming` as the new component\n\t\t\t// and then update, we'll create an ever-growing stack of block effects.\n\n\t\t\t// Trigger the original block effect\n\t\t\tset(wrapper[HMR].current, incoming[HMR].fn);\n\n\t\t\t// Replace the incoming source with the original one\n\t\t\tincoming[HMR].current = wrapper[HMR].current;\n\t\t}\n\t};\n\n\treturn wrapper;\n}\n", "/** @typedef {{ file: string, line: number, column: number }} Location */\n\nimport { get_descriptor } from '../../shared/utils.js';\nimport { LEGACY_PROPS, STATE_SYMBOL } from '#client/constants';\nimport { FILENAME } from '../../../constants.js';\nimport { component_context } from '../context.js';\nimport * as w from '../warnings.js';\nimport { sanitize_location } from '../../../utils.js';\n\n/**\n * Sets up a validator that\n * - traverses the path of a prop to find out if it is allowed to be mutated\n * - checks that the binding chain is not interrupted\n * @param {Record<string, any>} props\n */\nexport function create_ownership_validator(props) {\n\tconst component = component_context?.function;\n\tconst parent = component_context?.p?.function;\n\n\treturn {\n\t\t/**\n\t\t * @param {string} prop\n\t\t * @param {any[]} path\n\t\t * @param {any} result\n\t\t * @param {number} line\n\t\t * @param {number} column\n\t\t */\n\t\tmutation: (prop, path, result, line, column) => {\n\t\t\tconst name = path[0];\n\t\t\tif (is_bound_or_unset(props, name) || !parent) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\t/** @type {any} */\n\t\t\tlet value = props;\n\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tvalue = value[path[i]];\n\t\t\t\tif (!value?.[STATE_SYMBOL]) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst location = sanitize_location(`${component[FILENAME]}:${line}:${column}`);\n\n\t\t\tw.ownership_invalid_mutation(name, location, prop, parent[FILENAME]);\n\n\t\t\treturn result;\n\t\t},\n\t\t/**\n\t\t * @param {any} key\n\t\t * @param {any} child_component\n\t\t * @param {() => any} value\n\t\t */\n\t\tbinding: (key, child_component, value) => {\n\t\t\tif (!is_bound_or_unset(props, key) && parent && value()?.[STATE_SYMBOL]) {\n\t\t\t\tw.ownership_invalid_binding(\n\t\t\t\t\tcomponent[FILENAME],\n\t\t\t\t\tkey,\n\t\t\t\t\tchild_component[FILENAME],\n\t\t\t\t\tparent[FILENAME]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t};\n}\n\n/**\n * @param {Record<string, any>} props\n * @param {string} prop_name\n */\nfunction is_bound_or_unset(props, prop_name) {\n\t// Can be the case when someone does `mount(Component, props)` with `let props = $state({...})`\n\t// or `createClassComponent(Component, props)`\n\tconst is_entry_props = STATE_SYMBOL in props || LEGACY_PROPS in props;\n\treturn (\n\t\t!!get_descriptor(props, prop_name)?.set ||\n\t\t(is_entry_props && prop_name in props) ||\n\t\t!(prop_name in props)\n\t);\n}\n", "import * as e from '../errors.js';\nimport { component_context } from '../context.js';\nimport { FILENAME } from '../../../constants.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\te.component_api_changed(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 { eager_effect, render_effect, validate_effect } from '../reactivity/effects.js';\nimport { untrack } from '../runtime.js';\nimport { get_error } from '../../shared/dev.js';\n\n/**\n * @param {() => any[]} get_value\n * @param {Function} inspector\n * @param {boolean} show_stack\n */\nexport function inspect(get_value, inspector, show_stack = false) {\n\tvalidate_effect('$inspect');\n\n\tlet initial = true;\n\tlet error = /** @type {any} */ (UNINITIALIZED);\n\n\t// Inspect effects runs synchronously so that we can capture useful\n\t// stack traces. As a consequence, reading the value might result\n\t// in an error (an `$inspect(object.property)` will run before the\n\t// `{#if object}...{/if}` that contains it)\n\teager_effect(() => {\n\t\ttry {\n\t\t\tvar value = get_value();\n\t\t} catch (e) {\n\t\t\terror = e;\n\t\t\treturn;\n\t\t}\n\n\t\tvar snap = snapshot(value, true, true);\n\t\tuntrack(() => {\n\t\t\tif (show_stack) {\n\t\t\t\tinspector(...snap);\n\n\t\t\t\tif (!initial) {\n\t\t\t\t\tconst stack = get_error('$inspect(...)');\n\t\t\t\t\tif (stack) {\n\t\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\t\tconsole.groupCollapsed('stack trace');\n\t\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\t\tconsole.log(stack);\n\t\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\t\tconsole.groupEnd();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tinspector(initial ? 'init' : 'update', ...snap);\n\t\t\t}\n\t\t});\n\n\t\tinitial = false;\n\t});\n\n\t// If an error occurs, we store it (along with its stack trace).\n\t// If the render effect subsequently runs, we log the error,\n\t// but if it doesn't run it's because the `$inspect` was\n\t// destroyed, meaning we don't need to bother\n\trender_effect(() => {\n\t\ttry {\n\t\t\t// call `get_value` so that this runs alongside the inspect effect\n\t\t\tget_value();\n\t\t} catch {\n\t\t\t// ignore\n\t\t}\n\n\t\tif (error !== UNINITIALIZED) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(error);\n\t\t\terror = UNINITIALIZED;\n\t\t}\n\t});\n}\n", "/** @import { Blocker, TemplateNode, Value } from '#client' */\nimport { flatten, increment_pending } from '../../reactivity/async.js';\nimport { get } from '../../runtime.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tset_hydrate_node,\n\tset_hydrating,\n\tskip_nodes\n} from '../hydration.js';\n\n/**\n * @param {TemplateNode} node\n * @param {Blocker[]} blockers\n * @param {Array<() => Promise<any>>} expressions\n * @param {(anchor: TemplateNode, ...deriveds: Value[]) => void} fn\n */\nexport function async(node, blockers = [], expressions = [], fn) {\n\tvar was_hydrating = hydrating;\n\tvar end = null;\n\n\tif (was_hydrating) {\n\t\thydrate_next();\n\t\tend = skip_nodes(false);\n\t}\n\n\tif (expressions.length === 0 && blockers.every((b) => b.settled)) {\n\t\tfn(node);\n\n\t\t// This is necessary because it is not guaranteed that the render function will\n\t\t// advance the hydration node to $.async's end marker: it may stop at an inner\n\t\t// block's end marker (in case of an inner if block for example), but it also may\n\t\t// stop at the correct $.async end marker (in case of component child) - hence\n\t\t// we can't just use hydrate_next()\n\t\t// TODO this feels indicative of a bug elsewhere; ideally we wouldn't need\n\t\t// to double-traverse in the already-resolved case\n\t\tif (was_hydrating) {\n\t\t\tset_hydrate_node(end);\n\t\t}\n\n\t\treturn;\n\t}\n\n\tconst decrement_pending = increment_pending();\n\n\tif (was_hydrating) {\n\t\tvar previous_hydrate_node = hydrate_node;\n\t\tset_hydrate_node(end);\n\t}\n\n\tflatten(blockers, [], expressions, (values) => {\n\t\tif (was_hydrating) {\n\t\t\tset_hydrating(true);\n\t\t\tset_hydrate_node(previous_hydrate_node);\n\t\t}\n\n\t\ttry {\n\t\t\t// get values eagerly to avoid creating blocks if they reject\n\t\t\tfor (const d of values) get(d);\n\n\t\t\tfn(node, ...values);\n\t\t} finally {\n\t\t\tif (was_hydrating) {\n\t\t\t\tset_hydrating(false);\n\t\t\t}\n\n\t\t\tdecrement_pending();\n\t\t}\n\t});\n}\n", "import * as e from '../errors.js';\n/**\n * @param {Node} anchor\n * @param {...(()=>any)[]} args\n */\nexport function validate_snippet_args(anchor, ...args) {\n\tif (typeof anchor !== 'object' || !(anchor instanceof Node)) {\n\t\te.invalid_snippet_arguments();\n\t}\n\n\tfor (let arg of args) {\n\t\tif (typeof arg !== 'function') {\n\t\t\te.invalid_snippet_arguments();\n\t\t}\n\t}\n}\n", "/** @import { Effect, TemplateNode } from '#client' */\nimport { Batch, current_batch } from '../../reactivity/batch.js';\nimport {\n\tbranch,\n\tdestroy_effect,\n\tmove_effect,\n\tpause_effect,\n\tresume_effect\n} from '../../reactivity/effects.js';\nimport { hydrate_node, hydrating } from '../hydration.js';\nimport { create_text, should_defer_append } from '../operations.js';\n\n/**\n * @typedef {{ effect: Effect, fragment: DocumentFragment }} Branch\n */\n\n/**\n * @template Key\n */\nexport class BranchManager {\n\t/** @type {TemplateNode} */\n\tanchor;\n\n\t/** @type {Map<Batch, Key>} */\n\t#batches = new Map();\n\n\t/**\n\t * Map of keys to effects that are currently rendered in the DOM.\n\t * These effects are visible and actively part of the document tree.\n\t * Example:\n\t * ```\n\t * {#if condition}\n\t * \tfoo\n\t * {:else}\n\t * \tbar\n\t * {/if}\n\t * ```\n\t * Can result in the entries `true->Effect` and `false->Effect`\n\t * @type {Map<Key, Effect>}\n\t */\n\t#onscreen = new Map();\n\n\t/**\n\t * Similar to #onscreen with respect to the keys, but contains branches that are not yet\n\t * in the DOM, because their insertion is deferred.\n\t * @type {Map<Key, Branch>}\n\t */\n\t#offscreen = new Map();\n\n\t/**\n\t * Keys of effects that are currently outroing\n\t * @type {Set<Key>}\n\t */\n\t#outroing = new Set();\n\n\t/**\n\t * Whether to pause (i.e. outro) on change, or destroy immediately.\n\t * This is necessary for `<svelte:element>`\n\t */\n\t#transition = true;\n\n\t/**\n\t * @param {TemplateNode} anchor\n\t * @param {boolean} transition\n\t */\n\tconstructor(anchor, transition = true) {\n\t\tthis.anchor = anchor;\n\t\tthis.#transition = transition;\n\t}\n\n\t#commit = () => {\n\t\tvar batch = /** @type {Batch} */ (current_batch);\n\n\t\t// if this batch was made obsolete, bail\n\t\tif (!this.#batches.has(batch)) return;\n\n\t\tvar key = /** @type {Key} */ (this.#batches.get(batch));\n\n\t\tvar onscreen = this.#onscreen.get(key);\n\n\t\tif (onscreen) {\n\t\t\t// effect is already in the DOM — abort any current outro\n\t\t\tresume_effect(onscreen);\n\t\t\tthis.#outroing.delete(key);\n\t\t} else {\n\t\t\t// effect is currently offscreen. put it in the DOM\n\t\t\tvar offscreen = this.#offscreen.get(key);\n\n\t\t\tif (offscreen) {\n\t\t\t\tthis.#onscreen.set(key, offscreen.effect);\n\t\t\t\tthis.#offscreen.delete(key);\n\n\t\t\t\t// remove the anchor...\n\t\t\t\t/** @type {TemplateNode} */ (offscreen.fragment.lastChild).remove();\n\n\t\t\t\t// ...and append the fragment\n\t\t\t\tthis.anchor.before(offscreen.fragment);\n\t\t\t\tonscreen = offscreen.effect;\n\t\t\t}\n\t\t}\n\n\t\tfor (const [b, k] of this.#batches) {\n\t\t\tthis.#batches.delete(b);\n\n\t\t\tif (b === batch) {\n\t\t\t\t// keep values for newer batches\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst offscreen = this.#offscreen.get(k);\n\n\t\t\tif (offscreen) {\n\t\t\t\t// for older batches, destroy offscreen effects\n\t\t\t\t// as they will never be committed\n\t\t\t\tdestroy_effect(offscreen.effect);\n\t\t\t\tthis.#offscreen.delete(k);\n\t\t\t}\n\t\t}\n\n\t\t// outro/destroy all onscreen effects...\n\t\tfor (const [k, effect] of this.#onscreen) {\n\t\t\t// ...except the one that was just committed\n\t\t\t// or those that are already outroing (else the transition is aborted and the effect destroyed right away)\n\t\t\tif (k === key || this.#outroing.has(k)) continue;\n\n\t\t\tconst on_destroy = () => {\n\t\t\t\tconst keys = Array.from(this.#batches.values());\n\n\t\t\t\tif (keys.includes(k)) {\n\t\t\t\t\t// keep the effect offscreen, as another batch will need it\n\t\t\t\t\tvar fragment = document.createDocumentFragment();\n\t\t\t\t\tmove_effect(effect, fragment);\n\n\t\t\t\t\tfragment.append(create_text()); // TODO can we avoid this?\n\n\t\t\t\t\tthis.#offscreen.set(k, { effect, fragment });\n\t\t\t\t} else {\n\t\t\t\t\tdestroy_effect(effect);\n\t\t\t\t}\n\n\t\t\t\tthis.#outroing.delete(k);\n\t\t\t\tthis.#onscreen.delete(k);\n\t\t\t};\n\n\t\t\tif (this.#transition || !onscreen) {\n\t\t\t\tthis.#outroing.add(k);\n\t\t\t\tpause_effect(effect, on_destroy, false);\n\t\t\t} else {\n\t\t\t\ton_destroy();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * @param {Batch} batch\n\t */\n\t#discard = (batch) => {\n\t\tthis.#batches.delete(batch);\n\n\t\tconst keys = Array.from(this.#batches.values());\n\n\t\tfor (const [k, branch] of this.#offscreen) {\n\t\t\tif (!keys.includes(k)) {\n\t\t\t\tdestroy_effect(branch.effect);\n\t\t\t\tthis.#offscreen.delete(k);\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t *\n\t * @param {any} key\n\t * @param {null | ((target: TemplateNode) => void)} fn\n\t */\n\tensure(key, fn) {\n\t\tvar batch = /** @type {Batch} */ (current_batch);\n\t\tvar defer = should_defer_append();\n\n\t\tif (fn && !this.#onscreen.has(key) && !this.#offscreen.has(key)) {\n\t\t\tif (defer) {\n\t\t\t\tvar fragment = document.createDocumentFragment();\n\t\t\t\tvar target = create_text();\n\n\t\t\t\tfragment.append(target);\n\n\t\t\t\tthis.#offscreen.set(key, {\n\t\t\t\t\teffect: branch(() => fn(target)),\n\t\t\t\t\tfragment\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.#onscreen.set(\n\t\t\t\t\tkey,\n\t\t\t\t\tbranch(() => fn(this.anchor))\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis.#batches.set(batch, key);\n\n\t\tif (defer) {\n\t\t\tfor (const [k, effect] of this.#onscreen) {\n\t\t\t\tif (k === key) {\n\t\t\t\t\tbatch.unskip_effect(effect);\n\t\t\t\t} else {\n\t\t\t\t\tbatch.skip_effect(effect);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (const [k, branch] of this.#offscreen) {\n\t\t\t\tif (k === key) {\n\t\t\t\t\tbatch.unskip_effect(branch.effect);\n\t\t\t\t} else {\n\t\t\t\t\tbatch.skip_effect(branch.effect);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbatch.oncommit(this.#commit);\n\t\t\tbatch.ondiscard(this.#discard);\n\t\t} else {\n\t\t\tif (hydrating) {\n\t\t\t\tthis.anchor = hydrate_node;\n\t\t\t}\n\n\t\t\tthis.#commit();\n\t\t}\n\t}\n}\n", "/** @import { Source, TemplateNode } from '#client' */\nimport { is_promise } from '../../../shared/utils.js';\nimport { block } from '../../reactivity/effects.js';\nimport { internal_set, mutable_source, source } from '../../reactivity/sources.js';\nimport {\n\thydrate_next,\n\thydrating,\n\tskip_nodes,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport { queue_micro_task } from '../task.js';\nimport { HYDRATION_START_ELSE, UNINITIALIZED } from '../../../../constants.js';\nimport { is_runes } from '../../context.js';\nimport { Batch, flushSync, is_flushing_sync } from '../../reactivity/batch.js';\nimport { BranchManager } from './branches.js';\nimport { capture, unset_context } from '../../reactivity/async.js';\n\nconst PENDING = 0;\nconst THEN = 1;\nconst CATCH = 2;\n\n/** @typedef {typeof PENDING | typeof THEN | typeof CATCH} AwaitState */\n\n/**\n * @template V\n * @param {TemplateNode} node\n * @param {(() => any)} get_input\n * @param {null | ((anchor: Node) => void)} pending_fn\n * @param {null | ((anchor: Node, value: Source<V>) => 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 runes = is_runes();\n\n\tvar v = /** @type {V} */ (UNINITIALIZED);\n\tvar value = runes ? source(v) : mutable_source(v, false, false);\n\tvar error = runes ? source(v) : mutable_source(v, false, false);\n\n\tvar branches = new BranchManager(node);\n\n\tblock(() => {\n\t\tvar input = get_input();\n\t\tvar destroyed = false;\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\t// @ts-ignore coercing `node` to a `Comment` causes TypeScript and Prettier to fight\n\t\tlet mismatch = hydrating && is_promise(input) === (node.data === HYDRATION_START_ELSE);\n\n\t\tif (mismatch) {\n\t\t\t// Hydration mismatch: remove everything inside the anchor and start fresh\n\t\t\tset_hydrate_node(skip_nodes());\n\t\t\tset_hydrating(false);\n\t\t}\n\n\t\tif (is_promise(input)) {\n\t\t\tvar restore = capture();\n\t\t\tvar resolved = false;\n\n\t\t\t/**\n\t\t\t * @param {() => void} fn\n\t\t\t */\n\t\t\tconst resolve = (fn) => {\n\t\t\t\tif (destroyed) return;\n\n\t\t\t\tresolved = true;\n\t\t\t\t// We don't want to restore the previous batch here; {#await} blocks don't follow the async logic\n\t\t\t\t// we have elsewhere, instead pending/resolve/fail states are each their own batch so to speak.\n\t\t\t\trestore(false);\n\t\t\t\t// Make sure we have a batch, since the branch manager expects one to exist\n\t\t\t\tBatch.ensure();\n\n\t\t\t\tif (hydrating) {\n\t\t\t\t\t// `restore()` could set `hydrating` to `true`, which we very much\n\t\t\t\t\t// don't want — we want to restore everything _except_ this\n\t\t\t\t\tset_hydrating(false);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tfn();\n\t\t\t\t} finally {\n\t\t\t\t\tunset_context();\n\n\t\t\t\t\t// without this, the DOM does not update until two ticks after the promise\n\t\t\t\t\t// resolves, which is unexpected behaviour (and somewhat irksome to test)\n\t\t\t\t\tif (!is_flushing_sync) flushSync();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tinput.then(\n\t\t\t\t(v) => {\n\t\t\t\t\tresolve(() => {\n\t\t\t\t\t\tinternal_set(value, v);\n\t\t\t\t\t\tbranches.ensure(THEN, then_fn && ((target) => then_fn(target, value)));\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\t(e) => {\n\t\t\t\t\tresolve(() => {\n\t\t\t\t\t\tinternal_set(error, e);\n\t\t\t\t\t\tbranches.ensure(THEN, catch_fn && ((target) => catch_fn(target, error)));\n\n\t\t\t\t\t\tif (!catch_fn) {\n\t\t\t\t\t\t\t// Rethrow the error if no catch block exists\n\t\t\t\t\t\t\tthrow error.v;\n\t\t\t\t\t\t}\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\tbranches.ensure(PENDING, pending_fn);\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 then\n\t\t\t\tqueue_micro_task(() => {\n\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\tresolve(() => {\n\t\t\t\t\t\t\tbranches.ensure(PENDING, pending_fn);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tinternal_set(value, input);\n\t\t\tbranches.ensure(THEN, then_fn && ((target) => then_fn(target, value)));\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\treturn () => {\n\t\t\tdestroyed = true;\n\t\t};\n\t});\n}\n", "/** @import { TemplateNode } from '#client' */\nimport { EFFECT_TRANSPARENT } from '#client/constants';\nimport {\n\thydrate_next,\n\thydrating,\n\tread_hydration_instruction,\n\tskip_nodes,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport { block } from '../../reactivity/effects.js';\nimport { BranchManager } from './branches.js';\nimport { HYDRATION_START, HYDRATION_START_ELSE } from '../../../../constants.js';\n\n/**\n * @param {TemplateNode} node\n * @param {(branch: (fn: (anchor: Node) => void, key?: number | false) => 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 branches = new BranchManager(node);\n\tvar flags = elseif ? EFFECT_TRANSPARENT : 0;\n\n\t/**\n\t * @param {number | false} key\n\t * @param {null | ((anchor: Node) => void)} fn\n\t */\n\tfunction update_branch(key, fn) {\n\t\tif (hydrating) {\n\t\t\tconst data = read_hydration_instruction(node);\n\n\t\t\t/**\n\t\t\t * @type {number | false}\n\t\t\t * \"[\" = branch 0, \"[1\" = branch 1, \"[2\" = branch 2, ..., \"[!\" = else (false)\n\t\t\t */\n\t\t\tvar hydrated_key;\n\n\t\t\tif (data === HYDRATION_START) {\n\t\t\t\thydrated_key = 0;\n\t\t\t} else if (data === HYDRATION_START_ELSE) {\n\t\t\t\thydrated_key = false;\n\t\t\t} else {\n\t\t\t\thydrated_key = parseInt(data.substring(1)); // \"[1\", \"[2\", etc.\n\t\t\t}\n\n\t\t\tif (key !== hydrated_key) {\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\tvar anchor = skip_nodes();\n\n\t\t\t\tset_hydrate_node(anchor);\n\t\t\t\tbranches.anchor = anchor;\n\n\t\t\t\tset_hydrating(false);\n\t\t\t\tbranches.ensure(key, fn);\n\t\t\t\tset_hydrating(true);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tbranches.ensure(key, fn);\n\t}\n\n\tblock(() => {\n\t\tvar has_branch = false;\n\n\t\tfn((fn, key = 0) => {\n\t\t\thas_branch = true;\n\t\t\tupdate_branch(key, fn);\n\t\t});\n\n\t\tif (!has_branch) {\n\t\t\tupdate_branch(false, null);\n\t\t}\n\t}, flags);\n}\n", "/** @import { TemplateNode } from '#client' */\nimport { is_runes } from '../../context.js';\nimport { block } from '../../reactivity/effects.js';\nimport { hydrate_next, hydrating } from '../hydration.js';\nimport { BranchManager } from './branches.js';\n\nconst NAN = Symbol('NaN');\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(node, get_key, render_fn) {\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar branches = new BranchManager(node);\n\n\tvar legacy = !is_runes();\n\n\tblock(() => {\n\t\tvar key = get_key();\n\n\t\t// NaN !== NaN, hence we do this workaround to not trigger remounts unnecessarily\n\t\tif (key !== key) {\n\t\t\tkey = /** @type {any} */ (NAN);\n\t\t}\n\n\t\t// key blocks in Svelte <5 had stupid semantics\n\t\tif (legacy && key !== null && typeof key === 'object') {\n\t\t\tkey = /** @type {V} */ ({});\n\t\t}\n\n\t\tbranches.ensure(key, render_fn);\n\t});\n}\n", "import { render_effect } from '../../reactivity/effects.js';\nimport { hydrating, set_hydrate_node } from '../hydration.js';\nimport { get_first_child } from '../operations.js';\n\n/**\n * @param {HTMLDivElement | SVGGElement} element\n * @param {() => Record<string, string>} get_styles\n * @returns {void}\n */\nexport function css_props(element, get_styles) {\n\tif (hydrating) {\n\t\tset_hydrate_node(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", "/** @import { EachItem, EachOutroGroup, EachState, Effect, EffectNodes, MaybeSource, Source, TemplateNode, TransitionManager, Value } from '#client' */\n/** @import { Batch } from '../../reactivity/batch.js'; */\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\tread_hydration_instruction,\n\tskip_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\tshould_defer_append\n} from '../operations.js';\nimport {\n\tblock,\n\tbranch,\n\tdestroy_effect,\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 { BRANCH_EFFECT, COMMENT_NODE, EFFECT_OFFSCREEN, INERT } from '#client/constants';\nimport { queue_micro_task } from '../task.js';\nimport { get } from '../../runtime.js';\nimport { DEV } from 'esm-env';\nimport { derived_safe_equal } from '../../reactivity/deriveds.js';\nimport { current_batch } from '../../reactivity/batch.js';\nimport * as e from '../../errors.js';\n\n// When making substantive changes to this file, validate them with the each block stress test:\n// https://svelte.dev/playground/1972b2cf46564476ad8c8c6405b23b7b\n// This test also exists in this repo, as `packages/svelte/tests/manual/each-stress-test`\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 {Effect[]} to_destroy\n * @param {null | Node} controlled_anchor\n */\nfunction pause_effects(state, to_destroy, controlled_anchor) {\n\t/** @type {TransitionManager[]} */\n\tvar transitions = [];\n\tvar length = to_destroy.length;\n\n\t/** @type {EachOutroGroup} */\n\tvar group;\n\tvar remaining = to_destroy.length;\n\n\tfor (var i = 0; i < length; i++) {\n\t\tlet effect = to_destroy[i];\n\n\t\tpause_effect(\n\t\t\teffect,\n\t\t\t() => {\n\t\t\t\tif (group) {\n\t\t\t\t\tgroup.pending.delete(effect);\n\t\t\t\t\tgroup.done.add(effect);\n\n\t\t\t\t\tif (group.pending.size === 0) {\n\t\t\t\t\t\tvar groups = /** @type {Set<EachOutroGroup>} */ (state.outrogroups);\n\n\t\t\t\t\t\tdestroy_effects(array_from(group.done));\n\t\t\t\t\t\tgroups.delete(group);\n\n\t\t\t\t\t\tif (groups.size === 0) {\n\t\t\t\t\t\t\tstate.outrogroups = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tremaining -= 1;\n\t\t\t\t}\n\t\t\t},\n\t\t\tfalse\n\t\t);\n\t}\n\n\tif (remaining === 0) {\n\t\t// If we're in a controlled each block (i.e. the block is the only child of an\n\t\t// element), and we are removing all items, _and_ there are no out transitions,\n\t\t// we can use the fast path — emptying the element and replacing the anchor\n\t\tvar fast_path = transitions.length === 0 && controlled_anchor !== null;\n\n\t\tif (fast_path) {\n\t\t\tvar anchor = /** @type {Element} */ (controlled_anchor);\n\t\t\tvar parent_node = /** @type {Element} */ (anchor.parentNode);\n\n\t\t\tclear_text_content(parent_node);\n\t\t\tparent_node.append(anchor);\n\n\t\t\tstate.items.clear();\n\t\t}\n\n\t\tdestroy_effects(to_destroy, !fast_path);\n\t} else {\n\t\tgroup = {\n\t\t\tpending: new Set(to_destroy),\n\t\t\tdone: new Set()\n\t\t};\n\n\t\t(state.outrogroups ??= new Set()).add(group);\n\t}\n}\n\n/**\n * @param {Effect[]} to_destroy\n * @param {boolean} remove_dom\n */\nfunction destroy_effects(to_destroy, remove_dom = true) {\n\t// TODO only destroy effects if no pending batch needs them. otherwise,\n\t// just re-add the `EFFECT_OFFSCREEN` flag\n\tfor (var i = 0; i < to_destroy.length; i++) {\n\t\tdestroy_effect(to_destroy[i], remove_dom);\n\t}\n}\n\n/** @type {TemplateNode} */\nvar offscreen_anchor;\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<V>, index: MaybeSource<number>) => 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 {Map<any, EachItem>} */\n\tvar items = new Map();\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(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\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\t/** @type {V[]} */\n\tvar array;\n\n\tvar first_run = true;\n\n\tfunction commit() {\n\t\tstate.fallback = fallback;\n\t\treconcile(state, array, anchor, flags, get_key);\n\n\t\tif (fallback !== null) {\n\t\t\tif (array.length === 0) {\n\t\t\t\tif ((fallback.f & EFFECT_OFFSCREEN) === 0) {\n\t\t\t\t\tresume_effect(fallback);\n\t\t\t\t} else {\n\t\t\t\t\tfallback.f ^= EFFECT_OFFSCREEN;\n\t\t\t\t\tmove(fallback, null, anchor);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpause_effect(fallback, () => {\n\t\t\t\t\t// TODO only null out if no pending batch needs it,\n\t\t\t\t\t// otherwise re-add `fallback.fragment` and move the\n\t\t\t\t\t// effect into it\n\t\t\t\t\tfallback = null;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tvar effect = block(() => {\n\t\tarray = /** @type {V[]} */ (get(each_array));\n\t\tvar length = array.length;\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 = read_hydration_instruction(anchor) === 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 = skip_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\tvar keys = new Set();\n\t\tvar batch = /** @type {Batch} */ (current_batch);\n\t\tvar defer = should_defer_append();\n\n\t\tfor (var index = 0; index < length; index += 1) {\n\t\t\tif (\n\t\t\t\thydrating &&\n\t\t\t\thydrate_node.nodeType === COMMENT_NODE &&\n\t\t\t\t/** @type {Comment} */ (hydrate_node).data === HYDRATION_END\n\t\t\t) {\n\t\t\t\t// The server rendered fewer items than expected,\n\t\t\t\t// so break out and continue appending non-hydrated items\n\t\t\t\tanchor = /** @type {Comment} */ (hydrate_node);\n\t\t\t\tmismatch = true;\n\t\t\t\tset_hydrating(false);\n\t\t\t}\n\n\t\t\tvar value = array[index];\n\t\t\tvar key = get_key(value, index);\n\n\t\t\tif (DEV) {\n\t\t\t\t// Check that the key function is idempotent (returns the same value when called twice)\n\t\t\t\tvar key_again = get_key(value, index);\n\t\t\t\tif (key !== key_again) {\n\t\t\t\t\te.each_key_volatile(String(index), String(key), String(key_again));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar item = first_run ? null : items.get(key);\n\n\t\t\tif (item) {\n\t\t\t\t// update before reconciliation, to trigger any async updates\n\t\t\t\tif (item.v) internal_set(item.v, value);\n\t\t\t\tif (item.i) internal_set(item.i, index);\n\n\t\t\t\tif (defer) {\n\t\t\t\t\tbatch.unskip_effect(item.e);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\titem = create_item(\n\t\t\t\t\titems,\n\t\t\t\t\tfirst_run ? anchor : (offscreen_anchor ??= create_text()),\n\t\t\t\t\tvalue,\n\t\t\t\t\tkey,\n\t\t\t\t\tindex,\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\n\t\t\t\tif (!first_run) {\n\t\t\t\t\titem.e.f |= EFFECT_OFFSCREEN;\n\t\t\t\t}\n\n\t\t\t\titems.set(key, item);\n\t\t\t}\n\n\t\t\tkeys.add(key);\n\t\t}\n\n\t\tif (length === 0 && fallback_fn && !fallback) {\n\t\t\tif (first_run) {\n\t\t\t\tfallback = branch(() => fallback_fn(anchor));\n\t\t\t} else {\n\t\t\t\tfallback = branch(() => fallback_fn((offscreen_anchor ??= create_text())));\n\t\t\t\tfallback.f |= EFFECT_OFFSCREEN;\n\t\t\t}\n\t\t}\n\n\t\tif (length > keys.size) {\n\t\t\tif (DEV) {\n\t\t\t\tvalidate_each_keys(array, get_key);\n\t\t\t} else {\n\t\t\t\t// in prod, the additional information isn't printed, so don't bother computing it\n\t\t\t\te.each_key_duplicate('', '', '');\n\t\t\t}\n\t\t}\n\n\t\t// remove excess nodes\n\t\tif (hydrating && length > 0) {\n\t\t\tset_hydrate_node(skip_nodes());\n\t\t}\n\n\t\tif (!first_run) {\n\t\t\tif (defer) {\n\t\t\t\tfor (const [key, item] of items) {\n\t\t\t\t\tif (!keys.has(key)) {\n\t\t\t\t\t\tbatch.skip_effect(item.e);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbatch.oncommit(commit);\n\t\t\t\tbatch.ondiscard(() => {\n\t\t\t\t\t// TODO presumably we need to do something here?\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcommit();\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\t/** @type {EachState} */\n\tvar state = { effect, flags, items, outrogroups: null, fallback };\n\n\tfirst_run = false;\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n\n/**\n * Skip past any non-branch effects (which could be created with `createSubscriber`, for example) to find the next branch effect\n * @param {Effect | null} effect\n * @returns {Effect | null}\n */\nfunction skip_to_branch(effect) {\n\twhile (effect !== null && (effect.f & BRANCH_EFFECT) === 0) {\n\t\teffect = effect.next;\n\t}\n\treturn effect;\n}\n\n/**\n * Add, remove, or reorder items output by an each block as its input changes\n * @template V\n * @param {EachState} state\n * @param {Array<V>} array\n * @param {Element | Comment | Text} anchor\n * @param {number} flags\n * @param {(value: V, index: number) => any} get_key\n * @returns {void}\n */\nfunction reconcile(state, array, anchor, flags, get_key) {\n\tvar is_animated = (flags & EACH_IS_ANIMATED) !== 0;\n\n\tvar length = array.length;\n\tvar items = state.items;\n\tvar current = skip_to_branch(state.effect.first);\n\n\t/** @type {undefined | Set<Effect>} */\n\tvar seen;\n\n\t/** @type {Effect | null} */\n\tvar prev = null;\n\n\t/** @type {undefined | Set<Effect>} */\n\tvar to_animate;\n\n\t/** @type {Effect[]} */\n\tvar matched = [];\n\n\t/** @type {Effect[]} */\n\tvar stashed = [];\n\n\t/** @type {V} */\n\tvar value;\n\n\t/** @type {any} */\n\tvar key;\n\n\t/** @type {Effect | undefined} */\n\tvar effect;\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\teffect = /** @type {EachItem} */ (items.get(key)).e;\n\n\t\t\t// offscreen == coming in now, no animation in that case,\n\t\t\t// else this would happen https://github.com/sveltejs/svelte/issues/17181\n\t\t\tif ((effect.f & EFFECT_OFFSCREEN) === 0) {\n\t\t\t\teffect.nodes?.a?.measure();\n\t\t\t\t(to_animate ??= new Set()).add(effect);\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\n\t\teffect = /** @type {EachItem} */ (items.get(key)).e;\n\n\t\tif (state.outrogroups !== null) {\n\t\t\tfor (const group of state.outrogroups) {\n\t\t\t\tgroup.pending.delete(effect);\n\t\t\t\tgroup.done.delete(effect);\n\t\t\t}\n\t\t}\n\n\t\tif ((effect.f & EFFECT_OFFSCREEN) !== 0) {\n\t\t\teffect.f ^= EFFECT_OFFSCREEN;\n\n\t\t\tif (effect === current) {\n\t\t\t\tmove(effect, null, anchor);\n\t\t\t} else {\n\t\t\t\tvar next = prev ? prev.next : current;\n\n\t\t\t\tif (effect === state.effect.last) {\n\t\t\t\t\tstate.effect.last = effect.prev;\n\t\t\t\t}\n\n\t\t\t\tif (effect.prev) effect.prev.next = effect.next;\n\t\t\t\tif (effect.next) effect.next.prev = effect.prev;\n\t\t\t\tlink(state, prev, effect);\n\t\t\t\tlink(state, effect, next);\n\n\t\t\t\tmove(effect, next, anchor);\n\t\t\t\tprev = effect;\n\n\t\t\t\tmatched = [];\n\t\t\t\tstashed = [];\n\n\t\t\t\tcurrent = skip_to_branch(prev.next);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif ((effect.f & INERT) !== 0) {\n\t\t\tresume_effect(effect);\n\t\t\tif (is_animated) {\n\t\t\t\teffect.nodes?.a?.unfix();\n\t\t\t\t(to_animate ??= new Set()).delete(effect);\n\t\t\t}\n\t\t}\n\n\t\tif (effect !== current) {\n\t\t\tif (seen !== undefined && seen.has(effect)) {\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(effect);\n\t\t\t\t\tmove(effect, current, anchor);\n\n\t\t\t\t\tlink(state, effect.prev, effect.next);\n\t\t\t\t\tlink(state, effect, prev === null ? state.effect.first : prev.next);\n\t\t\t\t\tlink(state, prev, effect);\n\n\t\t\t\t\tprev = effect;\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 !== effect) {\n\t\t\t\t(seen ??= new Set()).add(current);\n\t\t\t\tstashed.push(current);\n\t\t\t\tcurrent = skip_to_branch(current.next);\n\t\t\t}\n\n\t\t\tif (current === null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif ((effect.f & EFFECT_OFFSCREEN) === 0) {\n\t\t\tmatched.push(effect);\n\t\t}\n\n\t\tprev = effect;\n\t\tcurrent = skip_to_branch(effect.next);\n\t}\n\n\tif (state.outrogroups !== null) {\n\t\tfor (const group of state.outrogroups) {\n\t\t\tif (group.pending.size === 0) {\n\t\t\t\tdestroy_effects(array_from(group.done));\n\t\t\t\tstate.outrogroups?.delete(group);\n\t\t\t}\n\t\t}\n\n\t\tif (state.outrogroups.size === 0) {\n\t\t\tstate.outrogroups = null;\n\t\t}\n\t}\n\n\tif (current !== null || seen !== undefined) {\n\t\t/** @type {Effect[]} */\n\t\tvar to_destroy = [];\n\n\t\tif (seen !== undefined) {\n\t\t\tfor (effect of seen) {\n\t\t\t\tif ((effect.f & INERT) === 0) {\n\t\t\t\t\tto_destroy.push(effect);\n\t\t\t\t}\n\t\t\t}\n\t\t}\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.f & INERT) === 0 && current !== state.fallback) {\n\t\t\t\tto_destroy.push(current);\n\t\t\t}\n\n\t\t\tcurrent = skip_to_branch(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].nodes?.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].nodes?.a?.fix();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpause_effects(state, to_destroy, controlled_anchor);\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 (effect of to_animate) {\n\t\t\t\teffect.nodes?.a?.apply();\n\t\t\t}\n\t\t});\n\t}\n}\n\n/**\n * @template V\n * @param {Map<any, EachItem>} items\n * @param {Node} anchor\n * @param {V} value\n * @param {unknown} key\n * @param {number} index\n * @param {(anchor: Node, item: V | Source<V>, index: number | Value<number>, collection: () => V[]) => void} render_fn\n * @param {number} flags\n * @param {() => V[]} get_collection\n * @returns {EachItem}\n */\nfunction create_item(items, anchor, value, key, index, render_fn, flags, get_collection) {\n\tvar v =\n\t\t(flags & EACH_ITEM_REACTIVE) !== 0\n\t\t\t? (flags & EACH_ITEM_IMMUTABLE) === 0\n\t\t\t\t? mutable_source(value, false, false)\n\t\t\t\t: source(value)\n\t\t\t: null;\n\n\tvar i = (flags & EACH_INDEX_REACTIVE) !== 0 ? source(index) : null;\n\n\tif (DEV && v) {\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\tv.trace = () => {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n\t\t\tget_collection()[i?.v ?? index];\n\t\t};\n\t}\n\n\treturn {\n\t\tv,\n\t\ti,\n\t\te: branch(() => {\n\t\t\trender_fn(anchor, v ?? value, i ?? index, get_collection);\n\n\t\t\treturn () => {\n\t\t\t\titems.delete(key);\n\t\t\t};\n\t\t})\n\t};\n}\n\n/**\n * @param {Effect} effect\n * @param {Effect | null} next\n * @param {Text | Element | Comment} anchor\n */\nfunction move(effect, next, anchor) {\n\tif (!effect.nodes) return;\n\n\tvar node = effect.nodes.start;\n\tvar end = effect.nodes.end;\n\n\tvar dest =\n\t\tnext && (next.f & EFFECT_OFFSCREEN) === 0\n\t\t\t? /** @type {EffectNodes} */ (next.nodes).start\n\t\t\t: anchor;\n\n\twhile (node !== null) {\n\t\tvar next_node = /** @type {TemplateNode} */ (get_next_sibling(node));\n\t\tdest.before(node);\n\n\t\tif (node === end) {\n\t\t\treturn;\n\t\t}\n\n\t\tnode = next_node;\n\t}\n}\n\n/**\n * @param {EachState} state\n * @param {Effect | null} prev\n * @param {Effect | null} next\n */\nfunction link(state, prev, next) {\n\tif (prev === null) {\n\t\tstate.effect.first = next;\n\t} else {\n\t\tprev.next = next;\n\t}\n\n\tif (next === null) {\n\t\tstate.effect.last = prev;\n\t} else {\n\t\tnext.prev = prev;\n\t}\n}\n\n/**\n * @param {Array<any>} array\n * @param {(item: any, index: number) => string} key_fn\n * @returns {void}\n */\nfunction validate_each_keys(array, key_fn) {\n\tconst keys = new Map();\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; i++) {\n\t\tconst key = key_fn(array[i], i);\n\n\t\tif (keys.has(key)) {\n\t\t\tconst a = String(keys.get(key));\n\t\t\tconst b = String(i);\n\n\t\t\t/** @type {string | null} */\n\t\t\tlet k = String(key);\n\t\t\tif (k.startsWith('[object ')) k = null;\n\n\t\t\te.each_key_duplicate(a, b, k);\n\t\t}\n\n\t\tkeys.set(key, i);\n\t}\n}\n", "/** @import { Effect, TemplateNode } from '#client' */\nimport { FILENAME, HYDRATION_ERROR } from '../../../../constants.js';\nimport { remove_effect_dom, template_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';\nimport { active_effect } from '../../runtime.js';\nimport { COMMENT_NODE } from '#client/constants';\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 = false, mathml = false, skip_warning = false) {\n\tvar anchor = node;\n\n\tvar value = '';\n\n\ttemplate_effect(() => {\n\t\tvar effect = /** @type {Effect} */ (active_effect);\n\n\t\tif (value === (value = get_value() ?? '')) {\n\t\t\tif (hydrating) hydrate_next();\n\t\t\treturn;\n\t\t}\n\n\t\tif (effect.nodes !== null) {\n\t\t\tremove_effect_dom(effect.nodes.start, /** @type {TemplateNode} */ (effect.nodes.end));\n\t\t\teffect.nodes = null;\n\t\t}\n\n\t\tif (value === '') return;\n\n\t\tif (hydrating) {\n\t\t\t// We're deliberately not trying to repair mismatches between server and client,\n\t\t\t// as it's costly and error-prone (and it's an edge case to have a mismatch anyway)\n\t\t\tvar hash = /** @type {Comment} */ (hydrate_node).data;\n\n\t\t\t/** @type {TemplateNode | null} */\n\t\t\tvar next = hydrate_next();\n\t\t\tvar last = next;\n\n\t\t\twhile (\n\t\t\t\tnext !== null &&\n\t\t\t\t(next.nodeType !== COMMENT_NODE || /** @type {Comment} */ (next).data !== '')\n\t\t\t) {\n\t\t\t\tlast = next;\n\t\t\t\tnext = get_next_sibling(next);\n\t\t\t}\n\n\t\t\tif (next === null) {\n\t\t\t\tw.hydration_mismatch();\n\t\t\t\tthrow HYDRATION_ERROR;\n\t\t\t}\n\n\t\t\tif (DEV && !skip_warning) {\n\t\t\t\tcheck_hash(/** @type {Element} */ (next.parentNode), hash, value);\n\t\t\t}\n\n\t\t\tassign_nodes(hydrate_node, last);\n\t\t\tanchor = set_hydrate_node(next);\n\t\t\treturn;\n\t\t}\n\n\t\tvar html = value + '';\n\t\tif (svg) html = `<svg>${html}</svg>`;\n\t\telse if (mathml) html = `<math>${html}</math>`;\n\n\t\t// Don't use create_fragment_with_script_from_html here because that would mean script tags are executed.\n\t\t// @html is basically `.innerHTML = ...` and that doesn't execute scripts either due to security reasons.\n\t\t/** @type {DocumentFragment | Element} */\n\t\tvar node = create_fragment_from_html(html);\n\n\t\tif (svg || mathml) {\n\t\t\tnode = /** @type {Element} */ (get_first_child(node));\n\t\t}\n\n\t\tassign_nodes(\n\t\t\t/** @type {TemplateNode} */ (get_first_child(node)),\n\t\t\t/** @type {TemplateNode} */ (node.lastChild)\n\t\t);\n\n\t\tif (svg || mathml) {\n\t\t\twhile (get_first_child(node)) {\n\t\t\t\tanchor.before(/** @type {TemplateNode} */ (get_first_child(node)));\n\t\t\t}\n\t\t} else {\n\t\t\tanchor.before(node);\n\t\t}\n\t});\n}\n", "import { hydrate_next, hydrating } from '../hydration.js';\n\n/**\n * @param {Comment} anchor\n * @param {Record<string, any>} $$props\n * @param {string} name\n * @param {Record<string, unknown>} 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<string, any>} props\n * @returns {Record<string, boolean>}\n */\nexport function sanitize_slots(props) {\n\t/** @type {Record<string, boolean>} */\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 { is_void } from '../../utils.js';\nimport * as w from './warnings.js';\nimport * as e from './errors.js';\n\nexport { invalid_default_snippet } from './errors.js';\n\n/**\n * @param {() => string} tag_fn\n * @returns {void}\n */\nexport function validate_void_dynamic_element(tag_fn) {\n\tconst tag = tag_fn();\n\tif (tag && is_void(tag)) {\n\t\tw.dynamic_void_element_content(tag);\n\t}\n}\n\n/** @param {() => unknown} tag_fn */\nexport function validate_dynamic_element_tag(tag_fn) {\n\tconst tag = tag_fn();\n\tconst is_string = typeof tag === 'string';\n\tif (tag && !is_string) {\n\t\te.svelte_element_invalid_this_value();\n\t}\n}\n\n/**\n * @param {any} store\n * @param {string} name\n */\nexport function validate_store(store, name) {\n\tif (store != null && typeof store.subscribe !== 'function') {\n\t\te.store_invalid_shape(name);\n\t}\n}\n\n/**\n * @template {(...args: any[]) => unknown} T\n * @param {T} fn\n */\nexport function prevent_snippet_stringification(fn) {\n\tfn.toString = () => {\n\t\te.snippet_without_render_tag();\n\t\treturn '';\n\t};\n\treturn fn;\n}\n", "/** @import { Snippet } from 'svelte' */\n/** @import { TemplateNode } from '#client' */\n/** @import { Getters } from '#shared' */\nimport { EFFECT_TRANSPARENT, ELEMENT_NODE } from '#client/constants';\nimport { block, 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 { prevent_snippet_stringification } from '../../../shared/validate.js';\nimport { BranchManager } from './branches.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 branches = new BranchManager(node);\n\n\tblock(() => {\n\t\tconst snippet = get_snippet() ?? null;\n\n\t\tif (DEV && snippet == null) {\n\t\t\te.invalid_snippet();\n\t\t}\n\n\t\tbranches.ensure(snippet, snippet && ((anchor) => snippet(anchor, ...args)));\n\t}, EFFECT_TRANSPARENT);\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\tconst snippet = (/** @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\tprevent_snippet_stringification(snippet);\n\n\treturn snippet;\n}\n\n/**\n * Create a snippet programmatically\n * @template {unknown[]} Params\n * @param {(...params: Getters<Params>) => {\n * render: () => string\n * setup?: (element: Element) => void | (() => void)\n * }} fn\n * @returns {Snippet<Params>}\n */\nexport function createRawSnippet(fn) {\n\t// @ts-expect-error the types are a lie\n\treturn (/** @type {TemplateNode} */ anchor, /** @type {Getters<Params>} */ ...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, true);\n\t\t\telement = /** @type {Element} */ (get_first_child(fragment));\n\n\t\t\tif (DEV && (get_next_sibling(element) !== null || element.nodeType !== ELEMENT_NODE)) {\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 } from '#client' */\nimport { EFFECT_TRANSPARENT } from '#client/constants';\nimport { block } from '../../reactivity/effects.js';\nimport { hydrate_next, hydrating } from '../hydration.js';\nimport { BranchManager } from './branches.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 branches = new BranchManager(node);\n\n\tblock(() => {\n\t\tvar component = get_component() ?? null;\n\t\tbranches.ensure(component, component && ((target) => render_fn(target, component)));\n\t}, EFFECT_TRANSPARENT);\n}\n", "/** @import { Raf } from '#client' */\nimport { noop } from '../shared/utils.js';\n\nimport { BROWSER } from 'esm-env';\n\nconst now = BROWSER ? () => performance.now() : () => Date.now();\n\n/** @type {Raf} */\nexport const raf = {\n\t// don't access requestAnimationFrame eagerly outside method\n\t// this allows basic testing of user code without JSDOM\n\t// bunder will eval and remove ternary when the user's app is built\n\ttick: /** @param {any} _ */ (_) => (BROWSER ? requestAnimationFrame : noop)(_),\n\tnow: () => now(),\n\ttasks: new Set()\n};\n", "/** @import { TaskCallback, Task, TaskEntry } from '#client' */\nimport { raf } from './timing.js';\n\n// TODO move this into timing.js where it probably belongs\n\n/**\n * @returns {void}\n */\nfunction run_tasks() {\n\t// use `raf.now()` instead of the `requestAnimationFrame` callback argument, because\n\t// otherwise things can get wonky https://github.com/sveltejs/svelte/pull/14541\n\tconst now = raf.now();\n\n\traf.tasks.forEach((task) => {\n\t\tif (!task.c(now)) {\n\t\t\traf.tasks.delete(task);\n\t\t\ttask.f();\n\t\t}\n\t});\n\n\tif (raf.tasks.size !== 0) {\n\t\traf.tick(run_tasks);\n\t}\n}\n\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n * @param {TaskCallback} callback\n * @returns {Task}\n */\nexport function loop(callback) {\n\t/** @type {TaskEntry} */\n\tlet task;\n\n\tif (raf.tasks.size === 0) {\n\t\traf.tick(run_tasks);\n\t}\n\n\treturn {\n\t\tpromise: new Promise((fulfill) => {\n\t\t\traf.tasks.add((task = { c: callback, f: fulfill }));\n\t\t}),\n\t\tabort() {\n\t\t\traf.tasks.delete(task);\n\t\t}\n\t};\n}\n", "/** @import { AnimateFn, Animation, AnimationConfig, EachItem, Effect, EffectNodes, TransitionFn, TransitionManager } from '#client' */\nimport { noop, is_function } from '../../../shared/utils.js';\nimport { effect } from '../../reactivity/effects.js';\nimport { active_effect, untrack } from '../../runtime.js';\nimport { loop } from '../../loop.js';\nimport { should_intro } from '../../render.js';\nimport { TRANSITION_GLOBAL, TRANSITION_IN, TRANSITION_OUT } from '../../../../constants.js';\nimport { BLOCK_EFFECT, REACTION_RAN, EFFECT_TRANSPARENT } from '#client/constants';\nimport { queue_micro_task } from '../task.js';\nimport { without_reactive_context } from './bindings/shared.js';\n\n/**\n * @param {Element} element\n * @param {'introstart' | 'introend' | 'outrostart' | 'outroend'} type\n * @returns {void}\n */\nfunction dispatch_event(element, type) {\n\twithout_reactive_context(() => {\n\t\telement.dispatchEvent(new CustomEvent(type));\n\t});\n}\n\n/**\n * Converts a property to the camel-case format expected by Element.animate(), KeyframeEffect(), and KeyframeEffect.setKeyframes().\n * @param {string} style\n * @returns {string}\n */\nfunction css_property_to_camelcase(style) {\n\t// in compliance with spec\n\tif (style === 'float') return 'cssFloat';\n\tif (style === 'offset') return 'cssOffset';\n\n\t// do not rename custom @properties\n\tif (style.startsWith('--')) return style;\n\n\tconst parts = style.split('-');\n\tif (parts.length === 1) return parts[0];\n\treturn (\n\t\tparts[0] +\n\t\tparts\n\t\t\t.slice(1)\n\t\t\t.map(/** @param {any} word */ (word) => word[0].toUpperCase() + word.slice(1))\n\t\t\t.join('')\n\t);\n}\n\n/**\n * @param {string} css\n * @returns {Keyframe}\n */\nfunction css_to_keyframe(css) {\n\t/** @type {Keyframe} */\n\tconst keyframe = {};\n\tconst parts = css.split(';');\n\tfor (const part of parts) {\n\t\tconst [property, value] = part.split(':');\n\t\tif (!property || value === undefined) break;\n\n\t\tconst formatted_property = css_property_to_camelcase(property.trim());\n\t\tkeyframe[formatted_property] = value.trim();\n\t}\n\treturn keyframe;\n}\n\n/** @param {number} t */\nconst linear = (t) => t;\n\n/** @type {Effect | null} */\nlet animation_effect_override = null;\n\n/** @param {Effect | null} v */\nexport function set_animation_effect_override(v) {\n\tanimation_effect_override = v;\n}\n\n/**\n * Called inside keyed `{#each ...}` blocks (as `$.animation(...)`). This creates an animation manager\n * and attaches it to the block, so that moves can be animated following reconciliation.\n * @template P\n * @param {Element} element\n * @param {() => AnimateFn<P | undefined>} get_fn\n * @param {(() => P) | null} get_params\n */\nexport function animation(element, get_fn, get_params) {\n\tvar effect = animation_effect_override ?? /** @type {Effect} */ (active_effect);\n\tvar nodes = /** @type {EffectNodes} */ (effect.nodes);\n\n\t/** @type {DOMRect} */\n\tvar from;\n\n\t/** @type {DOMRect} */\n\tvar to;\n\n\t/** @type {Animation | undefined} */\n\tvar animation;\n\n\t/** @type {null | { position: string, width: string, height: string, transform: string }} */\n\tvar original_styles = null;\n\n\tnodes.a ??= {\n\t\telement,\n\t\tmeasure() {\n\t\t\tfrom = this.element.getBoundingClientRect();\n\t\t},\n\t\tapply() {\n\t\t\tanimation?.abort();\n\n\t\t\tto = this.element.getBoundingClientRect();\n\n\t\t\tif (\n\t\t\t\tfrom.left !== to.left ||\n\t\t\t\tfrom.right !== to.right ||\n\t\t\t\tfrom.top !== to.top ||\n\t\t\t\tfrom.bottom !== to.bottom\n\t\t\t) {\n\t\t\t\tconst options = get_fn()(this.element, { from, to }, get_params?.());\n\n\t\t\t\tanimation = animate(this.element, options, undefined, 1, () => {\n\t\t\t\t\tanimation?.abort();\n\t\t\t\t\tanimation = undefined;\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tfix() {\n\t\t\t// If an animation is already running, transforming the element is likely to fail,\n\t\t\t// because the styles applied by the animation take precedence. In the case of crossfade,\n\t\t\t// that means the `translate(...)` of the crossfade transition overrules the `translate(...)`\n\t\t\t// we would apply below, leading to the element jumping somewhere to the top left.\n\t\t\tif (element.getAnimations().length) return;\n\n\t\t\t// It's important to destructure these to get fixed values - the object itself has getters,\n\t\t\t// and changing the style to 'absolute' can for example influence the width.\n\t\t\tvar { position, width, height } = getComputedStyle(element);\n\n\t\t\tif (position !== 'absolute' && position !== 'fixed') {\n\t\t\t\tvar style = /** @type {HTMLElement | SVGElement} */ (element).style;\n\n\t\t\t\toriginal_styles = {\n\t\t\t\t\tposition: style.position,\n\t\t\t\t\twidth: style.width,\n\t\t\t\t\theight: style.height,\n\t\t\t\t\ttransform: style.transform\n\t\t\t\t};\n\n\t\t\t\tstyle.position = 'absolute';\n\t\t\t\tstyle.width = width;\n\t\t\t\tstyle.height = height;\n\t\t\t\tvar to = element.getBoundingClientRect();\n\n\t\t\t\tif (from.left !== to.left || from.top !== to.top) {\n\t\t\t\t\tvar transform = `translate(${from.left - to.left}px, ${from.top - to.top}px)`;\n\t\t\t\t\tstyle.transform = style.transform ? `${style.transform} ${transform}` : transform;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tunfix() {\n\t\t\tif (original_styles) {\n\t\t\t\tvar style = /** @type {HTMLElement | SVGElement} */ (element).style;\n\n\t\t\t\tstyle.position = original_styles.position;\n\t\t\t\tstyle.width = original_styles.width;\n\t\t\t\tstyle.height = original_styles.height;\n\t\t\t\tstyle.transform = original_styles.transform;\n\t\t\t}\n\t\t}\n\t};\n\n\t// in the case of a `<svelte:element>`, it's possible for `$.animation(...)` to be called\n\t// when an animation manager already exists, if the tag changes. in that case, we need to\n\t// swap out the element rather than creating a new manager, in case it happened at the same\n\t// moment as a reconciliation\n\tnodes.a.element = element;\n}\n\n/**\n * Called inside block effects as `$.transition(...)`. This creates a transition manager and\n * attaches it to the current effect — later, inside `pause_effect` and `resume_effect`, we\n * use this to create `intro` and `outro` transitions.\n * @template P\n * @param {number} flags\n * @param {HTMLElement} element\n * @param {() => TransitionFn<P | undefined>} get_fn\n * @param {(() => P) | null} get_params\n * @returns {void}\n */\nexport function transition(flags, element, get_fn, get_params) {\n\tvar is_intro = (flags & TRANSITION_IN) !== 0;\n\tvar is_outro = (flags & TRANSITION_OUT) !== 0;\n\tvar is_both = is_intro && is_outro;\n\tvar is_global = (flags & TRANSITION_GLOBAL) !== 0;\n\n\t/** @type {'in' | 'out' | 'both'} */\n\tvar direction = is_both ? 'both' : is_intro ? 'in' : 'out';\n\n\t/** @type {AnimationConfig | ((opts: { direction: 'in' | 'out' }) => AnimationConfig) | undefined} */\n\tvar current_options;\n\n\tvar inert = element.inert;\n\n\t/**\n\t * The default overflow style, stashed so we can revert changes during the transition\n\t * that are necessary to work around a Safari <18 bug\n\t * TODO 6.0 remove this, if older versions of Safari have died out enough\n\t */\n\tvar overflow = element.style.overflow;\n\n\t/** @type {Animation | undefined} */\n\tvar intro;\n\n\t/** @type {Animation | undefined} */\n\tvar outro;\n\n\tfunction get_options() {\n\t\treturn without_reactive_context(() => {\n\t\t\t// If a transition is still ongoing, we use the existing options rather than generating\n\t\t\t// new ones. This ensures that reversible transitions reverse smoothly, rather than\n\t\t\t// jumping to a new spot because (for example) a different `duration` was used\n\t\t\treturn (current_options ??= get_fn()(element, get_params?.() ?? /** @type {P} */ ({}), {\n\t\t\t\tdirection\n\t\t\t}));\n\t\t});\n\t}\n\n\t/** @type {TransitionManager} */\n\tvar transition = {\n\t\tis_global,\n\t\tin() {\n\t\t\telement.inert = inert;\n\n\t\t\tif (!is_intro) {\n\t\t\t\toutro?.abort();\n\t\t\t\toutro?.reset?.();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!is_outro) {\n\t\t\t\t// if we intro then outro then intro again, we want to abort the first intro,\n\t\t\t\t// if it's not a bidirectional transition\n\t\t\t\tintro?.abort();\n\t\t\t}\n\n\t\t\tintro = animate(element, get_options(), outro, 1, () => {\n\t\t\t\tdispatch_event(element, 'introend');\n\n\t\t\t\t// Ensure we cancel the animation to prevent leaking\n\t\t\t\tintro?.abort();\n\t\t\t\tintro = current_options = undefined;\n\n\t\t\t\telement.style.overflow = overflow;\n\t\t\t});\n\t\t},\n\t\tout(fn) {\n\t\t\tif (!is_outro) {\n\t\t\t\tfn?.();\n\t\t\t\tcurrent_options = undefined;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement.inert = true;\n\n\t\t\toutro = animate(element, get_options(), intro, 0, () => {\n\t\t\t\tdispatch_event(element, 'outroend');\n\t\t\t\tfn?.();\n\t\t\t});\n\t\t},\n\t\tstop: () => {\n\t\t\tintro?.abort();\n\t\t\toutro?.abort();\n\t\t}\n\t};\n\n\tvar e = /** @type {Effect & { nodes: EffectNodes }} */ (active_effect);\n\n\t(e.nodes.t ??= []).push(transition);\n\n\t// if this is a local transition, we only want to run it if the parent (branch) effect's\n\t// parent (block) effect is where the state change happened. we can determine that by\n\t// looking at whether the block effect is currently initializing\n\tif (is_intro && should_intro) {\n\t\tvar run = is_global;\n\n\t\tif (!run) {\n\t\t\tvar block = /** @type {Effect | null} */ (e.parent);\n\n\t\t\t// skip over transparent blocks (e.g. snippets, else-if blocks)\n\t\t\twhile (block && (block.f & EFFECT_TRANSPARENT) !== 0) {\n\t\t\t\twhile ((block = block.parent)) {\n\t\t\t\t\tif ((block.f & BLOCK_EFFECT) !== 0) break;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\trun = !block || (block.f & REACTION_RAN) !== 0;\n\t\t}\n\n\t\tif (run) {\n\t\t\teffect(() => {\n\t\t\t\tuntrack(() => transition.in());\n\t\t\t});\n\t\t}\n\t}\n}\n\n/**\n * Animates an element, according to the provided configuration\n * @param {Element} element\n * @param {AnimationConfig | ((opts: { direction: 'in' | 'out' }) => AnimationConfig)} options\n * @param {Animation | undefined} counterpart The corresponding intro/outro to this outro/intro\n * @param {number} t2 The target `t` value — `1` for intro, `0` for outro\n * @param {(() => void)} on_finish Called after successfully completing the animation\n * @returns {Animation}\n */\nfunction animate(element, options, counterpart, t2, on_finish) {\n\tvar is_intro = t2 === 1;\n\n\tif (is_function(options)) {\n\t\t// In the case of a deferred transition (such as `crossfade`), `option` will be\n\t\t// a function rather than an `AnimationConfig`. We need to call this function\n\t\t// once the DOM has been updated...\n\t\t/** @type {Animation} */\n\t\tvar a;\n\t\tvar aborted = false;\n\n\t\tqueue_micro_task(() => {\n\t\t\tif (aborted) return;\n\t\t\tvar o = options({ direction: is_intro ? 'in' : 'out' });\n\t\t\ta = animate(element, o, counterpart, t2, on_finish);\n\t\t});\n\n\t\t// ...but we want to do so without using `async`/`await` everywhere, so\n\t\t// we return a facade that allows everything to remain synchronous\n\t\treturn {\n\t\t\tabort: () => {\n\t\t\t\taborted = true;\n\t\t\t\ta?.abort();\n\t\t\t},\n\t\t\tdeactivate: () => a.deactivate(),\n\t\t\treset: () => a.reset(),\n\t\t\tt: () => a.t()\n\t\t};\n\t}\n\n\tcounterpart?.deactivate();\n\n\tif (!options?.duration && !options?.delay) {\n\t\tdispatch_event(element, is_intro ? 'introstart' : 'outrostart');\n\t\ton_finish();\n\n\t\treturn {\n\t\t\tabort: noop,\n\t\t\tdeactivate: noop,\n\t\t\treset: noop,\n\t\t\tt: () => t2\n\t\t};\n\t}\n\n\tconst { delay = 0, css, tick, easing = linear } = options;\n\n\tvar keyframes = [];\n\n\tif (is_intro && counterpart === undefined) {\n\t\tif (tick) {\n\t\t\ttick(0, 1); // TODO put in nested effect, to avoid interleaved reads/writes?\n\t\t}\n\n\t\tif (css) {\n\t\t\tvar styles = css_to_keyframe(css(0, 1));\n\t\t\tkeyframes.push(styles, styles);\n\t\t}\n\t}\n\n\tvar get_t = () => 1 - t2;\n\n\t// create a dummy animation that lasts as long as the delay (but with whatever devtools\n\t// multiplier is in effect). in the common case that it is `0`, we keep it anyway so that\n\t// the CSS keyframes aren't created until the DOM is updated\n\t//\n\t// fill forwards to prevent the element from rendering without styles applied\n\t// see https://github.com/sveltejs/svelte/issues/14732\n\tvar animation = element.animate(keyframes, { duration: delay, fill: 'forwards' });\n\n\tanimation.onfinish = () => {\n\t\t// remove dummy animation from the stack to prevent conflict with main animation\n\t\tanimation.cancel();\n\n\t\tdispatch_event(element, is_intro ? 'introstart' : 'outrostart');\n\n\t\t// for bidirectional transitions, we start from the current position,\n\t\t// rather than doing a full intro/outro\n\t\tvar t1 = counterpart?.t() ?? 1 - t2;\n\t\tcounterpart?.abort();\n\n\t\tvar delta = t2 - t1;\n\t\tvar duration = /** @type {number} */ (options.duration) * Math.abs(delta);\n\t\tvar keyframes = [];\n\n\t\tif (duration > 0) {\n\t\t\t/**\n\t\t\t * Whether or not the CSS includes `overflow: hidden`, in which case we need to\n\t\t\t * add it as an inline style to work around a Safari <18 bug\n\t\t\t * TODO 6.0 remove this, if possible\n\t\t\t */\n\t\t\tvar needs_overflow_hidden = false;\n\n\t\t\tif (css) {\n\t\t\t\tvar n = Math.ceil(duration / (1000 / 60)); // `n` must be an integer, or we risk missing the `t2` value\n\n\t\t\t\tfor (var i = 0; i <= n; i += 1) {\n\t\t\t\t\tvar t = t1 + delta * easing(i / n);\n\t\t\t\t\tvar styles = css_to_keyframe(css(t, 1 - t));\n\t\t\t\t\tkeyframes.push(styles);\n\n\t\t\t\t\tneeds_overflow_hidden ||= styles.overflow === 'hidden';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (needs_overflow_hidden) {\n\t\t\t\t/** @type {HTMLElement} */ (element).style.overflow = 'hidden';\n\t\t\t}\n\n\t\t\tget_t = () => {\n\t\t\t\tvar time = /** @type {number} */ (\n\t\t\t\t\t/** @type {globalThis.Animation} */ (animation).currentTime\n\t\t\t\t);\n\n\t\t\t\treturn t1 + delta * easing(time / duration);\n\t\t\t};\n\n\t\t\tif (tick) {\n\t\t\t\tloop(() => {\n\t\t\t\t\tif (animation.playState !== 'running') return false;\n\n\t\t\t\t\tvar t = get_t();\n\t\t\t\t\ttick(t, 1 - t);\n\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tanimation = element.animate(keyframes, { duration, fill: 'forwards' });\n\n\t\tanimation.onfinish = () => {\n\t\t\tget_t = () => t2;\n\t\t\ttick?.(t2, 1 - t2);\n\t\t\ton_finish();\n\t\t};\n\t};\n\n\treturn {\n\t\tabort: () => {\n\t\t\tif (animation) {\n\t\t\t\tanimation.cancel();\n\t\t\t\t// This prevents memory leaks in Chromium\n\t\t\t\tanimation.effect = null;\n\t\t\t\t// This prevents onfinish to be launched after cancel(),\n\t\t\t\t// which can happen in some rare cases\n\t\t\t\t// see https://github.com/sveltejs/svelte/issues/13681\n\t\t\t\tanimation.onfinish = noop;\n\t\t\t}\n\t\t},\n\t\tdeactivate: () => {\n\t\t\ton_finish = noop;\n\t\t},\n\t\treset: () => {\n\t\t\tif (t2 === 0) {\n\t\t\t\ttick?.(1, 0);\n\t\t\t}\n\t\t},\n\t\tt: () => get_t()\n\t};\n}\n", "/** @import { Effect, EffectNodes, 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_element, create_text, get_first_child } from '../operations.js';\nimport { block, teardown } from '../../reactivity/effects.js';\nimport { set_should_intro } from '../../render.js';\nimport { active_effect } from '../../runtime.js';\nimport { component_context, dev_stack } from '../../context.js';\nimport { DEV } from 'esm-env';\nimport { EFFECT_TRANSPARENT, ELEMENT_NODE } from '#client/constants';\nimport { assign_nodes } from '../template.js';\nimport { is_raw_text_element } from '../../../../utils.js';\nimport { BranchManager } from './branches.js';\nimport { set_animation_effect_override } from '../elements/transitions.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 {null | Element} */\n\tvar element = null;\n\n\tif (hydrating && hydrate_node.nodeType === ELEMENT_NODE) {\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/**\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 parent_effect = /** @type {Effect} */ (active_effect);\n\n\tvar branches = new BranchManager(anchor, false);\n\n\tblock(() => {\n\t\tconst next_tag = get_tag() || null;\n\t\tvar ns = get_namespace\n\t\t\t? get_namespace()\n\t\t\t: is_svg || next_tag === 'svg'\n\t\t\t\t? NAMESPACE_SVG\n\t\t\t\t: undefined;\n\n\t\tif (next_tag === null) {\n\t\t\tbranches.ensure(null, null);\n\t\t\tset_should_intro(true);\n\t\t\treturn;\n\t\t}\n\n\t\tbranches.ensure(next_tag, (anchor) => {\n\t\t\tif (next_tag) {\n\t\t\t\telement = hydrating ? /** @type {Element} */ (element) : create_element(next_tag, ns);\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\tparent: dev_stack,\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 = hydrating\n\t\t\t\t\t\t? get_first_child(element)\n\t\t\t\t\t\t: element.appendChild(create_text());\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\tset_animation_effect_override(parent_effect);\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\n\t\t\t\t\tset_animation_effect_override(null);\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 & { nodes: EffectNodes }} */ (active_effect).nodes.end = element;\n\n\t\t\t\tanchor.before(element);\n\t\t\t}\n\n\t\t\tif (hydrating) {\n\t\t\t\tset_hydrate_node(anchor);\n\t\t\t}\n\t\t});\n\n\t\t// revert to the default state after the effect has been created\n\t\tset_should_intro(true);\n\n\t\treturn () => {\n\t\t\tif (next_tag) {\n\t\t\t\t// if we're in this callback because we're re-running the effect,\n\t\t\t\t// disable intros (unless no element is currently displayed)\n\t\t\t\tset_should_intro(false);\n\t\t\t}\n\t\t};\n\t}, EFFECT_TRANSPARENT);\n\n\tteardown(() => {\n\t\tset_should_intro(true);\n\t});\n\n\tif (was_hydrating) {\n\t\tset_hydrating(true);\n\t\tset_hydrate_node(anchor);\n\t}\n}\n", "/** @import { TemplateNode } from '#client' */\nimport { hydrate_node, hydrating, set_hydrate_node, set_hydrating } from '../hydration.js';\nimport { create_text, get_first_child, get_next_sibling } from '../operations.js';\nimport { block } from '../../reactivity/effects.js';\nimport { COMMENT_NODE, HEAD_EFFECT } from '#client/constants';\n\n/**\n * @param {string} hash\n * @param {(anchor: Node) => void} render_fn\n * @returns {void}\n */\nexport function head(hash, render_fn) {\n\t// The head function may be called after the first hydration pass and ssr comment nodes may still be present,\n\t// therefore we need to skip that when we detect that we're not in hydration mode.\n\tlet previous_hydrate_node = null;\n\tlet was_hydrating = hydrating;\n\n\t/** @type {Comment | Text} */\n\tvar anchor;\n\n\tif (hydrating) {\n\t\tprevious_hydrate_node = hydrate_node;\n\n\t\tvar head_anchor = get_first_child(document.head);\n\n\t\t// There might be multiple head blocks in our app, and they could have been\n\t\t// rendered in an arbitrary order — find one corresponding to this component\n\t\twhile (\n\t\t\thead_anchor !== null &&\n\t\t\t(head_anchor.nodeType !== COMMENT_NODE || /** @type {Comment} */ (head_anchor).data !== hash)\n\t\t) {\n\t\t\thead_anchor = get_next_sibling(head_anchor);\n\t\t}\n\n\t\t// If we can't find an opening hydration marker, skip hydration (this can happen\n\t\t// if a framework rendered body but not head content)\n\t\tif (head_anchor === null) {\n\t\t\tset_hydrating(false);\n\t\t} else {\n\t\t\tvar start = /** @type {TemplateNode} */ (get_next_sibling(head_anchor));\n\t\t\thead_anchor.remove(); // in case this component is repeated\n\n\t\t\tset_hydrate_node(start);\n\t\t}\n\t}\n\n\tif (!hydrating) {\n\t\tanchor = document.head.appendChild(create_text());\n\t}\n\n\ttry {\n\t\tblock(() => render_fn(anchor), HEAD_EFFECT);\n\t} finally {\n\t\tif (was_hydrating) {\n\t\t\tset_hydrating(true);\n\t\t\tset_hydrate_node(/** @type {TemplateNode} */ (previous_hydrate_node));\n\t\t}\n\t}\n}\n", "import { DEV } from 'esm-env';\nimport { register_style } from '../dev/css.js';\nimport { effect } from '../reactivity/effects.js';\nimport { create_element } from './operations.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\teffect(() => {\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 = create_element('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<P>} 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", "/** @import { Effect } from '#client' */\nimport { branch, effect, destroy_effect, managed } from '../../reactivity/effects.js';\n\n// TODO in 6.0 or 7.0, when we remove legacy mode, we can simplify this by\n// getting rid of the block/branch stuff and just letting the effect rip.\n// see https://github.com/sveltejs/svelte/pull/15962\n\n/**\n * @param {Element} node\n * @param {() => (node: Element) => void} get_fn\n */\nexport function attach(node, get_fn) {\n\t/** @type {false | undefined | ((node: Element) => void)} */\n\tvar fn = undefined;\n\n\t/** @type {Effect | null} */\n\tvar e;\n\n\tmanaged(() => {\n\t\tif (fn !== (fn = get_fn())) {\n\t\t\tif (e) {\n\t\t\t\tdestroy_effect(e);\n\t\t\t\te = null;\n\t\t\t}\n\n\t\t\tif (fn) {\n\t\t\t\te = branch(() => {\n\t\t\t\t\teffect(() => /** @type {(node: Element) => void} */ (fn)(node));\n\t\t\t\t});\n\t\t\t}\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';\nimport { has_own_property } from './utils.js';\n\n/**\n * `<div translate={false}>` should be rendered as `<div translate=\"no\">` and _not_\n * `<div translate=\"false\">`, which is equivalent to `<div translate=\"yes\">`. There\n * may be other odd cases that need to be added to this list in future\n * @type {Record<string, Map<any, string>>}\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\t// attribute hidden for values other than \"until-found\" behaves like a boolean attribute\n\tif (name === 'hidden' && value !== 'until-found') {\n\t\tis_boolean = true;\n\t}\n\tif (value == null || (!value && is_boolean)) return '';\n\tconst normalized =\n\t\t(has_own_property.call(replacements, name) && 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\nconst whitespace = [...' \\t\\n\\r\\f\\u00a0\\u000b\\ufeff'];\n\n/**\n * @param {any} value\n * @param {string | null} [hash]\n * @param {Record<string, boolean>} [directives]\n * @returns {string | null}\n */\nexport function to_class(value, hash, directives) {\n\tvar classname = value == null ? '' : '' + value;\n\n\tif (hash) {\n\t\tclassname = classname ? classname + ' ' + hash : hash;\n\t}\n\n\tif (directives) {\n\t\tfor (var key of Object.keys(directives)) {\n\t\t\tif (directives[key]) {\n\t\t\t\tclassname = classname ? classname + ' ' + key : key;\n\t\t\t} else if (classname.length) {\n\t\t\t\tvar len = key.length;\n\t\t\t\tvar a = 0;\n\n\t\t\t\twhile ((a = classname.indexOf(key, a)) >= 0) {\n\t\t\t\t\tvar b = a + len;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t(a === 0 || whitespace.includes(classname[a - 1])) &&\n\t\t\t\t\t\t(b === classname.length || whitespace.includes(classname[b]))\n\t\t\t\t\t) {\n\t\t\t\t\t\tclassname = (a === 0 ? '' : classname.substring(0, a)) + classname.substring(b + 1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ta = b;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn classname === '' ? null : classname;\n}\n\n/**\n *\n * @param {Record<string,any>} styles\n * @param {boolean} important\n */\nfunction append_styles(styles, important = false) {\n\tvar separator = important ? ' !important;' : ';';\n\tvar css = '';\n\n\tfor (var key of Object.keys(styles)) {\n\t\tvar value = styles[key];\n\t\tif (value != null && value !== '') {\n\t\t\tcss += ' ' + key + ': ' + value + separator;\n\t\t}\n\t}\n\n\treturn css;\n}\n\n/**\n * @param {string} name\n * @returns {string}\n */\nfunction to_css_name(name) {\n\tif (name[0] !== '-' || name[1] !== '-') {\n\t\treturn name.toLowerCase();\n\t}\n\treturn name;\n}\n\n/**\n * @param {any} value\n * @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [styles]\n * @returns {string | null}\n */\nexport function to_style(value, styles) {\n\tif (styles) {\n\t\tvar new_style = '';\n\n\t\t/** @type {Record<string,any> | undefined} */\n\t\tvar normal_styles;\n\n\t\t/** @type {Record<string,any> | undefined} */\n\t\tvar important_styles;\n\n\t\tif (Array.isArray(styles)) {\n\t\t\tnormal_styles = styles[0];\n\t\t\timportant_styles = styles[1];\n\t\t} else {\n\t\t\tnormal_styles = styles;\n\t\t}\n\n\t\tif (value) {\n\t\t\tvalue = String(value)\n\t\t\t\t.replaceAll(/\\s*\\/\\*.*?\\*\\/\\s*/g, '')\n\t\t\t\t.trim();\n\n\t\t\t/** @type {boolean | '\"' | \"'\"} */\n\t\t\tvar in_str = false;\n\t\t\tvar in_apo = 0;\n\t\t\tvar in_comment = false;\n\n\t\t\tvar reserved_names = [];\n\n\t\t\tif (normal_styles) {\n\t\t\t\treserved_names.push(...Object.keys(normal_styles).map(to_css_name));\n\t\t\t}\n\t\t\tif (important_styles) {\n\t\t\t\treserved_names.push(...Object.keys(important_styles).map(to_css_name));\n\t\t\t}\n\n\t\t\tvar start_index = 0;\n\t\t\tvar name_index = -1;\n\n\t\t\tconst len = value.length;\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\tvar c = value[i];\n\n\t\t\t\tif (in_comment) {\n\t\t\t\t\tif (c === '/' && value[i - 1] === '*') {\n\t\t\t\t\t\tin_comment = false;\n\t\t\t\t\t}\n\t\t\t\t} else if (in_str) {\n\t\t\t\t\tif (in_str === c) {\n\t\t\t\t\t\tin_str = false;\n\t\t\t\t\t}\n\t\t\t\t} else if (c === '/' && value[i + 1] === '*') {\n\t\t\t\t\tin_comment = true;\n\t\t\t\t} else if (c === '\"' || c === \"'\") {\n\t\t\t\t\tin_str = c;\n\t\t\t\t} else if (c === '(') {\n\t\t\t\t\tin_apo++;\n\t\t\t\t} else if (c === ')') {\n\t\t\t\t\tin_apo--;\n\t\t\t\t}\n\n\t\t\t\tif (!in_comment && in_str === false && in_apo === 0) {\n\t\t\t\t\tif (c === ':' && name_index === -1) {\n\t\t\t\t\t\tname_index = i;\n\t\t\t\t\t} else if (c === ';' || i === len - 1) {\n\t\t\t\t\t\tif (name_index !== -1) {\n\t\t\t\t\t\t\tvar name = to_css_name(value.substring(start_index, name_index).trim());\n\n\t\t\t\t\t\t\tif (!reserved_names.includes(name)) {\n\t\t\t\t\t\t\t\tif (c !== ';') {\n\t\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvar property = value.substring(start_index, i).trim();\n\t\t\t\t\t\t\t\tnew_style += ' ' + property + ';';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart_index = i + 1;\n\t\t\t\t\t\tname_index = -1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (normal_styles) {\n\t\t\tnew_style += append_styles(normal_styles);\n\t\t}\n\n\t\tif (important_styles) {\n\t\t\tnew_style += append_styles(important_styles, true);\n\t\t}\n\n\t\tnew_style = new_style.trim();\n\t\treturn new_style === '' ? null : new_style;\n\t}\n\n\treturn value == null ? null : String(value);\n}\n", "import { to_class } from '../../../shared/attributes.js';\nimport { hydrating } from '../hydration.js';\n\n/**\n * @param {Element} dom\n * @param {boolean | number} is_html\n * @param {string | null} value\n * @param {string} [hash]\n * @param {Record<string, any>} [prev_classes]\n * @param {Record<string, any>} [next_classes]\n * @returns {Record<string, boolean> | undefined}\n */\nexport function set_class(dom, is_html, value, hash, prev_classes, next_classes) {\n\t// @ts-expect-error need to add __className to patched prototype\n\tvar prev = dom.__className;\n\n\tif (\n\t\thydrating ||\n\t\tprev !== value ||\n\t\tprev === undefined // for edge case of `class={undefined}`\n\t) {\n\t\tvar next_class_name = to_class(value, hash, next_classes);\n\n\t\tif (!hydrating || next_class_name !== dom.getAttribute('class')) {\n\t\t\t// Removing the attribute when the value is only an empty string causes\n\t\t\t// performance issues vs simply making the className an empty string. So\n\t\t\t// we should only remove the class if the value is nullish\n\t\t\t// and there no hash/directives :\n\t\t\tif (next_class_name == null) {\n\t\t\t\tdom.removeAttribute('class');\n\t\t\t} else if (is_html) {\n\t\t\t\tdom.className = next_class_name;\n\t\t\t} else {\n\t\t\t\tdom.setAttribute('class', next_class_name);\n\t\t\t}\n\t\t}\n\n\t\t// @ts-expect-error need to add __className to patched prototype\n\t\tdom.__className = value;\n\t} else if (next_classes && prev_classes !== next_classes) {\n\t\tfor (var key in next_classes) {\n\t\t\tvar is_present = !!next_classes[key];\n\n\t\t\tif (prev_classes == null || is_present !== !!prev_classes[key]) {\n\t\t\t\tdom.classList.toggle(key, is_present);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn next_classes;\n}\n", "import { to_style } from '../../../shared/attributes.js';\nimport { hydrating } from '../hydration.js';\n\n/**\n * @param {Element & ElementCSSInlineStyle} dom\n * @param {Record<string, any>} prev\n * @param {Record<string, any>} next\n * @param {string} [priority]\n */\nfunction update_styles(dom, prev = {}, next, priority) {\n\tfor (var key in next) {\n\t\tvar value = next[key];\n\n\t\tif (prev[key] !== value) {\n\t\t\tif (next[key] == null) {\n\t\t\t\tdom.style.removeProperty(key);\n\t\t\t} else {\n\t\t\t\tdom.style.setProperty(key, value, priority);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @param {Element & ElementCSSInlineStyle} dom\n * @param {string | null} value\n * @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [prev_styles]\n * @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [next_styles]\n */\nexport function set_style(dom, value, prev_styles, next_styles) {\n\t// @ts-expect-error\n\tvar prev = dom.__style;\n\n\tif (hydrating || prev !== value) {\n\t\tvar next_style_attr = to_style(value, next_styles);\n\n\t\tif (!hydrating || next_style_attr !== dom.getAttribute('style')) {\n\t\t\tif (next_style_attr == null) {\n\t\t\t\tdom.removeAttribute('style');\n\t\t\t} else {\n\t\t\t\tdom.style.cssText = next_style_attr;\n\t\t\t}\n\t\t}\n\n\t\t// @ts-expect-error\n\t\tdom.__style = value;\n\t} else if (next_styles) {\n\t\tif (Array.isArray(next_styles)) {\n\t\t\tupdate_styles(dom, prev_styles?.[0], next_styles[0]);\n\t\t\tupdate_styles(dom, prev_styles?.[1], next_styles[1], 'important');\n\t\t} else {\n\t\t\tupdate_styles(dom, prev_styles, next_styles);\n\t\t}\n\t}\n\n\treturn next_styles;\n}\n", "import { effect, teardown } from '../../../reactivity/effects.js';\nimport { listen_to_event_and_reset_event } from './shared.js';\nimport { is } from '../../../proxy.js';\nimport { is_array } from '../../../../shared/utils.js';\nimport * as w from '../../../warnings.js';\nimport { Batch, current_batch, previous_batch } from '../../../reactivity/batch.js';\n\n/**\n * Selects the correct option(s) (depending on whether this is a multiple select)\n * @template V\n * @param {HTMLSelectElement} select\n * @param {V} value\n * @param {boolean} mounting\n */\nexport function select_option(select, value, mounting = false) {\n\tif (select.multiple) {\n\t\t// If value is null or undefined, keep the selection as is\n\t\tif (value == undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If not an array, warn and keep the selection as is\n\t\tif (!is_array(value)) {\n\t\t\treturn w.select_multiple_invalid_value();\n\t\t}\n\n\t\t// Otherwise, update the selection\n\t\tfor (var option of select.options) {\n\t\t\toption.selected = value.includes(get_option_value(option));\n\t\t}\n\n\t\treturn;\n\t}\n\n\tfor (option of select.options) {\n\t\tvar option_value = get_option_value(option);\n\t\tif (is(option_value, value)) {\n\t\t\toption.selected = true;\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (!mounting || value !== undefined) {\n\t\tselect.selectedIndex = -1; // no option should be selected\n\t}\n}\n\n/**\n * Selects the correct option(s) if `value` is given,\n * and then sets up a mutation observer to sync the\n * current selection to the dom when it changes. Such\n * changes could for example occur when options are\n * inside an `#each` block.\n * @param {HTMLSelectElement} select\n */\nexport function init_select(select) {\n\tvar observer = new MutationObserver(() => {\n\t\t// @ts-ignore\n\t\tselect_option(select, select.__value);\n\t\t// Deliberately don't update the potential binding value,\n\t\t// the model should be preserved unless explicitly changed\n\t});\n\n\tobserver.observe(select, {\n\t\t// Listen to option element changes\n\t\tchildList: true,\n\t\tsubtree: true, // because of <optgroup>\n\t\t// Listen to option element value attribute changes\n\t\t// (doesn't get notified of select value changes,\n\t\t// because that property is not reflected as an attribute)\n\t\tattributes: true,\n\t\tattributeFilter: ['value']\n\t});\n\n\tteardown(() => {\n\t\tobserver.disconnect();\n\t});\n}\n\n/**\n * @param {HTMLSelectElement} select\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_select_value(select, get, set = get) {\n\tvar batches = new WeakSet();\n\tvar mounting = true;\n\n\tlisten_to_event_and_reset_event(select, 'change', (is_reset) => {\n\t\tvar query = is_reset ? '[selected]' : ':checked';\n\t\t/** @type {unknown} */\n\t\tvar value;\n\n\t\tif (select.multiple) {\n\t\t\tvalue = [].map.call(select.querySelectorAll(query), get_option_value);\n\t\t} else {\n\t\t\t/** @type {HTMLOptionElement | null} */\n\t\t\tvar selected_option =\n\t\t\t\tselect.querySelector(query) ??\n\t\t\t\t// will fall back to first non-disabled option if no option is selected\n\t\t\t\tselect.querySelector('option:not([disabled])');\n\t\t\tvalue = selected_option && get_option_value(selected_option);\n\t\t}\n\n\t\tset(value);\n\n\t\tif (current_batch !== null) {\n\t\t\tbatches.add(current_batch);\n\t\t}\n\t});\n\n\t// Needs to be an effect, not a render_effect, so that in case of each loops the logic runs after the each block has updated\n\teffect(() => {\n\t\tvar value = get();\n\n\t\tif (select === document.activeElement) {\n\t\t\t// we need both, because in non-async mode, render effects run before previous_batch is set\n\t\t\tvar batch = /** @type {Batch} */ (previous_batch ?? current_batch);\n\n\t\t\t// Don't update the <select> if it is focused. We can get here if, for example,\n\t\t\t// an update is deferred because of async work depending on the select:\n\t\t\t//\n\t\t\t// <select bind:value={selected}>...</select>\n\t\t\t// <p>{await find(selected)}</p>\n\t\t\tif (batches.has(batch)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tselect_option(select, value, mounting);\n\n\t\t// Mounting and value undefined -> take selection from dom\n\t\tif (mounting && value === undefined) {\n\t\t\t/** @type {HTMLOptionElement | null} */\n\t\t\tvar selected_option = select.querySelector(':checked');\n\t\t\tif (selected_option !== null) {\n\t\t\t\tvalue = get_option_value(selected_option);\n\t\t\t\tset(value);\n\t\t\t}\n\t\t}\n\n\t\t// @ts-ignore\n\t\tselect.__value = value;\n\t\tmounting = false;\n\t});\n\n\tinit_select(select);\n}\n\n/** @param {HTMLOptionElement} option */\nfunction get_option_value(option) {\n\t// __value only exists if the <option> has a value attribute\n\tif ('__value' in option) {\n\t\treturn option.__value;\n\t} else {\n\t\treturn option.value;\n\t}\n}\n", "/** @import { Blocker, Effect } from '#client' */\nimport { DEV } from 'esm-env';\nimport { hydrating, set_hydrating } from '../hydration.js';\nimport { get_descriptors, get_prototype_of } from '../../../shared/utils.js';\nimport { create_event, delegate, delegated, event, event_symbol } from './events.js';\nimport { add_form_reset_listener, autofocus } from './misc.js';\nimport * as w from '../../warnings.js';\nimport { IS_XHTML, LOADING_ATTR_SYMBOL } from '#client/constants';\nimport { queue_micro_task } from '../task.js';\nimport { is_capture_event, can_delegate_event, normalize_attribute } from '../../../../utils.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tget,\n\tset_active_effect,\n\tset_active_reaction\n} from '../../runtime.js';\nimport { attach } from './attachments.js';\nimport { clsx } from '../../../shared/attributes.js';\nimport { set_class } from './class.js';\nimport { set_style } from './style.js';\nimport { ATTACHMENT_KEY, NAMESPACE_HTML, UNINITIALIZED } from '../../../../constants.js';\nimport { branch, destroy_effect, effect, managed } from '../../reactivity/effects.js';\nimport { init_select, select_option } from './bindings/select.js';\nimport { flatten } from '../../reactivity/async.js';\n\nexport const CLASS = Symbol('class');\nexport const STYLE = Symbol('style');\n\nconst IS_CUSTOM_ELEMENT = Symbol('is custom element');\nconst IS_HTML = Symbol('is html');\n\nconst LINK_TAG = IS_XHTML ? 'link' : 'LINK';\nconst INPUT_TAG = IS_XHTML ? 'input' : 'INPUT';\nconst OPTION_TAG = IS_XHTML ? 'option' : 'OPTION';\nconst SELECT_TAG = IS_XHTML ? 'select' : 'SELECT';\nconst PROGRESS_TAG = IS_XHTML ? 'progress' : 'PROGRESS';\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_micro_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\tvar attributes = get_attributes(element);\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_TAG))\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\tvar attributes = get_attributes(element);\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\tvar attributes = get_attributes(element);\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_TAG)\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 === '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\t// If we're hydrating but the custom element is from Svelte, and it already scaffolded,\n\t// then it might run block logic in hydration mode, which we have to prevent.\n\tlet was_hydrating = hydrating;\n\tif (hydrating) {\n\t\tset_hydrating(false);\n\t}\n\n\tset_active_reaction(null);\n\tset_active_effect(null);\n\n\ttry {\n\t\tif (\n\t\t\t// `style` should use `set_attribute` rather than the setter\n\t\t\tprop !== 'style' &&\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\t(setters_cache.has(node.getAttribute('is') || 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.getAttribute('is') || node.nodeName.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\tif (was_hydrating) {\n\t\t\tset_hydrating(true);\n\t\t}\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<string | symbol, any> | undefined} prev\n * @param {Record<string | symbol, any>} next New attributes - this function mutates this object\n * @param {string} [css_hash]\n * @param {boolean} [should_remove_defaults]\n * @param {boolean} [skip_warning]\n * @returns {Record<string, any>}\n */\nfunction set_attributes(\n\telement,\n\tprev,\n\tnext,\n\tcss_hash,\n\tshould_remove_defaults = false,\n\tskip_warning = false\n) {\n\tif (hydrating && should_remove_defaults && element.nodeName === INPUT_TAG) {\n\t\tvar input = /** @type {HTMLInputElement} */ (element);\n\t\tvar attribute = input.type === 'checkbox' ? 'defaultChecked' : 'defaultValue';\n\n\t\tif (!(attribute in next)) {\n\t\t\tremove_input_defaults(input);\n\t\t}\n\t}\n\n\tvar attributes = get_attributes(element);\n\n\tvar is_custom_element = attributes[IS_CUSTOM_ELEMENT];\n\tvar preserve_attribute_case = !attributes[IS_HTML];\n\n\t// If we're hydrating but the custom element is from Svelte, and it already scaffolded,\n\t// then it might run block logic in hydration mode, which we have to prevent.\n\tlet is_hydrating_custom_element = hydrating && is_custom_element;\n\tif (is_hydrating_custom_element) {\n\t\tset_hydrating(false);\n\t}\n\n\tvar current = prev || {};\n\tvar is_option_element = element.nodeName === OPTION_TAG;\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} else if (css_hash || next[CLASS]) {\n\t\tnext.class = null; /* force call to set_class() */\n\t}\n\n\tif (next[STYLE]) {\n\t\tnext.style ??= null; /* force call to set_style() */\n\t}\n\n\tvar setters = get_setters(element);\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 <option> element is a special case because removing the value attribute means\n\t\t\t// the value is set to the text content of the option element, and setting the value\n\t\t\t// to null or undefined means the value is set to the string \"null\" or \"undefined\".\n\t\t\t// To align with how we handle this case in non-spread-scenarios, this logic is needed.\n\t\t\t// There's a super-edge-case bug here that is left in in favor of smaller code size:\n\t\t\t// Because of the \"set missing props to null\" logic above, we can't differentiate\n\t\t\t// between a missing value and an explicitly set value of null or undefined. That means\n\t\t\t// that once set, the value attribute of an <option> element can't be removed. This is\n\t\t\t// a very rare edge case, and removing the attribute altogether isn't possible either\n\t\t\t// for the <option value={undefined}> case, so we're not losing any functionality here.\n\t\t\t// @ts-ignore\n\t\t\telement.value = element.__value = '';\n\t\t\tcurrent[key] = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (key === 'class') {\n\t\t\tvar is_html = element.namespaceURI === 'http://www.w3.org/1999/xhtml';\n\t\t\tset_class(element, is_html, value, css_hash, prev?.[CLASS], next[CLASS]);\n\t\t\tcurrent[key] = value;\n\t\t\tcurrent[CLASS] = next[CLASS];\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (key === 'style') {\n\t\t\tset_style(element, value, prev?.[STYLE], next[STYLE]);\n\t\t\tcurrent[key] = value;\n\t\t\tcurrent[STYLE] = next[STYLE];\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar prev_value = current[key];\n\n\t\t// Skip if value is unchanged, unless it's `undefined` and the element still has the attribute\n\t\tif (value === prev_value && !(value === undefined && element.hasAttribute(key))) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tcurrent[key] = value;\n\n\t\tvar prefix = key[0] + key[1]; // this is faster than key.slice(0, 2)\n\t\tif (prefix === '$$') continue;\n\n\t\tif (prefix === 'on') {\n\t\t\t/** @type {{ capture?: true }} */\n\t\t\tconst opts = {};\n\t\t\tconst event_handle_key = '$$' + key;\n\t\t\tlet event_name = key.slice(2);\n\t\t\tvar is_delegated = can_delegate_event(event_name);\n\n\t\t\tif (is_capture_event(event_name)) {\n\t\t\t\tevent_name = event_name.slice(0, -7);\n\t\t\t\topts.capture = true;\n\t\t\t}\n\n\t\t\tif (!is_delegated && prev_value) {\n\t\t\t\t// Listening to same event but different handler -> our handle function below takes care of this\n\t\t\t\t// If we were to remove and add listeners in this case, it could happen that the event is \"swallowed\"\n\t\t\t\t// (the browser seems to not know yet that a new one exists now) and doesn't reach the handler\n\t\t\t\t// https://github.com/sveltejs/svelte/issues/11903\n\t\t\t\tif (value != null) continue;\n\n\t\t\t\telement.removeEventListener(event_name, current[event_handle_key], opts);\n\t\t\t\tcurrent[event_handle_key] = null;\n\t\t\t}\n\n\t\t\tif (is_delegated) {\n\t\t\t\tdelegated(event_name, element, value);\n\t\t\t\tdelegate([event_name]);\n\t\t\t} else if (value != null) {\n\t\t\t\t/**\n\t\t\t\t * @this {any}\n\t\t\t\t * @param {Event} evt\n\t\t\t\t */\n\t\t\t\tfunction handle(evt) {\n\t\t\t\t\tcurrent[key].call(this, evt);\n\t\t\t\t}\n\n\t\t\t\tcurrent[event_handle_key] = create_event(event_name, element, handle, opts);\n\t\t\t}\n\t\t} else if (key === 'style') {\n\t\t\t// avoid using the setter\n\t\t\tset_attribute(element, key, value);\n\t\t} else if (key === 'autofocus') {\n\t\t\tautofocus(/** @type {HTMLElement} */ (element), Boolean(value));\n\t\t} else if (!is_custom_element && (key === '__value' || (key === 'value' && value != null))) {\n\t\t\t// @ts-ignore We're not running this for custom elements because __value is actually\n\t\t\t// how Lit stores the current value on the element, and messing with that would break things.\n\t\t\telement.value = element.__value = value;\n\t\t} else if (key === 'selected' && is_option_element) {\n\t\t\tset_selected(/** @type {HTMLOptionElement} */ (element), value);\n\t\t} else {\n\t\t\tvar name = key;\n\t\t\tif (!preserve_attribute_case) {\n\t\t\t\tname = normalize_attribute(name);\n\t\t\t}\n\n\t\t\tvar is_default = name === 'defaultValue' || name === 'defaultChecked';\n\n\t\t\tif (value == null && !is_custom_element && !is_default) {\n\t\t\t\tattributes[key] = null;\n\n\t\t\t\tif (name === 'value' || name === 'checked') {\n\t\t\t\t\t// removing value/checked also removes defaultValue/defaultChecked — preserve\n\t\t\t\t\tlet input = /** @type {HTMLInputElement} */ (element);\n\t\t\t\t\tconst use_default = prev === undefined;\n\t\t\t\t\tif (name === 'value') {\n\t\t\t\t\t\tlet previous = input.defaultValue;\n\t\t\t\t\t\tinput.removeAttribute(name);\n\t\t\t\t\t\tinput.defaultValue = previous;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tinput.value = input.__value = use_default ? previous : null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet previous = input.defaultChecked;\n\t\t\t\t\t\tinput.removeAttribute(name);\n\t\t\t\t\t\tinput.defaultChecked = previous;\n\t\t\t\t\t\tinput.checked = use_default ? previous : false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\telement.removeAttribute(key);\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tis_default ||\n\t\t\t\t(setters.includes(name) && (is_custom_element || typeof value !== 'string'))\n\t\t\t) {\n\t\t\t\t// @ts-ignore\n\t\t\t\telement[name] = value;\n\t\t\t\t// remove it from attributes's cache\n\t\t\t\tif (name in attributes) attributes[name] = UNINITIALIZED;\n\t\t\t} else if (typeof value !== 'function') {\n\t\t\t\tset_attribute(element, name, value, skip_warning);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (is_hydrating_custom_element) {\n\t\tset_hydrating(true);\n\t}\n\n\treturn current;\n}\n\n/**\n * @param {Element & ElementCSSInlineStyle} element\n * @param {(...expressions: any) => Record<string | symbol, any>} fn\n * @param {Array<() => any>} sync\n * @param {Array<() => Promise<any>>} async\n * @param {Blocker[]} blockers\n * @param {string} [css_hash]\n * @param {boolean} [should_remove_defaults]\n * @param {boolean} [skip_warning]\n */\nexport function attribute_effect(\n\telement,\n\tfn,\n\tsync = [],\n\tasync = [],\n\tblockers = [],\n\tcss_hash,\n\tshould_remove_defaults = false,\n\tskip_warning = false\n) {\n\tflatten(blockers, sync, async, (values) => {\n\t\t/** @type {Record<string | symbol, any> | undefined} */\n\t\tvar prev = undefined;\n\n\t\t/** @type {Record<symbol, Effect>} */\n\t\tvar effects = {};\n\n\t\tvar is_select = element.nodeName === SELECT_TAG;\n\t\tvar inited = false;\n\n\t\tmanaged(() => {\n\t\t\tvar next = fn(...values.map(get));\n\t\t\t/** @type {Record<string | symbol, any>} */\n\t\t\tvar current = set_attributes(\n\t\t\t\telement,\n\t\t\t\tprev,\n\t\t\t\tnext,\n\t\t\t\tcss_hash,\n\t\t\t\tshould_remove_defaults,\n\t\t\t\tskip_warning\n\t\t\t);\n\n\t\t\tif (inited && is_select && 'value' in next) {\n\t\t\t\tselect_option(/** @type {HTMLSelectElement} */ (element), next.value);\n\t\t\t}\n\n\t\t\tfor (let symbol of Object.getOwnPropertySymbols(effects)) {\n\t\t\t\tif (!next[symbol]) destroy_effect(effects[symbol]);\n\t\t\t}\n\n\t\t\tfor (let symbol of Object.getOwnPropertySymbols(next)) {\n\t\t\t\tvar n = next[symbol];\n\n\t\t\t\tif (symbol.description === ATTACHMENT_KEY && (!prev || n !== prev[symbol])) {\n\t\t\t\t\tif (effects[symbol]) destroy_effect(effects[symbol]);\n\t\t\t\t\teffects[symbol] = branch(() => attach(element, () => n));\n\t\t\t\t}\n\n\t\t\t\tcurrent[symbol] = n;\n\t\t\t}\n\n\t\t\tprev = current;\n\t\t});\n\n\t\tif (is_select) {\n\t\t\tvar select = /** @type {HTMLSelectElement} */ (element);\n\n\t\t\teffect(() => {\n\t\t\t\tselect_option(select, /** @type {Record<string | symbol, any>} */ (prev).value, true);\n\t\t\t\tinit_select(select);\n\t\t\t});\n\t\t}\n\n\t\tinited = true;\n\t});\n}\n\n/**\n *\n * @param {Element} element\n */\nfunction get_attributes(element) {\n\treturn /** @type {Record<string | symbol, unknown>} **/ (\n\t\t// @ts-expect-error\n\t\telement.__attributes ??= {\n\t\t\t[IS_CUSTOM_ELEMENT]: element.nodeName.includes('-'),\n\t\t\t[IS_HTML]: element.namespaceURI === NAMESPACE_HTML\n\t\t}\n\t);\n}\n\n/** @type {Map<string, string[]>} */\nvar setters_cache = new Map();\n\n/** @param {Element} element */\nfunction get_setters(element) {\n\tvar cache_key = element.getAttribute('is') || element.nodeName;\n\tvar setters = setters_cache.get(cache_key);\n\tif (setters) return setters;\n\tsetters_cache.set(cache_key, (setters = []));\n\n\tvar descriptors;\n\tvar proto = element; // In the case of custom elements there might be setters on the instance\n\tvar element_proto = Element.prototype;\n\n\t// Stop at Element, from there on there's only unnecessary setters we're not interested in\n\t// Do not use contructor.name here as that's unreliable in some browser environments\n\twhile (element_proto !== proto) {\n\t\tdescriptors = get_descriptors(proto);\n\n\t\tfor (var key in descriptors) {\n\t\t\tif (descriptors[key].set) {\n\t\t\t\tsetters.push(key);\n\t\t\t}\n\t\t}\n\n\t\tproto = get_prototype_of(proto);\n\t}\n\n\treturn setters;\n}\n\n/**\n * @param {any} element\n * @param {string} attribute\n * @param {string} value\n */\nfunction check_src_in_dev_hydration(element, attribute, value) {\n\tif (!DEV) return;\n\tif (attribute === 'srcset' && srcset_url_equal(element, value)) return;\n\tif (src_url_equal(element.getAttribute(attribute) ?? '', value)) return;\n\n\tw.hydration_attribute_changed(\n\t\tattribute,\n\t\telement.outerHTML.replace(element.innerHTML, element.innerHTML && '...'),\n\t\tString(value)\n\t);\n}\n\n/**\n * @param {string} element_src\n * @param {string} url\n * @returns {boolean}\n */\nfunction src_url_equal(element_src, url) {\n\tif (element_src === url) return true;\n\treturn new URL(element_src, document.baseURI).href === new URL(url, document.baseURI).href;\n}\n\n/** @param {string} srcset */\nfunction split_srcset(srcset) {\n\treturn srcset.split(',').map((src) => src.trim().split(' ').filter(Boolean));\n}\n\n/**\n * @param {HTMLSourceElement | HTMLImageElement} element\n * @param {string} srcset\n * @returns {boolean}\n */\nfunction srcset_url_equal(element, srcset) {\n\tvar element_urls = split_srcset(element.srcset);\n\tvar urls = split_srcset(srcset);\n\n\treturn (\n\t\turls.length === element_urls.length &&\n\t\turls.every(\n\t\t\t([url, width], i) =>\n\t\t\t\twidth === element_urls[i][1] &&\n\t\t\t\t// We need to test both ways because Vite will create an a full URL with\n\t\t\t\t// `new URL(asset, import.meta.url).href` for the client when `base: './'`, and the\n\t\t\t\t// relative URLs inside srcset are not automatically resolved to absolute URLs by\n\t\t\t\t// browsers (in contrast to img.src). This means both SSR and DOM code could\n\t\t\t\t// contain relative or absolute URLs.\n\t\t\t\t(src_url_equal(element_urls[i][0], url) || src_url_equal(url, element_urls[i][0]))\n\t\t)\n\t);\n}\n", "import { hydrating, reset, set_hydrate_node, set_hydrating } from '../hydration.js';\nimport { create_comment, create_element } from '../operations.js';\nimport { attach } from './attachments.js';\n\n/** @type {boolean | null} */\nlet supported = null;\n\n/**\n * Checks if the browser supports rich HTML content inside `<option>` elements.\n * Modern browsers preserve HTML elements inside options, while older browsers\n * strip them during parsing, leaving only text content.\n * @returns {boolean}\n */\nfunction is_supported() {\n\tif (supported === null) {\n\t\tvar select = create_element('select');\n\t\tselect.innerHTML = '<option><span>t</span></option>';\n\t\tsupported = /** @type {Element} */ (select.firstChild)?.firstChild?.nodeType === 1;\n\t}\n\n\treturn supported;\n}\n\n/**\n *\n * @param {HTMLElement} element\n * @param {(new_element: HTMLElement) => void} update_element\n */\nexport function selectedcontent(element, update_element) {\n\t// if it's not supported no need for special logic\n\tif (!is_supported()) return;\n\n\t// we use the attach function directly just to make sure is executed when is mounted to the dom\n\tattach(element, () => () => {\n\t\tconst select = element.closest('select');\n\t\tif (!select) return;\n\n\t\tconst observer = new MutationObserver((entries) => {\n\t\t\tvar selected = false;\n\n\t\t\tfor (const entry of entries) {\n\t\t\t\tif (entry.target === element) {\n\t\t\t\t\t// the `<selectedcontent>` already changed, no need to replace it\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// if the changes doesn't include the selected `<option>` we don't need to do anything\n\t\t\t\tselected ||= !!entry.target.parentElement?.closest('option')?.selected;\n\t\t\t}\n\n\t\t\tif (selected) {\n\t\t\t\t// replace the `<selectedcontent>` with a clone\n\t\t\t\telement.replaceWith((element = /** @type {HTMLElement} */ (element.cloneNode(true))));\n\t\t\t\tupdate_element(element);\n\t\t\t}\n\t\t});\n\n\t\tobserver.observe(select, {\n\t\t\tchildList: true,\n\t\t\tcharacterData: true,\n\t\t\tsubtree: true\n\t\t});\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t});\n}\n\n/**\n * Handles rich HTML content inside `<option>`, `<optgroup>`, or `<select>` elements with browser-specific branching.\n * Modern browsers preserve HTML inside options, while older browsers strip it to text only.\n *\n * @param {HTMLOptionElement | HTMLOptGroupElement | HTMLSelectElement} element The element to process\n * @param {() => void} rich_fn Function to process rich HTML content (modern browsers)\n */\nexport function customizable_select(element, rich_fn) {\n\tvar was_hydrating = hydrating;\n\n\tif (!is_supported()) {\n\t\tset_hydrating(false);\n\t\telement.textContent = '';\n\t\telement.append(create_comment(''));\n\t}\n\n\ttry {\n\t\trich_fn();\n\t} finally {\n\t\tif (was_hydrating) {\n\t\t\tif (hydrating) {\n\t\t\t\treset(element);\n\t\t\t} else {\n\t\t\t\tset_hydrating(true);\n\t\t\t\tset_hydrate_node(element);\n\t\t\t}\n\t\t}\n\t}\n}\n", "import { listen } from './shared.js';\n\n/**\n * @param {(activeElement: Element | null) => void} update\n * @returns {void}\n */\nexport function bind_active_element(update) {\n\tlisten(document, ['focusin', 'focusout'], (event) => {\n\t\tif (event && event.type === 'focusout' && /** @type {FocusEvent} */ (event).relatedTarget) {\n\t\t\t// The tests still pass if we remove this, because of JSDOM limitations, but it is necessary\n\t\t\t// to avoid temporarily resetting to `document.body`\n\t\t\treturn;\n\t\t}\n\n\t\tupdate(document.activeElement);\n\t});\n}\n", "/** @import { Batch } from '../../../reactivity/batch.js' */\nimport { DEV } from 'esm-env';\nimport { render_effect, teardown } from '../../../reactivity/effects.js';\nimport { listen_to_event_and_reset_event } from './shared.js';\nimport * as e from '../../../errors.js';\nimport { is } from '../../../proxy.js';\nimport { queue_micro_task } from '../../task.js';\nimport { hydrating } from '../../hydration.js';\nimport { tick, untrack } from '../../../runtime.js';\nimport { is_runes } from '../../../context.js';\nimport { current_batch, previous_batch } from '../../../reactivity/batch.js';\n\n/**\n * @param {HTMLInputElement} input\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_value(input, get, set = get) {\n\tvar batches = new WeakSet();\n\n\tlisten_to_event_and_reset_event(input, 'input', async (is_reset) => {\n\t\tif (DEV && input.type === 'checkbox') {\n\t\t\t// TODO should this happen in prod too?\n\t\t\te.bind_invalid_checkbox_value();\n\t\t}\n\n\t\t/** @type {any} */\n\t\tvar value = is_reset ? input.defaultValue : input.value;\n\t\tvalue = is_numberlike_input(input) ? to_number(value) : value;\n\t\tset(value);\n\n\t\tif (current_batch !== null) {\n\t\t\tbatches.add(current_batch);\n\t\t}\n\n\t\t// Because `{#each ...}` blocks work by updating sources inside the flush,\n\t\t// we need to wait a tick before checking to see if we should forcibly\n\t\t// update the input and reset the selection state\n\t\tawait tick();\n\n\t\t// Respect any validation in accessors\n\t\tif (value !== (value = get())) {\n\t\t\tvar start = input.selectionStart;\n\t\t\tvar end = input.selectionEnd;\n\t\t\tvar length = input.value.length;\n\n\t\t\t// the value is coerced on assignment\n\t\t\tinput.value = value ?? '';\n\n\t\t\t// Restore selection\n\t\t\tif (end !== null) {\n\t\t\t\tvar new_length = input.value.length;\n\t\t\t\t// If cursor was at end and new input is longer, move cursor to new end\n\t\t\t\tif (start === end && end === length && new_length > length) {\n\t\t\t\t\tinput.selectionStart = new_length;\n\t\t\t\t\tinput.selectionEnd = new_length;\n\t\t\t\t} else {\n\t\t\t\t\tinput.selectionStart = start;\n\t\t\t\t\tinput.selectionEnd = Math.min(end, new_length);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tif (\n\t\t// If we are hydrating and the value has since changed,\n\t\t// then use the updated value from the input instead.\n\t\t(hydrating && input.defaultValue !== input.value) ||\n\t\t// If defaultValue is set, then value == defaultValue\n\t\t// TODO Svelte 6: remove input.value check and set to empty string?\n\t\t(untrack(get) == null && input.value)\n\t) {\n\t\tset(is_numberlike_input(input) ? to_number(input.value) : input.value);\n\n\t\tif (current_batch !== null) {\n\t\t\tbatches.add(current_batch);\n\t\t}\n\t}\n\n\trender_effect(() => {\n\t\tif (DEV && input.type === 'checkbox') {\n\t\t\t// TODO should this happen in prod too?\n\t\t\te.bind_invalid_checkbox_value();\n\t\t}\n\n\t\tvar value = get();\n\n\t\tif (input === document.activeElement) {\n\t\t\t// we need both, because in non-async mode, render effects run before previous_batch is set\n\t\t\tvar batch = /** @type {Batch} */ (previous_batch ?? current_batch);\n\n\t\t\t// Never rewrite the contents of a focused input. We can get here if, for example,\n\t\t\t// an update is deferred because of async work depending on the input:\n\t\t\t//\n\t\t\t// <input bind:value={query}>\n\t\t\t// <p>{await find(query)}</p>\n\t\t\tif (batches.has(batch)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (is_numberlike_input(input) && value === to_number(input.value)) {\n\t\t\t// handles 0 vs 00 case (see https://github.com/sveltejs/svelte/issues/9959)\n\t\t\treturn;\n\t\t}\n\n\t\tif (input.type === 'date' && !value && !input.value) {\n\t\t\t// Handles the case where a temporarily invalid date is set (while typing, for example with a leading 0 for the day)\n\t\t\t// and prevents this state from clearing the other parts of the date input (see https://github.com/sveltejs/svelte/issues/7897)\n\t\t\treturn;\n\t\t}\n\n\t\t// don't set the value of the input if it's the same to allow\n\t\t// minlength to work properly\n\t\tif (value !== input.value) {\n\t\t\t// @ts-expect-error the value is coerced on assignment\n\t\t\tinput.value = value ?? '';\n\t\t}\n\t});\n}\n\n/** @type {Set<HTMLInputElement[]>} */\nconst pending = new Set();\n\n/**\n * @param {HTMLInputElement[]} inputs\n * @param {null | [number]} group_index\n * @param {HTMLInputElement} input\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_group(inputs, group_index, input, get, set = get) {\n\tvar is_checkbox = input.getAttribute('type') === 'checkbox';\n\tvar binding_group = inputs;\n\n\t// needs to be let or related code isn't treeshaken out if it's always false\n\tlet hydration_mismatch = false;\n\n\tif (group_index !== null) {\n\t\tfor (var index of group_index) {\n\t\t\t// @ts-expect-error\n\t\t\tbinding_group = binding_group[index] ??= [];\n\t\t}\n\t}\n\n\tbinding_group.push(input);\n\n\tlisten_to_event_and_reset_event(\n\t\tinput,\n\t\t'change',\n\t\t() => {\n\t\t\t// @ts-ignore\n\t\t\tvar value = input.__value;\n\n\t\t\tif (is_checkbox) {\n\t\t\t\tvalue = get_binding_group_value(binding_group, value, input.checked);\n\t\t\t}\n\n\t\t\tset(value);\n\t\t},\n\t\t// TODO better default value handling\n\t\t() => set(is_checkbox ? [] : null)\n\t);\n\n\trender_effect(() => {\n\t\tvar value = get();\n\n\t\t// If we are hydrating and the value has since changed, then use the update value\n\t\t// from the input instead.\n\t\tif (hydrating && input.defaultChecked !== input.checked) {\n\t\t\thydration_mismatch = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (is_checkbox) {\n\t\t\tvalue = value || [];\n\t\t\t// @ts-ignore\n\t\t\tinput.checked = value.includes(input.__value);\n\t\t} else {\n\t\t\t// @ts-ignore\n\t\t\tinput.checked = is(input.__value, value);\n\t\t}\n\t});\n\n\tteardown(() => {\n\t\tvar index = binding_group.indexOf(input);\n\n\t\tif (index !== -1) {\n\t\t\tbinding_group.splice(index, 1);\n\t\t}\n\t});\n\n\tif (!pending.has(binding_group)) {\n\t\tpending.add(binding_group);\n\n\t\tqueue_micro_task(() => {\n\t\t\t// necessary to maintain binding group order in all insertion scenarios\n\t\t\tbinding_group.sort((a, b) => (a.compareDocumentPosition(b) === 4 ? -1 : 1));\n\t\t\tpending.delete(binding_group);\n\t\t});\n\t}\n\n\tqueue_micro_task(() => {\n\t\tif (hydration_mismatch) {\n\t\t\tvar value;\n\n\t\t\tif (is_checkbox) {\n\t\t\t\tvalue = get_binding_group_value(binding_group, value, input.checked);\n\t\t\t} else {\n\t\t\t\tvar hydration_input = binding_group.find((input) => input.checked);\n\t\t\t\t// @ts-ignore\n\t\t\t\tvalue = hydration_input?.__value;\n\t\t\t}\n\n\t\t\tset(value);\n\t\t}\n\t});\n}\n\n/**\n * @param {HTMLInputElement} input\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_checked(input, get, set = get) {\n\tlisten_to_event_and_reset_event(input, 'change', (is_reset) => {\n\t\tvar value = is_reset ? input.defaultChecked : input.checked;\n\t\tset(value);\n\t});\n\n\tif (\n\t\t// If we are hydrating and the value has since changed,\n\t\t// then use the update value from the input instead.\n\t\t(hydrating && input.defaultChecked !== input.checked) ||\n\t\t// If defaultChecked is set, then checked == defaultChecked\n\t\tuntrack(get) == null\n\t) {\n\t\tset(input.checked);\n\t}\n\n\trender_effect(() => {\n\t\tvar value = get();\n\t\tinput.checked = Boolean(value);\n\t});\n}\n\n/**\n * @template V\n * @param {Array<HTMLInputElement>} group\n * @param {V} __value\n * @param {boolean} checked\n * @returns {V[]}\n */\nfunction get_binding_group_value(group, __value, checked) {\n\t/** @type {Set<V>} */\n\tvar value = new Set();\n\n\tfor (var i = 0; i < group.length; i += 1) {\n\t\tif (group[i].checked) {\n\t\t\t// @ts-ignore\n\t\t\tvalue.add(group[i].__value);\n\t\t}\n\t}\n\n\tif (!checked) {\n\t\tvalue.delete(__value);\n\t}\n\n\treturn Array.from(value);\n}\n\n/**\n * @param {HTMLInputElement} input\n */\nfunction is_numberlike_input(input) {\n\tvar type = input.type;\n\treturn type === 'number' || type === 'range';\n}\n\n/**\n * @param {string} value\n */\nfunction to_number(value) {\n\treturn value === '' ? null : +value;\n}\n\n/**\n * @param {HTMLInputElement} input\n * @param {() => FileList | null} get\n * @param {(value: FileList | null) => void} set\n */\nexport function bind_files(input, get, set = get) {\n\tlisten_to_event_and_reset_event(input, 'change', () => {\n\t\tset(input.files);\n\t});\n\n\tif (\n\t\t// If we are hydrating and the value has since changed,\n\t\t// then use the updated value from the input instead.\n\t\thydrating &&\n\t\tinput.files\n\t) {\n\t\tset(input.files);\n\t}\n\n\trender_effect(() => {\n\t\tinput.files = get();\n\t});\n}\n", "import { render_effect, effect, teardown } from '../../../reactivity/effects.js';\nimport { listen } from './shared.js';\n\n/** @param {TimeRanges} ranges */\nfunction time_ranges_to_array(ranges) {\n\tvar array = [];\n\n\tfor (var i = 0; i < ranges.length; i += 1) {\n\t\tarray.push({ start: ranges.start(i), end: ranges.end(i) });\n\t}\n\n\treturn array;\n}\n\n/**\n * @param {HTMLVideoElement | HTMLAudioElement} media\n * @param {() => number | undefined} get\n * @param {(value: number) => void} set\n * @returns {void}\n */\nexport function bind_current_time(media, get, set = get) {\n\t/** @type {number} */\n\tvar raf_id;\n\t/** @type {number} */\n\tvar value;\n\n\t// Ideally, listening to timeupdate would be enough, but it fires too infrequently for the currentTime\n\t// binding, which is why we use a raf loop, too. We additionally still listen to timeupdate because\n\t// the user could be scrubbing through the video using the native controls when the media is paused.\n\tvar callback = () => {\n\t\tcancelAnimationFrame(raf_id);\n\n\t\tif (!media.paused) {\n\t\t\traf_id = requestAnimationFrame(callback);\n\t\t}\n\n\t\tvar next_value = media.currentTime;\n\t\tif (value !== next_value) {\n\t\t\tset((value = next_value));\n\t\t}\n\t};\n\n\traf_id = requestAnimationFrame(callback);\n\tmedia.addEventListener('timeupdate', callback);\n\n\trender_effect(() => {\n\t\tvar next_value = Number(get());\n\n\t\tif (value !== next_value && !isNaN(/** @type {any} */ (next_value))) {\n\t\t\tmedia.currentTime = value = next_value;\n\t\t}\n\t});\n\n\tteardown(() => {\n\t\tcancelAnimationFrame(raf_id);\n\t\tmedia.removeEventListener('timeupdate', callback);\n\t});\n}\n\n/**\n * @param {HTMLVideoElement | HTMLAudioElement} media\n * @param {(array: Array<{ start: number; end: number }>) => void} set\n */\nexport function bind_buffered(media, set) {\n\t/** @type {{ start: number; end: number; }[]} */\n\tvar current;\n\n\t// `buffered` can update without emitting any event, so we check it on various events.\n\t// By specs, `buffered` always returns a new object, so we have to compare deeply.\n\tlisten(media, ['loadedmetadata', 'progress', 'timeupdate', 'seeking'], () => {\n\t\tvar ranges = media.buffered;\n\n\t\tif (\n\t\t\t!current ||\n\t\t\tcurrent.length !== ranges.length ||\n\t\t\tcurrent.some((range, i) => ranges.start(i) !== range.start || ranges.end(i) !== range.end)\n\t\t) {\n\t\t\tcurrent = time_ranges_to_array(ranges);\n\t\t\tset(current);\n\t\t}\n\t});\n}\n\n/**\n * @param {HTMLVideoElement | HTMLAudioElement} media\n * @param {(array: Array<{ start: number; end: number }>) => void} set\n */\nexport function bind_seekable(media, set) {\n\tlisten(media, ['loadedmetadata'], () => set(time_ranges_to_array(media.seekable)));\n}\n\n/**\n * @param {HTMLVideoElement | HTMLAudioElement} media\n * @param {(array: Array<{ start: number; end: number }>) => void} set\n */\nexport function bind_played(media, set) {\n\tlisten(media, ['timeupdate'], () => set(time_ranges_to_array(media.played)));\n}\n\n/**\n * @param {HTMLVideoElement | HTMLAudioElement} media\n * @param {(seeking: boolean) => void} set\n */\nexport function bind_seeking(media, set) {\n\tlisten(media, ['seeking', 'seeked'], () => set(media.seeking));\n}\n\n/**\n * @param {HTMLVideoElement | HTMLAudioElement} media\n * @param {(seeking: boolean) => void} set\n */\nexport function bind_ended(media, set) {\n\tlisten(media, ['timeupdate', 'ended'], () => set(media.ended));\n}\n\n/**\n * @param {HTMLVideoElement | HTMLAudioElement} media\n * @param {(ready_state: number) => void} set\n */\nexport function bind_ready_state(media, set) {\n\tlisten(\n\t\tmedia,\n\t\t['loadedmetadata', 'loadeddata', 'canplay', 'canplaythrough', 'playing', 'waiting', 'emptied'],\n\t\t() => set(media.readyState)\n\t);\n}\n\n/**\n * @param {HTMLVideoElement | HTMLAudioElement} media\n * @param {() => number | undefined} get\n * @param {(playback_rate: number) => void} set\n */\nexport function bind_playback_rate(media, get, set = get) {\n\t// Needs to happen after element is inserted into the dom (which is guaranteed by using effect),\n\t// else playback will be set back to 1 by the browser\n\teffect(() => {\n\t\tvar value = Number(get());\n\n\t\tif (value !== media.playbackRate && !isNaN(value)) {\n\t\t\tmedia.playbackRate = value;\n\t\t}\n\t});\n\n\t// Start listening to ratechange events after the element is inserted into the dom,\n\t// else playback will be set to 1 by the browser\n\teffect(() => {\n\t\tlisten(media, ['ratechange'], () => {\n\t\t\tset(media.playbackRate);\n\t\t});\n\t});\n}\n\n/**\n * @param {HTMLVideoElement | HTMLAudioElement} media\n * @param {() => boolean | undefined} get\n * @param {(paused: boolean) => void} set\n */\nexport function bind_paused(media, get, set = get) {\n\tvar paused = get();\n\n\tvar update = () => {\n\t\tif (paused !== media.paused) {\n\t\t\tset((paused = media.paused));\n\t\t}\n\t};\n\n\t// If someone switches the src while media is playing, the player will pause.\n\t// Listen to the canplay event to get notified of this situation.\n\tlisten(media, ['play', 'pause', 'canplay'], update, paused == null);\n\n\t// Needs to be an effect to ensure media element is mounted: else, if paused is `false` (i.e. should play right away)\n\t// a \"The play() request was interrupted by a new load request\" error would be thrown because the resource isn't loaded yet.\n\teffect(() => {\n\t\tif ((paused = !!get()) !== media.paused) {\n\t\t\tif (paused) {\n\t\t\t\tmedia.pause();\n\t\t\t} else {\n\t\t\t\tmedia.play().catch((error) => {\n\t\t\t\t\tset((paused = true));\n\t\t\t\t\tthrow error;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}\n\n/**\n * @param {HTMLVideoElement | HTMLAudioElement} media\n * @param {() => number | undefined} get\n * @param {(volume: number) => void} set\n */\nexport function bind_volume(media, get, set = get) {\n\tvar callback = () => {\n\t\tset(media.volume);\n\t};\n\n\tif (get() == null) {\n\t\tcallback();\n\t}\n\n\tlisten(media, ['volumechange'], callback, false);\n\n\trender_effect(() => {\n\t\tvar value = Number(get());\n\n\t\tif (value !== media.volume && !isNaN(value)) {\n\t\t\tmedia.volume = value;\n\t\t}\n\t});\n}\n\n/**\n * @param {HTMLVideoElement | HTMLAudioElement} media\n * @param {() => boolean | undefined} get\n * @param {(muted: boolean) => void} set\n */\nexport function bind_muted(media, get, set = get) {\n\tvar callback = () => {\n\t\tset(media.muted);\n\t};\n\n\tif (get() == null) {\n\t\tcallback();\n\t}\n\n\tlisten(media, ['volumechange'], callback, false);\n\n\trender_effect(() => {\n\t\tvar value = !!get();\n\n\t\tif (media.muted !== value) media.muted = value;\n\t});\n}\n", "import { listen } from './shared.js';\n\n/**\n * @param {(online: boolean) => void} update\n * @returns {void}\n */\nexport function bind_online(update) {\n\tlisten(window, ['online', 'offline'], () => {\n\t\tupdate(navigator.onLine);\n\t});\n}\n", "import { teardown } from '../../../reactivity/effects.js';\nimport { get_descriptor } from '../../../../shared/utils.js';\n\n/**\n * Makes an `export`ed (non-prop) variable available on the `$$props` object\n * so that consumers can do `bind:x` on the component.\n * @template V\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {V} value\n * @returns {void}\n */\nexport function bind_prop(props, prop, value) {\n\tvar desc = get_descriptor(props, prop);\n\n\tif (desc && desc.set) {\n\t\tprops[prop] = value;\n\t\tteardown(() => {\n\t\t\tprops[prop] = null;\n\t\t});\n\t}\n}\n", "import { effect, teardown } from '../../../reactivity/effects.js';\nimport { untrack } from '../../../runtime.js';\n\n/**\n * We create one listener for all elements\n * @see {@link https://groups.google.com/a/chromium.org/g/blink-dev/c/z6ienONUb5A/m/F5-VcUZtBAAJ Explanation}\n */\nclass ResizeObserverSingleton {\n\t/** */\n\t#listeners = new WeakMap();\n\n\t/** @type {ResizeObserver | undefined} */\n\t#observer;\n\n\t/** @type {ResizeObserverOptions} */\n\t#options;\n\n\t/** @static */\n\tstatic entries = new WeakMap();\n\n\t/** @param {ResizeObserverOptions} options */\n\tconstructor(options) {\n\t\tthis.#options = options;\n\t}\n\n\t/**\n\t * @param {Element} element\n\t * @param {(entry: ResizeObserverEntry) => any} listener\n\t */\n\tobserve(element, listener) {\n\t\tvar listeners = this.#listeners.get(element) || new Set();\n\t\tlisteners.add(listener);\n\n\t\tthis.#listeners.set(element, listeners);\n\t\tthis.#getObserver().observe(element, this.#options);\n\n\t\treturn () => {\n\t\t\tvar listeners = this.#listeners.get(element);\n\t\t\tlisteners.delete(listener);\n\n\t\t\tif (listeners.size === 0) {\n\t\t\t\tthis.#listeners.delete(element);\n\t\t\t\t/** @type {ResizeObserver} */ (this.#observer).unobserve(element);\n\t\t\t}\n\t\t};\n\t}\n\n\t#getObserver() {\n\t\treturn (\n\t\t\tthis.#observer ??\n\t\t\t(this.#observer = new ResizeObserver(\n\t\t\t\t/** @param {any} entries */ (entries) => {\n\t\t\t\t\tfor (var entry of entries) {\n\t\t\t\t\t\tResizeObserverSingleton.entries.set(entry.target, entry);\n\t\t\t\t\t\tfor (var listener of this.#listeners.get(entry.target) || []) {\n\t\t\t\t\t\t\tlistener(entry);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t))\n\t\t);\n\t}\n}\n\nvar resize_observer_content_box = /* @__PURE__ */ new ResizeObserverSingleton({\n\tbox: 'content-box'\n});\n\nvar resize_observer_border_box = /* @__PURE__ */ new ResizeObserverSingleton({\n\tbox: 'border-box'\n});\n\nvar resize_observer_device_pixel_content_box = /* @__PURE__ */ new ResizeObserverSingleton({\n\tbox: 'device-pixel-content-box'\n});\n\n/**\n * @param {Element} element\n * @param {'contentRect' | 'contentBoxSize' | 'borderBoxSize' | 'devicePixelContentBoxSize'} type\n * @param {(entry: keyof ResizeObserverEntry) => void} set\n */\nexport function bind_resize_observer(element, type, set) {\n\tvar observer =\n\t\ttype === 'contentRect' || type === 'contentBoxSize'\n\t\t\t? resize_observer_content_box\n\t\t\t: type === 'borderBoxSize'\n\t\t\t\t? resize_observer_border_box\n\t\t\t\t: resize_observer_device_pixel_content_box;\n\n\tvar unsub = observer.observe(element, /** @param {any} entry */ (entry) => set(entry[type]));\n\tteardown(unsub);\n}\n\n/**\n * @param {HTMLElement} element\n * @param {'clientWidth' | 'clientHeight' | 'offsetWidth' | 'offsetHeight'} type\n * @param {(size: number) => void} set\n */\nexport function bind_element_size(element, type, set) {\n\tvar unsub = resize_observer_border_box.observe(element, () => set(element[type]));\n\n\teffect(() => {\n\t\t// The update could contain reads which should be ignored\n\t\tuntrack(() => set(element[type]));\n\t\treturn unsub;\n\t});\n}\n", "import { STATE_SYMBOL } from '#client/constants';\nimport { effect, render_effect } from '../../../reactivity/effects.js';\nimport { untrack } from '../../../runtime.js';\nimport { queue_micro_task } from '../../task.js';\n\n/**\n * @param {any} bound_value\n * @param {Element} element_or_component\n * @returns {boolean}\n */\nfunction is_bound_this(bound_value, element_or_component) {\n\treturn (\n\t\tbound_value === element_or_component || bound_value?.[STATE_SYMBOL] === element_or_component\n\t);\n}\n\n/**\n * @param {any} element_or_component\n * @param {(value: unknown, ...parts: unknown[]) => void} update\n * @param {(...parts: unknown[]) => unknown} get_value\n * @param {() => unknown[]} [get_parts] Set if the this binding is used inside an each block,\n * \t\t\t\t\t\t\t\t\t\treturns all the parts of the each block context that are used in the expression\n * @returns {void}\n */\nexport function bind_this(element_or_component = {}, update, get_value, get_parts) {\n\teffect(() => {\n\t\t/** @type {unknown[]} */\n\t\tvar old_parts;\n\n\t\t/** @type {unknown[]} */\n\t\tvar parts;\n\n\t\trender_effect(() => {\n\t\t\told_parts = parts;\n\t\t\t// We only track changes to the parts, not the value itself to avoid unnecessary reruns.\n\t\t\tparts = get_parts?.() || [];\n\n\t\t\tuntrack(() => {\n\t\t\t\tif (element_or_component !== get_value(...parts)) {\n\t\t\t\t\tupdate(element_or_component, ...parts);\n\t\t\t\t\t// If this is an effect rerun (cause: each block context changes), then nullify the binding at\n\t\t\t\t\t// the previous position if it isn't already taken over by a different effect.\n\t\t\t\t\tif (old_parts && is_bound_this(get_value(...old_parts), element_or_component)) {\n\t\t\t\t\t\tupdate(null, ...old_parts);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\treturn () => {\n\t\t\t// We cannot use effects in the teardown phase, we we use a microtask instead.\n\t\t\tqueue_micro_task(() => {\n\t\t\t\tif (parts && is_bound_this(get_value(...parts), element_or_component)) {\n\t\t\t\t\tupdate(null, ...parts);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t});\n\n\treturn element_or_component;\n}\n", "import { render_effect, teardown } from '../../../reactivity/effects.js';\nimport { listen } from './shared.js';\n\n/**\n * @param {'innerHTML' | 'textContent' | 'innerText'} property\n * @param {HTMLElement} element\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_content_editable(property, element, get, set = get) {\n\telement.addEventListener('input', () => {\n\t\t// @ts-ignore\n\t\tset(element[property]);\n\t});\n\n\trender_effect(() => {\n\t\tvar value = get();\n\n\t\tif (element[property] !== value) {\n\t\t\tif (value == null) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar non_null_value = element[property];\n\t\t\t\tset(non_null_value);\n\t\t\t} else {\n\t\t\t\t// @ts-ignore\n\t\t\t\telement[property] = value + '';\n\t\t\t}\n\t\t}\n\t});\n}\n\n/**\n * @param {string} property\n * @param {string} event_name\n * @param {Element} element\n * @param {(value: unknown) => void} set\n * @param {() => unknown} [get]\n * @returns {void}\n */\nexport function bind_property(property, event_name, element, set, get) {\n\tvar handler = () => {\n\t\t// @ts-ignore\n\t\tset(element[property]);\n\t};\n\n\telement.addEventListener(event_name, handler);\n\n\tif (get) {\n\t\trender_effect(() => {\n\t\t\t// @ts-ignore\n\t\t\telement[property] = get();\n\t\t});\n\t} else {\n\t\thandler();\n\t}\n\n\t// @ts-ignore\n\tif (element === document.body || element === window || element === document) {\n\t\tteardown(() => {\n\t\t\telement.removeEventListener(event_name, handler);\n\t\t});\n\t}\n}\n\n/**\n * @param {HTMLElement} element\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_focused(element, set) {\n\tlisten(element, ['focus', 'blur'], () => {\n\t\tset(element === document.activeElement);\n\t});\n}\n", "import { effect, render_effect, teardown } from '../../../reactivity/effects.js';\nimport { listen, without_reactive_context } from './shared.js';\n\n/**\n * @param {'x' | 'y'} type\n * @param {() => number} get\n * @param {(value: number) => void} set\n * @returns {void}\n */\nexport function bind_window_scroll(type, get, set = get) {\n\tvar is_scrolling_x = type === 'x';\n\n\tvar target_handler = () =>\n\t\twithout_reactive_context(() => {\n\t\t\tscrolling = true;\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = setTimeout(clear, 100); // TODO use scrollend event if supported (or when supported everywhere?)\n\n\t\t\tset(window[is_scrolling_x ? 'scrollX' : 'scrollY']);\n\t\t});\n\n\taddEventListener('scroll', target_handler, {\n\t\tpassive: true\n\t});\n\n\tvar scrolling = false;\n\n\t/** @type {ReturnType<typeof setTimeout>} */\n\tvar timeout;\n\tvar clear = () => {\n\t\tscrolling = false;\n\t};\n\tvar first = true;\n\n\trender_effect(() => {\n\t\tvar latest_value = get();\n\t\t// Don't scroll to the initial value for accessibility reasons\n\t\tif (first) {\n\t\t\tfirst = false;\n\t\t} else if (!scrolling && latest_value != null) {\n\t\t\tscrolling = true;\n\t\t\tclearTimeout(timeout);\n\t\t\tif (is_scrolling_x) {\n\t\t\t\tscrollTo(latest_value, window.scrollY);\n\t\t\t} else {\n\t\t\t\tscrollTo(window.scrollX, latest_value);\n\t\t\t}\n\t\t\ttimeout = setTimeout(clear, 100);\n\t\t}\n\t});\n\n\t// Browsers don't fire the scroll event for the initial scroll position when scroll style isn't set to smooth\n\teffect(target_handler);\n\n\tteardown(() => {\n\t\tremoveEventListener('scroll', target_handler);\n\t});\n}\n\n/**\n * @param {'innerWidth' | 'innerHeight' | 'outerWidth' | 'outerHeight'} type\n * @param {(size: number) => void} set\n */\nexport function bind_window_size(type, set) {\n\tlisten(window, ['resize'], () => without_reactive_context(() => set(window[type])));\n}\n", "/** @import { ComponentContextLegacy } from '#client' */\nimport { run, run_all } from '../../../shared/utils.js';\nimport { component_context } from '../../context.js';\nimport { derived } from '../../reactivity/deriveds.js';\nimport { user_pre_effect, user_effect } from '../../reactivity/effects.js';\nimport { deep_read_state, get, untrack } from '../../runtime.js';\n\n/**\n * Legacy-mode only: Call `onMount` callbacks and set up `beforeUpdate`/`afterUpdate` effects\n * @param {boolean} [immutable]\n */\nexport function init(immutable = false) {\n\tconst context = /** @type {ComponentContextLegacy} */ (component_context);\n\n\tconst callbacks = context.l.u;\n\tif (!callbacks) return;\n\n\tlet props = () => deep_read_state(context.s);\n\n\tif (immutable) {\n\t\tlet version = 0;\n\t\tlet prev = /** @type {Record<string, any>} */ ({});\n\n\t\t// In legacy immutable mode, before/afterUpdate only fire if the object identity of a prop changes\n\t\tconst d = derived(() => {\n\t\t\tlet changed = false;\n\t\t\tconst props = context.s;\n\t\t\tfor (const key in props) {\n\t\t\t\tif (props[key] !== prev[key]) {\n\t\t\t\t\tprev[key] = props[key];\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (changed) version++;\n\t\t\treturn version;\n\t\t});\n\n\t\tprops = () => get(d);\n\t}\n\n\t// beforeUpdate\n\tif (callbacks.b.length) {\n\t\tuser_pre_effect(() => {\n\t\t\tobserve_all(context, props);\n\t\t\trun_all(callbacks.b);\n\t\t});\n\t}\n\n\t// onMount (must run before afterUpdate)\n\tuser_effect(() => {\n\t\tconst fns = untrack(() => callbacks.m.map(run));\n\t\treturn () => {\n\t\t\tfor (const fn of fns) {\n\t\t\t\tif (typeof fn === 'function') {\n\t\t\t\t\tfn();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n\n\t// afterUpdate\n\tif (callbacks.a.length) {\n\t\tuser_effect(() => {\n\t\t\tobserve_all(context, props);\n\t\t\trun_all(callbacks.a);\n\t\t});\n\t}\n}\n\n/**\n * Invoke the getter of all signals associated with a component\n * so they can be registered to the effect this function is called in.\n * @param {ComponentContextLegacy} context\n * @param {(() => void)} props\n */\nfunction observe_all(context, props) {\n\tif (context.l.s) {\n\t\tfor (const signal of context.l.s) get(signal);\n\t}\n\n\tprops();\n}\n", "import { set, source } from '../../reactivity/sources.js';\nimport { get } from '../../runtime.js';\nimport { is_array } from '../../../shared/utils.js';\n\n/**\n * Under some circumstances, imports may be reactive in legacy mode. In that case,\n * they should be using `reactive_import` as part of the transformation\n * @param {() => any} fn\n */\nexport function reactive_import(fn) {\n\tvar s = source(0);\n\n\treturn function () {\n\t\tif (arguments.length === 1) {\n\t\t\tset(s, get(s) + 1);\n\t\t\treturn arguments[0];\n\t\t} else {\n\t\t\tget(s);\n\t\t\treturn fn();\n\t\t}\n\t};\n}\n\n/**\n * @this {any}\n * @param {Record<string, unknown>} $$props\n * @param {Event} event\n * @returns {void}\n */\nexport function bubble_event($$props, event) {\n\tvar events = /** @type {Record<string, Function[] | Function>} */ ($$props.$$events)?.[\n\t\tevent.type\n\t];\n\n\tvar callbacks = is_array(events) ? events.slice() : events == null ? [] : [events];\n\n\tfor (var fn of callbacks) {\n\t\t// Preserve \"this\" context\n\t\tfn.call(this, event);\n\t}\n}\n\n/**\n * Used to simulate `$on` on a component instance when `compatibility.componentApi === 4`\n * @param {Record<string, any>} $$props\n * @param {string} event_name\n * @param {Function} event_callback\n */\nexport function add_legacy_event_listener($$props, event_name, event_callback) {\n\t$$props.$$events ||= {};\n\t$$props.$$events[event_name] ||= [];\n\t$$props.$$events[event_name].push(event_callback);\n}\n\n/**\n * Used to simulate `$set` on a component instance when `compatibility.componentApi === 4`.\n * Needs component accessors so that it can call the setter of the prop. Therefore doesn't\n * work for updating props in `$$props` or `$$restProps`.\n * @this {Record<string, any>}\n * @param {Record<string, any>} $$new_props\n */\nexport function update_legacy_props($$new_props) {\n\tfor (var key in $$new_props) {\n\t\tif (key in this) {\n\t\t\tthis[key] = $$new_props[key];\n\t\t}\n\t}\n}\n", "import { async_mode_flag } from '../flags/index.js';\nimport { hydrating } from './dom/hydration.js';\nimport * as w from './warnings.js';\nimport * as e from './errors.js';\nimport { DEV } from 'esm-env';\n\n/**\n * @template T\n * @param {string} key\n * @param {() => T} fn\n * @returns {T}\n */\nexport function hydratable(key, fn) {\n\tif (!async_mode_flag) {\n\t\te.experimental_async_required('hydratable');\n\t}\n\n\tif (hydrating) {\n\t\tconst store = window.__svelte?.h;\n\n\t\tif (store?.has(key)) {\n\t\t\treturn /** @type {T} */ (store.get(key));\n\t\t}\n\n\t\tif (DEV) {\n\t\t\te.hydratable_missing_but_required(key);\n\t\t} else {\n\t\t\tw.hydratable_missing_but_expected(key);\n\t\t}\n\t}\n\n\treturn fn();\n}\n", "/** @import { ComponentContext, ComponentContextLegacy } from '#client' */\n/** @import { EventDispatcher } from './index.js' */\n/** @import { NotFunction } from './internal/types.js' */\nimport { active_reaction, untrack } from './internal/client/runtime.js';\nimport { is_array } from './internal/shared/utils.js';\nimport { user_effect } from './internal/client/index.js';\nimport * as e from './internal/client/errors.js';\nimport { legacy_mode_flag } from './internal/flags/index.js';\nimport { component_context } from './internal/client/context.js';\nimport { DEV } from 'esm-env';\n\nif (DEV) {\n\t/**\n\t * @param {string} rune\n\t */\n\tfunction throw_rune_error(rune) {\n\t\tif (!(rune in globalThis)) {\n\t\t\t// TODO if people start adjusting the \"this can contain runes\" config through v-p-s more, adjust this message\n\t\t\t/** @type {any} */\n\t\t\tlet value; // let's hope noone modifies this global, but belts and braces\n\t\t\tObject.defineProperty(globalThis, rune, {\n\t\t\t\tconfigurable: true,\n\t\t\t\t// eslint-disable-next-line getter-return\n\t\t\t\tget: () => {\n\t\t\t\t\tif (value !== undefined) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\n\t\t\t\t\te.rune_outside_svelte(rune);\n\t\t\t\t},\n\t\t\t\tset: (v) => {\n\t\t\t\t\tvalue = v;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tthrow_rune_error('$state');\n\tthrow_rune_error('$effect');\n\tthrow_rune_error('$derived');\n\tthrow_rune_error('$inspect');\n\tthrow_rune_error('$props');\n\tthrow_rune_error('$bindable');\n}\n\n/**\n * Returns an [`AbortSignal`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) that aborts when the current [derived](https://svelte.dev/docs/svelte/$derived) or [effect](https://svelte.dev/docs/svelte/$effect) re-runs or is destroyed.\n *\n * Must be called while a derived or effect is running.\n *\n * ```svelte\n * <script>\n * \timport { getAbortSignal } from 'svelte';\n *\n * \tlet { id } = $props();\n *\n * \tasync function getData(id) {\n * \t\tconst response = await fetch(`/items/${id}`, {\n * \t\t\tsignal: getAbortSignal()\n * \t\t});\n *\n * \t\treturn await response.json();\n * \t}\n *\n * \tconst data = $derived(await getData(id));\n * </script>\n * ```\n */\nexport function getAbortSignal() {\n\tif (active_reaction === null) {\n\t\te.get_abort_signal_outside_reaction();\n\t}\n\n\treturn (active_reaction.ac ??= new AbortController()).signal;\n}\n\n/**\n * `onMount`, like [`$effect`](https://svelte.dev/docs/svelte/$effect), schedules a function to run as soon as the component has been mounted to the DOM.\n * Unlike `$effect`, the provided function only runs once.\n *\n * It must be called during the component's initialisation (but doesn't need to live _inside_ the component;\n * it can be called from an external module). If a function is returned _synchronously_ from `onMount`,\n * it will be called when the component is unmounted.\n *\n * `onMount` functions do not run during [server-side rendering](https://svelte.dev/docs/svelte/svelte-server#render).\n *\n * @template T\n * @param {() => NotFunction<T> | Promise<NotFunction<T>> | (() => any)} fn\n * @returns {void}\n */\nexport function onMount(fn) {\n\tif (component_context === null) {\n\t\te.lifecycle_outside_component('onMount');\n\t}\n\n\tif (legacy_mode_flag && component_context.l !== null) {\n\t\tinit_update_callbacks(component_context).m.push(fn);\n\t} else {\n\t\tuser_effect(() => {\n\t\t\tconst cleanup = untrack(fn);\n\t\t\tif (typeof cleanup === 'function') return /** @type {() => void} */ (cleanup);\n\t\t});\n\t}\n}\n\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * @param {() => any} fn\n * @returns {void}\n */\nexport function onDestroy(fn) {\n\tif (component_context === null) {\n\t\te.lifecycle_outside_component('onDestroy');\n\t}\n\n\tonMount(() => () => untrack(fn));\n}\n\n/**\n * @template [T=any]\n * @param {string} type\n * @param {T} [detail]\n * @param {any}params_0\n * @returns {CustomEvent<T>}\n */\nfunction create_custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n\treturn new CustomEvent(type, { detail, bubbles, cancelable });\n}\n\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](https://svelte.dev/docs/svelte/legacy-on#Component-events).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * The event dispatcher can be typed to narrow the allowed event names and the type of the `detail` argument:\n * ```ts\n * const dispatch = createEventDispatcher<{\n * loaded: null; // does not take a detail argument\n * change: string; // takes a detail argument of type string, which is required\n * optional: number | null; // takes an optional detail argument of type number\n * }>();\n * ```\n *\n * @deprecated Use callback props and/or the `$host()` rune instead — see [migration guide](https://svelte.dev/docs/svelte/v5-migration-guide#Event-changes-Component-events)\n * @template {Record<string, any>} [EventMap = any]\n * @returns {EventDispatcher<EventMap>}\n */\nexport function createEventDispatcher() {\n\tconst active_component_context = component_context;\n\tif (active_component_context === null) {\n\t\te.lifecycle_outside_component('createEventDispatcher');\n\t}\n\n\t/**\n\t * @param [detail]\n\t * @param [options]\n\t */\n\treturn (type, detail, options) => {\n\t\tconst events = /** @type {Record<string, Function | Function[]>} */ (\n\t\t\tactive_component_context.s.$$events\n\t\t)?.[/** @type {string} */ (type)];\n\n\t\tif (events) {\n\t\t\tconst callbacks = is_array(events) ? events.slice() : [events];\n\t\t\t// TODO are there situations where events could be dispatched\n\t\t\t// in a server (non-DOM) environment?\n\t\t\tconst event = create_custom_event(/** @type {string} */ (type), detail, options);\n\t\t\tfor (const fn of callbacks) {\n\t\t\t\tfn.call(active_component_context.x, event);\n\t\t\t}\n\t\t\treturn !event.defaultPrevented;\n\t\t}\n\n\t\treturn true;\n\t};\n}\n\n// TODO mark beforeUpdate and afterUpdate as deprecated in Svelte 6\n\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`.\n *\n * In runes mode use `$effect.pre` instead.\n *\n * @deprecated Use [`$effect.pre`](https://svelte.dev/docs/svelte/$effect#$effect.pre) instead\n * @param {() => void} fn\n * @returns {void}\n */\nexport function beforeUpdate(fn) {\n\tif (component_context === null) {\n\t\te.lifecycle_outside_component('beforeUpdate');\n\t}\n\n\tif (component_context.l === null) {\n\t\te.lifecycle_legacy_only('beforeUpdate');\n\t}\n\n\tinit_update_callbacks(component_context).b.push(fn);\n}\n\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`.\n *\n * In runes mode use `$effect` instead.\n *\n * @deprecated Use [`$effect`](https://svelte.dev/docs/svelte/$effect) instead\n * @param {() => void} fn\n * @returns {void}\n */\nexport function afterUpdate(fn) {\n\tif (component_context === null) {\n\t\te.lifecycle_outside_component('afterUpdate');\n\t}\n\n\tif (component_context.l === null) {\n\t\te.lifecycle_legacy_only('afterUpdate');\n\t}\n\n\tinit_update_callbacks(component_context).a.push(fn);\n}\n\n/**\n * Legacy-mode: Init callbacks object for onMount/beforeUpdate/afterUpdate\n * @param {ComponentContext} context\n */\nfunction init_update_callbacks(context) {\n\tvar l = /** @type {ComponentContextLegacy} */ (context).l;\n\treturn (l.u ??= { a: [], b: [], m: [] });\n}\n\nexport { flushSync, fork } from './internal/client/reactivity/batch.js';\nexport {\n\tcreateContext,\n\tgetContext,\n\tgetAllContexts,\n\thasContext,\n\tsetContext\n} from './internal/client/context.js';\nexport { hydratable } from './internal/client/hydratable.js';\nexport { hydrate, mount, unmount } from './internal/client/render.js';\nexport { tick, untrack, settled } from './internal/client/runtime.js';\nexport { createRawSnippet } from './internal/client/dom/blocks/snippet.js';\n", "/** @import { Readable } from './public' */\nimport { untrack } from '../index-client.js';\nimport { noop } from '../internal/shared/utils.js';\n\n/**\n * @template T\n * @param {Readable<T> | null | undefined} store\n * @param {(value: T) => void} run\n * @param {(value: T) => void} [invalidate]\n * @returns {() => void}\n */\nexport function subscribe_to_store(store, run, invalidate) {\n\tif (store == null) {\n\t\t// @ts-expect-error\n\t\trun(undefined);\n\n\t\t// @ts-expect-error\n\t\tif (invalidate) invalidate(undefined);\n\n\t\treturn noop;\n\t}\n\n\t// Svelte store takes a private second argument\n\t// StartStopNotifier could mutate state, and we want to silence the corresponding validation error\n\tconst unsub = untrack(() =>\n\t\tstore.subscribe(\n\t\t\trun,\n\t\t\t// @ts-expect-error\n\t\t\tinvalidate\n\t\t)\n\t);\n\n\t// Also support RxJS\n\t// @ts-expect-error TODO fix this in the types?\n\treturn unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\n", "/** @import { Readable, StartStopNotifier, Subscriber, Unsubscriber, Updater, Writable } from '../public.js' */\n/** @import { Stores, StoresValues, SubscribeInvalidateTuple } from '../private.js' */\nimport { noop, run_all } from '../../internal/shared/utils.js';\nimport { safe_not_equal } from '../../internal/client/reactivity/equality.js';\nimport { subscribe_to_store } from '../utils.js';\n\n/**\n * @type {Array<SubscribeInvalidateTuple<any> | any>}\n */\nconst subscriber_queue = [];\n\n/**\n * Creates a `Readable` store that allows reading by subscription.\n *\n * @template T\n * @param {T} [value] initial value\n * @param {StartStopNotifier<T>} [start]\n * @returns {Readable<T>}\n */\nexport function readable(value, start) {\n\treturn {\n\t\tsubscribe: writable(value, start).subscribe\n\t};\n}\n\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n *\n * @template T\n * @param {T} [value] initial value\n * @param {StartStopNotifier<T>} [start]\n * @returns {Writable<T>}\n */\nexport function writable(value, start = noop) {\n\t/** @type {Unsubscriber | null} */\n\tlet stop = null;\n\n\t/** @type {Set<SubscribeInvalidateTuple<T>>} */\n\tconst subscribers = new Set();\n\n\t/**\n\t * @param {T} new_value\n\t * @returns {void}\n\t */\n\tfunction set(new_value) {\n\t\tif (safe_not_equal(value, new_value)) {\n\t\t\tvalue = new_value;\n\t\t\tif (stop) {\n\t\t\t\t// store is ready\n\t\t\t\tconst run_queue = !subscriber_queue.length;\n\t\t\t\tfor (const subscriber of subscribers) {\n\t\t\t\t\tsubscriber[1]();\n\t\t\t\t\tsubscriber_queue.push(subscriber, value);\n\t\t\t\t}\n\t\t\t\tif (run_queue) {\n\t\t\t\t\tfor (let i = 0; i < subscriber_queue.length; i += 2) {\n\t\t\t\t\t\tsubscriber_queue[i][0](subscriber_queue[i + 1]);\n\t\t\t\t\t}\n\t\t\t\t\tsubscriber_queue.length = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @param {Updater<T>} fn\n\t * @returns {void}\n\t */\n\tfunction update(fn) {\n\t\tset(fn(/** @type {T} */ (value)));\n\t}\n\n\t/**\n\t * @param {Subscriber<T>} run\n\t * @param {() => void} [invalidate]\n\t * @returns {Unsubscriber}\n\t */\n\tfunction subscribe(run, invalidate = noop) {\n\t\t/** @type {SubscribeInvalidateTuple<T>} */\n\t\tconst subscriber = [run, invalidate];\n\t\tsubscribers.add(subscriber);\n\t\tif (subscribers.size === 1) {\n\t\t\tstop = start(set, update) || noop;\n\t\t}\n\t\trun(/** @type {T} */ (value));\n\t\treturn () => {\n\t\t\tsubscribers.delete(subscriber);\n\t\t\tif (subscribers.size === 0 && stop) {\n\t\t\t\tstop();\n\t\t\t\tstop = null;\n\t\t\t}\n\t\t};\n\t}\n\treturn { set, update, subscribe };\n}\n\n/**\n * Derived value store by synchronizing one or more readable stores and\n * applying an aggregation function over its input values.\n *\n * @template {Stores} S\n * @template T\n * @overload\n * @param {S} stores\n * @param {(values: StoresValues<S>, set: (value: T) => void, update: (fn: Updater<T>) => void) => Unsubscriber | void} fn\n * @param {T} [initial_value]\n * @returns {Readable<T>}\n */\n/**\n * Derived value store by synchronizing one or more readable stores and\n * applying an aggregation function over its input values.\n *\n * @template {Stores} S\n * @template T\n * @overload\n * @param {S} stores\n * @param {(values: StoresValues<S>) => T} fn\n * @param {T} [initial_value]\n * @returns {Readable<T>}\n */\n/**\n * @template {Stores} S\n * @template T\n * @param {S} stores\n * @param {Function} fn\n * @param {T} [initial_value]\n * @returns {Readable<T>}\n */\nexport function derived(stores, fn, initial_value) {\n\tconst single = !Array.isArray(stores);\n\t/** @type {Array<Readable<any>>} */\n\tconst stores_array = single ? [stores] : stores;\n\tif (!stores_array.every(Boolean)) {\n\t\tthrow new Error('derived() expects stores as input, got a falsy value');\n\t}\n\tconst auto = fn.length < 2;\n\treturn readable(initial_value, (set, update) => {\n\t\tlet started = false;\n\t\t/** @type {T[]} */\n\t\tconst values = [];\n\t\tlet pending = 0;\n\t\tlet cleanup = noop;\n\t\tconst sync = () => {\n\t\t\tif (pending) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcleanup();\n\t\t\tconst result = fn(single ? values[0] : values, set, update);\n\t\t\tif (auto) {\n\t\t\t\tset(result);\n\t\t\t} else {\n\t\t\t\tcleanup = typeof result === 'function' ? result : noop;\n\t\t\t}\n\t\t};\n\t\tconst unsubscribers = stores_array.map((store, i) =>\n\t\t\tsubscribe_to_store(\n\t\t\t\tstore,\n\t\t\t\t(value) => {\n\t\t\t\t\tvalues[i] = value;\n\t\t\t\t\tpending &= ~(1 << i);\n\t\t\t\t\tif (started) {\n\t\t\t\t\t\tsync();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tpending |= 1 << i;\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\t\tstarted = true;\n\t\tsync();\n\t\treturn function stop() {\n\t\t\trun_all(unsubscribers);\n\t\t\tcleanup();\n\t\t\t// We need to set this to false because callbacks can still happen despite having unsubscribed:\n\t\t\t// Callbacks might already be placed in the queue which doesn't know it should no longer\n\t\t\t// invoke this derived store.\n\t\t\tstarted = false;\n\t\t};\n\t});\n}\n\n/**\n * Takes a store and returns a new one derived from the old one that is readable.\n *\n * @template T\n * @param {Readable<T>} store - store to make readonly\n * @returns {Readable<T>}\n */\nexport function readonly(store) {\n\treturn {\n\t\t// @ts-expect-error TODO i suspect the bind is unnecessary\n\t\tsubscribe: store.subscribe.bind(store)\n\t};\n}\n\n/**\n * Get the current value from a store by subscribing and immediately unsubscribing.\n *\n * @template T\n * @param {Readable<T>} store\n * @returns {T}\n */\nexport function get(store) {\n\tlet value;\n\tsubscribe_to_store(store, (_) => (value = _))();\n\t// @ts-expect-error\n\treturn value;\n}\n", "/** @import { StoreReferencesContainer } from '#client' */\n/** @import { Store } from '#shared' */\nimport { subscribe_to_store } from '../../../store/utils.js';\nimport { get as get_store } from '../../../store/shared/index.js';\nimport { define_property, noop } from '../../shared/utils.js';\nimport { get } from '../runtime.js';\nimport { teardown } from './effects.js';\nimport { mutable_source, set } from './sources.js';\nimport { DEV } from 'esm-env';\n\n/**\n * Whether or not the prop currently being read is a store binding, as in\n * `<Child bind:x={$y} />`. If it is, we treat the prop as mutable even in\n * runes mode, and skip `binding_property_non_reactive` validation\n */\nlet is_store_binding = false;\n\nlet IS_UNMOUNTED = Symbol();\n\n/**\n * Gets the current value of a store. If the store isn't subscribed to yet, it will create a proxy\n * signal that will be updated when the store is. The store references container is needed to\n * track reassignments to stores and to track the correct component context.\n * @template V\n * @param {Store<V> | null | undefined} store\n * @param {string} store_name\n * @param {StoreReferencesContainer} stores\n * @returns {V}\n */\nexport function store_get(store, store_name, stores) {\n\tconst entry = (stores[store_name] ??= {\n\t\tstore: null,\n\t\tsource: mutable_source(undefined),\n\t\tunsubscribe: noop\n\t});\n\n\tif (DEV) {\n\t\tentry.source.label = store_name;\n\t}\n\n\t// if the component that setup this is already unmounted we don't want to register a subscription\n\tif (entry.store !== store && !(IS_UNMOUNTED in stores)) {\n\t\tentry.unsubscribe();\n\t\tentry.store = store ?? null;\n\n\t\tif (store == null) {\n\t\t\tentry.source.v = undefined; // see synchronous callback comment below\n\t\t\tentry.unsubscribe = noop;\n\t\t} else {\n\t\t\tvar is_synchronous_callback = true;\n\n\t\t\tentry.unsubscribe = subscribe_to_store(store, (v) => {\n\t\t\t\tif (is_synchronous_callback) {\n\t\t\t\t\t// If the first updates to the store value (possibly multiple of them) are synchronously\n\t\t\t\t\t// inside a derived, we will hit the `state_unsafe_mutation` error if we `set` the value\n\t\t\t\t\tentry.source.v = v;\n\t\t\t\t} else {\n\t\t\t\t\tset(entry.source, v);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tis_synchronous_callback = false;\n\t\t}\n\t}\n\n\t// if the component that setup this stores is already unmounted the source will be out of sync\n\t// so we just use the `get` for the stores, less performant but it avoids to create a memory leak\n\t// and it will keep the value consistent\n\tif (store && IS_UNMOUNTED in stores) {\n\t\treturn get_store(store);\n\t}\n\n\treturn get(entry.source);\n}\n\n/**\n * Unsubscribe from a store if it's not the same as the one in the store references container.\n * We need this in addition to `store_get` because someone could unsubscribe from a store but\n * then never subscribe to the new one (if any), causing the subscription to stay open wrongfully.\n * @param {Store<any> | null | undefined} store\n * @param {string} store_name\n * @param {StoreReferencesContainer} stores\n */\nexport function store_unsub(store, store_name, stores) {\n\t/** @type {StoreReferencesContainer[''] | undefined} */\n\tlet entry = stores[store_name];\n\n\tif (entry && entry.store !== store) {\n\t\t// Don't reset store yet, so that store_get above can resubscribe to new store if necessary\n\t\tentry.unsubscribe();\n\t\tentry.unsubscribe = noop;\n\t}\n\n\treturn store;\n}\n\n/**\n * Sets the new value of a store and returns that value.\n * @template V\n * @param {Store<V>} store\n * @param {V} value\n * @returns {V}\n */\nexport function store_set(store, value) {\n\tstore.set(value);\n\treturn value;\n}\n\n/**\n * @param {StoreReferencesContainer} stores\n * @param {string} store_name\n */\nexport function invalidate_store(stores, store_name) {\n\tvar entry = stores[store_name];\n\tif (entry.store !== null) {\n\t\tstore_set(entry.store, entry.source.v);\n\t}\n}\n\n/**\n * Unsubscribes from all auto-subscribed stores on destroy\n * @returns {[StoreReferencesContainer, ()=>void]}\n */\nexport function setup_stores() {\n\t/** @type {StoreReferencesContainer} */\n\tconst stores = {};\n\n\tfunction cleanup() {\n\t\tteardown(() => {\n\t\t\tfor (var store_name in stores) {\n\t\t\t\tconst ref = stores[store_name];\n\t\t\t\tref.unsubscribe();\n\t\t\t}\n\t\t\tdefine_property(stores, IS_UNMOUNTED, {\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: true\n\t\t\t});\n\t\t});\n\t}\n\n\treturn [stores, cleanup];\n}\n\n/**\n * Updates a store with a new value.\n * @param {Store<V>} store the store to update\n * @param {any} expression the expression that mutates the store\n * @param {V} new_value the new store value\n * @template V\n */\nexport function store_mutate(store, expression, new_value) {\n\tstore.set(new_value);\n\treturn expression;\n}\n\n/**\n * @param {Store<number>} store\n * @param {number} store_value\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_store(store, store_value, d = 1) {\n\tstore.set(store_value + d);\n\treturn store_value;\n}\n\n/**\n * @param {Store<number>} store\n * @param {number} store_value\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_pre_store(store, store_value, d = 1) {\n\tconst value = store_value + d;\n\tstore.set(value);\n\treturn value;\n}\n\n/**\n * Called inside prop getters to communicate that the prop is a store binding\n */\nexport function mark_store_binding() {\n\tis_store_binding = true;\n}\n\n/**\n * Returns a tuple that indicates whether `fn()` reads a prop that is a store binding.\n * Used to prevent `binding_property_non_reactive` validation false positives and\n * ensure that these props are treated as mutable even in runes mode\n * @template T\n * @param {() => T} fn\n * @returns {[T, boolean]}\n */\nexport function capture_store_binding(fn) {\n\tvar previous_is_store_binding = is_store_binding;\n\n\ttry {\n\t\tis_store_binding = false;\n\t\treturn [fn(), is_store_binding];\n\t} finally {\n\t\tis_store_binding = previous_is_store_binding;\n\t}\n}\n", "/** @import { Effect, Source } from './types.js' */\nimport { DEV } from 'esm-env';\nimport {\n\tPROPS_IS_BINDABLE,\n\tPROPS_IS_IMMUTABLE,\n\tPROPS_IS_LAZY_INITIAL,\n\tPROPS_IS_RUNES,\n\tPROPS_IS_UPDATED\n} from '../../../constants.js';\nimport { get_descriptor, is_function } from '../../shared/utils.js';\nimport { set, source, update } from './sources.js';\nimport { derived, derived_safe_equal } from './deriveds.js';\nimport {\n\tactive_effect,\n\tget,\n\tis_destroying_effect,\n\tset_active_effect,\n\tuntrack\n} from '../runtime.js';\nimport * as e from '../errors.js';\nimport { DESTROYED, LEGACY_PROPS, STATE_SYMBOL } from '#client/constants';\nimport { proxy } from '../proxy.js';\nimport { capture_store_binding } from './store.js';\nimport { legacy_mode_flag } from '../../flags/index.js';\n\n/**\n * @param {((value?: number) => number)} fn\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_prop(fn, d = 1) {\n\tconst value = fn();\n\tfn(value + d);\n\treturn value;\n}\n\n/**\n * @param {((value?: number) => number)} fn\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_pre_prop(fn, d = 1) {\n\tconst value = fn() + d;\n\tfn(value);\n\treturn value;\n}\n\n/**\n * The proxy handler for rest props (i.e. `const { x, ...rest } = $props()`).\n * Is passed the full `$$props` object and excludes the named props.\n * @type {ProxyHandler<{ props: Record<string | symbol, unknown>, exclude: Array<string | symbol>, name?: string }>}}\n */\nconst rest_props_handler = {\n\tget(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\treturn target.props[key];\n\t},\n\tset(target, key) {\n\t\tif (DEV) {\n\t\t\t// TODO should this happen in prod too?\n\t\t\te.props_rest_readonly(`${target.name}.${String(key)}`);\n\t\t}\n\n\t\treturn false;\n\t},\n\tgetOwnPropertyDescriptor(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\tif (key in target.props) {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: target.props[key]\n\t\t\t};\n\t\t}\n\t},\n\thas(target, key) {\n\t\tif (target.exclude.includes(key)) return false;\n\t\treturn key in target.props;\n\t},\n\townKeys(target) {\n\t\treturn Reflect.ownKeys(target.props).filter((key) => !target.exclude.includes(key));\n\t}\n};\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string[]} exclude\n * @param {string} [name]\n * @returns {Record<string, unknown>}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function rest_props(props, exclude, name) {\n\treturn new Proxy(\n\t\tDEV ? { props, exclude, name, other: {}, to_proxy: [] } : { props, exclude },\n\t\trest_props_handler\n\t);\n}\n\n/**\n * The proxy handler for legacy $$restProps and $$props\n * @type {ProxyHandler<{ props: Record<string | symbol, unknown>, exclude: Array<string | symbol>, special: Record<string | symbol, (v?: unknown) => unknown>, version: Source<number>, parent_effect: Effect }>}}\n */\nconst legacy_rest_props_handler = {\n\tget(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\tget(target.version);\n\t\treturn key in target.special ? target.special[key]() : target.props[key];\n\t},\n\tset(target, key, value) {\n\t\tif (!(key in target.special)) {\n\t\t\tvar previous_effect = active_effect;\n\n\t\t\ttry {\n\t\t\t\tset_active_effect(target.parent_effect);\n\n\t\t\t\t// Handle props that can temporarily get out of sync with the parent\n\t\t\t\t/** @type {Record<string, (v?: unknown) => unknown>} */\n\t\t\t\ttarget.special[key] = prop(\n\t\t\t\t\t{\n\t\t\t\t\t\tget [key]() {\n\t\t\t\t\t\t\treturn target.props[key];\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t/** @type {string} */ (key),\n\t\t\t\t\tPROPS_IS_UPDATED\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tset_active_effect(previous_effect);\n\t\t\t}\n\t\t}\n\n\t\ttarget.special[key](value);\n\t\tupdate(target.version); // $$props is coarse-grained: when $$props.x is updated, usages of $$props.y etc are also rerun\n\t\treturn true;\n\t},\n\tgetOwnPropertyDescriptor(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\tif (key in target.props) {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: target.props[key]\n\t\t\t};\n\t\t}\n\t},\n\tdeleteProperty(target, key) {\n\t\t// Svelte 4 allowed for deletions on $$restProps\n\t\tif (target.exclude.includes(key)) return true;\n\t\ttarget.exclude.push(key);\n\t\tupdate(target.version);\n\t\treturn true;\n\t},\n\thas(target, key) {\n\t\tif (target.exclude.includes(key)) return false;\n\t\treturn key in target.props;\n\t},\n\townKeys(target) {\n\t\treturn Reflect.ownKeys(target.props).filter((key) => !target.exclude.includes(key));\n\t}\n};\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string[]} exclude\n * @returns {Record<string, unknown>}\n */\nexport function legacy_rest_props(props, exclude) {\n\treturn new Proxy(\n\t\t{\n\t\t\tprops,\n\t\t\texclude,\n\t\t\tspecial: {},\n\t\t\tversion: source(0),\n\t\t\t// TODO this is only necessary because we need to track component\n\t\t\t// destruction inside `prop`, because of `bind:this`, but it\n\t\t\t// seems likely that we can simplify `bind:this` instead\n\t\t\tparent_effect: /** @type {Effect} */ (active_effect)\n\t\t},\n\t\tlegacy_rest_props_handler\n\t);\n}\n\n/**\n * The proxy handler for spread props. Handles the incoming array of props\n * that looks like `() => { dynamic: props }, { static: prop }, ..` and wraps\n * them so that the whole thing is passed to the component as the `$$props` argument.\n * @type {ProxyHandler<{ props: Array<Record<string | symbol, unknown> | (() => Record<string | symbol, unknown>)> }>}}\n */\nconst spread_props_handler = {\n\tget(target, key) {\n\t\tlet i = target.props.length;\n\t\twhile (i--) {\n\t\t\tlet p = target.props[i];\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (typeof p === 'object' && p !== null && key in p) return p[key];\n\t\t}\n\t},\n\tset(target, key, value) {\n\t\tlet i = target.props.length;\n\t\twhile (i--) {\n\t\t\tlet p = target.props[i];\n\t\t\tif (is_function(p)) p = p();\n\t\t\tconst desc = get_descriptor(p, key);\n\t\t\tif (desc && desc.set) {\n\t\t\t\tdesc.set(value);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\tgetOwnPropertyDescriptor(target, key) {\n\t\tlet i = target.props.length;\n\t\twhile (i--) {\n\t\t\tlet p = target.props[i];\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (typeof p === 'object' && p !== null && key in p) {\n\t\t\t\tconst descriptor = get_descriptor(p, key);\n\t\t\t\tif (descriptor && !descriptor.configurable) {\n\t\t\t\t\t// Prevent a \"Non-configurability Report Error\": The target is an array, it does\n\t\t\t\t\t// not actually contain this property. If it is now described as non-configurable,\n\t\t\t\t\t// the proxy throws a validation error. Setting it to true avoids that.\n\t\t\t\t\tdescriptor.configurable = true;\n\t\t\t\t}\n\t\t\t\treturn descriptor;\n\t\t\t}\n\t\t}\n\t},\n\thas(target, key) {\n\t\t// To prevent a false positive `is_entry_props` in the `prop` function\n\t\tif (key === STATE_SYMBOL || key === LEGACY_PROPS) return false;\n\n\t\tfor (let p of target.props) {\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (p != null && key in p) return true;\n\t\t}\n\n\t\treturn false;\n\t},\n\townKeys(target) {\n\t\t/** @type {Array<string | symbol>} */\n\t\tconst keys = [];\n\n\t\tfor (let p of target.props) {\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (!p) continue;\n\n\t\t\tfor (const key in p) {\n\t\t\t\tif (!keys.includes(key)) keys.push(key);\n\t\t\t}\n\n\t\t\tfor (const key of Object.getOwnPropertySymbols(p)) {\n\t\t\t\tif (!keys.includes(key)) keys.push(key);\n\t\t\t}\n\t\t}\n\n\t\treturn keys;\n\t}\n};\n\n/**\n * @param {Array<Record<string, unknown> | (() => Record<string, unknown>)>} props\n * @returns {any}\n */\nexport function spread_props(...props) {\n\treturn new Proxy({ props }, spread_props_handler);\n}\n\n/**\n * This function is responsible for synchronizing a possibly bound prop with the inner component state.\n * It is used whenever the compiler sees that the component writes to the prop, or when it has a default prop_value.\n * @template V\n * @param {Record<string, unknown>} props\n * @param {string} key\n * @param {number} flags\n * @param {V | (() => V)} [fallback]\n * @returns {(() => V | ((arg: V) => V) | ((arg: V, mutation: boolean) => V))}\n */\nexport function prop(props, key, flags, fallback) {\n\tvar runes = !legacy_mode_flag || (flags & PROPS_IS_RUNES) !== 0;\n\tvar bindable = (flags & PROPS_IS_BINDABLE) !== 0;\n\tvar lazy = (flags & PROPS_IS_LAZY_INITIAL) !== 0;\n\n\tvar fallback_value = /** @type {V} */ (fallback);\n\tvar fallback_dirty = true;\n\n\tvar get_fallback = () => {\n\t\tif (fallback_dirty) {\n\t\t\tfallback_dirty = false;\n\n\t\t\tfallback_value = lazy\n\t\t\t\t? untrack(/** @type {() => V} */ (fallback))\n\t\t\t\t: /** @type {V} */ (fallback);\n\t\t}\n\n\t\treturn fallback_value;\n\t};\n\n\t/** @type {((v: V) => void) | undefined} */\n\tvar setter;\n\n\tif (bindable) {\n\t\t// Can be the case when someone does `mount(Component, props)` with `let props = $state({...})`\n\t\t// or `createClassComponent(Component, props)`\n\t\tvar is_entry_props = STATE_SYMBOL in props || LEGACY_PROPS in props;\n\n\t\tsetter =\n\t\t\tget_descriptor(props, key)?.set ??\n\t\t\t(is_entry_props && key in props ? (v) => (props[key] = v) : undefined);\n\t}\n\n\tvar initial_value;\n\tvar is_store_sub = false;\n\n\tif (bindable) {\n\t\t[initial_value, is_store_sub] = capture_store_binding(() => /** @type {V} */ (props[key]));\n\t} else {\n\t\tinitial_value = /** @type {V} */ (props[key]);\n\t}\n\n\tif (initial_value === undefined && fallback !== undefined) {\n\t\tinitial_value = get_fallback();\n\n\t\tif (setter) {\n\t\t\tif (runes) e.props_invalid_value(key);\n\t\t\tsetter(initial_value);\n\t\t}\n\t}\n\n\t/** @type {() => V} */\n\tvar getter;\n\n\tif (runes) {\n\t\tgetter = () => {\n\t\t\tvar value = /** @type {V} */ (props[key]);\n\t\t\tif (value === undefined) return get_fallback();\n\t\t\tfallback_dirty = true;\n\t\t\treturn value;\n\t\t};\n\t} else {\n\t\tgetter = () => {\n\t\t\tvar value = /** @type {V} */ (props[key]);\n\n\t\t\tif (value !== undefined) {\n\t\t\t\t// in legacy mode, we don't revert to the fallback value\n\t\t\t\t// if the prop goes from defined to undefined. The easiest\n\t\t\t\t// way to model this is to make the fallback undefined\n\t\t\t\t// as soon as the prop has a value\n\t\t\t\tfallback_value = /** @type {V} */ (undefined);\n\t\t\t}\n\n\t\t\treturn value === undefined ? fallback_value : value;\n\t\t};\n\t}\n\n\t// prop is never written to — we only need a getter\n\tif (runes && (flags & PROPS_IS_UPDATED) === 0) {\n\t\treturn getter;\n\t}\n\n\t// prop is written to, but the parent component had `bind:foo` which\n\t// means we can just call `$$props.foo = value` directly\n\tif (setter) {\n\t\tvar legacy_parent = props.$$legacy;\n\t\treturn /** @type {() => V} */ (\n\t\t\tfunction (/** @type {V} */ value, /** @type {boolean} */ mutation) {\n\t\t\t\tif (arguments.length > 0) {\n\t\t\t\t\t// We don't want to notify if the value was mutated and the parent is in runes mode.\n\t\t\t\t\t// In that case the state proxy (if it exists) should take care of the notification.\n\t\t\t\t\t// If the parent is not in runes mode, we need to notify on mutation, too, that the prop\n\t\t\t\t\t// has changed because the parent will not be able to detect the change otherwise.\n\t\t\t\t\tif (!runes || !mutation || legacy_parent || is_store_sub) {\n\t\t\t\t\t\t/** @type {Function} */ (setter)(mutation ? getter() : value);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\n\t\t\t\treturn getter();\n\t\t\t}\n\t\t);\n\t}\n\n\t// Either prop is written to, but there's no binding, which means we\n\t// create a derived that we can write to locally.\n\t// Or we are in legacy mode where we always create a derived to replicate that\n\t// Svelte 4 did not trigger updates when a primitive value was updated to the same value.\n\tvar overridden = false;\n\n\tvar d = ((flags & PROPS_IS_IMMUTABLE) !== 0 ? derived : derived_safe_equal)(() => {\n\t\toverridden = false;\n\t\treturn getter();\n\t});\n\n\tif (DEV) {\n\t\td.label = key;\n\t}\n\n\t// Capture the initial value if it's bindable\n\tif (bindable) get(d);\n\n\tvar parent_effect = /** @type {Effect} */ (active_effect);\n\n\treturn /** @type {() => V} */ (\n\t\tfunction (/** @type {any} */ value, /** @type {boolean} */ mutation) {\n\t\t\tif (arguments.length > 0) {\n\t\t\t\tconst new_value = mutation ? get(d) : runes && bindable ? proxy(value) : value;\n\n\t\t\t\tset(d, new_value);\n\t\t\t\toverridden = true;\n\n\t\t\t\tif (fallback_value !== undefined) {\n\t\t\t\t\tfallback_value = new_value;\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\t// special case — avoid recalculating the derived if we're in a\n\t\t\t// teardown function and the prop was overridden locally, or the\n\t\t\t// component was already destroyed (this latter part is necessary\n\t\t\t// because `bind:this` can read props after the component has\n\t\t\t// been destroyed. TODO simplify `bind:this`\n\t\t\tif ((is_destroying_effect && overridden) || (parent_effect.f & DESTROYED) !== 0) {\n\t\t\t\treturn d.v;\n\t\t\t}\n\n\t\t\treturn get(d);\n\t\t}\n\t);\n}\n", "/** @import { Blocker } from '#client' */\nimport { dev_current_component_function } from './context.js';\nimport { FILENAME } from '../../constants.js';\nimport { render_effect } from './reactivity/effects.js';\nimport * as w from './warnings.js';\nimport { capture_store_binding } from './reactivity/store.js';\nimport { run_after_blockers } from './reactivity/async.js';\n\n/**\n * @param {string} binding\n * @param {Blocker[]} blockers\n * @param {() => Record<string, any>} get_object\n * @param {() => string} get_property\n * @param {number} line\n * @param {number} column\n */\nexport function validate_binding(binding, blockers, get_object, get_property, line, column) {\n\trun_after_blockers(blockers, () => {\n\t\tvar warned = false;\n\n\t\tvar filename = dev_current_component_function?.[FILENAME];\n\n\t\trender_effect(() => {\n\t\t\tif (warned) return;\n\n\t\t\tvar [object, is_store_sub] = capture_store_binding(get_object);\n\n\t\t\tif (is_store_sub) return;\n\n\t\t\tvar property = get_property();\n\n\t\t\tvar ran = false;\n\n\t\t\t// by making the (possibly false, but it would be an extreme edge case) assumption\n\t\t\t// that a getter has a corresponding setter, we can determine if a property is\n\t\t\t// reactive by seeing if this effect has dependencies\n\t\t\tvar effect = render_effect(() => {\n\t\t\t\tif (ran) return;\n\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n\t\t\t\tobject[property];\n\t\t\t});\n\n\t\t\tran = true;\n\n\t\t\tif (effect.deps === null) {\n\t\t\t\tvar location = `${filename}:${line}:${column}`;\n\t\t\t\tw.binding_property_non_reactive(binding, location);\n\n\t\t\t\twarned = true;\n\t\t\t}\n\t\t});\n\t});\n}\n", "import { createClassComponent } from '../../../../legacy/legacy-client.js';\nimport { effect_root, render_effect } from '../../reactivity/effects.js';\nimport { append } from '../template.js';\nimport { define_property, get_descriptor, object_keys } from '../../../shared/utils.js';\nimport { create_element } from '../operations.js';\n\n/**\n * @typedef {Object} CustomElementPropDefinition\n * @property {string} [attribute]\n * @property {boolean} [reflect]\n * @property {'String'|'Boolean'|'Number'|'Array'|'Object'} [type]\n */\n\n/** @type {any} */\nlet SvelteElement;\n\nif (typeof HTMLElement === 'function') {\n\tSvelteElement = class extends HTMLElement {\n\t\t/** The Svelte component constructor */\n\t\t$$ctor;\n\t\t/** Slots */\n\t\t$$s;\n\t\t/** @type {any} The Svelte component instance */\n\t\t$$c;\n\t\t/** Whether or not the custom element is connected */\n\t\t$$cn = false;\n\t\t/** @type {Record<string, any>} Component props data */\n\t\t$$d = {};\n\t\t/** `true` if currently in the process of reflecting component props back to attributes */\n\t\t$$r = false;\n\t\t/** @type {Record<string, CustomElementPropDefinition>} Props definition (name, reflected, type etc) */\n\t\t$$p_d = {};\n\t\t/** @type {Record<string, EventListenerOrEventListenerObject[]>} Event listeners */\n\t\t$$l = {};\n\t\t/** @type {Map<EventListenerOrEventListenerObject, Function>} Event listener unsubscribe functions */\n\t\t$$l_u = new Map();\n\t\t/** @type {any} The managed render effect for reflecting attributes */\n\t\t$$me;\n\t\t/** @type {ShadowRoot | null} The ShadowRoot of the custom element */\n\t\t$$shadowRoot = null;\n\n\t\t/**\n\t\t * @param {*} $$componentCtor\n\t\t * @param {*} $$slots\n\t\t * @param {ShadowRootInit | undefined} shadow_root_init\n\t\t */\n\t\tconstructor($$componentCtor, $$slots, shadow_root_init) {\n\t\t\tsuper();\n\t\t\tthis.$$ctor = $$componentCtor;\n\t\t\tthis.$$s = $$slots;\n\n\t\t\tif (shadow_root_init) {\n\t\t\t\t// We need to store the reference to shadow root, because `closed` shadow root cannot be\n\t\t\t\t// accessed with `this.shadowRoot`.\n\t\t\t\tthis.$$shadowRoot = this.attachShadow(shadow_root_init);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * @param {string} type\n\t\t * @param {EventListenerOrEventListenerObject} listener\n\t\t * @param {boolean | AddEventListenerOptions} [options]\n\t\t */\n\t\taddEventListener(type, listener, options) {\n\t\t\t// We can't determine upfront if the event is a custom event or not, so we have to\n\t\t\t// listen to both. If someone uses a custom event with the same name as a regular\n\t\t\t// browser event, this fires twice - we can't avoid that.\n\t\t\tthis.$$l[type] = this.$$l[type] || [];\n\t\t\tthis.$$l[type].push(listener);\n\t\t\tif (this.$$c) {\n\t\t\t\tconst unsub = this.$$c.$on(type, listener);\n\t\t\t\tthis.$$l_u.set(listener, unsub);\n\t\t\t}\n\t\t\tsuper.addEventListener(type, listener, options);\n\t\t}\n\n\t\t/**\n\t\t * @param {string} type\n\t\t * @param {EventListenerOrEventListenerObject} listener\n\t\t * @param {boolean | AddEventListenerOptions} [options]\n\t\t */\n\t\tremoveEventListener(type, listener, options) {\n\t\t\tsuper.removeEventListener(type, listener, options);\n\t\t\tif (this.$$c) {\n\t\t\t\tconst unsub = this.$$l_u.get(listener);\n\t\t\t\tif (unsub) {\n\t\t\t\t\tunsub();\n\t\t\t\t\tthis.$$l_u.delete(listener);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tasync connectedCallback() {\n\t\t\tthis.$$cn = true;\n\t\t\tif (!this.$$c) {\n\t\t\t\t// We wait one tick to let possible child slot elements be created/mounted\n\t\t\t\tawait Promise.resolve();\n\t\t\t\tif (!this.$$cn || this.$$c) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t/** @param {string} name */\n\t\t\t\tfunction create_slot(name) {\n\t\t\t\t\t/**\n\t\t\t\t\t * @param {Element} anchor\n\t\t\t\t\t */\n\t\t\t\t\treturn (anchor) => {\n\t\t\t\t\t\tconst slot = create_element('slot');\n\t\t\t\t\t\tif (name !== 'default') slot.name = name;\n\n\t\t\t\t\t\tappend(anchor, slot);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t/** @type {Record<string, any>} */\n\t\t\t\tconst $$slots = {};\n\t\t\t\tconst existing_slots = get_custom_elements_slots(this);\n\t\t\t\tfor (const name of this.$$s) {\n\t\t\t\t\tif (name in existing_slots) {\n\t\t\t\t\t\tif (name === 'default' && !this.$$d.children) {\n\t\t\t\t\t\t\tthis.$$d.children = create_slot(name);\n\t\t\t\t\t\t\t$$slots.default = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$$slots[name] = create_slot(name);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (const attribute of this.attributes) {\n\t\t\t\t\t// this.$$data takes precedence over this.attributes\n\t\t\t\t\tconst name = this.$$g_p(attribute.name);\n\t\t\t\t\tif (!(name in this.$$d)) {\n\t\t\t\t\t\tthis.$$d[name] = get_custom_element_value(name, attribute.value, this.$$p_d, 'toProp');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Port over props that were set programmatically before ce was initialized\n\t\t\t\tfor (const key in this.$$p_d) {\n\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\tif (!(key in this.$$d) && this[key] !== undefined) {\n\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\tthis.$$d[key] = this[key]; // don't transform, these were set through JavaScript\n\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\tdelete this[key]; // remove the property that shadows the getter/setter\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.$$c = createClassComponent({\n\t\t\t\t\tcomponent: this.$$ctor,\n\t\t\t\t\ttarget: this.$$shadowRoot || this,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\t...this.$$d,\n\t\t\t\t\t\t$$slots,\n\t\t\t\t\t\t$$host: this\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Reflect component props as attributes\n\t\t\t\tthis.$$me = effect_root(() => {\n\t\t\t\t\trender_effect(() => {\n\t\t\t\t\t\tthis.$$r = true;\n\t\t\t\t\t\tfor (const key of object_keys(this.$$c)) {\n\t\t\t\t\t\t\tif (!this.$$p_d[key]?.reflect) continue;\n\t\t\t\t\t\t\tthis.$$d[key] = this.$$c[key];\n\t\t\t\t\t\t\tconst attribute_value = get_custom_element_value(\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tthis.$$d[key],\n\t\t\t\t\t\t\t\tthis.$$p_d,\n\t\t\t\t\t\t\t\t'toAttribute'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (attribute_value == null) {\n\t\t\t\t\t\t\t\tthis.removeAttribute(this.$$p_d[key].attribute || key);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.setAttribute(this.$$p_d[key].attribute || key, attribute_value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.$$r = false;\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tfor (const type in this.$$l) {\n\t\t\t\t\tfor (const listener of this.$$l[type]) {\n\t\t\t\t\t\tconst unsub = this.$$c.$on(type, listener);\n\t\t\t\t\t\tthis.$$l_u.set(listener, unsub);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.$$l = {};\n\t\t\t}\n\t\t}\n\n\t\t// We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte\n\t\t// and setting attributes through setAttribute etc, this is helpful\n\n\t\t/**\n\t\t * @param {string} attr\n\t\t * @param {string} _oldValue\n\t\t * @param {string} newValue\n\t\t */\n\t\tattributeChangedCallback(attr, _oldValue, newValue) {\n\t\t\tif (this.$$r) return;\n\t\t\tattr = this.$$g_p(attr);\n\t\t\tthis.$$d[attr] = get_custom_element_value(attr, newValue, this.$$p_d, 'toProp');\n\t\t\tthis.$$c?.$set({ [attr]: this.$$d[attr] });\n\t\t}\n\n\t\tdisconnectedCallback() {\n\t\t\tthis.$$cn = false;\n\t\t\t// In a microtask, because this could be a move within the DOM\n\t\t\tPromise.resolve().then(() => {\n\t\t\t\tif (!this.$$cn && this.$$c) {\n\t\t\t\t\tthis.$$c.$destroy();\n\t\t\t\t\tthis.$$me();\n\t\t\t\t\tthis.$$c = undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * @param {string} attribute_name\n\t\t */\n\t\t$$g_p(attribute_name) {\n\t\t\treturn (\n\t\t\t\tobject_keys(this.$$p_d).find(\n\t\t\t\t\t(key) =>\n\t\t\t\t\t\tthis.$$p_d[key].attribute === attribute_name ||\n\t\t\t\t\t\t(!this.$$p_d[key].attribute && key.toLowerCase() === attribute_name)\n\t\t\t\t) || attribute_name\n\t\t\t);\n\t\t}\n\t};\n}\n\n/**\n * @param {string} prop\n * @param {any} value\n * @param {Record<string, CustomElementPropDefinition>} props_definition\n * @param {'toAttribute' | 'toProp'} [transform]\n */\nfunction get_custom_element_value(prop, value, props_definition, transform) {\n\tconst type = props_definition[prop]?.type;\n\tvalue = type === 'Boolean' && typeof value !== 'boolean' ? value != null : value;\n\tif (!transform || !props_definition[prop]) {\n\t\treturn value;\n\t} else if (transform === 'toAttribute') {\n\t\tswitch (type) {\n\t\t\tcase 'Object':\n\t\t\tcase 'Array':\n\t\t\t\treturn value == null ? null : JSON.stringify(value);\n\t\t\tcase 'Boolean':\n\t\t\t\treturn value ? '' : null;\n\t\t\tcase 'Number':\n\t\t\t\treturn value == null ? null : value;\n\t\t\tdefault:\n\t\t\t\treturn value;\n\t\t}\n\t} else {\n\t\tswitch (type) {\n\t\t\tcase 'Object':\n\t\t\tcase 'Array':\n\t\t\t\treturn value && JSON.parse(value);\n\t\t\tcase 'Boolean':\n\t\t\t\treturn value; // conversion already handled above\n\t\t\tcase 'Number':\n\t\t\t\treturn value != null ? +value : value;\n\t\t\tdefault:\n\t\t\t\treturn value;\n\t\t}\n\t}\n}\n\n/**\n * @param {HTMLElement} element\n */\nfunction get_custom_elements_slots(element) {\n\t/** @type {Record<string, true>} */\n\tconst result = {};\n\telement.childNodes.forEach((node) => {\n\t\tresult[/** @type {Element} node */ (node).slot || 'default'] = true;\n\t});\n\treturn result;\n}\n\n/**\n * @internal\n *\n * Turn a Svelte component into a custom element.\n * @param {any} Component A Svelte component function\n * @param {Record<string, CustomElementPropDefinition>} props_definition The props to observe\n * @param {string[]} slots The slots to create\n * @param {string[]} exports Explicitly exported values, other than props\n * @param {ShadowRootInit | undefined} shadow_root_init Options passed to shadow DOM constructor\n * @param {(ce: new () => HTMLElement) => new () => HTMLElement} [extend]\n */\nexport function create_custom_element(\n\tComponent,\n\tprops_definition,\n\tslots,\n\texports,\n\tshadow_root_init,\n\textend\n) {\n\tlet Class = class extends SvelteElement {\n\t\tconstructor() {\n\t\t\tsuper(Component, slots, shadow_root_init);\n\t\t\tthis.$$p_d = props_definition;\n\t\t}\n\t\tstatic get observedAttributes() {\n\t\t\treturn object_keys(props_definition).map((key) =>\n\t\t\t\t(props_definition[key].attribute || key).toLowerCase()\n\t\t\t);\n\t\t}\n\t};\n\tobject_keys(props_definition).forEach((prop) => {\n\t\tdefine_property(Class.prototype, prop, {\n\t\t\tget() {\n\t\t\t\treturn this.$$c && prop in this.$$c ? this.$$c[prop] : this.$$d[prop];\n\t\t\t},\n\t\t\tset(value) {\n\t\t\t\tvalue = get_custom_element_value(prop, value, props_definition);\n\t\t\t\tthis.$$d[prop] = value;\n\t\t\t\tvar component = this.$$c;\n\n\t\t\t\tif (component) {\n\t\t\t\t\t// // If the instance has an accessor, use that instead\n\t\t\t\t\tvar setter = get_descriptor(component, prop)?.get;\n\n\t\t\t\t\tif (setter) {\n\t\t\t\t\t\tcomponent[prop] = value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcomponent.$set({ [prop]: value });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n\texports.forEach((property) => {\n\t\tdefine_property(Class.prototype, property, {\n\t\t\tget() {\n\t\t\t\treturn this.$$c?.[property];\n\t\t\t}\n\t\t});\n\t});\n\tif (extend) {\n\t\t// @ts-expect-error - assigning here is fine\n\t\tClass = extend(Class);\n\t}\n\tComponent.element = /** @type {any} */ Class;\n\treturn Class;\n}\n", "import { STATE_SYMBOL } from '#client/constants';\nimport { snapshot } from '../../shared/clone.js';\nimport * as w from '../warnings.js';\nimport { untrack } from '../runtime.js';\n\n/**\n * @param {string} method\n * @param {...any} objects\n */\nexport function log_if_contains_state(method, ...objects) {\n\tuntrack(() => {\n\t\ttry {\n\t\t\tlet has_state = false;\n\t\t\tconst transformed = [];\n\n\t\t\tfor (const obj of objects) {\n\t\t\t\tif (obj && typeof obj === 'object' && STATE_SYMBOL in obj) {\n\t\t\t\t\ttransformed.push(snapshot(obj, true));\n\t\t\t\t\thas_state = true;\n\t\t\t\t} else {\n\t\t\t\t\ttransformed.push(obj);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (has_state) {\n\t\t\t\tw.console_log_state(method);\n\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.log('%c[snapshot]', 'color: grey', ...transformed);\n\t\t\t}\n\t\t} catch {\n\t\t\t// Errors can occur when trying to snapshot objects with getters that throw or non-enumerable properties.\n\t\t}\n\t});\n\n\treturn objects;\n}\n", "/** @import { Action, ActionReturn } from '../action/public' */\n/** @import { Attachment } from './public' */\nimport { noop, render_effect } from 'svelte/internal/client';\nimport { ATTACHMENT_KEY } from '../constants.js';\nimport { untrack } from '../index-client.js';\nimport { teardown } from '../internal/client/reactivity/effects.js';\n\n/**\n * Creates an object key that will be recognised as an attachment when the object is spread onto an element,\n * as a programmatic alternative to using `{@attach ...}`. This can be useful for library authors, though\n * is generally not needed when building an app.\n *\n * ```svelte\n * <script>\n * \timport { createAttachmentKey } from 'svelte/attachments';\n *\n * \tconst props = {\n * \t\tclass: 'cool',\n * \t\tonclick: () => alert('clicked'),\n * \t\t[createAttachmentKey()]: (node) => {\n * \t\t\tnode.textContent = 'attached!';\n * \t\t}\n * \t};\n * </script>\n *\n * <button {...props}>click me</button>\n * ```\n * @since 5.29\n */\nexport function createAttachmentKey() {\n\treturn Symbol(ATTACHMENT_KEY);\n}\n\n/**\n * Converts an [action](https://svelte.dev/docs/svelte/use) into an [attachment](https://svelte.dev/docs/svelte/@attach) keeping the same behavior.\n * It's useful if you want to start using attachments on components but you have actions provided by a library.\n *\n * Note that the second argument, if provided, must be a function that _returns_ the argument to the\n * action function, not the argument itself.\n *\n * ```svelte\n * <!-- with an action -->\n * <div use:foo={bar}>...</div>\n *\n * <!-- with an attachment -->\n * <div {@attach fromAction(foo, () => bar)}>...</div>\n * ```\n * @template {EventTarget} E\n * @template {unknown} T\n * @overload\n * @param {Action<E, T> | ((element: E, arg: T) => void | ActionReturn<T>)} action The action function\n * @param {() => T} fn A function that returns the argument for the action\n * @returns {Attachment<E>}\n */\n/**\n * Converts an [action](https://svelte.dev/docs/svelte/use) into an [attachment](https://svelte.dev/docs/svelte/@attach) keeping the same behavior.\n * It's useful if you want to start using attachments on components but you have actions provided by a library.\n *\n * Note that the second argument, if provided, must be a function that _returns_ the argument to the\n * action function, not the argument itself.\n *\n * ```svelte\n * <!-- with an action -->\n * <div use:foo={bar}>...</div>\n *\n * <!-- with an attachment -->\n * <div {@attach fromAction(foo, () => bar)}>...</div>\n * ```\n * @template {EventTarget} E\n * @overload\n * @param {Action<E, void> | ((element: E) => void | ActionReturn<void>)} action The action function\n * @returns {Attachment<E>}\n */\n/**\n * Converts an [action](https://svelte.dev/docs/svelte/use) into an [attachment](https://svelte.dev/docs/svelte/@attach) keeping the same behavior.\n * It's useful if you want to start using attachments on components but you have actions provided by a library.\n *\n * Note that the second argument, if provided, must be a function that _returns_ the argument to the\n * action function, not the argument itself.\n *\n * ```svelte\n * <!-- with an action -->\n * <div use:foo={bar}>...</div>\n *\n * <!-- with an attachment -->\n * <div {@attach fromAction(foo, () => bar)}>...</div>\n * ```\n *\n * @template {EventTarget} E\n * @template {unknown} T\n * @param {Action<E, T> | ((element: E, arg: T) => void | ActionReturn<T>)} action The action function\n * @param {() => T} fn A function that returns the argument for the action\n * @returns {Attachment<E>}\n * @since 5.32\n */\nexport function fromAction(action, fn = /** @type {() => T} */ (noop)) {\n\treturn (element) => {\n\t\tconst { update, destroy } = untrack(() => action(element, fn()) ?? {});\n\n\t\tif (update) {\n\t\t\tvar ran = false;\n\t\t\trender_effect(() => {\n\t\t\t\tconst arg = fn();\n\t\t\t\tif (ran) update(arg);\n\t\t\t});\n\t\t\tran = true;\n\t\t}\n\n\t\tif (destroy) {\n\t\t\tteardown(destroy);\n\t\t}\n\t};\n}\n"],
|
|
"mappings": "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",
|
|
"names": ["hash", "element", "comment", "component", "effect", "component", "prop", "key", "_a", "component", "transition", "key", "offscreen", "effect", "branch", "v", "key", "fn", "key", "element", "key", "state", "effect", "fallback", "index", "key", "item", "next", "_a", "_b", "element", "effect", "hash", "next", "html", "node", "key", "tag", "snippet", "component", "element", "html", "component", "now", "element", "effect", "animation", "to", "transition", "_a", "run", "block", "aborted", "tick", "keyframes", "styles", "t", "element", "anchor", "hash", "action", "clsx", "hash", "key", "append_styles", "hash", "key", "next", "key", "get", "set", "element", "prop", "next", "key", "clsx", "input", "async", "element", "update", "event", "get", "set", "hydration_mismatch", "index", "input", "get", "set", "update", "update", "prop", "element", "listeners", "set", "update", "element", "get", "set", "get", "set", "props", "key", "event", "key", "key", "event", "run", "set", "update", "run", "derived", "pending", "get", "get", "key", "fallback", "effect", "slot", "key", "attr", "prop", "element", "component", "action", "element", "update"]
|
|
}
|