1 line
No EOL
113 KiB
Text
1 line
No EOL
113 KiB
Text
{"version":3,"file":"2.C7u7nl_-.js","sources":["../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/escaping.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/dom/blocks/each.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/dom/blocks/html.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/dom/elements/actions.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/timing.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/loop.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/dom/elements/transitions.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/client/dom/elements/bindings/input.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/internal/shared/attributes.js","../../../../../../node_modules/.pnpm/@skeletonlabs+skeleton@2.10.3_svelte@5.2.0/node_modules/@skeletonlabs/skeleton/dist/utilities/CodeBlock/stores.js","../../../../../../node_modules/.pnpm/@skeletonlabs+skeleton@2.10.3_svelte@5.2.0/node_modules/@skeletonlabs/skeleton/dist/actions/Clipboard/clipboard.js","../../../../../../node_modules/.pnpm/svelte@5.2.0/node_modules/svelte/src/transition/index.js","../../../../../../node_modules/.pnpm/@skeletonlabs+skeleton@2.10.3_svelte@5.2.0/node_modules/@skeletonlabs/skeleton/dist/components/Accordion/Accordion.svelte","../../../../../../node_modules/.pnpm/@skeletonlabs+skeleton@2.10.3_svelte@5.2.0/node_modules/@skeletonlabs/skeleton/dist/internal/transitions.js","../../../../../../node_modules/.pnpm/@skeletonlabs+skeleton@2.10.3_svelte@5.2.0/node_modules/@skeletonlabs/skeleton/dist/components/Accordion/AccordionItem.svelte","../../../../../../node_modules/.pnpm/@skeletonlabs+skeleton@2.10.3_svelte@5.2.0/node_modules/@skeletonlabs/skeleton/dist/components/Stepper/Stepper.svelte","../../../../../../node_modules/.pnpm/@skeletonlabs+skeleton@2.10.3_svelte@5.2.0/node_modules/@skeletonlabs/skeleton/dist/components/Stepper/Step.svelte","../../../../../../node_modules/.pnpm/@skeletonlabs+skeleton@2.10.3_svelte@5.2.0/node_modules/@skeletonlabs/skeleton/dist/utilities/CodeBlock/CodeBlock.svelte","../../../../../../src/lib/index.ts","../../../../../../src/lib/instructions.svelte","../../../../../../src/routes/+page.svelte"],"sourcesContent":["const ATTR_REGEX = /[&\"<]/g;\nconst CONTENT_REGEX = /[&<]/g;\n\n/**\n * @template V\n * @param {V} value\n * @param {boolean} [is_attr]\n */\nexport function escape_html(value, is_attr) {\n\tconst str = String(value ?? '');\n\n\tconst pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n\tpattern.lastIndex = 0;\n\n\tlet escaped = '';\n\tlet last = 0;\n\n\twhile (pattern.test(str)) {\n\t\tconst i = pattern.lastIndex - 1;\n\t\tconst ch = str[i];\n\t\tescaped += str.substring(last, i) + (ch === '&' ? '&' : ch === '\"' ? '"' : '<');\n\t\tlast = i + 1;\n\t}\n\n\treturn escaped + str.substring(last);\n}\n","/** @import { EachItem, EachState, Effect, MaybeSource, Source, TemplateNode, TransitionManager, Value } from '#client' */\nimport {\n\tEACH_INDEX_REACTIVE,\n\tEACH_IS_ANIMATED,\n\tEACH_IS_CONTROLLED,\n\tEACH_ITEM_IMMUTABLE,\n\tEACH_ITEM_REACTIVE,\n\tHYDRATION_END,\n\tHYDRATION_START_ELSE\n} from '../../../../constants.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tremove_nodes,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport {\n\tclear_text_content,\n\tcreate_text,\n\tget_first_child,\n\tget_next_sibling\n} from '../operations.js';\nimport {\n\tblock,\n\tbranch,\n\tdestroy_effect,\n\trun_out_transitions,\n\tpause_children,\n\tpause_effect,\n\tresume_effect\n} from '../../reactivity/effects.js';\nimport { source, mutable_source, internal_set } from '../../reactivity/sources.js';\nimport { array_from, is_array } from '../../../shared/utils.js';\nimport { INERT } from '../../constants.js';\nimport { queue_micro_task } from '../task.js';\nimport { active_effect, active_reaction } from '../../runtime.js';\n\n/**\n * The row of a keyed each block that is currently updating. We track this\n * so that `animate:` directives have something to attach themselves to\n * @type {EachItem | null}\n */\nexport let current_each_item = null;\n\n/** @param {EachItem | null} item */\nexport function set_current_each_item(item) {\n\tcurrent_each_item = item;\n}\n\n/**\n * @param {any} _\n * @param {number} i\n */\nexport function index(_, i) {\n\treturn i;\n}\n\n/**\n * Pause multiple effects simultaneously, and coordinate their\n * subsequent destruction. Used in each blocks\n * @param {EachState} state\n * @param {EachItem[]} items\n * @param {null | Node} controlled_anchor\n * @param {Map<any, EachItem>} items_map\n */\nfunction pause_effects(state, items, controlled_anchor, items_map) {\n\t/** @type {TransitionManager[]} */\n\tvar transitions = [];\n\tvar length = items.length;\n\n\tfor (var i = 0; i < length; i++) {\n\t\tpause_children(items[i].e, transitions, true);\n\t}\n\n\tvar is_controlled = length > 0 && transitions.length === 0 && controlled_anchor !== null;\n\t// If we have a controlled anchor, it means that the each block is inside a single\n\t// DOM element, so we can apply a fast-path for clearing the contents of the element.\n\tif (is_controlled) {\n\t\tvar parent_node = /** @type {Element} */ (\n\t\t\t/** @type {Element} */ (controlled_anchor).parentNode\n\t\t);\n\t\tclear_text_content(parent_node);\n\t\tparent_node.append(/** @type {Element} */ (controlled_anchor));\n\t\titems_map.clear();\n\t\tlink(state, items[0].prev, items[length - 1].next);\n\t}\n\n\trun_out_transitions(transitions, () => {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tvar item = items[i];\n\t\t\tif (!is_controlled) {\n\t\t\t\titems_map.delete(item.k);\n\t\t\t\tlink(state, item.prev, item.next);\n\t\t\t}\n\t\t\tdestroy_effect(item.e, !is_controlled);\n\t\t}\n\t});\n}\n\n/**\n * @template V\n * @param {Element | Comment} node The next sibling node, or the parent node if this is a 'controlled' block\n * @param {number} flags\n * @param {() => V[]} get_collection\n * @param {(value: V, index: number) => any} get_key\n * @param {(anchor: Node, item: MaybeSource<V>, index: MaybeSource<number>) => void} render_fn\n * @param {null | ((anchor: Node) => void)} fallback_fn\n * @returns {void}\n */\nexport function each(node, flags, get_collection, get_key, render_fn, fallback_fn = null) {\n\tvar anchor = node;\n\n\t/** @type {EachState} */\n\tvar state = { flags, items: new Map(), first: null };\n\n\tvar is_controlled = (flags & EACH_IS_CONTROLLED) !== 0;\n\n\tif (is_controlled) {\n\t\tvar parent_node = /** @type {Element} */ (node);\n\n\t\tanchor = hydrating\n\t\t\t? set_hydrate_node(/** @type {Comment | Text} */ (get_first_child(parent_node)))\n\t\t\t: parent_node.appendChild(create_text());\n\t}\n\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\t/** @type {Effect | null} */\n\tvar fallback = null;\n\n\tvar was_empty = false;\n\n\tblock(() => {\n\t\tvar collection = get_collection();\n\n\t\tvar array = is_array(collection)\n\t\t\t? collection\n\t\t\t: collection == null\n\t\t\t\t? []\n\t\t\t\t: array_from(collection);\n\n\t\tvar length = array.length;\n\n\t\tif (was_empty && length === 0) {\n\t\t\t// ignore updates if the array is empty,\n\t\t\t// and it already was empty on previous run\n\t\t\treturn;\n\t\t}\n\t\twas_empty = length === 0;\n\n\t\t/** `true` if there was a hydration mismatch. Needs to be a `let` or else it isn't treeshaken out */\n\t\tlet mismatch = false;\n\n\t\tif (hydrating) {\n\t\t\tvar is_else = /** @type {Comment} */ (anchor).data === HYDRATION_START_ELSE;\n\n\t\t\tif (is_else !== (length === 0)) {\n\t\t\t\t// hydration mismatch — remove the server-rendered DOM and start over\n\t\t\t\tanchor = remove_nodes();\n\n\t\t\t\tset_hydrate_node(anchor);\n\t\t\t\tset_hydrating(false);\n\t\t\t\tmismatch = true;\n\t\t\t}\n\t\t}\n\n\t\t// this is separate to the previous block because `hydrating` might change\n\t\tif (hydrating) {\n\t\t\t/** @type {EachItem | null} */\n\t\t\tvar prev = null;\n\n\t\t\t/** @type {EachItem} */\n\t\t\tvar item;\n\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tif (\n\t\t\t\t\thydrate_node.nodeType === 8 &&\n\t\t\t\t\t/** @type {Comment} */ (hydrate_node).data === HYDRATION_END\n\t\t\t\t) {\n\t\t\t\t\t// The server rendered fewer items than expected,\n\t\t\t\t\t// so break out and continue appending non-hydrated items\n\t\t\t\t\tanchor = /** @type {Comment} */ (hydrate_node);\n\t\t\t\t\tmismatch = true;\n\t\t\t\t\tset_hydrating(false);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar value = array[i];\n\t\t\t\tvar key = get_key(value, i);\n\t\t\t\titem = create_item(hydrate_node, state, prev, null, value, key, i, render_fn, flags);\n\t\t\t\tstate.items.set(key, item);\n\n\t\t\t\tprev = item;\n\t\t\t}\n\n\t\t\t// remove excess nodes\n\t\t\tif (length > 0) {\n\t\t\t\tset_hydrate_node(remove_nodes());\n\t\t\t}\n\t\t}\n\n\t\tif (!hydrating) {\n\t\t\tvar effect = /** @type {Effect} */ (active_reaction);\n\t\t\treconcile(array, state, anchor, render_fn, flags, (effect.f & INERT) !== 0, get_key);\n\t\t}\n\n\t\tif (fallback_fn !== null) {\n\t\t\tif (length === 0) {\n\t\t\t\tif (fallback) {\n\t\t\t\t\tresume_effect(fallback);\n\t\t\t\t} else {\n\t\t\t\t\tfallback = branch(() => fallback_fn(anchor));\n\t\t\t\t}\n\t\t\t} else if (fallback !== null) {\n\t\t\t\tpause_effect(fallback, () => {\n\t\t\t\t\tfallback = null;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (mismatch) {\n\t\t\t// continue in hydration mode\n\t\t\tset_hydrating(true);\n\t\t}\n\n\t\t// When we mount the each block for the first time, the collection won't be\n\t\t// connected to this effect as the effect hasn't finished running yet and its deps\n\t\t// won't be assigned. However, it's possible that when reconciling the each block\n\t\t// that a mutation occurred and it's made the collection MAYBE_DIRTY, so reading the\n\t\t// collection again can provide consistency to the reactive graph again as the deriveds\n\t\t// will now be `CLEAN`.\n\t\tget_collection();\n\t});\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n\n/**\n * Add, remove, or reorder items output by an each block as its input changes\n * @template V\n * @param {Array<V>} array\n * @param {EachState} state\n * @param {Element | Comment | Text} anchor\n * @param {(anchor: Node, item: MaybeSource<V>, index: number | Source<number>) => void} render_fn\n * @param {number} flags\n * @param {boolean} is_inert\n * @param {(value: V, index: number) => any} get_key\n * @returns {void}\n */\nfunction reconcile(array, state, anchor, render_fn, flags, is_inert, get_key) {\n\tvar is_animated = (flags & EACH_IS_ANIMATED) !== 0;\n\tvar should_update = (flags & (EACH_ITEM_REACTIVE | EACH_INDEX_REACTIVE)) !== 0;\n\n\tvar length = array.length;\n\tvar items = state.items;\n\tvar first = state.first;\n\tvar current = first;\n\n\t/** @type {undefined | Set<EachItem>} */\n\tvar seen;\n\n\t/** @type {EachItem | null} */\n\tvar prev = null;\n\n\t/** @type {undefined | Set<EachItem>} */\n\tvar to_animate;\n\n\t/** @type {EachItem[]} */\n\tvar matched = [];\n\n\t/** @type {EachItem[]} */\n\tvar stashed = [];\n\n\t/** @type {V} */\n\tvar value;\n\n\t/** @type {any} */\n\tvar key;\n\n\t/** @type {EachItem | undefined} */\n\tvar item;\n\n\t/** @type {number} */\n\tvar i;\n\n\tif (is_animated) {\n\t\tfor (i = 0; i < length; i += 1) {\n\t\t\tvalue = array[i];\n\t\t\tkey = get_key(value, i);\n\t\t\titem = items.get(key);\n\n\t\t\tif (item !== undefined) {\n\t\t\t\titem.a?.measure();\n\t\t\t\t(to_animate ??= new Set()).add(item);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (i = 0; i < length; i += 1) {\n\t\tvalue = array[i];\n\t\tkey = get_key(value, i);\n\t\titem = items.get(key);\n\n\t\tif (item === undefined) {\n\t\t\tvar child_anchor = current ? /** @type {TemplateNode} */ (current.e.nodes_start) : anchor;\n\n\t\t\tprev = create_item(\n\t\t\t\tchild_anchor,\n\t\t\t\tstate,\n\t\t\t\tprev,\n\t\t\t\tprev === null ? state.first : prev.next,\n\t\t\t\tvalue,\n\t\t\t\tkey,\n\t\t\t\ti,\n\t\t\t\trender_fn,\n\t\t\t\tflags\n\t\t\t);\n\n\t\t\titems.set(key, prev);\n\n\t\t\tmatched = [];\n\t\t\tstashed = [];\n\n\t\t\tcurrent = prev.next;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (should_update) {\n\t\t\tupdate_item(item, value, i, flags);\n\t\t}\n\n\t\tif ((item.e.f & INERT) !== 0) {\n\t\t\tresume_effect(item.e);\n\t\t\tif (is_animated) {\n\t\t\t\titem.a?.unfix();\n\t\t\t\t(to_animate ??= new Set()).delete(item);\n\t\t\t}\n\t\t}\n\n\t\tif (item !== current) {\n\t\t\tif (seen !== undefined && seen.has(item)) {\n\t\t\t\tif (matched.length < stashed.length) {\n\t\t\t\t\t// more efficient to move later items to the front\n\t\t\t\t\tvar start = stashed[0];\n\t\t\t\t\tvar j;\n\n\t\t\t\t\tprev = start.prev;\n\n\t\t\t\t\tvar a = matched[0];\n\t\t\t\t\tvar b = matched[matched.length - 1];\n\n\t\t\t\t\tfor (j = 0; j < matched.length; j += 1) {\n\t\t\t\t\t\tmove(matched[j], start, anchor);\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (j = 0; j < stashed.length; j += 1) {\n\t\t\t\t\t\tseen.delete(stashed[j]);\n\t\t\t\t\t}\n\n\t\t\t\t\tlink(state, a.prev, b.next);\n\t\t\t\t\tlink(state, prev, a);\n\t\t\t\t\tlink(state, b, start);\n\n\t\t\t\t\tcurrent = start;\n\t\t\t\t\tprev = b;\n\t\t\t\t\ti -= 1;\n\n\t\t\t\t\tmatched = [];\n\t\t\t\t\tstashed = [];\n\t\t\t\t} else {\n\t\t\t\t\t// more efficient to move earlier items to the back\n\t\t\t\t\tseen.delete(item);\n\t\t\t\t\tmove(item, current, anchor);\n\n\t\t\t\t\tlink(state, item.prev, item.next);\n\t\t\t\t\tlink(state, item, prev === null ? state.first : prev.next);\n\t\t\t\t\tlink(state, prev, item);\n\n\t\t\t\t\tprev = item;\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tmatched = [];\n\t\t\tstashed = [];\n\n\t\t\twhile (current !== null && current.k !== key) {\n\t\t\t\t// If the each block isn't inert and an item has an effect that is already inert,\n\t\t\t\t// skip over adding it to our seen Set as the item is already being handled\n\t\t\t\tif (is_inert || (current.e.f & INERT) === 0) {\n\t\t\t\t\t(seen ??= new Set()).add(current);\n\t\t\t\t}\n\t\t\t\tstashed.push(current);\n\t\t\t\tcurrent = current.next;\n\t\t\t}\n\n\t\t\tif (current === null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\titem = current;\n\t\t}\n\n\t\tmatched.push(item);\n\t\tprev = item;\n\t\tcurrent = item.next;\n\t}\n\n\tif (current !== null || seen !== undefined) {\n\t\tvar to_destroy = seen === undefined ? [] : array_from(seen);\n\n\t\twhile (current !== null) {\n\t\t\t// If the each block isn't inert, then inert effects are currently outroing and will be removed once the transition is finished\n\t\t\tif (is_inert || (current.e.f & INERT) === 0) {\n\t\t\t\tto_destroy.push(current);\n\t\t\t}\n\t\t\tcurrent = current.next;\n\t\t}\n\n\t\tvar destroy_length = to_destroy.length;\n\n\t\tif (destroy_length > 0) {\n\t\t\tvar controlled_anchor = (flags & EACH_IS_CONTROLLED) !== 0 && length === 0 ? anchor : null;\n\n\t\t\tif (is_animated) {\n\t\t\t\tfor (i = 0; i < destroy_length; i += 1) {\n\t\t\t\t\tto_destroy[i].a?.measure();\n\t\t\t\t}\n\n\t\t\t\tfor (i = 0; i < destroy_length; i += 1) {\n\t\t\t\t\tto_destroy[i].a?.fix();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpause_effects(state, to_destroy, controlled_anchor, items);\n\t\t}\n\t}\n\n\tif (is_animated) {\n\t\tqueue_micro_task(() => {\n\t\t\tif (to_animate === undefined) return;\n\t\t\tfor (item of to_animate) {\n\t\t\t\titem.a?.apply();\n\t\t\t}\n\t\t});\n\t}\n\n\t/** @type {Effect} */ (active_effect).first = state.first && state.first.e;\n\t/** @type {Effect} */ (active_effect).last = prev && prev.e;\n}\n\n/**\n * @param {EachItem} item\n * @param {any} value\n * @param {number} index\n * @param {number} type\n * @returns {void}\n */\nfunction update_item(item, value, index, type) {\n\tif ((type & EACH_ITEM_REACTIVE) !== 0) {\n\t\tinternal_set(item.v, value);\n\t}\n\n\tif ((type & EACH_INDEX_REACTIVE) !== 0) {\n\t\tinternal_set(/** @type {Value<number>} */ (item.i), index);\n\t} else {\n\t\titem.i = index;\n\t}\n}\n\n/**\n * @template V\n * @param {Node} anchor\n * @param {EachState} state\n * @param {EachItem | null} prev\n * @param {EachItem | null} next\n * @param {V} value\n * @param {unknown} key\n * @param {number} index\n * @param {(anchor: Node, item: V | Source<V>, index: number | Value<number>) => void} render_fn\n * @param {number} flags\n * @returns {EachItem}\n */\nfunction create_item(anchor, state, prev, next, value, key, index, render_fn, flags) {\n\tvar previous_each_item = current_each_item;\n\tvar reactive = (flags & EACH_ITEM_REACTIVE) !== 0;\n\tvar mutable = (flags & EACH_ITEM_IMMUTABLE) === 0;\n\n\tvar v = reactive ? (mutable ? mutable_source(value) : source(value)) : value;\n\tvar i = (flags & EACH_INDEX_REACTIVE) === 0 ? index : source(index);\n\n\t/** @type {EachItem} */\n\tvar item = {\n\t\ti,\n\t\tv,\n\t\tk: key,\n\t\ta: null,\n\t\t// @ts-expect-error\n\t\te: null,\n\t\tprev,\n\t\tnext\n\t};\n\n\tcurrent_each_item = item;\n\n\ttry {\n\t\titem.e = branch(() => render_fn(anchor, v, i), hydrating);\n\n\t\titem.e.prev = prev && prev.e;\n\t\titem.e.next = next && next.e;\n\n\t\tif (prev === null) {\n\t\t\tstate.first = item;\n\t\t} else {\n\t\t\tprev.next = item;\n\t\t\tprev.e.next = item.e;\n\t\t}\n\n\t\tif (next !== null) {\n\t\t\tnext.prev = item;\n\t\t\tnext.e.prev = item.e;\n\t\t}\n\n\t\treturn item;\n\t} finally {\n\t\tcurrent_each_item = previous_each_item;\n\t}\n}\n\n/**\n * @param {EachItem} item\n * @param {EachItem | null} next\n * @param {Text | Element | Comment} anchor\n */\nfunction move(item, next, anchor) {\n\tvar end = item.next ? /** @type {TemplateNode} */ (item.next.e.nodes_start) : anchor;\n\n\tvar dest = next ? /** @type {TemplateNode} */ (next.e.nodes_start) : anchor;\n\tvar node = /** @type {TemplateNode} */ (item.e.nodes_start);\n\n\twhile (node !== end) {\n\t\tvar next_node = /** @type {TemplateNode} */ (get_next_sibling(node));\n\t\tdest.before(node);\n\t\tnode = next_node;\n\t}\n}\n\n/**\n * @param {EachState} state\n * @param {EachItem | null} prev\n * @param {EachItem | null} next\n */\nfunction link(state, prev, next) {\n\tif (prev === null) {\n\t\tstate.first = next;\n\t} else {\n\t\tprev.next = next;\n\t\tprev.e.next = next && next.e;\n\t}\n\n\tif (next !== null) {\n\t\tnext.prev = prev;\n\t\tnext.e.prev = prev && prev.e;\n\t}\n}\n","/** @import { Effect, TemplateNode } from '#client' */\nimport { FILENAME, HYDRATION_ERROR } from '../../../../constants.js';\nimport { block, branch, destroy_effect } from '../../reactivity/effects.js';\nimport { hydrate_next, hydrate_node, hydrating, set_hydrate_node } from '../hydration.js';\nimport { create_fragment_from_html } from '../reconciler.js';\nimport { assign_nodes } from '../template.js';\nimport * as w from '../../warnings.js';\nimport { hash } from '../../../../utils.js';\nimport { DEV } from 'esm-env';\nimport { dev_current_component_function } from '../../runtime.js';\nimport { get_first_child, get_next_sibling } from '../operations.js';\n\n/**\n * @param {Element} element\n * @param {string | null} server_hash\n * @param {string} value\n */\nfunction check_hash(element, server_hash, value) {\n\tif (!server_hash || server_hash === hash(String(value ?? ''))) return;\n\n\tlet location;\n\n\t// @ts-expect-error\n\tconst loc = element.__svelte_meta?.loc;\n\tif (loc) {\n\t\tlocation = `near ${loc.file}:${loc.line}:${loc.column}`;\n\t} else if (dev_current_component_function?.[FILENAME]) {\n\t\tlocation = `in ${dev_current_component_function[FILENAME]}`;\n\t}\n\n\tw.hydration_html_changed(\n\t\tlocation?.replace(/\\//g, '/\\u200b') // prevent devtools trying to make it a clickable link by inserting a zero-width space\n\t);\n}\n\n/**\n * @param {Element | Text | Comment} node\n * @param {() => string} get_value\n * @param {boolean} svg\n * @param {boolean} mathml\n * @param {boolean} [skip_warning]\n * @returns {void}\n */\nexport function html(node, get_value, svg, mathml, skip_warning) {\n\tvar anchor = node;\n\n\tvar value = '';\n\n\t/** @type {Effect | undefined} */\n\tvar effect;\n\n\tblock(() => {\n\t\tif (value === (value = get_value() ?? '')) {\n\t\t\tif (hydrating) {\n\t\t\t\thydrate_next();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (effect !== undefined) {\n\t\t\tdestroy_effect(effect);\n\t\t\teffect = undefined;\n\t\t}\n\n\t\tif (value === '') return;\n\n\t\teffect = branch(() => {\n\t\t\tif (hydrating) {\n\t\t\t\t// We're deliberately not trying to repair mismatches between server and client,\n\t\t\t\t// as it's costly and error-prone (and it's an edge case to have a mismatch anyway)\n\t\t\t\tvar hash = /** @type {Comment} */ (hydrate_node).data;\n\t\t\t\tvar next = hydrate_next();\n\t\t\t\tvar last = next;\n\n\t\t\t\twhile (\n\t\t\t\t\tnext !== null &&\n\t\t\t\t\t(next.nodeType !== 8 || /** @type {Comment} */ (next).data !== '')\n\t\t\t\t) {\n\t\t\t\t\tlast = next;\n\t\t\t\t\tnext = /** @type {TemplateNode} */ (get_next_sibling(next));\n\t\t\t\t}\n\n\t\t\t\tif (next === null) {\n\t\t\t\t\tw.hydration_mismatch();\n\t\t\t\t\tthrow HYDRATION_ERROR;\n\t\t\t\t}\n\n\t\t\t\tif (DEV && !skip_warning) {\n\t\t\t\t\tcheck_hash(/** @type {Element} */ (next.parentNode), hash, value);\n\t\t\t\t}\n\n\t\t\t\tassign_nodes(hydrate_node, last);\n\t\t\t\tanchor = set_hydrate_node(next);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar html = value + '';\n\t\t\tif (svg) html = `<svg>${html}</svg>`;\n\t\t\telse if (mathml) html = `<math>${html}</math>`;\n\n\t\t\t// Don't use create_fragment_with_script_from_html here because that would mean script tags are executed.\n\t\t\t// @html is basically `.innerHTML = ...` and that doesn't execute scripts either due to security reasons.\n\t\t\t/** @type {DocumentFragment | Element} */\n\t\t\tvar node = create_fragment_from_html(html);\n\n\t\t\tif (svg || mathml) {\n\t\t\t\tnode = /** @type {Element} */ (get_first_child(node));\n\t\t\t}\n\n\t\t\tassign_nodes(\n\t\t\t\t/** @type {TemplateNode} */ (get_first_child(node)),\n\t\t\t\t/** @type {TemplateNode} */ (node.lastChild)\n\t\t\t);\n\n\t\t\tif (svg || mathml) {\n\t\t\t\twhile (get_first_child(node)) {\n\t\t\t\t\tanchor.before(/** @type {Node} */ (get_first_child(node)));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tanchor.before(node);\n\t\t\t}\n\t\t});\n\t});\n}\n","/** @import { ActionPayload } from '#client' */\nimport { effect, render_effect } from '../../reactivity/effects.js';\nimport { safe_not_equal } from '../../reactivity/equality.js';\nimport { deep_read_state, untrack } from '../../runtime.js';\n\n/**\n * @template P\n * @param {Element} dom\n * @param {(dom: Element, value?: P) => ActionPayload<P>} action\n * @param {() => P} [get_value]\n * @returns {void}\n */\nexport function action(dom, action, get_value) {\n\teffect(() => {\n\t\tvar payload = untrack(() => action(dom, get_value?.()) || {});\n\n\t\tif (get_value && payload?.update) {\n\t\t\tvar inited = false;\n\t\t\t/** @type {P} */\n\t\t\tvar prev = /** @type {any} */ ({}); // initialize with something so it's never equal on first run\n\n\t\t\trender_effect(() => {\n\t\t\t\tvar value = get_value();\n\n\t\t\t\t// Action's update method is coarse-grained, i.e. when anything in the passed value changes, update.\n\t\t\t\t// This works in legacy mode because of mutable_source being updated as a whole, but when using $state\n\t\t\t\t// together with actions and mutation, it wouldn't notice the change without a deep read.\n\t\t\t\tdeep_read_state(value);\n\n\t\t\t\tif (inited && safe_not_equal(prev, value)) {\n\t\t\t\t\tprev = value;\n\t\t\t\t\t/** @type {Function} */ (payload.update)(value);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tinited = true;\n\t\t}\n\n\t\tif (payload?.destroy) {\n\t\t\treturn () => /** @type {Function} */ (payload.destroy)();\n\t\t}\n\t});\n}\n","/** @import { Raf } from '#client' */\nimport { noop } from '../shared/utils.js';\n\nimport { BROWSER } from 'esm-env';\n\nconst now = BROWSER ? () => performance.now() : () => Date.now();\n\n/** @type {Raf} */\nexport const raf = {\n\t// don't access requestAnimationFrame eagerly outside method\n\t// this allows basic testing of user code without JSDOM\n\t// bunder will eval and remove ternary when the user's app is built\n\ttick: /** @param {any} _ */ (_) => (BROWSER ? requestAnimationFrame : noop)(_),\n\tnow: () => now(),\n\ttasks: new Set()\n};\n","/** @import { TaskCallback, Task, TaskEntry } from '#client' */\nimport { raf } from './timing.js';\n\n// TODO move this into timing.js where it probably belongs\n\n/**\n * @param {number} now\n * @returns {void}\n */\nfunction run_tasks(now) {\n\traf.tasks.forEach((task) => {\n\t\tif (!task.c(now)) {\n\t\t\traf.tasks.delete(task);\n\t\t\ttask.f();\n\t\t}\n\t});\n\n\tif (raf.tasks.size !== 0) {\n\t\traf.tick(run_tasks);\n\t}\n}\n\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n * @param {TaskCallback} callback\n * @returns {Task}\n */\nexport function loop(callback) {\n\t/** @type {TaskEntry} */\n\tlet task;\n\n\tif (raf.tasks.size === 0) {\n\t\traf.tick(run_tasks);\n\t}\n\n\treturn {\n\t\tpromise: new Promise((fulfill) => {\n\t\t\traf.tasks.add((task = { c: callback, f: fulfill }));\n\t\t}),\n\t\tabort() {\n\t\t\traf.tasks.delete(task);\n\t\t}\n\t};\n}\n","/** @import { AnimateFn, Animation, AnimationConfig, EachItem, Effect, TransitionFn, TransitionManager } from '#client' */\nimport { noop, is_function } from '../../../shared/utils.js';\nimport { effect } from '../../reactivity/effects.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tset_active_effect,\n\tset_active_reaction,\n\tuntrack\n} from '../../runtime.js';\nimport { loop } from '../../loop.js';\nimport { should_intro } from '../../render.js';\nimport { current_each_item } from '../blocks/each.js';\nimport { TRANSITION_GLOBAL, TRANSITION_IN, TRANSITION_OUT } from '../../../../constants.js';\nimport { BLOCK_EFFECT, EFFECT_RAN, EFFECT_TRANSPARENT } from '../../constants.js';\nimport { queue_micro_task } from '../task.js';\n\n/**\n * @param {Element} element\n * @param {'introstart' | 'introend' | 'outrostart' | 'outroend'} type\n * @returns {void}\n */\nfunction dispatch_event(element, type) {\n\telement.dispatchEvent(new CustomEvent(type));\n}\n\n/**\n * Converts a property to the camel-case format expected by Element.animate(), KeyframeEffect(), and KeyframeEffect.setKeyframes().\n * @param {string} style\n * @returns {string}\n */\nfunction css_property_to_camelcase(style) {\n\t// in compliance with spec\n\tif (style === 'float') return 'cssFloat';\n\tif (style === 'offset') return 'cssOffset';\n\n\t// do not rename custom @properties\n\tif (style.startsWith('--')) return style;\n\n\tconst parts = style.split('-');\n\tif (parts.length === 1) return parts[0];\n\treturn (\n\t\tparts[0] +\n\t\tparts\n\t\t\t.slice(1)\n\t\t\t.map(/** @param {any} word */ (word) => word[0].toUpperCase() + word.slice(1))\n\t\t\t.join('')\n\t);\n}\n\n/**\n * @param {string} css\n * @returns {Keyframe}\n */\nfunction css_to_keyframe(css) {\n\t/** @type {Keyframe} */\n\tconst keyframe = {};\n\tconst parts = css.split(';');\n\tfor (const part of parts) {\n\t\tconst [property, value] = part.split(':');\n\t\tif (!property || value === undefined) break;\n\n\t\tconst formatted_property = css_property_to_camelcase(property.trim());\n\t\tkeyframe[formatted_property] = value.trim();\n\t}\n\treturn keyframe;\n}\n\n/** @param {number} t */\nconst linear = (t) => t;\n\n/**\n * Called inside keyed `{#each ...}` blocks (as `$.animation(...)`). This creates an animation manager\n * and attaches it to the block, so that moves can be animated following reconciliation.\n * @template P\n * @param {Element} element\n * @param {() => AnimateFn<P | undefined>} get_fn\n * @param {(() => P) | null} get_params\n */\nexport function animation(element, get_fn, get_params) {\n\tvar item = /** @type {EachItem} */ (current_each_item);\n\n\t/** @type {DOMRect} */\n\tvar from;\n\n\t/** @type {DOMRect} */\n\tvar to;\n\n\t/** @type {Animation | undefined} */\n\tvar animation;\n\n\t/** @type {null | { position: string, width: string, height: string, transform: string }} */\n\tvar original_styles = null;\n\n\titem.a ??= {\n\t\telement,\n\t\tmeasure() {\n\t\t\tfrom = this.element.getBoundingClientRect();\n\t\t},\n\t\tapply() {\n\t\t\tanimation?.abort();\n\n\t\t\tto = this.element.getBoundingClientRect();\n\n\t\t\tif (\n\t\t\t\tfrom.left !== to.left ||\n\t\t\t\tfrom.right !== to.right ||\n\t\t\t\tfrom.top !== to.top ||\n\t\t\t\tfrom.bottom !== to.bottom\n\t\t\t) {\n\t\t\t\tconst options = get_fn()(this.element, { from, to }, get_params?.());\n\n\t\t\t\tanimation = animate(this.element, options, undefined, 1, () => {\n\t\t\t\t\tanimation?.abort();\n\t\t\t\t\tanimation = undefined;\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tfix() {\n\t\t\t// If an animation is already running, transforming the element is likely to fail,\n\t\t\t// because the styles applied by the animation take precedence. In the case of crossfade,\n\t\t\t// that means the `translate(...)` of the crossfade transition overrules the `translate(...)`\n\t\t\t// we would apply below, leading to the element jumping somewhere to the top left.\n\t\t\tif (element.getAnimations().length) return;\n\n\t\t\t// It's important to destructure these to get fixed values - the object itself has getters,\n\t\t\t// and changing the style to 'absolute' can for example influence the width.\n\t\t\tvar { position, width, height } = getComputedStyle(element);\n\n\t\t\tif (position !== 'absolute' && position !== 'fixed') {\n\t\t\t\tvar style = /** @type {HTMLElement | SVGElement} */ (element).style;\n\n\t\t\t\toriginal_styles = {\n\t\t\t\t\tposition: style.position,\n\t\t\t\t\twidth: style.width,\n\t\t\t\t\theight: style.height,\n\t\t\t\t\ttransform: style.transform\n\t\t\t\t};\n\n\t\t\t\tstyle.position = 'absolute';\n\t\t\t\tstyle.width = width;\n\t\t\t\tstyle.height = height;\n\t\t\t\tvar to = element.getBoundingClientRect();\n\n\t\t\t\tif (from.left !== to.left || from.top !== to.top) {\n\t\t\t\t\tvar transform = `translate(${from.left - to.left}px, ${from.top - to.top}px)`;\n\t\t\t\t\tstyle.transform = style.transform ? `${style.transform} ${transform}` : transform;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tunfix() {\n\t\t\tif (original_styles) {\n\t\t\t\tvar style = /** @type {HTMLElement | SVGElement} */ (element).style;\n\n\t\t\t\tstyle.position = original_styles.position;\n\t\t\t\tstyle.width = original_styles.width;\n\t\t\t\tstyle.height = original_styles.height;\n\t\t\t\tstyle.transform = original_styles.transform;\n\t\t\t}\n\t\t}\n\t};\n\n\t// in the case of a `<svelte:element>`, it's possible for `$.animation(...)` to be called\n\t// when an animation manager already exists, if the tag changes. in that case, we need to\n\t// swap out the element rather than creating a new manager, in case it happened at the same\n\t// moment as a reconciliation\n\titem.a.element = element;\n}\n\n/**\n * Called inside block effects as `$.transition(...)`. This creates a transition manager and\n * attaches it to the current effect — later, inside `pause_effect` and `resume_effect`, we\n * use this to create `intro` and `outro` transitions.\n * @template P\n * @param {number} flags\n * @param {HTMLElement} element\n * @param {() => TransitionFn<P | undefined>} get_fn\n * @param {(() => P) | null} get_params\n * @returns {void}\n */\nexport function transition(flags, element, get_fn, get_params) {\n\tvar is_intro = (flags & TRANSITION_IN) !== 0;\n\tvar is_outro = (flags & TRANSITION_OUT) !== 0;\n\tvar is_both = is_intro && is_outro;\n\tvar is_global = (flags & TRANSITION_GLOBAL) !== 0;\n\n\t/** @type {'in' | 'out' | 'both'} */\n\tvar direction = is_both ? 'both' : is_intro ? 'in' : 'out';\n\n\t/** @type {AnimationConfig | ((opts: { direction: 'in' | 'out' }) => AnimationConfig) | undefined} */\n\tvar current_options;\n\n\tvar inert = element.inert;\n\n\t/** @type {Animation | undefined} */\n\tvar intro;\n\n\t/** @type {Animation | undefined} */\n\tvar outro;\n\n\tfunction get_options() {\n\t\tvar previous_reaction = active_reaction;\n\t\tvar previous_effect = active_effect;\n\t\tset_active_reaction(null);\n\t\tset_active_effect(null);\n\t\ttry {\n\t\t\t// If a transition is still ongoing, we use the existing options rather than generating\n\t\t\t// new ones. This ensures that reversible transitions reverse smoothly, rather than\n\t\t\t// jumping to a new spot because (for example) a different `duration` was used\n\t\t\treturn (current_options ??= get_fn()(element, get_params?.() ?? /** @type {P} */ ({}), {\n\t\t\t\tdirection\n\t\t\t}));\n\t\t} finally {\n\t\t\tset_active_reaction(previous_reaction);\n\t\t\tset_active_effect(previous_effect);\n\t\t}\n\t}\n\n\t/** @type {TransitionManager} */\n\tvar transition = {\n\t\tis_global,\n\t\tin() {\n\t\t\telement.inert = inert;\n\n\t\t\tif (!is_intro) {\n\t\t\t\toutro?.abort();\n\t\t\t\toutro?.reset?.();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!is_outro) {\n\t\t\t\t// if we intro then outro then intro again, we want to abort the first intro,\n\t\t\t\t// if it's not a bidirectional transition\n\t\t\t\tintro?.abort();\n\t\t\t}\n\n\t\t\tdispatch_event(element, 'introstart');\n\n\t\t\tintro = animate(element, get_options(), outro, 1, () => {\n\t\t\t\tdispatch_event(element, 'introend');\n\n\t\t\t\t// Ensure we cancel the animation to prevent leaking\n\t\t\t\tintro?.abort();\n\t\t\t\tintro = current_options = undefined;\n\t\t\t});\n\t\t},\n\t\tout(fn) {\n\t\t\tif (!is_outro) {\n\t\t\t\tfn?.();\n\t\t\t\tcurrent_options = undefined;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement.inert = true;\n\n\t\t\tdispatch_event(element, 'outrostart');\n\n\t\t\toutro = animate(element, get_options(), intro, 0, () => {\n\t\t\t\tdispatch_event(element, 'outroend');\n\t\t\t\tfn?.();\n\t\t\t});\n\t\t},\n\t\tstop: () => {\n\t\t\tintro?.abort();\n\t\t\toutro?.abort();\n\t\t}\n\t};\n\n\tvar e = /** @type {Effect} */ (active_effect);\n\n\t(e.transitions ??= []).push(transition);\n\n\t// if this is a local transition, we only want to run it if the parent (branch) effect's\n\t// parent (block) effect is where the state change happened. we can determine that by\n\t// looking at whether the block effect is currently initializing\n\tif (is_intro && should_intro) {\n\t\tvar run = is_global;\n\n\t\tif (!run) {\n\t\t\tvar block = /** @type {Effect | null} */ (e.parent);\n\n\t\t\t// skip over transparent blocks (e.g. snippets, else-if blocks)\n\t\t\twhile (block && (block.f & EFFECT_TRANSPARENT) !== 0) {\n\t\t\t\twhile ((block = block.parent)) {\n\t\t\t\t\tif ((block.f & BLOCK_EFFECT) !== 0) break;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\trun = !block || (block.f & EFFECT_RAN) !== 0;\n\t\t}\n\n\t\tif (run) {\n\t\t\teffect(() => {\n\t\t\t\tuntrack(() => transition.in());\n\t\t\t});\n\t\t}\n\t}\n}\n\n/**\n * Animates an element, according to the provided configuration\n * @param {Element} element\n * @param {AnimationConfig | ((opts: { direction: 'in' | 'out' }) => AnimationConfig)} options\n * @param {Animation | undefined} counterpart The corresponding intro/outro to this outro/intro\n * @param {number} t2 The target `t` value — `1` for intro, `0` for outro\n * @param {(() => void)} on_finish Called after successfully completing the animation\n * @returns {Animation}\n */\nfunction animate(element, options, counterpart, t2, on_finish) {\n\tvar is_intro = t2 === 1;\n\n\tif (is_function(options)) {\n\t\t// In the case of a deferred transition (such as `crossfade`), `option` will be\n\t\t// a function rather than an `AnimationConfig`. We need to call this function\n\t\t// once the DOM has been updated...\n\t\t/** @type {Animation} */\n\t\tvar a;\n\t\tvar aborted = false;\n\n\t\tqueue_micro_task(() => {\n\t\t\tif (aborted) return;\n\t\t\tvar o = options({ direction: is_intro ? 'in' : 'out' });\n\t\t\ta = animate(element, o, counterpart, t2, on_finish);\n\t\t});\n\n\t\t// ...but we want to do so without using `async`/`await` everywhere, so\n\t\t// we return a facade that allows everything to remain synchronous\n\t\treturn {\n\t\t\tabort: () => {\n\t\t\t\taborted = true;\n\t\t\t\ta?.abort();\n\t\t\t},\n\t\t\tdeactivate: () => a.deactivate(),\n\t\t\treset: () => a.reset(),\n\t\t\tt: () => a.t()\n\t\t};\n\t}\n\n\tcounterpart?.deactivate();\n\n\tif (!options?.duration) {\n\t\ton_finish();\n\n\t\treturn {\n\t\t\tabort: noop,\n\t\t\tdeactivate: noop,\n\t\t\treset: noop,\n\t\t\tt: () => t2\n\t\t};\n\t}\n\n\tconst { delay = 0, css, tick, easing = linear } = options;\n\n\tvar keyframes = [];\n\n\tif (is_intro && counterpart === undefined) {\n\t\tif (tick) {\n\t\t\ttick(0, 1); // TODO put in nested effect, to avoid interleaved reads/writes?\n\t\t}\n\n\t\tif (css) {\n\t\t\tvar styles = css_to_keyframe(css(0, 1));\n\t\t\tkeyframes.push(styles, styles);\n\t\t}\n\t}\n\n\tvar get_t = () => 1 - t2;\n\n\t// create a dummy animation that lasts as long as the delay (but with whatever devtools\n\t// multiplier is in effect). in the common case that it is `0`, we keep it anyway so that\n\t// the CSS keyframes aren't created until the DOM is updated\n\tvar animation = element.animate(keyframes, { duration: delay });\n\n\tanimation.onfinish = () => {\n\t\t// for bidirectional transitions, we start from the current position,\n\t\t// rather than doing a full intro/outro\n\t\tvar t1 = counterpart?.t() ?? 1 - t2;\n\t\tcounterpart?.abort();\n\n\t\tvar delta = t2 - t1;\n\t\tvar duration = /** @type {number} */ (options.duration) * Math.abs(delta);\n\t\tvar keyframes = [];\n\n\t\tif (duration > 0) {\n\t\t\tif (css) {\n\t\t\t\tvar n = Math.ceil(duration / (1000 / 60)); // `n` must be an integer, or we risk missing the `t2` value\n\n\t\t\t\tfor (var i = 0; i <= n; i += 1) {\n\t\t\t\t\tvar t = t1 + delta * easing(i / n);\n\t\t\t\t\tvar styles = css(t, 1 - t);\n\t\t\t\t\tkeyframes.push(css_to_keyframe(styles));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tget_t = () => {\n\t\t\t\tvar time = /** @type {number} */ (\n\t\t\t\t\t/** @type {globalThis.Animation} */ (animation).currentTime\n\t\t\t\t);\n\n\t\t\t\treturn t1 + delta * easing(time / duration);\n\t\t\t};\n\n\t\t\tif (tick) {\n\t\t\t\tloop(() => {\n\t\t\t\t\tif (animation.playState !== 'running') return false;\n\n\t\t\t\t\tvar t = get_t();\n\t\t\t\t\ttick(t, 1 - t);\n\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tanimation = element.animate(keyframes, { duration, fill: 'forwards' });\n\n\t\tanimation.onfinish = () => {\n\t\t\tget_t = () => t2;\n\t\t\ttick?.(t2, 1 - t2);\n\t\t\ton_finish();\n\t\t};\n\t};\n\n\treturn {\n\t\tabort: () => {\n\t\t\tif (animation) {\n\t\t\t\tanimation.cancel();\n\t\t\t\t// This prevents memory leaks in Chromium\n\t\t\t\tanimation.effect = null;\n\t\t\t\t// This prevents onfinish to be launched after cancel(),\n\t\t\t\t// which can happen in some rare cases\n\t\t\t\t// see https://github.com/sveltejs/svelte/issues/13681\n\t\t\t\tanimation.onfinish = noop;\n\t\t\t}\n\t\t},\n\t\tdeactivate: () => {\n\t\t\ton_finish = noop;\n\t\t},\n\t\treset: () => {\n\t\t\tif (t2 === 0) {\n\t\t\t\ttick?.(1, 0);\n\t\t\t}\n\t\t},\n\t\tt: () => get_t()\n\t};\n}\n","import { DEV } from 'esm-env';\nimport { render_effect, teardown } from '../../../reactivity/effects.js';\nimport { listen_to_event_and_reset_event, without_reactive_context } from './shared.js';\nimport * as e from '../../../errors.js';\nimport { is } from '../../../proxy.js';\nimport { queue_micro_task } from '../../task.js';\nimport { hydrating } from '../../hydration.js';\nimport { is_runes } from '../../../runtime.js';\n\n/**\n * @param {HTMLInputElement} input\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_value(input, get, set = get) {\n\tvar runes = is_runes();\n\n\tlisten_to_event_and_reset_event(input, 'input', () => {\n\t\tif (DEV && input.type === 'checkbox') {\n\t\t\t// TODO should this happen in prod too?\n\t\t\te.bind_invalid_checkbox_value();\n\t\t}\n\n\t\t/** @type {unknown} */\n\t\tvar value = is_numberlike_input(input) ? to_number(input.value) : input.value;\n\t\tset(value);\n\n\t\t// In runes mode, respect any validation in accessors (doesn't apply in legacy mode,\n\t\t// because we use mutable state which ensures the render effect always runs)\n\t\tif (runes && value !== (value = get())) {\n\t\t\t// @ts-expect-error the value is coerced on assignment\n\t\t\tinput.value = value ?? '';\n\t\t}\n\t});\n\n\trender_effect(() => {\n\t\tif (DEV && input.type === 'checkbox') {\n\t\t\t// TODO should this happen in prod too?\n\t\t\te.bind_invalid_checkbox_value();\n\t\t}\n\n\t\tvar value = get();\n\n\t\t// If we are hydrating and the value has since changed, then use the update value\n\t\t// from the input instead.\n\t\tif (hydrating && input.defaultValue !== input.value) {\n\t\t\tset(input.value);\n\t\t\treturn;\n\t\t}\n\n\t\tif (is_numberlike_input(input) && value === to_number(input.value)) {\n\t\t\t// handles 0 vs 00 case (see https://github.com/sveltejs/svelte/issues/9959)\n\t\t\treturn;\n\t\t}\n\n\t\tif (input.type === 'date' && !value && !input.value) {\n\t\t\t// Handles the case where a temporarily invalid date is set (while typing, for example with a leading 0 for the day)\n\t\t\t// and prevents this state from clearing the other parts of the date input (see https://github.com/sveltejs/svelte/issues/7897)\n\t\t\treturn;\n\t\t}\n\n\t\t// don't set the value of the input if it's the same to allow\n\t\t// minlength to work properly\n\t\tif (value !== input.value) {\n\t\t\t// @ts-expect-error the value is coerced on assignment\n\t\t\tinput.value = value ?? '';\n\t\t}\n\t});\n}\n\n/** @type {Set<HTMLInputElement[]>} */\nconst pending = new Set();\n\n/**\n * @param {HTMLInputElement[]} inputs\n * @param {null | [number]} group_index\n * @param {HTMLInputElement} input\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_group(inputs, group_index, input, get, set = get) {\n\tvar is_checkbox = input.getAttribute('type') === 'checkbox';\n\tvar binding_group = inputs;\n\n\t// needs to be let or related code isn't treeshaken out if it's always false\n\tlet hydration_mismatch = false;\n\n\tif (group_index !== null) {\n\t\tfor (var index of group_index) {\n\t\t\t// @ts-expect-error\n\t\t\tbinding_group = binding_group[index] ??= [];\n\t\t}\n\t}\n\n\tbinding_group.push(input);\n\n\tlisten_to_event_and_reset_event(\n\t\tinput,\n\t\t'change',\n\t\t() => {\n\t\t\t// @ts-ignore\n\t\t\tvar value = input.__value;\n\n\t\t\tif (is_checkbox) {\n\t\t\t\tvalue = get_binding_group_value(binding_group, value, input.checked);\n\t\t\t}\n\n\t\t\tset(value);\n\t\t},\n\t\t// TODO better default value handling\n\t\t() => set(is_checkbox ? [] : null)\n\t);\n\n\trender_effect(() => {\n\t\tvar value = get();\n\n\t\t// If we are hydrating and the value has since changed, then use the update value\n\t\t// from the input instead.\n\t\tif (hydrating && input.defaultChecked !== input.checked) {\n\t\t\thydration_mismatch = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (is_checkbox) {\n\t\t\tvalue = value || [];\n\t\t\t// @ts-ignore\n\t\t\tinput.checked = value.includes(input.__value);\n\t\t} else {\n\t\t\t// @ts-ignore\n\t\t\tinput.checked = is(input.__value, value);\n\t\t}\n\t});\n\n\tteardown(() => {\n\t\tvar index = binding_group.indexOf(input);\n\n\t\tif (index !== -1) {\n\t\t\tbinding_group.splice(index, 1);\n\t\t}\n\t});\n\n\tif (!pending.has(binding_group)) {\n\t\tpending.add(binding_group);\n\n\t\tqueue_micro_task(() => {\n\t\t\t// necessary to maintain binding group order in all insertion scenarios\n\t\t\tbinding_group.sort((a, b) => (a.compareDocumentPosition(b) === 4 ? -1 : 1));\n\t\t\tpending.delete(binding_group);\n\t\t});\n\t}\n\n\tqueue_micro_task(() => {\n\t\tif (hydration_mismatch) {\n\t\t\tvar value;\n\n\t\t\tif (is_checkbox) {\n\t\t\t\tvalue = get_binding_group_value(binding_group, value, input.checked);\n\t\t\t} else {\n\t\t\t\tvar hydration_input = binding_group.find((input) => input.checked);\n\t\t\t\t// @ts-ignore\n\t\t\t\tvalue = hydration_input?.__value;\n\t\t\t}\n\n\t\t\tset(value);\n\t\t}\n\t});\n}\n\n/**\n * @param {HTMLInputElement} input\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_checked(input, get, set = get) {\n\tlisten_to_event_and_reset_event(input, 'change', () => {\n\t\tvar value = input.checked;\n\t\tset(value);\n\t});\n\n\tif (get() == undefined) {\n\t\tset(false);\n\t}\n\n\trender_effect(() => {\n\t\tvar value = get();\n\t\tinput.checked = Boolean(value);\n\t});\n}\n\n/**\n * @template V\n * @param {Array<HTMLInputElement>} group\n * @param {V} __value\n * @param {boolean} checked\n * @returns {V[]}\n */\nfunction get_binding_group_value(group, __value, checked) {\n\tvar value = new Set();\n\n\tfor (var i = 0; i < group.length; i += 1) {\n\t\tif (group[i].checked) {\n\t\t\t// @ts-ignore\n\t\t\tvalue.add(group[i].__value);\n\t\t}\n\t}\n\n\tif (!checked) {\n\t\tvalue.delete(__value);\n\t}\n\n\treturn Array.from(value);\n}\n\n/**\n * @param {HTMLInputElement} input\n */\nfunction is_numberlike_input(input) {\n\tvar type = input.type;\n\treturn type === 'number' || type === 'range';\n}\n\n/**\n * @param {string} value\n */\nfunction to_number(value) {\n\treturn value === '' ? null : +value;\n}\n\n/**\n * @param {HTMLInputElement} input\n * @param {() => FileList | null} get\n * @param {(value: FileList | null) => void} set\n */\nexport function bind_files(input, get, set = get) {\n\tlisten_to_event_and_reset_event(input, 'change', () => {\n\t\tset(input.files);\n\t});\n\n\trender_effect(() => {\n\t\tinput.files = get();\n\t});\n}\n","import { escape_html } from '../../escaping.js';\n\n/**\n * `<div translate={false}>` should be rendered as `<div translate=\"no\">` and _not_\n * `<div translate=\"false\">`, which is equivalent to `<div translate=\"yes\">`. There\n * may be other odd cases that need to be added to this list in future\n * @type {Record<string, Map<any, string>>}\n */\nconst replacements = {\n\ttranslate: new Map([\n\t\t[true, 'yes'],\n\t\t[false, 'no']\n\t])\n};\n\n/**\n * @template V\n * @param {string} name\n * @param {V} value\n * @param {boolean} [is_boolean]\n * @returns {string}\n */\nexport function attr(name, value, is_boolean = false) {\n\tif (value == null || (!value && is_boolean) || (value === '' && name === 'class')) return '';\n\tconst normalized = (name in replacements && replacements[name].get(value)) || value;\n\tconst assignment = is_boolean ? '' : `=\"${escape_html(normalized, true)}\"`;\n\treturn ` ${name}${assignment}`;\n}\n","import { writable } from 'svelte/store';\nexport const storeHighlightJs = writable(undefined);\n// TODO: add support for other highlighters here in the future\n","export function clipboard(node, args) {\n if (!window.isSecureContext) {\n console.error('Clipboard action failed: app not running in secure context, see: https://developer.mozilla.org/en-US/docs/Web/API/Clipboard');\n return {};\n }\n const fireCopyCompleteEvent = () => {\n node.dispatchEvent(new CustomEvent('copyComplete'));\n };\n const onClick = () => {\n // Handle `data-clipboard` target based on object key\n if (typeof args === 'object') {\n // Element Inner HTML\n if ('element' in args) {\n const element = document.querySelector(`[data-clipboard=\"${args.element}\"]`);\n if (!element)\n throw new Error(`Missing HTMLElement with an attribute of [data-clipboard=\"${args.element}\"]`);\n copyToClipboard(element.innerHTML, 'text/html').then(fireCopyCompleteEvent);\n return;\n }\n // Form Input Value\n if ('input' in args) {\n const input = document.querySelector(`[data-clipboard=\"${args.input}\"]`);\n if (!input)\n throw new Error(`Missing HTMLInputElement with an attribute of [data-clipboard=\"${args.input}\"]`);\n copyToClipboard(input.value).then(fireCopyCompleteEvent);\n return;\n }\n }\n // Handle everything else.\n copyToClipboard(args).then(fireCopyCompleteEvent);\n };\n // Event Listener\n node.addEventListener('click', onClick);\n // Lifecycle\n return {\n update(newArgs) {\n args = newArgs;\n },\n destroy() {\n node.removeEventListener('click', onClick);\n }\n };\n}\n// Shared copy method\nasync function copyToClipboard(data, mimeType = 'text/plain') {\n if (navigator.clipboard.write) {\n await navigator.clipboard.write([\n new ClipboardItem({\n [mimeType]: new Blob([data], {\n type: mimeType\n }),\n ['text/plain']: new Blob([data], {\n type: 'text/plain'\n })\n })\n ]);\n }\n else {\n // fallback since .writeText has wider browser support\n await new Promise((resolve) => {\n resolve(navigator.clipboard.writeText(String(data)));\n });\n }\n}\n","/** @import { BlurParams, CrossfadeParams, DrawParams, FadeParams, FlyParams, ScaleParams, SlideParams, TransitionConfig } from './public' */\n/** @param {number} x */\nconst linear = (x) => x;\n\n/** @param {number} t */\nfunction cubic_out(t) {\n\tconst f = t - 1.0;\n\treturn f * f * f + 1.0;\n}\n\n/**\n * @param {number} t\n * @returns {number}\n */\nfunction cubic_in_out(t) {\n\treturn t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\n\n/** @param {number | string} value\n * @returns {[number, string]}\n */\nfunction split_css_unit(value) {\n\tconst split = typeof value === 'string' && value.match(/^\\s*(-?[\\d.]+)([^\\s]*)\\s*$/);\n\treturn split ? [parseFloat(split[1]), split[2] || 'px'] : [/** @type {number} */ (value), 'px'];\n}\n\n/**\n * Animates a `blur` filter alongside an element's opacity.\n *\n * @param {Element} node\n * @param {BlurParams} [params]\n * @returns {TransitionConfig}\n */\nexport function blur(\n\tnode,\n\t{ delay = 0, duration = 400, easing = cubic_in_out, amount = 5, opacity = 0 } = {}\n) {\n\tconst style = getComputedStyle(node);\n\tconst target_opacity = +style.opacity;\n\tconst f = style.filter === 'none' ? '' : style.filter;\n\tconst od = target_opacity * (1 - opacity);\n\tconst [value, unit] = split_css_unit(amount);\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing,\n\t\tcss: (_t, u) => `opacity: ${target_opacity - od * u}; filter: ${f} blur(${u * value}${unit});`\n\t};\n}\n\n/**\n * Animates the opacity of an element from 0 to the current opacity for `in` transitions and from the current opacity to 0 for `out` transitions.\n *\n * @param {Element} node\n * @param {FadeParams} [params]\n * @returns {TransitionConfig}\n */\nexport function fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n\tconst o = +getComputedStyle(node).opacity;\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing,\n\t\tcss: (t) => `opacity: ${t * o}`\n\t};\n}\n\n/**\n * Animates the x and y positions and the opacity of an element. `in` transitions animate from the provided values, passed as parameters to the element's default values. `out` transitions animate from the element's default values to the provided values.\n *\n * @param {Element} node\n * @param {FlyParams} [params]\n * @returns {TransitionConfig}\n */\nexport function fly(\n\tnode,\n\t{ delay = 0, duration = 400, easing = cubic_out, x = 0, y = 0, opacity = 0 } = {}\n) {\n\tconst style = getComputedStyle(node);\n\tconst target_opacity = +style.opacity;\n\tconst transform = style.transform === 'none' ? '' : style.transform;\n\tconst od = target_opacity * (1 - opacity);\n\tconst [x_value, x_unit] = split_css_unit(x);\n\tconst [y_value, y_unit] = split_css_unit(y);\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing,\n\t\tcss: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x_value}${x_unit}, ${(1 - t) * y_value}${y_unit});\n\t\t\topacity: ${target_opacity - od * u}`\n\t};\n}\n\n/**\n * Slides an element in and out.\n *\n * @param {Element} node\n * @param {SlideParams} [params]\n * @returns {TransitionConfig}\n */\nexport function slide(node, { delay = 0, duration = 400, easing = cubic_out, axis = 'y' } = {}) {\n\tconst style = getComputedStyle(node);\n\tconst opacity = +style.opacity;\n\tconst primary_property = axis === 'y' ? 'height' : 'width';\n\tconst primary_property_value = parseFloat(style[primary_property]);\n\tconst secondary_properties = axis === 'y' ? ['top', 'bottom'] : ['left', 'right'];\n\tconst capitalized_secondary_properties = secondary_properties.map(\n\t\t(e) => /** @type {'Left' | 'Right' | 'Top' | 'Bottom'} */ (`${e[0].toUpperCase()}${e.slice(1)}`)\n\t);\n\tconst padding_start_value = parseFloat(style[`padding${capitalized_secondary_properties[0]}`]);\n\tconst padding_end_value = parseFloat(style[`padding${capitalized_secondary_properties[1]}`]);\n\tconst margin_start_value = parseFloat(style[`margin${capitalized_secondary_properties[0]}`]);\n\tconst margin_end_value = parseFloat(style[`margin${capitalized_secondary_properties[1]}`]);\n\tconst border_width_start_value = parseFloat(\n\t\tstyle[`border${capitalized_secondary_properties[0]}Width`]\n\t);\n\tconst border_width_end_value = parseFloat(\n\t\tstyle[`border${capitalized_secondary_properties[1]}Width`]\n\t);\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing,\n\t\tcss: (t) =>\n\t\t\t'overflow: hidden;' +\n\t\t\t`opacity: ${Math.min(t * 20, 1) * opacity};` +\n\t\t\t`${primary_property}: ${t * primary_property_value}px;` +\n\t\t\t`padding-${secondary_properties[0]}: ${t * padding_start_value}px;` +\n\t\t\t`padding-${secondary_properties[1]}: ${t * padding_end_value}px;` +\n\t\t\t`margin-${secondary_properties[0]}: ${t * margin_start_value}px;` +\n\t\t\t`margin-${secondary_properties[1]}: ${t * margin_end_value}px;` +\n\t\t\t`border-${secondary_properties[0]}-width: ${t * border_width_start_value}px;` +\n\t\t\t`border-${secondary_properties[1]}-width: ${t * border_width_end_value}px;`\n\t};\n}\n\n/**\n * Animates the opacity and scale of an element. `in` transitions animate from an element's current (default) values to the provided values, passed as parameters. `out` transitions animate from the provided values to an element's default values.\n *\n * @param {Element} node\n * @param {ScaleParams} [params]\n * @returns {TransitionConfig}\n */\nexport function scale(\n\tnode,\n\t{ delay = 0, duration = 400, easing = cubic_out, start = 0, opacity = 0 } = {}\n) {\n\tconst style = getComputedStyle(node);\n\tconst target_opacity = +style.opacity;\n\tconst transform = style.transform === 'none' ? '' : style.transform;\n\tconst sd = 1 - start;\n\tconst od = target_opacity * (1 - opacity);\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing,\n\t\tcss: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - sd * u});\n\t\t\topacity: ${target_opacity - od * u}\n\t\t`\n\t};\n}\n\n/**\n * Animates the stroke of an SVG element, like a snake in a tube. `in` transitions begin with the path invisible and draw the path to the screen over time. `out` transitions start in a visible state and gradually erase the path. `draw` only works with elements that have a `getTotalLength` method, like `<path>` and `<polyline>`.\n *\n * @param {SVGElement & { getTotalLength(): number }} node\n * @param {DrawParams} [params]\n * @returns {TransitionConfig}\n */\nexport function draw(node, { delay = 0, speed, duration, easing = cubic_in_out } = {}) {\n\tlet len = node.getTotalLength();\n\tconst style = getComputedStyle(node);\n\tif (style.strokeLinecap !== 'butt') {\n\t\tlen += parseInt(style.strokeWidth);\n\t}\n\tif (duration === undefined) {\n\t\tif (speed === undefined) {\n\t\t\tduration = 800;\n\t\t} else {\n\t\t\tduration = len / speed;\n\t\t}\n\t} else if (typeof duration === 'function') {\n\t\tduration = duration(len);\n\t}\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing,\n\t\tcss: (_, u) => `\n\t\t\tstroke-dasharray: ${len};\n\t\t\tstroke-dashoffset: ${u * len};\n\t\t`\n\t};\n}\n\n/**\n * @template T\n * @template S\n * @param {T} tar\n * @param {S} src\n * @returns {T & S}\n */\nfunction assign(tar, src) {\n\t// @ts-ignore\n\tfor (const k in src) tar[k] = src[k];\n\treturn /** @type {T & S} */ (tar);\n}\n\n/**\n * The `crossfade` function creates a pair of [transitions](https://svelte.dev/docs/svelte/transition) called `send` and `receive`. When an element is 'sent', it looks for a corresponding element being 'received', and generates a transition that transforms the element to its counterpart's position and fades it out. When an element is 'received', the reverse happens. If there is no counterpart, the `fallback` transition is used.\n *\n * @param {CrossfadeParams & {\n * \tfallback?: (node: Element, params: CrossfadeParams, intro: boolean) => TransitionConfig;\n * }} params\n * @returns {[(node: any, params: CrossfadeParams & { key: any; }) => () => TransitionConfig, (node: any, params: CrossfadeParams & { key: any; }) => () => TransitionConfig]}\n */\nexport function crossfade({ fallback, ...defaults }) {\n\t/** @type {Map<any, Element>} */\n\tconst to_receive = new Map();\n\t/** @type {Map<any, Element>} */\n\tconst to_send = new Map();\n\n\t/**\n\t * @param {Element} from_node\n\t * @param {Element} node\n\t * @param {CrossfadeParams} params\n\t * @returns {TransitionConfig}\n\t */\n\tfunction crossfade(from_node, node, params) {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = /** @param {number} d */ (d) => Math.sqrt(d) * 30,\n\t\t\teasing = cubic_out\n\t\t} = assign(assign({}, defaults), params);\n\t\tconst from = from_node.getBoundingClientRect();\n\t\tconst to = node.getBoundingClientRect();\n\t\tconst dx = from.left - to.left;\n\t\tconst dy = from.top - to.top;\n\t\tconst dw = from.width / to.width;\n\t\tconst dh = from.height / to.height;\n\t\tconst d = Math.sqrt(dx * dx + dy * dy);\n\t\tconst style = getComputedStyle(node);\n\t\tconst transform = style.transform === 'none' ? '' : style.transform;\n\t\tconst opacity = +style.opacity;\n\t\treturn {\n\t\t\tdelay,\n\t\t\tduration: typeof duration === 'function' ? duration(d) : duration,\n\t\t\teasing,\n\t\t\tcss: (t, u) => `\n\t\t\t opacity: ${t * opacity};\n\t\t\t transform-origin: top left;\n\t\t\t transform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${\n\t\t\t\t\t\tt + (1 - t) * dh\n\t\t\t\t\t});\n\t\t `\n\t\t};\n\t}\n\n\t/**\n\t * @param {Map<any, Element>} items\n\t * @param {Map<any, Element>} counterparts\n\t * @param {boolean} intro\n\t * @returns {(node: any, params: CrossfadeParams & { key: any; }) => () => TransitionConfig}\n\t */\n\tfunction transition(items, counterparts, intro) {\n\t\t// @ts-expect-error TODO improve typings (are the public types wrong?)\n\t\treturn (node, params) => {\n\t\t\titems.set(params.key, node);\n\t\t\treturn () => {\n\t\t\t\tif (counterparts.has(params.key)) {\n\t\t\t\t\tconst other_node = counterparts.get(params.key);\n\t\t\t\t\tcounterparts.delete(params.key);\n\t\t\t\t\treturn crossfade(/** @type {Element} */ (other_node), node, params);\n\t\t\t\t}\n\t\t\t\t// if the node is disappearing altogether\n\t\t\t\t// (i.e. wasn't claimed by the other list)\n\t\t\t\t// then we need to supply an outro\n\t\t\t\titems.delete(params.key);\n\t\t\t\treturn fallback && fallback(node, params, intro);\n\t\t\t};\n\t\t};\n\t}\n\treturn [transition(to_send, to_receive, false), transition(to_receive, to_send, true)];\n}\n","<script context=\"module\">import { slide } from \"svelte/transition\";\nimport { prefersReducedMotionStore } from \"../../index.js\";\n</script>\n\n<script generics=\"TransitionIn extends Transition = SlideTransition, TransitionOut extends Transition = SlideTransition\">import { writable } from \"svelte/store\";\nimport { setContext } from \"svelte\";\nexport let autocollapse = false;\nexport let width = \"w-full\";\nexport let spacing = \"space-y-1\";\nexport let disabled = false;\nexport let padding = \"py-2 px-4\";\nexport let hover = \"hover:bg-primary-hover-token\";\nexport let rounded = \"rounded-container-token\";\nexport let caretOpen = \"rotate-180\";\nexport let caretClosed = \"\";\nexport let regionControl = \"\";\nexport let regionPanel = \"space-y-4\";\nexport let regionCaret = \"\";\nexport let transitions = !$prefersReducedMotionStore;\nexport let transitionIn = slide;\nexport let transitionInParams = { duration: 200 };\nexport let transitionOut = slide;\nexport let transitionOutParams = { duration: 200 };\nconst active = writable(null);\nsetContext(\"active\", active);\nsetContext(\"autocollapse\", autocollapse);\nsetContext(\"disabled\", disabled);\nsetContext(\"padding\", padding);\nsetContext(\"hover\", hover);\nsetContext(\"rounded\", rounded);\nsetContext(\"caretOpen\", caretOpen);\nsetContext(\"caretClosed\", caretClosed);\nsetContext(\"regionControl\", regionControl);\nsetContext(\"regionPanel\", regionPanel);\nsetContext(\"regionCaret\", regionCaret);\nsetContext(\"transitions\", transitions);\nsetContext(\"transitionIn\", transitionIn);\nsetContext(\"transitionInParams\", transitionInParams);\nsetContext(\"transitionOut\", transitionOut);\nsetContext(\"transitionOutParams\", transitionOutParams);\n$:\n classesBase = `${width} ${spacing} ${$$props.class ?? \"\"}`;\n</script>\n\n<!-- @component The Accordion parent element. -->\n\n<div class=\"accordion {classesBase}\" data-testid=\"accordion\">\n\t<slot />\n</div>\n","// Transitions ---\nexport function dynamicTransition(node, dynParams) {\n const { transition, params, enabled } = dynParams;\n if (enabled)\n return transition(node, params);\n // it's better to just set the `duration` to 0 to prevent flickering\n if ('duration' in params)\n return transition(node, { duration: 0 });\n // if the transition doesn't provide a `duration` prop, then we'll just return this as a last resort\n return { duration: 0 };\n}\n","<script>import { createEventDispatcher, getContext } from \"svelte\";\nimport { dynamicTransition } from \"../../internal/transitions.js\";\nconst dispatch = createEventDispatcher();\nexport let open = false;\nexport let id = String(Math.random());\nconst cBase = \"\";\nconst cControl = \"text-start w-full flex items-center space-x-4\";\nconst cControlIcons = \"fill-current w-3 transition-transform duration-[200ms]\";\nconst cPanel = \"\";\nexport let autocollapse = getContext(\"autocollapse\");\nexport let active = getContext(\"active\");\nexport let disabled = getContext(\"disabled\");\nexport let padding = getContext(\"padding\");\nexport let hover = getContext(\"hover\");\nexport let rounded = getContext(\"rounded\");\nexport let caretOpen = getContext(\"caretOpen\");\nexport let caretClosed = getContext(\"caretClosed\");\nexport let regionControl = getContext(\"regionControl\");\nexport let regionPanel = getContext(\"regionPanel\");\nexport let regionCaret = getContext(\"regionCaret\");\nexport let transitions = getContext(\"transitions\");\nexport let transitionIn = getContext(\"transitionIn\");\nexport let transitionInParams = getContext(\"transitionInParams\");\nexport let transitionOut = getContext(\"transitionOut\");\nexport let transitionOutParams = getContext(\"transitionOutParams\");\nconst svgCaretIcon = `\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\">\n\t\t\t<path d=\"M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\" />\n\t\t</svg>`;\nfunction setActive(event) {\n if (autocollapse === true) {\n active.set(id);\n } else {\n open = !open;\n }\n onToggle(event);\n}\nfunction onToggle(event) {\n const currentOpenState = autocollapse ? $active === id : open;\n dispatch(\"toggle\", {\n event,\n id,\n panelId: `accordion-panel-${id}`,\n open: currentOpenState,\n autocollapse\n });\n}\nif (autocollapse && open)\n setActive();\n$:\n if (open && autocollapse)\n setActive();\n$:\n openState = autocollapse ? $active === id : open;\n$:\n classesBase = `${cBase} ${$$props.class ?? \"\"}`;\n$:\n classesControl = `${cControl} ${padding} ${hover} ${rounded} ${regionControl}`;\n$:\n classesCaretState = openState ? caretOpen : caretClosed;\n$:\n classesControlCaret = `${cControlIcons} ${regionCaret} ${classesCaretState}`;\n$:\n classesControlIcons = `${cControlIcons} ${regionCaret}`;\n$:\n classesPanel = `${cPanel} ${padding} ${rounded} ${regionPanel}`;\n</script>\n\n<!-- @component The Accordion child element. -->\n\n<div class=\"accordion-item {classesBase}\" data-testid=\"accordion-item\">\n\t<!-- Control -->\n\t<button\n\t\ttype=\"button\"\n\t\tclass=\"accordion-control {classesControl}\"\n\t\t{id}\n\t\ton:click={setActive}\n\t\ton:click\n\t\ton:keydown\n\t\ton:keyup\n\t\ton:keypress\n\t\taria-expanded={openState}\n\t\taria-controls=\"accordion-panel-{id}\"\n\t\t{disabled}\n\t>\n\t\t<!-- Lead -->\n\t\t{#if $$slots.lead}\n\t\t\t<div class=\"accordion-lead\">\n\t\t\t\t<slot name=\"lead\" />\n\t\t\t</div>\n\t\t{/if}\n\t\t<!-- Summary -->\n\t\t<div class=\"accordion-summary flex-1\">\n\t\t\t<slot name=\"summary\">(summary)</slot>\n\t\t</div>\n\t\t<!-- Icons -->\n\t\t{#if $$slots.iconClosed || $$slots.iconOpen}\n\t\t\t<!-- Custom -->\n\t\t\t<!-- If a custom icon is provided, do not use rotation -->\n\t\t\t<div class=\"accordion-summary-icons {classesControlIcons}\">\n\t\t\t\t{#if openState}\n\t\t\t\t\t<slot name=\"iconClosed\">{@html svgCaretIcon}</slot>\n\t\t\t\t{:else}\n\t\t\t\t\t<slot name=\"iconOpen\">{@html svgCaretIcon}</slot>\n\t\t\t\t{/if}\n\t\t\t</div>\n\t\t{:else}\n\t\t\t<!-- SVG Caret -->\n\t\t\t<div class=\"accordion-summary-caret {classesControlCaret}\">{@html svgCaretIcon}</div>\n\t\t{/if}\n\t</button>\n\t<!-- Panel -->\n\t{#if openState}\n\t\t<div\n\t\t\tclass=\"accordion-panel {classesPanel}\"\n\t\t\tid=\"accordion-panel-{id}\"\n\t\t\tin:dynamicTransition|local={{ transition: transitionIn, params: transitionInParams, enabled: transitions }}\n\t\t\tout:dynamicTransition|local={{ transition: transitionOut, params: transitionOutParams, enabled: transitions }}\n\t\t\trole=\"region\"\n\t\t\taria-hidden={!openState}\n\t\t\taria-labelledby={id}\n\t\t>\n\t\t\t<slot name=\"content\">(content)</slot>\n\t\t</div>\n\t{/if}\n</div>\n","<script context=\"module\">import { fade } from \"svelte/transition\";\nimport { prefersReducedMotionStore } from \"../../index.js\";\n</script>\n\n<script generics=\"TransitionIn extends Transition = FadeTransition, TransitionOut extends Transition = FadeTransition\">import { createEventDispatcher, setContext } from \"svelte\";\nimport { writable } from \"svelte/store\";\nimport { dynamicTransition } from \"../../internal/transitions.js\";\nconst dispatch = createEventDispatcher();\nexport let gap = \"gap-4\";\nexport let stepTerm = \"Step\";\nexport let badge = \"variant-filled-surface\";\nexport let active = \"variant-filled\";\nexport let border = \"border-surface-400-500-token\";\nexport let start = 0;\nexport let justify = \"justify-between\";\nexport let buttonBack = \"variant-ghost\";\nexport let buttonBackType = \"button\";\nexport let buttonBackLabel = \"← Back\";\nexport let buttonNext = \"variant-filled\";\nexport let buttonNextType = \"button\";\nexport let buttonNextLabel = \"Next →\";\nexport let buttonComplete = \"variant-filled-primary\";\nexport let buttonCompleteType = \"button\";\nexport let buttonCompleteLabel = \"Complete\";\nexport let regionHeader = \"\";\nexport let regionContent = \"\";\nexport let transitions = !$prefersReducedMotionStore;\nexport let transitionIn = fade;\nexport let transitionInParams = { duration: 100 };\nexport let transitionOut = fade;\nexport let transitionOutParams = { duration: 100 };\nlet state = writable({ current: start, total: 0 });\nasync function onNext(locked, stepIndex) {\n await new Promise((resolve) => setTimeout(resolve));\n if (locked)\n return;\n $state.current++;\n dispatch(\"next\", { step: stepIndex, state: $state });\n dispatch(\"step\", { step: stepIndex, state: $state });\n}\nfunction onBack(stepIndex) {\n $state.current--;\n dispatch(\"back\", { step: stepIndex, state: $state });\n dispatch(\"step\", { step: stepIndex, state: $state });\n}\nfunction onComplete(stepIndex) {\n dispatch(\"complete\", { step: stepIndex, state: $state });\n}\nsetContext(\"state\", state);\nsetContext(\"stepTerm\", stepTerm);\nsetContext(\"gap\", gap);\nsetContext(\"justify\", justify);\nsetContext(\"onNext\", onNext);\nsetContext(\"onBack\", onBack);\nsetContext(\"onComplete\", onComplete);\nsetContext(\"buttonBack\", buttonBack);\nsetContext(\"buttonBackType\", buttonBackType);\nsetContext(\"buttonBackLabel\", buttonBackLabel);\nsetContext(\"buttonNext\", buttonNext);\nsetContext(\"buttonNextType\", buttonNextType);\nsetContext(\"buttonNextLabel\", buttonNextLabel);\nsetContext(\"buttonComplete\", buttonComplete);\nsetContext(\"buttonCompleteType\", buttonCompleteType);\nsetContext(\"buttonCompleteLabel\", buttonCompleteLabel);\nsetContext(\"transitions\", transitions);\nsetContext(\"transitionIn\", transitionIn);\nsetContext(\"transitionInParams\", transitionInParams);\nsetContext(\"transitionOut\", transitionOut);\nsetContext(\"transitionOutParams\", transitionOutParams);\nconst cBase = \"space-y-4\";\nconst cHeader = \"flex items-center border-t mt-[15px]\";\nconst cHeaderStep = \"-mt-[15px] transition-all duration-300\";\nconst cContent = \"\";\n$:\n isActive = (step) => step === $state.current;\n$:\n classesBase = `${cBase} ${$$props.class ?? \"\"}`;\n$:\n classesHeader = `${cHeader} ${border} ${gap} ${regionHeader}`;\n$:\n classesHeaderStep = `${cHeaderStep}`;\n$:\n classesBadge = (step) => isActive(step) ? active : badge;\n$:\n classesContent = `${cContent} ${regionContent}`;\n</script>\n\n<div class=\"stepper {classesBase}\" data-testid=\"stepper\">\n\t<!-- Header -->\n\t{#if $state.total}\n\t\t<header\n\t\t\tclass=\"stepper-header {classesHeader}\"\n\t\t\tin:dynamicTransition|local={{ transition: transitionIn, params: transitionInParams, enabled: transitions }}\n\t\t\tout:dynamicTransition|local={{ transition: transitionOut, params: transitionOutParams, enabled: transitions }}\n\t\t>\n\t\t\t{#each Array.from(Array($state.total).keys()) as step}\n\t\t\t\t<div class=\"stepper-header-step {classesHeaderStep}\" class:flex-1={isActive(step)}>\n\t\t\t\t\t<span class=\"badge {classesBadge(step)}\">{isActive(step) ? `${stepTerm} ${step + 1}` : step + 1}</span>\n\t\t\t\t</div>\n\t\t\t{/each}\n\t\t</header>\n\t{/if}\n\t<!-- Content -->\n\t<div class=\"stepper-content {classesContent}\">\n\t\t<slot />\n\t</div>\n</div>\n","<!-- Reference: https://dribbble.com/shots/16221169-Figma-Material-Ui-components-Steppers-and-sliders -->\n<script>import { getContext, onDestroy } from \"svelte\";\nimport { dynamicTransition } from \"../../internal/transitions.js\";\nexport let locked = false;\nexport let regionHeader = \"\";\nexport let regionContent = \"\";\nexport let regionNavigation = \"\";\nexport let state = getContext(\"state\");\nexport let stepTerm = getContext(\"stepTerm\");\nexport let gap = getContext(\"gap\");\nexport let justify = getContext(\"justify\");\nexport let onNext = getContext(\"onNext\");\nexport let onBack = getContext(\"onBack\");\nexport let onComplete = getContext(\"onComplete\");\nexport let buttonBack = getContext(\"buttonBack\");\nexport let buttonBackType = getContext(\"buttonBackType\");\nexport let buttonBackLabel = getContext(\"buttonBackLabel\");\nexport let buttonNext = getContext(\"buttonNext\");\nexport let buttonNextType = getContext(\"buttonNextType\");\nexport let buttonNextLabel = getContext(\"buttonNextLabel\");\nexport let buttonComplete = getContext(\"buttonComplete\");\nexport let buttonCompleteType = getContext(\"buttonCompleteType\");\nexport let buttonCompleteLabel = getContext(\"buttonCompleteLabel\");\nexport let transitions = getContext(\"transitions\");\nexport let transitionIn = getContext(\"transitionIn\");\nexport let transitionInParams = getContext(\"transitionInParams\");\nexport let transitionOut = getContext(\"transitionOut\");\nexport let transitionOutParams = getContext(\"transitionOutParams\");\nconst stepIndex = $state.total;\n$state.total++;\nconst cBase = \"space-y-4\";\nconst cHeader = \"text-2xl font-bold\";\nconst cContent = \"space-y-4\";\nconst cNavigation = \"flex\";\n$:\n classesBase = `${cBase} ${$$props.class ?? \"\"}`;\n$:\n classesHeader = `${cHeader} ${regionHeader}`;\n$:\n classesContent = `${cContent} ${regionContent}`;\n$:\n classesNavigation = `${cNavigation} ${justify} ${gap} ${regionNavigation}`;\nonDestroy(() => {\n $state.total--;\n});\n</script>\n\n{#if stepIndex === $state.current}\n\t<div class=\"step {classesBase}\" data-testid=\"step\">\n\t\t<!-- Slot: Header -->\n\t\t<header class=\"step-header {classesHeader}\">\n\t\t\t<slot name=\"header\">{stepTerm} {stepIndex + 1}</slot>\n\t\t</header>\n\t\t<!-- Slot: Default -->\n\t\t<div class=\"step-content {classesContent}\">\n\t\t\t<slot>({stepTerm} {stepIndex + 1} Content)</slot>\n\t\t</div>\n\t\t<!-- Navigation -->\n\t\t{#if $state.total > 1}\n\t\t\t<div\n\t\t\t\tclass=\"step-navigation {classesNavigation}\"\n\t\t\t\tin:dynamicTransition|local={{ transition: transitionIn, params: transitionInParams, enabled: transitions }}\n\t\t\t\tout:dynamicTransition|local={{ transition: transitionOut, params: transitionOutParams, enabled: transitions }}\n\t\t\t>\n\t\t\t\t{#if stepIndex === 0 && $$slots.navigation}\n\t\t\t\t\t<!-- Slot: Navigation -->\n\t\t\t\t\t<div class=\"step-navigation-slot\">\n\t\t\t\t\t\t<slot name=\"navigation\" />\n\t\t\t\t\t</div>\n\t\t\t\t{:else}\n\t\t\t\t\t<!-- Button: Back -->\n\t\t\t\t\t<button type={buttonBackType} class=\"btn {buttonBack}\" on:click={() => onBack(stepIndex)} disabled={$state.current === 0}>\n\t\t\t\t\t\t{@html buttonBackLabel}\n\t\t\t\t\t</button>\n\t\t\t\t{/if}\n\t\t\t\t{#if stepIndex < $state.total - 1}\n\t\t\t\t\t<!-- Button: Next -->\n\t\t\t\t\t<button type={buttonNextType} class=\"btn {buttonNext}\" on:click={() => onNext(locked, stepIndex)} disabled={locked}>\n\t\t\t\t\t\t{#if locked}\n\t\t\t\t\t\t\t<svg class=\"w-3 aspect-square fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\">\n\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\td=\"M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t<span>{@html buttonNextLabel}</span>\n\t\t\t\t\t</button>\n\t\t\t\t{:else}\n\t\t\t\t\t<!-- Button: Complete -->\n\t\t\t\t\t<button type={buttonCompleteType} class=\"btn {buttonComplete}\" on:click={() => onComplete(stepIndex)} disabled={locked}>\n\t\t\t\t\t\t{@html buttonCompleteLabel}\n\t\t\t\t\t</button>\n\t\t\t\t{/if}\n\t\t\t</div>\n\t\t{/if}\n\t</div>\n{/if}\n","<script>import { createEventDispatcher } from \"svelte\";\nconst dispatch = createEventDispatcher();\nimport { storeHighlightJs } from \"./stores.js\";\nimport { clipboard } from \"../../actions/Clipboard/clipboard.js\";\nexport let language = \"plaintext\";\nexport let code = \"\";\nexport let lineNumbers = false;\nexport let background = \"bg-neutral-900/90\";\nexport let blur = \"\";\nexport let text = \"text-sm\";\nexport let color = \"text-white\";\nexport let rounded = \"rounded-container-token\";\nexport let shadow = \"shadow\";\nexport let button = \"btn btn-sm variant-soft !text-white\";\nexport let buttonLabel = \"Copy\";\nexport let buttonCopied = \"\\u{1F44D}\";\nconst cBase = \"overflow-hidden shadow\";\nconst cHeader = \"text-xs text-white/50 uppercase flex justify-between items-center p-2 pl-4\";\nconst cPre = \"whitespace-pre-wrap break-all p-4 pt-1\";\nlet formatted = false;\nlet displayCode = code;\nlet copyState = false;\nfunction languageFormatter(lang) {\n if (lang === \"js\")\n return \"javascript\";\n if (lang === \"ts\")\n return \"typescript\";\n if (lang === \"shell\")\n return \"terminal\";\n return lang;\n}\nfunction onCopyClick() {\n copyState = true;\n setTimeout(() => {\n copyState = false;\n }, 2e3);\n dispatch(\"copy\");\n}\n$:\n if ($storeHighlightJs !== void 0) {\n displayCode = $storeHighlightJs.highlight(code, { language }).value.trim();\n formatted = true;\n }\n$:\n if (lineNumbers) {\n displayCode = displayCode.replace(/^/gm, () => {\n return '<span class=\"line\"></span>\t';\n });\n formatted = true;\n }\n$:\n classesBase = `${cBase} ${background} ${blur} ${text} ${color} ${rounded} ${shadow} ${$$props.class ?? \"\"}`;\n</script>\n\n<!-- prettier-ignore -->\n{#if language && code}\n<div class=\"codeblock {classesBase}\" data-testid=\"codeblock\">\n\t<!-- Header -->\n\t<header class=\"codeblock-header {cHeader}\">\n\t\t<!-- Language -->\n\t\t<span class=\"codeblock-language\">{languageFormatter(language)}</span>\n\t\t<!-- Copy Button -->\n\t\t<button type=\"button\" class=\"codeblock-btn {button}\" on:click={onCopyClick} use:clipboard={code}>\n\t\t\t{!copyState ? buttonLabel : buttonCopied}\n\t\t</button>\n\t</header>\n\t<!-- Pre/Code -->\n\t<pre class=\"codeblock-pre {cPre}\"><code class=\"codeblock-code language-{language} lineNumbers\">{#if formatted}{@html displayCode}{:else}{code.trim()}{/if}</code></pre>\n</div>\n{/if}\n","// place files you want to import through the `$lib` alias in this folder.\n\nexport const gitDomain = 'git.froth.zone';\nexport const gitName = 'Froth Git';\nexport const pagesDomain = 'pages.git.froth.zone';\nexport const pagesName = 'Froth Pages';\nexport const ipv4 = '150.136.112.69';\nexport const ipv6 = '2603:c020:4004:62ee:d84c:2488:5bdb:99c1';\n","<script lang=\"ts\">\n\timport { browser } from '$app/environment';\n\timport { gitDomain, ipv4, ipv6, pagesDomain } from '$lib';\n\timport { Accordion, AccordionItem, CodeBlock, Step, Stepper } from '@skeletonlabs/skeleton';\n\n\tlet username = '';\n\tlet repository = '';\n\tlet branch = '';\n\n\t$: navDomain = `https://${username}.${pagesDomain}${!repository ? '' : `/${repository}`}${!branch ? '' : `/@${branch}`}`;\n\t$: dnsDomain = `${!branch ? '' : `${branch}.`}${!repository ? '' : `${repository}.`}${username}.${pagesDomain}`;\n\n\tfunction codebergDocs() {\n\t\tif (browser) {\n\t\t\twindow.open('https://docs.codeberg.org/codeberg-pages/', '_blank');\n\t\t}\n\t}\n</script>\n\n<Stepper\n\ton:complete={codebergDocs}\n\tbuttonCompleteLabel=\"Open Documentation\"\n\tbuttonComplete=\"variant-filled-success\"\n>\n\t<Step>\n\t\t<svelte:fragment slot=\"navigation\">\n\t\t\t<a href=\"https://{gitDomain}/repo/create\" target=\"_blank\" class=\"btn variant-filled-secondary\"\n\t\t\t\t>Create a repository!</a\n\t\t\t>\n\t\t</svelte:fragment>\n\t\t<svelte:fragment slot=\"header\">1 - Make a repository</svelte:fragment>\n\t\t<div class=\"space-y-2\">\n\t\t\t<p>\n\t\t\t\tCreate a public repository named <code class=\"code\">pages</code> to make the site available on\n\t\t\t\tthe main subdomain.\n\t\t\t</p>\n\t\t\t<hr />\n\t\t</div>\n\t\t<p>Or, create a branch named <code class=\"code\">pages</code> in any public repository.</p>\n\t\t<p>\n\t\t\t<code class=\"code\">git switch --orphan pages</code><br /><code class=\"code\"\n\t\t\t\t>git rm --cached -r .</code\n\t\t\t>\n\t\t</p>\n\t\t<CodeBlock\n\t\t\tbuttonCopied=\"Copied!\"\n\t\t\tlineNumbers={true}\n\t\t\tlanguage=\"shell\"\n\t\t\tcode={`git switch --orphan pages\ngit rm --cached -r .`}\n\t\t></CodeBlock>\n\t</Step>\n\t<Step>\n\t\t<svelte:fragment slot=\"header\">2 - Add your files</svelte:fragment>\n\t\t<p>Push your static content. HTML, CSS, fonts, images or anything else.</p>\n\t</Step>\n\t<Step>\n\t\t<svelte:fragment slot=\"header\">3 - You're Done!</svelte:fragment>\n\t\t<div class=\"space-y-4\">\n\t\t\t<p>Access your new website with this link:</p>\n\t\t\t<code class=\"code\">https://USERNAME.{pagesDomain}[/REPOSITORY][/@BRANCH]</code>\n\t\t\t<p>or, use this handy form that can navigate for you!</p>\n\t\t\t<div class=\"space-y-1\">\n\t\t\t\t<div class=\"input-group input-group-divider grid-cols-4\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tbind:value={username}\n\t\t\t\t\t\tclass=\"input variant-form-material {username ? '' : 'input-error'}\"\n\t\t\t\t\t\ttitle=\"Username\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tplaceholder=\"Username (required)\"\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<div class=\"input-group-shim\">.{pagesDomain}/</div>\n\t\t\t\t\t<input\n\t\t\t\t\t\tbind:value={repository}\n\t\t\t\t\t\tclass=\"input variant-form-material\"\n\t\t\t\t\t\ttitle=\"Repository\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tplaceholder=\"Repository\"\n\t\t\t\t\t/>\n\t\t\t\t\t<input\n\t\t\t\t\t\tbind:value={branch}\n\t\t\t\t\t\tclass=\"input variant-form-material\"\n\t\t\t\t\t\ttitle=\"Branch\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tplaceholder=\"Branch\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<a href={navDomain} class=\"btn variant-filled-secondary\">Take me there!</a>\n\t\t\t</div>\n\t\t\t<hr />\n\t\t\t<div>\n\t\t\t\t<h3 class=\"h3\">What about custom domains?</h3>\n\t\t\t\t<p>\n\t\t\t\t\tTo use custom domains, create a <code class=\"code\">.domains</code> in the root of your repository\n\t\t\t\t\twith the domain name you would like to use.\n\t\t\t\t</p>\n\t\t\t\t<br />\n\t\t\t\t<p>Then, add a DNS record for that domain:</p>\n\t\t\t\t<em>(note): use the above form to auto-generate your DNS records!</em>\n\t\t\t\t<Accordion autocollapse>\n\t\t\t\t\t<AccordionItem open>\n\t\t\t\t\t\t<svelte:fragment slot=\"summary\">CNAME (Prefered)</svelte:fragment>\n\t\t\t\t\t\t<svelte:fragment slot=\"content\">\n\t\t\t\t\t\t\t<code class=\"code\">CNAME [[branch.]repo.]user.{pagesDomain}.</code>\n\t\t\t\t\t\t\t<CodeBlock buttonCopied=\"Copied!\" language=\"dns\" code={`CNAME ${dnsDomain}.`}\n\t\t\t\t\t\t\t></CodeBlock>\n\t\t\t\t\t\t</svelte:fragment>\n\t\t\t\t\t</AccordionItem>\n\t\t\t\t\t<AccordionItem>\n\t\t\t\t\t\t<svelte:fragment slot=\"summary\">ALIAS (If available)</svelte:fragment>\n\t\t\t\t\t\t<svelte:fragment slot=\"content\">\n\t\t\t\t\t\t\t<p>For apex domains where CNAME does not work.</p>\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t<code class=\"code\">ALIAS {pagesDomain}.</code><br /><code class=\"code\"\n\t\t\t\t\t\t\t\t\t>TXT $[[branch.]repo.]user.{pagesDomain}</code\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<CodeBlock\n\t\t\t\t\t\t\t\tbuttonCopied=\"Copied!\"\n\t\t\t\t\t\t\t\tlanguage=\"dns\"\n\t\t\t\t\t\t\t\tcode={`ALIAS ${pagesDomain}.\nTXT ${dnsDomain}`}\n\t\t\t\t\t\t\t></CodeBlock>\n\t\t\t\t\t\t</svelte:fragment>\n\t\t\t\t\t</AccordionItem>\n\t\t\t\t\t<AccordionItem>\n\t\t\t\t\t\t<svelte:fragment slot=\"summary\">A/AAAA (Old reliable)</svelte:fragment>\n\t\t\t\t\t\t<svelte:fragment slot=\"content\">\n\t\t\t\t\t\t\t<p>If CNAME will not work and ALIAS is not available</p>\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t<code class=\"code\">A {ipv4}</code><br /><code class=\"code\">AAAA {ipv6}</code><br\n\t\t\t\t\t\t\t\t/><code class=\"code\">TXT $[[branch.]repo.]user.{pagesDomain}</code>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<CodeBlock\n\t\t\t\t\t\t\t\tbuttonCopied=\"Copied!\"\n\t\t\t\t\t\t\t\tlanguage=\"dns\"\n\t\t\t\t\t\t\t\tcode={`A ${ipv4}\nAAAA ${ipv6}\nTXT ${dnsDomain}`}\n\t\t\t\t\t\t\t></CodeBlock>\n\t\t\t\t\t\t</svelte:fragment>\n\t\t\t\t\t</AccordionItem>\n\t\t\t\t</Accordion>\n\t\t\t</div>\n\t\t</div>\n\t</Step>\n</Stepper>\n","<script lang=\"ts\">\n\timport { gitDomain, gitName, pagesName } from '$lib';\n\timport Instructions from '$lib/instructions.svelte';\n</script>\n\n<div class=\"container mx-auto text-left p-4 md:text-center\">\n\t<div class=\"relative z-[1] space-y-6 pt-32 pb-24\">\n\t\t<div class=\"font-bold text-4xl tracking-tight\">\n\t\t\tHost <span class=\"text-tertiary-500\">static websites</span> with {pagesName}!\n\t\t</div>\n\t\t<p class=\"max-w-lg opacity-90 md:mx-auto\">\n\t\t\tIt's quick, easy, free & fast - just put your project's homepage, developer blog or web\n\t\t\texperiment into a Git repository at <a class=\"anchor\" href=\"https://{gitDomain}\">{gitName}</a>\n\t\t\tand we'll do the rest.\n\t\t</p>\n\t\t<br />\n\t\t<div class=\"flex flex-col gap-3 md:space-x-3 md:block mx-auto md:w-6/12\">\n\t\t\t<Instructions />\n\t\t</div>\n\t</div>\n</div>\n"],"names":["ATTR_REGEX","CONTENT_REGEX","escape_html","value","is_attr","str","pattern","escaped","last","i","ch","index","_","pause_effects","state","items","controlled_anchor","items_map","transitions","length","pause_children","is_controlled","parent_node","clear_text_content","link","run_out_transitions","item","destroy_effect","each","node","flags","get_collection","get_key","render_fn","fallback_fn","anchor","hydrating","set_hydrate_node","get_first_child","create_text","hydrate_next","fallback","was_empty","block","collection","array","is_array","array_from","mismatch","is_else","HYDRATION_START_ELSE","remove_nodes","set_hydrating","prev","hydrate_node","HYDRATION_END","key","create_item","effect","active_reaction","reconcile","INERT","resume_effect","branch","pause_effect","is_inert","first","current","seen","matched","stashed","child_anchor","update_item","start","j","a","b","move","to_destroy","destroy_length","active_effect","type","internal_set","next","reactive","EACH_ITEM_REACTIVE","mutable","EACH_ITEM_IMMUTABLE","v","mutable_source","source","EACH_INDEX_REACTIVE","end","dest","next_node","get_next_sibling","html","get_value","svg","mathml","skip_warning","w.hydration_mismatch","HYDRATION_ERROR","assign_nodes","create_fragment_from_html","action","dom","payload","untrack","inited","render_effect","deep_read_state","safe_not_equal","now","raf","run_tasks","task","loop","callback","fulfill","dispatch_event","element","css_property_to_camelcase","style","parts","word","css_to_keyframe","css","keyframe","part","property","formatted_property","linear","t","transition","get_fn","get_params","is_intro","TRANSITION_IN","is_outro","TRANSITION_OUT","is_both","is_global","TRANSITION_GLOBAL","direction","current_options","inert","intro","outro","get_options","previous_reaction","previous_effect","set_active_reaction","set_active_effect","_a","animate","fn","e","should_intro","run","EFFECT_TRANSPARENT","BLOCK_EFFECT","EFFECT_RAN","options","counterpart","t2","on_finish","is_function","aborted","queue_micro_task","o","noop","delay","tick","easing","keyframes","styles","get_t","animation","t1","delta","duration","n","time","bind_value","input","get","set","runes","is_runes","listen_to_event_and_reset_event","is_numberlike_input","to_number","replacements","attr","name","is_boolean","normalized","assignment","storeHighlightJs","writable","clipboard","args","fireCopyCompleteEvent","onClick","copyToClipboard","newArgs","data","mimeType","resolve","x","cubic_out","f","fade","slide","axis","opacity","primary_property","primary_property_value","secondary_properties","capitalized_secondary_properties","padding_start_value","padding_end_value","margin_start_value","margin_end_value","border_width_start_value","border_width_end_value","autocollapse","width","spacing","disabled","padding","hover","rounded","caretOpen","caretClosed","regionControl","regionPanel","regionCaret","$prefersReducedMotionStore","transitionIn","transitionInParams","$.prop","$$props","transitionOut","transitionOutParams","active","setContext","$.set","classesBase","$$sanitized_props","dynamicTransition","dynParams","params","enabled","dispatch","createEventDispatcher","open","id","cBase","cControl","cControlIcons","cPanel","getContext","svgCaretIcon","setActive","event","onToggle","currentOpenState","$active","openState","classesControl","classesCaretState","$.get","classesControlCaret","classesControlIcons","classesPanel","$.if","$$slots","$$anchor","gap","stepTerm","badge","border","justify","buttonBack","buttonBackType","buttonBackLabel","buttonNext","buttonNextType","buttonNextLabel","buttonComplete","buttonCompleteType","buttonCompleteLabel","regionHeader","regionContent","onNext","locked","stepIndex","$state","$.untrack","onBack","onComplete","cHeader","cHeaderStep","cContent","isActive","step","classesHeader","classesHeaderStep","classesBadge","classesContent","$.index","class_directive","$.derived_safe_equal","class_derived","regionNavigation","cNavigation","onDestroy","classesNavigation","$.event","button","button_2","language","code","lineNumbers","background","blur","text","color","shadow","buttonLabel","buttonCopied","cPre","formatted","displayCode","copyState","languageFormatter","lang","onCopyClick","$storeHighlightJs","$.template_effect","$.set_text","text_1","text_3","gitDomain","gitName","pagesDomain","pagesName","ipv4","ipv6","root_19","$.template","$.escape","root_10","username","repository","codebergDocs","navDomain","dnsDomain","$.bind_value","$$value","input_1","input_2","$.attr"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]} |