import { await_reactivity_loss, await_waterfall, derived_inert, hydration_mismatch, state_proxy_equality_mismatch, svelte_boundary_reset_noop, true_default } from "./chunk-QDDRZFWN.js"; import { async_mode_flag, legacy_mode_flag, tracing_mode_flag } from "./chunk-OHYQYV5R.js"; import { __privateAdd, __privateGet, __privateMethod, __privateSet, __publicField } from "./chunk-KWPVD4H7.js"; // node_modules/svelte/src/constants.js var EACH_ITEM_REACTIVE = 1; var EACH_INDEX_REACTIVE = 1 << 1; var EACH_IS_CONTROLLED = 1 << 2; var EACH_IS_ANIMATED = 1 << 3; var EACH_ITEM_IMMUTABLE = 1 << 4; var PROPS_IS_IMMUTABLE = 1; var PROPS_IS_RUNES = 1 << 1; var PROPS_IS_UPDATED = 1 << 2; var PROPS_IS_BINDABLE = 1 << 3; var PROPS_IS_LAZY_INITIAL = 1 << 4; var TRANSITION_IN = 1; var TRANSITION_OUT = 1 << 1; var TRANSITION_GLOBAL = 1 << 2; var TEMPLATE_FRAGMENT = 1; var TEMPLATE_USE_IMPORT_NODE = 1 << 1; var TEMPLATE_USE_SVG = 1 << 2; var TEMPLATE_USE_MATHML = 1 << 3; var HYDRATION_START = "["; var HYDRATION_START_ELSE = "[!"; var HYDRATION_START_FAILED = "[?"; var HYDRATION_END = "]"; var HYDRATION_ERROR = {}; var ELEMENT_PRESERVE_ATTRIBUTE_CASE = 1 << 1; var ELEMENT_IS_INPUT = 1 << 2; var UNINITIALIZED = Symbol("uninitialized"); var FILENAME = Symbol("filename"); var HMR = Symbol("hmr"); var NAMESPACE_HTML = "http://www.w3.org/1999/xhtml"; var NAMESPACE_SVG = "http://www.w3.org/2000/svg"; var NAMESPACE_MATHML = "http://www.w3.org/1998/Math/MathML"; var ATTACHMENT_KEY = "@attach"; // node_modules/svelte/src/internal/shared/utils.js var is_array = Array.isArray; var index_of = Array.prototype.indexOf; var includes = Array.prototype.includes; var array_from = Array.from; var object_keys = Object.keys; var define_property = Object.defineProperty; var get_descriptor = Object.getOwnPropertyDescriptor; var get_descriptors = Object.getOwnPropertyDescriptors; var object_prototype = Object.prototype; var array_prototype = Array.prototype; var get_prototype_of = Object.getPrototypeOf; var is_extensible = Object.isExtensible; var has_own_property = Object.prototype.hasOwnProperty; function is_function(thing) { return typeof thing === "function"; } var noop = () => { }; function is_promise(value) { return typeof (value == null ? void 0 : value.then) === "function"; } function run(fn) { return fn(); } function run_all(arr) { for (var i = 0; i < arr.length; i++) { arr[i](); } } function deferred() { var resolve; var reject; var promise = new Promise((res, rej) => { resolve = res; reject = rej; }); return { promise, resolve, reject }; } function fallback(value, fallback2, lazy = false) { return value === void 0 ? lazy ? ( /** @type {() => V} */ fallback2() ) : ( /** @type {V} */ fallback2 ) : value; } function to_array(value, n) { if (Array.isArray(value)) { return value; } if (n === void 0 || !(Symbol.iterator in value)) { return Array.from(value); } const array = []; for (const element of value) { array.push(element); if (array.length === n) break; } return array; } function exclude_from_object(obj, keys) { var result = {}; for (var key in obj) { if (!keys.includes(key)) { result[key] = obj[key]; } } for (var symbol of Object.getOwnPropertySymbols(obj)) { if (Object.propertyIsEnumerable.call(obj, symbol) && !keys.includes(symbol)) { result[symbol] = obj[symbol]; } } return result; } // node_modules/svelte/src/internal/client/constants.js var DERIVED = 1 << 1; var EFFECT = 1 << 2; var RENDER_EFFECT = 1 << 3; var MANAGED_EFFECT = 1 << 24; var BLOCK_EFFECT = 1 << 4; var BRANCH_EFFECT = 1 << 5; var ROOT_EFFECT = 1 << 6; var BOUNDARY_EFFECT = 1 << 7; var CONNECTED = 1 << 9; var CLEAN = 1 << 10; var DIRTY = 1 << 11; var MAYBE_DIRTY = 1 << 12; var INERT = 1 << 13; var DESTROYED = 1 << 14; var REACTION_RAN = 1 << 15; var DESTROYING = 1 << 25; var EFFECT_TRANSPARENT = 1 << 16; var EAGER_EFFECT = 1 << 17; var HEAD_EFFECT = 1 << 18; var EFFECT_PRESERVED = 1 << 19; var USER_EFFECT = 1 << 20; var EFFECT_OFFSCREEN = 1 << 25; var WAS_MARKED = 1 << 16; var REACTION_IS_UPDATING = 1 << 21; var ASYNC = 1 << 22; var ERROR_VALUE = 1 << 23; var STATE_SYMBOL = Symbol("$state"); var LEGACY_PROPS = Symbol("legacy props"); var LOADING_ATTR_SYMBOL = Symbol(""); var PROXY_PATH_SYMBOL = Symbol("proxy path"); var ATTRIBUTES_CACHE = Symbol("attributes"); var CLASS_CACHE = Symbol("class"); var STYLE_CACHE = Symbol("style"); var TEXT_CACHE = Symbol("text"); var FORM_RESET_HANDLER = Symbol("form reset"); var HMR_ANCHOR = Symbol("hmr anchor"); var STALE_REACTION = new class StaleReactionError extends Error { constructor() { super(...arguments); __publicField(this, "name", "StaleReactionError"); __publicField(this, "message", "The reaction that called `getAbortSignal()` was re-run or destroyed"); } }(); var _a; var IS_XHTML = ( // We gotta write it like this because after downleveling the pure comment may end up in the wrong location !!((_a = globalThis.document) == null ? void 0 : _a.contentType) && globalThis.document.contentType.includes("xml") ); var ELEMENT_NODE = 1; var TEXT_NODE = 3; var COMMENT_NODE = 8; var DOCUMENT_FRAGMENT_NODE = 11; // node_modules/svelte/src/internal/shared/errors.js function experimental_async_required(name) { if (true_default) { const error = new Error(`experimental_async_required Cannot use \`${name}(...)\` unless the \`experimental.async\` compiler option is \`true\` https://svelte.dev/e/experimental_async_required`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/experimental_async_required`); } } function invalid_default_snippet() { if (true_default) { const error = new Error(`invalid_default_snippet Cannot use \`{@render children(...)}\` if the parent component uses \`let:\` directives. Consider using a named snippet instead https://svelte.dev/e/invalid_default_snippet`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/invalid_default_snippet`); } } function invalid_snippet_arguments() { if (true_default) { const error = new Error(`invalid_snippet_arguments A snippet function was passed invalid arguments. Snippets should only be instantiated via \`{@render ...}\` https://svelte.dev/e/invalid_snippet_arguments`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/invalid_snippet_arguments`); } } function invariant_violation(message) { if (true_default) { const error = new Error(`invariant_violation An invariant violation occurred, meaning Svelte's internal assumptions were flawed. This is a bug in Svelte, not your app — please open an issue at https://github.com/sveltejs/svelte, citing the following message: "${message}" https://svelte.dev/e/invariant_violation`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/invariant_violation`); } } function lifecycle_outside_component(name) { if (true_default) { const error = new Error(`lifecycle_outside_component \`${name}(...)\` can only be used during component initialisation https://svelte.dev/e/lifecycle_outside_component`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/lifecycle_outside_component`); } } function missing_context() { if (true_default) { const error = new Error(`missing_context Context was not set in a parent component https://svelte.dev/e/missing_context`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/missing_context`); } } function snippet_without_render_tag() { if (true_default) { const error = new Error(`snippet_without_render_tag Attempted to render a snippet without a \`{@render}\` block. This would cause the snippet code to be stringified instead of its content being rendered to the DOM. To fix this, change \`{snippet}\` to \`{@render snippet()}\`. https://svelte.dev/e/snippet_without_render_tag`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/snippet_without_render_tag`); } } function store_invalid_shape(name) { if (true_default) { const error = new Error(`store_invalid_shape \`${name}\` is not a store with a \`subscribe\` method https://svelte.dev/e/store_invalid_shape`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/store_invalid_shape`); } } function svelte_element_invalid_this_value() { if (true_default) { const error = new Error(`svelte_element_invalid_this_value The \`this\` prop on \`\` must be a string, if defined https://svelte.dev/e/svelte_element_invalid_this_value`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/svelte_element_invalid_this_value`); } } // node_modules/svelte/src/internal/client/errors.js function async_derived_orphan() { if (true_default) { const error = new Error(`async_derived_orphan Cannot create a \`$derived(...)\` with an \`await\` expression outside of an effect tree https://svelte.dev/e/async_derived_orphan`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/async_derived_orphan`); } } function bind_invalid_checkbox_value() { if (true_default) { const error = new Error(`bind_invalid_checkbox_value Using \`bind:value\` together with a checkbox input is not allowed. Use \`bind:checked\` instead https://svelte.dev/e/bind_invalid_checkbox_value`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/bind_invalid_checkbox_value`); } } function component_api_changed(method, component) { if (true_default) { const error = new Error(`component_api_changed Calling \`${method}\` on a component instance (of ${component}) is no longer valid in Svelte 5 https://svelte.dev/e/component_api_changed`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/component_api_changed`); } } function component_api_invalid_new(component, name) { if (true_default) { const error = new Error(`component_api_invalid_new 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. https://svelte.dev/e/component_api_invalid_new`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/component_api_invalid_new`); } } function derived_references_self() { if (true_default) { const error = new Error(`derived_references_self A derived value cannot reference itself recursively https://svelte.dev/e/derived_references_self`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/derived_references_self`); } } function each_key_duplicate(a, b, value) { if (true_default) { const error = new Error(`each_key_duplicate ${value ? `Keyed each block has duplicate key \`${value}\` at indexes ${a} and ${b}` : `Keyed each block has duplicate key at indexes ${a} and ${b}`} https://svelte.dev/e/each_key_duplicate`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/each_key_duplicate`); } } function each_key_volatile(index, a, b) { if (true_default) { const error = new Error(`each_key_volatile Keyed each block has key that is not idempotent — the key for item at index ${index} was \`${a}\` but is now \`${b}\`. Keys must be the same each time for a given item https://svelte.dev/e/each_key_volatile`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/each_key_volatile`); } } function effect_in_teardown(rune) { if (true_default) { const error = new Error(`effect_in_teardown \`${rune}\` cannot be used inside an effect cleanup function https://svelte.dev/e/effect_in_teardown`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/effect_in_teardown`); } } function effect_in_unowned_derived() { if (true_default) { const error = new Error(`effect_in_unowned_derived Effect cannot be created inside a \`$derived\` value that was not itself created inside an effect https://svelte.dev/e/effect_in_unowned_derived`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/effect_in_unowned_derived`); } } function effect_orphan(rune) { if (true_default) { const error = new Error(`effect_orphan \`${rune}\` can only be used inside an effect (e.g. during component initialisation) https://svelte.dev/e/effect_orphan`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/effect_orphan`); } } function effect_pending_outside_reaction() { if (true_default) { const error = new Error(`effect_pending_outside_reaction \`$effect.pending()\` can only be called inside an effect or derived https://svelte.dev/e/effect_pending_outside_reaction`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/effect_pending_outside_reaction`); } } function effect_update_depth_exceeded() { if (true_default) { const error = new Error(`effect_update_depth_exceeded Maximum update depth exceeded. This typically indicates that an effect reads and writes the same piece of state https://svelte.dev/e/effect_update_depth_exceeded`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/effect_update_depth_exceeded`); } } function fork_discarded() { if (true_default) { const error = new Error(`fork_discarded Cannot commit a fork that was already discarded https://svelte.dev/e/fork_discarded`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/fork_discarded`); } } function fork_timing() { if (true_default) { const error = new Error(`fork_timing Cannot create a fork inside an effect or when state changes are pending https://svelte.dev/e/fork_timing`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/fork_timing`); } } function get_abort_signal_outside_reaction() { if (true_default) { const error = new Error(`get_abort_signal_outside_reaction \`getAbortSignal()\` can only be called inside an effect or derived https://svelte.dev/e/get_abort_signal_outside_reaction`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/get_abort_signal_outside_reaction`); } } function hydratable_missing_but_required(key) { if (true_default) { const error = new Error(`hydratable_missing_but_required Expected to find a hydratable with key \`${key}\` during hydration, but did not. https://svelte.dev/e/hydratable_missing_but_required`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/hydratable_missing_but_required`); } } function hydration_failed() { if (true_default) { const error = new Error(`hydration_failed Failed to hydrate the application https://svelte.dev/e/hydration_failed`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/hydration_failed`); } } function invalid_snippet() { if (true_default) { const error = new Error(`invalid_snippet Could not \`{@render}\` snippet due to the expression being \`null\` or \`undefined\`. Consider using optional chaining \`{@render snippet?.()}\` https://svelte.dev/e/invalid_snippet`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/invalid_snippet`); } } function lifecycle_legacy_only(name) { if (true_default) { const error = new Error(`lifecycle_legacy_only \`${name}(...)\` cannot be used in runes mode https://svelte.dev/e/lifecycle_legacy_only`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/lifecycle_legacy_only`); } } function props_invalid_value(key) { if (true_default) { const error = new Error(`props_invalid_value Cannot do \`bind:${key}={undefined}\` when \`${key}\` has a fallback value https://svelte.dev/e/props_invalid_value`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/props_invalid_value`); } } function props_rest_readonly(property) { if (true_default) { const error = new Error(`props_rest_readonly Rest element properties of \`$props()\` such as \`${property}\` are readonly https://svelte.dev/e/props_rest_readonly`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/props_rest_readonly`); } } function rune_outside_svelte(rune) { if (true_default) { const error = new Error(`rune_outside_svelte The \`${rune}\` rune is only available inside \`.svelte\` and \`.svelte.js/ts\` files https://svelte.dev/e/rune_outside_svelte`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/rune_outside_svelte`); } } function set_context_after_init() { if (true_default) { const error = new Error(`set_context_after_init \`setContext\` must be called when a component first initializes, not in a subsequent effect or after an \`await\` expression https://svelte.dev/e/set_context_after_init`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/set_context_after_init`); } } function state_descriptors_fixed() { if (true_default) { const error = new Error(`state_descriptors_fixed Property descriptors defined on \`$state\` objects must contain \`value\` and always be \`enumerable\`, \`configurable\` and \`writable\`. https://svelte.dev/e/state_descriptors_fixed`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/state_descriptors_fixed`); } } function state_prototype_fixed() { if (true_default) { const error = new Error(`state_prototype_fixed Cannot set prototype of \`$state\` object https://svelte.dev/e/state_prototype_fixed`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/state_prototype_fixed`); } } function state_unsafe_mutation() { if (true_default) { const error = new Error(`state_unsafe_mutation Updating state inside \`$derived(...)\`, \`$inspect(...)\` or a template expression is forbidden. If the value should not be reactive, declare it without \`$state\` https://svelte.dev/e/state_unsafe_mutation`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/state_unsafe_mutation`); } } function svelte_boundary_reset_onerror() { if (true_default) { const error = new Error(`svelte_boundary_reset_onerror A \`\` \`reset\` function cannot be called while an error is still being handled https://svelte.dev/e/svelte_boundary_reset_onerror`); error.name = "Svelte error"; throw error; } else { throw new Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`); } } // node_modules/svelte/src/internal/client/context.js var component_context = null; function set_component_context(context) { component_context = context; } var dev_stack = null; function set_dev_stack(stack2) { dev_stack = stack2; } function add_svelte_meta(callback, type, component, line, column, additional) { const parent = dev_stack; dev_stack = { type, file: component[FILENAME], line, column, parent, ...additional }; try { return callback(); } finally { dev_stack = parent; } } var dev_current_component_function = null; function set_dev_current_component_function(fn) { dev_current_component_function = fn; } function createContext() { const key = {}; return [ () => { if (!hasContext(key)) { missing_context(); } return getContext(key); }, (context) => setContext(key, context) ]; } function getContext(key) { const context_map = get_or_init_context_map("getContext"); const result = ( /** @type {T} */ context_map.get(key) ); return result; } function setContext(key, context) { const context_map = get_or_init_context_map("setContext"); if (async_mode_flag) { var flags2 = ( /** @type {Effect} */ active_effect.f ); var valid = !active_reaction && (flags2 & BRANCH_EFFECT) !== 0 && // pop() runs synchronously, so this indicates we're setting context after an await !/** @type {ComponentContext} */ component_context.i; if (!valid) { set_context_after_init(); } } context_map.set(key, context); return context; } function hasContext(key) { const context_map = get_or_init_context_map("hasContext"); return context_map.has(key); } function getAllContexts() { const context_map = get_or_init_context_map("getAllContexts"); return ( /** @type {T} */ context_map ); } function push(props, runes = false, fn) { component_context = { p: component_context, i: false, c: null, e: null, s: props, x: null, r: ( /** @type {Effect} */ active_effect ), l: legacy_mode_flag && !runes ? { s: null, u: null, $: [] } : null }; if (true_default) { component_context.function = fn; dev_current_component_function = fn; } } function pop(component) { var context = ( /** @type {ComponentContext} */ component_context ); var effects = context.e; if (effects !== null) { context.e = null; for (var fn of effects) { create_user_effect(fn); } } if (component !== void 0) { context.x = component; } context.i = true; component_context = context.p; if (true_default) { dev_current_component_function = (component_context == null ? void 0 : component_context.function) ?? null; } return component ?? /** @type {T} */ {}; } function is_runes() { return !legacy_mode_flag || component_context !== null && component_context.l === null; } function get_or_init_context_map(name) { if (component_context === null) { lifecycle_outside_component(name); } return component_context.c ?? (component_context.c = new Map(get_parent_context(component_context) || void 0)); } function get_parent_context(component_context2) { let parent = component_context2.p; while (parent !== null) { const context_map = parent.c; if (context_map !== null) { return context_map; } parent = parent.p; } return null; } // node_modules/svelte/src/internal/client/dom/task.js var micro_tasks = []; function run_micro_tasks() { var tasks = micro_tasks; micro_tasks = []; run_all(tasks); } function queue_micro_task(fn) { if (micro_tasks.length === 0 && !is_flushing_sync) { var tasks = micro_tasks; queueMicrotask(() => { if (tasks === micro_tasks) run_micro_tasks(); }); } micro_tasks.push(fn); } function flush_tasks() { while (micro_tasks.length > 0) { run_micro_tasks(); } } // node_modules/svelte/src/internal/client/error-handling.js var adjustments = /* @__PURE__ */ new WeakMap(); function handle_error(error) { var effect2 = active_effect; if (effect2 === null) { active_reaction.f |= ERROR_VALUE; return error; } if (true_default && error instanceof Error && !adjustments.has(error)) { adjustments.set(error, get_adjustments(error, effect2)); } if ((effect2.f & REACTION_RAN) === 0 && (effect2.f & EFFECT) === 0) { if (true_default && !effect2.parent && error instanceof Error) { apply_adjustments(error); } throw error; } invoke_error_boundary(error, effect2); } function invoke_error_boundary(error, effect2) { if (effect2 !== null && (effect2.f & DESTROYED) !== 0) { return; } while (effect2 !== null) { if ((effect2.f & BOUNDARY_EFFECT) !== 0) { if ((effect2.f & REACTION_RAN) === 0) { throw error; } try { effect2.b.error(error); return; } catch (e) { error = e; } } effect2 = effect2.parent; } if (true_default && error instanceof Error) { apply_adjustments(error); } throw error; } function get_adjustments(error, effect2) { var _a2, _b, _c; const message_descriptor = get_descriptor(error, "message"); if (message_descriptor && !message_descriptor.configurable) return; var indent = is_firefox ? " " : " "; var component_stack = ` ${indent}in ${((_a2 = effect2.fn) == null ? void 0 : _a2.name) || ""}`; var context = effect2.ctx; while (context !== null) { component_stack += ` ${indent}in ${(_b = context.function) == null ? void 0 : _b[FILENAME].split("/").pop()}`; context = context.p; } return { message: error.message + ` ${component_stack} `, stack: (_c = error.stack) == null ? void 0 : _c.split("\n").filter((line) => !line.includes("svelte/src/internal")).join("\n") }; } function apply_adjustments(error) { const adjusted = adjustments.get(error); if (adjusted) { define_property(error, "message", { value: adjusted.message }); define_property(error, "stack", { value: adjusted.stack }); } } // node_modules/svelte/src/internal/client/reactivity/equality.js function equals(value) { return value === this.v; } function safe_not_equal(a, b) { return a != a ? b == b : a !== b || a !== null && typeof a === "object" || typeof a === "function"; } function safe_equals(value) { return !safe_not_equal(value, this.v); } // node_modules/svelte/src/internal/shared/warnings.js var bold = "font-weight: bold"; var normal = "font-weight: normal"; function dynamic_void_element_content(tag2) { if (true_default) { console.warn(`%c[svelte] dynamic_void_element_content %c\`\` is a void element — it cannot have content https://svelte.dev/e/dynamic_void_element_content`, bold, normal); } else { console.warn(`https://svelte.dev/e/dynamic_void_element_content`); } } function state_snapshot_uncloneable(properties) { if (true_default) { console.warn( `%c[svelte] state_snapshot_uncloneable %c${properties ? `The following properties cannot be cloned with \`$state.snapshot\` — the return value contains the originals: ${properties}` : "Value cannot be cloned with `$state.snapshot` — the original value was returned"} https://svelte.dev/e/state_snapshot_uncloneable`, bold, normal ); } else { console.warn(`https://svelte.dev/e/state_snapshot_uncloneable`); } } // node_modules/svelte/src/internal/shared/clone.js var empty = []; function snapshot(value, skip_warning = false, no_tojson = false) { if (true_default && !skip_warning) { const paths = []; const copy = clone(value, /* @__PURE__ */ new Map(), "", paths, null, no_tojson); if (paths.length === 1 && paths[0] === "") { state_snapshot_uncloneable(); } else if (paths.length > 0) { const slice = paths.length > 10 ? paths.slice(0, 7) : paths.slice(0, 10); const excess = paths.length - slice.length; let uncloned = slice.map((path) => `- ${path}`).join("\n"); if (excess > 0) uncloned += ` - ...and ${excess} more`; state_snapshot_uncloneable(uncloned); } return copy; } return clone(value, /* @__PURE__ */ new Map(), "", empty, null, no_tojson); } function clone(value, cloned, path, paths, original = null, no_tojson = false) { if (typeof value === "object" && value !== null) { var unwrapped = cloned.get(value); if (unwrapped !== void 0) return unwrapped; if (value instanceof Map) return ( /** @type {Snapshot} */ new Map(value) ); if (value instanceof Set) return ( /** @type {Snapshot} */ new Set(value) ); if (is_array(value)) { var copy = ( /** @type {Snapshot} */ Array(value.length) ); cloned.set(value, copy); if (original !== null) { cloned.set(original, copy); } for (var i = 0; i < value.length; i += 1) { var element = value[i]; if (i in value) { copy[i] = clone(element, cloned, true_default ? `${path}[${i}]` : path, paths, null, no_tojson); } } return copy; } if (get_prototype_of(value) === object_prototype) { copy = {}; cloned.set(value, copy); if (original !== null) { cloned.set(original, copy); } for (var key of Object.keys(value)) { copy[key] = clone( // @ts-expect-error value[key], cloned, true_default ? `${path}.${key}` : path, paths, null, no_tojson ); } return copy; } if (value instanceof Date) { return ( /** @type {Snapshot} */ structuredClone(value) ); } if (typeof /** @type {T & { toJSON?: any } } */ value.toJSON === "function" && !no_tojson) { return clone( /** @type {T & { toJSON(): any } } */ value.toJSON(), cloned, true_default ? `${path}.toJSON()` : path, paths, // Associate the instance with the toJSON clone value ); } } if (value instanceof EventTarget) { return ( /** @type {Snapshot} */ value ); } try { return ( /** @type {Snapshot} */ structuredClone(value) ); } catch (e) { if (true_default) { paths.push(path); } return ( /** @type {Snapshot} */ value ); } } // node_modules/svelte/src/internal/client/dev/tracing.js var tracing_expressions = null; function log_entry(signal, entry) { const value = signal.v; if (value === UNINITIALIZED) { return; } const type = get_type(signal); const current_reaction = ( /** @type {Reaction} */ active_reaction ); const dirty = signal.wv > current_reaction.wv || current_reaction.wv === 0; const style = dirty ? "color: CornflowerBlue; font-weight: bold" : "color: grey; font-weight: normal"; console.groupCollapsed( signal.label ? `%c${type}%c ${signal.label}` : `%c${type}%c`, style, dirty ? "font-weight: normal" : style, typeof value === "object" && value !== null && STATE_SYMBOL in value ? snapshot(value, true) : value ); if (type === "$derived") { const deps = new Set( /** @type {Derived} */ signal.deps ); for (const dep of deps) { log_entry(dep); } } if (signal.created) { console.log(signal.created); } if (dirty && signal.updated) { for (const updated of signal.updated.values()) { if (updated.error) { console.log(updated.error); } } } if (entry) { for (var trace2 of entry.traces) { console.log(trace2); } } console.groupEnd(); } function get_type(signal) { var _a2; if ((signal.f & (DERIVED | ASYNC)) !== 0) return "$derived"; return ((_a2 = signal.label) == null ? void 0 : _a2.startsWith("$")) ? "store" : "$state"; } function trace(label2, fn) { var previously_tracing_expressions = tracing_expressions; try { tracing_expressions = { entries: /* @__PURE__ */ new Map(), reaction: active_reaction }; var start = performance.now(); var value = fn(); var time = (performance.now() - start).toFixed(2); var prefix = untrack(label2); if (!effect_tracking()) { console.log(`${prefix} %cran outside of an effect (${time}ms)`, "color: grey"); } else if (tracing_expressions.entries.size === 0) { console.log(`${prefix} %cno reactive dependencies (${time}ms)`, "color: grey"); } else { console.group(`${prefix} %c(${time}ms)`, "color: grey"); var entries = tracing_expressions.entries; untrack(() => { for (const [signal, traces] of entries) { log_entry(signal, traces); } }); tracing_expressions = null; console.groupEnd(); } return value; } finally { tracing_expressions = previously_tracing_expressions; } } function tag(source2, label2) { source2.label = label2; tag_proxy(source2.v, label2); return source2; } function tag_proxy(value, label2) { var _a2; (_a2 = value == null ? void 0 : value[PROXY_PATH_SYMBOL]) == null ? void 0 : _a2.call(value, label2); return value; } function label(value) { if (typeof value === "symbol") return `Symbol(${value.description})`; if (typeof value === "function") return ""; if (typeof value === "object" && value) return ""; return String(value); } // node_modules/svelte/src/internal/shared/dev.js function get_error(label2) { const error = new Error(); const stack2 = get_stack(); if (stack2.length === 0) { return null; } stack2.unshift("\n"); define_property(error, "stack", { value: stack2.join("\n") }); define_property(error, "name", { value: label2 }); return ( /** @type {Error & { stack: string }} */ error ); } function get_stack() { const limit = Error.stackTraceLimit; Error.stackTraceLimit = Infinity; const stack2 = new Error().stack; Error.stackTraceLimit = limit; if (!stack2) return []; const lines = stack2.split("\n"); const new_lines = []; for (let i = 0; i < lines.length; i++) { const line = lines[i]; const posixified = line.replaceAll("\\", "/"); if (line.trim() === "Error") { continue; } if (line.includes("validate_each_keys")) { return []; } if (posixified.includes("svelte/src/internal") || posixified.includes("node_modules/.vite")) { continue; } new_lines.push(line); } return new_lines; } function invariant(condition, message) { if (!true_default) { throw new Error("invariant(...) was not guarded by if (DEV)"); } if (!condition) invariant_violation(message); } // node_modules/svelte/src/internal/client/dom/elements/misc.js function autofocus(dom, value) { if (value) { const body = document.body; dom.autofocus = true; queue_micro_task(() => { if (document.activeElement === body) { dom.focus(); } }); } } function remove_textarea_child(dom) { if (hydrating && get_first_child(dom) !== null) { clear_text_content(dom); } } var listening_to_form_reset = false; function add_form_reset_listener() { if (!listening_to_form_reset) { listening_to_form_reset = true; document.addEventListener( "reset", (evt) => { Promise.resolve().then(() => { var _a2; if (!evt.defaultPrevented) { for ( const e of /**@type {HTMLFormElement} */ evt.target.elements ) { (_a2 = e[FORM_RESET_HANDLER]) == null ? void 0 : _a2.call(e); } } }); }, // In the capture phase to guarantee we get noticed of it (no possibility of stopPropagation) { capture: true } ); } } // node_modules/svelte/src/internal/client/dom/elements/bindings/shared.js function listen(target, events, handler, call_handler_immediately = true) { if (call_handler_immediately) { handler(); } for (var name of events) { target.addEventListener(name, handler); } teardown(() => { for (var name2 of events) { target.removeEventListener(name2, handler); } }); } function without_reactive_context(fn) { var previous_reaction = active_reaction; var previous_effect = active_effect; set_active_reaction(null); set_active_effect(null); try { return fn(); } finally { set_active_reaction(previous_reaction); set_active_effect(previous_effect); } } function listen_to_event_and_reset_event(element, event, handler, on_reset = handler) { element.addEventListener(event, () => without_reactive_context(handler)); const prev = ( /** @type {any} */ element[FORM_RESET_HANDLER] ); if (prev) { element[FORM_RESET_HANDLER] = () => { prev(); on_reset(true); }; } else { element[FORM_RESET_HANDLER] = () => on_reset(true); } add_form_reset_listener(); } // node_modules/svelte/src/reactivity/create-subscriber.js function createSubscriber(start) { let subscribers = 0; let version = source(0); let stop; if (true_default) { tag(version, "createSubscriber version"); } return () => { if (effect_tracking()) { get(version); render_effect(() => { if (subscribers === 0) { stop = untrack(() => start(() => increment(version))); } subscribers += 1; return () => { queue_micro_task(() => { subscribers -= 1; if (subscribers === 0) { stop == null ? void 0 : stop(); stop = void 0; increment(version); } }); }; }); } }; } // node_modules/svelte/src/internal/client/reactivity/status.js var STATUS_MASK = ~(DIRTY | MAYBE_DIRTY | CLEAN); function set_signal_status(signal, status) { signal.f = signal.f & STATUS_MASK | status; } function update_derived_status(derived3) { if ((derived3.f & CONNECTED) !== 0 || derived3.deps === null) { set_signal_status(derived3, CLEAN); } else { set_signal_status(derived3, MAYBE_DIRTY); } } // node_modules/svelte/src/internal/client/reactivity/utils.js function clear_marked(deps) { if (deps === null) return; for (const dep of deps) { if ((dep.f & DERIVED) === 0 || (dep.f & WAS_MARKED) === 0) { continue; } dep.f ^= WAS_MARKED; clear_marked( /** @type {Derived} */ dep.deps ); } } function defer_effect(effect2, dirty_effects, maybe_dirty_effects) { if ((effect2.f & DIRTY) !== 0) { dirty_effects.add(effect2); } else if ((effect2.f & MAYBE_DIRTY) !== 0) { maybe_dirty_effects.add(effect2); } clear_marked(effect2.deps); set_signal_status(effect2, CLEAN); } // node_modules/svelte/src/internal/client/dom/blocks/boundary.js var flags = EFFECT_TRANSPARENT | EFFECT_PRESERVED; function boundary(node, props, children, transform_error) { new Boundary(node, props, children, transform_error); } var _anchor, _hydrate_open, _props, _children, _effect, _main_effect, _pending_effect, _failed_effect, _offscreen_fragment, _local_pending_count, _pending_count, _pending_count_update_queued, _dirty_effects, _maybe_dirty_effects, _effect_pending, _effect_pending_subscriber, _Boundary_instances, hydrate_resolved_content_fn, hydrate_failed_content_fn, create_reset_fn, hydrate_pending_content_fn, render_fn, resolve_fn, run_fn, update_pending_count_fn, handle_error_fn; var Boundary = class { /** * @param {TemplateNode} node * @param {BoundaryProps} props * @param {((anchor: Node) => void)} children * @param {((error: unknown) => unknown) | undefined} [transform_error] */ constructor(node, props, children, transform_error) { __privateAdd(this, _Boundary_instances); /** @type {Boundary | null} */ __publicField(this, "parent"); __publicField(this, "is_pending", false); /** * API-level transformError transform function. Transforms errors before they reach the `failed` snippet. * Inherited from parent boundary, or defaults to identity. * @type {(error: unknown) => unknown} */ __publicField(this, "transform_error"); /** @type {TemplateNode} */ __privateAdd(this, _anchor); /** @type {TemplateNode | null} */ __privateAdd(this, _hydrate_open, hydrating ? hydrate_node : null); /** @type {BoundaryProps} */ __privateAdd(this, _props); /** @type {((anchor: Node) => void)} */ __privateAdd(this, _children); /** @type {Effect} */ __privateAdd(this, _effect); /** @type {Effect | null} */ __privateAdd(this, _main_effect, null); /** @type {Effect | null} */ __privateAdd(this, _pending_effect, null); /** @type {Effect | null} */ __privateAdd(this, _failed_effect, null); /** @type {DocumentFragment | null} */ __privateAdd(this, _offscreen_fragment, null); __privateAdd(this, _local_pending_count, 0); __privateAdd(this, _pending_count, 0); __privateAdd(this, _pending_count_update_queued, false); /** @type {Set} */ __privateAdd(this, _dirty_effects, /* @__PURE__ */ new Set()); /** @type {Set} */ __privateAdd(this, _maybe_dirty_effects, /* @__PURE__ */ new Set()); /** * A source containing the number of pending async deriveds/expressions. * Only created if `$effect.pending()` is used inside the boundary, * otherwise updating the source results in needless `Batch.ensure()` * calls followed by no-op flushes * @type {Source | null} */ __privateAdd(this, _effect_pending, null); __privateAdd(this, _effect_pending_subscriber, createSubscriber(() => { __privateSet(this, _effect_pending, source(__privateGet(this, _local_pending_count))); if (true_default) { tag(__privateGet(this, _effect_pending), "$effect.pending()"); } return () => { __privateSet(this, _effect_pending, null); }; })); var _a2; __privateSet(this, _anchor, node); __privateSet(this, _props, props); __privateSet(this, _children, (anchor) => { var effect2 = ( /** @type {Effect} */ active_effect ); effect2.b = this; effect2.f |= BOUNDARY_EFFECT; children(anchor); }); this.parent = /** @type {Effect} */ active_effect.b; this.transform_error = transform_error ?? ((_a2 = this.parent) == null ? void 0 : _a2.transform_error) ?? ((e) => e); __privateSet(this, _effect, block(() => { if (hydrating) { const comment = ( /** @type {Comment} */ __privateGet(this, _hydrate_open) ); hydrate_next(); const server_rendered_pending = comment.data === HYDRATION_START_ELSE; const server_rendered_failed = comment.data.startsWith(HYDRATION_START_FAILED); if (server_rendered_failed) { const serialized_error = JSON.parse(comment.data.slice(HYDRATION_START_FAILED.length)); __privateMethod(this, _Boundary_instances, hydrate_failed_content_fn).call(this, serialized_error); } else if (server_rendered_pending) { __privateMethod(this, _Boundary_instances, hydrate_pending_content_fn).call(this); } else { __privateMethod(this, _Boundary_instances, hydrate_resolved_content_fn).call(this); } } else { __privateMethod(this, _Boundary_instances, render_fn).call(this); } }, flags)); if (hydrating) { __privateSet(this, _anchor, hydrate_node); } } /** * Defer an effect inside a pending boundary until the boundary resolves * @param {Effect} effect */ defer_effect(effect2) { defer_effect(effect2, __privateGet(this, _dirty_effects), __privateGet(this, _maybe_dirty_effects)); } /** * Returns `false` if the effect exists inside a boundary whose pending snippet is shown * @returns {boolean} */ is_rendered() { return !this.is_pending && (!this.parent || this.parent.is_rendered()); } has_pending_snippet() { return !!__privateGet(this, _props).pending; } /** * Update the source that powers `$effect.pending()` inside this boundary, * and controls when the current `pending` snippet (if any) is removed. * Do not call from inside the class * @param {1 | -1} d * @param {Batch} batch */ update_pending_count(d, batch) { __privateMethod(this, _Boundary_instances, update_pending_count_fn).call(this, d, batch); __privateSet(this, _local_pending_count, __privateGet(this, _local_pending_count) + d); if (!__privateGet(this, _effect_pending) || __privateGet(this, _pending_count_update_queued)) return; __privateSet(this, _pending_count_update_queued, true); queue_micro_task(() => { __privateSet(this, _pending_count_update_queued, false); if (__privateGet(this, _effect_pending)) { internal_set(__privateGet(this, _effect_pending), __privateGet(this, _local_pending_count)); } }); } get_effect_pending() { __privateGet(this, _effect_pending_subscriber).call(this); return get( /** @type {Source} */ __privateGet(this, _effect_pending) ); } /** @param {unknown} error */ error(error) { var _a2; if (!__privateGet(this, _props).onerror && !__privateGet(this, _props).failed) { throw error; } if ((_a2 = current_batch) == null ? void 0 : _a2.is_fork) { if (__privateGet(this, _main_effect)) current_batch.skip_effect(__privateGet(this, _main_effect)); if (__privateGet(this, _pending_effect)) current_batch.skip_effect(__privateGet(this, _pending_effect)); if (__privateGet(this, _failed_effect)) current_batch.skip_effect(__privateGet(this, _failed_effect)); current_batch.oncommit(() => { __privateMethod(this, _Boundary_instances, handle_error_fn).call(this, error); }); } else { __privateMethod(this, _Boundary_instances, handle_error_fn).call(this, error); } } }; _anchor = new WeakMap(); _hydrate_open = new WeakMap(); _props = new WeakMap(); _children = new WeakMap(); _effect = new WeakMap(); _main_effect = new WeakMap(); _pending_effect = new WeakMap(); _failed_effect = new WeakMap(); _offscreen_fragment = new WeakMap(); _local_pending_count = new WeakMap(); _pending_count = new WeakMap(); _pending_count_update_queued = new WeakMap(); _dirty_effects = new WeakMap(); _maybe_dirty_effects = new WeakMap(); _effect_pending = new WeakMap(); _effect_pending_subscriber = new WeakMap(); _Boundary_instances = new WeakSet(); hydrate_resolved_content_fn = function() { try { __privateSet(this, _main_effect, branch(() => __privateGet(this, _children).call(this, __privateGet(this, _anchor)))); } catch (error) { this.error(error); } }; /** * @param {unknown} error The deserialized error from the server's hydration comment */ hydrate_failed_content_fn = function(error) { const failed = __privateGet(this, _props).failed; const { reset: reset2, invoke_onerror } = __privateMethod(this, _Boundary_instances, create_reset_fn).call(this, error); queue_micro_task(invoke_onerror); if (!failed) return; __privateSet(this, _failed_effect, branch(() => { failed( __privateGet(this, _anchor), () => error, () => reset2 ); })); }; /** * Creates the `reset` function for a failed boundary, along with a function * that invokes `onerror` with it (if provided) * @param {unknown} error * @returns {{ reset: () => void, invoke_onerror: () => void }} */ create_reset_fn = function(error) { var did_reset = false; var calling_on_error = false; const reset2 = () => { if (did_reset) { svelte_boundary_reset_noop(); return; } did_reset = true; if (calling_on_error) { svelte_boundary_reset_onerror(); } if (__privateGet(this, _failed_effect) !== null) { pause_effect(__privateGet(this, _failed_effect), () => { __privateSet(this, _failed_effect, null); }); } __privateMethod(this, _Boundary_instances, run_fn).call(this, () => { __privateMethod(this, _Boundary_instances, render_fn).call(this); }); }; const invoke_onerror = () => { var _a2, _b; try { calling_on_error = true; (_b = (_a2 = __privateGet(this, _props)).onerror) == null ? void 0 : _b.call(_a2, error, reset2); calling_on_error = false; } catch (err) { invoke_error_boundary(err, __privateGet(this, _effect) && __privateGet(this, _effect).parent); } }; return { reset: reset2, invoke_onerror }; }; hydrate_pending_content_fn = function() { const pending2 = __privateGet(this, _props).pending; if (!pending2) return; this.is_pending = true; __privateSet(this, _pending_effect, branch(() => pending2(__privateGet(this, _anchor)))); queue_micro_task(() => { var fragment = __privateSet(this, _offscreen_fragment, document.createDocumentFragment()); var anchor = create_text(); fragment.append(anchor); __privateSet(this, _main_effect, __privateMethod(this, _Boundary_instances, run_fn).call(this, () => { return branch(() => __privateGet(this, _children).call(this, anchor)); })); if (__privateGet(this, _pending_count) === 0) { __privateGet(this, _anchor).before(fragment); __privateSet(this, _offscreen_fragment, null); pause_effect( /** @type {Effect} */ __privateGet(this, _pending_effect), () => { __privateSet(this, _pending_effect, null); } ); __privateMethod(this, _Boundary_instances, resolve_fn).call( this, /** @type {Batch} */ current_batch ); } }); }; render_fn = function() { try { this.is_pending = this.has_pending_snippet(); __privateSet(this, _pending_count, 0); __privateSet(this, _local_pending_count, 0); __privateSet(this, _main_effect, branch(() => { __privateGet(this, _children).call(this, __privateGet(this, _anchor)); })); if (__privateGet(this, _pending_count) > 0) { var fragment = __privateSet(this, _offscreen_fragment, document.createDocumentFragment()); move_effect(__privateGet(this, _main_effect), fragment); const pending2 = ( /** @type {(anchor: Node) => void} */ __privateGet(this, _props).pending ); __privateSet(this, _pending_effect, branch(() => pending2(__privateGet(this, _anchor)))); } else { __privateMethod(this, _Boundary_instances, resolve_fn).call( this, /** @type {Batch} */ current_batch ); } } catch (error) { this.error(error); } }; /** * @param {Batch} batch */ resolve_fn = function(batch) { this.is_pending = false; batch.transfer_effects(__privateGet(this, _dirty_effects), __privateGet(this, _maybe_dirty_effects)); }; /** * @template T * @param {() => T} fn */ run_fn = function(fn) { var previous_effect = active_effect; var previous_reaction = active_reaction; var previous_ctx = component_context; set_active_effect(__privateGet(this, _effect)); set_active_reaction(__privateGet(this, _effect)); set_component_context(__privateGet(this, _effect).ctx); try { Batch.ensure(); return fn(); } catch (e) { handle_error(e); return null; } finally { set_active_effect(previous_effect); set_active_reaction(previous_reaction); set_component_context(previous_ctx); } }; /** * Updates the pending count associated with the currently visible pending snippet, * if any, such that we can replace the snippet with content once work is done * @param {1 | -1} d * @param {Batch} batch */ update_pending_count_fn = function(d, batch) { var _a2; if (!this.has_pending_snippet()) { if (this.parent) { __privateMethod(_a2 = this.parent, _Boundary_instances, update_pending_count_fn).call(_a2, d, batch); } return; } __privateSet(this, _pending_count, __privateGet(this, _pending_count) + d); if (__privateGet(this, _pending_count) === 0) { __privateMethod(this, _Boundary_instances, resolve_fn).call(this, batch); if (__privateGet(this, _pending_effect)) { pause_effect(__privateGet(this, _pending_effect), () => { __privateSet(this, _pending_effect, null); }); } if (__privateGet(this, _offscreen_fragment)) { __privateGet(this, _anchor).before(__privateGet(this, _offscreen_fragment)); __privateSet(this, _offscreen_fragment, null); } } }; /** * @param {unknown} error */ handle_error_fn = function(error) { if (__privateGet(this, _main_effect)) { destroy_effect(__privateGet(this, _main_effect)); __privateSet(this, _main_effect, null); } if (__privateGet(this, _pending_effect)) { destroy_effect(__privateGet(this, _pending_effect)); __privateSet(this, _pending_effect, null); } if (__privateGet(this, _failed_effect)) { destroy_effect(__privateGet(this, _failed_effect)); __privateSet(this, _failed_effect, null); } if (hydrating) { set_hydrate_node( /** @type {TemplateNode} */ __privateGet(this, _hydrate_open) ); next(); set_hydrate_node(skip_nodes()); } let failed = __privateGet(this, _props).failed; const handle_error_result = (transformed_error) => { const { reset: reset2, invoke_onerror } = __privateMethod(this, _Boundary_instances, create_reset_fn).call(this, transformed_error); invoke_onerror(); if (failed) { __privateSet(this, _failed_effect, __privateMethod(this, _Boundary_instances, run_fn).call(this, () => { try { return branch(() => { var effect2 = ( /** @type {Effect} */ active_effect ); effect2.b = this; effect2.f |= BOUNDARY_EFFECT; failed( __privateGet(this, _anchor), () => transformed_error, () => reset2 ); }); } catch (error2) { invoke_error_boundary( error2, /** @type {Effect} */ __privateGet(this, _effect).parent ); return null; } })); } }; queue_micro_task(() => { var result; try { result = this.transform_error(error); } catch (e) { invoke_error_boundary(e, __privateGet(this, _effect) && __privateGet(this, _effect).parent); return; } if (result !== null && typeof result === "object" && typeof /** @type {any} */ result.then === "function") { result.then( handle_error_result, /** @param {unknown} e */ (e) => invoke_error_boundary(e, __privateGet(this, _effect) && __privateGet(this, _effect).parent) ); } else { handle_error_result(result); } }); }; function pending() { if (active_effect === null) { effect_pending_outside_reaction(); } var boundary2 = active_effect.b; if (boundary2 === null) { return 0; } return boundary2.get_effect_pending(); } // node_modules/svelte/src/internal/client/reactivity/async.js function flatten(blockers, sync, async, fn) { const d = is_runes() ? derived : derived_safe_equal; var pending2 = blockers.filter((b) => !b.settled); var deriveds = sync.map(d); if (true_default) { deriveds.forEach((d2, i) => { d2.label = sync[i].toString().replace("() => ", "").replaceAll("$.eager(() => ", "$state.eager(").replace(/\$\.get\((.+?)\)/g, (_, id) => id); }); } if (async.length === 0 && pending2.length === 0) { fn(deriveds); return; } var parent = ( /** @type {Effect} */ active_effect ); var restore = capture(); var blocker_promise = pending2.length === 1 ? pending2[0].promise : pending2.length > 1 ? Promise.all(pending2.map((b) => b.promise)) : null; function finish(async2) { if ((parent.f & DESTROYED) !== 0) { return; } restore(); try { fn([...deriveds, ...async2]); } catch (error) { invoke_error_boundary(error, parent); } unset_context(); } var decrement_pending = increment_pending(); if (async.length === 0) { blocker_promise.then(() => finish([])).finally(decrement_pending); return; } function run3() { Promise.all(async.map((expression) => async_derived(expression))).then(finish).catch((error) => invoke_error_boundary(error, parent)).finally(decrement_pending); } if (blocker_promise) { blocker_promise.then(() => { restore(); run3(); unset_context(); }); } else { run3(); } } function run_after_blockers(blockers, fn) { flatten(blockers, [], [], fn); } function capture() { var previous_effect = ( /** @type {Effect} */ active_effect ); var previous_reaction = active_reaction; var previous_component_context = component_context; var previous_batch2 = ( /** @type {Batch} */ current_batch ); if (true_default) { var previous_dev_stack = dev_stack; } return function restore(activate_batch = true) { set_active_effect(previous_effect); set_active_reaction(previous_reaction); set_component_context(previous_component_context); if (activate_batch && (previous_effect.f & DESTROYED) === 0) { previous_batch2 == null ? void 0 : previous_batch2.activate(); previous_batch2 == null ? void 0 : previous_batch2.apply(); } if (true_default) { set_reactivity_loss_tracker(null); set_dev_stack(previous_dev_stack); } }; } async function save(promise) { var restore = capture(); var value = await promise; return () => { restore(); queue_micro_task(unset_context); return value; }; } async function track_reactivity_loss(promise) { var previous_reactivity_loss_tracker = reactivity_loss_tracker; queueMicrotask(() => { if (reactivity_loss_tracker === previous_reactivity_loss_tracker) { set_reactivity_loss_tracker(null); } }); var value = await promise; return () => { set_reactivity_loss_tracker(previous_reactivity_loss_tracker); queueMicrotask(() => { if (reactivity_loss_tracker === previous_reactivity_loss_tracker) { set_reactivity_loss_tracker(null); } }); return value; }; } async function* for_await_track_reactivity_loss(iterable) { var _a2, _b; const iterator = ((_a2 = iterable[Symbol.asyncIterator]) == null ? void 0 : _a2.call(iterable)) ?? ((_b = iterable[Symbol.iterator]) == null ? void 0 : _b.call(iterable)); if (iterator === void 0) { throw new TypeError("value is not async iterable"); } let invoke_return = true; try { while (true) { const { done, value } = (await track_reactivity_loss(iterator.next()))(); if (done) { invoke_return = false; break; } var prev = reactivity_loss_tracker; try { yield value; } catch (e) { set_reactivity_loss_tracker(prev); if (iterator.return !== void 0) { (await track_reactivity_loss(iterator.return()))(); } throw e; } set_reactivity_loss_tracker(prev); } } catch (error) { invoke_return = false; throw error; } finally { if (invoke_return && iterator.return !== void 0) { return ( /** @type {TReturn} */ (await track_reactivity_loss(iterator.return()))().value ); } } } function unset_context(deactivate_batch = true) { var _a2; set_active_effect(null); set_active_reaction(null); set_component_context(null); if (deactivate_batch) (_a2 = current_batch) == null ? void 0 : _a2.deactivate(); if (true_default) { set_reactivity_loss_tracker(null); set_dev_stack(null); } } function run2(thunks) { const restore = capture(); const decrement_pending = increment_pending(); var active = ( /** @type {Effect} */ active_effect ); var errored = null; const handle_error2 = (error) => { errored = { error }; if (!aborted(active)) { invoke_error_boundary(error, active); } }; var promise = Promise.resolve(thunks[0]()).catch(handle_error2); var blocker = { promise, settled: false }; var blockers = [blocker]; promise.finally(() => { blocker.settled = true; unset_context(); }); for (const fn of thunks.slice(1)) { promise = promise.then(() => { restore(); try { if (errored) { throw errored.error; } if (aborted(active)) { throw STALE_REACTION; } return fn(); } finally { unset_context(); } }).catch(handle_error2); const blocker2 = { promise, settled: false }; blockers.push(blocker2); promise.finally(() => { blocker2.settled = true; unset_context(); }); } promise.then(() => Promise.resolve()).finally(decrement_pending); return blockers; } function wait(blockers) { return Promise.all(blockers.map((b) => b.promise)); } function increment_pending() { var effect2 = ( /** @type {Effect} */ active_effect ); var boundary2 = effect2.b; var batch = ( /** @type {Batch} */ current_batch ); var blocking = !!(boundary2 == null ? void 0 : boundary2.is_rendered()); boundary2 == null ? void 0 : boundary2.update_pending_count(1, batch); batch.increment(blocking, effect2); return () => { boundary2 == null ? void 0 : boundary2.update_pending_count(-1, batch); batch.decrement(blocking, effect2); }; } // node_modules/svelte/src/internal/client/reactivity/deriveds.js var reactivity_loss_tracker = null; function set_reactivity_loss_tracker(v) { reactivity_loss_tracker = v; } var recent_async_deriveds = /* @__PURE__ */ new Set(); function derived(fn) { var flags2 = DERIVED | DIRTY; if (active_effect !== null) { active_effect.f |= EFFECT_PRESERVED; } const signal = { ctx: component_context, deps: null, effects: null, equals, f: flags2, fn, reactions: null, rv: 0, v: ( /** @type {V} */ UNINITIALIZED ), wv: 0, parent: active_effect, ac: null }; if (true_default && tracing_mode_flag) { signal.created = get_error("created at"); } return signal; } var OBSOLETE = Symbol("obsolete"); function async_derived(fn, label2, location) { let parent = ( /** @type {Effect | null} */ active_effect ); if (parent === null) { async_derived_orphan(); } var promise = ( /** @type {Promise} */ /** @type {unknown} */ void 0 ); var signal = source( /** @type {V} */ UNINITIALIZED ); if (true_default) signal.label = label2 ?? fn.toString(); var should_suspend = !active_reaction; var deferreds = /* @__PURE__ */ new Set(); async_effect(() => { var _a2, _b; var effect2 = ( /** @type {Effect} */ active_effect ); if (true_default) { reactivity_loss_tracker = { effect: effect2, effect_deps: /* @__PURE__ */ new Set(), warned: false }; } var d = deferred(); promise = d.promise; try { Promise.resolve(fn()).then(d.resolve, (e) => { if (e !== STALE_REACTION) d.reject(e); }).finally(unset_context); } catch (error) { d.reject(error); unset_context(); } if (true_default) { if (reactivity_loss_tracker) { if (effect2.deps !== null) { for (let i = 0; i < skipped_deps; i += 1) { reactivity_loss_tracker.effect_deps.add(effect2.deps[i]); } } if (new_deps !== null) { for (let i = 0; i < new_deps.length; i += 1) { reactivity_loss_tracker.effect_deps.add(new_deps[i]); } } } reactivity_loss_tracker = null; } var batch = ( /** @type {Batch} */ current_batch ); if (should_suspend) { if ((effect2.f & REACTION_RAN) !== 0) { var decrement_pending = increment_pending(); } if ( // boundary can be null if the async derived is inside an $effect.root not connected to the component render tree (_a2 = parent.b) == null ? void 0 : _a2.is_rendered() ) { (_b = batch.async_deriveds.get(effect2)) == null ? void 0 : _b.reject(OBSOLETE); } else { for (const d2 of deferreds.values()) { d2.reject(OBSOLETE); } } deferreds.add(d); batch.async_deriveds.set(effect2, d); } const handler = (value, error = void 0) => { if (true_default) { reactivity_loss_tracker = null; } decrement_pending == null ? void 0 : decrement_pending(); deferreds.delete(d); if (error === OBSOLETE) return; batch.activate(); if (error) { signal.f |= ERROR_VALUE; internal_set(signal, error); } else { if ((signal.f & ERROR_VALUE) !== 0) { signal.f ^= ERROR_VALUE; } if (true_default && location !== void 0 && !signal.equals(value)) { recent_async_deriveds.add(signal); setTimeout(() => { if (recent_async_deriveds.has(signal) && (effect2.f & DESTROYED) === 0) { await_waterfall( /** @type {string} */ signal.label, location ); recent_async_deriveds.delete(signal); } }); } internal_set(signal, value); } batch.deactivate(); }; d.promise.then(handler, (e) => handler(null, e || "unknown")); }); teardown(() => { for (const d of deferreds) { d.reject(OBSOLETE); } }); if (true_default) { signal.f |= ASYNC; } return new Promise((fulfil) => { function next2(p) { function go() { if (p === promise) { fulfil(signal); } else { next2(promise); } } p.then(go, go); } next2(promise); }); } function user_derived(fn) { const d = derived(fn); if (!async_mode_flag) push_reaction_value(d); return d; } function derived_safe_equal(fn) { const signal = derived(fn); signal.equals = safe_equals; return signal; } function destroy_derived_effects(derived3) { var effects = derived3.effects; if (effects !== null) { derived3.effects = null; for (var i = 0; i < effects.length; i += 1) { destroy_effect( /** @type {Effect} */ effects[i] ); } } } var stack = []; function execute_derived(derived3) { var value; var prev_active_effect = active_effect; var parent = derived3.parent; if (!is_destroying_effect && parent !== null && derived3.v !== UNINITIALIZED && // if it was never evaluated before, it's guaranteed to fail downstream, so we try to execute instead (parent.f & (DESTROYED | INERT)) !== 0) { derived_inert(); return derived3.v; } set_active_effect(parent); if (true_default) { let prev_eager_effects = eager_effects; set_eager_effects(/* @__PURE__ */ new Set()); try { if (includes.call(stack, derived3)) { derived_references_self(); } stack.push(derived3); derived3.f &= ~WAS_MARKED; destroy_derived_effects(derived3); value = update_reaction(derived3); } finally { set_active_effect(prev_active_effect); set_eager_effects(prev_eager_effects); stack.pop(); } } else { try { derived3.f &= ~WAS_MARKED; destroy_derived_effects(derived3); value = update_reaction(derived3); } finally { set_active_effect(prev_active_effect); } } return value; } function update_derived(derived3) { var _a2, _b, _c; var value = execute_derived(derived3); if (!derived3.equals(value)) { derived3.wv = increment_write_version(); if (!((_a2 = current_batch) == null ? void 0 : _a2.is_fork) || derived3.deps === null) { if (current_batch !== null) { current_batch.capture(derived3, value, true); (_b = previous_batch) == null ? void 0 : _b.capture(derived3, value, true); } else { derived3.v = value; } if (derived3.deps === null) { set_signal_status(derived3, CLEAN); return; } } } if (is_destroying_effect) { return; } if (batch_values !== null) { if (effect_tracking() || ((_c = current_batch) == null ? void 0 : _c.is_fork)) { batch_values.set(derived3, value); } } else { update_derived_status(derived3); } } function freeze_derived_effects(derived3) { var _a2; if (derived3.effects === null) return; for (const e of derived3.effects) { if (e.teardown || e.ac) { (_a2 = e.teardown) == null ? void 0 : _a2.call(e); if (e.ac !== null) { without_reactive_context(() => { e.ac.abort(STALE_REACTION); e.ac = null; }); } if (e.fn !== null) e.teardown = noop; remove_reactions(e, 0); destroy_effect_children(e); } } } function unfreeze_derived_effects(derived3) { if (derived3.effects === null) return; for (const e of derived3.effects) { if (e.teardown && e.fn !== null) { update_effect(e); } } } // node_modules/svelte/src/internal/client/reactivity/sources.js var eager_effects = /* @__PURE__ */ new Set(); var old_values = /* @__PURE__ */ new Map(); function set_eager_effects(v) { eager_effects = v; } var eager_effects_deferred = false; function set_eager_effects_deferred() { eager_effects_deferred = true; } function source(v, stack2) { var signal = { f: 0, // TODO ideally we could skip this altogether, but it causes type errors v, reactions: null, equals, rv: 0, wv: 0 }; if (true_default && tracing_mode_flag) { signal.created = stack2 ?? get_error("created at"); signal.updated = null; signal.set_during_effect = false; signal.trace = null; } return signal; } function state(v, stack2) { const s = source(v, stack2); push_reaction_value(s); return s; } function mutable_source(initial_value, immutable = false, trackable = true) { var _a2; const s = source(initial_value); if (!immutable) { s.equals = safe_equals; } if (legacy_mode_flag && trackable && component_context !== null && component_context.l !== null) { ((_a2 = component_context.l).s ?? (_a2.s = [])).push(s); } return s; } function mutate(source2, value) { set( source2, untrack(() => get(source2)) ); return value; } function set(source2, value, should_proxy = false) { if (active_reaction !== null && // since we are untracking the function inside `$inspect.with` we need to add this check // to ensure we error if state is set inside an inspect effect (!untracking || (active_reaction.f & EAGER_EFFECT) !== 0) && is_runes() && (active_reaction.f & (DERIVED | BLOCK_EFFECT | ASYNC | EAGER_EFFECT)) !== 0 && (current_sources === null || !current_sources.has(source2))) { state_unsafe_mutation(); } let new_value = should_proxy ? proxy(value) : value; if (true_default) { tag_proxy( new_value, /** @type {string} */ source2.label ); } return internal_set(source2, new_value, legacy_updates); } function internal_set(source2, value, updated_during_traversal = null) { var _a2; if (!source2.equals(value)) { old_values.set(source2, is_destroying_effect ? value : source2.v); var batch = Batch.ensure(); batch.capture(source2, value); if (true_default) { if (tracing_mode_flag || active_effect !== null) { source2.updated ?? (source2.updated = /* @__PURE__ */ new Map()); const count = (((_a2 = source2.updated.get("")) == null ? void 0 : _a2.count) ?? 0) + 1; source2.updated.set("", { error: ( /** @type {any} */ null ), count }); if (tracing_mode_flag || count > 5) { const error = get_error("updated at"); if (error !== null) { let entry = source2.updated.get(error.stack); if (!entry) { entry = { error, count: 0 }; source2.updated.set(error.stack, entry); } entry.count++; } } } if (active_effect !== null) { source2.set_during_effect = true; } } if ((source2.f & DERIVED) !== 0) { const derived3 = ( /** @type {Derived} */ source2 ); if ((source2.f & DIRTY) !== 0) { execute_derived(derived3); } if (batch_values === null) { update_derived_status(derived3); } } source2.wv = increment_write_version(); mark_reactions(source2, DIRTY, updated_during_traversal); if (is_runes() && active_effect !== null && (active_effect.f & CLEAN) !== 0 && (active_effect.f & (BRANCH_EFFECT | ROOT_EFFECT)) === 0) { if (untracked_writes === null) { set_untracked_writes([source2]); } else { untracked_writes.push(source2); } } if (!batch.is_fork && eager_effects.size > 0 && !eager_effects_deferred) { flush_eager_effects(); } } return value; } function flush_eager_effects() { eager_effects_deferred = false; for (const effect2 of eager_effects) { if ((effect2.f & CLEAN) !== 0) { set_signal_status(effect2, MAYBE_DIRTY); } let dirty; try { dirty = is_dirty(effect2); } catch { dirty = true; } if (dirty) { update_effect(effect2); } } eager_effects.clear(); } function update(source2, d = 1) { var value = get(source2); var result = d === 1 ? value++ : value--; set(source2, value); return result; } function update_pre(source2, d = 1) { var value = get(source2); return set(source2, d === 1 ? ++value : --value); } function increment(source2) { set(source2, source2.v + 1); } function mark_reactions(signal, status, updated_during_traversal) { var _a2; var reactions = signal.reactions; if (reactions === null) return; var runes = is_runes(); var length = reactions.length; for (var i = 0; i < length; i++) { var reaction = reactions[i]; var flags2 = reaction.f; if (!runes && reaction === active_effect) continue; var not_dirty = (flags2 & DIRTY) === 0; if (not_dirty) { set_signal_status(reaction, status); } if ((flags2 & EAGER_EFFECT) !== 0) { eager_effects.add( /** @type {Effect} */ reaction ); } else if ((flags2 & DERIVED) !== 0) { var derived3 = ( /** @type {Derived} */ reaction ); (_a2 = batch_values) == null ? void 0 : _a2.delete(derived3); if ((flags2 & WAS_MARKED) === 0) { if (flags2 & CONNECTED && (active_effect === null || (active_effect.f & REACTION_IS_UPDATING) === 0)) { reaction.f |= WAS_MARKED; } mark_reactions(derived3, MAYBE_DIRTY, updated_during_traversal); } } else if (not_dirty) { var effect2 = ( /** @type {Effect} */ reaction ); if ((flags2 & BLOCK_EFFECT) !== 0 && eager_block_effects !== null) { eager_block_effects.add(effect2); } if (updated_during_traversal !== null) { updated_during_traversal.push(effect2); } else { schedule_effect(effect2); } } } } // node_modules/svelte/src/store/utils.js function subscribe_to_store(store, run3, invalidate) { if (store == null) { run3(void 0); if (invalidate) invalidate(void 0); return noop; } const unsub = untrack( () => store.subscribe( run3, // @ts-expect-error invalidate ) ); return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; } // node_modules/svelte/src/store/shared/index.js var subscriber_queue = []; function readable(value, start) { return { subscribe: writable(value, start).subscribe }; } function writable(value, start = noop) { let stop = null; const subscribers = /* @__PURE__ */ new Set(); function set2(new_value) { if (safe_not_equal(value, new_value)) { value = new_value; if (stop) { const run_queue = !subscriber_queue.length; for (const subscriber of subscribers) { subscriber[1](); subscriber_queue.push(subscriber, value); } if (run_queue) { for (let i = 0; i < subscriber_queue.length; i += 2) { subscriber_queue[i][0](subscriber_queue[i + 1]); } subscriber_queue.length = 0; } } } } function update2(fn) { set2(fn( /** @type {T} */ value )); } function subscribe(run3, invalidate = noop) { const subscriber = [run3, invalidate]; subscribers.add(subscriber); if (subscribers.size === 1) { stop = start(set2, update2) || noop; } run3( /** @type {T} */ value ); return () => { subscribers.delete(subscriber); if (subscribers.size === 0 && stop) { stop(); stop = null; } }; } return { set: set2, update: update2, subscribe }; } function derived2(stores, fn, initial_value) { const single = !Array.isArray(stores); const stores_array = single ? [stores] : stores; if (!stores_array.every(Boolean)) { throw new Error("derived() expects stores as input, got a falsy value"); } const auto = fn.length < 2; return readable(initial_value, (set2, update2) => { let started = false; const values = []; let pending2 = 0; let cleanup = noop; const sync = () => { if (pending2) { return; } cleanup(); const result = fn(single ? values[0] : values, set2, update2); if (auto) { set2(result); } else { cleanup = typeof result === "function" ? result : noop; } }; const unsubscribers = stores_array.map( (store, i) => subscribe_to_store( store, (value) => { values[i] = value; pending2 &= ~(1 << i); if (started) { sync(); } }, () => { pending2 |= 1 << i; } ) ); started = true; sync(); return function stop() { run_all(unsubscribers); cleanup(); started = false; }; }); } function readonly(store) { return { // @ts-expect-error TODO i suspect the bind is unnecessary subscribe: store.subscribe.bind(store) }; } function get2(store) { let value; subscribe_to_store(store, (_) => value = _)(); return value; } // node_modules/svelte/src/internal/client/reactivity/store.js var legacy_is_updating_store = false; var is_store_binding = false; var IS_UNMOUNTED = Symbol("unmounted"); function store_get(store, store_name, stores) { const entry = stores[store_name] ?? (stores[store_name] = { store: null, source: mutable_source(void 0), unsubscribe: noop }); if (true_default) { entry.source.label = store_name; } if (entry.store !== store && !(IS_UNMOUNTED in stores)) { entry.unsubscribe(); entry.store = store ?? null; if (store == null) { entry.source.v = void 0; entry.unsubscribe = noop; } else { var is_synchronous_callback = true; entry.unsubscribe = subscribe_to_store(store, (v) => { if (is_synchronous_callback) { entry.source.v = v; } else { set(entry.source, v); } }); is_synchronous_callback = false; } } if (store && IS_UNMOUNTED in stores) { return get2(store); } return get(entry.source); } function store_unsub(store, store_name, stores) { let entry = stores[store_name]; if (entry && entry.store !== store) { entry.unsubscribe(); entry.unsubscribe = noop; } return store; } function store_set(store, value) { update_with_flag(store, value); return value; } function invalidate_store(stores, store_name) { var entry = stores[store_name]; if (entry.store !== null) { store_set(entry.store, entry.source.v); } } function setup_stores() { const stores = {}; function cleanup() { teardown(() => { for (var store_name in stores) { const ref = stores[store_name]; ref.unsubscribe(); } define_property(stores, IS_UNMOUNTED, { enumerable: false, value: true }); }); } return [stores, cleanup]; } function update_with_flag(store, value) { legacy_is_updating_store = true; try { store.set(value); } finally { legacy_is_updating_store = false; } } function store_mutate(store, expression, new_value) { update_with_flag(store, new_value); return expression; } function update_store(store, store_value, d = 1) { update_with_flag(store, store_value + d); return store_value; } function update_pre_store(store, store_value, d = 1) { const value = store_value + d; update_with_flag(store, value); return value; } function mark_store_binding() { is_store_binding = true; } function capture_store_binding(fn) { var previous_is_store_binding = is_store_binding; try { is_store_binding = false; return [fn(), is_store_binding]; } finally { is_store_binding = previous_is_store_binding; } } // node_modules/svelte/src/internal/client/reactivity/batch.js var first_batch = null; var last_batch = null; var current_batch = null; var previous_batch = null; var batch_values = null; var last_scheduled_effect = null; var is_flushing_sync = false; var is_processing = false; var collected_effects = null; var legacy_updates = null; var flush_count = 0; var source_stacks = /* @__PURE__ */ new Set(); var uid = 1; var _started, _prev, _next, _commit_callbacks, _discard_callbacks, _pending, _blocking_pending, _deferred, _roots, _new_effects, _dirty_effects2, _maybe_dirty_effects2, _skipped_branches, _unskipped_branches, _decrement_queued, _Batch_instances, is_deferred_fn, process_fn, traverse_fn, find_earlier_batch_fn, merge_fn, defer_effects_fn, commit_fn, unlink_fn; var _Batch = class _Batch { constructor() { __privateAdd(this, _Batch_instances); __publicField(this, "id", uid++); /** True as soon as `#process` was called */ __privateAdd(this, _started, false); __publicField(this, "linked", true); /** @type {Batch | null} */ __privateAdd(this, _prev, null); /** @type {Batch | null} */ __privateAdd(this, _next, null); /** @type {Map>>} */ __publicField(this, "async_deriveds", /* @__PURE__ */ new Map()); /** * The current values of any signals that are updated in this batch. * Tuple format: [value, is_derived] (note: is_derived is false for deriveds, too, if they were overridden via assignment) * They keys of this map are identical to `this.#previous` * @type {Map} */ __publicField(this, "current", /* @__PURE__ */ new Map()); /** * The values of any signals (sources and deriveds) that are updated in this batch _before_ those updates took place. * They keys of this map are identical to `this.#current` * @type {Map} */ __publicField(this, "previous", /* @__PURE__ */ new Map()); /** * When the batch is committed (and the DOM is updated), we need to remove old branches * and append new ones by calling the functions added inside (if/each/key/etc) blocks * @type {Set<(batch: Batch) => void>} */ __privateAdd(this, _commit_callbacks, /* @__PURE__ */ new Set()); /** * If a fork is discarded, we need to destroy any effects that are no longer needed * @type {Set<(batch: Batch) => void>} */ __privateAdd(this, _discard_callbacks, /* @__PURE__ */ new Set()); /** * The number of async effects that are currently in flight */ __privateAdd(this, _pending, 0); /** * Async effects that are currently in flight, _not_ inside a pending boundary * @type {Map} */ __privateAdd(this, _blocking_pending, /* @__PURE__ */ new Map()); /** * A deferred that resolves when the batch is committed, used with `settled()` * TODO replace with Promise.withResolvers once supported widely enough * @type {{ promise: Promise, resolve: (value?: any) => void, reject: (reason: unknown) => void } | null} */ __privateAdd(this, _deferred, null); /** * The root effects that need to be flushed * @type {Effect[]} */ __privateAdd(this, _roots, []); /** * Effects created while this batch was active. * @type {Effect[]} */ __privateAdd(this, _new_effects, []); /** * Deferred effects (which run after async work has completed) that are DIRTY * @type {Set} */ __privateAdd(this, _dirty_effects2, /* @__PURE__ */ new Set()); /** * Deferred effects that are MAYBE_DIRTY * @type {Set} */ __privateAdd(this, _maybe_dirty_effects2, /* @__PURE__ */ new Set()); /** * A map of branches that still exist, but will be destroyed when this batch * is committed — we skip over these during `process`. * The value contains child effects that were dirty/maybe_dirty before being reset, * so they can be rescheduled if the branch survives. * @type {Map} */ __privateAdd(this, _skipped_branches, /* @__PURE__ */ new Map()); /** * Inverse of #skipped_branches which we need to tell prior batches to unskip them when committing * @type {Set} */ __privateAdd(this, _unskipped_branches, /* @__PURE__ */ new Set()); __publicField(this, "is_fork", false); __privateAdd(this, _decrement_queued, false); if (last_batch === null) { first_batch = last_batch = this; } else { __privateSet(last_batch, _next, this); __privateSet(this, _prev, last_batch); } last_batch = this; } /** * Add an effect to the #skipped_branches map and reset its children * @param {Effect} effect */ skip_effect(effect2) { if (!__privateGet(this, _skipped_branches).has(effect2)) { __privateGet(this, _skipped_branches).set(effect2, { d: [], m: [] }); } __privateGet(this, _unskipped_branches).delete(effect2); } /** * Remove an effect from the #skipped_branches map and reschedule * any tracked dirty/maybe_dirty child effects * @param {Effect} effect * @param {(e: Effect) => void} callback */ unskip_effect(effect2, callback = (e) => this.schedule(e)) { var tracked = __privateGet(this, _skipped_branches).get(effect2); if (tracked) { __privateGet(this, _skipped_branches).delete(effect2); for (var e of tracked.d) { set_signal_status(e, DIRTY); callback(e); } for (e of tracked.m) { set_signal_status(e, MAYBE_DIRTY); callback(e); } } __privateGet(this, _unskipped_branches).add(effect2); } /** * Associate a change to a given source with the current * batch, noting its previous and current values * @param {Value} source * @param {any} value * @param {boolean} [is_derived] */ capture(source2, value, is_derived = false) { if (source2.v !== UNINITIALIZED && !this.previous.has(source2)) { this.previous.set(source2, source2.v); } if ((source2.f & ERROR_VALUE) === 0) { this.current.set(source2, [value, is_derived]); batch_values == null ? void 0 : batch_values.set(source2, value); } if (!this.is_fork) { source2.v = value; } } activate() { current_batch = this; } deactivate() { current_batch = null; batch_values = null; } flush() { try { if (true_default) { source_stacks.clear(); } is_processing = true; current_batch = this; __privateMethod(this, _Batch_instances, process_fn).call(this); } finally { flush_count = 0; last_scheduled_effect = null; collected_effects = null; legacy_updates = null; is_processing = false; current_batch = null; batch_values = null; old_values.clear(); if (true_default) { for (const source2 of source_stacks) { source2.updated = null; } } } } discard() { var _a2; for (const fn of __privateGet(this, _discard_callbacks)) fn(this); __privateGet(this, _discard_callbacks).clear(); for (const deferred2 of this.async_deriveds.values()) { deferred2.reject(OBSOLETE); } __privateMethod(this, _Batch_instances, unlink_fn).call(this); (_a2 = __privateGet(this, _deferred)) == null ? void 0 : _a2.resolve(); } /** * @param {Effect} effect */ register_created_effect(effect2) { __privateGet(this, _new_effects).push(effect2); } /** * @param {boolean} blocking * @param {Effect} effect */ increment(blocking, effect2) { __privateSet(this, _pending, __privateGet(this, _pending) + 1); if (blocking) { let blocking_pending_count = __privateGet(this, _blocking_pending).get(effect2) ?? 0; __privateGet(this, _blocking_pending).set(effect2, blocking_pending_count + 1); } } /** * @param {boolean} blocking * @param {Effect} effect */ decrement(blocking, effect2) { __privateSet(this, _pending, __privateGet(this, _pending) - 1); if (blocking) { let blocking_pending_count = __privateGet(this, _blocking_pending).get(effect2) ?? 0; if (blocking_pending_count === 1) { __privateGet(this, _blocking_pending).delete(effect2); } else { __privateGet(this, _blocking_pending).set(effect2, blocking_pending_count - 1); } } if (__privateGet(this, _decrement_queued)) return; __privateSet(this, _decrement_queued, true); queue_micro_task(() => { __privateSet(this, _decrement_queued, false); if (this.linked) { this.flush(); } }); } /** * @param {Set} dirty_effects * @param {Set} maybe_dirty_effects */ transfer_effects(dirty_effects, maybe_dirty_effects) { for (const e of dirty_effects) { __privateGet(this, _dirty_effects2).add(e); } for (const e of maybe_dirty_effects) { __privateGet(this, _maybe_dirty_effects2).add(e); } dirty_effects.clear(); maybe_dirty_effects.clear(); } /** @param {(batch: Batch) => void} fn */ oncommit(fn) { __privateGet(this, _commit_callbacks).add(fn); } /** @param {(batch: Batch) => void} fn */ ondiscard(fn) { __privateGet(this, _discard_callbacks).add(fn); } settled() { return (__privateGet(this, _deferred) ?? __privateSet(this, _deferred, deferred())).promise; } static ensure() { if (current_batch === null) { const batch = current_batch = new _Batch(); if (!is_processing && !is_flushing_sync) { queue_micro_task(() => { if (!__privateGet(batch, _started)) { batch.flush(); } }); } } return current_batch; } apply() { if (!async_mode_flag || !this.is_fork && __privateGet(this, _prev) === null && __privateGet(this, _next) === null) { batch_values = null; return; } batch_values = /* @__PURE__ */ new Map(); for (const [source2, [value]] of this.current) { batch_values.set(source2, value); } for (let batch = first_batch; batch !== null; batch = __privateGet(batch, _next)) { if (batch === this || batch.is_fork) continue; var intersects = false; if (batch.id < this.id) { for (const [source2, [, is_derived]] of batch.current) { if (is_derived) continue; if (this.current.has(source2)) { intersects = true; break; } } } if (!intersects) { for (const [source2, previous] of batch.previous) { if (!batch_values.has(source2)) { batch_values.set(source2, previous); } } } } } /** * * @param {Effect} effect */ schedule(effect2) { var _a2; last_scheduled_effect = effect2; if (((_a2 = effect2.b) == null ? void 0 : _a2.is_pending) && (effect2.f & (EFFECT | RENDER_EFFECT | MANAGED_EFFECT)) !== 0 && (effect2.f & REACTION_RAN) === 0) { effect2.b.defer_effect(effect2); return; } var e = effect2; while (e.parent !== null) { e = e.parent; var flags2 = e.f; if (collected_effects !== null && e === active_effect) { if (async_mode_flag) return; if ((active_reaction === null || (active_reaction.f & DERIVED) === 0) && !legacy_is_updating_store) { return; } } if ((flags2 & (ROOT_EFFECT | BRANCH_EFFECT)) !== 0) { if ((flags2 & CLEAN) === 0) { return; } e.f ^= CLEAN; } } __privateGet(this, _roots).push(e); } }; _started = new WeakMap(); _prev = new WeakMap(); _next = new WeakMap(); _commit_callbacks = new WeakMap(); _discard_callbacks = new WeakMap(); _pending = new WeakMap(); _blocking_pending = new WeakMap(); _deferred = new WeakMap(); _roots = new WeakMap(); _new_effects = new WeakMap(); _dirty_effects2 = new WeakMap(); _maybe_dirty_effects2 = new WeakMap(); _skipped_branches = new WeakMap(); _unskipped_branches = new WeakMap(); _decrement_queued = new WeakMap(); _Batch_instances = new WeakSet(); is_deferred_fn = function() { if (this.is_fork) return true; for (const effect2 of __privateGet(this, _blocking_pending).keys()) { var e = effect2; var skipped = false; while (e.parent !== null) { if (__privateGet(this, _skipped_branches).has(e)) { skipped = true; break; } e = e.parent; } if (!skipped) { return true; } } return false; }; process_fn = function() { var _a2, _b, _c, _d; __privateSet(this, _started, true); if (flush_count++ > 1e3) { __privateMethod(this, _Batch_instances, unlink_fn).call(this); infinite_loop_guard(); } if (true_default) { for (const value of this.current.keys()) { source_stacks.add(value); } } for (const e of __privateGet(this, _dirty_effects2)) { __privateGet(this, _maybe_dirty_effects2).delete(e); set_signal_status(e, DIRTY); this.schedule(e); } for (const e of __privateGet(this, _maybe_dirty_effects2)) { set_signal_status(e, MAYBE_DIRTY); this.schedule(e); } const roots = __privateGet(this, _roots); __privateSet(this, _roots, []); this.apply(); var effects = collected_effects = []; var render_effects = []; var updates = legacy_updates = []; for (const root of roots) { try { __privateMethod(this, _Batch_instances, traverse_fn).call(this, root, effects, render_effects); } catch (e) { reset_all(root); if (!__privateMethod(this, _Batch_instances, is_deferred_fn).call(this)) this.discard(); throw e; } } current_batch = null; if (updates.length > 0) { var batch = _Batch.ensure(); for (const e of updates) { batch.schedule(e); } } collected_effects = null; legacy_updates = null; if (__privateMethod(this, _Batch_instances, is_deferred_fn).call(this)) { __privateMethod(this, _Batch_instances, defer_effects_fn).call(this, render_effects); __privateMethod(this, _Batch_instances, defer_effects_fn).call(this, effects); for (const [e, t] of __privateGet(this, _skipped_branches)) { reset_branch(e, t); } if (updates.length > 0) { /** @type {unknown} */ __privateMethod(_a2 = current_batch, _Batch_instances, process_fn).call(_a2); } return; } const earlier_batch = __privateMethod(this, _Batch_instances, find_earlier_batch_fn).call(this); if (earlier_batch) { __privateMethod(this, _Batch_instances, defer_effects_fn).call(this, render_effects); __privateMethod(this, _Batch_instances, defer_effects_fn).call(this, effects); __privateMethod(_b = earlier_batch, _Batch_instances, merge_fn).call(_b, this); return; } __privateGet(this, _dirty_effects2).clear(); __privateGet(this, _maybe_dirty_effects2).clear(); for (const fn of __privateGet(this, _commit_callbacks)) fn(this); __privateGet(this, _commit_callbacks).clear(); previous_batch = this; flush_queued_effects(render_effects); flush_queued_effects(effects); previous_batch = null; (_c = __privateGet(this, _deferred)) == null ? void 0 : _c.resolve(); var next_batch = ( /** @type {Batch | null} */ /** @type {unknown} */ current_batch ); if (__privateGet(this, _pending) === 0 && (__privateGet(this, _roots).length === 0 || next_batch !== null)) { __privateMethod(this, _Batch_instances, unlink_fn).call(this); if (async_mode_flag) { __privateMethod(this, _Batch_instances, commit_fn).call(this); current_batch = next_batch; } } if (__privateGet(this, _roots).length > 0) { if (next_batch !== null) { const batch2 = next_batch; __privateGet(batch2, _roots).push(...__privateGet(this, _roots).filter((r) => !__privateGet(batch2, _roots).includes(r))); } else { next_batch = this; } } if (next_batch !== null) { __privateMethod(_d = next_batch, _Batch_instances, process_fn).call(_d); } }; /** * Traverse the effect tree, executing effects or stashing * them for later execution as appropriate * @param {Effect} root * @param {Effect[]} effects * @param {Effect[]} render_effects */ traverse_fn = function(root, effects, render_effects) { root.f ^= CLEAN; var effect2 = root.first; while (effect2 !== null) { var flags2 = effect2.f; var is_branch = (flags2 & (BRANCH_EFFECT | ROOT_EFFECT)) !== 0; var is_skippable_branch = is_branch && (flags2 & CLEAN) !== 0; var skip = is_skippable_branch || (flags2 & INERT) !== 0 || __privateGet(this, _skipped_branches).has(effect2); if (!skip && effect2.fn !== null) { if (is_branch) { effect2.f ^= CLEAN; } else if ((flags2 & EFFECT) !== 0) { effects.push(effect2); } else if (async_mode_flag && (flags2 & (RENDER_EFFECT | MANAGED_EFFECT)) !== 0) { render_effects.push(effect2); } else if (is_dirty(effect2)) { if ((flags2 & BLOCK_EFFECT) !== 0) __privateGet(this, _maybe_dirty_effects2).add(effect2); update_effect(effect2); } var child2 = effect2.first; if (child2 !== null) { effect2 = child2; continue; } } while (effect2 !== null) { var next2 = effect2.next; if (next2 !== null) { effect2 = next2; break; } effect2 = effect2.parent; } } }; find_earlier_batch_fn = function() { var batch = __privateGet(this, _prev); while (batch !== null) { if (!batch.is_fork) { for (const [value, [, is_derived]] of this.current) { if (batch.current.has(value) && !is_derived) { return batch; } } } batch = __privateGet(batch, _prev); } return null; }; /** * @param {Batch} batch */ merge_fn = function(batch) { var _a2; for (const [source2, value] of batch.current) { if (!this.previous.has(source2) && batch.previous.has(source2)) { this.previous.set(source2, batch.previous.get(source2)); } this.current.set(source2, value); } for (const [effect2, deferred2] of batch.async_deriveds) { const d = this.async_deriveds.get(effect2); if (d) deferred2.promise.then(d.resolve).catch(d.reject); } batch.async_deriveds.clear(); this.transfer_effects(__privateGet(batch, _dirty_effects2), __privateGet(batch, _maybe_dirty_effects2)); const mark = (value) => { var reactions = value.reactions; if (reactions === null) return; if ((value.f & DERIVED) !== 0 && (value.f & (DIRTY | MAYBE_DIRTY)) === 0) { return; } for (const reaction of reactions) { var flags2 = reaction.f; if ((flags2 & DERIVED) !== 0) { mark( /** @type {Derived} */ reaction ); } else { var effect2 = ( /** @type {Effect} */ reaction ); if (flags2 & (ASYNC | BLOCK_EFFECT) && !this.async_deriveds.has(effect2)) { __privateGet(this, _maybe_dirty_effects2).delete(effect2); set_signal_status(effect2, DIRTY); this.schedule(effect2); } } } }; for (const source2 of this.current.keys()) { mark(source2); } this.oncommit(() => batch.discard()); __privateMethod(_a2 = batch, _Batch_instances, unlink_fn).call(_a2); current_batch = this; __privateMethod(this, _Batch_instances, process_fn).call(this); }; /** * @param {Effect[]} effects */ defer_effects_fn = function(effects) { for (var i = 0; i < effects.length; i += 1) { defer_effect(effects[i], __privateGet(this, _dirty_effects2), __privateGet(this, _maybe_dirty_effects2)); } }; commit_fn = function() { var _a2; for (let batch = first_batch; batch !== null; batch = __privateGet(batch, _next)) { var is_earlier = batch.id < this.id; var sources = []; for (const [source3, [value, is_derived]] of this.current) { if (batch.current.has(source3)) { var batch_value = ( /** @type {[any, boolean]} */ batch.current.get(source3)[0] ); if (is_earlier && value !== batch_value) { batch.current.set(source3, [value, is_derived]); } else { continue; } } sources.push(source3); } if (is_earlier) { for (const [effect2, deferred2] of this.async_deriveds) { const d = batch.async_deriveds.get(effect2); if (d) deferred2.promise.then(d.resolve).catch(d.reject); } } var current = [...batch.current.keys()].filter( (source3) => !/** @type {[any, boolean]} */ batch.current.get(source3)[1] ); if (!__privateGet(batch, _started) || current.length === 0) continue; var others = current.filter((source3) => !this.current.has(source3)); if (others.length === 0) { if (is_earlier) { batch.discard(); } } else if (sources.length > 0) { if (true_default && !__privateGet(batch, _decrement_queued)) { invariant(__privateGet(batch, _roots).length === 0, "Batch has scheduled roots"); } if (is_earlier) { for (const unskipped of __privateGet(this, _unskipped_branches)) { batch.unskip_effect(unskipped, (e) => { var _a3; if ((e.f & (BLOCK_EFFECT | ASYNC)) !== 0) { batch.schedule(e); } else { __privateMethod(_a3 = batch, _Batch_instances, defer_effects_fn).call(_a3, [e]); } }); } } batch.activate(); var marked = /* @__PURE__ */ new Set(); var checked = /* @__PURE__ */ new Map(); for (var source2 of sources) { mark_effects(source2, others, marked, checked); } checked = /* @__PURE__ */ new Map(); var current_unequal = [...batch.current].filter(([c, v1]) => { const v2 = this.current.get(c); if (!v2) return true; return v2[0] !== v1[0] || v2[1] !== v1[1]; }).map(([c]) => c); if (current_unequal.length > 0) { for (const effect2 of __privateGet(this, _new_effects)) { if ((effect2.f & (DESTROYED | INERT | EAGER_EFFECT)) === 0 && depends_on(effect2, current_unequal, checked)) { if ((effect2.f & (ASYNC | BLOCK_EFFECT)) !== 0) { set_signal_status(effect2, DIRTY); batch.schedule(effect2); } else { __privateGet(batch, _dirty_effects2).add(effect2); } } } } if (__privateGet(batch, _roots).length > 0 && !__privateGet(batch, _decrement_queued)) { batch.apply(); for (var root of __privateGet(batch, _roots)) { __privateMethod(_a2 = batch, _Batch_instances, traverse_fn).call(_a2, root, [], []); } __privateSet(batch, _roots, []); } batch.deactivate(); } } }; unlink_fn = function() { if (!this.linked) return; var prev = __privateGet(this, _prev); var next2 = __privateGet(this, _next); if (prev === null) { first_batch = next2; } else { __privateSet(prev, _next, next2); } if (next2 === null) { last_batch = prev; } else { __privateSet(next2, _prev, prev); } this.linked = false; }; var Batch = _Batch; function flushSync(fn) { var was_flushing_sync = is_flushing_sync; is_flushing_sync = true; try { var result; if (fn) { if (current_batch !== null && !current_batch.is_fork) { current_batch.flush(); } result = fn(); } while (true) { flush_tasks(); if (current_batch === null) { return ( /** @type {T} */ result ); } current_batch.flush(); } } finally { is_flushing_sync = was_flushing_sync; } } function infinite_loop_guard() { if (true_default) { var updates = /* @__PURE__ */ new Map(); for ( const source2 of /** @type {Batch} */ current_batch.current.keys() ) { for (const [stack2, update2] of source2.updated ?? []) { var entry = updates.get(stack2); if (!entry) { entry = { error: update2.error, count: 0 }; updates.set(stack2, entry); } entry.count += update2.count; } } for (const update2 of updates.values()) { if (update2.error) { console.error(update2.error); } } } try { effect_update_depth_exceeded(); } catch (error) { if (true_default) { define_property(error, "stack", { value: "" }); } invoke_error_boundary(error, last_scheduled_effect); } } var eager_block_effects = null; function flush_queued_effects(effects) { var length = effects.length; if (length === 0) return; var i = 0; while (i < length) { var effect2 = effects[i++]; if ((effect2.f & (DESTROYED | INERT)) === 0 && is_dirty(effect2)) { eager_block_effects = /* @__PURE__ */ new Set(); update_effect(effect2); if (effect2.deps === null && effect2.first === null && effect2.nodes === null && effect2.teardown === null && effect2.ac === null) { unlink_effect(effect2); } if ((eager_block_effects == null ? void 0 : eager_block_effects.size) > 0) { old_values.clear(); for (const e of eager_block_effects) { if ((e.f & (DESTROYED | INERT)) !== 0) continue; const ordered_effects = [e]; let ancestor = e.parent; while (ancestor !== null) { if (eager_block_effects.has(ancestor)) { eager_block_effects.delete(ancestor); ordered_effects.push(ancestor); } ancestor = ancestor.parent; } for (let j = ordered_effects.length - 1; j >= 0; j--) { const e2 = ordered_effects[j]; if ((e2.f & (DESTROYED | INERT)) !== 0) continue; update_effect(e2); } } eager_block_effects.clear(); } } } eager_block_effects = null; } function mark_effects(value, sources, marked, checked) { if (marked.has(value)) return; marked.add(value); if (value.reactions !== null) { for (const reaction of value.reactions) { const flags2 = reaction.f; if ((flags2 & DERIVED) !== 0) { mark_effects( /** @type {Derived} */ reaction, sources, marked, checked ); } else if ((flags2 & (ASYNC | BLOCK_EFFECT)) !== 0 && (flags2 & DIRTY) === 0 && depends_on(reaction, sources, checked)) { set_signal_status(reaction, DIRTY); schedule_effect( /** @type {Effect} */ reaction ); } } } } function mark_eager_effects(value, effects) { if (value.reactions === null) return; for (const reaction of value.reactions) { const flags2 = reaction.f; if ((flags2 & DERIVED) !== 0) { mark_eager_effects( /** @type {Derived} */ reaction, effects ); } else if ((flags2 & EAGER_EFFECT) !== 0) { set_signal_status(reaction, DIRTY); effects.add( /** @type {Effect} */ reaction ); } } } function depends_on(reaction, sources, checked) { const depends = checked.get(reaction); if (depends !== void 0) return depends; if (reaction.deps !== null) { for (const dep of reaction.deps) { if (includes.call(sources, dep)) { return true; } if ((dep.f & DERIVED) !== 0 && depends_on( /** @type {Derived} */ dep, sources, checked )) { checked.set( /** @type {Derived} */ dep, true ); return true; } } } checked.set(reaction, false); return false; } function schedule_effect(effect2) { current_batch.schedule(effect2); } var eager_versions = []; function eager_flush() { flushSync(() => { const eager2 = eager_versions; eager_versions = []; for (const version of eager2) { update(version); } }); } var version_map = /* @__PURE__ */ new Map(); function eager(fn) { var initial = true; var value = ( /** @type {T} */ void 0 ); if (active_reaction === null) { return fn(); } let parent = active_reaction; let version = version_map.get(parent) ?? source(0); version_map.set(parent, version); teardown(() => { if (parent.f & DESTROYING) version_map.delete(parent); }); get(version); eager_effect(() => { if (initial) { var previous_batch_values = batch_values; try { batch_values = null; value = fn(); } finally { batch_values = previous_batch_values; } return; } if (eager_versions.length === 0) { queue_micro_task(eager_flush); } eager_versions.push(version); }); initial = false; return value; } function reset_branch(effect2, tracked) { if ((effect2.f & BRANCH_EFFECT) !== 0 && (effect2.f & CLEAN) !== 0) { return; } if ((effect2.f & DIRTY) !== 0) { tracked.d.push(effect2); } else if ((effect2.f & MAYBE_DIRTY) !== 0) { tracked.m.push(effect2); } set_signal_status(effect2, CLEAN); var e = effect2.first; while (e !== null) { reset_branch(e, tracked); e = e.next; } } function reset_all(effect2) { set_signal_status(effect2, CLEAN); var e = effect2.first; while (e !== null) { reset_all(e); e = e.next; } } function fork(fn) { if (!async_mode_flag) { experimental_async_required("fork"); } if (current_batch !== null) { fork_timing(); } var batch = Batch.ensure(); batch.is_fork = true; batch_values = /* @__PURE__ */ new Map(); var committed = false; var settled2 = batch.settled(); flushSync(fn); return { commit: async () => { if (committed) { await settled2; return; } if (!batch.linked) { fork_discarded(); } committed = true; batch.is_fork = false; for (var [source2, [value]] of batch.current) { source2.v = value; source2.wv = increment_write_version(); } flushSync(() => { var eager_effects2 = /* @__PURE__ */ new Set(); for (var source3 of batch.current.keys()) { mark_eager_effects(source3, eager_effects2); } set_eager_effects(eager_effects2); flush_eager_effects(); }); batch.flush(); await settled2; }, discard: () => { for (var source2 of batch.current.keys()) { source2.wv = increment_write_version(); } if (!committed && batch.linked) { batch.discard(); } } }; } // node_modules/svelte/src/internal/client/reactivity/effects.js function validate_effect(rune) { if (active_effect === null) { if (active_reaction === null) { effect_orphan(rune); } effect_in_unowned_derived(); } if (is_destroying_effect) { effect_in_teardown(rune); } } function push_effect(effect2, parent_effect) { var parent_last = parent_effect.last; if (parent_last === null) { parent_effect.last = parent_effect.first = effect2; } else { parent_last.next = effect2; effect2.prev = parent_last; parent_effect.last = effect2; } } function create_effect(type, fn) { var _a2; var parent = active_effect; if (true_default) { while (parent !== null && (parent.f & EAGER_EFFECT) !== 0) { parent = parent.parent; } } if (parent !== null && (parent.f & INERT) !== 0) { type |= INERT; } var effect2 = { ctx: component_context, deps: null, nodes: null, f: type | DIRTY | CONNECTED, first: null, fn, last: null, next: null, parent, b: parent && parent.b, prev: null, teardown: null, wv: 0, ac: null }; if (true_default) { effect2.component_function = dev_current_component_function; } (_a2 = current_batch) == null ? void 0 : _a2.register_created_effect(effect2); var e = effect2; if ((type & EFFECT) !== 0) { if (collected_effects !== null) { collected_effects.push(effect2); } else { Batch.ensure().schedule(effect2); } } else if (fn !== null) { try { update_effect(effect2); } catch (e2) { destroy_effect(effect2); throw e2; } if (e.deps === null && e.teardown === null && e.nodes === null && e.first === e.last && // either `null`, or a singular child (e.f & EFFECT_PRESERVED) === 0) { e = e.first; if ((type & BLOCK_EFFECT) !== 0 && (type & EFFECT_TRANSPARENT) !== 0 && e !== null) { e.f |= EFFECT_TRANSPARENT; } } } if (e !== null) { e.parent = parent; if (parent !== null) { push_effect(e, parent); } if (active_reaction !== null && (active_reaction.f & DERIVED) !== 0 && (type & ROOT_EFFECT) === 0) { var derived3 = ( /** @type {Derived} */ active_reaction ); (derived3.effects ?? (derived3.effects = [])).push(e); } } return effect2; } function effect_tracking() { return active_reaction !== null && !untracking; } function teardown(fn) { const effect2 = create_effect(RENDER_EFFECT, null); set_signal_status(effect2, CLEAN); effect2.teardown = fn; return effect2; } function user_effect(fn) { validate_effect("$effect"); if (true_default) { define_property(fn, "name", { value: "$effect" }); } var flags2 = ( /** @type {Effect} */ active_effect.f ); var defer = !active_reaction && (flags2 & BRANCH_EFFECT) !== 0 && component_context !== null && !component_context.i; if (defer) { var context = ( /** @type {ComponentContext} */ component_context ); (context.e ?? (context.e = [])).push(fn); } else { return create_user_effect(fn); } } function create_user_effect(fn) { return create_effect(EFFECT | USER_EFFECT, fn); } function user_pre_effect(fn) { validate_effect("$effect.pre"); if (true_default) { define_property(fn, "name", { value: "$effect.pre" }); } return create_effect(RENDER_EFFECT | USER_EFFECT, fn); } function eager_effect(fn) { return create_effect(EAGER_EFFECT, fn); } function effect_root(fn) { Batch.ensure(); const effect2 = create_effect(ROOT_EFFECT | EFFECT_PRESERVED, fn); return () => { destroy_effect(effect2); }; } function component_root(fn) { Batch.ensure(); const effect2 = create_effect(ROOT_EFFECT | EFFECT_PRESERVED, fn); return (options = {}) => { return new Promise((fulfil) => { if (options.outro) { pause_effect(effect2, () => { destroy_effect(effect2); fulfil(void 0); }); } else { destroy_effect(effect2); fulfil(void 0); } }); }; } function effect(fn) { return create_effect(EFFECT, fn); } function legacy_pre_effect(deps, fn) { var context = ( /** @type {ComponentContextLegacy} */ component_context ); var token = { effect: null, ran: false, deps }; context.l.$.push(token); token.effect = render_effect(() => { deps(); if (token.ran) return; token.ran = true; var effect2 = ( /** @type {Effect} */ active_effect ); try { set_active_effect(effect2.parent); untrack(fn); } finally { set_active_effect(effect2); } }); } function legacy_pre_effect_reset() { var context = ( /** @type {ComponentContextLegacy} */ component_context ); render_effect(() => { for (var token of context.l.$) { token.deps(); var effect2 = token.effect; if ((effect2.f & CLEAN) !== 0 && effect2.deps !== null) { set_signal_status(effect2, MAYBE_DIRTY); } if (is_dirty(effect2)) { update_effect(effect2); } token.ran = false; } }); } function async_effect(fn) { return create_effect(ASYNC | EFFECT_PRESERVED, fn); } function render_effect(fn, flags2 = 0) { return create_effect(RENDER_EFFECT | flags2, fn); } function template_effect(fn, sync = [], async = [], blockers = []) { flatten(blockers, sync, async, (values) => { create_effect(RENDER_EFFECT, () => { fn(...values.map(get)); }); }); } function deferred_template_effect(fn, sync = [], async = [], blockers = []) { flatten(blockers, sync, async, (values) => { create_effect(EFFECT, () => fn(...values.map(get))); }); } function block(fn, flags2 = 0) { var effect2 = create_effect(BLOCK_EFFECT | flags2, fn); if (true_default) { effect2.dev_stack = dev_stack; } return effect2; } function managed(fn, flags2 = 0) { var effect2 = create_effect(MANAGED_EFFECT | flags2, fn); if (true_default) { effect2.dev_stack = dev_stack; } return effect2; } function branch(fn) { return create_effect(BRANCH_EFFECT | EFFECT_PRESERVED, fn); } function execute_effect_teardown(effect2) { var teardown2 = effect2.teardown; if (teardown2 !== null) { const previously_destroying_effect = is_destroying_effect; const previous_reaction = active_reaction; set_is_destroying_effect(true); set_active_reaction(null); try { teardown2.call(null); } finally { set_is_destroying_effect(previously_destroying_effect); set_active_reaction(previous_reaction); } } } function destroy_effect_children(signal, remove_dom = false) { var effect2 = signal.first; signal.first = signal.last = null; while (effect2 !== null) { const controller = effect2.ac; if (controller !== null) { without_reactive_context(() => { controller.abort(STALE_REACTION); }); } var next2 = effect2.next; if ((effect2.f & ROOT_EFFECT) !== 0) { effect2.parent = null; } else { destroy_effect(effect2, remove_dom); } effect2 = next2; } } function destroy_block_effect_children(signal) { var effect2 = signal.first; while (effect2 !== null) { var next2 = effect2.next; if ((effect2.f & BRANCH_EFFECT) === 0) { destroy_effect(effect2); } effect2 = next2; } } function destroy_effect(effect2, remove_dom = true) { var removed = false; if ((remove_dom || (effect2.f & HEAD_EFFECT) !== 0) && effect2.nodes !== null && effect2.nodes.end !== null) { remove_effect_dom( effect2.nodes.start, /** @type {TemplateNode} */ effect2.nodes.end ); removed = true; } effect2.f |= DESTROYING; destroy_effect_children(effect2, remove_dom && !removed); remove_reactions(effect2, 0); var transitions = effect2.nodes && effect2.nodes.t; if (transitions !== null) { for (const transition of transitions) { transition.stop(); } } execute_effect_teardown(effect2); effect2.f ^= DESTROYING; effect2.f |= DESTROYED; var parent = effect2.parent; if (parent !== null && parent.first !== null) { unlink_effect(effect2); } if (true_default) { effect2.component_function = null; } effect2.next = effect2.prev = effect2.teardown = effect2.ctx = effect2.deps = effect2.fn = effect2.nodes = effect2.ac = effect2.b = null; } function remove_effect_dom(node, end) { while (node !== null) { var next2 = node === end ? null : get_next_sibling(node); node.remove(); node = next2; } } function unlink_effect(effect2) { var parent = effect2.parent; var prev = effect2.prev; var next2 = effect2.next; if (prev !== null) prev.next = next2; if (next2 !== null) next2.prev = prev; if (parent !== null) { if (parent.first === effect2) parent.first = next2; if (parent.last === effect2) parent.last = prev; } } function pause_effect(effect2, callback, destroy = true) { var transitions = []; pause_children(effect2, transitions, true); var fn = () => { if (destroy) destroy_effect(effect2); if (callback) callback(); }; var remaining = transitions.length; if (remaining > 0) { var check = () => --remaining || fn(); for (var transition of transitions) { transition.out(check); } } else { fn(); } } function pause_children(effect2, transitions, local) { if ((effect2.f & INERT) !== 0) return; effect2.f ^= INERT; var t = effect2.nodes && effect2.nodes.t; if (t !== null) { for (const transition of t) { if (transition.is_global || local) { transitions.push(transition); } } } var child2 = effect2.first; while (child2 !== null) { var sibling2 = child2.next; if ((child2.f & ROOT_EFFECT) === 0) { var transparent = (child2.f & EFFECT_TRANSPARENT) !== 0 || // If this is a branch effect without a block effect parent, // it means the parent block effect was pruned. In that case, // transparency information was transferred to the branch effect. (child2.f & BRANCH_EFFECT) !== 0 && (effect2.f & BLOCK_EFFECT) !== 0; pause_children(child2, transitions, transparent ? local : false); } child2 = sibling2; } } function resume_effect(effect2) { resume_children(effect2, true); } function resume_children(effect2, local) { if ((effect2.f & INERT) === 0) return; effect2.f ^= INERT; if ((effect2.f & CLEAN) === 0) { set_signal_status(effect2, DIRTY); Batch.ensure().schedule(effect2); } var child2 = effect2.first; while (child2 !== null) { var sibling2 = child2.next; var transparent = (child2.f & EFFECT_TRANSPARENT) !== 0 || (child2.f & BRANCH_EFFECT) !== 0; resume_children(child2, transparent ? local : false); child2 = sibling2; } var t = effect2.nodes && effect2.nodes.t; if (t !== null) { for (const transition of t) { if (transition.is_global || local) { transition.in(); } } } } function aborted(effect2 = ( /** @type {Effect} */ active_effect )) { return (effect2.f & DESTROYED) !== 0; } function move_effect(effect2, fragment) { if (!effect2.nodes) return; var node = effect2.nodes.start; var end = effect2.nodes.end; while (node !== null) { var next2 = node === end ? null : get_next_sibling(node); fragment.append(node); node = next2; } } // node_modules/svelte/src/internal/client/legacy.js var captured_signals = null; function capture_signals(fn) { var previous_captured_signals = captured_signals; try { captured_signals = /* @__PURE__ */ new Set(); untrack(fn); if (previous_captured_signals !== null) { for (var signal of captured_signals) { previous_captured_signals.add(signal); } } return captured_signals; } finally { captured_signals = previous_captured_signals; } } function invalidate_inner_signals(fn) { for (var signal of capture_signals(fn)) { internal_set(signal, signal.v); } } // node_modules/svelte/src/internal/client/runtime.js var is_updating_effect = false; var is_destroying_effect = false; function set_is_destroying_effect(value) { is_destroying_effect = value; } var active_reaction = null; var untracking = false; function set_active_reaction(reaction) { active_reaction = reaction; } var active_effect = null; function set_active_effect(effect2) { active_effect = effect2; } var current_sources = null; function push_reaction_value(value) { if (active_reaction !== null && (!async_mode_flag || (active_reaction.f & DERIVED) !== 0)) { (current_sources ?? (current_sources = /* @__PURE__ */ new Set())).add(value); } } var new_deps = null; var skipped_deps = 0; var untracked_writes = null; function set_untracked_writes(value) { untracked_writes = value; } var write_version = 1; var read_version = 0; var update_version = read_version; function set_update_version(value) { update_version = value; } function increment_write_version() { return ++write_version; } function is_dirty(reaction) { var flags2 = reaction.f; if ((flags2 & DIRTY) !== 0) { return true; } if (flags2 & DERIVED) { reaction.f &= ~WAS_MARKED; } if ((flags2 & MAYBE_DIRTY) !== 0) { var dependencies = ( /** @type {Value[]} */ reaction.deps ); var length = dependencies.length; for (var i = 0; i < length; i++) { var dependency = dependencies[i]; if (is_dirty( /** @type {Derived} */ dependency )) { update_derived( /** @type {Derived} */ dependency ); } if (dependency.wv > reaction.wv) { return true; } } if ((flags2 & CONNECTED) !== 0 && // During time traveling we don't want to reset the status so that // traversal of the graph in the other batches still happens batch_values === null) { set_signal_status(reaction, CLEAN); } } return false; } function schedule_possible_effect_self_invalidation(signal, effect2, root = true) { var reactions = signal.reactions; if (reactions === null) return; if (!async_mode_flag && current_sources !== null && current_sources.has(signal)) { return; } for (var i = 0; i < reactions.length; i++) { var reaction = reactions[i]; if ((reaction.f & DERIVED) !== 0) { schedule_possible_effect_self_invalidation( /** @type {Derived} */ reaction, effect2, false ); } else if (effect2 === reaction) { if (root) { set_signal_status(reaction, DIRTY); } else if ((reaction.f & CLEAN) !== 0) { set_signal_status(reaction, MAYBE_DIRTY); } schedule_effect( /** @type {Effect} */ reaction ); } } } function update_reaction(reaction) { var _a2, _b; var previous_deps = new_deps; var previous_skipped_deps = skipped_deps; var previous_untracked_writes = untracked_writes; var previous_reaction = active_reaction; var previous_sources = current_sources; var previous_component_context = component_context; var previous_untracking = untracking; var previous_update_version = update_version; var flags2 = reaction.f; new_deps = /** @type {null | Value[]} */ null; skipped_deps = 0; untracked_writes = null; active_reaction = (flags2 & (BRANCH_EFFECT | ROOT_EFFECT)) === 0 ? reaction : null; current_sources = null; set_component_context(reaction.ctx); untracking = false; update_version = ++read_version; if (reaction.ac !== null) { without_reactive_context(() => { reaction.ac.abort(STALE_REACTION); }); reaction.ac = null; } try { reaction.f |= REACTION_IS_UPDATING; var fn = ( /** @type {Function} */ reaction.fn ); var result = fn(); reaction.f |= REACTION_RAN; var deps = reaction.deps; var is_fork = (_a2 = current_batch) == null ? void 0 : _a2.is_fork; if (new_deps !== null) { var i; if (!is_fork) { remove_reactions(reaction, skipped_deps); } if (deps !== null && skipped_deps > 0) { deps.length = skipped_deps + new_deps.length; for (i = 0; i < new_deps.length; i++) { deps[skipped_deps + i] = new_deps[i]; } } else { reaction.deps = deps = new_deps; } if (effect_tracking() && (reaction.f & CONNECTED) !== 0) { for (i = skipped_deps; i < deps.length; i++) { ((_b = deps[i]).reactions ?? (_b.reactions = [])).push(reaction); } } } else if (!is_fork && deps !== null && skipped_deps < deps.length) { remove_reactions(reaction, skipped_deps); deps.length = skipped_deps; } if (is_runes() && untracked_writes !== null && !untracking && deps !== null && (reaction.f & (DERIVED | MAYBE_DIRTY | DIRTY)) === 0) { for (i = 0; i < /** @type {Source[]} */ untracked_writes.length; i++) { schedule_possible_effect_self_invalidation( untracked_writes[i], /** @type {Effect} */ reaction ); } } if (previous_reaction !== null && previous_reaction !== reaction) { read_version++; if (previous_reaction.deps !== null) { for (let i2 = 0; i2 < previous_skipped_deps; i2 += 1) { previous_reaction.deps[i2].rv = read_version; } } if (previous_deps !== null) { for (const dep of previous_deps) { dep.rv = read_version; } } if (untracked_writes !== null) { if (previous_untracked_writes === null) { previous_untracked_writes = untracked_writes; } else { previous_untracked_writes.push(.../** @type {Source[]} */ untracked_writes); } } } if ((reaction.f & ERROR_VALUE) !== 0) { reaction.f ^= ERROR_VALUE; } return result; } catch (error) { return handle_error(error); } finally { reaction.f ^= REACTION_IS_UPDATING; new_deps = previous_deps; skipped_deps = previous_skipped_deps; untracked_writes = previous_untracked_writes; active_reaction = previous_reaction; current_sources = previous_sources; set_component_context(previous_component_context); untracking = previous_untracking; update_version = previous_update_version; } } function remove_reaction(signal, dependency) { let reactions = dependency.reactions; if (reactions !== null) { var index = index_of.call(reactions, signal); if (index !== -1) { var new_length = reactions.length - 1; if (new_length === 0) { reactions = dependency.reactions = null; } else { reactions[index] = reactions[new_length]; reactions.pop(); } } } if (reactions === null && (dependency.f & DERIVED) !== 0 && // Destroying a child effect while updating a parent effect can cause a dependency to appear // to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps` // allows us to skip the expensive work of disconnecting and immediately reconnecting it (new_deps === null || !includes.call(new_deps, dependency))) { var derived3 = ( /** @type {Derived} */ dependency ); if ((derived3.f & CONNECTED) !== 0) { derived3.f ^= CONNECTED; derived3.f &= ~WAS_MARKED; } if (derived3.v !== UNINITIALIZED) { update_derived_status(derived3); } if (derived3.ac !== null) { without_reactive_context(() => { derived3.ac.abort(STALE_REACTION); derived3.ac = null; set_signal_status(derived3, DIRTY); }); } freeze_derived_effects(derived3); remove_reactions(derived3, 0); } } function remove_reactions(signal, start_index) { var dependencies = signal.deps; if (dependencies === null) return; for (var i = start_index; i < dependencies.length; i++) { remove_reaction(signal, dependencies[i]); } } function update_effect(effect2) { var flags2 = effect2.f; if ((flags2 & DESTROYED) !== 0) { return; } set_signal_status(effect2, CLEAN); var previous_effect = active_effect; var was_updating_effect = is_updating_effect; active_effect = effect2; is_updating_effect = (flags2 & (BRANCH_EFFECT | ROOT_EFFECT)) === 0; if (true_default) { var previous_component_fn = dev_current_component_function; set_dev_current_component_function(effect2.component_function); var previous_stack = ( /** @type {any} */ dev_stack ); set_dev_stack(effect2.dev_stack ?? dev_stack); } try { if ((flags2 & (BLOCK_EFFECT | MANAGED_EFFECT)) !== 0) { destroy_block_effect_children(effect2); } else { destroy_effect_children(effect2); } execute_effect_teardown(effect2); var teardown2 = update_reaction(effect2); effect2.teardown = typeof teardown2 === "function" ? teardown2 : null; effect2.wv = write_version; if (true_default && tracing_mode_flag && (effect2.f & DIRTY) !== 0 && effect2.deps !== null) { for (var dep of effect2.deps) { if (dep.set_during_effect) { dep.wv = increment_write_version(); dep.set_during_effect = false; } } } } finally { is_updating_effect = was_updating_effect; active_effect = previous_effect; if (true_default) { set_dev_current_component_function(previous_component_fn); set_dev_stack(previous_stack); } } } async function tick() { if (async_mode_flag) { return new Promise((f) => { requestAnimationFrame(() => f()); setTimeout(() => f()); }); } await Promise.resolve(); flushSync(); } function settled() { return Batch.ensure().settled(); } function get(signal) { var _a2, _b; var flags2 = signal.f; var is_derived = (flags2 & DERIVED) !== 0; (_a2 = captured_signals) == null ? void 0 : _a2.add(signal); if (active_reaction !== null && !untracking) { var destroyed = active_effect !== null && (active_effect.f & DESTROYED) !== 0; if (!destroyed && (current_sources === null || !current_sources.has(signal))) { var deps = active_reaction.deps; if ((active_reaction.f & REACTION_IS_UPDATING) !== 0) { if (signal.rv < read_version) { signal.rv = read_version; if (new_deps === null && deps !== null && deps[skipped_deps] === signal) { skipped_deps++; } else if (new_deps === null) { new_deps = [signal]; } else { new_deps.push(signal); } } } else { active_reaction.deps ?? (active_reaction.deps = []); if (!includes.call(active_reaction.deps, signal)) { active_reaction.deps.push(signal); } var reactions = signal.reactions; if (reactions === null) { signal.reactions = [active_reaction]; } else if (!includes.call(reactions, active_reaction)) { reactions.push(active_reaction); } } } } if (true_default) { if (!untracking && reactivity_loss_tracker && // By checking that current/previous batch are null we filter out false positives. // reactivity_loss_tracker is only reset after a microtask, so if a flush happens // before that, we get warnings for things we shouldn't warn on. current_batch === null && previous_batch === null && !reactivity_loss_tracker.warned && (reactivity_loss_tracker.effect.f & REACTION_IS_UPDATING) === 0 && !reactivity_loss_tracker.effect_deps.has(signal)) { reactivity_loss_tracker.warned = true; await_reactivity_loss( /** @type {string} */ signal.label ); var trace2 = get_error("traced at"); if (trace2) console.warn(trace2); } recent_async_deriveds.delete(signal); if (tracing_mode_flag && !untracking && tracing_expressions !== null && active_reaction !== null && tracing_expressions.reaction === active_reaction) { if (signal.trace) { signal.trace(); } else { trace2 = get_error("traced at"); if (trace2) { var entry = tracing_expressions.entries.get(signal); if (entry === void 0) { entry = { traces: [] }; tracing_expressions.entries.set(signal, entry); } var last = entry.traces[entry.traces.length - 1]; if (trace2.stack !== (last == null ? void 0 : last.stack)) { entry.traces.push(trace2); } } } } } if (is_destroying_effect && old_values.has(signal)) { return old_values.get(signal); } if (is_derived) { var derived3 = ( /** @type {Derived} */ signal ); if (is_destroying_effect) { var value = derived3.v; if ((derived3.f & CLEAN) === 0 && derived3.reactions !== null || depends_on_old_values(derived3)) { value = execute_derived(derived3); } old_values.set(derived3, value); return value; } var should_connect = (derived3.f & CONNECTED) === 0 && !untracking && active_reaction !== null && (is_updating_effect || (active_reaction.f & CONNECTED) !== 0); var is_new = (derived3.f & REACTION_RAN) === 0; if (is_dirty(derived3)) { if (should_connect) { derived3.f |= CONNECTED; } update_derived(derived3); } if (should_connect && !is_new) { unfreeze_derived_effects(derived3); reconnect(derived3); } } if ((_b = batch_values) == null ? void 0 : _b.has(signal)) { return batch_values.get(signal); } if ((signal.f & ERROR_VALUE) !== 0) { throw signal.v; } return signal.v; } function reconnect(derived3) { derived3.f |= CONNECTED; if (derived3.deps === null) return; for (const dep of derived3.deps) { (dep.reactions ?? (dep.reactions = [])).push(derived3); if ((dep.f & DERIVED) !== 0 && (dep.f & CONNECTED) === 0) { unfreeze_derived_effects( /** @type {Derived} */ dep ); reconnect( /** @type {Derived} */ dep ); } } } function depends_on_old_values(derived3) { if (derived3.v === UNINITIALIZED) return true; if (derived3.deps === null) return false; for (const dep of derived3.deps) { if (old_values.has(dep)) { return true; } if ((dep.f & DERIVED) !== 0 && depends_on_old_values( /** @type {Derived} */ dep )) { return true; } } return false; } function safe_get(signal) { return signal && get(signal); } function untrack(fn) { var previous_untracking = untracking; try { untracking = true; return fn(); } finally { untracking = previous_untracking; } } function deep_read_state(value) { if (typeof value !== "object" || !value || value instanceof EventTarget) { return; } if (STATE_SYMBOL in value) { deep_read(value); } else if (!Array.isArray(value)) { for (let key in value) { const prop = value[key]; if (typeof prop === "object" && prop && STATE_SYMBOL in prop) { deep_read(prop); } } } } function deep_read(value, visited = /* @__PURE__ */ new Set()) { if (typeof value === "object" && value !== null && // We don't want to traverse DOM elements !(value instanceof EventTarget) && !visited.has(value)) { visited.add(value); if (value instanceof Date) { value.getTime(); } for (let key in value) { try { deep_read(value[key], visited); } catch (e) { } } const proto = get_prototype_of(value); if (proto !== Object.prototype && proto !== Array.prototype && proto !== Map.prototype && proto !== Set.prototype && proto !== Date.prototype) { const descriptors = get_descriptors(proto); for (let key in descriptors) { const get3 = descriptors[key].get; if (get3) { try { get3.call(value); } catch (e) { } } } } } } // node_modules/svelte/src/internal/client/proxy.js var regex_is_valid_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/; function proxy(value) { if (typeof value !== "object" || value === null || STATE_SYMBOL in value) { return value; } const prototype = get_prototype_of(value); if (prototype !== object_prototype && prototype !== array_prototype) { return value; } var sources = /* @__PURE__ */ new Map(); var is_proxied_array = is_array(value); var version = state(0); var stack2 = true_default && tracing_mode_flag ? get_error("created at") : null; var parent_version = update_version; var with_parent = (fn) => { if (update_version === parent_version) { return fn(); } var reaction = active_reaction; var version2 = update_version; set_active_reaction(null); set_update_version(parent_version); var result = fn(); set_active_reaction(reaction); set_update_version(version2); return result; }; if (is_proxied_array) { sources.set("length", state( /** @type {any[]} */ value.length, stack2 )); if (true_default) { value = /** @type {any} */ inspectable_array( /** @type {any[]} */ value ); } } var path = ""; let updating = false; function update_path(new_path) { if (updating) return; updating = true; path = new_path; tag(version, `${path} version`); for (const [prop, source2] of sources) { tag(source2, get_label(path, prop)); } updating = false; } return new Proxy( /** @type {any} */ value, { defineProperty(_, prop, descriptor) { if (!("value" in descriptor) || descriptor.configurable === false || descriptor.enumerable === false || descriptor.writable === false) { state_descriptors_fixed(); } var s = sources.get(prop); if (s === void 0) { with_parent(() => { var s2 = state(descriptor.value, stack2); sources.set(prop, s2); if (true_default && typeof prop === "string") { tag(s2, get_label(path, prop)); } return s2; }); } else { set(s, descriptor.value, true); } return true; }, deleteProperty(target, prop) { var s = sources.get(prop); if (s === void 0) { if (prop in target) { const s2 = with_parent(() => state(UNINITIALIZED, stack2)); sources.set(prop, s2); increment(version); if (true_default) { tag(s2, get_label(path, prop)); } } } else { set(s, UNINITIALIZED); increment(version); } return true; }, get(target, prop, receiver) { var _a2; if (prop === STATE_SYMBOL) { return value; } if (true_default && prop === PROXY_PATH_SYMBOL) { return update_path; } var s = sources.get(prop); var exists = prop in target; if (s === void 0 && (!exists || ((_a2 = get_descriptor(target, prop)) == null ? void 0 : _a2.writable))) { s = with_parent(() => { var p = proxy(exists ? target[prop] : UNINITIALIZED); var s2 = state(p, stack2); if (true_default) { tag(s2, get_label(path, prop)); } return s2; }); sources.set(prop, s); } if (s !== void 0) { var v = get(s); return v === UNINITIALIZED ? void 0 : v; } return Reflect.get(target, prop, receiver); }, getOwnPropertyDescriptor(target, prop) { var descriptor = Reflect.getOwnPropertyDescriptor(target, prop); if (descriptor && "value" in descriptor) { var s = sources.get(prop); if (s) descriptor.value = get(s); } else if (descriptor === void 0) { var source2 = sources.get(prop); var value2 = source2 == null ? void 0 : source2.v; if (source2 !== void 0 && value2 !== UNINITIALIZED) { return { enumerable: true, configurable: true, value: value2, writable: true }; } } return descriptor; }, has(target, prop) { var _a2; if (prop === STATE_SYMBOL) { return true; } var s = sources.get(prop); var has = s !== void 0 && s.v !== UNINITIALIZED || Reflect.has(target, prop); if (s !== void 0 || active_effect !== null && (!has || ((_a2 = get_descriptor(target, prop)) == null ? void 0 : _a2.writable))) { if (s === void 0) { s = with_parent(() => { var p = has ? proxy(target[prop]) : UNINITIALIZED; var s2 = state(p, stack2); if (true_default) { tag(s2, get_label(path, prop)); } return s2; }); sources.set(prop, s); } var value2 = get(s); if (value2 === UNINITIALIZED) { return false; } } return has; }, set(target, prop, value2, receiver) { var _a2; var s = sources.get(prop); var has = prop in target; if (is_proxied_array && prop === "length") { for (var i = value2; i < /** @type {Source} */ s.v; i += 1) { var other_s = sources.get(i + ""); if (other_s !== void 0) { set(other_s, UNINITIALIZED); } else if (i in target) { other_s = with_parent(() => state(UNINITIALIZED, stack2)); sources.set(i + "", other_s); if (true_default) { tag(other_s, get_label(path, i)); } } } } if (s === void 0) { if (!has || ((_a2 = get_descriptor(target, prop)) == null ? void 0 : _a2.writable)) { s = with_parent(() => state(void 0, stack2)); if (true_default) { tag(s, get_label(path, prop)); } set(s, proxy(value2)); sources.set(prop, s); } } else { has = s.v !== UNINITIALIZED; var p = with_parent(() => proxy(value2)); set(s, p); } var descriptor = Reflect.getOwnPropertyDescriptor(target, prop); if (descriptor == null ? void 0 : descriptor.set) { descriptor.set.call(receiver, value2); } if (!has) { if (is_proxied_array && typeof prop === "string") { var ls = ( /** @type {Source} */ sources.get("length") ); var n = Number(prop); if (Number.isInteger(n) && n >= ls.v) { set(ls, n + 1); } } increment(version); } return true; }, ownKeys(target) { get(version); var own_keys = Reflect.ownKeys(target).filter((key2) => { var source3 = sources.get(key2); return source3 === void 0 || source3.v !== UNINITIALIZED; }); for (var [key, source2] of sources) { if (source2.v !== UNINITIALIZED && !(key in target)) { own_keys.push(key); } } return own_keys; }, setPrototypeOf() { state_prototype_fixed(); } } ); } function get_label(path, prop) { if (typeof prop === "symbol") return `${path}[Symbol(${prop.description ?? ""})]`; if (regex_is_valid_identifier.test(prop)) return `${path}.${prop}`; return /^\d+$/.test(prop) ? `${path}[${prop}]` : `${path}['${prop}']`; } function get_proxied_value(value) { try { if (value !== null && typeof value === "object" && STATE_SYMBOL in value) { return value[STATE_SYMBOL]; } } catch { } return value; } function is(a, b) { return Object.is(get_proxied_value(a), get_proxied_value(b)); } var ARRAY_MUTATING_METHODS = /* @__PURE__ */ new Set([ "copyWithin", "fill", "pop", "push", "reverse", "shift", "sort", "splice", "unshift" ]); function inspectable_array(array) { return new Proxy(array, { get(target, prop, receiver) { var value = Reflect.get(target, prop, receiver); if (!ARRAY_MUTATING_METHODS.has( /** @type {string} */ prop )) { return value; } return function(...args) { set_eager_effects_deferred(); var result = value.apply(this, args); flush_eager_effects(); return result; }; } }); } // node_modules/svelte/src/internal/client/dev/equality.js function init_array_prototype_warnings() { const array_prototype2 = Array.prototype; const cleanup = Array.__svelte_cleanup; if (cleanup) { cleanup(); } const { indexOf, lastIndexOf, includes: includes2 } = array_prototype2; array_prototype2.indexOf = function(item, from_index) { const index = indexOf.call(this, item, from_index); if (index === -1) { for (let i = from_index ?? 0; i < this.length; i += 1) { if (get_proxied_value(this[i]) === item) { state_proxy_equality_mismatch("array.indexOf(...)"); break; } } } return index; }; array_prototype2.lastIndexOf = function(item, from_index) { const index = lastIndexOf.call(this, item, from_index ?? this.length - 1); if (index === -1) { for (let i = 0; i <= (from_index ?? this.length - 1); i += 1) { if (get_proxied_value(this[i]) === item) { state_proxy_equality_mismatch("array.lastIndexOf(...)"); break; } } } return index; }; array_prototype2.includes = function(item, from_index) { const has = includes2.call(this, item, from_index); if (!has) { for (let i = 0; i < this.length; i += 1) { if (get_proxied_value(this[i]) === item) { state_proxy_equality_mismatch("array.includes(...)"); break; } } } return has; }; Array.__svelte_cleanup = () => { array_prototype2.indexOf = indexOf; array_prototype2.lastIndexOf = lastIndexOf; array_prototype2.includes = includes2; }; } function strict_equals(a, b, equal = true) { try { if (a === b !== (get_proxied_value(a) === get_proxied_value(b))) { state_proxy_equality_mismatch(equal ? "===" : "!=="); } } catch { } return a === b === equal; } function equals2(a, b, equal = true) { if (a == b !== (get_proxied_value(a) == get_proxied_value(b))) { state_proxy_equality_mismatch(equal ? "==" : "!="); } return a == b === equal; } // node_modules/svelte/src/internal/client/dom/operations.js var $window; var $document; var is_firefox; var first_child_getter; var next_sibling_getter; function init_operations() { if ($window !== void 0) { return; } $window = window; $document = document; is_firefox = /Firefox/.test(navigator.userAgent); var element_prototype = Element.prototype; var node_prototype = Node.prototype; var text_prototype = Text.prototype; first_child_getter = get_descriptor(node_prototype, "firstChild").get; next_sibling_getter = get_descriptor(node_prototype, "nextSibling").get; if (is_extensible(element_prototype)) { element_prototype[CLASS_CACHE] = void 0; element_prototype[ATTRIBUTES_CACHE] = null; element_prototype[STYLE_CACHE] = void 0; element_prototype.__e = void 0; } if (is_extensible(text_prototype)) { text_prototype[TEXT_CACHE] = void 0; } if (true_default) { element_prototype.__svelte_meta = null; init_array_prototype_warnings(); } } function create_text(value = "") { return document.createTextNode(value); } function get_first_child(node) { return ( /** @type {TemplateNode | null} */ first_child_getter.call(node) ); } function get_next_sibling(node) { return ( /** @type {TemplateNode | null} */ next_sibling_getter.call(node) ); } function child(node, is_text) { if (!hydrating) { return get_first_child(node); } var child2 = get_first_child(hydrate_node); if (child2 === null) { child2 = hydrate_node.appendChild(create_text()); } else if (is_text && child2.nodeType !== TEXT_NODE) { var text = create_text(); child2 == null ? void 0 : child2.before(text); set_hydrate_node(text); return text; } if (is_text) { merge_text_nodes( /** @type {Text} */ child2 ); } set_hydrate_node(child2); return child2; } function first_child(node, is_text = false) { var _a2, _b; if (!hydrating) { var first = get_first_child(node); if (first instanceof Comment && first.data === "") return get_next_sibling(first); return first; } if (is_text) { if (((_a2 = hydrate_node) == null ? void 0 : _a2.nodeType) !== TEXT_NODE) { var text = create_text(); (_b = hydrate_node) == null ? void 0 : _b.before(text); set_hydrate_node(text); return text; } merge_text_nodes( /** @type {Text} */ hydrate_node ); } return hydrate_node; } function sibling(node, count = 1, is_text = false) { let next_sibling = hydrating ? hydrate_node : node; var last_sibling; while (count--) { last_sibling = next_sibling; next_sibling = /** @type {TemplateNode} */ get_next_sibling(next_sibling); } if (!hydrating) { return next_sibling; } if (is_text) { if ((next_sibling == null ? void 0 : next_sibling.nodeType) !== TEXT_NODE) { var text = create_text(); if (next_sibling === null) { last_sibling == null ? void 0 : last_sibling.after(text); } else { next_sibling.before(text); } set_hydrate_node(text); return text; } merge_text_nodes( /** @type {Text} */ next_sibling ); } set_hydrate_node(next_sibling); return next_sibling; } function clear_text_content(node) { node.textContent = ""; } function should_defer_append() { if (!async_mode_flag) return false; if (eager_block_effects !== null) return false; var flags2 = ( /** @type {Effect} */ active_effect.f ); return (flags2 & REACTION_RAN) !== 0; } function create_element(tag2, namespace, is2) { if (namespace == null || namespace === NAMESPACE_HTML) { return ( /** @type {T extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[T] : Element} */ is2 ? document.createElement(tag2, { is: is2 }) : document.createElement(tag2) ); } return ( /** @type {T extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[T] : Element} */ is2 ? document.createElementNS(namespace, tag2, { is: is2 }) : document.createElementNS(namespace, tag2) ); } function create_fragment() { return document.createDocumentFragment(); } function create_comment(data = "") { return document.createComment(data); } function set_attribute(element, key, value = "") { if (key.startsWith("xlink:")) { element.setAttributeNS("http://www.w3.org/1999/xlink", key, value); return; } return element.setAttribute(key, value); } function merge_text_nodes(text) { if ( /** @type {string} */ text.nodeValue.length < 65536 ) { return; } let next2 = text.nextSibling; while (next2 !== null && next2.nodeType === TEXT_NODE) { next2.remove(); text.nodeValue += /** @type {string} */ next2.nodeValue; next2 = text.nextSibling; } } // node_modules/svelte/src/internal/client/dom/hydration.js var hydrating = false; function set_hydrating(value) { hydrating = value; } var hydrate_node; function set_hydrate_node(node) { if (node === null) { hydration_mismatch(); throw HYDRATION_ERROR; } return hydrate_node = node; } function hydrate_next() { return set_hydrate_node(get_next_sibling(hydrate_node)); } function reset(node) { if (!hydrating) return; if (get_next_sibling(hydrate_node) !== null) { hydration_mismatch(); throw HYDRATION_ERROR; } hydrate_node = node; } function hydrate_template(template) { if (hydrating) { hydrate_node = template.content; } } function next(count = 1) { if (hydrating) { var i = count; var node = hydrate_node; while (i--) { node = /** @type {TemplateNode} */ get_next_sibling(node); } hydrate_node = node; } } function skip_nodes(remove = true) { var depth = 0; var node = hydrate_node; while (true) { if (node.nodeType === COMMENT_NODE) { var data = ( /** @type {Comment} */ node.data ); if (data === HYDRATION_END) { if (depth === 0) return node; depth -= 1; } else if (data === HYDRATION_START || data === HYDRATION_START_ELSE || // "[1", "[2", etc. for if blocks data[0] === "[" && !isNaN(Number(data.slice(1)))) { depth += 1; } } var next2 = ( /** @type {TemplateNode} */ get_next_sibling(node) ); if (remove) node.remove(); node = next2; } } function read_hydration_instruction(node) { if (!node || node.nodeType !== COMMENT_NODE) { hydration_mismatch(); throw HYDRATION_ERROR; } return ( /** @type {Comment} */ node.data ); } export { EACH_ITEM_REACTIVE, EACH_INDEX_REACTIVE, EACH_IS_CONTROLLED, EACH_IS_ANIMATED, 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, TEMPLATE_USE_SVG, TEMPLATE_USE_MATHML, HYDRATION_START, HYDRATION_START_ELSE, HYDRATION_END, HYDRATION_ERROR, UNINITIALIZED, FILENAME, HMR, NAMESPACE_HTML, NAMESPACE_SVG, NAMESPACE_MATHML, ATTACHMENT_KEY, is_array, array_from, object_keys, define_property, get_descriptor, get_descriptors, get_prototype_of, has_own_property, is_function, noop, is_promise, run, run_all, deferred, fallback, to_array, exclude_from_object, BLOCK_EFFECT, BRANCH_EFFECT, DIRTY, MAYBE_DIRTY, INERT, DESTROYED, REACTION_RAN, DESTROYING, EFFECT_TRANSPARENT, HEAD_EFFECT, EFFECT_OFFSCREEN, STATE_SYMBOL, LEGACY_PROPS, LOADING_ATTR_SYMBOL, ATTRIBUTES_CACHE, CLASS_CACHE, STYLE_CACHE, TEXT_CACHE, FORM_RESET_HANDLER, HMR_ANCHOR, IS_XHTML, ELEMENT_NODE, TEXT_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, experimental_async_required, invalid_default_snippet, invalid_snippet_arguments, lifecycle_outside_component, snippet_without_render_tag, store_invalid_shape, svelte_element_invalid_this_value, bind_invalid_checkbox_value, component_api_changed, component_api_invalid_new, each_key_duplicate, each_key_volatile, get_abort_signal_outside_reaction, hydratable_missing_but_required, hydration_failed, invalid_snippet, lifecycle_legacy_only, props_invalid_value, props_rest_readonly, rune_outside_svelte, hydrating, set_hydrating, hydrate_node, set_hydrate_node, hydrate_next, reset, hydrate_template, next, skip_nodes, read_hydration_instruction, safe_not_equal, dynamic_void_element_content, snapshot, trace, tag, tag_proxy, label, get_error, component_context, dev_stack, add_svelte_meta, dev_current_component_function, set_dev_current_component_function, createContext, getContext, setContext, hasContext, getAllContexts, push, pop, is_runes, queue_micro_task, set_signal_status, readable, writable, derived2 as derived, readonly, get2 as get, store_get, store_unsub, store_set, invalidate_store, setup_stores, store_mutate, update_store, update_pre_store, mark_store_binding, capture_store_binding, autofocus, remove_textarea_child, add_form_reset_listener, listen, without_reactive_context, listen_to_event_and_reset_event, createSubscriber, boundary, pending, flatten, run_after_blockers, capture, save, track_reactivity_loss, for_await_track_reactivity_loss, unset_context, run2, wait, derived as derived2, async_derived, user_derived, derived_safe_equal, current_batch, previous_batch, is_flushing_sync, Batch, flushSync, eager, fork, source, state, mutable_source, mutate, set, internal_set, update, update_pre, increment, proxy, is, strict_equals, equals2 as equals, $window, $document, is_firefox, init_operations, create_text, get_first_child, get_next_sibling, child, first_child, sibling, clear_text_content, should_defer_append, create_element, create_fragment, create_comment, set_attribute, merge_text_nodes, validate_effect, effect_tracking, teardown, user_effect, user_pre_effect, eager_effect, effect_root, component_root, effect, legacy_pre_effect, legacy_pre_effect_reset, render_effect, template_effect, deferred_template_effect, block, managed, branch, destroy_effect, remove_effect_dom, pause_effect, resume_effect, aborted, move_effect, invalidate_inner_signals, is_destroying_effect, active_reaction, set_active_reaction, active_effect, set_active_effect, update_version, tick, settled, get as get2, safe_get, untrack, deep_read_state, deep_read }; //# sourceMappingURL=chunk-IFIY7NGJ.js.map