{"version":3,"file":"utils.bynYNLZa.js","sources":["../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/shared/utils.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/constants.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/reactivity/equality.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/errors.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/flags/index.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/reactivity/sources.js","../../../../../../node_modules/.pnpm/esm-env@1.1.4/node_modules/esm-env/browser.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/constants.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/warnings.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/dom/hydration.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/dom/operations.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/reactivity/deriveds.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/reactivity/effects.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/dom/task.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/shared/errors.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/runtime.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/store/utils.js"],"sourcesContent":["// Store the references to globals in case someone tries to monkey patch these, causing the below\n// to de-opt (this occurs often when using popular extensions).\nexport var is_array = Array.isArray;\nexport var array_from = Array.from;\nexport var object_keys = Object.keys;\nexport var define_property = Object.defineProperty;\nexport var get_descriptor = Object.getOwnPropertyDescriptor;\nexport var get_descriptors = Object.getOwnPropertyDescriptors;\nexport var object_prototype = Object.prototype;\nexport var array_prototype = Array.prototype;\nexport var get_prototype_of = Object.getPrototypeOf;\n\n/**\n * @param {any} thing\n * @returns {thing is Function}\n */\nexport function is_function(thing) {\n\treturn typeof thing === 'function';\n}\n\nexport const noop = () => {};\n\n// Adapted from https://github.com/then/is-promise/blob/master/index.js\n// Distributed under MIT License https://github.com/then/is-promise/blob/master/LICENSE\n\n/**\n * @template [T=any]\n * @param {any} value\n * @returns {value is PromiseLike}\n */\nexport function is_promise(value) {\n\treturn typeof value?.then === 'function';\n}\n\n/** @param {Function} fn */\nexport function run(fn) {\n\treturn fn();\n}\n\n/** @param {Array<() => void>} arr */\nexport function run_all(arr) {\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tarr[i]();\n\t}\n}\n\n/**\n * @template V\n * @param {V} value\n * @param {V | (() => V)} fallback\n * @param {boolean} [lazy]\n * @returns {V}\n */\nexport function fallback(value, fallback, lazy = false) {\n\treturn value === undefined\n\t\t? lazy\n\t\t\t? /** @type {() => V} */ (fallback)()\n\t\t\t: /** @type {V} */ (fallback)\n\t\t: value;\n}\n","export const DERIVED = 1 << 1;\nexport const EFFECT = 1 << 2;\nexport const RENDER_EFFECT = 1 << 3;\nexport const BLOCK_EFFECT = 1 << 4;\nexport const BRANCH_EFFECT = 1 << 5;\nexport const ROOT_EFFECT = 1 << 6;\nexport const UNOWNED = 1 << 7;\nexport const DISCONNECTED = 1 << 8;\nexport const CLEAN = 1 << 9;\nexport const DIRTY = 1 << 10;\nexport const MAYBE_DIRTY = 1 << 11;\nexport const INERT = 1 << 12;\nexport const DESTROYED = 1 << 13;\nexport const EFFECT_RAN = 1 << 14;\n/** 'Transparent' effects do not create a transition boundary */\nexport const EFFECT_TRANSPARENT = 1 << 15;\n/** Svelte 4 legacy mode props need to be handled with deriveds and be recognized elsewhere, hence the dedicated flag */\nexport const LEGACY_DERIVED_PROP = 1 << 16;\nexport const INSPECT_EFFECT = 1 << 17;\nexport const HEAD_EFFECT = 1 << 18;\nexport const EFFECT_HAS_DERIVED = 1 << 19;\n\nexport const STATE_SYMBOL = Symbol('$state');\nexport const STATE_SYMBOL_METADATA = Symbol('$state metadata');\nexport const LOADING_ATTR_SYMBOL = Symbol('');\n","/** @import { Equals } from '#client' */\n/** @type {Equals} */\nexport function equals(value) {\n\treturn value === this.v;\n}\n\n/**\n * @param {unknown} a\n * @param {unknown} b\n * @returns {boolean}\n */\nexport function safe_not_equal(a, b) {\n\treturn a != a\n\t\t? b == b\n\t\t: a !== b || (a !== null && typeof a === 'object') || typeof a === 'function';\n}\n\n/**\n * @param {unknown} a\n * @param {unknown} b\n * @returns {boolean}\n */\nexport function not_equal(a, b) {\n\treturn a !== b;\n}\n\n/** @type {Equals} */\nexport function safe_equals(value) {\n\treturn !safe_not_equal(value, this.v);\n}\n","/* This file is generated by scripts/process-messages/index.js. Do not edit! */\n\nimport { DEV } from 'esm-env';\n\n/**\n * Using `bind:value` together with a checkbox input is not allowed. Use `bind:checked` instead\n * @returns {never}\n */\nexport function bind_invalid_checkbox_value() {\n\tif (DEV) {\n\t\tconst error = new Error(`bind_invalid_checkbox_value\\nUsing \\`bind:value\\` together with a checkbox input is not allowed. Use \\`bind:checked\\` instead`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"bind_invalid_checkbox_value\");\n\t}\n}\n\n/**\n * Component %component% has an export named `%key%` that a consumer component is trying to access using `bind:%key%`, which is disallowed. Instead, use `bind:this` (e.g. `<%name% bind:this={component} />`) and then access the property on the bound component instance (e.g. `component.%key%`)\n * @param {string} component\n * @param {string} key\n * @param {string} name\n * @returns {never}\n */\nexport function bind_invalid_export(component, key, name) {\n\tif (DEV) {\n\t\tconst error = new Error(`bind_invalid_export\\nComponent ${component} has an export named \\`${key}\\` that a consumer component is trying to access using \\`bind:${key}\\`, which is disallowed. Instead, use \\`bind:this\\` (e.g. \\`<${name} bind:this={component} />\\`) and then access the property on the bound component instance (e.g. \\`component.${key}\\`)`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"bind_invalid_export\");\n\t}\n}\n\n/**\n * A component is attempting to bind to a non-bindable property `%key%` belonging to %component% (i.e. `<%name% bind:%key%={...}>`). To mark a property as bindable: `let { %key% = $bindable() } = $props()`\n * @param {string} key\n * @param {string} component\n * @param {string} name\n * @returns {never}\n */\nexport function bind_not_bindable(key, component, name) {\n\tif (DEV) {\n\t\tconst error = new Error(`bind_not_bindable\\nA component is attempting to bind to a non-bindable property \\`${key}\\` belonging to ${component} (i.e. \\`<${name} bind:${key}={...}>\\`). To mark a property as bindable: \\`let { ${key} = $bindable() } = $props()\\``);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"bind_not_bindable\");\n\t}\n}\n\n/**\n * %parent% called `%method%` on an instance of %component%, which is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information\n * @param {string} parent\n * @param {string} method\n * @param {string} component\n * @returns {never}\n */\nexport function component_api_changed(parent, method, component) {\n\tif (DEV) {\n\t\tconst error = new Error(`component_api_changed\\n${parent} called \\`${method}\\` on an instance of ${component}, which is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"component_api_changed\");\n\t}\n}\n\n/**\n * Attempted to instantiate %component% with `new %name%`, which is no longer valid in Svelte 5. If this component is not under your control, set the `compatibility.componentApi` compiler option to `4` to keep it working. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information\n * @param {string} component\n * @param {string} name\n * @returns {never}\n */\nexport function component_api_invalid_new(component, name) {\n\tif (DEV) {\n\t\tconst error = new Error(`component_api_invalid_new\\nAttempted to instantiate ${component} with \\`new ${name}\\`, which is no longer valid in Svelte 5. If this component is not under your control, set the \\`compatibility.componentApi\\` compiler option to \\`4\\` to keep it working. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"component_api_invalid_new\");\n\t}\n}\n\n/**\n * A derived value cannot reference itself recursively\n * @returns {never}\n */\nexport function derived_references_self() {\n\tif (DEV) {\n\t\tconst error = new Error(`derived_references_self\\nA derived value cannot reference itself recursively`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"derived_references_self\");\n\t}\n}\n\n/**\n * Keyed each block has duplicate key `%value%` at indexes %a% and %b%\n * @param {string} a\n * @param {string} b\n * @param {string | undefined | null} [value]\n * @returns {never}\n */\nexport function each_key_duplicate(a, b, value) {\n\tif (DEV) {\n\t\tconst error = new Error(`each_key_duplicate\\n${value ? `Keyed each block has duplicate key \\`${value}\\` at indexes ${a} and ${b}` : `Keyed each block has duplicate key at indexes ${a} and ${b}`}`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"each_key_duplicate\");\n\t}\n}\n\n/**\n * `%rune%` cannot be used inside an effect cleanup function\n * @param {string} rune\n * @returns {never}\n */\nexport function effect_in_teardown(rune) {\n\tif (DEV) {\n\t\tconst error = new Error(`effect_in_teardown\\n\\`${rune}\\` cannot be used inside an effect cleanup function`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"effect_in_teardown\");\n\t}\n}\n\n/**\n * Effect cannot be created inside a `$derived` value that was not itself created inside an effect\n * @returns {never}\n */\nexport function effect_in_unowned_derived() {\n\tif (DEV) {\n\t\tconst error = new Error(`effect_in_unowned_derived\\nEffect cannot be created inside a \\`$derived\\` value that was not itself created inside an effect`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"effect_in_unowned_derived\");\n\t}\n}\n\n/**\n * `%rune%` can only be used inside an effect (e.g. during component initialisation)\n * @param {string} rune\n * @returns {never}\n */\nexport function effect_orphan(rune) {\n\tif (DEV) {\n\t\tconst error = new Error(`effect_orphan\\n\\`${rune}\\` can only be used inside an effect (e.g. during component initialisation)`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"effect_orphan\");\n\t}\n}\n\n/**\n * Maximum update depth exceeded. This can happen when a reactive block or effect repeatedly sets a new value. Svelte limits the number of nested updates to prevent infinite loops\n * @returns {never}\n */\nexport function effect_update_depth_exceeded() {\n\tif (DEV) {\n\t\tconst error = new Error(`effect_update_depth_exceeded\\nMaximum update depth exceeded. This can happen when a reactive block or effect repeatedly sets a new value. Svelte limits the number of nested updates to prevent infinite loops`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"effect_update_depth_exceeded\");\n\t}\n}\n\n/**\n * Failed to hydrate the application\n * @returns {never}\n */\nexport function hydration_failed() {\n\tif (DEV) {\n\t\tconst error = new Error(`hydration_failed\\nFailed to hydrate the application`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"hydration_failed\");\n\t}\n}\n\n/**\n * Could not `{@render}` snippet due to the expression being `null` or `undefined`. Consider using optional chaining `{@render snippet?.()}`\n * @returns {never}\n */\nexport function invalid_snippet() {\n\tif (DEV) {\n\t\tconst error = new Error(`invalid_snippet\\nCould not \\`{@render}\\` snippet due to the expression being \\`null\\` or \\`undefined\\`. Consider using optional chaining \\`{@render snippet?.()}\\``);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"invalid_snippet\");\n\t}\n}\n\n/**\n * `%name%(...)` cannot be used in runes mode\n * @param {string} name\n * @returns {never}\n */\nexport function lifecycle_legacy_only(name) {\n\tif (DEV) {\n\t\tconst error = new Error(`lifecycle_legacy_only\\n\\`${name}(...)\\` cannot be used in runes mode`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"lifecycle_legacy_only\");\n\t}\n}\n\n/**\n * Cannot do `bind:%key%={undefined}` when `%key%` has a fallback value\n * @param {string} key\n * @returns {never}\n */\nexport function props_invalid_value(key) {\n\tif (DEV) {\n\t\tconst error = new Error(`props_invalid_value\\nCannot do \\`bind:${key}={undefined}\\` when \\`${key}\\` has a fallback value`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"props_invalid_value\");\n\t}\n}\n\n/**\n * Rest element properties of `$props()` such as `%property%` are readonly\n * @param {string} property\n * @returns {never}\n */\nexport function props_rest_readonly(property) {\n\tif (DEV) {\n\t\tconst error = new Error(`props_rest_readonly\\nRest element properties of \\`$props()\\` such as \\`${property}\\` are readonly`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"props_rest_readonly\");\n\t}\n}\n\n/**\n * The `%rune%` rune is only available inside `.svelte` and `.svelte.js/ts` files\n * @param {string} rune\n * @returns {never}\n */\nexport function rune_outside_svelte(rune) {\n\tif (DEV) {\n\t\tconst error = new Error(`rune_outside_svelte\\nThe \\`${rune}\\` rune is only available inside \\`.svelte\\` and \\`.svelte.js/ts\\` files`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"rune_outside_svelte\");\n\t}\n}\n\n/**\n * Property descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\n * @returns {never}\n */\nexport function state_descriptors_fixed() {\n\tif (DEV) {\n\t\tconst error = new Error(`state_descriptors_fixed\\nProperty descriptors defined on \\`$state\\` objects must contain \\`value\\` and always be \\`enumerable\\`, \\`configurable\\` and \\`writable\\`.`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"state_descriptors_fixed\");\n\t}\n}\n\n/**\n * Cannot set prototype of `$state` object\n * @returns {never}\n */\nexport function state_prototype_fixed() {\n\tif (DEV) {\n\t\tconst error = new Error(`state_prototype_fixed\\nCannot set prototype of \\`$state\\` object`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"state_prototype_fixed\");\n\t}\n}\n\n/**\n * Reading state that was created inside the same derived is forbidden. Consider using `untrack` to read locally created state\n * @returns {never}\n */\nexport function state_unsafe_local_read() {\n\tif (DEV) {\n\t\tconst error = new Error(`state_unsafe_local_read\\nReading state that was created inside the same derived is forbidden. Consider using \\`untrack\\` to read locally created state`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"state_unsafe_local_read\");\n\t}\n}\n\n/**\n * Updating state inside a derived or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\n * @returns {never}\n */\nexport function state_unsafe_mutation() {\n\tif (DEV) {\n\t\tconst error = new Error(`state_unsafe_mutation\\nUpdating state inside a derived or a template expression is forbidden. If the value should not be reactive, declare it without \\`$state\\``);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"state_unsafe_mutation\");\n\t}\n}","export let legacy_mode_flag = false;\n\nexport function enable_legacy_mode_flag() {\n\tlegacy_mode_flag = true;\n}\n","/** @import { Derived, Effect, Reaction, Source, Value } from '#client' */\nimport { DEV } from 'esm-env';\nimport {\n\tcomponent_context,\n\tactive_reaction,\n\tnew_deps,\n\tactive_effect,\n\tuntracked_writes,\n\tget,\n\tis_runes,\n\tschedule_effect,\n\tset_untracked_writes,\n\tset_signal_status,\n\tuntrack,\n\tincrement_version,\n\tupdate_effect,\n\tderived_sources,\n\tset_derived_sources,\n\tcheck_dirtiness,\n\tset_is_flushing_effect,\n\tis_flushing_effect\n} from '../runtime.js';\nimport { equals, safe_equals } from './equality.js';\nimport {\n\tCLEAN,\n\tDERIVED,\n\tDIRTY,\n\tBRANCH_EFFECT,\n\tINSPECT_EFFECT,\n\tUNOWNED,\n\tMAYBE_DIRTY,\n\tBLOCK_EFFECT\n} from '../constants.js';\nimport * as e from '../errors.js';\nimport { legacy_mode_flag } from '../../flags/index.js';\n\nexport let inspect_effects = new Set();\n\n/**\n * @param {Set} v\n */\nexport function set_inspect_effects(v) {\n\tinspect_effects = v;\n}\n\n/**\n * @template V\n * @param {V} v\n * @returns {Source}\n */\nexport function source(v) {\n\treturn {\n\t\tf: 0, // TODO ideally we could skip this altogether, but it causes type errors\n\t\tv,\n\t\treactions: null,\n\t\tequals,\n\t\tversion: 0\n\t};\n}\n\n/**\n * @template V\n * @param {V} v\n */\nexport function state(v) {\n\treturn push_derived_source(source(v));\n}\n\n/**\n * @template V\n * @param {V} initial_value\n * @param {boolean} [immutable]\n * @returns {Source}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function mutable_source(initial_value, immutable = false) {\n\tconst s = source(initial_value);\n\tif (!immutable) {\n\t\ts.equals = safe_equals;\n\t}\n\n\t// bind the signal to the component context, in case we need to\n\t// track updates to trigger beforeUpdate/afterUpdate callbacks\n\tif (legacy_mode_flag && component_context !== null && component_context.l !== null) {\n\t\t(component_context.l.s ??= []).push(s);\n\t}\n\n\treturn s;\n}\n\n/**\n * @template V\n * @param {V} v\n * @param {boolean} [immutable]\n * @returns {Source}\n */\nexport function mutable_state(v, immutable = false) {\n\treturn push_derived_source(mutable_source(v, immutable));\n}\n\n/**\n * @template V\n * @param {Source} source\n */\n/*#__NO_SIDE_EFFECTS__*/\nfunction push_derived_source(source) {\n\tif (active_reaction !== null && (active_reaction.f & DERIVED) !== 0) {\n\t\tif (derived_sources === null) {\n\t\t\tset_derived_sources([source]);\n\t\t} else {\n\t\t\tderived_sources.push(source);\n\t\t}\n\t}\n\n\treturn source;\n}\n\n/**\n * @template V\n * @param {Value} source\n * @param {V} value\n */\nexport function mutate(source, value) {\n\tset(\n\t\tsource,\n\t\tuntrack(() => get(source))\n\t);\n\treturn value;\n}\n\n/**\n * @template V\n * @param {Source} source\n * @param {V} value\n * @returns {V}\n */\nexport function set(source, value) {\n\tif (\n\t\tactive_reaction !== null &&\n\t\tis_runes() &&\n\t\t(active_reaction.f & (DERIVED | BLOCK_EFFECT)) !== 0 &&\n\t\t// If the source was created locally within the current derived, then\n\t\t// we allow the mutation.\n\t\t(derived_sources === null || !derived_sources.includes(source))\n\t) {\n\t\te.state_unsafe_mutation();\n\t}\n\n\treturn internal_set(source, value);\n}\n\n/**\n * @template V\n * @param {Source} source\n * @param {V} value\n * @returns {V}\n */\nexport function internal_set(source, value) {\n\tif (!source.equals(value)) {\n\t\tsource.v = value;\n\t\tsource.version = increment_version();\n\n\t\tmark_reactions(source, DIRTY);\n\n\t\t// If the current signal is running for the first time, it won't have any\n\t\t// reactions as we only allocate and assign the reactions after the signal\n\t\t// has fully executed. So in the case of ensuring it registers the reaction\n\t\t// properly for itself, we need to ensure the current effect actually gets\n\t\t// scheduled. i.e: `$effect(() => x++)`\n\t\tif (\n\t\t\tis_runes() &&\n\t\t\tactive_effect !== null &&\n\t\t\t(active_effect.f & CLEAN) !== 0 &&\n\t\t\t(active_effect.f & BRANCH_EFFECT) === 0\n\t\t) {\n\t\t\tif (new_deps !== null && new_deps.includes(source)) {\n\t\t\t\tset_signal_status(active_effect, DIRTY);\n\t\t\t\tschedule_effect(active_effect);\n\t\t\t} else {\n\t\t\t\tif (untracked_writes === null) {\n\t\t\t\t\tset_untracked_writes([source]);\n\t\t\t\t} else {\n\t\t\t\t\tuntracked_writes.push(source);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (DEV && inspect_effects.size > 0) {\n\t\t\tconst inspects = Array.from(inspect_effects);\n\t\t\tvar previously_flushing_effect = is_flushing_effect;\n\t\t\tset_is_flushing_effect(true);\n\t\t\ttry {\n\t\t\t\tfor (const effect of inspects) {\n\t\t\t\t\t// Mark clean inspect-effects as maybe dirty and then check their dirtiness\n\t\t\t\t\t// instead of just updating the effects - this way we avoid overfiring.\n\t\t\t\t\tif ((effect.f & CLEAN) !== 0) {\n\t\t\t\t\t\tset_signal_status(effect, MAYBE_DIRTY);\n\t\t\t\t\t}\n\t\t\t\t\tif (check_dirtiness(effect)) {\n\t\t\t\t\t\tupdate_effect(effect);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tset_is_flushing_effect(previously_flushing_effect);\n\t\t\t}\n\t\t\tinspect_effects.clear();\n\t\t}\n\t}\n\n\treturn value;\n}\n\n/**\n * @param {Value} signal\n * @param {number} status should be DIRTY or MAYBE_DIRTY\n * @returns {void}\n */\nfunction mark_reactions(signal, status) {\n\tvar reactions = signal.reactions;\n\tif (reactions === null) return;\n\n\tvar runes = is_runes();\n\tvar length = reactions.length;\n\n\tfor (var i = 0; i < length; i++) {\n\t\tvar reaction = reactions[i];\n\t\tvar flags = reaction.f;\n\n\t\t// Skip any effects that are already dirty\n\t\tif ((flags & DIRTY) !== 0) continue;\n\n\t\t// In legacy mode, skip the current effect to prevent infinite loops\n\t\tif (!runes && reaction === active_effect) continue;\n\n\t\t// Inspect effects need to run immediately, so that the stack trace makes sense\n\t\tif (DEV && (flags & INSPECT_EFFECT) !== 0) {\n\t\t\tinspect_effects.add(reaction);\n\t\t\tcontinue;\n\t\t}\n\n\t\tset_signal_status(reaction, status);\n\n\t\t// If the signal a) was previously clean or b) is an unowned derived, then mark it\n\t\tif ((flags & (CLEAN | UNOWNED)) !== 0) {\n\t\t\tif ((flags & DERIVED) !== 0) {\n\t\t\t\tmark_reactions(/** @type {Derived} */ (reaction), MAYBE_DIRTY);\n\t\t\t} else {\n\t\t\t\tschedule_effect(/** @type {Effect} */ (reaction));\n\t\t\t}\n\t\t}\n\t}\n}\n","export const BROWSER = true;\nexport const DEV = false;\nexport const NODE = false;\n","export const EACH_ITEM_REACTIVE = 1;\nexport const EACH_INDEX_REACTIVE = 1 << 1;\n/** See EachBlock interface metadata.is_controlled for an explanation what this is */\nexport const EACH_IS_CONTROLLED = 1 << 2;\nexport const EACH_IS_ANIMATED = 1 << 3;\nexport const EACH_ITEM_IMMUTABLE = 1 << 4;\n\nexport const PROPS_IS_IMMUTABLE = 1;\nexport const PROPS_IS_RUNES = 1 << 1;\nexport const PROPS_IS_UPDATED = 1 << 2;\nexport const PROPS_IS_BINDABLE = 1 << 3;\nexport const PROPS_IS_LAZY_INITIAL = 1 << 4;\n\nexport const TRANSITION_IN = 1;\nexport const TRANSITION_OUT = 1 << 1;\nexport const TRANSITION_GLOBAL = 1 << 2;\n\nexport const TEMPLATE_FRAGMENT = 1;\nexport const TEMPLATE_USE_IMPORT_NODE = 1 << 1;\n\nexport const HYDRATION_START = '[';\n/** used to indicate that an `{:else}...` block was rendered */\nexport const HYDRATION_START_ELSE = '[!';\nexport const HYDRATION_END = ']';\nexport const HYDRATION_ERROR = {};\n\nexport const ELEMENT_IS_NAMESPACED = 1;\nexport const ELEMENT_PRESERVE_ATTRIBUTE_CASE = 1 << 1;\n\nexport const UNINITIALIZED = Symbol();\n\n// Dev-time component properties\nexport const FILENAME = Symbol('filename');\nexport const HMR = Symbol('hmr');\n\nexport const NAMESPACE_SVG = 'http://www.w3.org/2000/svg';\nexport const NAMESPACE_MATHML = 'http://www.w3.org/1998/Math/MathML';\n\n// we use a list of ignorable runtime warnings because not every runtime warning\n// can be ignored and we want to keep the validation for svelte-ignore in place\nexport const IGNORABLE_RUNTIME_WARNINGS = /** @type {const} */ ([\n\t'state_snapshot_uncloneable',\n\t'binding_property_non_reactive',\n\t'hydration_attribute_changed',\n\t'hydration_html_changed',\n\t'ownership_invalid_binding',\n\t'ownership_invalid_mutation'\n]);\n\n/**\n * Whitespace inside one of these elements will not result in\n * a whitespace node being created in any circumstances. (This\n * list is almost certainly very incomplete)\n * TODO this is currently unused\n */\nexport const ELEMENTS_WITHOUT_TEXT = ['audio', 'datalist', 'dl', 'optgroup', 'select', 'video'];\n","/* This file is generated by scripts/process-messages/index.js. Do not edit! */\n\nimport { DEV } from 'esm-env';\n\nvar bold = 'font-weight: bold';\nvar normal = 'font-weight: normal';\n\n/**\n * `%binding%` (%location%) is binding to a non-reactive property\n * @param {string} binding\n * @param {string | undefined | null} [location]\n */\nexport function binding_property_non_reactive(binding, location) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] binding_property_non_reactive\\n%c${location ? `\\`${binding}\\` (${location}) is binding to a non-reactive property` : `\\`${binding}\\` is binding to a non-reactive property`}`, bold, normal);\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tconsole.warn(\"binding_property_non_reactive\");\n\t}\n}\n\n/**\n * Your `console.%method%` contained `$state` proxies. Consider using `$inspect(...)` or `$state.snapshot(...)` instead\n * @param {string} method\n */\nexport function console_log_state(method) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] console_log_state\\n%cYour \\`console.${method}\\` contained \\`$state\\` proxies. Consider using \\`$inspect(...)\\` or \\`$state.snapshot(...)\\` instead`, bold, normal);\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tconsole.warn(\"console_log_state\");\n\t}\n}\n\n/**\n * %handler% should be a function. Did you mean to %suggestion%?\n * @param {string} handler\n * @param {string} suggestion\n */\nexport function event_handler_invalid(handler, suggestion) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] event_handler_invalid\\n%c${handler} should be a function. Did you mean to ${suggestion}?`, bold, normal);\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tconsole.warn(\"event_handler_invalid\");\n\t}\n}\n\n/**\n * The `%attribute%` attribute on `%html%` changed its value between server and client renders. The client value, `%value%`, will be ignored in favour of the server value\n * @param {string} attribute\n * @param {string} html\n * @param {string} value\n */\nexport function hydration_attribute_changed(attribute, html, value) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] hydration_attribute_changed\\n%cThe \\`${attribute}\\` attribute on \\`${html}\\` changed its value between server and client renders. The client value, \\`${value}\\`, will be ignored in favour of the server value`, bold, normal);\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tconsole.warn(\"hydration_attribute_changed\");\n\t}\n}\n\n/**\n * The value of an `{@html ...}` block %location% changed between server and client renders. The client value will be ignored in favour of the server value\n * @param {string | undefined | null} [location]\n */\nexport function hydration_html_changed(location) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] hydration_html_changed\\n%c${location ? `The value of an \\`{@html ...}\\` block ${location} changed between server and client renders. The client value will be ignored in favour of the server value` : \"The value of an `{@html ...}` block changed between server and client renders. The client value will be ignored in favour of the server value\"}`, bold, normal);\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tconsole.warn(\"hydration_html_changed\");\n\t}\n}\n\n/**\n * Hydration failed because the initial UI does not match what was rendered on the server. The error occurred near %location%\n * @param {string | undefined | null} [location]\n */\nexport function hydration_mismatch(location) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] hydration_mismatch\\n%c${location ? `Hydration failed because the initial UI does not match what was rendered on the server. The error occurred near ${location}` : \"Hydration failed because the initial UI does not match what was rendered on the server\"}`, bold, normal);\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tconsole.warn(\"hydration_mismatch\");\n\t}\n}\n\n/**\n * The `render` function passed to `createRawSnippet` should return HTML for a single element\n */\nexport function invalid_raw_snippet_render() {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] invalid_raw_snippet_render\\n%cThe \\`render\\` function passed to \\`createRawSnippet\\` should return HTML for a single element`, bold, normal);\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tconsole.warn(\"invalid_raw_snippet_render\");\n\t}\n}\n\n/**\n * Detected a migrated `$:` reactive block in `%filename%` that both accesses and updates the same reactive value. This may cause recursive updates when converted to an `$effect`.\n * @param {string} filename\n */\nexport function legacy_recursive_reactive_block(filename) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] legacy_recursive_reactive_block\\n%cDetected a migrated \\`$:\\` reactive block in \\`${filename}\\` that both accesses and updates the same reactive value. This may cause recursive updates when converted to an \\`$effect\\`.`, bold, normal);\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tconsole.warn(\"legacy_recursive_reactive_block\");\n\t}\n}\n\n/**\n * Tried to unmount a component that was not mounted\n */\nexport function lifecycle_double_unmount() {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] lifecycle_double_unmount\\n%cTried to unmount a component that was not mounted`, bold, normal);\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tconsole.warn(\"lifecycle_double_unmount\");\n\t}\n}\n\n/**\n * %parent% passed a value to %child% with `bind:`, but the value is owned by %owner%. Consider creating a binding between %owner% and %parent%\n * @param {string} parent\n * @param {string} child\n * @param {string} owner\n */\nexport function ownership_invalid_binding(parent, child, owner) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] ownership_invalid_binding\\n%c${parent} passed a value to ${child} with \\`bind:\\`, but the value is owned by ${owner}. Consider creating a binding between ${owner} and ${parent}`, bold, normal);\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tconsole.warn(\"ownership_invalid_binding\");\n\t}\n}\n\n/**\n * %component% mutated a value owned by %owner%. This is strongly discouraged. Consider passing values to child components with `bind:`, or use a callback instead\n * @param {string | undefined | null} [component]\n * @param {string | undefined | null} [owner]\n */\nexport function ownership_invalid_mutation(component, owner) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] ownership_invalid_mutation\\n%c${component ? `${component} mutated a value owned by ${owner}. This is strongly discouraged. Consider passing values to child components with \\`bind:\\`, or use a callback instead` : \"Mutating a value outside the component that created it is strongly discouraged. Consider passing values to child components with `bind:`, or use a callback instead\"}`, bold, normal);\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tconsole.warn(\"ownership_invalid_mutation\");\n\t}\n}\n\n/**\n * Reactive `$state(...)` proxies and the values they proxy have different identities. Because of this, comparisons with `%operator%` will produce unexpected results\n * @param {string} operator\n */\nexport function state_proxy_equality_mismatch(operator) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] state_proxy_equality_mismatch\\n%cReactive \\`$state(...)\\` proxies and the values they proxy have different identities. Because of this, comparisons with \\`${operator}\\` will produce unexpected results`, bold, normal);\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tconsole.warn(\"state_proxy_equality_mismatch\");\n\t}\n}","/** @import { TemplateNode } from '#client' */\n\nimport {\n\tHYDRATION_END,\n\tHYDRATION_ERROR,\n\tHYDRATION_START,\n\tHYDRATION_START_ELSE\n} from '../../../constants.js';\nimport * as w from '../warnings.js';\nimport { get_next_sibling } from './operations.js';\n\n/**\n * Use this variable to guard everything related to hydration code so it can be treeshaken out\n * if the user doesn't use the `hydrate` method and these code paths are therefore not needed.\n */\nexport let hydrating = false;\n\n/** @param {boolean} value */\nexport function set_hydrating(value) {\n\thydrating = value;\n}\n\n/**\n * The node that is currently being hydrated. This starts out as the first node inside the opening\n * comment, and updates each time a component calls `$.child(...)` or `$.sibling(...)`.\n * When entering a block (e.g. `{#if ...}`), `hydrate_node` is the block opening comment; by the\n * time we leave the block it is the closing comment, which serves as the block's anchor.\n * @type {TemplateNode}\n */\nexport let hydrate_node;\n\n/** @param {TemplateNode} node */\nexport function set_hydrate_node(node) {\n\tif (node === null) {\n\t\tw.hydration_mismatch();\n\t\tthrow HYDRATION_ERROR;\n\t}\n\n\treturn (hydrate_node = node);\n}\n\nexport function hydrate_next() {\n\treturn set_hydrate_node(/** @type {TemplateNode} */ (get_next_sibling(hydrate_node)));\n}\n\n/** @param {TemplateNode} node */\nexport function reset(node) {\n\tif (!hydrating) return;\n\n\t// If the node has remaining siblings, something has gone wrong\n\tif (get_next_sibling(hydrate_node) !== null) {\n\t\tw.hydration_mismatch();\n\t\tthrow HYDRATION_ERROR;\n\t}\n\n\thydrate_node = node;\n}\n\n/**\n * @param {HTMLTemplateElement} template\n */\nexport function hydrate_template(template) {\n\tif (hydrating) {\n\t\t// @ts-expect-error TemplateNode doesn't include DocumentFragment, but it's actually fine\n\t\thydrate_node = template.content;\n\t}\n}\n\nexport function next(count = 1) {\n\tif (hydrating) {\n\t\tvar i = count;\n\t\tvar node = hydrate_node;\n\n\t\twhile (i--) {\n\t\t\tnode = /** @type {TemplateNode} */ (get_next_sibling(node));\n\t\t}\n\n\t\thydrate_node = node;\n\t}\n}\n\n/**\n * Removes all nodes starting at `hydrate_node` up until the next hydration end comment\n */\nexport function remove_nodes() {\n\tvar depth = 0;\n\tvar node = hydrate_node;\n\n\twhile (true) {\n\t\tif (node.nodeType === 8) {\n\t\t\tvar data = /** @type {Comment} */ (node).data;\n\n\t\t\tif (data === HYDRATION_END) {\n\t\t\t\tif (depth === 0) return node;\n\t\t\t\tdepth -= 1;\n\t\t\t} else if (data === HYDRATION_START || data === HYDRATION_START_ELSE) {\n\t\t\t\tdepth += 1;\n\t\t\t}\n\t\t}\n\n\t\tvar next = /** @type {TemplateNode} */ (get_next_sibling(node));\n\t\tnode.remove();\n\t\tnode = next;\n\t}\n}\n","/** @import { TemplateNode } from '#client' */\nimport { hydrate_node, hydrating, set_hydrate_node } from './hydration.js';\nimport { DEV } from 'esm-env';\nimport { init_array_prototype_warnings } from '../dev/equality.js';\nimport { get_descriptor } from '../../shared/utils.js';\n\n// export these for reference in the compiled code, making global name deduplication unnecessary\n/** @type {Window} */\nexport var $window;\n\n/** @type {Document} */\nexport var $document;\n\n/** @type {() => Node | null} */\nvar first_child_getter;\n/** @type {() => Node | null} */\nvar next_sibling_getter;\n\n/**\n * Initialize these lazily to avoid issues when using the runtime in a server context\n * where these globals are not available while avoiding a separate server entry point\n */\nexport function init_operations() {\n\tif ($window !== undefined) {\n\t\treturn;\n\t}\n\n\t$window = window;\n\t$document = document;\n\n\tvar element_prototype = Element.prototype;\n\tvar node_prototype = Node.prototype;\n\n\t// @ts-ignore\n\tfirst_child_getter = get_descriptor(node_prototype, 'firstChild').get;\n\t// @ts-ignore\n\tnext_sibling_getter = get_descriptor(node_prototype, 'nextSibling').get;\n\n\t// the following assignments improve perf of lookups on DOM nodes\n\t// @ts-expect-error\n\telement_prototype.__click = undefined;\n\t// @ts-expect-error\n\telement_prototype.__className = '';\n\t// @ts-expect-error\n\telement_prototype.__attributes = null;\n\t// @ts-expect-error\n\telement_prototype.__styles = null;\n\t// @ts-expect-error\n\telement_prototype.__e = undefined;\n\n\t// @ts-expect-error\n\tText.prototype.__t = undefined;\n\n\tif (DEV) {\n\t\t// @ts-expect-error\n\t\telement_prototype.__svelte_meta = null;\n\n\t\tinit_array_prototype_warnings();\n\t}\n}\n\n/**\n * @param {string} value\n * @returns {Text}\n */\nexport function create_text(value = '') {\n\treturn document.createTextNode(value);\n}\n\n/**\n * @template {Node} N\n * @param {N} node\n * @returns {Node | null}\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function get_first_child(node) {\n\treturn first_child_getter.call(node);\n}\n\n/**\n * @template {Node} N\n * @param {N} node\n * @returns {Node | null}\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function get_next_sibling(node) {\n\treturn next_sibling_getter.call(node);\n}\n\n/**\n * Don't mark this as side-effect-free, hydration needs to walk all nodes\n * @template {Node} N\n * @param {N} node\n * @param {boolean} is_text\n * @returns {Node | null}\n */\nexport function child(node, is_text) {\n\tif (!hydrating) {\n\t\treturn get_first_child(node);\n\t}\n\n\tvar child = /** @type {TemplateNode} */ (get_first_child(hydrate_node));\n\n\t// Child can be null if we have an element with a single child, like `

{text}

`, where `text` is empty\n\tif (child === null) {\n\t\tchild = hydrate_node.appendChild(create_text());\n\t} else if (is_text && child.nodeType !== 3) {\n\t\tvar text = create_text();\n\t\tchild?.before(text);\n\t\tset_hydrate_node(text);\n\t\treturn text;\n\t}\n\n\tset_hydrate_node(child);\n\treturn child;\n}\n\n/**\n * Don't mark this as side-effect-free, hydration needs to walk all nodes\n * @param {DocumentFragment | TemplateNode[]} fragment\n * @param {boolean} is_text\n * @returns {Node | null}\n */\nexport function first_child(fragment, is_text) {\n\tif (!hydrating) {\n\t\t// when not hydrating, `fragment` is a `DocumentFragment` (the result of calling `open_frag`)\n\t\tvar first = /** @type {DocumentFragment} */ (get_first_child(/** @type {Node} */ (fragment)));\n\n\t\t// TODO prevent user comments with the empty string when preserveComments is true\n\t\tif (first instanceof Comment && first.data === '') return get_next_sibling(first);\n\n\t\treturn first;\n\t}\n\n\t// if an {expression} is empty during SSR, there might be no\n\t// text node to hydrate — we must therefore create one\n\tif (is_text && hydrate_node?.nodeType !== 3) {\n\t\tvar text = create_text();\n\n\t\thydrate_node?.before(text);\n\t\tset_hydrate_node(text);\n\t\treturn text;\n\t}\n\n\treturn hydrate_node;\n}\n\n/**\n * Don't mark this as side-effect-free, hydration needs to walk all nodes\n * @param {TemplateNode} node\n * @param {number} count\n * @param {boolean} is_text\n * @returns {Node | null}\n */\nexport function sibling(node, count = 1, is_text = false) {\n\tlet next_sibling = hydrating ? hydrate_node : node;\n\n\twhile (count--) {\n\t\tnext_sibling = /** @type {TemplateNode} */ (get_next_sibling(next_sibling));\n\t}\n\n\tif (!hydrating) {\n\t\treturn next_sibling;\n\t}\n\n\tvar type = next_sibling.nodeType;\n\n\t// if a sibling {expression} is empty during SSR, there might be no\n\t// text node to hydrate — we must therefore create one\n\tif (is_text && type !== 3) {\n\t\tvar text = create_text();\n\t\tnext_sibling?.before(text);\n\t\tset_hydrate_node(text);\n\t\treturn text;\n\t}\n\n\tset_hydrate_node(next_sibling);\n\treturn /** @type {TemplateNode} */ (next_sibling);\n}\n\n/**\n * @template {Node} N\n * @param {N} node\n * @returns {void}\n */\nexport function clear_text_content(node) {\n\tnode.textContent = '';\n}\n","/** @import { Derived, Effect } from '#client' */\nimport { DEV } from 'esm-env';\nimport {\n\tCLEAN,\n\tDERIVED,\n\tDESTROYED,\n\tDIRTY,\n\tEFFECT_HAS_DERIVED,\n\tMAYBE_DIRTY,\n\tUNOWNED\n} from '../constants.js';\nimport {\n\tactive_reaction,\n\tactive_effect,\n\tremove_reactions,\n\tset_signal_status,\n\tskip_reaction,\n\tupdate_reaction,\n\tincrement_version,\n\tset_active_effect,\n\tcomponent_context\n} from '../runtime.js';\nimport { equals, safe_equals } from './equality.js';\nimport * as e from '../errors.js';\nimport { destroy_effect } from './effects.js';\nimport { inspect_effects, set_inspect_effects } from './sources.js';\n\n/**\n * @template V\n * @param {() => V} fn\n * @returns {Derived}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function derived(fn) {\n\tvar flags = DERIVED | DIRTY;\n\n\tif (active_effect === null) {\n\t\tflags |= UNOWNED;\n\t} else {\n\t\t// Since deriveds are evaluated lazily, any effects created inside them are\n\t\t// created too late to ensure that the parent effect is added to the tree\n\t\tactive_effect.f |= EFFECT_HAS_DERIVED;\n\t}\n\n\t/** @type {Derived} */\n\tconst signal = {\n\t\tchildren: null,\n\t\tctx: component_context,\n\t\tdeps: null,\n\t\tequals,\n\t\tf: flags,\n\t\tfn,\n\t\treactions: null,\n\t\tv: /** @type {V} */ (null),\n\t\tversion: 0,\n\t\tparent: active_effect\n\t};\n\n\tif (active_reaction !== null && (active_reaction.f & DERIVED) !== 0) {\n\t\tvar derived = /** @type {Derived} */ (active_reaction);\n\t\t(derived.children ??= []).push(signal);\n\t}\n\n\treturn signal;\n}\n\n/**\n * @template V\n * @param {() => V} fn\n * @returns {Derived}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function derived_safe_equal(fn) {\n\tconst signal = derived(fn);\n\tsignal.equals = safe_equals;\n\treturn signal;\n}\n\n/**\n * @param {Derived} derived\n * @returns {void}\n */\nfunction destroy_derived_children(derived) {\n\tvar children = derived.children;\n\n\tif (children !== null) {\n\t\tderived.children = null;\n\n\t\tfor (var i = 0; i < children.length; i += 1) {\n\t\t\tvar child = children[i];\n\t\t\tif ((child.f & DERIVED) !== 0) {\n\t\t\t\tdestroy_derived(/** @type {Derived} */ (child));\n\t\t\t} else {\n\t\t\t\tdestroy_effect(/** @type {Effect} */ (child));\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * The currently updating deriveds, used to detect infinite recursion\n * in dev mode and provide a nicer error than 'too much recursion'\n * @type {Derived[]}\n */\nlet stack = [];\n\n/**\n * @template T\n * @param {Derived} derived\n * @returns {T}\n */\nexport function execute_derived(derived) {\n\tvar value;\n\tvar prev_active_effect = active_effect;\n\n\tset_active_effect(derived.parent);\n\n\tif (DEV) {\n\t\tlet prev_inspect_effects = inspect_effects;\n\t\tset_inspect_effects(new Set());\n\t\ttry {\n\t\t\tif (stack.includes(derived)) {\n\t\t\t\te.derived_references_self();\n\t\t\t}\n\n\t\t\tstack.push(derived);\n\n\t\t\tdestroy_derived_children(derived);\n\t\t\tvalue = update_reaction(derived);\n\t\t} finally {\n\t\t\tset_active_effect(prev_active_effect);\n\t\t\tset_inspect_effects(prev_inspect_effects);\n\t\t\tstack.pop();\n\t\t}\n\t} else {\n\t\ttry {\n\t\t\tdestroy_derived_children(derived);\n\t\t\tvalue = update_reaction(derived);\n\t\t} finally {\n\t\t\tset_active_effect(prev_active_effect);\n\t\t}\n\t}\n\n\treturn value;\n}\n\n/**\n * @param {Derived} derived\n * @returns {void}\n */\nexport function update_derived(derived) {\n\tvar value = execute_derived(derived);\n\tvar status =\n\t\t(skip_reaction || (derived.f & UNOWNED) !== 0) && derived.deps !== null ? MAYBE_DIRTY : CLEAN;\n\n\tset_signal_status(derived, status);\n\n\tif (!derived.equals(value)) {\n\t\tderived.v = value;\n\t\tderived.version = increment_version();\n\t}\n}\n\n/**\n * @param {Derived} signal\n * @returns {void}\n */\nexport function destroy_derived(signal) {\n\tdestroy_derived_children(signal);\n\tremove_reactions(signal, 0);\n\tset_signal_status(signal, DESTROYED);\n\n\t// TODO we need to ensure we remove the derived from any parent derives\n\tsignal.v = signal.children = signal.deps = signal.ctx = signal.reactions = null;\n}\n","/** @import { ComponentContext, ComponentContextLegacy, Derived, Effect, Reaction, TemplateNode, TransitionManager } from '#client' */\nimport {\n\tcheck_dirtiness,\n\tcomponent_context,\n\tactive_effect,\n\tactive_reaction,\n\tdev_current_component_function,\n\tupdate_effect,\n\tget,\n\tis_destroying_effect,\n\tis_flushing_effect,\n\tremove_reactions,\n\tschedule_effect,\n\tset_active_reaction,\n\tset_is_destroying_effect,\n\tset_is_flushing_effect,\n\tset_signal_status,\n\tuntrack,\n\tskip_reaction\n} from '../runtime.js';\nimport {\n\tDIRTY,\n\tBRANCH_EFFECT,\n\tRENDER_EFFECT,\n\tEFFECT,\n\tDESTROYED,\n\tINERT,\n\tEFFECT_RAN,\n\tBLOCK_EFFECT,\n\tROOT_EFFECT,\n\tEFFECT_TRANSPARENT,\n\tDERIVED,\n\tUNOWNED,\n\tCLEAN,\n\tINSPECT_EFFECT,\n\tHEAD_EFFECT,\n\tMAYBE_DIRTY,\n\tEFFECT_HAS_DERIVED\n} from '../constants.js';\nimport { set } from './sources.js';\nimport * as e from '../errors.js';\nimport { DEV } from 'esm-env';\nimport { define_property } from '../../shared/utils.js';\nimport { get_next_sibling } from '../dom/operations.js';\nimport { destroy_derived } from './deriveds.js';\n\n/**\n * @param {'$effect' | '$effect.pre' | '$inspect'} rune\n */\nexport function validate_effect(rune) {\n\tif (active_effect === null && active_reaction === null) {\n\t\te.effect_orphan(rune);\n\t}\n\n\tif (active_reaction !== null && (active_reaction.f & UNOWNED) !== 0) {\n\t\te.effect_in_unowned_derived();\n\t}\n\n\tif (is_destroying_effect) {\n\t\te.effect_in_teardown(rune);\n\t}\n}\n\n/**\n * @param {Effect} effect\n * @param {Effect} parent_effect\n */\nfunction push_effect(effect, parent_effect) {\n\tvar parent_last = parent_effect.last;\n\tif (parent_last === null) {\n\t\tparent_effect.last = parent_effect.first = effect;\n\t} else {\n\t\tparent_last.next = effect;\n\t\teffect.prev = parent_last;\n\t\tparent_effect.last = effect;\n\t}\n}\n\n/**\n * @param {number} type\n * @param {null | (() => void | (() => void))} fn\n * @param {boolean} sync\n * @param {boolean} push\n * @returns {Effect}\n */\nfunction create_effect(type, fn, sync, push = true) {\n\tvar is_root = (type & ROOT_EFFECT) !== 0;\n\tvar parent_effect = active_effect;\n\n\tif (DEV) {\n\t\t// Ensure the parent is never an inspect effect\n\t\twhile (parent_effect !== null && (parent_effect.f & INSPECT_EFFECT) !== 0) {\n\t\t\tparent_effect = parent_effect.parent;\n\t\t}\n\t}\n\n\t/** @type {Effect} */\n\tvar effect = {\n\t\tctx: component_context,\n\t\tdeps: null,\n\t\tderiveds: null,\n\t\tnodes_start: null,\n\t\tnodes_end: null,\n\t\tf: type | DIRTY,\n\t\tfirst: null,\n\t\tfn,\n\t\tlast: null,\n\t\tnext: null,\n\t\tparent: is_root ? null : parent_effect,\n\t\tprev: null,\n\t\tteardown: null,\n\t\ttransitions: null,\n\t\tversion: 0\n\t};\n\n\tif (DEV) {\n\t\teffect.component_function = dev_current_component_function;\n\t}\n\n\tif (sync) {\n\t\tvar previously_flushing_effect = is_flushing_effect;\n\n\t\ttry {\n\t\t\tset_is_flushing_effect(true);\n\t\t\tupdate_effect(effect);\n\t\t\teffect.f |= EFFECT_RAN;\n\t\t} catch (e) {\n\t\t\tdestroy_effect(effect);\n\t\t\tthrow e;\n\t\t} finally {\n\t\t\tset_is_flushing_effect(previously_flushing_effect);\n\t\t}\n\t} else if (fn !== null) {\n\t\tschedule_effect(effect);\n\t}\n\n\t// if an effect has no dependencies, no DOM and no teardown function,\n\t// don't bother adding it to the effect tree\n\tvar inert =\n\t\tsync &&\n\t\teffect.deps === null &&\n\t\teffect.first === null &&\n\t\teffect.nodes_start === null &&\n\t\teffect.teardown === null &&\n\t\t(effect.f & EFFECT_HAS_DERIVED) === 0;\n\n\tif (!inert && !is_root && push) {\n\t\tif (parent_effect !== null) {\n\t\t\tpush_effect(effect, parent_effect);\n\t\t}\n\n\t\t// if we're in a derived, add the effect there too\n\t\tif (active_reaction !== null && (active_reaction.f & DERIVED) !== 0) {\n\t\t\tvar derived = /** @type {Derived} */ (active_reaction);\n\t\t\t(derived.children ??= []).push(effect);\n\t\t}\n\t}\n\n\treturn effect;\n}\n\n/**\n * Internal representation of `$effect.tracking()`\n * @returns {boolean}\n */\nexport function effect_tracking() {\n\tif (active_reaction === null) {\n\t\treturn false;\n\t}\n\n\t// If it's skipped, that's because we're inside an unowned\n\t// that is not being tracked by another reaction\n\treturn !skip_reaction;\n}\n\n/**\n * @param {() => void} fn\n */\nexport function teardown(fn) {\n\tconst effect = create_effect(RENDER_EFFECT, null, false);\n\tset_signal_status(effect, CLEAN);\n\teffect.teardown = fn;\n\treturn effect;\n}\n\n/**\n * Internal representation of `$effect(...)`\n * @param {() => void | (() => void)} fn\n */\nexport function user_effect(fn) {\n\tvalidate_effect('$effect');\n\n\t// Non-nested `$effect(...)` in a component should be deferred\n\t// until the component is mounted\n\tvar defer =\n\t\tactive_effect !== null &&\n\t\t(active_effect.f & BRANCH_EFFECT) !== 0 &&\n\t\tcomponent_context !== null &&\n\t\t!component_context.m;\n\n\tif (DEV) {\n\t\tdefine_property(fn, 'name', {\n\t\t\tvalue: '$effect'\n\t\t});\n\t}\n\n\tif (defer) {\n\t\tvar context = /** @type {ComponentContext} */ (component_context);\n\t\t(context.e ??= []).push({\n\t\t\tfn,\n\t\t\teffect: active_effect,\n\t\t\treaction: active_reaction\n\t\t});\n\t} else {\n\t\tvar signal = effect(fn);\n\t\treturn signal;\n\t}\n}\n\n/**\n * Internal representation of `$effect.pre(...)`\n * @param {() => void | (() => void)} fn\n * @returns {Effect}\n */\nexport function user_pre_effect(fn) {\n\tvalidate_effect('$effect.pre');\n\tif (DEV) {\n\t\tdefine_property(fn, 'name', {\n\t\t\tvalue: '$effect.pre'\n\t\t});\n\t}\n\treturn render_effect(fn);\n}\n\n/** @param {() => void | (() => void)} fn */\nexport function inspect_effect(fn) {\n\treturn create_effect(INSPECT_EFFECT, fn, true);\n}\n\n/**\n * Internal representation of `$effect.root(...)`\n * @param {() => void | (() => void)} fn\n * @returns {() => void}\n */\nexport function effect_root(fn) {\n\tconst effect = create_effect(ROOT_EFFECT, fn, true);\n\treturn () => {\n\t\tdestroy_effect(effect);\n\t};\n}\n\n/**\n * @param {() => void | (() => void)} fn\n * @returns {Effect}\n */\nexport function effect(fn) {\n\treturn create_effect(EFFECT, fn, false);\n}\n\n/**\n * Internal representation of `$: ..`\n * @param {() => any} deps\n * @param {() => void | (() => void)} fn\n */\nexport function legacy_pre_effect(deps, fn) {\n\tvar context = /** @type {ComponentContextLegacy} */ (component_context);\n\n\t/** @type {{ effect: null | Effect, ran: boolean }} */\n\tvar token = { effect: null, ran: false };\n\tcontext.l.r1.push(token);\n\n\ttoken.effect = render_effect(() => {\n\t\tdeps();\n\n\t\t// If this legacy pre effect has already run before the end of the reset, then\n\t\t// bail out to emulate the same behavior.\n\t\tif (token.ran) return;\n\n\t\ttoken.ran = true;\n\t\tset(context.l.r2, true);\n\t\tuntrack(fn);\n\t});\n}\n\nexport function legacy_pre_effect_reset() {\n\tvar context = /** @type {ComponentContextLegacy} */ (component_context);\n\n\trender_effect(() => {\n\t\tif (!get(context.l.r2)) return;\n\n\t\t// Run dirty `$:` statements\n\t\tfor (var token of context.l.r1) {\n\t\t\tvar effect = token.effect;\n\n\t\t\t// If the effect is CLEAN, then make it MAYBE_DIRTY. This ensures we traverse through\n\t\t\t// the effects dependencies and correctly ensure each dependency is up-to-date.\n\t\t\tif ((effect.f & CLEAN) !== 0) {\n\t\t\t\tset_signal_status(effect, MAYBE_DIRTY);\n\t\t\t}\n\n\t\t\tif (check_dirtiness(effect)) {\n\t\t\t\tupdate_effect(effect);\n\t\t\t}\n\n\t\t\ttoken.ran = false;\n\t\t}\n\n\t\tcontext.l.r2.v = false; // set directly to avoid rerunning this effect\n\t});\n}\n\n/**\n * @param {() => void | (() => void)} fn\n * @returns {Effect}\n */\nexport function render_effect(fn) {\n\treturn create_effect(RENDER_EFFECT, fn, true);\n}\n\n/**\n * @param {() => void | (() => void)} fn\n * @returns {Effect}\n */\nexport function template_effect(fn) {\n\tif (DEV) {\n\t\tdefine_property(fn, 'name', {\n\t\t\tvalue: '{expression}'\n\t\t});\n\t}\n\treturn block(fn);\n}\n\n/**\n * @param {(() => void)} fn\n * @param {number} flags\n */\nexport function block(fn, flags = 0) {\n\treturn create_effect(RENDER_EFFECT | BLOCK_EFFECT | flags, fn, true);\n}\n\n/**\n * @param {(() => void)} fn\n * @param {boolean} [push]\n */\nexport function branch(fn, push = true) {\n\treturn create_effect(RENDER_EFFECT | BRANCH_EFFECT, fn, true, push);\n}\n\n/**\n * @param {Effect} effect\n */\nexport function execute_effect_teardown(effect) {\n\tvar teardown = effect.teardown;\n\tif (teardown !== null) {\n\t\tconst previously_destroying_effect = is_destroying_effect;\n\t\tconst previous_reaction = active_reaction;\n\t\tset_is_destroying_effect(true);\n\t\tset_active_reaction(null);\n\t\ttry {\n\t\t\tteardown.call(null);\n\t\t} finally {\n\t\t\tset_is_destroying_effect(previously_destroying_effect);\n\t\t\tset_active_reaction(previous_reaction);\n\t\t}\n\t}\n}\n\n/**\n * @param {Effect} signal\n * @returns {void}\n */\nexport function destroy_effect_deriveds(signal) {\n\tvar deriveds = signal.deriveds;\n\n\tif (deriveds !== null) {\n\t\tsignal.deriveds = null;\n\n\t\tfor (var i = 0; i < deriveds.length; i += 1) {\n\t\t\tdestroy_derived(deriveds[i]);\n\t\t}\n\t}\n}\n\n/**\n * @param {Effect} signal\n * @param {boolean} remove_dom\n * @returns {void}\n */\nexport function destroy_effect_children(signal, remove_dom = false) {\n\tvar effect = signal.first;\n\tsignal.first = signal.last = null;\n\n\twhile (effect !== null) {\n\t\tvar next = effect.next;\n\t\tdestroy_effect(effect, remove_dom);\n\t\teffect = next;\n\t}\n}\n\n/**\n * @param {Effect} signal\n * @returns {void}\n */\nexport function destroy_block_effect_children(signal) {\n\tvar effect = signal.first;\n\n\twhile (effect !== null) {\n\t\tvar next = effect.next;\n\t\tif ((effect.f & BRANCH_EFFECT) === 0) {\n\t\t\tdestroy_effect(effect);\n\t\t}\n\t\teffect = next;\n\t}\n}\n\n/**\n * @param {Effect} effect\n * @param {boolean} [remove_dom]\n * @returns {void}\n */\nexport function destroy_effect(effect, remove_dom = true) {\n\tvar removed = false;\n\n\tif ((remove_dom || (effect.f & HEAD_EFFECT) !== 0) && effect.nodes_start !== null) {\n\t\t/** @type {TemplateNode | null} */\n\t\tvar node = effect.nodes_start;\n\t\tvar end = effect.nodes_end;\n\n\t\twhile (node !== null) {\n\t\t\t/** @type {TemplateNode | null} */\n\t\t\tvar next = node === end ? null : /** @type {TemplateNode} */ (get_next_sibling(node));\n\n\t\t\tnode.remove();\n\t\t\tnode = next;\n\t\t}\n\n\t\tremoved = true;\n\t}\n\n\tdestroy_effect_children(effect, remove_dom && !removed);\n\tdestroy_effect_deriveds(effect);\n\tremove_reactions(effect, 0);\n\tset_signal_status(effect, DESTROYED);\n\n\tvar transitions = effect.transitions;\n\n\tif (transitions !== null) {\n\t\tfor (const transition of transitions) {\n\t\t\ttransition.stop();\n\t\t}\n\t}\n\n\texecute_effect_teardown(effect);\n\n\tvar parent = effect.parent;\n\n\t// If the parent doesn't have any children, then skip this work altogether\n\tif (parent !== null && parent.first !== null) {\n\t\tunlink_effect(effect);\n\t}\n\n\tif (DEV) {\n\t\teffect.component_function = null;\n\t}\n\n\t// `first` and `child` are nulled out in destroy_effect_children\n\teffect.next =\n\t\teffect.prev =\n\t\teffect.teardown =\n\t\teffect.ctx =\n\t\teffect.deps =\n\t\teffect.parent =\n\t\teffect.fn =\n\t\teffect.nodes_start =\n\t\teffect.nodes_end =\n\t\t\tnull;\n}\n\n/**\n * Detach an effect from the effect tree, freeing up memory and\n * reducing the amount of work that happens on subsequent traversals\n * @param {Effect} effect\n */\nexport function unlink_effect(effect) {\n\tvar parent = effect.parent;\n\tvar prev = effect.prev;\n\tvar next = effect.next;\n\n\tif (prev !== null) prev.next = next;\n\tif (next !== null) next.prev = prev;\n\n\tif (parent !== null) {\n\t\tif (parent.first === effect) parent.first = next;\n\t\tif (parent.last === effect) parent.last = prev;\n\t}\n}\n\n/**\n * When a block effect is removed, we don't immediately destroy it or yank it\n * out of the DOM, because it might have transitions. Instead, we 'pause' it.\n * It stays around (in memory, and in the DOM) until outro transitions have\n * completed, and if the state change is reversed then we _resume_ it.\n * A paused effect does not update, and the DOM subtree becomes inert.\n * @param {Effect} effect\n * @param {() => void} [callback]\n */\nexport function pause_effect(effect, callback) {\n\t/** @type {TransitionManager[]} */\n\tvar transitions = [];\n\n\tpause_children(effect, transitions, true);\n\n\trun_out_transitions(transitions, () => {\n\t\tdestroy_effect(effect);\n\t\tif (callback) callback();\n\t});\n}\n\n/**\n * @param {TransitionManager[]} transitions\n * @param {() => void} fn\n */\nexport function run_out_transitions(transitions, fn) {\n\tvar remaining = transitions.length;\n\tif (remaining > 0) {\n\t\tvar check = () => --remaining || fn();\n\t\tfor (var transition of transitions) {\n\t\t\ttransition.out(check);\n\t\t}\n\t} else {\n\t\tfn();\n\t}\n}\n\n/**\n * @param {Effect} effect\n * @param {TransitionManager[]} transitions\n * @param {boolean} local\n */\nexport function pause_children(effect, transitions, local) {\n\tif ((effect.f & INERT) !== 0) return;\n\teffect.f ^= INERT;\n\n\tif (effect.transitions !== null) {\n\t\tfor (const transition of effect.transitions) {\n\t\t\tif (transition.is_global || local) {\n\t\t\t\ttransitions.push(transition);\n\t\t\t}\n\t\t}\n\t}\n\n\tvar child = effect.first;\n\n\twhile (child !== null) {\n\t\tvar sibling = child.next;\n\t\tvar transparent = (child.f & EFFECT_TRANSPARENT) !== 0 || (child.f & BRANCH_EFFECT) !== 0;\n\t\t// TODO we don't need to call pause_children recursively with a linked list in place\n\t\t// it's slightly more involved though as we have to account for `transparent` changing\n\t\t// through the tree.\n\t\tpause_children(child, transitions, transparent ? local : false);\n\t\tchild = sibling;\n\t}\n}\n\n/**\n * The opposite of `pause_effect`. We call this if (for example)\n * `x` becomes falsy then truthy: `{#if x}...{/if}`\n * @param {Effect} effect\n */\nexport function resume_effect(effect) {\n\tresume_children(effect, true);\n}\n\n/**\n * @param {Effect} effect\n * @param {boolean} local\n */\nfunction resume_children(effect, local) {\n\tif ((effect.f & INERT) === 0) return;\n\n\t// If a dependency of this effect changed while it was paused,\n\t// apply the change now\n\tif (check_dirtiness(effect)) {\n\t\tupdate_effect(effect);\n\t}\n\n\t// Ensure we toggle the flag after possibly updating the effect so that\n\t// each block logic can correctly operate on inert items\n\teffect.f ^= INERT;\n\n\tvar child = effect.first;\n\n\twhile (child !== null) {\n\t\tvar sibling = child.next;\n\t\tvar transparent = (child.f & EFFECT_TRANSPARENT) !== 0 || (child.f & BRANCH_EFFECT) !== 0;\n\t\t// TODO we don't need to call resume_children recursively with a linked list in place\n\t\t// it's slightly more involved though as we have to account for `transparent` changing\n\t\t// through the tree.\n\t\tresume_children(child, transparent ? local : false);\n\t\tchild = sibling;\n\t}\n\n\tif (effect.transitions !== null) {\n\t\tfor (const transition of effect.transitions) {\n\t\t\tif (transition.is_global || local) {\n\t\t\t\ttransition.in();\n\t\t\t}\n\t\t}\n\t}\n}\n","import { run_all } from '../../shared/utils.js';\n\n// Fallback for when requestIdleCallback is not available\nconst request_idle_callback =\n\ttypeof requestIdleCallback === 'undefined'\n\t\t? (/** @type {() => void} */ cb) => setTimeout(cb, 1)\n\t\t: requestIdleCallback;\n\nlet is_micro_task_queued = false;\nlet is_idle_task_queued = false;\n\n/** @type {Array<() => void>} */\nlet current_queued_micro_tasks = [];\n/** @type {Array<() => void>} */\nlet current_queued_idle_tasks = [];\n\nfunction process_micro_tasks() {\n\tis_micro_task_queued = false;\n\tconst tasks = current_queued_micro_tasks.slice();\n\tcurrent_queued_micro_tasks = [];\n\trun_all(tasks);\n}\n\nfunction process_idle_tasks() {\n\tis_idle_task_queued = false;\n\tconst tasks = current_queued_idle_tasks.slice();\n\tcurrent_queued_idle_tasks = [];\n\trun_all(tasks);\n}\n\n/**\n * @param {() => void} fn\n */\nexport function queue_micro_task(fn) {\n\tif (!is_micro_task_queued) {\n\t\tis_micro_task_queued = true;\n\t\tqueueMicrotask(process_micro_tasks);\n\t}\n\tcurrent_queued_micro_tasks.push(fn);\n}\n\n/**\n * @param {() => void} fn\n */\nexport function queue_idle_task(fn) {\n\tif (!is_idle_task_queued) {\n\t\tis_idle_task_queued = true;\n\t\trequest_idle_callback(process_idle_tasks);\n\t}\n\tcurrent_queued_idle_tasks.push(fn);\n}\n\n/**\n * Synchronously run any queued tasks.\n */\nexport function flush_tasks() {\n\tif (is_micro_task_queued) {\n\t\tprocess_micro_tasks();\n\t}\n\tif (is_idle_task_queued) {\n\t\tprocess_idle_tasks();\n\t}\n}\n","/* This file is generated by scripts/process-messages/index.js. Do not edit! */\n\nimport { DEV } from 'esm-env';\n\n/**\n * Cannot use `{@render children(...)}` if the parent component uses `let:` directives. Consider using a named snippet instead\n * @returns {never}\n */\nexport function invalid_default_snippet() {\n\tif (DEV) {\n\t\tconst error = new Error(`invalid_default_snippet\\nCannot use \\`{@render children(...)}\\` if the parent component uses \\`let:\\` directives. Consider using a named snippet instead`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"invalid_default_snippet\");\n\t}\n}\n\n/**\n * `%name%(...)` can only be used during component initialisation\n * @param {string} name\n * @returns {never}\n */\nexport function lifecycle_outside_component(name) {\n\tif (DEV) {\n\t\tconst error = new Error(`lifecycle_outside_component\\n\\`${name}(...)\\` can only be used during component initialisation`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"lifecycle_outside_component\");\n\t}\n}\n\n/**\n * `%name%` is not a store with a `subscribe` method\n * @param {string} name\n * @returns {never}\n */\nexport function store_invalid_shape(name) {\n\tif (DEV) {\n\t\tconst error = new Error(`store_invalid_shape\\n\\`${name}\\` is not a store with a \\`subscribe\\` method`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"store_invalid_shape\");\n\t}\n}\n\n/**\n * The `this` prop on `` must be a string, if defined\n * @returns {never}\n */\nexport function svelte_element_invalid_this_value() {\n\tif (DEV) {\n\t\tconst error = new Error(`svelte_element_invalid_this_value\\nThe \\`this\\` prop on \\`\\` must be a string, if defined`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\t// TODO print a link to the documentation\n\t\tthrow new Error(\"svelte_element_invalid_this_value\");\n\t}\n}","/** @import { ComponentContext, Derived, Effect, Reaction, Signal, Source, Value } from '#client' */\nimport { DEV } from 'esm-env';\nimport { define_property, get_descriptors, get_prototype_of } from '../shared/utils.js';\nimport {\n\tdestroy_block_effect_children,\n\tdestroy_effect_children,\n\tdestroy_effect_deriveds,\n\teffect,\n\texecute_effect_teardown,\n\tunlink_effect\n} from './reactivity/effects.js';\nimport {\n\tEFFECT,\n\tRENDER_EFFECT,\n\tDIRTY,\n\tMAYBE_DIRTY,\n\tCLEAN,\n\tDERIVED,\n\tUNOWNED,\n\tDESTROYED,\n\tINERT,\n\tBRANCH_EFFECT,\n\tSTATE_SYMBOL,\n\tBLOCK_EFFECT,\n\tROOT_EFFECT,\n\tLEGACY_DERIVED_PROP,\n\tDISCONNECTED\n} from './constants.js';\nimport { flush_tasks } from './dom/task.js';\nimport { add_owner } from './dev/ownership.js';\nimport { mutate, set, source } from './reactivity/sources.js';\nimport { destroy_derived, execute_derived, update_derived } from './reactivity/deriveds.js';\nimport * as e from './errors.js';\nimport { lifecycle_outside_component } from '../shared/errors.js';\nimport { FILENAME } from '../../constants.js';\nimport { legacy_mode_flag } from '../flags/index.js';\n\nconst FLUSH_MICROTASK = 0;\nconst FLUSH_SYNC = 1;\n\n// Used for DEV time error handling\n/** @param {WeakSet} value */\nconst handled_errors = new WeakSet();\n// Used for controlling the flush of effects.\nlet scheduler_mode = FLUSH_MICROTASK;\n// Used for handling scheduling\nlet is_micro_task_queued = false;\n\nexport let is_flushing_effect = false;\nexport let is_destroying_effect = false;\n\n/** @param {boolean} value */\nexport function set_is_flushing_effect(value) {\n\tis_flushing_effect = value;\n}\n\n/** @param {boolean} value */\nexport function set_is_destroying_effect(value) {\n\tis_destroying_effect = value;\n}\n\n// Handle effect queues\n\n/** @type {Effect[]} */\nlet queued_root_effects = [];\n\nlet flush_count = 0;\n/** @type {Effect[]} Stack of effects, dev only */\nlet dev_effect_stack = [];\n// Handle signal reactivity tree dependencies and reactions\n\n/** @type {null | Reaction} */\nexport let active_reaction = null;\n\n/** @param {null | Reaction} reaction */\nexport function set_active_reaction(reaction) {\n\tactive_reaction = reaction;\n}\n\n/** @type {null | Effect} */\nexport let active_effect = null;\n\n/** @param {null | Effect} effect */\nexport function set_active_effect(effect) {\n\tactive_effect = effect;\n}\n\n/**\n * When sources are created within a derived, we record them so that we can safely allow\n * local mutations to these sources without the side-effect error being invoked unnecessarily.\n * @type {null | Source[]}\n */\nexport let derived_sources = null;\n\n/**\n * @param {Source[] | null} sources\n */\nexport function set_derived_sources(sources) {\n\tderived_sources = sources;\n}\n\n/**\n * The dependencies of the reaction that is currently being executed. In many cases,\n * the dependencies are unchanged between runs, and so this will be `null` unless\n * and until a new dependency is accessed — we track this via `skipped_deps`\n * @type {null | Value[]}\n */\nexport let new_deps = null;\n\nlet skipped_deps = 0;\n\n/**\n * Tracks writes that the effect it's executed in doesn't listen to yet,\n * so that the dependency can be added to the effect later on if it then reads it\n * @type {null | Source[]}\n */\nexport let untracked_writes = null;\n\n/** @param {null | Source[]} value */\nexport function set_untracked_writes(value) {\n\tuntracked_writes = value;\n}\n\n/** @type {number} Used by sources and deriveds for handling updates to unowned deriveds */\nlet current_version = 0;\n\n// If we are working with a get() chain that has no active container,\n// to prevent memory leaks, we skip adding the reaction.\nexport let skip_reaction = false;\n// Handle collecting all signals which are read during a specific time frame\n/** @type {Set | null} */\nexport let captured_signals = null;\n\n// Handling runtime component context\n/** @type {ComponentContext | null} */\nexport let component_context = null;\n\n/** @param {ComponentContext | null} context */\nexport function set_component_context(context) {\n\tcomponent_context = context;\n}\n\n/**\n * The current component function. Different from current component context:\n * ```html\n * \n * \n * \n * \n * ```\n * @type {ComponentContext['function']}\n */\nexport let dev_current_component_function = null;\n\n/** @param {ComponentContext['function']} fn */\nexport function set_dev_current_component_function(fn) {\n\tdev_current_component_function = fn;\n}\n\nexport function increment_version() {\n\treturn ++current_version;\n}\n\n/** @returns {boolean} */\nexport function is_runes() {\n\treturn !legacy_mode_flag || (component_context !== null && component_context.l === null);\n}\n\n/**\n * Determines whether a derived or effect is dirty.\n * If it is MAYBE_DIRTY, will set the status to CLEAN\n * @param {Reaction} reaction\n * @returns {boolean}\n */\nexport function check_dirtiness(reaction) {\n\tvar flags = reaction.f;\n\n\tif ((flags & DIRTY) !== 0) {\n\t\treturn true;\n\t}\n\n\tif ((flags & MAYBE_DIRTY) !== 0) {\n\t\tvar dependencies = reaction.deps;\n\t\tvar is_unowned = (flags & UNOWNED) !== 0;\n\n\t\tif (dependencies !== null) {\n\t\t\tvar i;\n\n\t\t\tif ((flags & DISCONNECTED) !== 0) {\n\t\t\t\tfor (i = 0; i < dependencies.length; i++) {\n\t\t\t\t\t(dependencies[i].reactions ??= []).push(reaction);\n\t\t\t\t}\n\n\t\t\t\treaction.f ^= DISCONNECTED;\n\t\t\t}\n\n\t\t\tfor (i = 0; i < dependencies.length; i++) {\n\t\t\t\tvar dependency = dependencies[i];\n\n\t\t\t\tif (check_dirtiness(/** @type {Derived} */ (dependency))) {\n\t\t\t\t\tupdate_derived(/** @type {Derived} */ (dependency));\n\t\t\t\t}\n\n\t\t\t\t// If we are working with an unowned signal as part of an effect (due to !skip_reaction)\n\t\t\t\t// and the version hasn't changed, we still need to check that this reaction\n\t\t\t\t// is linked to the dependency source – otherwise future updates will not be caught.\n\t\t\t\tif (\n\t\t\t\t\tis_unowned &&\n\t\t\t\t\tactive_effect !== null &&\n\t\t\t\t\t!skip_reaction &&\n\t\t\t\t\t!dependency?.reactions?.includes(reaction)\n\t\t\t\t) {\n\t\t\t\t\t(dependency.reactions ??= []).push(reaction);\n\t\t\t\t}\n\n\t\t\t\tif (dependency.version > reaction.version) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Unowned signals should never be marked as clean.\n\t\tif (!is_unowned) {\n\t\t\tset_signal_status(reaction, CLEAN);\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * @param {Error} error\n * @param {Effect} effect\n * @param {ComponentContext | null} component_context\n */\nfunction handle_error(error, effect, component_context) {\n\t// Given we don't yet have error boundaries, we will just always throw.\n\tif (!DEV || handled_errors.has(error) || component_context === null) {\n\t\tthrow error;\n\t}\n\n\tconst component_stack = [];\n\n\tconst effect_name = effect.fn?.name;\n\n\tif (effect_name) {\n\t\tcomponent_stack.push(effect_name);\n\t}\n\n\t/** @type {ComponentContext | null} */\n\tlet current_context = component_context;\n\n\twhile (current_context !== null) {\n\t\tif (DEV) {\n\t\t\t/** @type {string} */\n\t\t\tvar filename = current_context.function?.[FILENAME];\n\n\t\t\tif (filename) {\n\t\t\t\tconst file = filename.split('/').pop();\n\t\t\t\tcomponent_stack.push(file);\n\t\t\t}\n\t\t}\n\n\t\tcurrent_context = current_context.p;\n\t}\n\n\tconst indent = /Firefox/.test(navigator.userAgent) ? ' ' : '\\t';\n\tdefine_property(error, 'message', {\n\t\tvalue: error.message + `\\n${component_stack.map((name) => `\\n${indent}in ${name}`).join('')}\\n`\n\t});\n\n\tconst stack = error.stack;\n\n\t// Filter out internal files from callstack\n\tif (stack) {\n\t\tconst lines = stack.split('\\n');\n\t\tconst new_lines = [];\n\t\tfor (let i = 0; i < lines.length; i++) {\n\t\t\tconst line = lines[i];\n\t\t\tif (line.includes('svelte/src/internal')) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tnew_lines.push(line);\n\t\t}\n\t\tdefine_property(error, 'stack', {\n\t\t\tvalue: error.stack + new_lines.join('\\n')\n\t\t});\n\t}\n\n\thandled_errors.add(error);\n\tthrow error;\n}\n\n/**\n * @template V\n * @param {Reaction} reaction\n * @returns {V}\n */\nexport function update_reaction(reaction) {\n\tvar previous_deps = new_deps;\n\tvar previous_skipped_deps = skipped_deps;\n\tvar previous_untracked_writes = untracked_writes;\n\tvar previous_reaction = active_reaction;\n\tvar previous_skip_reaction = skip_reaction;\n\tvar prev_derived_sources = derived_sources;\n\tvar previous_component_context = component_context;\n\tvar flags = reaction.f;\n\n\tnew_deps = /** @type {null | Value[]} */ (null);\n\tskipped_deps = 0;\n\tuntracked_writes = null;\n\tactive_reaction = (flags & (BRANCH_EFFECT | ROOT_EFFECT)) === 0 ? reaction : null;\n\tskip_reaction = !is_flushing_effect && (flags & UNOWNED) !== 0;\n\tderived_sources = null;\n\tcomponent_context = reaction.ctx;\n\n\ttry {\n\t\tvar result = /** @type {Function} */ (0, reaction.fn)();\n\t\tvar deps = reaction.deps;\n\n\t\tif (new_deps !== null) {\n\t\t\tvar i;\n\n\t\t\tremove_reactions(reaction, skipped_deps);\n\n\t\t\tif (deps !== null && skipped_deps > 0) {\n\t\t\t\tdeps.length = skipped_deps + new_deps.length;\n\t\t\t\tfor (i = 0; i < new_deps.length; i++) {\n\t\t\t\t\tdeps[skipped_deps + i] = new_deps[i];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treaction.deps = deps = new_deps;\n\t\t\t}\n\n\t\t\tif (!skip_reaction) {\n\t\t\t\tfor (i = skipped_deps; i < deps.length; i++) {\n\t\t\t\t\t(deps[i].reactions ??= []).push(reaction);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (deps !== null && skipped_deps < deps.length) {\n\t\t\tremove_reactions(reaction, skipped_deps);\n\t\t\tdeps.length = skipped_deps;\n\t\t}\n\n\t\treturn result;\n\t} finally {\n\t\tnew_deps = previous_deps;\n\t\tskipped_deps = previous_skipped_deps;\n\t\tuntracked_writes = previous_untracked_writes;\n\t\tactive_reaction = previous_reaction;\n\t\tskip_reaction = previous_skip_reaction;\n\t\tderived_sources = prev_derived_sources;\n\t\tcomponent_context = previous_component_context;\n\t}\n}\n\n/**\n * @template V\n * @param {Reaction} signal\n * @param {Value} dependency\n * @returns {void}\n */\nfunction remove_reaction(signal, dependency) {\n\tlet reactions = dependency.reactions;\n\tif (reactions !== null) {\n\t\tvar index = reactions.indexOf(signal);\n\t\tif (index !== -1) {\n\t\t\tvar new_length = reactions.length - 1;\n\t\t\tif (new_length === 0) {\n\t\t\t\treactions = dependency.reactions = null;\n\t\t\t} else {\n\t\t\t\t// Swap with last element and then remove.\n\t\t\t\treactions[index] = reactions[new_length];\n\t\t\t\treactions.pop();\n\t\t\t}\n\t\t}\n\t}\n\t// If the derived has no reactions, then we can disconnect it from the graph,\n\t// allowing it to either reconnect in the future, or be GC'd by the VM.\n\tif (\n\t\treactions === null &&\n\t\t(dependency.f & DERIVED) !== 0 &&\n\t\t// Destroying a child effect while updating a parent effect can cause a dependency to appear\n\t\t// to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`\n\t\t// allows us to skip the expensive work of disconnecting and immediately reconnecting it\n\t\t(new_deps === null || !new_deps.includes(dependency))\n\t) {\n\t\tset_signal_status(dependency, MAYBE_DIRTY);\n\t\t// If we are working with a derived that is owned by an effect, then mark it as being\n\t\t// disconnected.\n\t\tif ((dependency.f & (UNOWNED | DISCONNECTED)) === 0) {\n\t\t\tdependency.f ^= DISCONNECTED;\n\t\t}\n\t\tremove_reactions(/** @type {Derived} **/ (dependency), 0);\n\t}\n}\n\n/**\n * @param {Reaction} signal\n * @param {number} start_index\n * @returns {void}\n */\nexport function remove_reactions(signal, start_index) {\n\tvar dependencies = signal.deps;\n\tif (dependencies === null) return;\n\n\tfor (var i = start_index; i < dependencies.length; i++) {\n\t\tremove_reaction(signal, dependencies[i]);\n\t}\n}\n\n/**\n * @param {Effect} effect\n * @returns {void}\n */\nexport function update_effect(effect) {\n\tvar flags = effect.f;\n\n\tif ((flags & DESTROYED) !== 0) {\n\t\treturn;\n\t}\n\n\tset_signal_status(effect, CLEAN);\n\n\tvar previous_effect = active_effect;\n\tvar previous_component_context = component_context;\n\n\tactive_effect = effect;\n\n\tif (DEV) {\n\t\tvar previous_component_fn = dev_current_component_function;\n\t\tdev_current_component_function = effect.component_function;\n\t}\n\n\ttry {\n\t\tif ((flags & BLOCK_EFFECT) !== 0) {\n\t\t\tdestroy_block_effect_children(effect);\n\t\t} else {\n\t\t\tdestroy_effect_children(effect);\n\t\t}\n\t\tdestroy_effect_deriveds(effect);\n\n\t\texecute_effect_teardown(effect);\n\t\tvar teardown = update_reaction(effect);\n\t\teffect.teardown = typeof teardown === 'function' ? teardown : null;\n\t\teffect.version = current_version;\n\n\t\tif (DEV) {\n\t\t\tdev_effect_stack.push(effect);\n\t\t}\n\t} catch (error) {\n\t\thandle_error(/** @type {Error} */ (error), effect, previous_component_context);\n\t} finally {\n\t\tactive_effect = previous_effect;\n\n\t\tif (DEV) {\n\t\t\tdev_current_component_function = previous_component_fn;\n\t\t}\n\t}\n}\n\nfunction infinite_loop_guard() {\n\tif (flush_count > 1000) {\n\t\tflush_count = 0;\n\t\tif (DEV) {\n\t\t\ttry {\n\t\t\t\te.effect_update_depth_exceeded();\n\t\t\t} catch (error) {\n\t\t\t\t// stack is garbage, ignore. Instead add a console.error message.\n\t\t\t\tdefine_property(error, 'stack', {\n\t\t\t\t\tvalue: ''\n\t\t\t\t});\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error(\n\t\t\t\t\t'Last ten effects were: ',\n\t\t\t\t\tdev_effect_stack.slice(-10).map((d) => d.fn)\n\t\t\t\t);\n\t\t\t\tdev_effect_stack = [];\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t} else {\n\t\t\te.effect_update_depth_exceeded();\n\t\t}\n\t}\n\tflush_count++;\n}\n\n/**\n * @param {Array} root_effects\n * @returns {void}\n */\nfunction flush_queued_root_effects(root_effects) {\n\tvar length = root_effects.length;\n\tif (length === 0) {\n\t\treturn;\n\t}\n\tinfinite_loop_guard();\n\n\tvar previously_flushing_effect = is_flushing_effect;\n\tis_flushing_effect = true;\n\n\ttry {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tvar effect = root_effects[i];\n\n\t\t\tif ((effect.f & CLEAN) === 0) {\n\t\t\t\teffect.f ^= CLEAN;\n\t\t\t}\n\n\t\t\t/** @type {Effect[]} */\n\t\t\tvar collected_effects = [];\n\n\t\t\tprocess_effects(effect, collected_effects);\n\t\t\tflush_queued_effects(collected_effects);\n\t\t}\n\t} finally {\n\t\tis_flushing_effect = previously_flushing_effect;\n\t}\n}\n\n/**\n * @param {Array} effects\n * @returns {void}\n */\nfunction flush_queued_effects(effects) {\n\tvar length = effects.length;\n\tif (length === 0) return;\n\n\tfor (var i = 0; i < length; i++) {\n\t\tvar effect = effects[i];\n\n\t\tif ((effect.f & (DESTROYED | INERT)) === 0 && check_dirtiness(effect)) {\n\t\t\tupdate_effect(effect);\n\n\t\t\t// Effects with no dependencies or teardown do not get added to the effect tree.\n\t\t\t// Deferred effects (e.g. `$effect(...)`) _are_ added to the tree because we\n\t\t\t// don't know if we need to keep them until they are executed. Doing the check\n\t\t\t// here (rather than in `update_effect`) allows us to skip the work for\n\t\t\t// immediate effects.\n\t\t\tif (effect.deps === null && effect.first === null && effect.nodes_start === null) {\n\t\t\t\tif (effect.teardown === null) {\n\t\t\t\t\t// remove this effect from the graph\n\t\t\t\t\tunlink_effect(effect);\n\t\t\t\t} else {\n\t\t\t\t\t// keep the effect in the graph, but free up some memory\n\t\t\t\t\teffect.fn = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction process_deferred() {\n\tis_micro_task_queued = false;\n\tif (flush_count > 1001) {\n\t\treturn;\n\t}\n\tconst previous_queued_root_effects = queued_root_effects;\n\tqueued_root_effects = [];\n\tflush_queued_root_effects(previous_queued_root_effects);\n\tif (!is_micro_task_queued) {\n\t\tflush_count = 0;\n\t\tif (DEV) {\n\t\t\tdev_effect_stack = [];\n\t\t}\n\t}\n}\n\n/**\n * @param {Effect} signal\n * @returns {void}\n */\nexport function schedule_effect(signal) {\n\tif (scheduler_mode === FLUSH_MICROTASK) {\n\t\tif (!is_micro_task_queued) {\n\t\t\tis_micro_task_queued = true;\n\t\t\tqueueMicrotask(process_deferred);\n\t\t}\n\t}\n\n\tvar effect = signal;\n\n\twhile (effect.parent !== null) {\n\t\teffect = effect.parent;\n\t\tvar flags = effect.f;\n\n\t\tif ((flags & (ROOT_EFFECT | BRANCH_EFFECT)) !== 0) {\n\t\t\tif ((flags & CLEAN) === 0) return;\n\t\t\teffect.f ^= CLEAN;\n\t\t}\n\t}\n\n\tqueued_root_effects.push(effect);\n}\n\n/**\n *\n * This function both runs render effects and collects user effects in topological order\n * from the starting effect passed in. Effects will be collected when they match the filtered\n * bitwise flag passed in only. The collected effects array will be populated with all the user\n * effects to be flushed.\n *\n * @param {Effect} effect\n * @param {Effect[]} collected_effects\n * @returns {void}\n */\nfunction process_effects(effect, collected_effects) {\n\tvar current_effect = effect.first;\n\tvar effects = [];\n\n\tmain_loop: while (current_effect !== null) {\n\t\tvar flags = current_effect.f;\n\t\tvar is_branch = (flags & BRANCH_EFFECT) !== 0;\n\t\tvar is_skippable_branch = is_branch && (flags & CLEAN) !== 0;\n\n\t\tif (!is_skippable_branch && (flags & INERT) === 0) {\n\t\t\tif ((flags & RENDER_EFFECT) !== 0) {\n\t\t\t\tif (is_branch) {\n\t\t\t\t\tcurrent_effect.f ^= CLEAN;\n\t\t\t\t} else if (check_dirtiness(current_effect)) {\n\t\t\t\t\tupdate_effect(current_effect);\n\t\t\t\t}\n\n\t\t\t\tvar child = current_effect.first;\n\n\t\t\t\tif (child !== null) {\n\t\t\t\t\tcurrent_effect = child;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t} else if ((flags & EFFECT) !== 0) {\n\t\t\t\teffects.push(current_effect);\n\t\t\t}\n\t\t}\n\n\t\tvar sibling = current_effect.next;\n\n\t\tif (sibling === null) {\n\t\t\tlet parent = current_effect.parent;\n\n\t\t\twhile (parent !== null) {\n\t\t\t\tif (effect === parent) {\n\t\t\t\t\tbreak main_loop;\n\t\t\t\t}\n\t\t\t\tvar parent_sibling = parent.next;\n\t\t\t\tif (parent_sibling !== null) {\n\t\t\t\t\tcurrent_effect = parent_sibling;\n\t\t\t\t\tcontinue main_loop;\n\t\t\t\t}\n\t\t\t\tparent = parent.parent;\n\t\t\t}\n\t\t}\n\n\t\tcurrent_effect = sibling;\n\t}\n\n\t// We might be dealing with many effects here, far more than can be spread into\n\t// an array push call (callstack overflow). So let's deal with each effect in a loop.\n\tfor (var i = 0; i < effects.length; i++) {\n\t\tchild = effects[i];\n\t\tcollected_effects.push(child);\n\t\tprocess_effects(child, collected_effects);\n\t}\n}\n\n/**\n * Internal version of `flushSync` with the option to not flush previous effects.\n * Returns the result of the passed function, if given.\n * @param {() => any} [fn]\n * @returns {any}\n */\nexport function flush_sync(fn) {\n\tvar previous_scheduler_mode = scheduler_mode;\n\tvar previous_queued_root_effects = queued_root_effects;\n\n\ttry {\n\t\tinfinite_loop_guard();\n\n\t\t/** @type {Effect[]} */\n\t\tconst root_effects = [];\n\n\t\tscheduler_mode = FLUSH_SYNC;\n\t\tqueued_root_effects = root_effects;\n\t\tis_micro_task_queued = false;\n\n\t\tflush_queued_root_effects(previous_queued_root_effects);\n\n\t\tvar result = fn?.();\n\n\t\tflush_tasks();\n\t\tif (queued_root_effects.length > 0 || root_effects.length > 0) {\n\t\t\tflush_sync();\n\t\t}\n\n\t\tflush_count = 0;\n\t\tif (DEV) {\n\t\t\tdev_effect_stack = [];\n\t\t}\n\n\t\treturn result;\n\t} finally {\n\t\tscheduler_mode = previous_scheduler_mode;\n\t\tqueued_root_effects = previous_queued_root_effects;\n\t}\n}\n\n/**\n * Returns a promise that resolves once any pending state changes have been applied.\n * @returns {Promise}\n */\nexport async function tick() {\n\tawait Promise.resolve();\n\t// By calling flush_sync we guarantee that any pending state changes are applied after one tick.\n\t// TODO look into whether we can make flushing subsequent updates synchronously in the future.\n\tflush_sync();\n}\n\n/**\n * @template V\n * @param {Value} signal\n * @returns {V}\n */\nexport function get(signal) {\n\tvar flags = signal.f;\n\tvar is_derived = (flags & DERIVED) !== 0;\n\n\t// If the derived is destroyed, just execute it again without retaining\n\t// its memoisation properties as the derived is stale\n\tif (is_derived && (flags & DESTROYED) !== 0) {\n\t\tvar value = execute_derived(/** @type {Derived} */ (signal));\n\t\t// Ensure the derived remains destroyed\n\t\tdestroy_derived(/** @type {Derived} */ (signal));\n\t\treturn value;\n\t}\n\n\tif (captured_signals !== null) {\n\t\tcaptured_signals.add(signal);\n\t}\n\n\t// Register the dependency on the current reaction signal.\n\tif (active_reaction !== null) {\n\t\tif (derived_sources !== null && derived_sources.includes(signal)) {\n\t\t\te.state_unsafe_local_read();\n\t\t}\n\t\tvar deps = active_reaction.deps;\n\n\t\t// If the signal is accessing the same dependencies in the same\n\t\t// order as it did last time, increment `skipped_deps`\n\t\t// rather than updating `new_deps`, which creates GC cost\n\t\tif (new_deps === null && deps !== null && deps[skipped_deps] === signal) {\n\t\t\tskipped_deps++;\n\t\t} else if (new_deps === null) {\n\t\t\tnew_deps = [signal];\n\t\t} else {\n\t\t\tnew_deps.push(signal);\n\t\t}\n\n\t\tif (\n\t\t\tuntracked_writes !== null &&\n\t\t\tactive_effect !== null &&\n\t\t\t(active_effect.f & CLEAN) !== 0 &&\n\t\t\t(active_effect.f & BRANCH_EFFECT) === 0 &&\n\t\t\tuntracked_writes.includes(signal)\n\t\t) {\n\t\t\tset_signal_status(active_effect, DIRTY);\n\t\t\tschedule_effect(active_effect);\n\t\t}\n\t} else if (is_derived && /** @type {Derived} */ (signal).deps === null) {\n\t\tvar derived = /** @type {Derived} */ (signal);\n\t\tvar parent = derived.parent;\n\n\t\tif (parent !== null && !parent.deriveds?.includes(derived)) {\n\t\t\t(parent.deriveds ??= []).push(derived);\n\t\t}\n\t}\n\n\tif (is_derived) {\n\t\tderived = /** @type {Derived} */ (signal);\n\n\t\tif (check_dirtiness(derived)) {\n\t\t\tupdate_derived(derived);\n\t\t}\n\t}\n\n\treturn signal.v;\n}\n\n/**\n * Like `get`, but checks for `undefined`. Used for `var` declarations because they can be accessed before being declared\n * @template V\n * @param {Value | undefined} signal\n * @returns {V | undefined}\n */\nexport function safe_get(signal) {\n\treturn signal && get(signal);\n}\n\n/**\n * Invokes a function and captures all signals that are read during the invocation,\n * then invalidates them.\n * @param {() => any} fn\n */\nexport function invalidate_inner_signals(fn) {\n\tvar previous_captured_signals = captured_signals;\n\tcaptured_signals = new Set();\n\tvar captured = captured_signals;\n\tvar signal;\n\ttry {\n\t\tuntrack(fn);\n\t\tif (previous_captured_signals !== null) {\n\t\t\tfor (signal of captured_signals) {\n\t\t\t\tprevious_captured_signals.add(signal);\n\t\t\t}\n\t\t}\n\t} finally {\n\t\tcaptured_signals = previous_captured_signals;\n\t}\n\tfor (signal of captured) {\n\t\t// Go one level up because derived signals created as part of props in legacy mode\n\t\tif ((signal.f & LEGACY_DERIVED_PROP) !== 0) {\n\t\t\tfor (const dep of /** @type {Derived} */ (signal).deps || []) {\n\t\t\t\tif ((dep.f & DERIVED) === 0) {\n\t\t\t\t\tmutate(dep, null /* doesnt matter */);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tmutate(signal, null /* doesnt matter */);\n\t\t}\n\t}\n}\n\n/**\n * When used inside a [`$derived`](https://svelte.dev/docs/svelte/$derived) or [`$effect`](https://svelte.dev/docs/svelte/$effect),\n * any state read inside `fn` will not be treated as a dependency.\n *\n * ```ts\n * $effect(() => {\n * // this will run when `data` changes, but not when `time` changes\n * save(data, {\n * timestamp: untrack(() => time)\n * });\n * });\n * ```\n * @template T\n * @param {() => T} fn\n * @returns {T}\n */\nexport function untrack(fn) {\n\tconst previous_reaction = active_reaction;\n\ttry {\n\t\tactive_reaction = null;\n\t\treturn fn();\n\t} finally {\n\t\tactive_reaction = previous_reaction;\n\t}\n}\n\nconst STATUS_MASK = ~(DIRTY | MAYBE_DIRTY | CLEAN);\n\n/**\n * @param {Signal} signal\n * @param {number} status\n * @returns {void}\n */\nexport function set_signal_status(signal, status) {\n\tsignal.f = (signal.f & STATUS_MASK) | status;\n}\n\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * @template T\n * @param {any} key\n * @returns {T}\n */\nexport function getContext(key) {\n\tconst context_map = get_or_init_context_map('getContext');\n\tconst result = /** @type {T} */ (context_map.get(key));\n\n\tif (DEV) {\n\t\tconst fn = /** @type {ComponentContext} */ (component_context).function;\n\t\tif (fn) {\n\t\t\tadd_owner(result, fn, true);\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * @template T\n * @param {any} key\n * @param {T} context\n * @returns {T}\n */\nexport function setContext(key, context) {\n\tconst context_map = get_or_init_context_map('setContext');\n\tcontext_map.set(key, context);\n\treturn context;\n}\n\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * @param {any} key\n * @returns {boolean}\n */\nexport function hasContext(key) {\n\tconst context_map = get_or_init_context_map('hasContext');\n\treturn context_map.has(key);\n}\n\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * @template {Map} [T=Map]\n * @returns {T}\n */\nexport function getAllContexts() {\n\tconst context_map = get_or_init_context_map('getAllContexts');\n\n\tif (DEV) {\n\t\tconst fn = component_context?.function;\n\t\tif (fn) {\n\t\t\tfor (const value of context_map.values()) {\n\t\t\t\tadd_owner(value, fn, true);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn /** @type {T} */ (context_map);\n}\n\n/**\n * @param {string} name\n * @returns {Map}\n */\nfunction get_or_init_context_map(name) {\n\tif (component_context === null) {\n\t\tlifecycle_outside_component(name);\n\t}\n\n\treturn (component_context.c ??= new Map(get_parent_context(component_context) || undefined));\n}\n\n/**\n * @param {ComponentContext} component_context\n * @returns {Map | null}\n */\nfunction get_parent_context(component_context) {\n\tlet parent = component_context.p;\n\twhile (parent !== null) {\n\t\tconst context_map = parent.c;\n\t\tif (context_map !== null) {\n\t\t\treturn context_map;\n\t\t}\n\t\tparent = parent.p;\n\t}\n\treturn null;\n}\n\n/**\n * @param {Value} signal\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update(signal, d = 1) {\n\tvar value = +get(signal);\n\tset(signal, value + d);\n\treturn value;\n}\n\n/**\n * @param {Value} signal\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_pre(signal, d = 1) {\n\treturn set(signal, +get(signal) + d);\n}\n\n/**\n * @param {Record} obj\n * @param {string[]} keys\n * @returns {Record}\n */\nexport function exclude_from_object(obj, keys) {\n\t/** @type {Record} */\n\tvar result = {};\n\n\tfor (var key in obj) {\n\t\tif (!keys.includes(key)) {\n\t\t\tresult[key] = obj[key];\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * @param {Record} props\n * @param {any} runes\n * @param {Function} [fn]\n * @returns {void}\n */\nexport function push(props, runes = false, fn) {\n\tcomponent_context = {\n\t\tp: component_context,\n\t\tc: null,\n\t\te: null,\n\t\tm: false,\n\t\ts: props,\n\t\tx: null,\n\t\tl: null\n\t};\n\n\tif (legacy_mode_flag && !runes) {\n\t\tcomponent_context.l = {\n\t\t\ts: null,\n\t\t\tu: null,\n\t\t\tr1: [],\n\t\t\tr2: source(false)\n\t\t};\n\t}\n\n\tif (DEV) {\n\t\t// component function\n\t\tcomponent_context.function = fn;\n\t\tdev_current_component_function = fn;\n\t}\n}\n\n/**\n * @template {Record} T\n * @param {T} [component]\n * @returns {T}\n */\nexport function pop(component) {\n\tconst context_stack_item = component_context;\n\tif (context_stack_item !== null) {\n\t\tif (component !== undefined) {\n\t\t\tcontext_stack_item.x = component;\n\t\t}\n\t\tconst component_effects = context_stack_item.e;\n\t\tif (component_effects !== null) {\n\t\t\tvar previous_effect = active_effect;\n\t\t\tvar previous_reaction = active_reaction;\n\t\t\tcontext_stack_item.e = null;\n\t\t\ttry {\n\t\t\t\tfor (var i = 0; i < component_effects.length; i++) {\n\t\t\t\t\tvar component_effect = component_effects[i];\n\t\t\t\t\tset_active_effect(component_effect.effect);\n\t\t\t\t\tset_active_reaction(component_effect.reaction);\n\t\t\t\t\teffect(component_effect.fn);\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tset_active_effect(previous_effect);\n\t\t\t\tset_active_reaction(previous_reaction);\n\t\t\t}\n\t\t}\n\t\tcomponent_context = context_stack_item.p;\n\t\tif (DEV) {\n\t\t\tdev_current_component_function = context_stack_item.p?.function ?? null;\n\t\t}\n\t\tcontext_stack_item.m = true;\n\t}\n\t// Micro-optimization: Don't set .a above to the empty object\n\t// so it can be garbage-collected when the return here is unused\n\treturn component || /** @type {T} */ ({});\n}\n\n/**\n * Possibly traverse an object and read all its properties so that they're all reactive in case this is `$state`.\n * Does only check first level of an object for performance reasons (heuristic should be good for 99% of all cases).\n * @param {any} value\n * @returns {void}\n */\nexport function deep_read_state(value) {\n\tif (typeof value !== 'object' || !value || value instanceof EventTarget) {\n\t\treturn;\n\t}\n\n\tif (STATE_SYMBOL in value) {\n\t\tdeep_read(value);\n\t} else if (!Array.isArray(value)) {\n\t\tfor (let key in value) {\n\t\t\tconst prop = value[key];\n\t\t\tif (typeof prop === 'object' && prop && STATE_SYMBOL in prop) {\n\t\t\t\tdeep_read(prop);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Deeply traverse an object and read all its properties\n * so that they're all reactive in case this is `$state`\n * @param {any} value\n * @param {Set} visited\n * @returns {void}\n */\nexport function deep_read(value, visited = new Set()) {\n\tif (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\t// We don't want to traverse DOM elements\n\t\t!(value instanceof EventTarget) &&\n\t\t!visited.has(value)\n\t) {\n\t\tvisited.add(value);\n\t\t// When working with a possible SvelteDate, this\n\t\t// will ensure we capture changes to it.\n\t\tif (value instanceof Date) {\n\t\t\tvalue.getTime();\n\t\t}\n\t\tfor (let key in value) {\n\t\t\ttry {\n\t\t\t\tdeep_read(value[key], visited);\n\t\t\t} catch (e) {\n\t\t\t\t// continue\n\t\t\t}\n\t\t}\n\t\tconst proto = get_prototype_of(value);\n\t\tif (\n\t\t\tproto !== Object.prototype &&\n\t\t\tproto !== Array.prototype &&\n\t\t\tproto !== Map.prototype &&\n\t\t\tproto !== Set.prototype &&\n\t\t\tproto !== Date.prototype\n\t\t) {\n\t\t\tconst descriptors = get_descriptors(proto);\n\t\t\tfor (let key in descriptors) {\n\t\t\t\tconst get = descriptors[key].get;\n\t\t\t\tif (get) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tget.call(value);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t// continue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\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","/** @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 | 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"],"names":["is_array","array_from","define_property","get_descriptor","get_descriptors","object_prototype","array_prototype","get_prototype_of","is_function","thing","noop","run","fn","run_all","arr","i","DERIVED","EFFECT","RENDER_EFFECT","BLOCK_EFFECT","BRANCH_EFFECT","ROOT_EFFECT","UNOWNED","DISCONNECTED","CLEAN","DIRTY","MAYBE_DIRTY","INERT","DESTROYED","EFFECT_RAN","EFFECT_TRANSPARENT","LEGACY_DERIVED_PROP","HEAD_EFFECT","EFFECT_HAS_DERIVED","STATE_SYMBOL","LOADING_ATTR_SYMBOL","equals","value","safe_not_equal","a","b","safe_equals","effect_in_teardown","rune","effect_in_unowned_derived","effect_orphan","effect_update_depth_exceeded","hydration_failed","props_invalid_value","key","state_descriptors_fixed","state_prototype_fixed","state_unsafe_local_read","state_unsafe_mutation","legacy_mode_flag","enable_legacy_mode_flag","source","v","state","push_derived_source","mutable_source","initial_value","immutable","_a","s","component_context","mutable_state","active_reaction","derived_sources","set_derived_sources","set","is_runes","e.state_unsafe_mutation","internal_set","increment_version","mark_reactions","active_effect","new_deps","set_signal_status","schedule_effect","untracked_writes","set_untracked_writes","signal","status","reactions","runes","length","reaction","flags","EACH_ITEM_REACTIVE","EACH_INDEX_REACTIVE","EACH_ITEM_IMMUTABLE","PROPS_IS_IMMUTABLE","PROPS_IS_RUNES","PROPS_IS_UPDATED","PROPS_IS_BINDABLE","PROPS_IS_LAZY_INITIAL","TRANSITION_IN","TRANSITION_OUT","TRANSITION_GLOBAL","TEMPLATE_FRAGMENT","TEMPLATE_USE_IMPORT_NODE","HYDRATION_START","HYDRATION_START_ELSE","HYDRATION_END","HYDRATION_ERROR","UNINITIALIZED","hydration_mismatch","location","hydrating","set_hydrating","hydrate_node","set_hydrate_node","node","w.hydration_mismatch","hydrate_next","get_next_sibling","reset","next","count","remove_nodes","depth","data","$window","first_child_getter","next_sibling_getter","init_operations","element_prototype","node_prototype","create_text","get_first_child","child","is_text","text","first_child","fragment","first","sibling","next_sibling","type","clear_text_content","derived","derived_safe_equal","destroy_derived_children","children","destroy_derived","destroy_effect","execute_derived","prev_active_effect","set_active_effect","update_reaction","update_derived","skip_reaction","remove_reactions","validate_effect","e.effect_orphan","e.effect_in_unowned_derived","is_destroying_effect","e.effect_in_teardown","push_effect","effect","parent_effect","parent_last","create_effect","sync","push","is_root","previously_flushing_effect","is_flushing_effect","set_is_flushing_effect","update_effect","e","inert","teardown","user_effect","defer","context","user_pre_effect","render_effect","effect_root","legacy_pre_effect","deps","token","untrack","legacy_pre_effect_reset","get","check_dirtiness","template_effect","block","branch","execute_effect_teardown","previously_destroying_effect","previous_reaction","set_is_destroying_effect","set_active_reaction","destroy_effect_deriveds","deriveds","destroy_effect_children","remove_dom","destroy_block_effect_children","removed","end","transitions","transition","parent","unlink_effect","prev","pause_effect","callback","pause_children","run_out_transitions","remaining","check","local","transparent","resume_effect","resume_children","request_idle_callback","cb","is_micro_task_queued","is_idle_task_queued","current_queued_micro_tasks","current_queued_idle_tasks","process_micro_tasks","tasks","process_idle_tasks","queue_micro_task","queue_idle_task","flush_tasks","lifecycle_outside_component","name","FLUSH_MICROTASK","FLUSH_SYNC","scheduler_mode","queued_root_effects","flush_count","sources","skipped_deps","current_version","_b","dependencies","is_unowned","dependency","handle_error","error","previous_deps","previous_skipped_deps","previous_untracked_writes","previous_skip_reaction","prev_derived_sources","previous_component_context","result","remove_reaction","index","new_length","start_index","previous_effect","infinite_loop_guard","e.effect_update_depth_exceeded","flush_queued_root_effects","root_effects","collected_effects","process_effects","flush_queued_effects","effects","process_deferred","previous_queued_root_effects","current_effect","main_loop","is_branch","is_skippable_branch","parent_sibling","flush_sync","previous_scheduler_mode","tick","is_derived","e.state_unsafe_local_read","STATUS_MASK","getContext","get_or_init_context_map","setContext","get_parent_context","context_map","update","d","props","pop","component","context_stack_item","component_effects","component_effect","deep_read_state","deep_read","prop","visited","proto","descriptors","subscribe_to_store","store","invalidate","unsub"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]}