@burger-editor/client 4.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sources":["../../../../node_modules/marked/lib/marked.esm.js","../../../../node_modules/turndown/lib/turndown.browser.es.js","../../../../node_modules/dayjs/dayjs.min.js","../../utils/dist/utils.js","../../../../node_modules/semver/internal/constants.js","../../../../node_modules/semver/internal/debug.js","../../../../node_modules/semver/internal/re.js","../../../../node_modules/semver/internal/parse-options.js","../../../../node_modules/semver/internal/identifiers.js","../../../../node_modules/semver/classes/semver.js","../../../../node_modules/semver/functions/parse.js","../../../../node_modules/semver/functions/valid.js","../../../../node_modules/semver/functions/clean.js","../../../../node_modules/semver/functions/inc.js","../../../../node_modules/semver/functions/diff.js","../../../../node_modules/semver/functions/major.js","../../../../node_modules/semver/functions/minor.js","../../../../node_modules/semver/functions/patch.js","../../../../node_modules/semver/functions/prerelease.js","../../../../node_modules/semver/functions/compare.js","../../../../node_modules/semver/functions/rcompare.js","../../../../node_modules/semver/functions/compare-loose.js","../../../../node_modules/semver/functions/compare-build.js","../../../../node_modules/semver/functions/sort.js","../../../../node_modules/semver/functions/rsort.js","../../../../node_modules/semver/functions/gt.js","../../../../node_modules/semver/functions/lt.js","../../../../node_modules/semver/functions/eq.js","../../../../node_modules/semver/functions/neq.js","../../../../node_modules/semver/functions/gte.js","../../../../node_modules/semver/functions/lte.js","../../../../node_modules/semver/functions/cmp.js","../../../../node_modules/semver/functions/coerce.js","../../../../node_modules/semver/internal/lrucache.js","../../../../node_modules/semver/classes/range.js","../../../../node_modules/semver/classes/comparator.js","../../../../node_modules/semver/functions/satisfies.js","../../../../node_modules/semver/ranges/to-comparators.js","../../../../node_modules/semver/ranges/max-satisfying.js","../../../../node_modules/semver/ranges/min-satisfying.js","../../../../node_modules/semver/ranges/min-version.js","../../../../node_modules/semver/ranges/valid.js","../../../../node_modules/semver/ranges/outside.js","../../../../node_modules/semver/ranges/gtr.js","../../../../node_modules/semver/ranges/ltr.js","../../../../node_modules/semver/ranges/intersects.js","../../../../node_modules/semver/ranges/simplify.js","../../../../node_modules/semver/ranges/subset.js","../../../../node_modules/semver/index.js","../../core/dist/dom-helpers/append-stylesheet-to.js","../../core/dist/error/errors.js","../../core/dist/dom-helpers/get-element.js","../../core/dist/editor-ui.js","../../core/dist/editor-dialog.js","../../core/dist/block-catalog-dialog.js","../../core/dist/block-options-dialog.js","../../core/dist/component-observer.js","../../core/dist/dom-helpers/create-component-stylesheet.js","../../core/dist/dom-helpers/get-custom-properties.js","../../core/dist/dom-helpers/get-css-property-as-number.js","../../core/dist/block-menu.js","../../core/dist/dom-helpers/sanitize-attrs.js","../../core/dist/initial-insertion-button.js","../../core/dist/insertion-point.js","../../core/dist/editable-area.js","../../core/dist/event/create-bge-event.js","../../frozen-patty/dist/utils.js","../../frozen-patty/dist/field-name-parser.js","../../frozen-patty/dist/set-value.js","../../core/dist/item/get-item-editor-template.js","../../core/dist/item-editor-dialog.js","../../core/dist/engine/get-block-template.js","../../core/dist/engine/engine.js","../../frozen-patty/dist/get-values.js","../../frozen-patty/dist/get.js","../../frozen-patty/dist/set.js","../../frozen-patty/dist/frozen-patty.js","../../frozen-patty/dist/index.js","../../../../node_modules/jaco/fn/replaceFromMap.js","../../../../node_modules/jaco/fn/combinateSoundMarks.js","../../core/dist/item/value-filter.js","../../core/dist/item/data-form-html.js","../../core/dist/item/data-to-html.js","../../core/dist/item/item-editor-service.js","../../core/dist/item/item.js","../../core/dist/block/create-unknown-block.js","../../core/dist/utils/find-value-from-array.js","../../core/dist/utils/find-value-pattern-from-array.js","../../core/dist/block/export-container-props.js","../../core/dist/block/export-options.js","../../core/dist/block/import-container-props.js","../../core/dist/block/import-options.js","../../core/dist/block/update-grid-items.js","../../core/dist/block/block.js","../../../../node_modules/svelte/src/version.js","../../../../node_modules/svelte/src/internal/disclose-version.js","../../../../node_modules/svelte/src/internal/flags/index.js","../../../../node_modules/svelte/src/internal/flags/legacy.js","../../../../node_modules/svelte/src/constants.js","../../../../node_modules/esm-env/false.js","../../../../node_modules/svelte/src/internal/client/constants.js","../../../../node_modules/svelte/src/internal/shared/utils.js","../../../../node_modules/svelte/src/internal/client/dom/task.js","../../../../node_modules/svelte/src/internal/client/reactivity/equality.js","../../../../node_modules/svelte/src/internal/client/errors.js","../../../../node_modules/svelte/src/internal/client/proxy.js","../../../../node_modules/svelte/src/internal/client/reactivity/sources.js","../../../../node_modules/svelte/src/internal/client/reactivity/deriveds.js","../../../../node_modules/svelte/src/internal/client/dom/hydration.js","../../../../node_modules/svelte/src/internal/client/dom/operations.js","../../../../node_modules/svelte/src/internal/client/runtime.js","../../../../node_modules/svelte/src/internal/client/reactivity/effects.js","../../../../node_modules/svelte/src/internal/shared/errors.js","../../../../node_modules/svelte/src/internal/client/context.js","../../../../node_modules/svelte/src/utils.js","../../../../node_modules/svelte/src/internal/client/dom/elements/misc.js","../../../../node_modules/svelte/src/internal/client/dom/elements/bindings/shared.js","../../../../node_modules/svelte/src/internal/client/dom/elements/events.js","../../../../node_modules/svelte/src/internal/client/dom/reconciler.js","../../../../node_modules/svelte/src/internal/client/dom/template.js","../../../../node_modules/svelte/src/internal/client/render.js","../../../../node_modules/svelte/src/internal/client/dom/blocks/if.js","../../../../node_modules/svelte/src/internal/client/dom/blocks/each.js","../../../../node_modules/svelte/src/internal/client/dom/blocks/html.js","../../../../node_modules/svelte/src/internal/client/dom/blocks/slot.js","../../../../node_modules/svelte/src/internal/client/dom/blocks/snippet.js","../../../../node_modules/svelte/src/internal/client/dom/blocks/svelte-element.js","../../../../node_modules/clsx/dist/clsx.mjs","../../../../node_modules/svelte/src/internal/shared/attributes.js","../../../../node_modules/svelte/src/internal/client/dom/elements/class.js","../../../../node_modules/svelte/src/internal/client/dom/elements/style.js","../../../../node_modules/svelte/src/internal/client/dom/elements/attributes.js","../../../../node_modules/svelte/src/internal/client/dom/elements/bindings/input.js","../../../../node_modules/svelte/src/internal/client/dom/elements/bindings/this.js","../../../../node_modules/svelte/src/internal/client/dom/legacy/lifecycle.js","../../../../node_modules/svelte/src/index-client.js","../../../../node_modules/svelte/src/internal/client/reactivity/store.js","../../../../node_modules/svelte/src/internal/client/reactivity/props.js","../src/block-catalog.svelte","../../../../node_modules/@tabler/icons-svelte/dist/defaultAttributes.js","../../../../node_modules/@tabler/icons-svelte/dist/Icon.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/arrow-big-down-line.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/arrow-big-up-line.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/clipboard-plus.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/layout-grid-add.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/layout-grid-remove.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/row-insert-bottom.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/row-insert-top.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/settings.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/trash.svelte","../src/block-menu-button.svelte","../src/replace-element.ts","../src/block-menu.svelte","../src/block-options.svelte","../src/draft-switcher.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/file.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/file-type-doc.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/file-type-pdf.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/file-type-ppt.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/file-type-xls.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/headphones.svelte","../../../../node_modules/@tabler/icons-svelte/dist/icons/video.svelte","../src/get-ext.ts","../src/thumbnail.svelte","../src/file-list.svelte","../src/file-uploader.svelte","../src/preview.svelte","../src/svelte-mount.ts","../../../../node_modules/@tabler/icons-svelte/dist/icons/arrows-transfer-down.svelte","../src/table-editor.svelte","../../migrator/dist/index.js","../src/get-config.ts","../src/index.ts"],"sourcesContent":["/**\n * marked v15.0.7 - a markdown parser\n * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n/**\n * Gets the original marked default options.\n */\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null,\n };\n}\nlet _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\nconst noopTest = { exec: () => null };\nfunction edit(regex, opt = '') {\n let source = typeof regex === 'string' ? regex : regex.source;\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(other.caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n },\n };\n return obj;\n}\nconst other = {\n codeRemoveIndent: /^(?: {1,4}| {0,3}\\t)/gm,\n outputLinkReplace: /\\\\([\\[\\]])/g,\n indentCodeCompensation: /^(\\s+)(?:```)/,\n beginningSpace: /^\\s+/,\n endingHash: /#$/,\n startingSpaceChar: /^ /,\n endingSpaceChar: / $/,\n nonSpaceChar: /[^ ]/,\n newLineCharGlobal: /\\n/g,\n tabCharGlobal: /\\t/g,\n multipleSpaceGlobal: /\\s+/g,\n blankLine: /^[ \\t]*$/,\n doubleBlankLine: /\\n[ \\t]*\\n[ \\t]*$/,\n blockquoteStart: /^ {0,3}>/,\n blockquoteSetextReplace: /\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,\n blockquoteSetextReplace2: /^ {0,3}>[ \\t]?/gm,\n listReplaceTabs: /^\\t+/,\n listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,\n listIsTask: /^\\[[ xX]\\] /,\n listReplaceTask: /^\\[[ xX]\\] +/,\n anyLine: /\\n.*\\n/,\n hrefBrackets: /^<(.*)>$/,\n tableDelimiter: /[:|]/,\n tableAlignChars: /^\\||\\| *$/g,\n tableRowBlankLine: /\\n[ \\t]*$/,\n tableAlignRight: /^ *-+: *$/,\n tableAlignCenter: /^ *:-+: *$/,\n tableAlignLeft: /^ *:-+ *$/,\n startATag: /^<a /i,\n endATag: /^<\\/a>/i,\n startPreScriptTag: /^<(pre|code|kbd|script)(\\s|>)/i,\n endPreScriptTag: /^<\\/(pre|code|kbd|script)(\\s|>)/i,\n startAngleBracket: /^</,\n endAngleBracket: />$/,\n pedanticHrefTitle: /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,\n unicodeAlphaNumeric: /[\\p{L}\\p{N}]/u,\n escapeTest: /[&<>\"']/,\n escapeReplace: /[&<>\"']/g,\n escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n unescapeTest: /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig,\n caret: /(^|[^\\[])\\^/g,\n percentDecode: /%25/g,\n findPipe: /\\|/g,\n splitPipe: / \\|/,\n slashPipe: /\\\\\\|/g,\n carriageReturn: /\\r\\n|\\r/g,\n spaceLine: /^ +$/gm,\n notSpaceStart: /^\\S*/,\n endingNewline: /\\n$/,\n listItemRegex: (bull) => new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`),\n nextBulletRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`),\n hrRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),\n fencesBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`),\n headingBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`),\n htmlBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}<(?:[a-z].*>|!--)`, 'i'),\n};\n/**\n * Block-Level Grammar\n */\nconst newline = /^(?:[ \\t]*(?:\\n|$))+/;\nconst blockCode = /^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nconst lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/;\nconst lheading = edit(lheadingCore)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, /(?: {4}| {0,3}\\t)/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .replace(/\\|table/g, '') // table not in commonmark\n .getRegex();\nconst lheadingGfm = edit(lheadingCore)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, /(?: {4}| {0,3}\\t)/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .replace(/table/g, / {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/) // table can interrupt\n .getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/)\n .replace('label', _blockLabel)\n .replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/)\n .getRegex();\nconst list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/)\n .replace(/bull/g, bullet)\n .getRegex();\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title'\n + '|tr|track|ul';\nconst _comment = /<!--(?:-?>|[\\s\\S]*?(?:-->|$))/;\nconst html = edit('^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (7) open tag\n + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (7) closing tag\n + ')', 'i')\n .replace('comment', _comment)\n .replace('tag', _tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst paragraph = edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/)\n .replace('paragraph', paragraph)\n .getRegex();\n/**\n * Normal Block Grammar\n */\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText,\n};\n/**\n * GFM Block Grammar\n */\nconst gfmTable = edit('^ *([^\\\\n ].*)\\\\n' // Header\n + ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('blockquote', ' {0,3}>')\n .replace('code', '(?: {4}| {0,3}\\t)[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\nconst blockGfm = {\n ...blockNormal,\n lheading: lheadingGfm,\n table: gfmTable,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex(),\n};\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\nconst blockPedantic = {\n ...blockNormal,\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', _comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', lheading)\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .replace('|tag', '')\n .getRegex(),\n};\n/**\n * Inline-Level Grammar\n */\nconst escape$1 = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/;\n// list of unicode punctuation marks, plus any missing characters from CommonMark spec\nconst _punctuation = /[\\p{P}\\p{S}]/u;\nconst _punctuationOrSpace = /[\\s\\p{P}\\p{S}]/u;\nconst _notPunctuationOrSpace = /[^\\s\\p{P}\\p{S}]/u;\nconst punctuation = edit(/^((?![*_])punctSpace)/, 'u')\n .replace(/punctSpace/g, _punctuationOrSpace).getRegex();\n// GFM allows ~ inside strong and em for strikethrough\nconst _punctuationGfmStrongEm = /(?!~)[\\p{P}\\p{S}]/u;\nconst _punctuationOrSpaceGfmStrongEm = /(?!~)[\\s\\p{P}\\p{S}]/u;\nconst _notPunctuationOrSpaceGfmStrongEm = /(?:[^\\s\\p{P}\\p{S}]|~)/u;\n// sequences em should skip over [title](link), `code`, <html>\nconst blockSkip = /\\[[^[\\]]*?\\]\\((?:\\\\.|[^\\\\\\(\\)]|\\((?:\\\\.|[^\\\\\\(\\)])*\\))*\\)|`[^`]*?`|<[^<>]*?>/g;\nconst emStrongLDelimCore = /^(?:\\*+(?:((?!\\*)punct)|[^\\s*]))|^_+(?:((?!_)punct)|([^\\s_]))/;\nconst emStrongLDelim = edit(emStrongLDelimCore, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst emStrongLDelimGfm = edit(emStrongLDelimCore, 'u')\n .replace(/punct/g, _punctuationGfmStrongEm)\n .getRegex();\nconst emStrongRDelimAstCore = '^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n + '|[^*]+(?=[^*])' // Consume to delim\n + '|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n + '|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)' // (2) a***#, a*** can only be a Right Delimiter\n + '|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)' // (3) #***a, ***a can only be Left Delimiter\n + '|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)' // (4) ***# can only be Left Delimiter\n + '|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)' // (5) #***# can be either Left or Right Delimiter\n + '|notPunctSpace(\\\\*+)(?=notPunctSpace)'; // (6) a***a can be either Left or Right Delimiter\nconst emStrongRDelimAst = edit(emStrongRDelimAstCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm)\n .replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm)\n .replace(/punct/g, _punctuationGfmStrongEm)\n .getRegex();\n// (6) Not allowed for _\nconst emStrongRDelimUnd = edit('^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n + '|[^_]+(?=[^_])' // Consume to delim\n + '|(?!_)punct(_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n + '|notPunctSpace(_+)(?!_)(?=punctSpace|$)' // (2) a___#, a___ can only be a Right Delimiter\n + '|(?!_)punctSpace(_+)(?=notPunctSpace)' // (3) #___a, ___a can only be Left Delimiter\n + '|[\\\\s](_+)(?!_)(?=punct)' // (4) ___# can only be Left Delimiter\n + '|(?!_)punct(_+)(?!_)(?=punct)', 'gu') // (5) #___# can be either Left or Right Delimiter\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst anyPunctuation = edit(/\\\\(punct)/, 'gu')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/)\n .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)\n .replace('email', /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/)\n .getRegex();\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit('^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>') // CDATA section\n .replace('comment', _inlineComment)\n .replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/)\n .replace('label', _inlineLabel)\n .replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/)\n .replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/)\n .getRegex();\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/)\n .replace('label', _inlineLabel)\n .replace('ref', _blockLabel)\n .getRegex();\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/)\n .replace('ref', _blockLabel)\n .getRegex();\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g')\n .replace('reflink', reflink)\n .replace('nolink', nolink)\n .getRegex();\n/**\n * Normal Inline Grammar\n */\nconst inlineNormal = {\n _backpedal: noopTest, // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape: escape$1,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest,\n};\n/**\n * Pedantic Inline Grammar\n */\nconst inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', _inlineLabel)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', _inlineLabel)\n .getRegex(),\n};\n/**\n * GFM Inline Grammar\n */\nconst inlineGfm = {\n ...inlineNormal,\n emStrongRDelimAst: emStrongRDelimAstGfm,\n emStrongLDelim: emStrongLDelimGfm,\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, 'i')\n .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)\n .getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])((?:\\\\.|[^\\\\])*?(?:\\\\.|[^\\s~\\\\]))\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/,\n};\n/**\n * GFM + Line Breaks Inline Grammar\n */\nconst inlineBreaks = {\n ...inlineGfm,\n br: edit(br).replace('{2,}', '*').getRegex(),\n text: edit(inlineGfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex(),\n};\n/**\n * exports\n */\nconst block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic,\n};\nconst inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic,\n};\n\n/**\n * Helpers\n */\nconst escapeReplacements = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape(html, encode) {\n if (encode) {\n if (other.escapeTest.test(html)) {\n return html.replace(other.escapeReplace, getEscapeReplacement);\n }\n }\n else {\n if (other.escapeTestNoEncode.test(html)) {\n return html.replace(other.escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(other.percentDecode, '%');\n }\n catch {\n return null;\n }\n return href;\n}\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(other.findPipe, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\')\n escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n }\n else {\n // add space before unescaped |\n return ' |';\n }\n }), cells = row.split(other.splitPipe);\n let i = 0;\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells.at(-1)?.trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n }\n else {\n while (cells.length < count)\n cells.push('');\n }\n }\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(other.slashPipe, '|');\n }\n return cells;\n}\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && true) {\n suffLen++;\n }\n else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n }\n else if (str[i] === b[0]) {\n level++;\n }\n else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction outputLink(cap, link, raw, lexer, rules) {\n const href = link.href;\n const title = link.title || null;\n const text = cap[1].replace(rules.other.outputLinkReplace, '$1');\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text),\n };\n lexer.state.inLink = false;\n return token;\n }\n return {\n type: 'image',\n raw,\n href,\n title,\n text,\n };\n}\nfunction indentCodeCompensation(raw, text, rules) {\n const matchIndentToCode = raw.match(rules.other.indentCodeCompensation);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(rules.other.beginningSpace);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n })\n .join('\\n');\n}\n/**\n * Tokenizer\n */\nclass _Tokenizer {\n options;\n rules; // set by the lexer\n lexer; // set by the lexer\n constructor(options) {\n this.options = options || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0],\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(this.rules.other.codeRemoveIndent, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text,\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '', this.rules);\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text,\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n // remove trailing #s\n if (this.rules.other.endingHash.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n }\n else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: rtrim(cap[0], '\\n'),\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], '\\n').split('\\n');\n let raw = '';\n let text = '';\n const tokens = [];\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n let i;\n for (i = 0; i < lines.length; i++) {\n // get lines up to a continuation\n if (this.rules.other.blockquoteStart.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n }\n else if (!inBlockquote) {\n currentLines.push(lines[i]);\n }\n else {\n break;\n }\n }\n lines = lines.slice(i);\n const currentRaw = currentLines.join('\\n');\n const currentText = currentRaw\n // precede setext continuation with 4 spaces so it isn't a setext\n .replace(this.rules.other.blockquoteSetextReplace, '\\n $1')\n .replace(this.rules.other.blockquoteSetextReplace2, '');\n raw = raw ? `${raw}\\n${currentRaw}` : currentRaw;\n text = text ? `${text}\\n${currentText}` : currentText;\n // parse blockquote lines as top level tokens\n // merge paragraphs if this is a continuation\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n // if there is no continuation then we are done\n if (lines.length === 0) {\n break;\n }\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'code') {\n // blockquote continuation cannot be preceded by a code block\n break;\n }\n else if (lastToken?.type === 'blockquote') {\n // include continuation in nested blockquote\n const oldToken = lastToken;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.blockquote(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n }\n else if (lastToken?.type === 'list') {\n // include continuation in nested list\n const oldToken = lastToken;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.list(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens.at(-1).raw.length).split('\\n');\n continue;\n }\n }\n return {\n type: 'blockquote',\n raw,\n tokens,\n text,\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: [],\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n // Get next list item\n const itemRegex = this.rules.other.listItemRegex(bull);\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n let raw = '';\n let itemContents = '';\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split('\\n', 1)[0].replace(this.rules.other.listReplaceTabs, (t) => ' '.repeat(3 * t.length));\n let nextLine = src.split('\\n', 1)[0];\n let blankLine = !line.trim();\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n }\n else if (blankLine) {\n indent = cap[1].length + 1;\n }\n else {\n indent = cap[2].search(this.rules.other.nonSpaceChar); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n if (blankLine && this.rules.other.blankLine.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = this.rules.other.nextBulletRegex(indent);\n const hrRegex = this.rules.other.hrRegex(indent);\n const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent);\n const headingBeginRegex = this.rules.other.headingBeginRegex(indent);\n const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent);\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n let nextLineWithoutTabs;\n nextLine = rawLine;\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(this.rules.other.listReplaceNesting, ' ');\n nextLineWithoutTabs = nextLine;\n }\n else {\n nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, ' ');\n }\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of html block\n if (htmlBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n // Horizontal rule found\n if (hrRegex.test(nextLine)) {\n break;\n }\n if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLineWithoutTabs.slice(indent);\n }\n else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n // paragraph continuation unless last line was a different block level element\n if (line.replace(this.rules.other.tabCharGlobal, ' ').search(this.rules.other.nonSpaceChar) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += '\\n' + nextLine;\n }\n if (!blankLine && !nextLine.trim()) { // Check if current line is blank\n blankLine = true;\n }\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLineWithoutTabs.slice(indent);\n }\n }\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n }\n else if (this.rules.other.doubleBlankLine.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n // Check for task list items\n if (this.options.gfm) {\n istask = this.rules.other.listIsTask.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(this.rules.other.listReplaceTask, '');\n }\n }\n list.items.push({\n type: 'list_item',\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: [],\n });\n list.raw += raw;\n }\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n const lastItem = list.items.at(-1);\n if (lastItem) {\n lastItem.raw = lastItem.raw.trimEnd();\n lastItem.text = lastItem.text.trimEnd();\n }\n else {\n // not a list since there were no items\n return;\n }\n list.raw = list.raw.trimEnd();\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (let i = 0; i < list.items.length; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (!list.loose) {\n // Check if list should be loose\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => this.rules.other.anyLine.test(t.raw));\n list.loose = hasMultipleLineBreaks;\n }\n }\n // Set all items to loose if list is loose\n if (list.loose) {\n for (let i = 0; i < list.items.length; i++) {\n list.items[i].loose = true;\n }\n }\n return list;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n block: true,\n raw: cap[0],\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: cap[0],\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, ' ');\n const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href,\n title,\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!this.rules.other.tableDelimiter.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(this.rules.other.tableAlignChars, '').split('|');\n const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, '').split('\\n') : [];\n const item = {\n type: 'table',\n raw: cap[0],\n header: [],\n align: [],\n rows: [],\n };\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n for (const align of aligns) {\n if (this.rules.other.tableAlignRight.test(align)) {\n item.align.push('right');\n }\n else if (this.rules.other.tableAlignCenter.test(align)) {\n item.align.push('center');\n }\n else if (this.rules.other.tableAlignLeft.test(align)) {\n item.align.push('left');\n }\n else {\n item.align.push(null);\n }\n }\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i],\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i],\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1]),\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0]),\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: cap[1],\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) {\n this.lexer.state.inLink = true;\n }\n else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n }\n else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0],\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(this.rules.other.endAngleBracket.test(trimmedUrl))) {\n return;\n }\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n }\n else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = this.rules.other.pedanticHrefTitle.exec(href);\n if (link) {\n href = link[1];\n title = link[3];\n }\n }\n else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim();\n if (this.rules.other.startAngleBracket.test(href)) {\n if (this.options.pedantic && !(this.rules.other.endAngleBracket.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n }\n else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title,\n }, cap[0], this.lexer, this.rules);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text,\n };\n }\n return outputLink(cap, link, cap[0], this.lexer, this.rules);\n }\n }\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match)\n return;\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(this.rules.other.unicodeAlphaNumeric))\n return;\n const nextChar = match[1] || match[2] || '';\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim)\n continue; // skip single * in __abc*abc__\n rLength = [...rDelim].length;\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0)\n continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(this.rules.other.newLineCharGlobal, ' ');\n const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text);\n const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n return {\n type: 'codespan',\n raw: cap[0],\n text,\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0],\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2]),\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = cap[1];\n href = 'mailto:' + text;\n }\n else {\n text = cap[1];\n href = text;\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = cap[0];\n href = 'mailto:' + text;\n }\n else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = cap[0];\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n }\n else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n const escaped = this.lexer.state.inRawBlock;\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n escaped,\n };\n }\n }\n}\n\n/**\n * Block Lexer\n */\nclass _Lexer {\n tokens;\n options;\n state;\n tokenizer;\n inlineQueue;\n constructor(options) {\n // TokenList cannot be created in one go\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true,\n };\n const rules = {\n other,\n block: block.normal,\n inline: inline.normal,\n };\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n }\n else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n }\n else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline,\n };\n }\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new _Lexer(options);\n return lexer.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new _Lexer(options);\n return lexer.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n lex(src) {\n src = src.replace(other.carriageReturn, '\\n');\n this.blockTokens(src, this.tokens);\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n return this.tokens;\n }\n blockTokens(src, tokens = [], lastParagraphClipped = false) {\n if (this.options.pedantic) {\n src = src.replace(other.tabCharGlobal, ' ').replace(other.spaceLine, '');\n }\n while (src) {\n let token;\n if (this.options.extensions?.block?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.raw.length === 1 && lastToken !== undefined) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n lastToken.raw += '\\n';\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n // An indented code block cannot interrupt a paragraph.\n if (lastToken?.type === 'paragraph' || lastToken?.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.at(-1).src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'paragraph' || lastToken?.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue.at(-1).src = lastToken.text;\n }\n else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title,\n };\n }\n continue;\n }\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n let cutSrc = src;\n if (this.options.extensions?.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n const lastToken = tokens.at(-1);\n if (lastParagraphClipped && lastToken?.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n }\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match = null;\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index)\n + '[' + 'a'.repeat(match[0].length - 2) + ']'\n + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n let keepPrevChar = false;\n let prevChar = '';\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n let token;\n // extensions\n if (this.options.extensions?.inline?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.type === 'text' && lastToken?.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n let cutSrc = src;\n if (this.options.extensions?.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass _Renderer {\n options;\n parser; // set by the parser\n constructor(options) {\n this.options = options || _defaults;\n }\n space(token) {\n return '';\n }\n code({ text, lang, escaped }) {\n const langString = (lang || '').match(other.notSpaceStart)?.[0];\n const code = text.replace(other.endingNewline, '') + '\\n';\n if (!langString) {\n return '<pre><code>'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n return '<pre><code class=\"language-'\n + escape(langString)\n + '\">'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n blockquote({ tokens }) {\n const body = this.parser.parse(tokens);\n return `<blockquote>\\n${body}</blockquote>\\n`;\n }\n html({ text }) {\n return text;\n }\n heading({ tokens, depth }) {\n return `<h${depth}>${this.parser.parseInline(tokens)}</h${depth}>\\n`;\n }\n hr(token) {\n return '<hr>\\n';\n }\n list(token) {\n const ordered = token.ordered;\n const start = token.start;\n let body = '';\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n const type = ordered ? 'ol' : 'ul';\n const startAttr = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startAttr + '>\\n' + body + '</' + type + '>\\n';\n }\n listitem(item) {\n let itemBody = '';\n if (item.task) {\n const checkbox = this.checkbox({ checked: !!item.checked });\n if (item.loose) {\n if (item.tokens[0]?.type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + escape(item.tokens[0].tokens[0].text);\n item.tokens[0].tokens[0].escaped = true;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n raw: checkbox + ' ',\n text: checkbox + ' ',\n escaped: true,\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parser.parse(item.tokens, !!item.loose);\n return `<li>${itemBody}</li>\\n`;\n }\n checkbox({ checked }) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\">';\n }\n paragraph({ tokens }) {\n return `<p>${this.parser.parseInline(tokens)}</p>\\n`;\n }\n table(token) {\n let header = '';\n // header\n let cell = '';\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell });\n let body = '';\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n body += this.tablerow({ text: cell });\n }\n if (body)\n body = `<tbody>${body}</tbody>`;\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n }\n tablerow({ text }) {\n return `<tr>\\n${text}</tr>\\n`;\n }\n tablecell(token) {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? 'th' : 'td';\n const tag = token.align\n ? `<${type} align=\"${token.align}\">`\n : `<${type}>`;\n return tag + content + `</${type}>\\n`;\n }\n /**\n * span level renderer\n */\n strong({ tokens }) {\n return `<strong>${this.parser.parseInline(tokens)}</strong>`;\n }\n em({ tokens }) {\n return `<em>${this.parser.parseInline(tokens)}</em>`;\n }\n codespan({ text }) {\n return `<code>${escape(text, true)}</code>`;\n }\n br(token) {\n return '<br>';\n }\n del({ tokens }) {\n return `<del>${this.parser.parseInline(tokens)}</del>`;\n }\n link({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens);\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '<a href=\"' + href + '\"';\n if (title) {\n out += ' title=\"' + (escape(title)) + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n }\n image({ href, title, text }) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return escape(text);\n }\n href = cleanHref;\n let out = `<img src=\"${href}\" alt=\"${text}\"`;\n if (title) {\n out += ` title=\"${escape(title)}\"`;\n }\n out += '>';\n return out;\n }\n text(token) {\n return 'tokens' in token && token.tokens\n ? this.parser.parseInline(token.tokens)\n : ('escaped' in token && token.escaped ? token.text : escape(token.text));\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass _TextRenderer {\n // no need for block level renderers\n strong({ text }) {\n return text;\n }\n em({ text }) {\n return text;\n }\n codespan({ text }) {\n return text;\n }\n del({ text }) {\n return text;\n }\n html({ text }) {\n return text;\n }\n text({ text }) {\n return text;\n }\n link({ text }) {\n return '' + text;\n }\n image({ text }) {\n return '' + text;\n }\n br() {\n return '';\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass _Parser {\n options;\n renderer;\n textRenderer;\n constructor(options) {\n this.options = options || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.renderer.parser = this;\n this.textRenderer = new _TextRenderer();\n }\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new _Parser(options);\n return parser.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new _Parser(options);\n return parser.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const genericToken = anyToken;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(genericToken.type)) {\n out += ret || '';\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case 'space': {\n out += this.renderer.space(token);\n continue;\n }\n case 'hr': {\n out += this.renderer.hr(token);\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(token);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token);\n continue;\n }\n case 'table': {\n out += this.renderer.table(token);\n continue;\n }\n case 'blockquote': {\n out += this.renderer.blockquote(token);\n continue;\n }\n case 'list': {\n out += this.renderer.list(token);\n continue;\n }\n case 'html': {\n out += this.renderer.html(token);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(token);\n continue;\n }\n case 'text': {\n let textToken = token;\n let body = this.renderer.text(textToken);\n while (i + 1 < tokens.length && tokens[i + 1].type === 'text') {\n textToken = tokens[++i];\n body += '\\n' + this.renderer.text(textToken);\n }\n if (top) {\n out += this.renderer.paragraph({\n type: 'paragraph',\n raw: body,\n text: body,\n tokens: [{ type: 'text', raw: body, text: body, escaped: true }],\n });\n }\n else {\n out += body;\n }\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer = this.renderer) {\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(anyToken.type)) {\n out += ret || '';\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token);\n break;\n }\n case 'html': {\n out += renderer.html(token);\n break;\n }\n case 'link': {\n out += renderer.link(token);\n break;\n }\n case 'image': {\n out += renderer.image(token);\n break;\n }\n case 'strong': {\n out += renderer.strong(token);\n break;\n }\n case 'em': {\n out += renderer.em(token);\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token);\n break;\n }\n case 'br': {\n out += renderer.br(token);\n break;\n }\n case 'del': {\n out += renderer.del(token);\n break;\n }\n case 'text': {\n out += renderer.text(token);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\nclass _Hooks {\n options;\n block;\n constructor(options) {\n this.options = options || _defaults;\n }\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens',\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html) {\n return html;\n }\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens) {\n return tokens;\n }\n /**\n * Provide function to tokenize markdown\n */\n provideLexer() {\n return this.block ? _Lexer.lex : _Lexer.lexInline;\n }\n /**\n * Provide function to parse tokens\n */\n provideParser() {\n return this.block ? _Parser.parse : _Parser.parseInline;\n }\n}\n\nclass Marked {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.parseMarkdown(true);\n parseInline = this.parseMarkdown(false);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens, callback));\n });\n }\n else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack };\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function (...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n }\n else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n }\n else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n }\n else {\n extensions.startBlock = [ext.start];\n }\n }\n else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n }\n else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if (['options', 'parser'].includes(prop)) {\n // ignore options property\n continue;\n }\n const rendererProp = prop;\n const rendererFunc = pack.renderer[rendererProp];\n const prevRenderer = renderer[rendererProp];\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret || '';\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if (['options', 'rules', 'lexer'].includes(prop)) {\n // ignore options, rules, and lexer properties\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if (['options', 'block'].includes(prop)) {\n // ignore options and block properties\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {\n return prevHook.call(hooks, ret);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n }\n else {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (...args) => {\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function (token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n parser(tokens, options) {\n return _Parser.parse(tokens, options ?? this.defaults);\n }\n parseMarkdown(blockType) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const parse = (src, options) => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n const throwError = this.onError(!!opt.silent, !!opt.async);\n // throw error if an extension set async to true but parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n return throwError(new Error('marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.'));\n }\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n opt.hooks.block = blockType;\n }\n const lexer = opt.hooks ? opt.hooks.provideLexer() : (blockType ? _Lexer.lex : _Lexer.lexInline);\n const parser = opt.hooks ? opt.hooks.provideParser() : (blockType ? _Parser.parse : _Parser.parseInline);\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)\n .then(src => lexer(src, opt))\n .then(tokens => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens)\n .then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)\n .then(tokens => parser(tokens, opt))\n .then(html => opt.hooks ? opt.hooks.postprocess(html) : html)\n .catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n }\n catch (e) {\n return throwError(e);\n }\n };\n return parse;\n }\n onError(silent, async) {\n return (e) => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (silent) {\n const msg = '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n\nconst markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function (options) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\n/**\n * Use Extension\n */\nmarked.use = function (...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n/**\n * Run callback for every token\n */\nmarked.walkTokens = function (tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = _Parser.parse;\nconst lexer = _Lexer.lex;\n\nexport { _Hooks as Hooks, _Lexer as Lexer, Marked, _Parser as Parser, _Renderer as Renderer, _TextRenderer as TextRenderer, _Tokenizer as Tokenizer, _defaults as defaults, _getDefaults as getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n//# sourceMappingURL=marked.esm.js.map\n","function extend (destination) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (source.hasOwnProperty(key)) destination[key] = source[key];\n }\n }\n return destination\n}\n\nfunction repeat (character, count) {\n return Array(count + 1).join(character)\n}\n\nfunction trimLeadingNewlines (string) {\n return string.replace(/^\\n*/, '')\n}\n\nfunction trimTrailingNewlines (string) {\n // avoid match-at-end regexp bottleneck, see #370\n var indexEnd = string.length;\n while (indexEnd > 0 && string[indexEnd - 1] === '\\n') indexEnd--;\n return string.substring(0, indexEnd)\n}\n\nvar blockElements = [\n 'ADDRESS', 'ARTICLE', 'ASIDE', 'AUDIO', 'BLOCKQUOTE', 'BODY', 'CANVAS',\n 'CENTER', 'DD', 'DIR', 'DIV', 'DL', 'DT', 'FIELDSET', 'FIGCAPTION', 'FIGURE',\n 'FOOTER', 'FORM', 'FRAMESET', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HEADER',\n 'HGROUP', 'HR', 'HTML', 'ISINDEX', 'LI', 'MAIN', 'MENU', 'NAV', 'NOFRAMES',\n 'NOSCRIPT', 'OL', 'OUTPUT', 'P', 'PRE', 'SECTION', 'TABLE', 'TBODY', 'TD',\n 'TFOOT', 'TH', 'THEAD', 'TR', 'UL'\n];\n\nfunction isBlock (node) {\n return is(node, blockElements)\n}\n\nvar voidElements = [\n 'AREA', 'BASE', 'BR', 'COL', 'COMMAND', 'EMBED', 'HR', 'IMG', 'INPUT',\n 'KEYGEN', 'LINK', 'META', 'PARAM', 'SOURCE', 'TRACK', 'WBR'\n];\n\nfunction isVoid (node) {\n return is(node, voidElements)\n}\n\nfunction hasVoid (node) {\n return has(node, voidElements)\n}\n\nvar meaningfulWhenBlankElements = [\n 'A', 'TABLE', 'THEAD', 'TBODY', 'TFOOT', 'TH', 'TD', 'IFRAME', 'SCRIPT',\n 'AUDIO', 'VIDEO'\n];\n\nfunction isMeaningfulWhenBlank (node) {\n return is(node, meaningfulWhenBlankElements)\n}\n\nfunction hasMeaningfulWhenBlank (node) {\n return has(node, meaningfulWhenBlankElements)\n}\n\nfunction is (node, tagNames) {\n return tagNames.indexOf(node.nodeName) >= 0\n}\n\nfunction has (node, tagNames) {\n return (\n node.getElementsByTagName &&\n tagNames.some(function (tagName) {\n return node.getElementsByTagName(tagName).length\n })\n )\n}\n\nvar rules = {};\n\nrules.paragraph = {\n filter: 'p',\n\n replacement: function (content) {\n return '\\n\\n' + content + '\\n\\n'\n }\n};\n\nrules.lineBreak = {\n filter: 'br',\n\n replacement: function (content, node, options) {\n return options.br + '\\n'\n }\n};\n\nrules.heading = {\n filter: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n\n replacement: function (content, node, options) {\n var hLevel = Number(node.nodeName.charAt(1));\n\n if (options.headingStyle === 'setext' && hLevel < 3) {\n var underline = repeat((hLevel === 1 ? '=' : '-'), content.length);\n return (\n '\\n\\n' + content + '\\n' + underline + '\\n\\n'\n )\n } else {\n return '\\n\\n' + repeat('#', hLevel) + ' ' + content + '\\n\\n'\n }\n }\n};\n\nrules.blockquote = {\n filter: 'blockquote',\n\n replacement: function (content) {\n content = content.replace(/^\\n+|\\n+$/g, '');\n content = content.replace(/^/gm, '> ');\n return '\\n\\n' + content + '\\n\\n'\n }\n};\n\nrules.list = {\n filter: ['ul', 'ol'],\n\n replacement: function (content, node) {\n var parent = node.parentNode;\n if (parent.nodeName === 'LI' && parent.lastElementChild === node) {\n return '\\n' + content\n } else {\n return '\\n\\n' + content + '\\n\\n'\n }\n }\n};\n\nrules.listItem = {\n filter: 'li',\n\n replacement: function (content, node, options) {\n content = content\n .replace(/^\\n+/, '') // remove leading newlines\n .replace(/\\n+$/, '\\n') // replace trailing newlines with just a single one\n .replace(/\\n/gm, '\\n '); // indent\n var prefix = options.bulletListMarker + ' ';\n var parent = node.parentNode;\n if (parent.nodeName === 'OL') {\n var start = parent.getAttribute('start');\n var index = Array.prototype.indexOf.call(parent.children, node);\n prefix = (start ? Number(start) + index : index + 1) + '. ';\n }\n return (\n prefix + content + (node.nextSibling && !/\\n$/.test(content) ? '\\n' : '')\n )\n }\n};\n\nrules.indentedCodeBlock = {\n filter: function (node, options) {\n return (\n options.codeBlockStyle === 'indented' &&\n node.nodeName === 'PRE' &&\n node.firstChild &&\n node.firstChild.nodeName === 'CODE'\n )\n },\n\n replacement: function (content, node, options) {\n return (\n '\\n\\n ' +\n node.firstChild.textContent.replace(/\\n/g, '\\n ') +\n '\\n\\n'\n )\n }\n};\n\nrules.fencedCodeBlock = {\n filter: function (node, options) {\n return (\n options.codeBlockStyle === 'fenced' &&\n node.nodeName === 'PRE' &&\n node.firstChild &&\n node.firstChild.nodeName === 'CODE'\n )\n },\n\n replacement: function (content, node, options) {\n var className = node.firstChild.getAttribute('class') || '';\n var language = (className.match(/language-(\\S+)/) || [null, ''])[1];\n var code = node.firstChild.textContent;\n\n var fenceChar = options.fence.charAt(0);\n var fenceSize = 3;\n var fenceInCodeRegex = new RegExp('^' + fenceChar + '{3,}', 'gm');\n\n var match;\n while ((match = fenceInCodeRegex.exec(code))) {\n if (match[0].length >= fenceSize) {\n fenceSize = match[0].length + 1;\n }\n }\n\n var fence = repeat(fenceChar, fenceSize);\n\n return (\n '\\n\\n' + fence + language + '\\n' +\n code.replace(/\\n$/, '') +\n '\\n' + fence + '\\n\\n'\n )\n }\n};\n\nrules.horizontalRule = {\n filter: 'hr',\n\n replacement: function (content, node, options) {\n return '\\n\\n' + options.hr + '\\n\\n'\n }\n};\n\nrules.inlineLink = {\n filter: function (node, options) {\n return (\n options.linkStyle === 'inlined' &&\n node.nodeName === 'A' &&\n node.getAttribute('href')\n )\n },\n\n replacement: function (content, node) {\n var href = node.getAttribute('href');\n if (href) href = href.replace(/([()])/g, '\\\\$1');\n var title = cleanAttribute(node.getAttribute('title'));\n if (title) title = ' \"' + title.replace(/\"/g, '\\\\\"') + '\"';\n return '[' + content + '](' + href + title + ')'\n }\n};\n\nrules.referenceLink = {\n filter: function (node, options) {\n return (\n options.linkStyle === 'referenced' &&\n node.nodeName === 'A' &&\n node.getAttribute('href')\n )\n },\n\n replacement: function (content, node, options) {\n var href = node.getAttribute('href');\n var title = cleanAttribute(node.getAttribute('title'));\n if (title) title = ' \"' + title + '\"';\n var replacement;\n var reference;\n\n switch (options.linkReferenceStyle) {\n case 'collapsed':\n replacement = '[' + content + '][]';\n reference = '[' + content + ']: ' + href + title;\n break\n case 'shortcut':\n replacement = '[' + content + ']';\n reference = '[' + content + ']: ' + href + title;\n break\n default:\n var id = this.references.length + 1;\n replacement = '[' + content + '][' + id + ']';\n reference = '[' + id + ']: ' + href + title;\n }\n\n this.references.push(reference);\n return replacement\n },\n\n references: [],\n\n append: function (options) {\n var references = '';\n if (this.references.length) {\n references = '\\n\\n' + this.references.join('\\n') + '\\n\\n';\n this.references = []; // Reset references\n }\n return references\n }\n};\n\nrules.emphasis = {\n filter: ['em', 'i'],\n\n replacement: function (content, node, options) {\n if (!content.trim()) return ''\n return options.emDelimiter + content + options.emDelimiter\n }\n};\n\nrules.strong = {\n filter: ['strong', 'b'],\n\n replacement: function (content, node, options) {\n if (!content.trim()) return ''\n return options.strongDelimiter + content + options.strongDelimiter\n }\n};\n\nrules.code = {\n filter: function (node) {\n var hasSiblings = node.previousSibling || node.nextSibling;\n var isCodeBlock = node.parentNode.nodeName === 'PRE' && !hasSiblings;\n\n return node.nodeName === 'CODE' && !isCodeBlock\n },\n\n replacement: function (content) {\n if (!content) return ''\n content = content.replace(/\\r?\\n|\\r/g, ' ');\n\n var extraSpace = /^`|^ .*?[^ ].* $|`$/.test(content) ? ' ' : '';\n var delimiter = '`';\n var matches = content.match(/`+/gm) || [];\n while (matches.indexOf(delimiter) !== -1) delimiter = delimiter + '`';\n\n return delimiter + extraSpace + content + extraSpace + delimiter\n }\n};\n\nrules.image = {\n filter: 'img',\n\n replacement: function (content, node) {\n var alt = cleanAttribute(node.getAttribute('alt'));\n var src = node.getAttribute('src') || '';\n var title = cleanAttribute(node.getAttribute('title'));\n var titlePart = title ? ' \"' + title + '\"' : '';\n return src ? '![' + alt + ']' + '(' + src + titlePart + ')' : ''\n }\n};\n\nfunction cleanAttribute (attribute) {\n return attribute ? attribute.replace(/(\\n+\\s*)+/g, '\\n') : ''\n}\n\n/**\n * Manages a collection of rules used to convert HTML to Markdown\n */\n\nfunction Rules (options) {\n this.options = options;\n this._keep = [];\n this._remove = [];\n\n this.blankRule = {\n replacement: options.blankReplacement\n };\n\n this.keepReplacement = options.keepReplacement;\n\n this.defaultRule = {\n replacement: options.defaultReplacement\n };\n\n this.array = [];\n for (var key in options.rules) this.array.push(options.rules[key]);\n}\n\nRules.prototype = {\n add: function (key, rule) {\n this.array.unshift(rule);\n },\n\n keep: function (filter) {\n this._keep.unshift({\n filter: filter,\n replacement: this.keepReplacement\n });\n },\n\n remove: function (filter) {\n this._remove.unshift({\n filter: filter,\n replacement: function () {\n return ''\n }\n });\n },\n\n forNode: function (node) {\n if (node.isBlank) return this.blankRule\n var rule;\n\n if ((rule = findRule(this.array, node, this.options))) return rule\n if ((rule = findRule(this._keep, node, this.options))) return rule\n if ((rule = findRule(this._remove, node, this.options))) return rule\n\n return this.defaultRule\n },\n\n forEach: function (fn) {\n for (var i = 0; i < this.array.length; i++) fn(this.array[i], i);\n }\n};\n\nfunction findRule (rules, node, options) {\n for (var i = 0; i < rules.length; i++) {\n var rule = rules[i];\n if (filterValue(rule, node, options)) return rule\n }\n return void 0\n}\n\nfunction filterValue (rule, node, options) {\n var filter = rule.filter;\n if (typeof filter === 'string') {\n if (filter === node.nodeName.toLowerCase()) return true\n } else if (Array.isArray(filter)) {\n if (filter.indexOf(node.nodeName.toLowerCase()) > -1) return true\n } else if (typeof filter === 'function') {\n if (filter.call(rule, node, options)) return true\n } else {\n throw new TypeError('`filter` needs to be a string, array, or function')\n }\n}\n\n/**\n * The collapseWhitespace function is adapted from collapse-whitespace\n * by Luc Thevenard.\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2014 Luc Thevenard <lucthevenard@gmail.com>\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * collapseWhitespace(options) removes extraneous whitespace from an the given element.\n *\n * @param {Object} options\n */\nfunction collapseWhitespace (options) {\n var element = options.element;\n var isBlock = options.isBlock;\n var isVoid = options.isVoid;\n var isPre = options.isPre || function (node) {\n return node.nodeName === 'PRE'\n };\n\n if (!element.firstChild || isPre(element)) return\n\n var prevText = null;\n var keepLeadingWs = false;\n\n var prev = null;\n var node = next(prev, element, isPre);\n\n while (node !== element) {\n if (node.nodeType === 3 || node.nodeType === 4) { // Node.TEXT_NODE or Node.CDATA_SECTION_NODE\n var text = node.data.replace(/[ \\r\\n\\t]+/g, ' ');\n\n if ((!prevText || / $/.test(prevText.data)) &&\n !keepLeadingWs && text[0] === ' ') {\n text = text.substr(1);\n }\n\n // `text` might be empty at this point.\n if (!text) {\n node = remove(node);\n continue\n }\n\n node.data = text;\n\n prevText = node;\n } else if (node.nodeType === 1) { // Node.ELEMENT_NODE\n if (isBlock(node) || node.nodeName === 'BR') {\n if (prevText) {\n prevText.data = prevText.data.replace(/ $/, '');\n }\n\n prevText = null;\n keepLeadingWs = false;\n } else if (isVoid(node) || isPre(node)) {\n // Avoid trimming space around non-block, non-BR void elements and inline PRE.\n prevText = null;\n keepLeadingWs = true;\n } else if (prevText) {\n // Drop protection if set previously.\n keepLeadingWs = false;\n }\n } else {\n node = remove(node);\n continue\n }\n\n var nextNode = next(prev, node, isPre);\n prev = node;\n node = nextNode;\n }\n\n if (prevText) {\n prevText.data = prevText.data.replace(/ $/, '');\n if (!prevText.data) {\n remove(prevText);\n }\n }\n}\n\n/**\n * remove(node) removes the given node from the DOM and returns the\n * next node in the sequence.\n *\n * @param {Node} node\n * @return {Node} node\n */\nfunction remove (node) {\n var next = node.nextSibling || node.parentNode;\n\n node.parentNode.removeChild(node);\n\n return next\n}\n\n/**\n * next(prev, current, isPre) returns the next node in the sequence, given the\n * current and previous nodes.\n *\n * @param {Node} prev\n * @param {Node} current\n * @param {Function} isPre\n * @return {Node}\n */\nfunction next (prev, current, isPre) {\n if ((prev && prev.parentNode === current) || isPre(current)) {\n return current.nextSibling || current.parentNode\n }\n\n return current.firstChild || current.nextSibling || current.parentNode\n}\n\n/*\n * Set up window for Node.js\n */\n\nvar root = (typeof window !== 'undefined' ? window : {});\n\n/*\n * Parsing HTML strings\n */\n\nfunction canParseHTMLNatively () {\n var Parser = root.DOMParser;\n var canParse = false;\n\n // Adapted from https://gist.github.com/1129031\n // Firefox/Opera/IE throw errors on unsupported types\n try {\n // WebKit returns null on unsupported types\n if (new Parser().parseFromString('', 'text/html')) {\n canParse = true;\n }\n } catch (e) {}\n\n return canParse\n}\n\nfunction createHTMLParser () {\n var Parser = function () {};\n\n {\n if (shouldUseActiveX()) {\n Parser.prototype.parseFromString = function (string) {\n var doc = new window.ActiveXObject('htmlfile');\n doc.designMode = 'on'; // disable on-page scripts\n doc.open();\n doc.write(string);\n doc.close();\n return doc\n };\n } else {\n Parser.prototype.parseFromString = function (string) {\n var doc = document.implementation.createHTMLDocument('');\n doc.open();\n doc.write(string);\n doc.close();\n return doc\n };\n }\n }\n return Parser\n}\n\nfunction shouldUseActiveX () {\n var useActiveX = false;\n try {\n document.implementation.createHTMLDocument('').open();\n } catch (e) {\n if (root.ActiveXObject) useActiveX = true;\n }\n return useActiveX\n}\n\nvar HTMLParser = canParseHTMLNatively() ? root.DOMParser : createHTMLParser();\n\nfunction RootNode (input, options) {\n var root;\n if (typeof input === 'string') {\n var doc = htmlParser().parseFromString(\n // DOM parsers arrange elements in the <head> and <body>.\n // Wrapping in a custom element ensures elements are reliably arranged in\n // a single element.\n '<x-turndown id=\"turndown-root\">' + input + '</x-turndown>',\n 'text/html'\n );\n root = doc.getElementById('turndown-root');\n } else {\n root = input.cloneNode(true);\n }\n collapseWhitespace({\n element: root,\n isBlock: isBlock,\n isVoid: isVoid,\n isPre: options.preformattedCode ? isPreOrCode : null\n });\n\n return root\n}\n\nvar _htmlParser;\nfunction htmlParser () {\n _htmlParser = _htmlParser || new HTMLParser();\n return _htmlParser\n}\n\nfunction isPreOrCode (node) {\n return node.nodeName === 'PRE' || node.nodeName === 'CODE'\n}\n\nfunction Node (node, options) {\n node.isBlock = isBlock(node);\n node.isCode = node.nodeName === 'CODE' || node.parentNode.isCode;\n node.isBlank = isBlank(node);\n node.flankingWhitespace = flankingWhitespace(node, options);\n return node\n}\n\nfunction isBlank (node) {\n return (\n !isVoid(node) &&\n !isMeaningfulWhenBlank(node) &&\n /^\\s*$/i.test(node.textContent) &&\n !hasVoid(node) &&\n !hasMeaningfulWhenBlank(node)\n )\n}\n\nfunction flankingWhitespace (node, options) {\n if (node.isBlock || (options.preformattedCode && node.isCode)) {\n return { leading: '', trailing: '' }\n }\n\n var edges = edgeWhitespace(node.textContent);\n\n // abandon leading ASCII WS if left-flanked by ASCII WS\n if (edges.leadingAscii && isFlankedByWhitespace('left', node, options)) {\n edges.leading = edges.leadingNonAscii;\n }\n\n // abandon trailing ASCII WS if right-flanked by ASCII WS\n if (edges.trailingAscii && isFlankedByWhitespace('right', node, options)) {\n edges.trailing = edges.trailingNonAscii;\n }\n\n return { leading: edges.leading, trailing: edges.trailing }\n}\n\nfunction edgeWhitespace (string) {\n var m = string.match(/^(([ \\t\\r\\n]*)(\\s*))(?:(?=\\S)[\\s\\S]*\\S)?((\\s*?)([ \\t\\r\\n]*))$/);\n return {\n leading: m[1], // whole string for whitespace-only strings\n leadingAscii: m[2],\n leadingNonAscii: m[3],\n trailing: m[4], // empty for whitespace-only strings\n trailingNonAscii: m[5],\n trailingAscii: m[6]\n }\n}\n\nfunction isFlankedByWhitespace (side, node, options) {\n var sibling;\n var regExp;\n var isFlanked;\n\n if (side === 'left') {\n sibling = node.previousSibling;\n regExp = / $/;\n } else {\n sibling = node.nextSibling;\n regExp = /^ /;\n }\n\n if (sibling) {\n if (sibling.nodeType === 3) {\n isFlanked = regExp.test(sibling.nodeValue);\n } else if (options.preformattedCode && sibling.nodeName === 'CODE') {\n isFlanked = false;\n } else if (sibling.nodeType === 1 && !isBlock(sibling)) {\n isFlanked = regExp.test(sibling.textContent);\n }\n }\n return isFlanked\n}\n\nvar reduce = Array.prototype.reduce;\nvar escapes = [\n [/\\\\/g, '\\\\\\\\'],\n [/\\*/g, '\\\\*'],\n [/^-/g, '\\\\-'],\n [/^\\+ /g, '\\\\+ '],\n [/^(=+)/g, '\\\\$1'],\n [/^(#{1,6}) /g, '\\\\$1 '],\n [/`/g, '\\\\`'],\n [/^~~~/g, '\\\\~~~'],\n [/\\[/g, '\\\\['],\n [/\\]/g, '\\\\]'],\n [/^>/g, '\\\\>'],\n [/_/g, '\\\\_'],\n [/^(\\d+)\\. /g, '$1\\\\. ']\n];\n\nfunction TurndownService (options) {\n if (!(this instanceof TurndownService)) return new TurndownService(options)\n\n var defaults = {\n rules: rules,\n headingStyle: 'setext',\n hr: '* * *',\n bulletListMarker: '*',\n codeBlockStyle: 'indented',\n fence: '```',\n emDelimiter: '_',\n strongDelimiter: '**',\n linkStyle: 'inlined',\n linkReferenceStyle: 'full',\n br: ' ',\n preformattedCode: false,\n blankReplacement: function (content, node) {\n return node.isBlock ? '\\n\\n' : ''\n },\n keepReplacement: function (content, node) {\n return node.isBlock ? '\\n\\n' + node.outerHTML + '\\n\\n' : node.outerHTML\n },\n defaultReplacement: function (content, node) {\n return node.isBlock ? '\\n\\n' + content + '\\n\\n' : content\n }\n };\n this.options = extend({}, defaults, options);\n this.rules = new Rules(this.options);\n}\n\nTurndownService.prototype = {\n /**\n * The entry point for converting a string or DOM node to Markdown\n * @public\n * @param {String|HTMLElement} input The string or DOM node to convert\n * @returns A Markdown representation of the input\n * @type String\n */\n\n turndown: function (input) {\n if (!canConvert(input)) {\n throw new TypeError(\n input + ' is not a string, or an element/document/fragment node.'\n )\n }\n\n if (input === '') return ''\n\n var output = process.call(this, new RootNode(input, this.options));\n return postProcess.call(this, output)\n },\n\n /**\n * Add one or more plugins\n * @public\n * @param {Function|Array} plugin The plugin or array of plugins to add\n * @returns The Turndown instance for chaining\n * @type Object\n */\n\n use: function (plugin) {\n if (Array.isArray(plugin)) {\n for (var i = 0; i < plugin.length; i++) this.use(plugin[i]);\n } else if (typeof plugin === 'function') {\n plugin(this);\n } else {\n throw new TypeError('plugin must be a Function or an Array of Functions')\n }\n return this\n },\n\n /**\n * Adds a rule\n * @public\n * @param {String} key The unique key of the rule\n * @param {Object} rule The rule\n * @returns The Turndown instance for chaining\n * @type Object\n */\n\n addRule: function (key, rule) {\n this.rules.add(key, rule);\n return this\n },\n\n /**\n * Keep a node (as HTML) that matches the filter\n * @public\n * @param {String|Array|Function} filter The unique key of the rule\n * @returns The Turndown instance for chaining\n * @type Object\n */\n\n keep: function (filter) {\n this.rules.keep(filter);\n return this\n },\n\n /**\n * Remove a node that matches the filter\n * @public\n * @param {String|Array|Function} filter The unique key of the rule\n * @returns The Turndown instance for chaining\n * @type Object\n */\n\n remove: function (filter) {\n this.rules.remove(filter);\n return this\n },\n\n /**\n * Escapes Markdown syntax\n * @public\n * @param {String} string The string to escape\n * @returns A string with Markdown syntax escaped\n * @type String\n */\n\n escape: function (string) {\n return escapes.reduce(function (accumulator, escape) {\n return accumulator.replace(escape[0], escape[1])\n }, string)\n }\n};\n\n/**\n * Reduces a DOM node down to its Markdown string equivalent\n * @private\n * @param {HTMLElement} parentNode The node to convert\n * @returns A Markdown representation of the node\n * @type String\n */\n\nfunction process (parentNode) {\n var self = this;\n return reduce.call(parentNode.childNodes, function (output, node) {\n node = new Node(node, self.options);\n\n var replacement = '';\n if (node.nodeType === 3) {\n replacement = node.isCode ? node.nodeValue : self.escape(node.nodeValue);\n } else if (node.nodeType === 1) {\n replacement = replacementForNode.call(self, node);\n }\n\n return join(output, replacement)\n }, '')\n}\n\n/**\n * Appends strings as each rule requires and trims the output\n * @private\n * @param {String} output The conversion output\n * @returns A trimmed version of the ouput\n * @type String\n */\n\nfunction postProcess (output) {\n var self = this;\n this.rules.forEach(function (rule) {\n if (typeof rule.append === 'function') {\n output = join(output, rule.append(self.options));\n }\n });\n\n return output.replace(/^[\\t\\r\\n]+/, '').replace(/[\\t\\r\\n\\s]+$/, '')\n}\n\n/**\n * Converts an element node to its Markdown equivalent\n * @private\n * @param {HTMLElement} node The node to convert\n * @returns A Markdown representation of the node\n * @type String\n */\n\nfunction replacementForNode (node) {\n var rule = this.rules.forNode(node);\n var content = process.call(this, node);\n var whitespace = node.flankingWhitespace;\n if (whitespace.leading || whitespace.trailing) content = content.trim();\n return (\n whitespace.leading +\n rule.replacement(content, node, this.options) +\n whitespace.trailing\n )\n}\n\n/**\n * Joins replacement to the current output with appropriate number of new lines\n * @private\n * @param {String} output The current conversion output\n * @param {String} replacement The string to append to the output\n * @returns Joined output\n * @type String\n */\n\nfunction join (output, replacement) {\n var s1 = trimTrailingNewlines(output);\n var s2 = trimLeadingNewlines(replacement);\n var nls = Math.max(output.length - s1.length, replacement.length - s2.length);\n var separator = '\\n\\n'.substring(0, nls);\n\n return s1 + separator + s2\n}\n\n/**\n * Determines whether an input can be converted\n * @private\n * @param {String|HTMLElement} input Describe this parameter\n * @returns Describe what it returns\n * @type String|Object|Array|Boolean|Number\n */\n\nfunction canConvert (input) {\n return (\n input != null && (\n typeof input === 'string' ||\n (input.nodeType && (\n input.nodeType === 1 || input.nodeType === 9 || input.nodeType === 11\n ))\n )\n )\n}\n\nexport default TurndownService;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import dayjs from 'dayjs';\n/**\n * 現在のURLのオリジン\n */\nexport function origin() {\n return `${location.protocol}//${location.hostname}${location.port ? ':' + location.port : ''}`;\n}\n/**\n * 改行コードを改行タグに変換\n * @param text 対象のテキスト\n * @returns 変換されたテキスト\n */\nexport function nl2br(text) {\n return `${text}`.replaceAll(/\\r\\n|\\n\\r|\\r|\\n/g, '<br />');\n}\n/**\n * 改行タグを改行コードに変換\n * @param html\n * @returns 変換されたテキスト\n */\nexport function br2nl(html) {\n return `${html}`.replaceAll(/<\\s*br\\s*\\/?>/g, '\\r\\n');\n}\n/**\n * 数値をバイトサイズ単位にフォーマットする\n * @param byteSize 対象の数値\n * @param digits 小数点の桁数\n * @param autoFormat SI接頭辞をつけるかどうか\n * @returns フォーマットされた文字列\n */\nexport function formatByteSize(byteSize, digits = 2, autoFormat = true) {\n let compute = byteSize;\n let counter = 0;\n const unit = ['byte', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB'];\n if (autoFormat) {\n while (compute > 1024) {\n compute /= 1024;\n counter += 1;\n }\n if (counter === 0) {\n digits = 0;\n }\n return compute.toFixed(digits) + unit[counter];\n }\n else {\n return byteSize + unit[0];\n }\n}\n/**\n * Unixタイムスタンプを日付文字列に変換する\n * @param timestamp Unixタイムスタンプ\n * @param format フォーマット\n */\nexport function formatDate(timestamp, format) {\n return dayjs.unix(timestamp).format(format);\n}\n/**\n * YouTubeの動画URLからIDを抽出する\n *\n * 何も抽出できなかった場合 空文字列を返す\n *\n * 参考: http://stackoverflow.com/questions/6903823/regex-for-youtube-id\n * 以下の形式が対応可能\n * http://www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/0/FJUvudQsKCM\n * http://youtu.be/NLqAF9hrVbY\n * http://www.youtube.com/embed/NLqAF9hrVbY\n * https://www.youtube.com/embed/NLqAF9hrVbY\n * http://www.youtube.com/v/NLqAF9hrVbY?fs=1&hl=en_US\n * http://www.youtube.com/watch?v=NLqAF9hrVbY\n * http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I\n * http://www.youtube.com/watch?v=JYArUl0TzhA&feature=featured\n * @param idOrUrl YouTubeのURLもしくはID\n * @returns 抽出したID\n */\nexport function parseYTId(idOrUrl) {\n let id = '';\n if (!idOrUrl) {\n return id;\n }\n const match = idOrUrl.match(/(?:youtu\\.be\\/|youtube\\.com(?:\\/embed\\/|\\/v\\/|\\/watch\\?v=|\\/user\\/\\S+|\\/ytscreeningroom\\?v=))([\\w-]{10,12})\\b/);\n if (match) {\n id = match[1] ?? '';\n }\n else {\n id = idOrUrl;\n }\n return id;\n}\n/**\n * 正しいCSSクラス名かどうかチェックする\n * @param className チェック対象\n * @returns 結果\n */\nexport function isValidAsClassName(className) {\n const validClassName = /^-?[_a-z][\\w-]*$/i;\n return validClassName.test(className);\n}\n/**\n * background-imageからパスを取得する\n * @param value\n * @returns 結果\n */\nexport function getBackgroundImagePath(value) {\n return decodeURI(value.replace(/^url\\([\"']?([^\"']+)[\"']?\\)$/i, '$1').replace(origin(), ''));\n}\n/**\n *\n * @param html\n */\nexport function strToDOM(html) {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n const el = doc.body.firstElementChild;\n if (!el || !(el instanceof HTMLElement)) {\n throw new Error(`Element not found: ${html}`);\n }\n return el;\n}\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, safeSrc: src, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const r = new RegExp(`^${this.options.loose ? src[t.PRERELEASELOOSE] : src[t.PRERELEASE]}$`)\n const match = `-${identifier}`.match(r)\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","const SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // If the main part has no difference\n if (lowVersion.compareMain(highVersion) === 0) {\n if (lowVersion.minor && !lowVersion.patch) {\n return 'minor'\n }\n return 'patch'\n }\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are preleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","class LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n","const SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","/**\n *\n * @param doc\n * @param url\n */\nexport function appendStylesheetTo(doc, url) {\n const link = doc.createElement('link');\n link.rel = 'stylesheet';\n link.crossOrigin = 'anonymous';\n link.href = url;\n doc.head.append(link);\n}\n","export class ElementNotFoundError extends Error {\n static {\n this.prototype.name = 'ElementNotFoundError';\n }\n constructor(selector = 'unknown selector', options = {}) {\n const { additionalMessage, ...rest } = options;\n const message = `Selector didn't match: ${selector}${additionalMessage ? `: ${additionalMessage}` : ''}`;\n super(message, rest);\n }\n}\nexport class NoHTMLElementError extends Error {\n static {\n this.prototype.name = 'NoHTMLElementError';\n }\n constructor(selector = 'unknown selector', options = {}) {\n const { element, ...rest } = options;\n let message = `\"${selector}\" element is not HTMLElement`;\n if (element) {\n message += `: Its namespace is \"${element.namespaceURI}\"`;\n }\n super(message, rest);\n }\n}\n","import { ElementNotFoundError, NoHTMLElementError } from '../error/errors.js';\n/**\n *\n * @param selector\n */\nexport function getElement(selector) {\n const node = document.querySelector(selector);\n if (node === null) {\n throw new ElementNotFoundError(selector);\n }\n if (node instanceof HTMLElement) {\n return node;\n }\n throw new NoHTMLElementError(selector);\n}\n","import { appendStylesheetTo } from './dom-helpers/append-stylesheet-to.js';\nimport { getElement } from './dom-helpers/get-element.js';\nexport class EditorUI {\n #el;\n get el() {\n return this.#el;\n }\n constructor(name, elOrSelector, options) {\n this.#el = typeof elOrSelector === 'string' ? getElement(elOrSelector) : elOrSelector;\n this.#el.dataset.bgeComponent = name;\n if (options?.stylesheet) {\n const css = options.stylesheet;\n const blob = new Blob([css], { type: 'text/css' });\n const url = URL.createObjectURL(blob);\n appendStylesheetTo(this.el.ownerDocument, url);\n }\n }\n hide() {\n this.#el.hidden = true;\n }\n show() {\n this.#el.hidden = false;\n }\n visible() {\n return !!this.#el.hidden;\n }\n}\n","import { EditorUI } from './editor-ui.js';\nexport class EditorDialog extends EditorUI {\n engine;\n #body = document.createElement('div');\n #cleanUpHook = null;\n #dialog = document.createElement('dialog');\n #el;\n #footer = document.createElement('footer');\n #form = document.createElement('form');\n constructor(name, engine, el, options) {\n super(`${name}-dialog`, el);\n this.engine = engine;\n this.#el = el;\n this.#form.noValidate = true;\n this.#form.id = `${name}-dialog-form`;\n this.#form.append(this.#el);\n this.#body.append(this.#form);\n if (options.buttons?.close) {\n const button = document.createElement('button');\n button.textContent = options.buttons.close;\n button.type = 'button';\n button.addEventListener('click', () => {\n this.close();\n });\n this.#footer.append(button);\n }\n if (options.buttons?.complete) {\n const button = document.createElement('button');\n button.textContent = options.buttons.complete;\n button.type = 'submit';\n button.setAttribute('form', this.#form.id);\n this.#footer.append(button);\n }\n this.#dialog.append(this.#body, this.#footer);\n this.#form.method = 'dialog';\n this.#form.addEventListener('submit', (e) => {\n const submitter = this.#form.ownerDocument.activeElement;\n const cancel = this.onSubmit(e, submitter);\n if (cancel === false || e.defaultPrevented) {\n e.preventDefault();\n return false;\n }\n e.preventDefault();\n const formData = new FormData(this.#form);\n this.complete(formData);\n return;\n });\n this.#sanitize(this.#el);\n document.body.append(this.#dialog);\n this.#dialog.classList.add('bge-dialog');\n this.#dialog.addEventListener('close', this.closed.bind(this));\n }\n clearTemplate() {\n this.#el.innerHTML = '';\n }\n close() {\n this.#dialog.close();\n }\n closed() {\n this.#cleanUp();\n this.clearTemplate();\n this.#dialog.style.removeProperty('display');\n this.#dialog.style.removeProperty('width');\n this.#dialog.style.removeProperty('height');\n this.reset();\n this.engine.save();\n }\n complete(\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n formData) {\n this.close();\n }\n dispatchEvent(event) {\n return this.#el.dispatchEvent(event);\n }\n find(selector) {\n return this.#el.querySelector(selector);\n }\n findAll(selector) {\n return this.#el.querySelectorAll(selector);\n }\n onSubmit(\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n e, \n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n submitter) { }\n open(\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ...args) {\n if (this.engine.isProcessed) {\n return;\n }\n this.#dialog.showModal();\n }\n reset() {\n this.#form.reset();\n }\n setTemplate(...nodes) {\n this.#sanitize(...nodes);\n this.#el.append(...nodes);\n this.#createEditorComponents();\n }\n #cleanUp() {\n if (this.#cleanUpHook) {\n this.#cleanUpHook();\n }\n }\n #createEditorComponents() {\n for (const el of this.findAll('[data-bge-editor-ui]')) {\n const editorComponentSubClassName = el.dataset.bgeEditorUi;\n if (editorComponentSubClassName && this.#isUIName(editorComponentSubClassName)) {\n const cleanUpHook = this.engine.ui[editorComponentSubClassName]?.(el, this.engine);\n if (cleanUpHook) {\n this.#cleanUpHook = cleanUpHook.cleanUp;\n }\n }\n }\n }\n #isUIName(name) {\n return name in this.engine.ui;\n }\n #sanitize(...nodes) {\n for (const node of nodes) {\n if (!(node instanceof HTMLElement)) {\n continue;\n }\n for (const el of node.querySelectorAll('input, textarea')) {\n el.autocapitalize = 'off';\n el.autocomplete = 'off';\n }\n for (const el of node.querySelectorAll('button')) {\n el.type = 'button';\n }\n }\n }\n}\n","import { EditorDialog } from './editor-dialog.js';\nexport class BlockCatalogDialog extends EditorDialog {\n catalog;\n constructor(engine, catalog, blockTemplateMap) {\n super('catalog', engine, document.createElement('div'), {\n buttons: {\n close: 'キャンセル',\n },\n });\n this.catalog = new Map(Object.entries(catalog).map(([category, blocks]) => {\n const blockMap = new Map(Object.entries(blocks).map(([name, block]) => {\n const blockTemplace = blockTemplateMap[name];\n if (!blockTemplace) {\n throw new Error(`Block \"${name}\" is not found.`);\n }\n const blockInfo = typeof block === 'string'\n ? {\n label: block || name,\n svg: blockTemplace.icon,\n }\n : {\n ...blockTemplace,\n svg: blockTemplace.icon,\n ...block,\n };\n return [name, blockInfo];\n }));\n return [category, blockMap];\n }));\n }\n open() {\n const component = document.createElement('div');\n component.dataset.bgeEditorUi = 'blockCatalog';\n this.setTemplate(component);\n super.open();\n }\n}\n","import { EditorDialog } from './editor-dialog.js';\nexport class BlockOptionsDialog extends EditorDialog {\n #currentBlock = null;\n constructor(engine) {\n super('options', engine, document.createElement('div'), {\n buttons: {\n close: 'キャンセル',\n complete: '決定',\n },\n });\n }\n /**\n *\n * @param callback\n * @deprecated\n */\n onChangeBlock(callback) {\n this.engine.el.addEventListener('bge:block-change', (e) => {\n callback(e.detail.block);\n });\n }\n setContainerProps(formData) {\n if (!this.#currentBlock) {\n return;\n }\n const columns = formData.get('bge-options-columns');\n const justify = formData.get('bge-options-justify');\n const align = formData.get('bge-options-align');\n const float = formData.get('bge-options-float');\n const classes = formData.get('bge-options-classes');\n const id = formData.get('bge-options-id');\n const styles = formData\n .keys()\n .toArray()\n .filter((key) => key.startsWith('bge-options-style-'))\n .map((key) => {\n const propName = formData.get(key);\n const category = key.replace('bge-options-style-', '');\n return [category, propName];\n });\n const currentOptions = this.#currentBlock.exportOptions();\n const newOptions = {\n props: {\n ...currentOptions.props,\n columns: columns ? Number(columns) : null,\n justify: justify,\n align: align,\n float: float,\n },\n classList: classes ? classes.toString().split(/\\s+/) : currentOptions.classList,\n id: id ? id.toString() : currentOptions.id,\n style: Object.fromEntries(styles),\n };\n this.#currentBlock.importOptions(newOptions);\n }\n complete(formData) {\n this.setContainerProps(formData);\n super.complete(formData);\n }\n open() {\n const component = document.createElement('div');\n component.dataset.bgeEditorUi = 'blockOptions';\n this.setTemplate(component);\n super.open();\n this.reset();\n const currentBlock = this.engine.getCurrentBlock();\n if (currentBlock) {\n this.#currentBlock = currentBlock;\n }\n }\n reset() {\n this.#currentBlock = null;\n super.reset();\n }\n}\n","export class ComponentObserver {\n #listeners = new Map();\n notify(name, payload) {\n window.dispatchEvent(new CustomEvent(`bge:${name}`, { detail: payload }));\n }\n off() {\n for (const [listener, name] of this.#listeners) {\n // @ts-ignore\n window.removeEventListener(`bge:${name}`, listener);\n }\n this.#listeners.clear();\n }\n on(name, listener) {\n this.#listeners.set(listener, name);\n window.addEventListener(`bge:${name}`, (e) => listener(e.detail));\n }\n}\n","/**\n *\n * @param items\n * @param generalCSS\n */\nexport function createComponentStylesheet(items, generalCSS) {\n const itemStyles = Object.values(items)\n .map((item) => item.style)\n .filter(Boolean)\n .join('\\n');\n const css = `${itemStyles}\\n${generalCSS}`;\n const blob = new Blob([css], { type: 'text/css' });\n const url = URL.createObjectURL(blob);\n return url;\n}\n","const PREFIX = '--bge-options-';\n/**\n *\n * @param editorArea\n */\nexport function getCustomProperties(editorArea) {\n const categories = new Map();\n const defaultValues = new Map();\n // From iframe scope\n const CSSStyleRule = editorArea.containerElement.ownerDocument.defaultView?.CSSStyleRule;\n if (CSSStyleRule === undefined) {\n throw new Error('CSSStyleRule is not available');\n }\n for (const styleSheet of editorArea.containerElement.ownerDocument.styleSheets) {\n try {\n for (const cssRule of styleSheet.cssRules) {\n if (cssRule instanceof CSSStyleRule && cssRule.selectorText === ':root') {\n for (const cssProperty of cssRule.style) {\n if (cssProperty.startsWith(PREFIX)) {\n const [type, key] = cssProperty.slice(PREFIX.length).split('-');\n if (!type) {\n continue;\n }\n const currentMap = categories.get(type) ?? new Map();\n if (key) {\n const value = cssRule.style.getPropertyValue(cssProperty);\n currentMap.set(key, { value, isDefault: false });\n }\n else {\n const value = cssRule.style.getPropertyValue(cssProperty);\n defaultValues.set(type, value);\n }\n categories.set(type, currentMap);\n }\n }\n }\n }\n }\n catch (error) {\n if (error instanceof Error && error.name === 'SecurityError') {\n continue;\n }\n throw error;\n }\n }\n for (const [category, value] of defaultValues.entries()) {\n const currentMap = categories.get(category);\n if (!currentMap) {\n continue;\n }\n for (const [key, customProperty] of currentMap.entries()) {\n if (value === `var(--bge-options-${category}-${key})`) {\n customProperty.isDefault = true;\n }\n }\n }\n return categories;\n}\n","const getCSSPropertyAsNumberCache = new Map();\n/**\n *\n * @param el\n * @param property\n */\nexport function getCSSPropertyAsNumber(el, property) {\n const value = window.getComputedStyle(el).getPropertyValue(property);\n if (value === '') {\n return 0;\n }\n const cached = getCSSPropertyAsNumberCache.get(value);\n if (cached !== undefined) {\n return cached;\n }\n const i_or_nan = Number.parseInt(value, 10);\n const result = Number.isNaN(i_or_nan) ? 0 : i_or_nan;\n getCSSPropertyAsNumberCache.set(value, result);\n return result;\n}\n","import { BurgerBlock } from './block/block.js';\nimport { getCSSPropertyAsNumber } from './dom-helpers/get-css-property-as-number.js';\nimport { EditorUI } from './editor-ui.js';\nexport class BlockMenu extends EditorUI {\n #engine;\n #mouseX = 0;\n #mouseY = 0;\n #raf = 0;\n constructor(engine, el, create) {\n super('block-menu', el, {\n stylesheet: `\n\t\t\t\t[data-bge-component='block-menu'] {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tz-index: 2147483647;\n\t\t\t\t\tpointer-events: none;\n\n\t\t\t\t\t> * {\n\t\t\t\t\t\tpointer-events: auto;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t`,\n });\n create(this.el);\n this.#engine = engine;\n const update = () => {\n cancelAnimationFrame(this.#raf);\n if (engine.isProcessed) {\n this.hide();\n return;\n }\n this.#raf = requestAnimationFrame(() => {\n this.#updatePosition();\n });\n };\n this.el.ownerDocument.body.addEventListener('mousemove', (e) => {\n this.#mouseX = e.pageX;\n this.#mouseY = e.pageY;\n update();\n });\n globalThis.addEventListener('resize', this.hide.bind(this));\n this.el.ownerDocument.body.addEventListener('mouseleave', this.hide.bind(this));\n this.el.ownerDocument.addEventListener('mouseleave', this.hide.bind(this));\n this.el.ownerDocument.defaultView?.addEventListener('mouseleave', this.hide.bind(this));\n const observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n for (const node of mutation.addedNodes) {\n if (!(node instanceof HTMLElement)) {\n continue;\n }\n const images = node.querySelectorAll('img');\n for (const img of images) {\n img.addEventListener('load', update, { once: true });\n img.addEventListener('error', update, { once: true });\n img.addEventListener('abort', update, { once: true });\n }\n }\n }\n });\n observer.observe(this.el.ownerDocument, { childList: true, subtree: true });\n engine.el.addEventListener('bge:saved', update);\n }\n #getSelectedBlock() {\n const $blocks = [\n ...this.el.ownerDocument.body.querySelectorAll('[data-bge-container]'),\n ];\n for (const $block of $blocks) {\n const rect = $block.getBoundingClientRect();\n const marginBlockEnd = getCSSPropertyAsNumber($block, 'margin-block-end');\n const onMouse = rect.left <= this.#mouseX &&\n this.#mouseX <= rect.right &&\n rect.top <= this.#mouseY &&\n this.#mouseY <= rect.bottom + marginBlockEnd;\n if (onMouse) {\n const block = BurgerBlock.getBlock($block);\n return { block, rect, marginBlockEnd };\n }\n }\n return null;\n }\n #updatePosition() {\n const selected = this.#getSelectedBlock();\n if (!selected) {\n this.hide();\n return;\n }\n this.show();\n const { block, rect, marginBlockEnd } = selected;\n this.#engine.componentObserver.notify('select-block', {\n block,\n width: rect.width,\n height: rect.height,\n x: rect.left,\n y: rect.top,\n marginBlockEnd,\n });\n }\n hide() {\n super.hide();\n this.#mouseX = 0;\n this.#mouseY = 0;\n this.#engine.clearCurrentBlock();\n }\n}\n","const removeAttrNameIgnoreList = new Set([\n 'data-bge-container',\n 'data-bge-name',\n 'style',\n 'class',\n 'id',\n]);\n/**\n *\n * @param el\n */\nexport function sanitizeAttrs(el) {\n sanitizeStyle(el);\n const attrList = [...el.attributes];\n for (const attr of attrList) {\n if (!removeAttrNameIgnoreList.has(attr.localName)) {\n el.removeAttribute(attr.name);\n }\n }\n}\n/**\n *\n * @param el\n */\nfunction sanitizeStyle(el) {\n const customProperties = [];\n const style = el.style;\n for (const property of style) {\n if (property.startsWith('--bge-options-')) {\n customProperties.push([property, style.getPropertyValue(property)]);\n }\n }\n el.removeAttribute('style');\n for (const [property, value] of customProperties) {\n style.setProperty(property, value);\n }\n}\n","import { EditorUI } from './editor-ui.js';\nexport class InitialInsertionButton extends EditorUI {\n #afterInsert;\n #engine;\n #insertionPoint;\n constructor(insertionPoint, engine, afterInsert) {\n super('initial-insertion', document.createElement('div'));\n this.#insertionPoint = insertionPoint;\n this.#engine = engine;\n this.#afterInsert = afterInsert;\n this.el.innerHTML =\n '<button class=\"insert_after\" type=\"button\">下に要素を追加</button>';\n const button = this.el.querySelector('button');\n if (button) {\n button.addEventListener('click', this.#insert.bind(this));\n }\n }\n #insert() {\n if (this.#engine.isProcessed) {\n return;\n }\n this.hide();\n this.#insertionPoint.set(null, false);\n this.#afterInsert();\n }\n}\n","import { EditorUI } from './editor-ui.js';\nexport class InsertionPoint extends EditorUI {\n #engine;\n #insertTarget = null;\n constructor(engine) {\n super('insert-point', document.createElement('div'));\n this.#engine = engine;\n }\n insert(insertionBlock) {\n if (this.#insertTarget === null) {\n throw new Error(`InsertionPoint is not set`);\n }\n if (this.#insertTarget.block === null) {\n this.#engine.content.containerElement.append(this.el);\n }\n else {\n const targetElement = this.#insertTarget.toTop\n ? this.#insertTarget.block.el\n : this.#insertTarget.block.el.nextElementSibling;\n this.#engine.content.containerElement.insertBefore(this.el, targetElement);\n }\n return new Promise((resolve) => {\n this.#engine.isProcessed = true;\n if (this.el.parentElement === null) {\n throw new Error(`InsertionPoint is not added to the DOM tree`);\n }\n this.el.append(insertionBlock.el);\n this.#engine.content.update();\n this.el.style.height = 'auto';\n this.el.style.height = `${this.el.getBoundingClientRect().height}px`;\n // 要素を非表示にする\n this.el.style.display = 'none';\n // アニメーションの準備\n this.el.style.overflow = 'hidden';\n this.el.style.transition = 'height 0.4s ease';\n this.el.style.height = '0';\n // 表示してアニメーション開始\n this.el.style.display = '';\n // 次のフレームでアニメーション実行(表示状態に)\n requestAnimationFrame(() => {\n this.el.style.height = `${this.el.scrollHeight}px`;\n // アニメーション完了後の処理\n this.el.addEventListener('transitionend', () => {\n // unwrap相当の処理: 親要素の前に要素を挿入し、親要素を削除\n const parent = this.el;\n const child = insertionBlock.el;\n if (parent.parentNode) {\n parent.parentNode.insertBefore(child, parent);\n }\n this.el.remove();\n this.#engine.save();\n this.#engine.isProcessed = false;\n resolve(insertionBlock);\n }, { once: true });\n });\n });\n }\n set(targetBlock, toTop) {\n this.#insertTarget = {\n block: targetBlock,\n toTop,\n };\n }\n}\n","import { BurgerBlock } from './block/block.js';\nimport { BlockMenu } from './block-menu.js';\nimport { appendStylesheetTo } from './dom-helpers/append-stylesheet-to.js';\nimport { sanitizeAttrs } from './dom-helpers/sanitize-attrs.js';\nimport { EditorUI } from './editor-ui.js';\nimport { InitialInsertionButton } from './initial-insertion-button.js';\nimport { InsertionPoint } from './insertion-point.js';\nconst CONTAINER_PADDING = 10;\nconst CONTENT_ID = 'bge-editable-area';\nexport class EditableArea extends EditorUI {\n blockMenu;\n insertionPoint;\n type;\n #containerElement;\n #engine;\n #frameElement;\n #insertionButton;\n #isVisualMode = true;\n #sourceTextarea;\n get containerElement() {\n return this.#containerElement;\n }\n get isVisualMode() {\n return this.#isVisualMode;\n }\n constructor(type, initialContent, engine, createBlockMenu, stylesheets = [], classList = []) {\n const viewNode = document.createElement('div');\n super(`${type}-editable-area`, viewNode);\n this.type = type;\n this.#engine = engine;\n this.#engine.viewArea.append(viewNode);\n this.#sourceTextarea = document.createElement('textarea');\n this.#sourceTextarea.spellcheck = false;\n viewNode.append(this.#sourceTextarea);\n this.#frameElement = document.createElement('iframe');\n this.#frameElement.setAttribute('width', '100%;');\n this.#frameElement.setAttribute('scrolling', 'no');\n viewNode.append(this.#frameElement);\n if (!this.#frameElement.contentWindow) {\n throw new Error('Impossible error: The contentWindow of created iframe is null.');\n }\n this.#frameElement.contentWindow.document.open();\n this.#frameElement.contentWindow.document.close();\n for (const cssPath of stylesheets) {\n appendStylesheetTo(this.#frameElement.contentWindow.document, cssPath);\n }\n this.#frameElement.contentWindow.document.body.setAttribute('style', 'margin: 0; border: 0;');\n this.#containerElement =\n this.#frameElement.contentWindow.document.createElement('div');\n this.#containerElement.id = CONTENT_ID;\n this.#containerElement.style.setProperty('padding', `${CONTAINER_PADDING}px`, 'important');\n this.#containerElement.style.setProperty('overflow', 'hidden', 'important');\n this.#containerElement.style.setProperty('margin', '0', 'important');\n this.#containerElement.style.setProperty('box-sizing', 'border-box', 'important');\n this.#containerElement.classList.add(...classList);\n this.#containerElement.innerHTML = initialContent;\n this.#containerElement.dataset.bgeComponent = 'editable-area';\n this.blockMenu = new BlockMenu(this.#engine, this.#frameElement.contentWindow.document.createElement('div'), (el) => createBlockMenu(el, engine));\n this.insertionPoint = new InsertionPoint(this.#engine);\n this.#insertionButton = new InitialInsertionButton(this.insertionPoint, this.#engine, () => this.#engine.blockCatalogDialog.open());\n const els = this.#frameElement.contentWindow.document.createDocumentFragment();\n els.append(this.blockMenu.el);\n els.append(this.#insertionButton.el);\n els.append(this.#containerElement);\n this.#frameElement.contentWindow.document.body.append(els);\n window.addEventListener('resize', this.#setHeightTrigger.bind(this), true);\n // eslint-disable-next-line no-restricted-syntax\n window.addEventListener('DOMContentLoaded', this.#setHeightTrigger.bind(this), false);\n window.document.addEventListener('load', this.#setHeightTrigger.bind(this), true);\n this.#frameElement.contentWindow.addEventListener('resize', this.#setHeightTrigger.bind(this), true);\n // eslint-disable-next-line no-restricted-syntax\n this.#frameElement.contentWindow.addEventListener('DOMContentLoaded', this.#setHeightTrigger.bind(this), false);\n this.#frameElement.contentWindow.document.addEventListener('load', this.#setHeightTrigger.bind(this), true);\n this.#sourceTextarea.addEventListener('blur', this.#saveSource.bind(this), false);\n }\n async copyTo(editableArea) {\n editableArea.setContentsAsString(this.getContentsAsString());\n await editableArea.#init();\n }\n getContentsAsString() {\n return this.#containerElement.innerHTML.trim();\n }\n isEmpty() {\n return this.getContentsAsString() === '';\n }\n isSame(editableArea) {\n return this.getContentsAsString() === editableArea.getContentsAsString();\n }\n save(content) {\n if (content) {\n this.setContentsAsString(content);\n }\n for (const el of this.containerElement.querySelectorAll('[data-bge-container]')) {\n sanitizeAttrs(el);\n }\n this.update();\n const value = this.getContentsAsString();\n this.#sourceTextarea.value = value;\n }\n setContentsAsDOM(element) {\n this.#containerElement.innerHTML = '';\n this.#containerElement.insertAdjacentElement('beforeend', element);\n }\n setContentsAsString(htmlString) {\n this.#containerElement.innerHTML = htmlString.trim();\n }\n toggleDisplayMode() {\n this.#saveSource();\n this.#switchMode(!this.#isVisualMode);\n }\n update() {\n this.#setHeightTrigger();\n this.#showInsertionButton();\n }\n async #init() {\n if (!this.isEmpty() &&\n this.containerElement.querySelectorAll('[data-bge-name], [data-bgb], .bgb-container, .bg-editor-block-container, .cb-editor-block-container').length === 0) {\n const block = await BurgerBlock.createUnknownBlock(this.getContentsAsString(), this.#engine);\n this.setContentsAsDOM(block.el);\n }\n else {\n for (const el of this.containerElement.children) {\n if (el.matches('[data-bge-name]')) {\n continue;\n }\n await BurgerBlock.createUnknownBlock(el.outerHTML, this.#engine);\n el.remove();\n }\n for (const el of this.containerElement.querySelectorAll('[data-bge-name]')) {\n await BurgerBlock.new(this.#engine, el);\n }\n }\n this.#engine.migrationCheck(this.#containerElement);\n this.save();\n this.#switchMode(true);\n }\n #saveSource() {\n if (!this.#isVisualMode) {\n this.setContentsAsString(this.#sourceTextarea.value);\n this.save();\n }\n }\n #setHeight() {\n const height = this.#containerElement.getBoundingClientRect().height + CONTAINER_PADDING * 2;\n this.#frameElement.setAttribute('height', `${height}`);\n }\n #setHeightTrigger() {\n requestAnimationFrame(() => this.#setHeight());\n }\n #showInsertionButton() {\n if (this.isEmpty()) {\n this.#insertionButton.show();\n }\n else {\n this.#insertionButton.hide();\n }\n }\n #switchMode(visualMode) {\n this.#isVisualMode = visualMode;\n this.el.dataset.bgeComponentMode = this.#isVisualMode ? 'visual' : 'source';\n this.#frameElement.hidden = !visualMode;\n this.#sourceTextarea.hidden = !!visualMode;\n this.#sourceTextarea.disabled = !!visualMode;\n }\n static async new(type, initialContent, engine, createBlockMenu, stylesheets, classList) {\n const editableArea = new EditableArea(type, initialContent, engine, createBlockMenu, stylesheets, classList);\n await editableArea.#init();\n return editableArea;\n }\n}\n","/**\n *\n * @param type\n * @param eventData\n */\nexport function createBgeEvent(type, eventData) {\n return new CustomEvent(type, { detail: eventData });\n}\n","/**\n *\n * @param kvs\n */\nexport function arrayToHash(kvs) {\n const result = {};\n for (const kv of kvs) {\n const k = kv[0];\n const v = kv[1];\n const toArray = kv[2];\n if (!toArray) {\n result[k] = v;\n continue;\n }\n const arrayPropVal = result[k];\n if (Array.isArray(arrayPropVal)) {\n arrayPropVal.push(v);\n continue;\n }\n result[k] = k in result ? [arrayPropVal, v] : [v];\n }\n return result;\n}\n/**\n *\n * @param str\n */\nexport function kebabCase(str) {\n return str.replaceAll(/([A-Z])/g, '-$1').toLowerCase();\n}\n/**\n *\n * @param str\n */\nexport function camelCase(str) {\n return str.replaceAll(/-([a-z])/g, (_, c) => c.toUpperCase());\n}\n","import { camelCase } from './utils.js';\n/**\n *\n * @param field\n */\nexport function fieldNameParser(field) {\n field = field.trim().toLowerCase();\n if (!field) {\n throw new Error('Field name is empty.');\n }\n let [fieldName, propName] = field.split(':');\n propName = propName?.trim() || '';\n fieldName = fieldName?.trim() || propName || field;\n return {\n fieldName: camelCase(fieldName),\n propName,\n };\n}\n","import { fieldNameParser } from './field-name-parser.js';\nimport { kebabCase } from './utils.js';\n/**\n * Set value to an element\n *\n * ```html\n * <div [target-attribute] data-[attr]=\"[name]:[target-attribute]\"></div>\n * ```\n * @param el A target element\n * @param name A label name\n * @param datum A datum of value\n * @param attr Data attribute name for specifying the node that FrozenPatty treats as a field\n * @param filter\n */\nexport function setValue(el, name, datum, attr = 'field', filter) {\n const rawValue = el.getAttribute(`data-${attr}`);\n const fieldList = rawValue?.split(/\\s*,\\s*/) ?? [];\n for (const field of fieldList) {\n const { fieldName, propName } = fieldNameParser(field);\n if (name !== fieldName) {\n continue;\n }\n if (filter) {\n datum = filter(datum);\n }\n // console.log({ name, field, fieldName, propName, datum, el: el.innerHTML });\n if (propName) {\n if (/^style\\([a-z-]+\\)$/i.test(propName)) {\n const cssPropertyName = propName.replace(/^style\\(([a-z-]+)\\)$/i, '$1');\n let cssValue;\n switch (cssPropertyName) {\n case 'background-image': {\n //\n // NGパターン\n // $changeDom.css(cssPropertyName, 'url(\"' + value + '\")');\n //\n // cssメソッドを経由すると styleAPIを使用するので URLがホストを含めた絶対パスになる\n // デモサーバーから本番サーバーへの移行ができなくなってしまうので避ける\n // 単純な文字列を流し込む(setAttributeを利用)\n // urlはマルチバイト文字や空白記号を含まないはずであるがエスケープする\n const url = encodeURI(`${datum}`);\n cssValue = `url(${url})`;\n break;\n }\n //\n // TODO: 他にもvalueに単位が必要なケースなどに対応したい\n //\n default: {\n cssValue = `${datum}`;\n }\n }\n el.setAttribute('style', `${cssPropertyName}: ${cssValue}`);\n }\n else if (el instanceof HTMLElement) {\n // HTMLElement\n set(el, attr, propName, datum);\n }\n else {\n // SVGElement or more\n el.setAttribute(propName, `${datum}`);\n }\n return;\n }\n setContent(el, datum);\n }\n}\n/**\n *\n * @param el\n * @param prefix\n * @param name\n * @param datum\n */\nfunction set(el, prefix, name, datum) {\n if (datum == null) {\n el.removeAttribute(name);\n return;\n }\n switch (name) {\n case 'text': {\n setContent(el, datum, false);\n return;\n }\n case 'html': {\n setContent(el, datum, true);\n return;\n }\n case 'node': {\n if (typeof datum !== 'string') {\n return;\n }\n const nodeName = el.localName ?? el.nodeName.toLowerCase();\n if (nodeName === datum.toLowerCase()) {\n return;\n }\n const node = (el.ownerDocument ?? document).createElement(`${datum}`);\n for (const child of el.childNodes) {\n node.append(child.cloneNode(true));\n }\n for (const { name, value } of el.attributes) {\n node.setAttribute(name, value);\n }\n el.replaceWith(node);\n return;\n }\n }\n if (!name.startsWith('data-') && !(name in el)) {\n const dataAttr = `data-${prefix}-${kebabCase(name)}`;\n if (el.hasAttribute(dataAttr)) {\n el.setAttribute(dataAttr, `${datum}`);\n }\n return;\n }\n switch (name) {\n case 'contenteditable': {\n switch (datum) {\n case true:\n case 'true':\n case '': {\n el.contentEditable = 'true';\n break;\n }\n default: {\n el.removeAttribute(name);\n }\n }\n return;\n }\n case 'dir': {\n switch (datum) {\n case 'ltr':\n case 'rtl': {\n el.dir = datum;\n break;\n }\n // case 'auto':\n default: {\n el.removeAttribute(name);\n }\n }\n return;\n }\n case 'draggable': {\n if (typeof datum === 'boolean') {\n el.draggable = datum;\n break;\n }\n switch (datum) {\n case 'true': {\n el.draggable = true;\n break;\n }\n case 'false': {\n el.draggable = false;\n break;\n }\n // case 'auto':\n default: {\n el.removeAttribute(name);\n }\n }\n return;\n }\n case 'hidden': {\n if (datum === 'until-found') {\n el.setAttribute(name, datum);\n return;\n }\n el.hidden = !!datum;\n return;\n }\n case 'spellcheck': {\n el.spellcheck = !!datum;\n return;\n }\n case 'tabindex': {\n let i;\n if (typeof datum === 'boolean') {\n i = datum ? 0 : -1;\n }\n else if (typeof datum === 'string') {\n i = Number.parseInt(datum, 10);\n }\n else {\n i = datum;\n }\n el.tabIndex = Number.isNaN(i) ? -1 : Math.floor(i);\n return;\n }\n case 'async': {\n if (el instanceof HTMLScriptElement) {\n el.async = !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'autocomplete': {\n if (el instanceof HTMLInputElement || el instanceof HTMLFormElement) {\n // @ts-ignore\n el.autocomplete = datum ? `${datum}` : 'off';\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'autofocus': {\n if (el instanceof HTMLButtonElement ||\n el instanceof HTMLInputElement ||\n el instanceof HTMLSelectElement ||\n el instanceof HTMLTextAreaElement) {\n el.autofocus = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'autoplay': {\n if (el instanceof HTMLAudioElement || el instanceof HTMLVideoElement) {\n el.autoplay = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'checked': {\n if (el instanceof HTMLInputElement) {\n el.checked = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'cols': {\n if (el instanceof HTMLTextAreaElement) {\n const cols = toInt(datum);\n if (Number.isNaN(cols)) {\n el.removeAttribute(name);\n }\n else {\n el.cols = cols;\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'colspan': {\n if (el instanceof HTMLTableCellElement) {\n const colSpan = toInt(datum);\n if (Number.isNaN(colSpan)) {\n el.removeAttribute(name);\n }\n else {\n el.colSpan = colSpan;\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'controls': {\n if (el instanceof HTMLAudioElement || el instanceof HTMLVideoElement) {\n el.controls = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'default': {\n if (el instanceof HTMLTrackElement) {\n el.default = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'defer': {\n if (el instanceof HTMLScriptElement) {\n el.defer = !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'disabled': {\n if (el instanceof HTMLButtonElement ||\n el instanceof HTMLFieldSetElement ||\n el instanceof HTMLInputElement ||\n el instanceof HTMLOptGroupElement ||\n el instanceof HTMLOptionElement ||\n el instanceof HTMLSelectElement ||\n el instanceof HTMLTextAreaElement) {\n el.disabled = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'download': {\n if (el instanceof HTMLAnchorElement) {\n if (datum || datum === '') {\n el.download = `${datum}`;\n }\n else {\n el.removeAttribute(name);\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'high': {\n if (el instanceof HTMLMeterElement) {\n const high = toInt(datum);\n if (Number.isNaN(high)) {\n el.removeAttribute(name);\n }\n else {\n el.high = high;\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'ismap': {\n if (el instanceof HTMLImageElement) {\n el.isMap = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'loop': {\n if (el instanceof HTMLAudioElement || el instanceof HTMLVideoElement) {\n el.loop = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'low': {\n if (el instanceof HTMLMeterElement) {\n const low = toInt(datum);\n if (Number.isNaN(low)) {\n el.removeAttribute(name);\n }\n else {\n el.low = low;\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'max': {\n if (el instanceof HTMLInputElement ||\n el instanceof HTMLMeterElement ||\n el instanceof HTMLProgressElement) {\n const max = toInt(datum);\n if (Number.isNaN(max)) {\n el.removeAttribute(name);\n }\n else {\n el.max = max;\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'maxlength': {\n if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {\n const maxLength = toInt(datum);\n if (Number.isNaN(maxLength)) {\n el.removeAttribute(name);\n }\n else {\n el.maxLength = Math.floor(maxLength);\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'min': {\n if (el instanceof HTMLInputElement || el instanceof HTMLMeterElement) {\n const min = toInt(datum);\n if (Number.isNaN(min)) {\n el.removeAttribute(name);\n }\n else {\n el.min = min;\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'multiple': {\n if (el instanceof HTMLInputElement || el instanceof HTMLSelectElement) {\n el.multiple = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'novalidate': {\n if (el instanceof HTMLFormElement) {\n el.noValidate = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'open': {\n if (el instanceof HTMLDetailsElement) {\n el.open = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n break;\n }\n case 'optimum': {\n if (el instanceof HTMLMeterElement) {\n const optimum = toInt(datum);\n if (Number.isNaN(optimum)) {\n el.removeAttribute(name);\n }\n else {\n el.optimum = Math.floor(optimum);\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'preload': {\n if (el instanceof HTMLAudioElement || el instanceof HTMLVideoElement) {\n switch (datum) {\n case '':\n case 'auto':\n case 'metadata': {\n el.preload = datum;\n break;\n }\n default: {\n el.preload = 'none';\n }\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'readonly': {\n if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {\n el.readOnly = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'required': {\n if (el instanceof HTMLInputElement ||\n el instanceof HTMLSelectElement ||\n el instanceof HTMLTextAreaElement) {\n el.required = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'reversed': {\n if (el instanceof HTMLOListElement) {\n el.reversed = datum === '' ? true : !!datum;\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'rows': {\n if (el instanceof HTMLTextAreaElement) {\n const rows = toInt(datum);\n if (Number.isNaN(rows)) {\n el.removeAttribute(name);\n }\n else {\n el.rows = Math.floor(rows);\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'rowspan': {\n if (el instanceof HTMLTableCellElement) {\n const rowSpan = toInt(datum);\n if (Number.isNaN(rowSpan)) {\n el.removeAttribute(name);\n }\n else {\n el.rowSpan = Math.floor(rowSpan);\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'size': {\n if (el instanceof HTMLInputElement || el instanceof HTMLSelectElement) {\n const size = toInt(datum);\n if (Number.isNaN(size)) {\n el.removeAttribute(name);\n }\n else {\n el.size = size;\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'span': {\n if (el instanceof HTMLTableColElement) {\n const span = toInt(datum);\n if (Number.isNaN(span)) {\n el.removeAttribute(name);\n }\n else {\n el.span = span;\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'start': {\n if (el instanceof HTMLOListElement) {\n const start = toInt(datum);\n if (Number.isNaN(start)) {\n el.removeAttribute(name);\n }\n else {\n el.start = start;\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'step': {\n if (el instanceof HTMLInputElement) {\n if (datum === 'any') {\n el.step = datum;\n break;\n }\n const step = toNum(datum);\n if (Number.isNaN(step)) {\n el.removeAttribute(name);\n }\n else {\n el.step = step.toString(10);\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n case 'target': {\n if (el instanceof HTMLAnchorElement ||\n el instanceof HTMLAreaElement ||\n el instanceof HTMLFormElement) {\n if (datum) {\n el.target = `${datum}`;\n }\n else {\n el.removeAttribute(name);\n }\n }\n else {\n el.setAttribute(name, `${datum}`);\n }\n return;\n }\n // case 'accesskey':\n // case 'class':\n // case 'contextmenu':\n // case 'dropzone': // breakable support\n // case 'id':\n // case 'itemid':\n // case 'itemprop':\n // case 'itemref':\n // case 'itemscope':\n // case 'itemtype':\n // case 'lang':\n // case 'slot': // breakable support\n // case 'style':\n // case 'title':\n // case 'translate': // breakable support\n // case 'accept':\n // case 'accept-charset':\n // case 'action':\n // case 'align':\n // case 'alt':\n // case 'cite':\n // case 'coords':\n // case 'datetime':\n // case 'enctype':\n // case 'for':\n // case 'headers':\n // case 'href':\n // case 'hreflang':\n // case 'kind':\n // case 'label':\n // case 'list':\n // case 'media':\n // case 'method':\n // case 'name':\n // case 'pattern':\n // case 'placeholder':\n // case 'poster':\n // case 'pubdate':\n // case 'rel':\n // case 'sandbox':\n // case 'src':\n // case 'srcdoc':\n // case 'srclang':\n // case 'summary':\n // case 'type':\n // case 'usemap':\n // case 'value':\n // case 'wrap':\n // and Data-* attributes\n default: {\n el.setAttribute(name, `${datum}`);\n }\n }\n}\n/**\n *\n * @param el\n * @param datum\n * @param asHtml\n */\nexport function setContent(el, datum, asHtml = true) {\n if (el instanceof HTMLInputElement ||\n el instanceof HTMLSelectElement ||\n el instanceof HTMLTextAreaElement ||\n el instanceof HTMLOutputElement) {\n if (el instanceof HTMLInputElement &&\n (el.type === 'radio' || el.type === 'checkbox')) {\n if (typeof datum === 'boolean') {\n el.checked = datum;\n return;\n }\n el.checked = el.value === `${datum}`;\n return;\n }\n el.value = `${datum}`;\n return;\n }\n if (asHtml) {\n el.innerHTML = datum == null ? '' : `${datum}`;\n return;\n }\n el.textContent = datum == null ? '' : `${datum}`;\n}\n/**\n *\n * @param datum\n */\nfunction toNum(datum) {\n let i;\n if (typeof datum === 'boolean') {\n i = +datum;\n }\n else if (typeof datum === 'string') {\n i = Number.parseFloat(datum);\n }\n else {\n i = datum;\n }\n return i;\n}\n/**\n *\n * @param datum\n */\nfunction toInt(datum) {\n return Math.floor(toNum(datum));\n}\n","/**\n *\n * @param engine\n * @param itemName\n */\nexport function getItemEditorTemplate(engine, itemName) {\n const html = engine.items.get(itemName)?.editor;\n if (!html) {\n return null;\n }\n const nodes = new DOMParser().parseFromString(html, 'text/html').body.children;\n return nodes;\n}\n","import { setContent } from '@burger-editor/frozen-patty/set-value';\nimport { camelCase, kebabCase } from '@burger-editor/frozen-patty/utils';\nimport { EditorDialog } from './editor-dialog.js';\nimport { getItemEditorTemplate } from './item/get-item-editor-template.js';\nexport class ItemEditorDialog extends EditorDialog {\n #corePrefix = 'bge';\n #service;\n constructor(engine) {\n super('item-editor', engine, document.createElement('div'), {\n buttons: {\n close: 'キャンセル',\n complete: '決定',\n },\n });\n }\n disable(name, disabled = true) {\n for (const $ctrl of this.#findAll(name)) {\n $ctrl.disabled = disabled;\n }\n }\n get(name) {\n const $ctrl = this.#find(name);\n if ($ctrl instanceof HTMLInputElement) {\n switch ($ctrl.type) {\n case 'radio': {\n const $checked = this.find(`[name=\"${$ctrl.name}\"]:checked`);\n if ($checked) {\n return $checked.value;\n }\n return $ctrl.value;\n }\n case 'checkbox': {\n return $ctrl.checked;\n }\n }\n }\n try {\n return JSON.parse($ctrl.value);\n }\n catch {\n return $ctrl.value;\n }\n }\n getCustomData(customProperty) {\n return this.#service?.getData(customProperty) ?? null;\n }\n onChange(name, handler, runOnInit = true) {\n if (runOnInit) {\n handler(this.get(name));\n }\n for (const $ctrl of this.#findAll(name)) {\n $ctrl.addEventListener('change', () => {\n handler(this.get(name));\n });\n }\n }\n setCustomData(customProperty, value) {\n this.#service?.setData(customProperty, value);\n }\n update(nameOrData, value) {\n if (typeof nameOrData === 'string') {\n const name = nameOrData;\n const $ctrlList = this.#findAll(name);\n for (const $ctrl of $ctrlList) {\n const newValue = typeof value === 'function' ? value(this.get(name), $ctrl) : value;\n setContent($ctrl, Array.isArray(newValue) ? newValue.join(',') : newValue);\n return;\n }\n return;\n }\n const $ctrl = this.find(`[name=\"bge\"]`);\n if (!$ctrl ||\n !($ctrl instanceof HTMLInputElement) ||\n !($ctrl instanceof HTMLTextAreaElement) ||\n !($ctrl instanceof HTMLSelectElement)) {\n return;\n }\n const newData = typeof nameOrData === 'function'\n ? nameOrData(JSON.parse($ctrl.value || '{}'), $ctrl)\n : nameOrData;\n $ctrl.value = JSON.stringify(newData || {});\n }\n #extract() {\n const prefix = `${this.#corePrefix}-`;\n const $data = this.findAll(`[name^=\"${prefix}\"]`);\n const map = new Map();\n for (const $datum of $data) {\n const name = camelCase($datum.name.slice(prefix.length));\n if (map.has(name)) {\n continue;\n }\n const value = this.get(`$${name}`);\n if ($datum instanceof HTMLInputElement) {\n switch ($datum.type) {\n case 'radio': {\n if ($datum.checked) {\n map.set(name, value);\n }\n continue;\n }\n case 'checkbox': {\n map.set(name, $datum.checked);\n continue;\n }\n }\n }\n map.set(name, value);\n }\n const data = Object.fromEntries(map);\n const $jsonData = this.find(`[name=\"${this.#corePrefix}\"]`);\n if ($jsonData) {\n const jsonData = JSON.parse($jsonData.value || '{}');\n return {\n ...jsonData,\n ...data,\n };\n }\n return data;\n }\n #find(name) {\n const el = this.#findAll(name)[0];\n if (el) {\n return el;\n }\n throw new Error(`Input element not found: ${name}`);\n }\n #findAll(name) {\n const propName = name.slice(1);\n let el;\n for (const n of [kebabCase(propName), propName]) {\n el = this.findAll(`[name=\"bge-${n}\"]`);\n if (el.length > 0) {\n return [...el];\n }\n }\n return [];\n }\n #setValues(data) {\n for (const [_name, datum] of Object.entries(data)) {\n const name = kebabCase(_name);\n const inputSelector = `[name=\"bge-${name}\"]`;\n if (Array.isArray(datum)) {\n const $targetEl = this.find(inputSelector);\n if (!$targetEl) {\n continue;\n }\n const $listRoot = $targetEl.closest('[data-bge-list]');\n if (!$listRoot || $listRoot.children.length === 0) {\n continue;\n }\n const $listItem = $listRoot.firstElementChild?.cloneNode(true);\n if (!$listItem) {\n continue;\n }\n while (datum.length > $listRoot.children.length) {\n $listRoot.append($listItem.cloneNode(true));\n }\n for (const [i, targetEl] of $listRoot.querySelectorAll(inputSelector).entries()) {\n setContent(targetEl, datum[i] || '');\n }\n continue;\n }\n for (const targetEl of this.findAll(inputSelector)) {\n setContent(targetEl, datum);\n }\n }\n this.update(data);\n }\n closed() {\n this.engine.componentObserver.off();\n super.closed();\n }\n async complete(formData) {\n await this.#service?.item.import(this.#extract(), true);\n super.complete(formData);\n }\n onSubmit(e, submitter) {\n return this.#service?.onSubmit?.(e, submitter);\n }\n open(service) {\n this.#service = service;\n const template = getItemEditorTemplate(this.engine, this.#service.item.name);\n if (!template) {\n throw new Error(`Template not found: ${this.#service.item.name}`);\n }\n this.setTemplate(...template);\n const containerType = this.#service.item.el.closest('[data-bge-container]')?.dataset\n .bgeContainer;\n this.el.dataset.bgeContainer = containerType;\n let data = this.#service.item.export();\n if (this.#service) {\n data = this.#service.beforeOpen(data, this);\n }\n this.#setValues(data);\n super.open();\n if (this.#service) {\n this.#service.open(data, this);\n }\n this.engine.componentObserver.notify('open-editor', {\n data,\n editor: this,\n });\n }\n}\n","import { strToDOM } from '@burger-editor/utils';\n/**\n *\n * @param defaultBlocks\n * @param name\n */\nexport function getBlockTemplate(defaultBlocks, name) {\n const html = defaultBlocks.get(name);\n if (html) {\n const dom = strToDOM(html);\n dom.dataset.bgeName = name;\n return dom;\n }\n throw new Error(`Do not get BurgerBlock template. \"${name}\" block is not exist.`);\n}\n","import { BurgerBlock } from '../block/block.js';\nimport { BlockCatalogDialog } from '../block-catalog-dialog.js';\nimport { BlockOptionsDialog } from '../block-options-dialog.js';\nimport { ComponentObserver } from '../component-observer.js';\nimport { createComponentStylesheet } from '../dom-helpers/create-component-stylesheet.js';\nimport { getCustomProperties } from '../dom-helpers/get-custom-properties.js';\nimport { getElement } from '../dom-helpers/get-element.js';\nimport { EditableArea } from '../editable-area.js';\nimport { createBgeEvent } from '../event/create-bge-event.js';\nimport { ItemEditorDialog } from '../item-editor-dialog.js';\nimport { getBlockTemplate } from './get-block-template.js';\nexport class BurgerEditorEngine {\n blockCatalogDialog;\n blockOptionsDialog;\n componentObserver = new ComponentObserver();\n config;\n css;\n defaultBlocks;\n el;\n itemEditorDialog;\n items;\n serverAPI;\n storageKey;\n ui;\n viewArea;\n #current;\n #currentBlock = null;\n #draft;\n #isProcessed = false;\n #main;\n #migrationCheck = null;\n get isProcessed() {\n return this.#isProcessed;\n }\n set isProcessed(isProcessed) {\n this.content.blockMenu.hide();\n this.#isProcessed = isProcessed;\n }\n get content() {\n return this.#current;\n }\n // eslint-disable-next-line no-restricted-syntax\n constructor(options) {\n this.el = getElement(options.root);\n this.config = options.config;\n this.serverAPI = options.fileIO ?? {};\n this.ui = options.ui ?? {};\n this.storageKey = {\n blockClipboard: 'bge-copied-block',\n ...options.storageKey,\n };\n this.css = {\n stylesheets: options.config.stylesheets ?? [],\n classList: options.config.classList ?? [],\n generalCSS: options.generalCSS,\n };\n this.defaultBlocks = new Map(Object.entries(options.blocks).map(([name, templateBlock]) => {\n const templateCode = templateBlock.template\n .replaceAll('%sampleImagePath%', options.config.sampleImagePath)\n .replaceAll('%googleMapsApiKey%', options.config.googleMapsApiKey ?? '');\n return [name, templateCode];\n }));\n if (this.config.googleMapsApiKey &&\n !document.querySelector('script[src^=\"https://maps.googleapis.com/maps/api/js\"]')) {\n const script = document.createElement('script');\n script.src = `https://maps.googleapis.com/maps/api/js?key=${this.config.googleMapsApiKey}&libraries=marker`;\n document.head.append(script);\n }\n this.blockCatalogDialog = new BlockCatalogDialog(this, options.catalog, options.blocks);\n this.blockOptionsDialog = new BlockOptionsDialog(this);\n this.itemEditorDialog = new ItemEditorDialog(this);\n this.items = new Map();\n if (options.items) {\n for (const [name, seed] of Object.entries(options.items)) {\n this.items.set(name, seed);\n BurgerEditorEngine.#addItem(seed);\n }\n }\n const viewArea = document.createElement('div');\n viewArea.classList.add(...(options.viewAreaClassList ?? []));\n this.viewArea = viewArea;\n this.el.append(viewArea);\n this.el.addEventListener('bge:saved', (e) => {\n const { main, draft } = e.detail;\n void options.onUpdated?.(main, draft);\n });\n this.componentObserver.on('select-block', ({ block }) => {\n this.setCurrentBlock(block);\n });\n }\n async addBlock(blockName) {\n const block = await BurgerBlock.new(this, blockName);\n const message = block.isDisable();\n if (message) {\n alert(message);\n return;\n }\n await this.content.insertionPoint.insert(block);\n this.save();\n }\n clearCurrentBlock() {\n this.#currentBlock = null;\n }\n async draftToMain(confirm) {\n if (!this.#draft) {\n return false;\n }\n if (!(await confirm?.())) {\n return false;\n }\n if (this.#draft.isEmpty() || this.#draft.isSame(this.#main)) {\n await this.#draft.copyTo(this.#main);\n this.showMain();\n return true;\n }\n return false;\n }\n getBlockTemplate(name) {\n return getBlockTemplate(this.defaultBlocks, name);\n }\n getCurrentBlock() {\n if (!this.#currentBlock) {\n // eslint-disable-next-line no-console\n console.warn('block is unselected.');\n }\n return this.#currentBlock;\n }\n getCustomProperties() {\n return getCustomProperties(this.#current);\n }\n hasDraft() {\n return !!this.#draft;\n }\n isSetBlock() {\n return !!this.#currentBlock;\n }\n async mainToDraft(confirm) {\n if (!this.#draft) {\n return false;\n }\n if (!(await confirm?.())) {\n return false;\n }\n if (this.#main.isEmpty() || this.#main.isSame(this.#draft)) {\n await this.#main.copyTo(this.#draft);\n this.showDraft();\n return true;\n }\n return false;\n }\n migrationCheck(dom) {\n this.#migrationCheck?.(dom);\n }\n registerMigrationCheck(callback) {\n this.#migrationCheck = callback;\n this.migrationCheck(this.#current.containerElement);\n }\n save() {\n this.#main.save();\n if (this.#draft) {\n this.#draft.save();\n }\n this.el.dispatchEvent(createBgeEvent('bge:saved', {\n main: this.#main.getContentsAsString(),\n draft: this.#draft?.getContentsAsString(),\n }));\n }\n setCurrentBlock(block) {\n let isChanged = true;\n if (this.#currentBlock) {\n isChanged = !this.#currentBlock.is(block);\n }\n this.#currentBlock = block;\n if (isChanged) {\n this.el.dispatchEvent(createBgeEvent('bge:block-change', {\n block,\n }));\n }\n return isChanged;\n }\n showDraft() {\n if (!this.#draft) {\n return;\n }\n this.#show(this.#draft);\n }\n showMain() {\n this.#show(this.#main);\n }\n #show(to) {\n if (this.#current === to) {\n return;\n }\n this.#main.hide();\n this.#draft?.hide();\n to.show();\n this.#current = to;\n this.#current.update();\n this.migrationCheck(to.containerElement);\n this.el.dispatchEvent(createBgeEvent('bge:switch-content', {\n content: this.#current.type,\n }));\n }\n static BLOCK_ID_PREFIX = 'bge-';\n static STORAGE_KEY_OF_COPIED_BLOCK = 'bge-copied-block';\n static #itemSeeds = new Map();\n static async new(options) {\n const engine = new BurgerEditorEngine(options);\n const componentStylesheet = createComponentStylesheet(options.items, options.generalCSS);\n const stylesheets = [componentStylesheet, ...(options.config.stylesheets ?? [])];\n const mainInitialContent = typeof options.initialContents === 'string'\n ? options.initialContents\n : options.initialContents.main;\n // @ts-ignore force assign to readonly property\n engine.#main =\n //\n await EditableArea.new('main', mainInitialContent, engine, options.blockMenu, stylesheets, options.config.classList);\n const draftInitialContent = typeof options.initialContents === 'string' ? null : options.initialContents.draft;\n // @ts-ignore force assign to readonly property\n engine.#draft =\n draftInitialContent == null\n ? null\n : await EditableArea.new('draft', draftInitialContent, engine, options.blockMenu, stylesheets, options.config.classList);\n engine.#current = engine.#main;\n engine.showMain();\n engine.save();\n return engine;\n }\n static #addItem(seed) {\n if (this.#itemSeeds.has(seed.name)) {\n // eslint-disable-next-line no-console\n console.warn(`\"${seed.name}\" is already exists.`);\n return;\n }\n this.#itemSeeds.set(seed.name, seed);\n }\n static getItemSeed(name) {\n const editor = this.#itemSeeds.get(name);\n return (editor ?? null);\n }\n}\n","import { fieldNameParser } from './field-name-parser.js';\nimport { kebabCase } from './utils.js';\n/**\n * Get value from an element\n * @param el A target element\n * @param convertType Auto covert type of value\n * @param attr Data attribute name for specifying the node that FrozenPatty treats as a field\n * @param filter\n */\nexport function getValues(el, convertType = false, attr = 'field', filter) {\n const result = [];\n const rawValue = el.getAttribute(`data-${attr}`);\n const listRoot = el.closest(`[data-${attr}-list]`);\n const forceArray = !!listRoot;\n if (rawValue == null) {\n throw new Error(`data-${attr} attriblute is empty.`);\n }\n const fieldList = rawValue.split(/\\s*,\\s*/);\n for (const field of fieldList) {\n let value;\n const { fieldName, propName } = fieldNameParser(field);\n if (propName) {\n switch (propName) {\n case 'node': {\n value = el.localName ?? el.nodeName.toLowerCase();\n break;\n }\n case 'text': {\n value = el.textContent?.trim() ?? '';\n break;\n }\n case 'html': {\n value = el.innerHTML.trim();\n break;\n }\n default: {\n if (/^style\\([a-z-]+\\)$/i.test(propName)) {\n const css = propName.replace(/^style\\(([a-z-]+)\\)$/i, '$1');\n let style;\n if (el instanceof HTMLElement) {\n style = el.style;\n }\n else {\n style = window.getComputedStyle(el);\n }\n value = style.getPropertyValue(css);\n if (css === 'background-image') {\n value = getBackgroundImagePath(value);\n }\n break;\n }\n value = getAttribute(el, attr, propName, convertType);\n }\n }\n }\n else {\n if (el instanceof HTMLInputElement ||\n el instanceof HTMLSelectElement ||\n el instanceof HTMLTextAreaElement) {\n const val = el.value;\n value = convertType ? convert(val) : val;\n }\n else {\n value = el.innerHTML.trim();\n }\n }\n if (filter) {\n value = filter(value);\n }\n if (value === undefined) {\n continue;\n }\n result.push([fieldName, value, forceArray]);\n }\n return result;\n}\n/**\n *\n * @param el\n * @param attr\n * @param keyAttr\n * @param typeConvert\n */\nfunction getAttribute(el, attr, keyAttr, typeConvert) {\n switch (keyAttr) {\n case 'contenteditable': {\n if (el instanceof HTMLElement) {\n return el.contentEditable === '' || el.contentEditable === 'true';\n }\n else {\n return el.getAttribute(keyAttr) === '' || el.getAttribute(keyAttr) === 'true';\n }\n }\n case 'checked': {\n return el.checked;\n }\n case 'disabled': {\n return el.disabled;\n }\n case 'download': {\n // An inactive download attribute always returns an empty string.\n // So to get inactive it is necessary to use the \"hasAttribute\" method.\n return el.hasAttribute('download') ? el.getAttribute('download') : null;\n }\n case 'href': {\n // return (el as HTMLAnchorElement).href;\n return el.getAttribute(keyAttr) ?? ''; // return plain string\n }\n default: {\n let value;\n const dataAttr = ['data', attr, kebabCase(keyAttr)].join('-');\n if (el.hasAttribute(dataAttr)) {\n value = el.getAttribute(dataAttr) || '';\n }\n else {\n value = el.getAttribute(keyAttr) || '';\n }\n if (typeConvert) {\n value = convert(value);\n }\n return value;\n }\n }\n}\n/**\n *\n * @param value\n */\nfunction convert(value) {\n value = parse(value);\n if (URL.canParse(value)) {\n const url = new URL(value, location.href);\n if (url.origin === location.origin) {\n return url.pathname;\n }\n }\n return value;\n}\n/**\n *\n * @param value\n */\nfunction parse(value) {\n try {\n return JSON.parse(value);\n }\n catch {\n return value;\n }\n}\n/**\n * Get path from value of \"background-image\"\n * @param value\n */\nfunction getBackgroundImagePath(value) {\n const origin = `${location.protocol}//${location.hostname}${location.port ? `:${location.port}` : ''}`;\n return decodeURI(value.replace(/^url\\([\"']?([^\"']+)[\"']?\\)$/i, '$1').replace(origin, ''));\n}\n","import { getValues } from './get-values.js';\nimport { arrayToHash } from './utils.js';\n/**\n *\n * @param el\n * @param attr\n * @param typeConvert\n * @param filter\n */\nexport default function (el, attr, typeConvert, filter) {\n // eslint-disable-next-line unicorn/prefer-spread\n const filedElements = Array.from(el.querySelectorAll(`[data-${attr}]`));\n let values = [];\n for (const _el of filedElements) {\n values = [...values, ...getValues(_el, typeConvert, attr, filter)];\n }\n const result = arrayToHash(values);\n return result;\n}\n","import { setValue } from './set-value.js';\nimport { kebabCase } from './utils.js';\n/**\n *\n * @param el\n * @param data\n * @param attr\n * @param filter\n */\nexport default function (el, data, attr, filter) {\n el = el.cloneNode(true);\n for (const dataKeyName in data) {\n if (dataKeyName in data) {\n const datum = data[dataKeyName];\n const selector = `[data-${attr}*=\"${kebabCase(dataKeyName)}\"]`;\n // eslint-disable-next-line unicorn/prefer-spread\n const targetList = Array.from(el.querySelectorAll(selector));\n if (Array.isArray(datum)) {\n const targetEl = targetList[0];\n if (!targetEl) {\n continue;\n }\n const listRoot = targetEl.closest(`[data-${attr}-list]`);\n if (!listRoot || (listRoot && listRoot.children.length === 0)) {\n continue;\n }\n const listItem = listRoot.children[0]?.cloneNode(true);\n while (listItem && datum.length > listRoot.children.length) {\n listRoot.append(listItem.cloneNode(true));\n }\n // eslint-disable-next-line unicorn/prefer-spread\n const newChildren = Array.from(listRoot.querySelectorAll(selector));\n // eslint-disable-next-line unicorn/prefer-spread\n const oldChildList = Array.from(listRoot.children);\n let deleteNodeList = [];\n for (const [i, child] of [...newChildren].entries()) {\n if (datum[i] == null) {\n setValue(child, dataKeyName, '', attr, filter);\n const oldChild = oldChildList[i];\n if (oldChild) {\n deleteNodeList.push(oldChild);\n }\n }\n else {\n setValue(child, dataKeyName, datum[i], attr, filter);\n deleteNodeList = [];\n }\n }\n for (const node of deleteNodeList)\n node.remove();\n }\n else {\n for (const [, targetEl] of [...targetList].entries()) {\n setValue(targetEl, dataKeyName, datum, attr, filter);\n }\n }\n }\n }\n return el;\n}\n","import get from './get.js';\nimport set from './set.js';\nexport default class FrozenPatty {\n #attr = 'field';\n #dom;\n /**\n * Value filter\n */\n #filter;\n #typeConvert = false;\n /**\n *\n * @param html Original HTML\n * @param options Options\n */\n constructor(html, options) {\n this.#dom = document.createElement('fp-placeholer');\n this.#dom.innerHTML = html;\n if (options) {\n if (options.attr) {\n this.#attr = options.attr;\n }\n this.#typeConvert = !!options.typeConvert;\n this.#filter = options.valueFilter;\n }\n }\n merge(data) {\n const currentData = this.toJSON(false);\n const newData = Object.assign(currentData, data);\n this.#dom = set(this.#dom, newData, this.#attr, this.#filter);\n return this;\n }\n toDOM() {\n return this.#dom;\n }\n toHTML() {\n return this.#dom.innerHTML;\n }\n toJSON(filtering = true) {\n const filter = filtering ? this.#filter : undefined;\n return get(this.#dom, this.#attr, this.#typeConvert, filter);\n }\n}\n","import FrozenPatty from './frozen-patty.js';\n/**\n * Pure HTML to JSON converter that not use template engine.\n * @param html Original HTML\n * @param options Options\n */\n/**\n *\n * @param html\n * @param options\n */\nexport default function frozenPatty(html, options) {\n return new FrozenPatty(html, options);\n}\n","\"use strict\";\nexports.__esModule = true;\n/**\n * キーがパターン・値が置換文字列のハッシュマップによって置換する\n *\n * @version 2.0.0\n * @since 0.1.0\n * @param str 対象の文字列\n * @param convMap キーがパターン・値が置換文字列のハッシュマップ\n */\nfunction default_1(str, convMap) {\n for (var needle in convMap) {\n if (convMap.hasOwnProperty(needle)) {\n var replace = convMap[needle];\n str = str.replace(new RegExp(needle, 'g'), replace);\n }\n }\n return str;\n}\nexports[\"default\"] = default_1;\n","\"use strict\";\nexports.__esModule = true;\nvar replaceFromMap_1 = require(\"./replaceFromMap\");\n/**\n * 濁点・半濁点とひらがな・かたかなを結合させる\n *\n * @version 2.0.0\n * @since 1.2.0\n * @param str 対象の文字列\n * @param convertOnly ひらがな・かたかなと結合させずに、文字だけ結合文字に変換\n */\nfunction combinateSoundMarks(str, convertOnly) {\n if (convertOnly === void 0) { convertOnly = false; }\n if (!convertOnly) {\n // 結合文字に変換\n str = combinateSoundMarks(str, true);\n // 濁点・半濁点を結合する\n str = replaceFromMap_1[\"default\"](str, {\n // 濁点\n が: 'が',\n ぎ: 'ぎ',\n ぐ: 'ぐ',\n げ: 'げ',\n ご: 'ご',\n ざ: 'ざ',\n じ: 'じ',\n ず: 'ず',\n ぜ: 'ぜ',\n ぞ: 'ぞ',\n だ: 'だ',\n ぢ: 'ぢ',\n づ: 'づ',\n で: 'で',\n ど: 'ど',\n ば: 'ば',\n び: 'び',\n ぶ: 'ぶ',\n べ: 'べ',\n ぼ: 'ぼ',\n ガ: 'ガ',\n ギ: 'ギ',\n グ: 'グ',\n ゲ: 'ゲ',\n ゴ: 'ゴ',\n ザ: 'ザ',\n ジ: 'ジ',\n ズ: 'ズ',\n ゼ: 'ゼ',\n ゾ: 'ゾ',\n ダ: 'ダ',\n ヂ: 'ヂ',\n ヅ: 'ヅ',\n デ: 'デ',\n ド: 'ド',\n バ: 'バ',\n ビ: 'ビ',\n ブ: 'ブ',\n ベ: 'ベ',\n ボ: 'ボ',\n ヷ: 'ヷ',\n イ゙: 'ヸ',\n ヴ: 'ヴ',\n エ゙: 'ヹ',\n ヺ゙: 'ヲ',\n ゞ: 'ゞ',\n ヾ: 'ヾ',\n // 半濁点\n ぱ: 'ぱ',\n ぴ: 'ぴ',\n ぷ: 'ぷ',\n ぺ: 'ぺ',\n ぽ: 'ぽ',\n パ: 'パ',\n ピ: 'ピ',\n プ: 'プ',\n ペ: 'ペ',\n ポ: 'ポ'\n });\n }\n else {\n // ひらがな・かたかなと結合させずに、文字だけ結合文字に変換\n str = replaceFromMap_1[\"default\"](str, {\n // 濁点\n '\\u309B': '\\u3099',\n ゙: '\\u3099',\n // 半濁点\n '\\u309C': '\\u309A',\n ゚: '\\u309A' // 半角半濁点 → 全角結合文字半濁点\n });\n }\n return str;\n}\nexports[\"default\"] = combinateSoundMarks;\n","import * as combinateSoundMarks from 'jaco/fn/combinateSoundMarks.js';\n/**\n *\n * @param datum\n */\nexport function valueFilter(datum) {\n if (typeof datum !== 'string') {\n return datum;\n }\n let str = datum;\n // @ts-ignore\n str = combinateSoundMarks.default(str);\n // Remove data-bgb/data-bgi/data-bge-* attributes\n if (str.trim().startsWith('<')) {\n const d = document.createElement('div');\n d.innerHTML = str;\n const elements = d.querySelectorAll('*');\n for (const element of elements) {\n const attrs = element.attributes;\n for (let i = 0, l = attrs.length; i < l; i++) {\n const attr = attrs.item(i);\n if (attr && /data-bg[ebt](?:-.+)?/i.test(attr.name)) {\n element.removeAttribute(attr.name);\n }\n }\n }\n str = d.innerHTML;\n }\n return str;\n}\n","import frozenPatty from '@burger-editor/frozen-patty';\nimport { valueFilter } from './value-filter.js';\n/**\n *\n * @param html\n */\nexport function dataFromHtml(html) {\n const data = frozenPatty(html, {\n attr: 'bge',\n typeConvert: true,\n valueFilter,\n }).toJSON();\n return data;\n}\n","import frozenPatty from '@burger-editor/frozen-patty';\nimport { valueFilter } from './value-filter.js';\n/**\n *\n * @param html\n * @param data\n */\nexport function dataToHtml(html, data) {\n return frozenPatty(html, {\n attr: 'bge',\n typeConvert: true,\n valueFilter,\n })\n .merge(data)\n .toHTML();\n}\n","export class ItemEditorService {\n #beforeChange;\n #beforeOpen;\n #data;\n #isDisable;\n #item;\n #migrate;\n #migrateElement;\n #onSubmit;\n #open;\n get item() {\n return this.#item;\n }\n constructor(item, seed) {\n this.#item = item;\n const options = seed.editorOptions ?? {};\n if (options.beforeOpen) {\n this.#beforeOpen = options.beforeOpen;\n }\n if (options.open) {\n this.#open = options.open;\n }\n if (options.beforeChange) {\n this.#beforeChange = options.beforeChange;\n }\n if (options.onSubmit) {\n this.#onSubmit = options.onSubmit;\n }\n if (options.migrate) {\n this.#migrate = options.migrate;\n }\n if (options.migrateElement) {\n this.#migrateElement = options.migrateElement;\n }\n if (options.isDisable) {\n this.#isDisable = options.isDisable;\n }\n this.#data = options.customData;\n }\n async beforeChange(newValues, editor) {\n if (this.#beforeChange) {\n return this.#beforeChange(newValues, editor);\n }\n return newValues;\n }\n beforeOpen(data, editor) {\n if (this.#beforeOpen) {\n return this.#beforeOpen(data, editor);\n }\n return data;\n }\n getData(customProperty) {\n return this.#data?.[customProperty] ?? null;\n }\n isDisable(item) {\n return this.#isDisable?.(item) ?? '';\n }\n migrate(item) {\n return this.#migrate ? this.#migrate(item) : item.export();\n }\n async migrateElement(data, item) {\n await this.#migrateElement?.(data, item);\n }\n onSubmit(e, submitter) {\n return this.#onSubmit?.(e, submitter);\n }\n open(data, editor) {\n this.#open?.(data, editor);\n }\n setData(customProperty, value) {\n if (!this.#data) {\n return;\n }\n this.#data[customProperty] = value;\n }\n}\n","import { strToDOM } from '@burger-editor/utils';\nimport semver from 'semver';\nimport { BurgerEditorEngine } from '../engine/engine.js';\nimport { dataFromHtml } from './data-form-html.js';\nimport { dataToHtml } from './data-to-html.js';\nimport { ItemEditorService } from './item-editor-service.js';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst elMap = new WeakMap();\nexport class Item {\n editor;\n name;\n #el;\n #engine;\n #isOld = false;\n #service;\n #version;\n get el() {\n return this.#el;\n }\n get version() {\n return this.#version;\n }\n get isOld() {\n return this.#isOld;\n }\n // eslint-disable-next-line no-restricted-syntax\n constructor(engine, html) {\n let el;\n if (typeof html === 'string') {\n el = strToDOM(html);\n }\n else {\n el = html;\n }\n elMap.set(el, this);\n this.#el = el;\n this.#el.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n this.#openEditor();\n });\n this.#engine = engine;\n let name = el.dataset.bgi;\n if (!name) {\n name = 'unknown';\n el.dataset.bgi = name;\n }\n this.name = name;\n let version = el.dataset.bgiVer;\n if (!version) {\n version = '0.0.0';\n el.dataset.bgiVer = version;\n }\n this.#version = version;\n const originVersion = engine.items.get(this.name)?.version ?? '0.0.0';\n this.#isOld = semver.lt(this.#version, originVersion);\n const seed = BurgerEditorEngine.getItemSeed(this.name);\n if (!seed) {\n throw new Error(`Seed not found: ${this.name}`);\n }\n this.#service = new ItemEditorService(this, seed);\n this.editor = engine.itemEditorDialog;\n }\n export() {\n return dataFromHtml(this.el.innerHTML);\n }\n async import(newData, fromDialogChanges = false) {\n const currentData = this.export();\n let data = {\n ...currentData,\n ...newData,\n };\n if (fromDialogChanges) {\n data = await this.#service.beforeChange(data, this.editor);\n }\n this.el.innerHTML = dataToHtml(this.el.innerHTML, data);\n if (this.#isOld) {\n await this.#service.migrateElement(data, this);\n }\n }\n isDisable() {\n return this.#service.isDisable(this);\n }\n async upgrade() {\n if (!this.#isOld) {\n return;\n }\n const newTemplate = this.#engine.items.get(this.name)?.template;\n if (!newTemplate) {\n return;\n }\n const newEl = strToDOM(newTemplate);\n const v = newEl.dataset.bgiVer;\n const itemEditor = BurgerEditorEngine.getItemSeed(this.name);\n const currentData = itemEditor\n ? // @ts-ignore\n itemEditor.migrate(this)\n : this.export();\n const newTemplateData = dataFromHtml(newEl.innerHTML);\n const data = { ...newTemplateData, ...currentData };\n this.el.innerHTML = newEl.innerHTML;\n this.el.dataset.bgiVer = v;\n await this.import(data);\n this.#version = v;\n this.#isOld = false;\n }\n #openEditor() {\n this.editor.open(this.#service);\n }\n static async new(engine, html, initData = {}) {\n const item = new Item(engine, html);\n await item.import(initData);\n return item;\n }\n static getInstance(el) {\n return elMap.get(el);\n }\n}\n","import { BurgerBlock } from './block.js';\n/**\n * 未知のブロックを作成する\n * @param html - 未知のブロックのHTML文字列\n * @param engine - BurgerEditorEngineインスタンス\n * @returns 作成されたBurgerBlockインスタンス\n * @description\n * 1. wysiwygブロックを作成\n * 2. HTMLをwysiwygアイテムにインポート\n * 3. ブロック名を'unknown'に設定\n * 4. コンテナタイプを'grid:1'に設定\n */\nexport async function createUnknownBlock(html, engine) {\n const block = await BurgerBlock.new(engine, 'wysiwyg');\n await block.items[0]?.import({ wysiwyg: html });\n block.el.dataset.bgeName = 'unknown';\n block.el.dataset.bgeContainer = 'grid:1';\n return block;\n}\n","/**\n *\n * @param array\n * @param searchValues\n */\nexport function findValueFromArray(array, searchValues) {\n for (const value of searchValues) {\n if (array.includes(value)) {\n return value;\n }\n }\n return null;\n}\n","/**\n *\n * @param array\n * @param pattern\n */\nexport function findValuePatternFromArray(array, pattern) {\n for (const value of array) {\n if (pattern.test(value)) {\n return value;\n }\n }\n return null;\n}\n","import { findValueFromArray } from '../utils/find-value-from-array.js';\nimport { findValuePatternFromArray } from '../utils/find-value-pattern-from-array.js';\n/**\n * コンテナ特性の文字列を解析してオブジェクトに変換する\n * @param containerPropsQuery - コンテナ特性の文字列(例: \"grid:1\", \"inline:center:wrap\", \"float:start\")\n * @returns コンテナ特性のオブジェクト\n * @description\n * コンテナ特性の文字列をコロン区切りで解析し、以下のプロパティを設定:\n * - type: 'grid' | 'inline' | 'float'(デフォルト: 'inline')\n * - immutable: オプションに'immutable'が含まれるかどうか\n * - justify: inlineタイプの場合の水平方向の配置(center, start, end, between, around, evenly)\n * - align: inlineタイプの場合の垂直方向の配置(align-center, align-start, align-end, align-stretch, align-baseline)\n * - wrap: inlineタイプの場合の折り返し設定(wrap, nowrap)\n * - columns: gridタイプの場合の列数(1以上の整数)\n * - float: floatタイプの場合の浮動方向(start, end)\n */\nexport function exportContainerProps(containerPropsQuery) {\n const [type, ...options] = containerPropsQuery?.split(':').map((char) => char.trim().toLowerCase()) ?? [];\n return {\n type: findValueFromArray([type ?? 'inline'], ['grid', 'inline', 'float']) ?? 'inline',\n immutable: options.includes('immutable'),\n justify: type === 'inline'\n ? findValueFromArray(options, [\n 'center',\n 'start',\n 'end',\n 'between',\n 'around',\n 'evenly',\n ])\n : null,\n align: type === 'inline'\n ? findValueFromArray(options, [\n 'align-center',\n 'align-start',\n 'align-end',\n 'align-stretch',\n 'align-baseline',\n ])\n : null,\n wrap: type === 'inline' ? findValueFromArray(options, ['wrap', 'nowrap']) : null,\n columns: type === 'grid'\n ? (Number.parseInt(findValuePatternFromArray(options, /[1-9]\\d*/) ?? '', 10) ?? 1)\n : null,\n float: type === 'float' ? findValueFromArray(options, ['start', 'end']) : null,\n };\n}\n","import { exportContainerProps } from './export-container-props.js';\n/**\n *\n * @param el\n */\nexport function exportOptions(el) {\n const props = exportContainerProps(el.dataset.bgeContainer);\n const classList = [...el.classList];\n const id = el.id.replace(/^bge-/, '').trim() || null;\n const style = {};\n for (const property of el.style) {\n if (!property.startsWith('--bge-options-')) {\n continue;\n }\n const category = property.replace('--bge-options-', '');\n const propValue = el.style.getPropertyValue(property);\n const [, _category, propName] = propValue.match(/^var\\(--bge-options-([a-z]+)-([a-z]+(?:-[a-z]+)*)\\)$/) ?? [];\n if (category !== _category || !propName) {\n continue;\n }\n style[category] = propName;\n }\n return {\n props,\n classList,\n id,\n style,\n };\n}\n","/**\n *\n * @param containerProps\n */\nexport function importContainerProps(containerProps) {\n const { type, immutable, justify, align, wrap, columns, float } = containerProps ?? {};\n const options = new Set();\n if (immutable) {\n options.add('immutable');\n }\n if (justify) {\n options.add(justify);\n }\n if (align) {\n options.add(align);\n }\n if (wrap) {\n options.add(wrap);\n }\n if (columns) {\n options.add(columns.toString());\n }\n if (float) {\n options.add(float);\n }\n const query = [type, ...options].join(':');\n return query;\n}\n","import { sanitizeAttrs } from '../dom-helpers/sanitize-attrs.js';\nimport { importContainerProps } from './import-container-props.js';\n/**\n *\n * @param el\n * @param options\n */\nexport function importOptions(el, options) {\n const { props, classList, id, style } = options;\n sanitizeAttrs(el);\n el.dataset.bgeContainer = importContainerProps(props);\n el.classList.remove(...el.classList);\n if (classList.length > 0) {\n el.classList.add(...classList);\n }\n else {\n el.removeAttribute('class');\n }\n if (id && id.trim()) {\n el.id = `bge-${id.trim()}`;\n }\n else {\n el.removeAttribute('id');\n }\n el.removeAttribute('style');\n for (const [key, value] of Object.entries(style)) {\n if (value === '@@default') {\n continue;\n }\n const name = `--bge-options-${key}`;\n const variable = `var(${name}-${value})`;\n el.style.setProperty(name, variable);\n }\n}\n","import { Item } from '../item/item.js';\n/**\n * グリッドアイテムを追加または削除する\n * @param $items - 子要素の配列\n * @param engine - BurgerEditorEngineインスタンス\n * @param addOrRemove - 1: 追加, -1: 削除\n * @param items - アイテムの配列\n * @param updateItem\n * @description\n * グリッドアイテムの追加/削除を行う:\n * - 追加の場合:\n * 1. 最後の要素をクローン\n * 2. クローンを親要素に追加\n * 3. クローン内のアイテムを初期化してitemsに追加\n * - 削除の場合:\n * 1. 最後の要素を削除\n * 2. itemsから対応するアイテムを削除\n */\nexport async function updateGridItems($items, engine, addOrRemove, items, updateItem) {\n const $lastItem = $items.at(-1);\n if (!$lastItem) {\n return;\n }\n // Add\n if (addOrRemove === 1) {\n const $newItem = $lastItem.cloneNode(true);\n $lastItem.parentElement?.append($newItem);\n const $newItems = $newItem.querySelectorAll('[data-bge-group]');\n for (const $item of $newItems) {\n const item = await Item.new(engine, $item);\n const newItems = [...items];\n newItems[newItems.length] = item;\n updateItem(newItems);\n }\n return;\n }\n // Remove\n const removeCount = $lastItem.querySelectorAll('[data-bge-group]').length;\n $lastItem.remove();\n const newItems = [...items];\n newItems.splice(-removeCount);\n updateItem(newItems);\n}\n","import { Item } from '../item/item.js';\nimport { createUnknownBlock } from './create-unknown-block.js';\nimport { exportOptions } from './export-options.js';\nimport { importOptions } from './import-options.js';\nimport { updateGridItems } from './update-grid-items.js';\nconst bbMap = new WeakMap();\nlet _lastUID = 0;\nexport class BurgerBlock {\n engine;\n #items = [];\n #uid;\n get items() {\n return this.#items;\n }\n set items(items) {\n this.#items = items;\n }\n get id() {\n return this.el.id;\n }\n get el() {\n return bbMap.get(this);\n }\n // eslint-disable-next-line no-restricted-syntax\n constructor(engine, elementOrBlockName) {\n this.#uid = _lastUID++;\n this.engine = engine;\n if (typeof elementOrBlockName === 'string') {\n const el = engine.getBlockTemplate(elementOrBlockName);\n if (el) {\n bbMap.set(this, el);\n }\n }\n else if (elementOrBlockName) {\n const el = elementOrBlockName;\n bbMap.set(this, el);\n }\n else {\n throw new Error('Do not create BurgerBlock. A base element is empty.');\n }\n BurgerBlock.#blocks.set(this.el, this);\n }\n clone() {\n const originalData = this.#export();\n const newBlock = new BurgerBlock(this.engine, this.el.dataset.bgeName ?? 'unknown');\n newBlock.#import(originalData);\n return newBlock;\n }\n existNext() {\n return !!this.el.nextElementSibling;\n }\n existPrev() {\n return !!this.el.previousElementSibling;\n }\n exportOptions() {\n return exportOptions(this.el);\n }\n getHTMLStringify() {\n return this.el.outerHTML;\n }\n importJSONString(jsonString) {\n const data = JSON.parse(jsonString);\n try {\n this.#import(data);\n }\n catch (error) {\n throw new Error(`ImportError: ${error instanceof Error ? error.message : error}`);\n }\n }\n importOptions(options) {\n importOptions(this.el, options);\n }\n importTypes(extractor) {\n for (const [i, item] of this.items.entries()) {\n void item.import(extractor(i, item));\n }\n }\n is(block) {\n return this.#uid === block.#uid;\n }\n isDisable() {\n let msg = '';\n for (const type of this.items) {\n msg = type.isDisable();\n if (msg) {\n break;\n }\n }\n return msg;\n }\n isMutable() {\n return this.el.matches(':not([data-bge-container*=\":immutable\"]):has(>[data-bge-group])');\n }\n remove() {\n this.el.remove();\n }\n toJSONStringify(space) {\n return JSON.stringify(this.#export(), null, space);\n }\n async updateGridItems(addOrRemove) {\n await updateGridItems([...this.el.children], this.engine, addOrRemove, this.items, (items) => (this.items = items));\n }\n #export() {\n const data = {\n ...this.exportOptions(),\n itemData: this.items.map((type) => type.export()),\n };\n return data;\n }\n #import(data) {\n for (const [i, typeData] of data.itemData.entries()) {\n void this.items[i]?.import(typeData);\n }\n importOptions(this.el, data);\n }\n async #init() {\n for (const $item of this.el.querySelectorAll('[data-bgi], [data-bgt]')) {\n const item = await Item.new(this.engine, $item);\n this.items[this.items.length] = item;\n }\n }\n static #blocks = new WeakMap();\n static async new(engine, elementOrBlockName) {\n const block = new BurgerBlock(engine, elementOrBlockName);\n await block.#init();\n return block;\n }\n static async createUnknownBlock(html, engine) {\n return createUnknownBlock(html, engine);\n }\n static getBlock(el) {\n const block = this.#blocks.get(el);\n if (!block) {\n throw new Error('Do not get BurgerBlock instance.');\n }\n return block;\n }\n}\n","// generated during release, do not modify\n\n/**\n * The current version, as set in package.json.\n * @type {string}\n */\nexport const VERSION = '5.25.6';\nexport const PUBLIC_VERSION = '5';\n","import { PUBLIC_VERSION } from '../version.js';\n\nif (typeof window !== 'undefined') {\n\t// @ts-expect-error\n\t((window.__svelte ??= {}).v ??= new Set()).add(PUBLIC_VERSION);\n}\n","export let legacy_mode_flag = false;\nexport let tracing_mode_flag = false;\n\nexport function enable_legacy_mode_flag() {\n\tlegacy_mode_flag = true;\n}\n\nexport function enable_tracing_mode_flag() {\n\ttracing_mode_flag = true;\n}\n","import { enable_legacy_mode_flag } from './index.js';\n\nenable_legacy_mode_flag();\n","export const EACH_ITEM_REACTIVE = 1;\nexport const EACH_INDEX_REACTIVE = 1 << 1;\n/** See EachBlock interface metadata.is_controlled for an explanation what this is */\nexport const EACH_IS_CONTROLLED = 1 << 2;\nexport const EACH_IS_ANIMATED = 1 << 3;\nexport const EACH_ITEM_IMMUTABLE = 1 << 4;\n\nexport const PROPS_IS_IMMUTABLE = 1;\nexport const PROPS_IS_RUNES = 1 << 1;\nexport const PROPS_IS_UPDATED = 1 << 2;\nexport const PROPS_IS_BINDABLE = 1 << 3;\nexport const PROPS_IS_LAZY_INITIAL = 1 << 4;\n\nexport const TRANSITION_IN = 1;\nexport const TRANSITION_OUT = 1 << 1;\nexport const TRANSITION_GLOBAL = 1 << 2;\n\nexport const TEMPLATE_FRAGMENT = 1;\nexport const TEMPLATE_USE_IMPORT_NODE = 1 << 1;\n\nexport const HYDRATION_START = '[';\n/** used to indicate that an `{:else}...` block was rendered */\nexport const HYDRATION_START_ELSE = '[!';\nexport const HYDRATION_END = ']';\nexport const HYDRATION_ERROR = {};\n\nexport const ELEMENT_IS_NAMESPACED = 1;\nexport const ELEMENT_PRESERVE_ATTRIBUTE_CASE = 1 << 1;\n\nexport const UNINITIALIZED = Symbol();\n\n// Dev-time component properties\nexport const FILENAME = Symbol('filename');\nexport const HMR = Symbol('hmr');\n\nexport const NAMESPACE_HTML = 'http://www.w3.org/1999/xhtml';\nexport const NAMESPACE_SVG = 'http://www.w3.org/2000/svg';\nexport const NAMESPACE_MATHML = 'http://www.w3.org/1998/Math/MathML';\n\n// we use a list of ignorable runtime warnings because not every runtime warning\n// can be ignored and we want to keep the validation for svelte-ignore in place\nexport const IGNORABLE_RUNTIME_WARNINGS = /** @type {const} */ ([\n\t'state_snapshot_uncloneable',\n\t'binding_property_non_reactive',\n\t'hydration_attribute_changed',\n\t'hydration_html_changed',\n\t'ownership_invalid_binding',\n\t'ownership_invalid_mutation'\n]);\n\n/**\n * Whitespace inside one of these elements will not result in\n * a whitespace node being created in any circumstances. (This\n * list is almost certainly very incomplete)\n * TODO this is currently unused\n */\nexport const ELEMENTS_WITHOUT_TEXT = ['audio', 'datalist', 'dl', 'optgroup', 'select', 'video'];\n","export default false;\n","export const DERIVED = 1 << 1;\nexport const EFFECT = 1 << 2;\nexport const RENDER_EFFECT = 1 << 3;\nexport const BLOCK_EFFECT = 1 << 4;\nexport const BRANCH_EFFECT = 1 << 5;\nexport const ROOT_EFFECT = 1 << 6;\nexport const BOUNDARY_EFFECT = 1 << 7;\nexport const UNOWNED = 1 << 8;\nexport const DISCONNECTED = 1 << 9;\nexport const CLEAN = 1 << 10;\nexport const DIRTY = 1 << 11;\nexport const MAYBE_DIRTY = 1 << 12;\nexport const INERT = 1 << 13;\nexport const DESTROYED = 1 << 14;\nexport const EFFECT_RAN = 1 << 15;\n/** 'Transparent' effects do not create a transition boundary */\nexport const EFFECT_TRANSPARENT = 1 << 16;\n/** Svelte 4 legacy mode props need to be handled with deriveds and be recognized elsewhere, hence the dedicated flag */\nexport const LEGACY_DERIVED_PROP = 1 << 17;\nexport const INSPECT_EFFECT = 1 << 18;\nexport const HEAD_EFFECT = 1 << 19;\nexport const EFFECT_HAS_DERIVED = 1 << 20;\nexport const EFFECT_IS_UPDATING = 1 << 21;\n\nexport const STATE_SYMBOL = Symbol('$state');\nexport const STATE_SYMBOL_METADATA = Symbol('$state metadata');\nexport const LEGACY_PROPS = Symbol('legacy props');\nexport const LOADING_ATTR_SYMBOL = Symbol('');\n","// Store the references to globals in case someone tries to monkey patch these, causing the below\n// to de-opt (this occurs often when using popular extensions).\nexport var is_array = Array.isArray;\nexport var index_of = Array.prototype.indexOf;\nexport var array_from = Array.from;\nexport var object_keys = Object.keys;\nexport var define_property = Object.defineProperty;\nexport var get_descriptor = Object.getOwnPropertyDescriptor;\nexport var get_descriptors = Object.getOwnPropertyDescriptors;\nexport var object_prototype = Object.prototype;\nexport var array_prototype = Array.prototype;\nexport var get_prototype_of = Object.getPrototypeOf;\nexport var is_extensible = Object.isExtensible;\n\n/**\n * @param {any} thing\n * @returns {thing is Function}\n */\nexport function is_function(thing) {\n\treturn typeof thing === 'function';\n}\n\nexport const noop = () => {};\n\n// Adapted from https://github.com/then/is-promise/blob/master/index.js\n// Distributed under MIT License https://github.com/then/is-promise/blob/master/LICENSE\n\n/**\n * @template [T=any]\n * @param {any} value\n * @returns {value is PromiseLike<T>}\n */\nexport function is_promise(value) {\n\treturn typeof value?.then === 'function';\n}\n\n/** @param {Function} fn */\nexport function run(fn) {\n\treturn fn();\n}\n\n/** @param {Array<() => void>} arr */\nexport function run_all(arr) {\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tarr[i]();\n\t}\n}\n\n/**\n * TODO replace with Promise.withResolvers once supported widely enough\n * @template T\n */\nexport function deferred() {\n\t/** @type {(value: T) => void} */\n\tvar resolve;\n\n\t/** @type {(reason: any) => void} */\n\tvar reject;\n\n\t/** @type {Promise<T>} */\n\tvar promise = new Promise((res, rej) => {\n\t\tresolve = res;\n\t\treject = rej;\n\t});\n\n\t// @ts-expect-error\n\treturn { promise, resolve, reject };\n}\n\n/**\n * @template V\n * @param {V} value\n * @param {V | (() => V)} fallback\n * @param {boolean} [lazy]\n * @returns {V}\n */\nexport function fallback(value, fallback, lazy = false) {\n\treturn value === undefined\n\t\t? lazy\n\t\t\t? /** @type {() => V} */ (fallback)()\n\t\t\t: /** @type {V} */ (fallback)\n\t\t: value;\n}\n","import { run_all } from '../../shared/utils.js';\n\n// Fallback for when requestIdleCallback is not available\nconst request_idle_callback =\n\ttypeof requestIdleCallback === 'undefined'\n\t\t? (/** @type {() => void} */ cb) => setTimeout(cb, 1)\n\t\t: requestIdleCallback;\n\n/** @type {Array<() => void>} */\nlet micro_tasks = [];\n\n/** @type {Array<() => void>} */\nlet idle_tasks = [];\n\nfunction run_micro_tasks() {\n\tvar tasks = micro_tasks;\n\tmicro_tasks = [];\n\trun_all(tasks);\n}\n\nfunction run_idle_tasks() {\n\tvar tasks = idle_tasks;\n\tidle_tasks = [];\n\trun_all(tasks);\n}\n\n/**\n * @param {() => void} fn\n */\nexport function queue_micro_task(fn) {\n\tif (micro_tasks.length === 0) {\n\t\tqueueMicrotask(run_micro_tasks);\n\t}\n\n\tmicro_tasks.push(fn);\n}\n\n/**\n * @param {() => void} fn\n */\nexport function queue_idle_task(fn) {\n\tif (idle_tasks.length === 0) {\n\t\trequest_idle_callback(run_idle_tasks);\n\t}\n\n\tidle_tasks.push(fn);\n}\n\n/**\n * Synchronously run any queued tasks.\n */\nexport function flush_tasks() {\n\tif (micro_tasks.length > 0) {\n\t\trun_micro_tasks();\n\t}\n\n\tif (idle_tasks.length > 0) {\n\t\trun_idle_tasks();\n\t}\n}\n","/** @import { Equals } from '#client' */\n/** @type {Equals} */\nexport function equals(value) {\n\treturn value === this.v;\n}\n\n/**\n * @param {unknown} a\n * @param {unknown} b\n * @returns {boolean}\n */\nexport function safe_not_equal(a, b) {\n\treturn a != a\n\t\t? b == b\n\t\t: a !== b || (a !== null && typeof a === 'object') || typeof a === 'function';\n}\n\n/**\n * @param {unknown} a\n * @param {unknown} b\n * @returns {boolean}\n */\nexport function not_equal(a, b) {\n\treturn a !== b;\n}\n\n/** @type {Equals} */\nexport function safe_equals(value) {\n\treturn !safe_not_equal(value, this.v);\n}\n","/* This file is generated by scripts/process-messages/index.js. Do not edit! */\n\nimport { DEV } from 'esm-env';\n\n/**\n * Using `bind:value` together with a checkbox input is not allowed. Use `bind:checked` instead\n * @returns {never}\n */\nexport function bind_invalid_checkbox_value() {\n\tif (DEV) {\n\t\tconst error = new Error(`bind_invalid_checkbox_value\\nUsing \\`bind:value\\` together with a checkbox input is not allowed. Use \\`bind:checked\\` instead\\nhttps://svelte.dev/e/bind_invalid_checkbox_value`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/bind_invalid_checkbox_value`);\n\t}\n}\n\n/**\n * Component %component% has an export named `%key%` that a consumer component is trying to access using `bind:%key%`, which is disallowed. Instead, use `bind:this` (e.g. `<%name% bind:this={component} />`) and then access the property on the bound component instance (e.g. `component.%key%`)\n * @param {string} component\n * @param {string} key\n * @param {string} name\n * @returns {never}\n */\nexport function bind_invalid_export(component, key, name) {\n\tif (DEV) {\n\t\tconst error = new Error(`bind_invalid_export\\nComponent ${component} has an export named \\`${key}\\` that a consumer component is trying to access using \\`bind:${key}\\`, which is disallowed. Instead, use \\`bind:this\\` (e.g. \\`<${name} bind:this={component} />\\`) and then access the property on the bound component instance (e.g. \\`component.${key}\\`)\\nhttps://svelte.dev/e/bind_invalid_export`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/bind_invalid_export`);\n\t}\n}\n\n/**\n * A component is attempting to bind to a non-bindable property `%key%` belonging to %component% (i.e. `<%name% bind:%key%={...}>`). To mark a property as bindable: `let { %key% = $bindable() } = $props()`\n * @param {string} key\n * @param {string} component\n * @param {string} name\n * @returns {never}\n */\nexport function bind_not_bindable(key, component, name) {\n\tif (DEV) {\n\t\tconst error = new Error(`bind_not_bindable\\nA component is attempting to bind to a non-bindable property \\`${key}\\` belonging to ${component} (i.e. \\`<${name} bind:${key}={...}>\\`). To mark a property as bindable: \\`let { ${key} = $bindable() } = $props()\\`\\nhttps://svelte.dev/e/bind_not_bindable`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/bind_not_bindable`);\n\t}\n}\n\n/**\n * %parent% called `%method%` on an instance of %component%, which is no longer valid in Svelte 5\n * @param {string} parent\n * @param {string} method\n * @param {string} component\n * @returns {never}\n */\nexport function component_api_changed(parent, method, component) {\n\tif (DEV) {\n\t\tconst error = new Error(`component_api_changed\\n${parent} called \\`${method}\\` on an instance of ${component}, which is no longer valid in Svelte 5\\nhttps://svelte.dev/e/component_api_changed`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/component_api_changed`);\n\t}\n}\n\n/**\n * Attempted to instantiate %component% with `new %name%`, which is no longer valid in Svelte 5. If this component is not under your control, set the `compatibility.componentApi` compiler option to `4` to keep it working.\n * @param {string} component\n * @param {string} name\n * @returns {never}\n */\nexport function component_api_invalid_new(component, name) {\n\tif (DEV) {\n\t\tconst error = new Error(`component_api_invalid_new\\nAttempted to instantiate ${component} with \\`new ${name}\\`, which is no longer valid in Svelte 5. If this component is not under your control, set the \\`compatibility.componentApi\\` compiler option to \\`4\\` to keep it working.\\nhttps://svelte.dev/e/component_api_invalid_new`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/component_api_invalid_new`);\n\t}\n}\n\n/**\n * A derived value cannot reference itself recursively\n * @returns {never}\n */\nexport function derived_references_self() {\n\tif (DEV) {\n\t\tconst error = new Error(`derived_references_self\\nA derived value cannot reference itself recursively\\nhttps://svelte.dev/e/derived_references_self`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/derived_references_self`);\n\t}\n}\n\n/**\n * Keyed each block has duplicate key `%value%` at indexes %a% and %b%\n * @param {string} a\n * @param {string} b\n * @param {string | undefined | null} [value]\n * @returns {never}\n */\nexport function each_key_duplicate(a, b, value) {\n\tif (DEV) {\n\t\tconst error = new Error(`each_key_duplicate\\n${value ? `Keyed each block has duplicate key \\`${value}\\` at indexes ${a} and ${b}` : `Keyed each block has duplicate key at indexes ${a} and ${b}`}\\nhttps://svelte.dev/e/each_key_duplicate`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/each_key_duplicate`);\n\t}\n}\n\n/**\n * `%rune%` cannot be used inside an effect cleanup function\n * @param {string} rune\n * @returns {never}\n */\nexport function effect_in_teardown(rune) {\n\tif (DEV) {\n\t\tconst error = new Error(`effect_in_teardown\\n\\`${rune}\\` cannot be used inside an effect cleanup function\\nhttps://svelte.dev/e/effect_in_teardown`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/effect_in_teardown`);\n\t}\n}\n\n/**\n * Effect cannot be created inside a `$derived` value that was not itself created inside an effect\n * @returns {never}\n */\nexport function effect_in_unowned_derived() {\n\tif (DEV) {\n\t\tconst error = new Error(`effect_in_unowned_derived\\nEffect cannot be created inside a \\`$derived\\` value that was not itself created inside an effect\\nhttps://svelte.dev/e/effect_in_unowned_derived`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/effect_in_unowned_derived`);\n\t}\n}\n\n/**\n * `%rune%` can only be used inside an effect (e.g. during component initialisation)\n * @param {string} rune\n * @returns {never}\n */\nexport function effect_orphan(rune) {\n\tif (DEV) {\n\t\tconst error = new Error(`effect_orphan\\n\\`${rune}\\` can only be used inside an effect (e.g. during component initialisation)\\nhttps://svelte.dev/e/effect_orphan`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/effect_orphan`);\n\t}\n}\n\n/**\n * Maximum update depth exceeded. This can happen when a reactive block or effect repeatedly sets a new value. Svelte limits the number of nested updates to prevent infinite loops\n * @returns {never}\n */\nexport function effect_update_depth_exceeded() {\n\tif (DEV) {\n\t\tconst error = new Error(`effect_update_depth_exceeded\\nMaximum update depth exceeded. This can happen when a reactive block or effect repeatedly sets a new value. Svelte limits the number of nested updates to prevent infinite loops\\nhttps://svelte.dev/e/effect_update_depth_exceeded`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/effect_update_depth_exceeded`);\n\t}\n}\n\n/**\n * Failed to hydrate the application\n * @returns {never}\n */\nexport function hydration_failed() {\n\tif (DEV) {\n\t\tconst error = new Error(`hydration_failed\\nFailed to hydrate the application\\nhttps://svelte.dev/e/hydration_failed`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/hydration_failed`);\n\t}\n}\n\n/**\n * Could not `{@render}` snippet due to the expression being `null` or `undefined`. Consider using optional chaining `{@render snippet?.()}`\n * @returns {never}\n */\nexport function invalid_snippet() {\n\tif (DEV) {\n\t\tconst error = new Error(`invalid_snippet\\nCould not \\`{@render}\\` snippet due to the expression being \\`null\\` or \\`undefined\\`. Consider using optional chaining \\`{@render snippet?.()}\\`\\nhttps://svelte.dev/e/invalid_snippet`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/invalid_snippet`);\n\t}\n}\n\n/**\n * `%name%(...)` cannot be used in runes mode\n * @param {string} name\n * @returns {never}\n */\nexport function lifecycle_legacy_only(name) {\n\tif (DEV) {\n\t\tconst error = new Error(`lifecycle_legacy_only\\n\\`${name}(...)\\` cannot be used in runes mode\\nhttps://svelte.dev/e/lifecycle_legacy_only`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/lifecycle_legacy_only`);\n\t}\n}\n\n/**\n * Cannot do `bind:%key%={undefined}` when `%key%` has a fallback value\n * @param {string} key\n * @returns {never}\n */\nexport function props_invalid_value(key) {\n\tif (DEV) {\n\t\tconst error = new Error(`props_invalid_value\\nCannot do \\`bind:${key}={undefined}\\` when \\`${key}\\` has a fallback value\\nhttps://svelte.dev/e/props_invalid_value`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/props_invalid_value`);\n\t}\n}\n\n/**\n * Rest element properties of `$props()` such as `%property%` are readonly\n * @param {string} property\n * @returns {never}\n */\nexport function props_rest_readonly(property) {\n\tif (DEV) {\n\t\tconst error = new Error(`props_rest_readonly\\nRest element properties of \\`$props()\\` such as \\`${property}\\` are readonly\\nhttps://svelte.dev/e/props_rest_readonly`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/props_rest_readonly`);\n\t}\n}\n\n/**\n * The `%rune%` rune is only available inside `.svelte` and `.svelte.js/ts` files\n * @param {string} rune\n * @returns {never}\n */\nexport function rune_outside_svelte(rune) {\n\tif (DEV) {\n\t\tconst error = new Error(`rune_outside_svelte\\nThe \\`${rune}\\` rune is only available inside \\`.svelte\\` and \\`.svelte.js/ts\\` files\\nhttps://svelte.dev/e/rune_outside_svelte`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/rune_outside_svelte`);\n\t}\n}\n\n/**\n * Property descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\n * @returns {never}\n */\nexport function state_descriptors_fixed() {\n\tif (DEV) {\n\t\tconst error = new Error(`state_descriptors_fixed\\nProperty descriptors defined on \\`$state\\` objects must contain \\`value\\` and always be \\`enumerable\\`, \\`configurable\\` and \\`writable\\`.\\nhttps://svelte.dev/e/state_descriptors_fixed`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/state_descriptors_fixed`);\n\t}\n}\n\n/**\n * Cannot set prototype of `$state` object\n * @returns {never}\n */\nexport function state_prototype_fixed() {\n\tif (DEV) {\n\t\tconst error = new Error(`state_prototype_fixed\\nCannot set prototype of \\`$state\\` object\\nhttps://svelte.dev/e/state_prototype_fixed`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/state_prototype_fixed`);\n\t}\n}\n\n/**\n * Updating state inside a derived or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\n * @returns {never}\n */\nexport function state_unsafe_mutation() {\n\tif (DEV) {\n\t\tconst error = new Error(`state_unsafe_mutation\\nUpdating state inside a derived or a template expression is forbidden. If the value should not be reactive, declare it without \\`$state\\`\\nhttps://svelte.dev/e/state_unsafe_mutation`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/state_unsafe_mutation`);\n\t}\n}","/** @import { ProxyMetadata, Source } from '#client' */\nimport { DEV } from 'esm-env';\nimport { get, active_effect, active_reaction, set_active_reaction } from './runtime.js';\nimport { component_context } from './context.js';\nimport {\n\tarray_prototype,\n\tget_descriptor,\n\tget_prototype_of,\n\tis_array,\n\tobject_prototype\n} from '../shared/utils.js';\nimport { check_ownership, widen_ownership } from './dev/ownership.js';\nimport { state as source, set } from './reactivity/sources.js';\nimport { STATE_SYMBOL, STATE_SYMBOL_METADATA } from './constants.js';\nimport { UNINITIALIZED } from '../../constants.js';\nimport * as e from './errors.js';\nimport { get_stack } from './dev/tracing.js';\nimport { tracing_mode_flag } from '../flags/index.js';\n\n/** @type {ProxyMetadata | null} */\nvar parent_metadata = null;\n\n/**\n * @template T\n * @param {T} value\n * @param {Source<T>} [prev] dev mode only\n * @returns {T}\n */\nexport function proxy(value, prev) {\n\t// if non-proxyable, or is already a proxy, return `value`\n\tif (typeof value !== 'object' || value === null || STATE_SYMBOL in value) {\n\t\treturn value;\n\t}\n\n\tconst prototype = get_prototype_of(value);\n\n\tif (prototype !== object_prototype && prototype !== array_prototype) {\n\t\treturn value;\n\t}\n\n\t/** @type {Map<any, Source<any>>} */\n\tvar sources = new Map();\n\tvar is_proxied_array = is_array(value);\n\tvar version = source(0);\n\n\tvar stack = DEV && tracing_mode_flag ? get_stack('CreatedAt') : null;\n\tvar reaction = active_reaction;\n\n\t/**\n\t * @template T\n\t * @param {() => T} fn\n\t */\n\tvar with_parent = (fn) => {\n\t\tvar previous_reaction = active_reaction;\n\t\tset_active_reaction(reaction);\n\n\t\t/** @type {T} */\n\t\tvar result;\n\n\t\tif (DEV) {\n\t\t\tvar previous_metadata = parent_metadata;\n\t\t\tparent_metadata = metadata;\n\t\t\tresult = fn();\n\t\t\tparent_metadata = previous_metadata;\n\t\t} else {\n\t\t\tresult = fn();\n\t\t}\n\n\t\tset_active_reaction(previous_reaction);\n\t\treturn result;\n\t};\n\n\tif (is_proxied_array) {\n\t\t// We need to create the length source eagerly to ensure that\n\t\t// mutations to the array are properly synced with our proxy\n\t\tsources.set('length', source(/** @type {any[]} */ (value).length, stack));\n\t}\n\n\t/** @type {ProxyMetadata} */\n\tvar metadata;\n\n\tif (DEV) {\n\t\tmetadata = {\n\t\t\tparent: parent_metadata,\n\t\t\towners: null\n\t\t};\n\n\t\tif (prev) {\n\t\t\t// Reuse owners from previous state; necessary because reassignment is not guaranteed to have correct component context.\n\t\t\t// If no previous proxy exists we play it safe and assume ownerless state\n\t\t\t// @ts-expect-error\n\t\t\tconst prev_owners = prev.v?.[STATE_SYMBOL_METADATA]?.owners;\n\t\t\tmetadata.owners = prev_owners ? new Set(prev_owners) : null;\n\t\t} else {\n\t\t\tmetadata.owners =\n\t\t\t\tparent_metadata === null\n\t\t\t\t\t? component_context !== null\n\t\t\t\t\t\t? new Set([component_context.function])\n\t\t\t\t\t\t: null\n\t\t\t\t\t: new Set();\n\t\t}\n\t}\n\n\treturn new Proxy(/** @type {any} */ (value), {\n\t\tdefineProperty(_, prop, descriptor) {\n\t\t\tif (\n\t\t\t\t!('value' in descriptor) ||\n\t\t\t\tdescriptor.configurable === false ||\n\t\t\t\tdescriptor.enumerable === false ||\n\t\t\t\tdescriptor.writable === false\n\t\t\t) {\n\t\t\t\t// we disallow non-basic descriptors, because unless they are applied to the\n\t\t\t\t// target object — which we avoid, so that state can be forked — we will run\n\t\t\t\t// afoul of the various invariants\n\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getOwnPropertyDescriptor#invariants\n\t\t\t\te.state_descriptors_fixed();\n\t\t\t}\n\n\t\t\tvar s = sources.get(prop);\n\n\t\t\tif (s === undefined) {\n\t\t\t\ts = with_parent(() => source(descriptor.value, stack));\n\t\t\t\tsources.set(prop, s);\n\t\t\t} else {\n\t\t\t\tset(\n\t\t\t\t\ts,\n\t\t\t\t\twith_parent(() => proxy(descriptor.value))\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\tdeleteProperty(target, prop) {\n\t\t\tvar s = sources.get(prop);\n\n\t\t\tif (s === undefined) {\n\t\t\t\tif (prop in target) {\n\t\t\t\t\tsources.set(\n\t\t\t\t\t\tprop,\n\t\t\t\t\t\twith_parent(() => source(UNINITIALIZED, stack))\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// When working with arrays, we need to also ensure we update the length when removing\n\t\t\t\t// an indexed property\n\t\t\t\tif (is_proxied_array && typeof prop === 'string') {\n\t\t\t\t\tvar ls = /** @type {Source<number>} */ (sources.get('length'));\n\t\t\t\t\tvar n = Number(prop);\n\n\t\t\t\t\tif (Number.isInteger(n) && n < ls.v) {\n\t\t\t\t\t\tset(ls, n);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tset(s, UNINITIALIZED);\n\t\t\t\tupdate_version(version);\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\tget(target, prop, receiver) {\n\t\t\tif (DEV && prop === STATE_SYMBOL_METADATA) {\n\t\t\t\treturn metadata;\n\t\t\t}\n\n\t\t\tif (prop === STATE_SYMBOL) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tvar s = sources.get(prop);\n\t\t\tvar exists = prop in target;\n\n\t\t\t// create a source, but only if it's an own property and not a prototype property\n\t\t\tif (s === undefined && (!exists || get_descriptor(target, prop)?.writable)) {\n\t\t\t\ts = with_parent(() => source(proxy(exists ? target[prop] : UNINITIALIZED), stack));\n\t\t\t\tsources.set(prop, s);\n\t\t\t}\n\n\t\t\tif (s !== undefined) {\n\t\t\t\tvar v = get(s);\n\n\t\t\t\t// In case of something like `foo = bar.map(...)`, foo would have ownership\n\t\t\t\t// of the array itself, while the individual items would have ownership\n\t\t\t\t// of the component that created bar. That means if we later do `foo[0].baz = 42`,\n\t\t\t\t// we could get a false-positive ownership violation, since the two proxies\n\t\t\t\t// are not connected to each other via the parent metadata relationship.\n\t\t\t\t// For this reason, we need to widen the ownership of the children\n\t\t\t\t// upon access when we detect they are not connected.\n\t\t\t\tif (DEV) {\n\t\t\t\t\t/** @type {ProxyMetadata | undefined} */\n\t\t\t\t\tvar prop_metadata = v?.[STATE_SYMBOL_METADATA];\n\t\t\t\t\tif (prop_metadata && prop_metadata?.parent !== metadata) {\n\t\t\t\t\t\twiden_ownership(metadata, prop_metadata);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn v === UNINITIALIZED ? undefined : v;\n\t\t\t}\n\n\t\t\treturn Reflect.get(target, prop, receiver);\n\t\t},\n\n\t\tgetOwnPropertyDescriptor(target, prop) {\n\t\t\tvar descriptor = Reflect.getOwnPropertyDescriptor(target, prop);\n\n\t\t\tif (descriptor && 'value' in descriptor) {\n\t\t\t\tvar s = sources.get(prop);\n\t\t\t\tif (s) descriptor.value = get(s);\n\t\t\t} else if (descriptor === undefined) {\n\t\t\t\tvar source = sources.get(prop);\n\t\t\t\tvar value = source?.v;\n\n\t\t\t\tif (source !== undefined && value !== UNINITIALIZED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\twritable: true\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn descriptor;\n\t\t},\n\n\t\thas(target, prop) {\n\t\t\tif (DEV && prop === STATE_SYMBOL_METADATA) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (prop === STATE_SYMBOL) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tvar s = sources.get(prop);\n\t\t\tvar has = (s !== undefined && s.v !== UNINITIALIZED) || Reflect.has(target, prop);\n\n\t\t\tif (\n\t\t\t\ts !== undefined ||\n\t\t\t\t(active_effect !== null && (!has || get_descriptor(target, prop)?.writable))\n\t\t\t) {\n\t\t\t\tif (s === undefined) {\n\t\t\t\t\ts = with_parent(() => source(has ? proxy(target[prop]) : UNINITIALIZED, stack));\n\t\t\t\t\tsources.set(prop, s);\n\t\t\t\t}\n\n\t\t\t\tvar value = get(s);\n\t\t\t\tif (value === UNINITIALIZED) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn has;\n\t\t},\n\n\t\tset(target, prop, value, receiver) {\n\t\t\tvar s = sources.get(prop);\n\t\t\tvar has = prop in target;\n\n\t\t\t// variable.length = value -> clear all signals with index >= value\n\t\t\tif (is_proxied_array && prop === 'length') {\n\t\t\t\tfor (var i = value; i < /** @type {Source<number>} */ (s).v; i += 1) {\n\t\t\t\t\tvar other_s = sources.get(i + '');\n\t\t\t\t\tif (other_s !== undefined) {\n\t\t\t\t\t\tset(other_s, UNINITIALIZED);\n\t\t\t\t\t} else if (i in target) {\n\t\t\t\t\t\t// If the item exists in the original, we need to create a uninitialized source,\n\t\t\t\t\t\t// else a later read of the property would result in a source being created with\n\t\t\t\t\t\t// the value of the original item at that index.\n\t\t\t\t\t\tother_s = with_parent(() => source(UNINITIALIZED, stack));\n\t\t\t\t\t\tsources.set(i + '', other_s);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If we haven't yet created a source for this property, we need to ensure\n\t\t\t// we do so otherwise if we read it later, then the write won't be tracked and\n\t\t\t// the heuristics of effects will be different vs if we had read the proxied\n\t\t\t// object property before writing to that property.\n\t\t\tif (s === undefined) {\n\t\t\t\tif (!has || get_descriptor(target, prop)?.writable) {\n\t\t\t\t\ts = with_parent(() => source(undefined, stack));\n\t\t\t\t\tset(\n\t\t\t\t\t\ts,\n\t\t\t\t\t\twith_parent(() => proxy(value))\n\t\t\t\t\t);\n\t\t\t\t\tsources.set(prop, s);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thas = s.v !== UNINITIALIZED;\n\t\t\t\tset(\n\t\t\t\t\ts,\n\t\t\t\t\twith_parent(() => proxy(value))\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (DEV) {\n\t\t\t\t/** @type {ProxyMetadata | undefined} */\n\t\t\t\tvar prop_metadata = value?.[STATE_SYMBOL_METADATA];\n\t\t\t\tif (prop_metadata && prop_metadata?.parent !== metadata) {\n\t\t\t\t\twiden_ownership(metadata, prop_metadata);\n\t\t\t\t}\n\t\t\t\tcheck_ownership(metadata);\n\t\t\t}\n\n\t\t\tvar descriptor = Reflect.getOwnPropertyDescriptor(target, prop);\n\n\t\t\t// Set the new value before updating any signals so that any listeners get the new value\n\t\t\tif (descriptor?.set) {\n\t\t\t\tdescriptor.set.call(receiver, value);\n\t\t\t}\n\n\t\t\tif (!has) {\n\t\t\t\t// If we have mutated an array directly, we might need to\n\t\t\t\t// signal that length has also changed. Do it before updating metadata\n\t\t\t\t// to ensure that iterating over the array as a result of a metadata update\n\t\t\t\t// will not cause the length to be out of sync.\n\t\t\t\tif (is_proxied_array && typeof prop === 'string') {\n\t\t\t\t\tvar ls = /** @type {Source<number>} */ (sources.get('length'));\n\t\t\t\t\tvar n = Number(prop);\n\n\t\t\t\t\tif (Number.isInteger(n) && n >= ls.v) {\n\t\t\t\t\t\tset(ls, n + 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tupdate_version(version);\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\townKeys(target) {\n\t\t\tget(version);\n\n\t\t\tvar own_keys = Reflect.ownKeys(target).filter((key) => {\n\t\t\t\tvar source = sources.get(key);\n\t\t\t\treturn source === undefined || source.v !== UNINITIALIZED;\n\t\t\t});\n\n\t\t\tfor (var [key, source] of sources) {\n\t\t\t\tif (source.v !== UNINITIALIZED && !(key in target)) {\n\t\t\t\t\town_keys.push(key);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn own_keys;\n\t\t},\n\n\t\tsetPrototypeOf() {\n\t\t\te.state_prototype_fixed();\n\t\t}\n\t});\n}\n\n/**\n * @param {Source<number>} signal\n * @param {1 | -1} [d]\n */\nfunction update_version(signal, d = 1) {\n\tset(signal, signal.v + d);\n}\n\n/**\n * @param {any} value\n */\nexport function get_proxied_value(value) {\n\ttry {\n\t\tif (value !== null && typeof value === 'object' && STATE_SYMBOL in value) {\n\t\t\treturn value[STATE_SYMBOL];\n\t\t}\n\t} catch {\n\t\t// the above if check can throw an error if the value in question\n\t\t// is the contentWindow of an iframe on another domain, in which\n\t\t// case we want to just return the value (because it's definitely\n\t\t// not a proxied value) so we don't break any JavaScript interacting\n\t\t// with that iframe (such as various payment companies client side\n\t\t// JavaScript libraries interacting with their iframes on the same\n\t\t// domain)\n\t}\n\n\treturn value;\n}\n\n/**\n * @param {any} a\n * @param {any} b\n */\nexport function is(a, b) {\n\treturn Object.is(get_proxied_value(a), get_proxied_value(b));\n}\n","/** @import { Derived, Effect, Reaction, Source, Value } from '#client' */\nimport { DEV } from 'esm-env';\nimport {\n\tactive_reaction,\n\tactive_effect,\n\tuntracked_writes,\n\tget,\n\tschedule_effect,\n\tset_untracked_writes,\n\tset_signal_status,\n\tuntrack,\n\tincrement_write_version,\n\tupdate_effect,\n\treaction_sources,\n\tset_reaction_sources,\n\tcheck_dirtiness,\n\tuntracking,\n\tis_destroying_effect,\n\tpush_reaction_value\n} from '../runtime.js';\nimport { equals, safe_equals } from './equality.js';\nimport {\n\tCLEAN,\n\tDERIVED,\n\tDIRTY,\n\tBRANCH_EFFECT,\n\tINSPECT_EFFECT,\n\tUNOWNED,\n\tMAYBE_DIRTY,\n\tBLOCK_EFFECT,\n\tROOT_EFFECT,\n\tEFFECT_IS_UPDATING\n} from '../constants.js';\nimport * as e from '../errors.js';\nimport { legacy_mode_flag, tracing_mode_flag } from '../../flags/index.js';\nimport { get_stack } from '../dev/tracing.js';\nimport { component_context, is_runes } from '../context.js';\nimport { proxy } from '../proxy.js';\n\nexport let inspect_effects = new Set();\nexport const old_values = new Map();\n\n/**\n * @param {Set<any>} v\n */\nexport function set_inspect_effects(v) {\n\tinspect_effects = v;\n}\n\n/**\n * @template V\n * @param {V} v\n * @param {Error | null} [stack]\n * @returns {Source<V>}\n */\n// TODO rename this to `state` throughout the codebase\nexport function source(v, stack) {\n\t/** @type {Value} */\n\tvar signal = {\n\t\tf: 0, // TODO ideally we could skip this altogether, but it causes type errors\n\t\tv,\n\t\treactions: null,\n\t\tequals,\n\t\trv: 0,\n\t\twv: 0\n\t};\n\n\tif (DEV && tracing_mode_flag) {\n\t\tsignal.created = stack ?? get_stack('CreatedAt');\n\t\tsignal.debug = null;\n\t}\n\n\treturn signal;\n}\n\n/**\n * @template V\n * @param {V} v\n * @param {Error | null} [stack]\n */\nexport function state(v, stack) {\n\tconst s = source(v, stack);\n\n\tpush_reaction_value(s);\n\n\treturn s;\n}\n\n/**\n * @template V\n * @param {V} initial_value\n * @param {boolean} [immutable]\n * @returns {Source<V>}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function mutable_source(initial_value, immutable = false) {\n\tconst s = source(initial_value);\n\tif (!immutable) {\n\t\ts.equals = safe_equals;\n\t}\n\n\t// bind the signal to the component context, in case we need to\n\t// track updates to trigger beforeUpdate/afterUpdate callbacks\n\tif (legacy_mode_flag && component_context !== null && component_context.l !== null) {\n\t\t(component_context.l.s ??= []).push(s);\n\t}\n\n\treturn s;\n}\n\n/**\n * @template V\n * @param {Value<V>} source\n * @param {V} value\n */\nexport function mutate(source, value) {\n\tset(\n\t\tsource,\n\t\tuntrack(() => get(source))\n\t);\n\treturn value;\n}\n\n/**\n * @template V\n * @param {Source<V>} source\n * @param {V} value\n * @param {boolean} [should_proxy]\n * @returns {V}\n */\nexport function set(source, value, should_proxy = false) {\n\tif (\n\t\tactive_reaction !== null &&\n\t\t!untracking &&\n\t\tis_runes() &&\n\t\t(active_reaction.f & (DERIVED | BLOCK_EFFECT)) !== 0 &&\n\t\t!reaction_sources?.includes(source)\n\t) {\n\t\te.state_unsafe_mutation();\n\t}\n\n\tlet new_value = should_proxy ? proxy(value, source) : value;\n\n\treturn internal_set(source, new_value);\n}\n\n/**\n * @template V\n * @param {Source<V>} source\n * @param {V} value\n * @returns {V}\n */\nexport function internal_set(source, value) {\n\tif (!source.equals(value)) {\n\t\tvar old_value = source.v;\n\n\t\tif (is_destroying_effect) {\n\t\t\told_values.set(source, value);\n\t\t} else {\n\t\t\told_values.set(source, old_value);\n\t\t}\n\n\t\tsource.v = value;\n\t\tsource.wv = increment_write_version();\n\n\t\tif (DEV && tracing_mode_flag) {\n\t\t\tsource.updated = get_stack('UpdatedAt');\n\t\t\tif (active_effect != null) {\n\t\t\t\tsource.trace_need_increase = true;\n\t\t\t\tsource.trace_v ??= old_value;\n\t\t\t}\n\t\t}\n\n\t\tmark_reactions(source, DIRTY);\n\n\t\t// It's possible that the current reaction might not have up-to-date dependencies\n\t\t// whilst it's actively running. So in the case of ensuring it registers the reaction\n\t\t// properly for itself, we need to ensure the current effect actually gets\n\t\t// scheduled. i.e: `$effect(() => x++)`\n\t\tif (\n\t\t\tis_runes() &&\n\t\t\tactive_effect !== null &&\n\t\t\t(active_effect.f & CLEAN) !== 0 &&\n\t\t\t(active_effect.f & (BRANCH_EFFECT | ROOT_EFFECT)) === 0\n\t\t) {\n\t\t\tif (untracked_writes === null) {\n\t\t\t\tset_untracked_writes([source]);\n\t\t\t} else {\n\t\t\t\tuntracked_writes.push(source);\n\t\t\t}\n\t\t}\n\n\t\tif (DEV && inspect_effects.size > 0) {\n\t\t\tconst inspects = Array.from(inspect_effects);\n\n\t\t\tfor (const effect of inspects) {\n\t\t\t\t// Mark clean inspect-effects as maybe dirty and then check their dirtiness\n\t\t\t\t// instead of just updating the effects - this way we avoid overfiring.\n\t\t\t\tif ((effect.f & CLEAN) !== 0) {\n\t\t\t\t\tset_signal_status(effect, MAYBE_DIRTY);\n\t\t\t\t}\n\t\t\t\tif (check_dirtiness(effect)) {\n\t\t\t\t\tupdate_effect(effect);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tinspect_effects.clear();\n\t\t}\n\t}\n\n\treturn value;\n}\n\n/**\n * @template {number | bigint} T\n * @param {Source<T>} source\n * @param {1 | -1} [d]\n * @returns {T}\n */\nexport function update(source, d = 1) {\n\tvar value = get(source);\n\tvar result = d === 1 ? value++ : value--;\n\n\tset(source, value);\n\n\t// @ts-expect-error\n\treturn result;\n}\n\n/**\n * @template {number | bigint} T\n * @param {Source<T>} source\n * @param {1 | -1} [d]\n * @returns {T}\n */\nexport function update_pre(source, d = 1) {\n\tvar value = get(source);\n\n\t// @ts-expect-error\n\treturn set(source, d === 1 ? ++value : --value);\n}\n\n/**\n * @param {Value} signal\n * @param {number} status should be DIRTY or MAYBE_DIRTY\n * @returns {void}\n */\nfunction mark_reactions(signal, status) {\n\tvar reactions = signal.reactions;\n\tif (reactions === null) return;\n\n\tvar runes = is_runes();\n\tvar length = reactions.length;\n\n\tfor (var i = 0; i < length; i++) {\n\t\tvar reaction = reactions[i];\n\t\tvar flags = reaction.f;\n\n\t\t// Skip any effects that are already dirty\n\t\tif ((flags & DIRTY) !== 0) continue;\n\n\t\t// In legacy mode, skip the current effect to prevent infinite loops\n\t\tif (!runes && reaction === active_effect) continue;\n\n\t\t// Inspect effects need to run immediately, so that the stack trace makes sense\n\t\tif (DEV && (flags & INSPECT_EFFECT) !== 0) {\n\t\t\tinspect_effects.add(reaction);\n\t\t\tcontinue;\n\t\t}\n\n\t\tset_signal_status(reaction, status);\n\n\t\t// If the signal a) was previously clean or b) is an unowned derived, then mark it\n\t\tif ((flags & (CLEAN | UNOWNED)) !== 0) {\n\t\t\tif ((flags & DERIVED) !== 0) {\n\t\t\t\tmark_reactions(/** @type {Derived} */ (reaction), MAYBE_DIRTY);\n\t\t\t} else {\n\t\t\t\tschedule_effect(/** @type {Effect} */ (reaction));\n\t\t\t}\n\t\t}\n\t}\n}\n","/** @import { Derived, Effect } from '#client' */\nimport { DEV } from 'esm-env';\nimport { CLEAN, DERIVED, DIRTY, EFFECT_HAS_DERIVED, MAYBE_DIRTY, UNOWNED } from '../constants.js';\nimport {\n\tactive_reaction,\n\tactive_effect,\n\tset_signal_status,\n\tskip_reaction,\n\tupdate_reaction,\n\tincrement_write_version,\n\tset_active_effect,\n\tpush_reaction_value\n} from '../runtime.js';\nimport { equals, safe_equals } from './equality.js';\nimport * as e from '../errors.js';\nimport { destroy_effect } from './effects.js';\nimport { inspect_effects, set_inspect_effects } from './sources.js';\nimport { get_stack } from '../dev/tracing.js';\nimport { tracing_mode_flag } from '../../flags/index.js';\nimport { component_context } from '../context.js';\n\n/**\n * @template V\n * @param {() => V} fn\n * @returns {Derived<V>}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function derived(fn) {\n\tvar flags = DERIVED | DIRTY;\n\tvar parent_derived =\n\t\tactive_reaction !== null && (active_reaction.f & DERIVED) !== 0\n\t\t\t? /** @type {Derived} */ (active_reaction)\n\t\t\t: null;\n\n\tif (active_effect === null || (parent_derived !== null && (parent_derived.f & UNOWNED) !== 0)) {\n\t\tflags |= UNOWNED;\n\t} else {\n\t\t// Since deriveds are evaluated lazily, any effects created inside them are\n\t\t// created too late to ensure that the parent effect is added to the tree\n\t\tactive_effect.f |= EFFECT_HAS_DERIVED;\n\t}\n\n\t/** @type {Derived<V>} */\n\tconst signal = {\n\t\tctx: component_context,\n\t\tdeps: null,\n\t\teffects: null,\n\t\tequals,\n\t\tf: flags,\n\t\tfn,\n\t\treactions: null,\n\t\trv: 0,\n\t\tv: /** @type {V} */ (null),\n\t\twv: 0,\n\t\tparent: parent_derived ?? active_effect\n\t};\n\n\tif (DEV && tracing_mode_flag) {\n\t\tsignal.created = get_stack('CreatedAt');\n\t}\n\n\treturn signal;\n}\n\n/**\n * @template V\n * @param {() => V} fn\n * @returns {Derived<V>}\n */\nexport function user_derived(fn) {\n\tconst d = derived(fn);\n\n\tpush_reaction_value(d);\n\n\treturn d;\n}\n\n/**\n * @template V\n * @param {() => V} fn\n * @returns {Derived<V>}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function derived_safe_equal(fn) {\n\tconst signal = derived(fn);\n\tsignal.equals = safe_equals;\n\treturn signal;\n}\n\n/**\n * @param {Derived} derived\n * @returns {void}\n */\nexport function destroy_derived_effects(derived) {\n\tvar effects = derived.effects;\n\n\tif (effects !== null) {\n\t\tderived.effects = null;\n\n\t\tfor (var i = 0; i < effects.length; i += 1) {\n\t\t\tdestroy_effect(/** @type {Effect} */ (effects[i]));\n\t\t}\n\t}\n}\n\n/**\n * The currently updating deriveds, used to detect infinite recursion\n * in dev mode and provide a nicer error than 'too much recursion'\n * @type {Derived[]}\n */\nlet stack = [];\n\n/**\n * @param {Derived} derived\n * @returns {Effect | null}\n */\nfunction get_derived_parent_effect(derived) {\n\tvar parent = derived.parent;\n\twhile (parent !== null) {\n\t\tif ((parent.f & DERIVED) === 0) {\n\t\t\treturn /** @type {Effect} */ (parent);\n\t\t}\n\t\tparent = parent.parent;\n\t}\n\treturn null;\n}\n\n/**\n * @template T\n * @param {Derived} derived\n * @returns {T}\n */\nfunction execute_derived(derived) {\n\tvar value;\n\tvar prev_active_effect = active_effect;\n\n\tset_active_effect(get_derived_parent_effect(derived));\n\n\tif (DEV) {\n\t\tlet prev_inspect_effects = inspect_effects;\n\t\tset_inspect_effects(new Set());\n\t\ttry {\n\t\t\tif (stack.includes(derived)) {\n\t\t\t\te.derived_references_self();\n\t\t\t}\n\n\t\t\tstack.push(derived);\n\n\t\t\tdestroy_derived_effects(derived);\n\t\t\tvalue = update_reaction(derived);\n\t\t} finally {\n\t\t\tset_active_effect(prev_active_effect);\n\t\t\tset_inspect_effects(prev_inspect_effects);\n\t\t\tstack.pop();\n\t\t}\n\t} else {\n\t\ttry {\n\t\t\tdestroy_derived_effects(derived);\n\t\t\tvalue = update_reaction(derived);\n\t\t} finally {\n\t\t\tset_active_effect(prev_active_effect);\n\t\t}\n\t}\n\n\treturn value;\n}\n\n/**\n * @param {Derived} derived\n * @returns {void}\n */\nexport function update_derived(derived) {\n\tvar value = execute_derived(derived);\n\tvar status =\n\t\t(skip_reaction || (derived.f & UNOWNED) !== 0) && derived.deps !== null ? MAYBE_DIRTY : CLEAN;\n\n\tset_signal_status(derived, status);\n\n\tif (!derived.equals(value)) {\n\t\tderived.v = value;\n\t\tderived.wv = increment_write_version();\n\t}\n}\n","/** @import { TemplateNode } from '#client' */\n\nimport {\n\tHYDRATION_END,\n\tHYDRATION_ERROR,\n\tHYDRATION_START,\n\tHYDRATION_START_ELSE\n} from '../../../constants.js';\nimport * as w from '../warnings.js';\nimport { get_next_sibling } from './operations.js';\n\n/**\n * Use this variable to guard everything related to hydration code so it can be treeshaken out\n * if the user doesn't use the `hydrate` method and these code paths are therefore not needed.\n */\nexport let hydrating = false;\n\n/** @param {boolean} value */\nexport function set_hydrating(value) {\n\thydrating = value;\n}\n\n/**\n * The node that is currently being hydrated. This starts out as the first node inside the opening\n * <!--[--> comment, and updates each time a component calls `$.child(...)` or `$.sibling(...)`.\n * When entering a block (e.g. `{#if ...}`), `hydrate_node` is the block opening comment; by the\n * time we leave the block it is the closing comment, which serves as the block's anchor.\n * @type {TemplateNode}\n */\nexport let hydrate_node;\n\n/** @param {TemplateNode} node */\nexport function set_hydrate_node(node) {\n\tif (node === null) {\n\t\tw.hydration_mismatch();\n\t\tthrow HYDRATION_ERROR;\n\t}\n\n\treturn (hydrate_node = node);\n}\n\nexport function hydrate_next() {\n\treturn set_hydrate_node(/** @type {TemplateNode} */ (get_next_sibling(hydrate_node)));\n}\n\n/** @param {TemplateNode} node */\nexport function reset(node) {\n\tif (!hydrating) return;\n\n\t// If the node has remaining siblings, something has gone wrong\n\tif (get_next_sibling(hydrate_node) !== null) {\n\t\tw.hydration_mismatch();\n\t\tthrow HYDRATION_ERROR;\n\t}\n\n\thydrate_node = node;\n}\n\n/**\n * @param {HTMLTemplateElement} template\n */\nexport function hydrate_template(template) {\n\tif (hydrating) {\n\t\t// @ts-expect-error TemplateNode doesn't include DocumentFragment, but it's actually fine\n\t\thydrate_node = template.content;\n\t}\n}\n\nexport function next(count = 1) {\n\tif (hydrating) {\n\t\tvar i = count;\n\t\tvar node = hydrate_node;\n\n\t\twhile (i--) {\n\t\t\tnode = /** @type {TemplateNode} */ (get_next_sibling(node));\n\t\t}\n\n\t\thydrate_node = node;\n\t}\n}\n\n/**\n * Removes all nodes starting at `hydrate_node` up until the next hydration end comment\n */\nexport function remove_nodes() {\n\tvar depth = 0;\n\tvar node = hydrate_node;\n\n\twhile (true) {\n\t\tif (node.nodeType === 8) {\n\t\t\tvar data = /** @type {Comment} */ (node).data;\n\n\t\t\tif (data === HYDRATION_END) {\n\t\t\t\tif (depth === 0) return node;\n\t\t\t\tdepth -= 1;\n\t\t\t} else if (data === HYDRATION_START || data === HYDRATION_START_ELSE) {\n\t\t\t\tdepth += 1;\n\t\t\t}\n\t\t}\n\n\t\tvar next = /** @type {TemplateNode} */ (get_next_sibling(node));\n\t\tnode.remove();\n\t\tnode = next;\n\t}\n}\n","/** @import { TemplateNode } from '#client' */\nimport { hydrate_node, hydrating, set_hydrate_node } from './hydration.js';\nimport { DEV } from 'esm-env';\nimport { init_array_prototype_warnings } from '../dev/equality.js';\nimport { get_descriptor, is_extensible } from '../../shared/utils.js';\n\n// export these for reference in the compiled code, making global name deduplication unnecessary\n/** @type {Window} */\nexport var $window;\n\n/** @type {Document} */\nexport var $document;\n\n/** @type {boolean} */\nexport var is_firefox;\n\n/** @type {() => Node | null} */\nvar first_child_getter;\n/** @type {() => Node | null} */\nvar next_sibling_getter;\n\n/**\n * Initialize these lazily to avoid issues when using the runtime in a server context\n * where these globals are not available while avoiding a separate server entry point\n */\nexport function init_operations() {\n\tif ($window !== undefined) {\n\t\treturn;\n\t}\n\n\t$window = window;\n\t$document = document;\n\tis_firefox = /Firefox/.test(navigator.userAgent);\n\n\tvar element_prototype = Element.prototype;\n\tvar node_prototype = Node.prototype;\n\tvar text_prototype = Text.prototype;\n\n\t// @ts-ignore\n\tfirst_child_getter = get_descriptor(node_prototype, 'firstChild').get;\n\t// @ts-ignore\n\tnext_sibling_getter = get_descriptor(node_prototype, 'nextSibling').get;\n\n\tif (is_extensible(element_prototype)) {\n\t\t// the following assignments improve perf of lookups on DOM nodes\n\t\t// @ts-expect-error\n\t\telement_prototype.__click = undefined;\n\t\t// @ts-expect-error\n\t\telement_prototype.__className = undefined;\n\t\t// @ts-expect-error\n\t\telement_prototype.__attributes = null;\n\t\t// @ts-expect-error\n\t\telement_prototype.__style = undefined;\n\t\t// @ts-expect-error\n\t\telement_prototype.__e = undefined;\n\t}\n\n\tif (is_extensible(text_prototype)) {\n\t\t// @ts-expect-error\n\t\ttext_prototype.__t = undefined;\n\t}\n\n\tif (DEV) {\n\t\t// @ts-expect-error\n\t\telement_prototype.__svelte_meta = null;\n\n\t\tinit_array_prototype_warnings();\n\t}\n}\n\n/**\n * @param {string} value\n * @returns {Text}\n */\nexport function create_text(value = '') {\n\treturn document.createTextNode(value);\n}\n\n/**\n * @template {Node} N\n * @param {N} node\n * @returns {Node | null}\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function get_first_child(node) {\n\treturn first_child_getter.call(node);\n}\n\n/**\n * @template {Node} N\n * @param {N} node\n * @returns {Node | null}\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function get_next_sibling(node) {\n\treturn next_sibling_getter.call(node);\n}\n\n/**\n * Don't mark this as side-effect-free, hydration needs to walk all nodes\n * @template {Node} N\n * @param {N} node\n * @param {boolean} is_text\n * @returns {Node | null}\n */\nexport function child(node, is_text) {\n\tif (!hydrating) {\n\t\treturn get_first_child(node);\n\t}\n\n\tvar child = /** @type {TemplateNode} */ (get_first_child(hydrate_node));\n\n\t// Child can be null if we have an element with a single child, like `<p>{text}</p>`, where `text` is empty\n\tif (child === null) {\n\t\tchild = hydrate_node.appendChild(create_text());\n\t} else if (is_text && child.nodeType !== 3) {\n\t\tvar text = create_text();\n\t\tchild?.before(text);\n\t\tset_hydrate_node(text);\n\t\treturn text;\n\t}\n\n\tset_hydrate_node(child);\n\treturn child;\n}\n\n/**\n * Don't mark this as side-effect-free, hydration needs to walk all nodes\n * @param {DocumentFragment | TemplateNode[]} fragment\n * @param {boolean} is_text\n * @returns {Node | null}\n */\nexport function first_child(fragment, is_text) {\n\tif (!hydrating) {\n\t\t// when not hydrating, `fragment` is a `DocumentFragment` (the result of calling `open_frag`)\n\t\tvar first = /** @type {DocumentFragment} */ (get_first_child(/** @type {Node} */ (fragment)));\n\n\t\t// TODO prevent user comments with the empty string when preserveComments is true\n\t\tif (first instanceof Comment && first.data === '') return get_next_sibling(first);\n\n\t\treturn first;\n\t}\n\n\t// if an {expression} is empty during SSR, there might be no\n\t// text node to hydrate — we must therefore create one\n\tif (is_text && hydrate_node?.nodeType !== 3) {\n\t\tvar text = create_text();\n\n\t\thydrate_node?.before(text);\n\t\tset_hydrate_node(text);\n\t\treturn text;\n\t}\n\n\treturn hydrate_node;\n}\n\n/**\n * Don't mark this as side-effect-free, hydration needs to walk all nodes\n * @param {TemplateNode} node\n * @param {number} count\n * @param {boolean} is_text\n * @returns {Node | null}\n */\nexport function sibling(node, count = 1, is_text = false) {\n\tlet next_sibling = hydrating ? hydrate_node : node;\n\tvar last_sibling;\n\n\twhile (count--) {\n\t\tlast_sibling = next_sibling;\n\t\tnext_sibling = /** @type {TemplateNode} */ (get_next_sibling(next_sibling));\n\t}\n\n\tif (!hydrating) {\n\t\treturn next_sibling;\n\t}\n\n\tvar type = next_sibling?.nodeType;\n\n\t// if a sibling {expression} is empty during SSR, there might be no\n\t// text node to hydrate — we must therefore create one\n\tif (is_text && type !== 3) {\n\t\tvar text = create_text();\n\t\t// If the next sibling is `null` and we're handling text then it's because\n\t\t// the SSR content was empty for the text, so we need to generate a new text\n\t\t// node and insert it after the last sibling\n\t\tif (next_sibling === null) {\n\t\t\tlast_sibling?.after(text);\n\t\t} else {\n\t\t\tnext_sibling.before(text);\n\t\t}\n\t\tset_hydrate_node(text);\n\t\treturn text;\n\t}\n\n\tset_hydrate_node(next_sibling);\n\treturn /** @type {TemplateNode} */ (next_sibling);\n}\n\n/**\n * @template {Node} N\n * @param {N} node\n * @returns {void}\n */\nexport function clear_text_content(node) {\n\tnode.textContent = '';\n}\n","/** @import { ComponentContext, Derived, Effect, Reaction, Signal, Source, Value } from '#client' */\nimport { DEV } from 'esm-env';\nimport { define_property, get_descriptors, get_prototype_of, index_of } from '../shared/utils.js';\nimport {\n\tdestroy_block_effect_children,\n\tdestroy_effect_children,\n\texecute_effect_teardown,\n\tunlink_effect\n} from './reactivity/effects.js';\nimport {\n\tEFFECT,\n\tDIRTY,\n\tMAYBE_DIRTY,\n\tCLEAN,\n\tDERIVED,\n\tUNOWNED,\n\tDESTROYED,\n\tINERT,\n\tBRANCH_EFFECT,\n\tSTATE_SYMBOL,\n\tBLOCK_EFFECT,\n\tROOT_EFFECT,\n\tLEGACY_DERIVED_PROP,\n\tDISCONNECTED,\n\tBOUNDARY_EFFECT,\n\tEFFECT_IS_UPDATING\n} from './constants.js';\nimport { flush_tasks } from './dom/task.js';\nimport { internal_set, old_values } from './reactivity/sources.js';\nimport { destroy_derived_effects, update_derived } from './reactivity/deriveds.js';\nimport * as e from './errors.js';\nimport { FILENAME } from '../../constants.js';\nimport { tracing_mode_flag } from '../flags/index.js';\nimport { tracing_expressions, get_stack } from './dev/tracing.js';\nimport {\n\tcomponent_context,\n\tdev_current_component_function,\n\tis_runes,\n\tset_component_context,\n\tset_dev_current_component_function\n} from './context.js';\nimport { is_firefox } from './dom/operations.js';\n\n// Used for DEV time error handling\n/** @param {WeakSet<Error>} value */\nconst handled_errors = new WeakSet();\nlet is_throwing_error = false;\n\nlet is_flushing = false;\n\n/** @type {Effect | null} */\nlet last_scheduled_effect = null;\n\nlet is_updating_effect = false;\n\nexport let is_destroying_effect = false;\n\n/** @param {boolean} value */\nexport function set_is_destroying_effect(value) {\n\tis_destroying_effect = value;\n}\n\n// Handle effect queues\n\n/** @type {Effect[]} */\nlet queued_root_effects = [];\n\n/** @type {Effect[]} Stack of effects, dev only */\nlet dev_effect_stack = [];\n// Handle signal reactivity tree dependencies and reactions\n\n/** @type {null | Reaction} */\nexport let active_reaction = null;\n\nexport let untracking = false;\n\n/** @param {null | Reaction} reaction */\nexport function set_active_reaction(reaction) {\n\tactive_reaction = reaction;\n}\n\n/** @type {null | Effect} */\nexport let active_effect = null;\n\n/** @param {null | Effect} effect */\nexport function set_active_effect(effect) {\n\tactive_effect = effect;\n}\n\n/**\n * When sources are created within a reaction, reading and writing\n * them should not cause a re-run\n * @type {null | Source[]}\n */\nexport let reaction_sources = null;\n\n/**\n * @param {Source[] | null} sources\n */\nexport function set_reaction_sources(sources) {\n\treaction_sources = sources;\n}\n\n/** @param {Value} value */\nexport function push_reaction_value(value) {\n\tif (active_reaction !== null && active_reaction.f & EFFECT_IS_UPDATING) {\n\t\tif (reaction_sources === null) {\n\t\t\tset_reaction_sources([value]);\n\t\t} else {\n\t\t\treaction_sources.push(value);\n\t\t}\n\t}\n}\n\n/**\n * The dependencies of the reaction that is currently being executed. In many cases,\n * the dependencies are unchanged between runs, and so this will be `null` unless\n * and until a new dependency is accessed — we track this via `skipped_deps`\n * @type {null | Value[]}\n */\nlet new_deps = null;\n\nlet skipped_deps = 0;\n\n/**\n * Tracks writes that the effect it's executed in doesn't listen to yet,\n * so that the dependency can be added to the effect later on if it then reads it\n * @type {null | Source[]}\n */\nexport let untracked_writes = null;\n\n/** @param {null | Source[]} value */\nexport function set_untracked_writes(value) {\n\tuntracked_writes = value;\n}\n\n/**\n * @type {number} Used by sources and deriveds for handling updates.\n * Version starts from 1 so that unowned deriveds differentiate between a created effect and a run one for tracing\n **/\nlet write_version = 1;\n\n/** @type {number} Used to version each read of a source of derived to avoid duplicating depedencies inside a reaction */\nlet read_version = 0;\n\n// If we are working with a get() chain that has no active container,\n// to prevent memory leaks, we skip adding the reaction.\nexport let skip_reaction = false;\n// Handle collecting all signals which are read during a specific time frame\n/** @type {Set<Value> | null} */\nexport let captured_signals = null;\n\n/** @param {Set<Value> | null} value */\nexport function set_captured_signals(value) {\n\tcaptured_signals = value;\n}\n\nexport function increment_write_version() {\n\treturn ++write_version;\n}\n\n/**\n * Determines whether a derived or effect is dirty.\n * If it is MAYBE_DIRTY, will set the status to CLEAN\n * @param {Reaction} reaction\n * @returns {boolean}\n */\nexport function check_dirtiness(reaction) {\n\tvar flags = reaction.f;\n\n\tif ((flags & DIRTY) !== 0) {\n\t\treturn true;\n\t}\n\n\tif ((flags & MAYBE_DIRTY) !== 0) {\n\t\tvar dependencies = reaction.deps;\n\t\tvar is_unowned = (flags & UNOWNED) !== 0;\n\n\t\tif (dependencies !== null) {\n\t\t\tvar i;\n\t\t\tvar dependency;\n\t\t\tvar is_disconnected = (flags & DISCONNECTED) !== 0;\n\t\t\tvar is_unowned_connected = is_unowned && active_effect !== null && !skip_reaction;\n\t\t\tvar length = dependencies.length;\n\n\t\t\t// If we are working with a disconnected or an unowned signal that is now connected (due to an active effect)\n\t\t\t// then we need to re-connect the reaction to the dependency\n\t\t\tif (is_disconnected || is_unowned_connected) {\n\t\t\t\tvar derived = /** @type {Derived} */ (reaction);\n\t\t\t\tvar parent = derived.parent;\n\n\t\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\t\tdependency = dependencies[i];\n\n\t\t\t\t\t// We always re-add all reactions (even duplicates) if the derived was\n\t\t\t\t\t// previously disconnected, however we don't if it was unowned as we\n\t\t\t\t\t// de-duplicate dependencies in that case\n\t\t\t\t\tif (is_disconnected || !dependency?.reactions?.includes(derived)) {\n\t\t\t\t\t\t(dependency.reactions ??= []).push(derived);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (is_disconnected) {\n\t\t\t\t\tderived.f ^= DISCONNECTED;\n\t\t\t\t}\n\t\t\t\t// If the unowned derived is now fully connected to the graph again (it's unowned and reconnected, has a parent\n\t\t\t\t// and the parent is not unowned), then we can mark it as connected again, removing the need for the unowned\n\t\t\t\t// flag\n\t\t\t\tif (is_unowned_connected && parent !== null && (parent.f & UNOWNED) === 0) {\n\t\t\t\t\tderived.f ^= UNOWNED;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\tdependency = dependencies[i];\n\n\t\t\t\tif (check_dirtiness(/** @type {Derived} */ (dependency))) {\n\t\t\t\t\tupdate_derived(/** @type {Derived} */ (dependency));\n\t\t\t\t}\n\n\t\t\t\tif (dependency.wv > reaction.wv) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Unowned signals should never be marked as clean unless they\n\t\t// are used within an active_effect without skip_reaction\n\t\tif (!is_unowned || (active_effect !== null && !skip_reaction)) {\n\t\t\tset_signal_status(reaction, CLEAN);\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * @param {unknown} error\n * @param {Effect} effect\n */\nfunction propagate_error(error, effect) {\n\t/** @type {Effect | null} */\n\tvar current = effect;\n\n\twhile (current !== null) {\n\t\tif ((current.f & BOUNDARY_EFFECT) !== 0) {\n\t\t\ttry {\n\t\t\t\t// @ts-expect-error\n\t\t\t\tcurrent.fn(error);\n\t\t\t\treturn;\n\t\t\t} catch {\n\t\t\t\t// Remove boundary flag from effect\n\t\t\t\tcurrent.f ^= BOUNDARY_EFFECT;\n\t\t\t}\n\t\t}\n\n\t\tcurrent = current.parent;\n\t}\n\n\tis_throwing_error = false;\n\tthrow error;\n}\n\n/**\n * @param {Effect} effect\n */\nfunction should_rethrow_error(effect) {\n\treturn (\n\t\t(effect.f & DESTROYED) === 0 &&\n\t\t(effect.parent === null || (effect.parent.f & BOUNDARY_EFFECT) === 0)\n\t);\n}\n\nexport function reset_is_throwing_error() {\n\tis_throwing_error = false;\n}\n\n/**\n * @param {unknown} error\n * @param {Effect} effect\n * @param {Effect | null} previous_effect\n * @param {ComponentContext | null} component_context\n */\nexport function handle_error(error, effect, previous_effect, component_context) {\n\tif (is_throwing_error) {\n\t\tif (previous_effect === null) {\n\t\t\tis_throwing_error = false;\n\t\t}\n\n\t\tif (should_rethrow_error(effect)) {\n\t\t\tthrow error;\n\t\t}\n\n\t\treturn;\n\t}\n\n\tif (previous_effect !== null) {\n\t\tis_throwing_error = true;\n\t}\n\n\tif (\n\t\t!DEV ||\n\t\tcomponent_context === null ||\n\t\t!(error instanceof Error) ||\n\t\thandled_errors.has(error)\n\t) {\n\t\tpropagate_error(error, effect);\n\t\treturn;\n\t}\n\n\thandled_errors.add(error);\n\n\tconst component_stack = [];\n\n\tconst effect_name = effect.fn?.name;\n\n\tif (effect_name) {\n\t\tcomponent_stack.push(effect_name);\n\t}\n\n\t/** @type {ComponentContext | null} */\n\tlet current_context = component_context;\n\n\twhile (current_context !== null) {\n\t\tif (DEV) {\n\t\t\t/** @type {string} */\n\t\t\tvar filename = current_context.function?.[FILENAME];\n\n\t\t\tif (filename) {\n\t\t\t\tconst file = filename.split('/').pop();\n\t\t\t\tcomponent_stack.push(file);\n\t\t\t}\n\t\t}\n\n\t\tcurrent_context = current_context.p;\n\t}\n\n\tconst indent = is_firefox ? ' ' : '\\t';\n\tdefine_property(error, 'message', {\n\t\tvalue: error.message + `\\n${component_stack.map((name) => `\\n${indent}in ${name}`).join('')}\\n`\n\t});\n\tdefine_property(error, 'component_stack', {\n\t\tvalue: component_stack\n\t});\n\n\tconst stack = error.stack;\n\n\t// Filter out internal files from callstack\n\tif (stack) {\n\t\tconst lines = stack.split('\\n');\n\t\tconst new_lines = [];\n\t\tfor (let i = 0; i < lines.length; i++) {\n\t\t\tconst line = lines[i];\n\t\t\tif (line.includes('svelte/src/internal')) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tnew_lines.push(line);\n\t\t}\n\t\tdefine_property(error, 'stack', {\n\t\t\tvalue: new_lines.join('\\n')\n\t\t});\n\t}\n\n\tpropagate_error(error, effect);\n\n\tif (should_rethrow_error(effect)) {\n\t\tthrow error;\n\t}\n}\n\n/**\n * @param {Value} signal\n * @param {Effect} effect\n * @param {boolean} [root]\n */\nfunction schedule_possible_effect_self_invalidation(signal, effect, root = true) {\n\tvar reactions = signal.reactions;\n\tif (reactions === null) return;\n\n\tfor (var i = 0; i < reactions.length; i++) {\n\t\tvar reaction = reactions[i];\n\n\t\tif (reaction_sources?.includes(signal)) continue;\n\n\t\tif ((reaction.f & DERIVED) !== 0) {\n\t\t\tschedule_possible_effect_self_invalidation(/** @type {Derived} */ (reaction), effect, false);\n\t\t} else if (effect === reaction) {\n\t\t\tif (root) {\n\t\t\t\tset_signal_status(reaction, DIRTY);\n\t\t\t} else if ((reaction.f & CLEAN) !== 0) {\n\t\t\t\tset_signal_status(reaction, MAYBE_DIRTY);\n\t\t\t}\n\t\t\tschedule_effect(/** @type {Effect} */ (reaction));\n\t\t}\n\t}\n}\n\n/**\n * @template V\n * @param {Reaction} reaction\n * @returns {V}\n */\nexport function update_reaction(reaction) {\n\tvar previous_deps = new_deps;\n\tvar previous_skipped_deps = skipped_deps;\n\tvar previous_untracked_writes = untracked_writes;\n\tvar previous_reaction = active_reaction;\n\tvar previous_skip_reaction = skip_reaction;\n\tvar previous_reaction_sources = reaction_sources;\n\tvar previous_component_context = component_context;\n\tvar previous_untracking = untracking;\n\n\tvar flags = reaction.f;\n\n\tnew_deps = /** @type {null | Value[]} */ (null);\n\tskipped_deps = 0;\n\tuntracked_writes = null;\n\tskip_reaction =\n\t\t(flags & UNOWNED) !== 0 && (untracking || !is_updating_effect || active_reaction === null);\n\tactive_reaction = (flags & (BRANCH_EFFECT | ROOT_EFFECT)) === 0 ? reaction : null;\n\n\treaction_sources = null;\n\tset_component_context(reaction.ctx);\n\tuntracking = false;\n\tread_version++;\n\n\treaction.f |= EFFECT_IS_UPDATING;\n\n\ttry {\n\t\tvar result = /** @type {Function} */ (0, reaction.fn)();\n\t\tvar deps = reaction.deps;\n\n\t\tif (new_deps !== null) {\n\t\t\tvar i;\n\n\t\t\tremove_reactions(reaction, skipped_deps);\n\n\t\t\tif (deps !== null && skipped_deps > 0) {\n\t\t\t\tdeps.length = skipped_deps + new_deps.length;\n\t\t\t\tfor (i = 0; i < new_deps.length; i++) {\n\t\t\t\t\tdeps[skipped_deps + i] = new_deps[i];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treaction.deps = deps = new_deps;\n\t\t\t}\n\n\t\t\tif (!skip_reaction) {\n\t\t\t\tfor (i = skipped_deps; i < deps.length; i++) {\n\t\t\t\t\t(deps[i].reactions ??= []).push(reaction);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (deps !== null && skipped_deps < deps.length) {\n\t\t\tremove_reactions(reaction, skipped_deps);\n\t\t\tdeps.length = skipped_deps;\n\t\t}\n\n\t\t// If we're inside an effect and we have untracked writes, then we need to\n\t\t// ensure that if any of those untracked writes result in re-invalidation\n\t\t// of the current effect, then that happens accordingly\n\t\tif (\n\t\t\tis_runes() &&\n\t\t\tuntracked_writes !== null &&\n\t\t\t!untracking &&\n\t\t\tdeps !== null &&\n\t\t\t(reaction.f & (DERIVED | MAYBE_DIRTY | DIRTY)) === 0\n\t\t) {\n\t\t\tfor (i = 0; i < /** @type {Source[]} */ (untracked_writes).length; i++) {\n\t\t\t\tschedule_possible_effect_self_invalidation(\n\t\t\t\t\tuntracked_writes[i],\n\t\t\t\t\t/** @type {Effect} */ (reaction)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// If we are returning to an previous reaction then\n\t\t// we need to increment the read version to ensure that\n\t\t// any dependencies in this reaction aren't marked with\n\t\t// the same version\n\t\tif (previous_reaction !== null) {\n\t\t\tread_version++;\n\n\t\t\tif (untracked_writes !== null) {\n\t\t\t\tif (previous_untracked_writes === null) {\n\t\t\t\t\tprevious_untracked_writes = untracked_writes;\n\t\t\t\t} else {\n\t\t\t\t\tprevious_untracked_writes.push(.../** @type {Source[]} */ (untracked_writes));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t} finally {\n\t\tnew_deps = previous_deps;\n\t\tskipped_deps = previous_skipped_deps;\n\t\tuntracked_writes = previous_untracked_writes;\n\t\tactive_reaction = previous_reaction;\n\t\tskip_reaction = previous_skip_reaction;\n\t\treaction_sources = previous_reaction_sources;\n\t\tset_component_context(previous_component_context);\n\t\tuntracking = previous_untracking;\n\n\t\treaction.f ^= EFFECT_IS_UPDATING;\n\t}\n}\n\n/**\n * @template V\n * @param {Reaction} signal\n * @param {Value<V>} dependency\n * @returns {void}\n */\nfunction remove_reaction(signal, dependency) {\n\tlet reactions = dependency.reactions;\n\tif (reactions !== null) {\n\t\tvar index = index_of.call(reactions, signal);\n\t\tif (index !== -1) {\n\t\t\tvar new_length = reactions.length - 1;\n\t\t\tif (new_length === 0) {\n\t\t\t\treactions = dependency.reactions = null;\n\t\t\t} else {\n\t\t\t\t// Swap with last element and then remove.\n\t\t\t\treactions[index] = reactions[new_length];\n\t\t\t\treactions.pop();\n\t\t\t}\n\t\t}\n\t}\n\t// If the derived has no reactions, then we can disconnect it from the graph,\n\t// allowing it to either reconnect in the future, or be GC'd by the VM.\n\tif (\n\t\treactions === null &&\n\t\t(dependency.f & DERIVED) !== 0 &&\n\t\t// Destroying a child effect while updating a parent effect can cause a dependency to appear\n\t\t// to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`\n\t\t// allows us to skip the expensive work of disconnecting and immediately reconnecting it\n\t\t(new_deps === null || !new_deps.includes(dependency))\n\t) {\n\t\tset_signal_status(dependency, MAYBE_DIRTY);\n\t\t// If we are working with a derived that is owned by an effect, then mark it as being\n\t\t// disconnected.\n\t\tif ((dependency.f & (UNOWNED | DISCONNECTED)) === 0) {\n\t\t\tdependency.f ^= DISCONNECTED;\n\t\t}\n\t\t// Disconnect any reactions owned by this reaction\n\t\tdestroy_derived_effects(/** @type {Derived} **/ (dependency));\n\t\tremove_reactions(/** @type {Derived} **/ (dependency), 0);\n\t}\n}\n\n/**\n * @param {Reaction} signal\n * @param {number} start_index\n * @returns {void}\n */\nexport function remove_reactions(signal, start_index) {\n\tvar dependencies = signal.deps;\n\tif (dependencies === null) return;\n\n\tfor (var i = start_index; i < dependencies.length; i++) {\n\t\tremove_reaction(signal, dependencies[i]);\n\t}\n}\n\n/**\n * @param {Effect} effect\n * @returns {void}\n */\nexport function update_effect(effect) {\n\tvar flags = effect.f;\n\n\tif ((flags & DESTROYED) !== 0) {\n\t\treturn;\n\t}\n\n\tset_signal_status(effect, CLEAN);\n\n\tvar previous_effect = active_effect;\n\tvar previous_component_context = component_context;\n\tvar was_updating_effect = is_updating_effect;\n\n\tactive_effect = effect;\n\tis_updating_effect = true;\n\n\tif (DEV) {\n\t\tvar previous_component_fn = dev_current_component_function;\n\t\tset_dev_current_component_function(effect.component_function);\n\t}\n\n\ttry {\n\t\tif ((flags & BLOCK_EFFECT) !== 0) {\n\t\t\tdestroy_block_effect_children(effect);\n\t\t} else {\n\t\t\tdestroy_effect_children(effect);\n\t\t}\n\n\t\texecute_effect_teardown(effect);\n\t\tvar teardown = update_reaction(effect);\n\t\teffect.teardown = typeof teardown === 'function' ? teardown : null;\n\t\teffect.wv = write_version;\n\n\t\tvar deps = effect.deps;\n\n\t\t// In DEV, we need to handle a case where $inspect.trace() might\n\t\t// incorrectly state a source dependency has not changed when it has.\n\t\t// That's beacuse that source was changed by the same effect, causing\n\t\t// the versions to match. We can avoid this by incrementing the version\n\t\tif (DEV && tracing_mode_flag && (effect.f & DIRTY) !== 0 && deps !== null) {\n\t\t\tfor (let i = 0; i < deps.length; i++) {\n\t\t\t\tvar dep = deps[i];\n\t\t\t\tif (dep.trace_need_increase) {\n\t\t\t\t\tdep.wv = increment_write_version();\n\t\t\t\t\tdep.trace_need_increase = undefined;\n\t\t\t\t\tdep.trace_v = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (DEV) {\n\t\t\tdev_effect_stack.push(effect);\n\t\t}\n\t} catch (error) {\n\t\thandle_error(error, effect, previous_effect, previous_component_context || effect.ctx);\n\t} finally {\n\t\tis_updating_effect = was_updating_effect;\n\t\tactive_effect = previous_effect;\n\n\t\tif (DEV) {\n\t\t\tset_dev_current_component_function(previous_component_fn);\n\t\t}\n\t}\n}\n\nfunction log_effect_stack() {\n\t// eslint-disable-next-line no-console\n\tconsole.error(\n\t\t'Last ten effects were: ',\n\t\tdev_effect_stack.slice(-10).map((d) => d.fn)\n\t);\n\tdev_effect_stack = [];\n}\n\nfunction infinite_loop_guard() {\n\ttry {\n\t\te.effect_update_depth_exceeded();\n\t} catch (error) {\n\t\tif (DEV) {\n\t\t\t// stack is garbage, ignore. Instead add a console.error message.\n\t\t\tdefine_property(error, 'stack', {\n\t\t\t\tvalue: ''\n\t\t\t});\n\t\t}\n\t\t// Try and handle the error so it can be caught at a boundary, that's\n\t\t// if there's an effect available from when it was last scheduled\n\t\tif (last_scheduled_effect !== null) {\n\t\t\tif (DEV) {\n\t\t\t\ttry {\n\t\t\t\t\thandle_error(error, last_scheduled_effect, null, null);\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Only log the effect stack if the error is re-thrown\n\t\t\t\t\tlog_effect_stack();\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thandle_error(error, last_scheduled_effect, null, null);\n\t\t\t}\n\t\t} else {\n\t\t\tif (DEV) {\n\t\t\t\tlog_effect_stack();\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n\nfunction flush_queued_root_effects() {\n\tvar was_updating_effect = is_updating_effect;\n\n\ttry {\n\t\tvar flush_count = 0;\n\t\tis_updating_effect = true;\n\n\t\twhile (queued_root_effects.length > 0) {\n\t\t\tif (flush_count++ > 1000) {\n\t\t\t\tinfinite_loop_guard();\n\t\t\t}\n\n\t\t\tvar root_effects = queued_root_effects;\n\t\t\tvar length = root_effects.length;\n\n\t\t\tqueued_root_effects = [];\n\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tvar collected_effects = process_effects(root_effects[i]);\n\t\t\t\tflush_queued_effects(collected_effects);\n\t\t\t}\n\t\t}\n\t} finally {\n\t\tis_flushing = false;\n\t\tis_updating_effect = was_updating_effect;\n\n\t\tlast_scheduled_effect = null;\n\t\tif (DEV) {\n\t\t\tdev_effect_stack = [];\n\t\t}\n\t\told_values.clear();\n\t}\n}\n\n/**\n * @param {Array<Effect>} effects\n * @returns {void}\n */\nfunction flush_queued_effects(effects) {\n\tvar length = effects.length;\n\tif (length === 0) return;\n\n\tfor (var i = 0; i < length; i++) {\n\t\tvar effect = effects[i];\n\n\t\tif ((effect.f & (DESTROYED | INERT)) === 0) {\n\t\t\ttry {\n\t\t\t\tif (check_dirtiness(effect)) {\n\t\t\t\t\tupdate_effect(effect);\n\n\t\t\t\t\t// Effects with no dependencies or teardown do not get added to the effect tree.\n\t\t\t\t\t// Deferred effects (e.g. `$effect(...)`) _are_ added to the tree because we\n\t\t\t\t\t// don't know if we need to keep them until they are executed. Doing the check\n\t\t\t\t\t// here (rather than in `update_effect`) allows us to skip the work for\n\t\t\t\t\t// immediate effects.\n\t\t\t\t\tif (effect.deps === null && effect.first === null && effect.nodes_start === null) {\n\t\t\t\t\t\tif (effect.teardown === null) {\n\t\t\t\t\t\t\t// remove this effect from the graph\n\t\t\t\t\t\t\tunlink_effect(effect);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// keep the effect in the graph, but free up some memory\n\t\t\t\t\t\t\teffect.fn = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\thandle_error(error, effect, null, effect.ctx);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @param {Effect} signal\n * @returns {void}\n */\nexport function schedule_effect(signal) {\n\tif (!is_flushing) {\n\t\tis_flushing = true;\n\t\tqueueMicrotask(flush_queued_root_effects);\n\t}\n\n\tvar effect = (last_scheduled_effect = signal);\n\n\twhile (effect.parent !== null) {\n\t\teffect = effect.parent;\n\t\tvar flags = effect.f;\n\n\t\tif ((flags & (ROOT_EFFECT | BRANCH_EFFECT)) !== 0) {\n\t\t\tif ((flags & CLEAN) === 0) return;\n\t\t\teffect.f ^= CLEAN;\n\t\t}\n\t}\n\n\tqueued_root_effects.push(effect);\n}\n\n/**\n *\n * This function both runs render effects and collects user effects in topological order\n * from the starting effect passed in. Effects will be collected when they match the filtered\n * bitwise flag passed in only. The collected effects array will be populated with all the user\n * effects to be flushed.\n *\n * @param {Effect} root\n * @returns {Effect[]}\n */\nfunction process_effects(root) {\n\t/** @type {Effect[]} */\n\tvar effects = [];\n\n\t/** @type {Effect | null} */\n\tvar effect = root;\n\n\twhile (effect !== null) {\n\t\tvar flags = effect.f;\n\t\tvar is_branch = (flags & (BRANCH_EFFECT | ROOT_EFFECT)) !== 0;\n\t\tvar is_skippable_branch = is_branch && (flags & CLEAN) !== 0;\n\n\t\tif (!is_skippable_branch && (flags & INERT) === 0) {\n\t\t\tif ((flags & EFFECT) !== 0) {\n\t\t\t\teffects.push(effect);\n\t\t\t} else if (is_branch) {\n\t\t\t\teffect.f ^= CLEAN;\n\t\t\t} else {\n\t\t\t\t// Ensure we set the effect to be the active reaction\n\t\t\t\t// to ensure that unowned deriveds are correctly tracked\n\t\t\t\t// because we're flushing the current effect\n\t\t\t\tvar previous_active_reaction = active_reaction;\n\t\t\t\ttry {\n\t\t\t\t\tactive_reaction = effect;\n\t\t\t\t\tif (check_dirtiness(effect)) {\n\t\t\t\t\t\tupdate_effect(effect);\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\thandle_error(error, effect, null, effect.ctx);\n\t\t\t\t} finally {\n\t\t\t\t\tactive_reaction = previous_active_reaction;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/** @type {Effect | null} */\n\t\t\tvar child = effect.first;\n\n\t\t\tif (child !== null) {\n\t\t\t\teffect = child;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tvar parent = effect.parent;\n\t\teffect = effect.next;\n\n\t\twhile (effect === null && parent !== null) {\n\t\t\teffect = parent.next;\n\t\t\tparent = parent.parent;\n\t\t}\n\t}\n\n\treturn effects;\n}\n\n/**\n * Synchronously flush any pending updates.\n * Returns void if no callback is provided, otherwise returns the result of calling the callback.\n * @template [T=void]\n * @param {(() => T) | undefined} [fn]\n * @returns {T}\n */\nexport function flushSync(fn) {\n\tvar result;\n\n\tif (fn) {\n\t\tis_flushing = true;\n\t\tflush_queued_root_effects();\n\t\tresult = fn();\n\t}\n\n\tflush_tasks();\n\n\twhile (queued_root_effects.length > 0) {\n\t\tis_flushing = true;\n\t\tflush_queued_root_effects();\n\t\tflush_tasks();\n\t}\n\n\treturn /** @type {T} */ (result);\n}\n\n/**\n * Returns a promise that resolves once any pending state changes have been applied.\n * @returns {Promise<void>}\n */\nexport async function tick() {\n\tawait Promise.resolve();\n\t// By calling flushSync we guarantee that any pending state changes are applied after one tick.\n\t// TODO look into whether we can make flushing subsequent updates synchronously in the future.\n\tflushSync();\n}\n\n/**\n * @template V\n * @param {Value<V>} signal\n * @returns {V}\n */\nexport function get(signal) {\n\tvar flags = signal.f;\n\tvar is_derived = (flags & DERIVED) !== 0;\n\n\tif (captured_signals !== null) {\n\t\tcaptured_signals.add(signal);\n\t}\n\n\t// Register the dependency on the current reaction signal.\n\tif (active_reaction !== null && !untracking) {\n\t\tif (!reaction_sources?.includes(signal)) {\n\t\t\tvar deps = active_reaction.deps;\n\t\t\tif (signal.rv < read_version) {\n\t\t\t\tsignal.rv = read_version;\n\t\t\t\t// If the signal is accessing the same dependencies in the same\n\t\t\t\t// order as it did last time, increment `skipped_deps`\n\t\t\t\t// rather than updating `new_deps`, which creates GC cost\n\t\t\t\tif (new_deps === null && deps !== null && deps[skipped_deps] === signal) {\n\t\t\t\t\tskipped_deps++;\n\t\t\t\t} else if (new_deps === null) {\n\t\t\t\t\tnew_deps = [signal];\n\t\t\t\t} else if (!skip_reaction || !new_deps.includes(signal)) {\n\t\t\t\t\t// Normally we can push duplicated dependencies to `new_deps`, but if we're inside\n\t\t\t\t\t// an unowned derived because skip_reaction is true, then we need to ensure that\n\t\t\t\t\t// we don't have duplicates\n\t\t\t\t\tnew_deps.push(signal);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else if (\n\t\tis_derived &&\n\t\t/** @type {Derived} */ (signal).deps === null &&\n\t\t/** @type {Derived} */ (signal).effects === null\n\t) {\n\t\tvar derived = /** @type {Derived} */ (signal);\n\t\tvar parent = derived.parent;\n\n\t\tif (parent !== null && (parent.f & UNOWNED) === 0) {\n\t\t\t// If the derived is owned by another derived then mark it as unowned\n\t\t\t// as the derived value might have been referenced in a different context\n\t\t\t// since and thus its parent might not be its true owner anymore\n\t\t\tderived.f ^= UNOWNED;\n\t\t}\n\t}\n\n\tif (is_derived) {\n\t\tderived = /** @type {Derived} */ (signal);\n\n\t\tif (check_dirtiness(derived)) {\n\t\t\tupdate_derived(derived);\n\t\t}\n\t}\n\n\tif (\n\t\tDEV &&\n\t\ttracing_mode_flag &&\n\t\ttracing_expressions !== null &&\n\t\tactive_reaction !== null &&\n\t\ttracing_expressions.reaction === active_reaction\n\t) {\n\t\t// Used when mapping state between special blocks like `each`\n\t\tif (signal.debug) {\n\t\t\tsignal.debug();\n\t\t} else if (signal.created) {\n\t\t\tvar entry = tracing_expressions.entries.get(signal);\n\n\t\t\tif (entry === undefined) {\n\t\t\t\tentry = { read: [] };\n\t\t\t\ttracing_expressions.entries.set(signal, entry);\n\t\t\t}\n\n\t\t\tentry.read.push(get_stack('TracedAt'));\n\t\t}\n\t}\n\n\tif (is_destroying_effect && old_values.has(signal)) {\n\t\treturn old_values.get(signal);\n\t}\n\n\treturn signal.v;\n}\n\n/**\n * Like `get`, but checks for `undefined`. Used for `var` declarations because they can be accessed before being declared\n * @template V\n * @param {Value<V> | undefined} signal\n * @returns {V | undefined}\n */\nexport function safe_get(signal) {\n\treturn signal && get(signal);\n}\n\n/**\n * Capture an array of all the signals that are read when `fn` is called\n * @template T\n * @param {() => T} fn\n */\nfunction capture_signals(fn) {\n\tvar previous_captured_signals = captured_signals;\n\tcaptured_signals = new Set();\n\n\tvar captured = captured_signals;\n\tvar signal;\n\n\ttry {\n\t\tuntrack(fn);\n\t\tif (previous_captured_signals !== null) {\n\t\t\tfor (signal of captured_signals) {\n\t\t\t\tprevious_captured_signals.add(signal);\n\t\t\t}\n\t\t}\n\t} finally {\n\t\tcaptured_signals = previous_captured_signals;\n\t}\n\n\treturn captured;\n}\n\n/**\n * Invokes a function and captures all signals that are read during the invocation,\n * then invalidates them.\n * @param {() => any} fn\n */\nexport function invalidate_inner_signals(fn) {\n\tvar captured = capture_signals(() => untrack(fn));\n\n\tfor (var signal of captured) {\n\t\t// Go one level up because derived signals created as part of props in legacy mode\n\t\tif ((signal.f & LEGACY_DERIVED_PROP) !== 0) {\n\t\t\tfor (const dep of /** @type {Derived} */ (signal).deps || []) {\n\t\t\t\tif ((dep.f & DERIVED) === 0) {\n\t\t\t\t\t// Use internal_set instead of set here and below to avoid mutation validation\n\t\t\t\t\tinternal_set(dep, dep.v);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tinternal_set(signal, signal.v);\n\t\t}\n\t}\n}\n\n/**\n * When used inside a [`$derived`](https://svelte.dev/docs/svelte/$derived) or [`$effect`](https://svelte.dev/docs/svelte/$effect),\n * any state read inside `fn` will not be treated as a dependency.\n *\n * ```ts\n * $effect(() => {\n * // this will run when `data` changes, but not when `time` changes\n * save(data, {\n * timestamp: untrack(() => time)\n * });\n * });\n * ```\n * @template T\n * @param {() => T} fn\n * @returns {T}\n */\nexport function untrack(fn) {\n\tvar previous_untracking = untracking;\n\ttry {\n\t\tuntracking = true;\n\t\treturn fn();\n\t} finally {\n\t\tuntracking = previous_untracking;\n\t}\n}\n\nconst STATUS_MASK = ~(DIRTY | MAYBE_DIRTY | CLEAN);\n\n/**\n * @param {Signal} signal\n * @param {number} status\n * @returns {void}\n */\nexport function set_signal_status(signal, status) {\n\tsignal.f = (signal.f & STATUS_MASK) | status;\n}\n\n/**\n * @param {Record<string, unknown>} obj\n * @param {string[]} keys\n * @returns {Record<string, unknown>}\n */\nexport function exclude_from_object(obj, keys) {\n\t/** @type {Record<string, unknown>} */\n\tvar result = {};\n\n\tfor (var key in obj) {\n\t\tif (!keys.includes(key)) {\n\t\t\tresult[key] = obj[key];\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * Possibly traverse an object and read all its properties so that they're all reactive in case this is `$state`.\n * Does only check first level of an object for performance reasons (heuristic should be good for 99% of all cases).\n * @param {any} value\n * @returns {void}\n */\nexport function deep_read_state(value) {\n\tif (typeof value !== 'object' || !value || value instanceof EventTarget) {\n\t\treturn;\n\t}\n\n\tif (STATE_SYMBOL in value) {\n\t\tdeep_read(value);\n\t} else if (!Array.isArray(value)) {\n\t\tfor (let key in value) {\n\t\t\tconst prop = value[key];\n\t\t\tif (typeof prop === 'object' && prop && STATE_SYMBOL in prop) {\n\t\t\t\tdeep_read(prop);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Deeply traverse an object and read all its properties\n * so that they're all reactive in case this is `$state`\n * @param {any} value\n * @param {Set<any>} visited\n * @returns {void}\n */\nexport function deep_read(value, visited = new Set()) {\n\tif (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\t// We don't want to traverse DOM elements\n\t\t!(value instanceof EventTarget) &&\n\t\t!visited.has(value)\n\t) {\n\t\tvisited.add(value);\n\t\t// When working with a possible SvelteDate, this\n\t\t// will ensure we capture changes to it.\n\t\tif (value instanceof Date) {\n\t\t\tvalue.getTime();\n\t\t}\n\t\tfor (let key in value) {\n\t\t\ttry {\n\t\t\t\tdeep_read(value[key], visited);\n\t\t\t} catch (e) {\n\t\t\t\t// continue\n\t\t\t}\n\t\t}\n\t\tconst proto = get_prototype_of(value);\n\t\tif (\n\t\t\tproto !== Object.prototype &&\n\t\t\tproto !== Array.prototype &&\n\t\t\tproto !== Map.prototype &&\n\t\t\tproto !== Set.prototype &&\n\t\t\tproto !== Date.prototype\n\t\t) {\n\t\t\tconst descriptors = get_descriptors(proto);\n\t\t\tfor (let key in descriptors) {\n\t\t\t\tconst get = descriptors[key].get;\n\t\t\t\tif (get) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tget.call(value);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t// continue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","/** @import { ComponentContext, ComponentContextLegacy, Derived, Effect, TemplateNode, TransitionManager } from '#client' */\nimport {\n\tcheck_dirtiness,\n\tactive_effect,\n\tactive_reaction,\n\tupdate_effect,\n\tget,\n\tis_destroying_effect,\n\tremove_reactions,\n\tschedule_effect,\n\tset_active_reaction,\n\tset_is_destroying_effect,\n\tset_signal_status,\n\tuntrack,\n\tuntracking\n} from '../runtime.js';\nimport {\n\tDIRTY,\n\tBRANCH_EFFECT,\n\tRENDER_EFFECT,\n\tEFFECT,\n\tDESTROYED,\n\tINERT,\n\tEFFECT_RAN,\n\tBLOCK_EFFECT,\n\tROOT_EFFECT,\n\tEFFECT_TRANSPARENT,\n\tDERIVED,\n\tUNOWNED,\n\tCLEAN,\n\tINSPECT_EFFECT,\n\tHEAD_EFFECT,\n\tMAYBE_DIRTY,\n\tEFFECT_HAS_DERIVED,\n\tBOUNDARY_EFFECT\n} from '../constants.js';\nimport { set } from './sources.js';\nimport * as e from '../errors.js';\nimport { DEV } from 'esm-env';\nimport { define_property } from '../../shared/utils.js';\nimport { get_next_sibling } from '../dom/operations.js';\nimport { derived } from './deriveds.js';\nimport { component_context, dev_current_component_function } from '../context.js';\n\n/**\n * @param {'$effect' | '$effect.pre' | '$inspect'} rune\n */\nexport function validate_effect(rune) {\n\tif (active_effect === null && active_reaction === null) {\n\t\te.effect_orphan(rune);\n\t}\n\n\tif (active_reaction !== null && (active_reaction.f & UNOWNED) !== 0 && active_effect === null) {\n\t\te.effect_in_unowned_derived();\n\t}\n\n\tif (is_destroying_effect) {\n\t\te.effect_in_teardown(rune);\n\t}\n}\n\n/**\n * @param {Effect} effect\n * @param {Effect} parent_effect\n */\nfunction push_effect(effect, parent_effect) {\n\tvar parent_last = parent_effect.last;\n\tif (parent_last === null) {\n\t\tparent_effect.last = parent_effect.first = effect;\n\t} else {\n\t\tparent_last.next = effect;\n\t\teffect.prev = parent_last;\n\t\tparent_effect.last = effect;\n\t}\n}\n\n/**\n * @param {number} type\n * @param {null | (() => void | (() => void))} fn\n * @param {boolean} sync\n * @param {boolean} push\n * @returns {Effect}\n */\nfunction create_effect(type, fn, sync, push = true) {\n\tvar parent = active_effect;\n\n\tif (DEV) {\n\t\t// Ensure the parent is never an inspect effect\n\t\twhile (parent !== null && (parent.f & INSPECT_EFFECT) !== 0) {\n\t\t\tparent = parent.parent;\n\t\t}\n\t}\n\n\t/** @type {Effect} */\n\tvar effect = {\n\t\tctx: component_context,\n\t\tdeps: null,\n\t\tnodes_start: null,\n\t\tnodes_end: null,\n\t\tf: type | DIRTY,\n\t\tfirst: null,\n\t\tfn,\n\t\tlast: null,\n\t\tnext: null,\n\t\tparent,\n\t\tprev: null,\n\t\tteardown: null,\n\t\ttransitions: null,\n\t\twv: 0\n\t};\n\n\tif (DEV) {\n\t\teffect.component_function = dev_current_component_function;\n\t}\n\n\tif (sync) {\n\t\ttry {\n\t\t\tupdate_effect(effect);\n\t\t\teffect.f |= EFFECT_RAN;\n\t\t} catch (e) {\n\t\t\tdestroy_effect(effect);\n\t\t\tthrow e;\n\t\t}\n\t} else if (fn !== null) {\n\t\tschedule_effect(effect);\n\t}\n\n\t// if an effect has no dependencies, no DOM and no teardown function,\n\t// don't bother adding it to the effect tree\n\tvar inert =\n\t\tsync &&\n\t\teffect.deps === null &&\n\t\teffect.first === null &&\n\t\teffect.nodes_start === null &&\n\t\teffect.teardown === null &&\n\t\t(effect.f & (EFFECT_HAS_DERIVED | BOUNDARY_EFFECT)) === 0;\n\n\tif (!inert && push) {\n\t\tif (parent !== null) {\n\t\t\tpush_effect(effect, parent);\n\t\t}\n\n\t\t// if we're in a derived, add the effect there too\n\t\tif (active_reaction !== null && (active_reaction.f & DERIVED) !== 0) {\n\t\t\tvar derived = /** @type {Derived} */ (active_reaction);\n\t\t\t(derived.effects ??= []).push(effect);\n\t\t}\n\t}\n\n\treturn effect;\n}\n\n/**\n * Internal representation of `$effect.tracking()`\n * @returns {boolean}\n */\nexport function effect_tracking() {\n\treturn active_reaction !== null && !untracking;\n}\n\n/**\n * @param {() => void} fn\n */\nexport function teardown(fn) {\n\tconst effect = create_effect(RENDER_EFFECT, null, false);\n\tset_signal_status(effect, CLEAN);\n\teffect.teardown = fn;\n\treturn effect;\n}\n\n/**\n * Internal representation of `$effect(...)`\n * @param {() => void | (() => void)} fn\n */\nexport function user_effect(fn) {\n\tvalidate_effect('$effect');\n\n\t// Non-nested `$effect(...)` in a component should be deferred\n\t// until the component is mounted\n\tvar defer =\n\t\tactive_effect !== null &&\n\t\t(active_effect.f & BRANCH_EFFECT) !== 0 &&\n\t\tcomponent_context !== null &&\n\t\t!component_context.m;\n\n\tif (DEV) {\n\t\tdefine_property(fn, 'name', {\n\t\t\tvalue: '$effect'\n\t\t});\n\t}\n\n\tif (defer) {\n\t\tvar context = /** @type {ComponentContext} */ (component_context);\n\t\t(context.e ??= []).push({\n\t\t\tfn,\n\t\t\teffect: active_effect,\n\t\t\treaction: active_reaction\n\t\t});\n\t} else {\n\t\tvar signal = effect(fn);\n\t\treturn signal;\n\t}\n}\n\n/**\n * Internal representation of `$effect.pre(...)`\n * @param {() => void | (() => void)} fn\n * @returns {Effect}\n */\nexport function user_pre_effect(fn) {\n\tvalidate_effect('$effect.pre');\n\tif (DEV) {\n\t\tdefine_property(fn, 'name', {\n\t\t\tvalue: '$effect.pre'\n\t\t});\n\t}\n\treturn render_effect(fn);\n}\n\n/** @param {() => void | (() => void)} fn */\nexport function inspect_effect(fn) {\n\treturn create_effect(INSPECT_EFFECT, fn, true);\n}\n\n/**\n * Internal representation of `$effect.root(...)`\n * @param {() => void | (() => void)} fn\n * @returns {() => void}\n */\nexport function effect_root(fn) {\n\tconst effect = create_effect(ROOT_EFFECT, fn, true);\n\n\treturn () => {\n\t\tdestroy_effect(effect);\n\t};\n}\n\n/**\n * An effect root whose children can transition out\n * @param {() => void} fn\n * @returns {(options?: { outro?: boolean }) => Promise<void>}\n */\nexport function component_root(fn) {\n\tconst effect = create_effect(ROOT_EFFECT, fn, true);\n\n\treturn (options = {}) => {\n\t\treturn new Promise((fulfil) => {\n\t\t\tif (options.outro) {\n\t\t\t\tpause_effect(effect, () => {\n\t\t\t\t\tdestroy_effect(effect);\n\t\t\t\t\tfulfil(undefined);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tdestroy_effect(effect);\n\t\t\t\tfulfil(undefined);\n\t\t\t}\n\t\t});\n\t};\n}\n\n/**\n * @param {() => void | (() => void)} fn\n * @returns {Effect}\n */\nexport function effect(fn) {\n\treturn create_effect(EFFECT, fn, false);\n}\n\n/**\n * Internal representation of `$: ..`\n * @param {() => any} deps\n * @param {() => void | (() => void)} fn\n */\nexport function legacy_pre_effect(deps, fn) {\n\tvar context = /** @type {ComponentContextLegacy} */ (component_context);\n\n\t/** @type {{ effect: null | Effect, ran: boolean }} */\n\tvar token = { effect: null, ran: false };\n\tcontext.l.r1.push(token);\n\n\ttoken.effect = render_effect(() => {\n\t\tdeps();\n\n\t\t// If this legacy pre effect has already run before the end of the reset, then\n\t\t// bail out to emulate the same behavior.\n\t\tif (token.ran) return;\n\n\t\ttoken.ran = true;\n\t\tset(context.l.r2, true);\n\t\tuntrack(fn);\n\t});\n}\n\nexport function legacy_pre_effect_reset() {\n\tvar context = /** @type {ComponentContextLegacy} */ (component_context);\n\n\trender_effect(() => {\n\t\tif (!get(context.l.r2)) return;\n\n\t\t// Run dirty `$:` statements\n\t\tfor (var token of context.l.r1) {\n\t\t\tvar effect = token.effect;\n\n\t\t\t// If the effect is CLEAN, then make it MAYBE_DIRTY. This ensures we traverse through\n\t\t\t// the effects dependencies and correctly ensure each dependency is up-to-date.\n\t\t\tif ((effect.f & CLEAN) !== 0) {\n\t\t\t\tset_signal_status(effect, MAYBE_DIRTY);\n\t\t\t}\n\n\t\t\tif (check_dirtiness(effect)) {\n\t\t\t\tupdate_effect(effect);\n\t\t\t}\n\n\t\t\ttoken.ran = false;\n\t\t}\n\n\t\tcontext.l.r2.v = false; // set directly to avoid rerunning this effect\n\t});\n}\n\n/**\n * @param {() => void | (() => void)} fn\n * @returns {Effect}\n */\nexport function render_effect(fn) {\n\treturn create_effect(RENDER_EFFECT, fn, true);\n}\n\n/**\n * @param {(...expressions: any) => void | (() => void)} fn\n * @param {Array<() => any>} thunks\n * @returns {Effect}\n */\nexport function template_effect(fn, thunks = [], d = derived) {\n\tconst deriveds = thunks.map(d);\n\tconst effect = () => fn(...deriveds.map(get));\n\n\tif (DEV) {\n\t\tdefine_property(effect, 'name', {\n\t\t\tvalue: '{expression}'\n\t\t});\n\t}\n\n\treturn block(effect);\n}\n\n/**\n * @param {(() => void)} fn\n * @param {number} flags\n */\nexport function block(fn, flags = 0) {\n\treturn create_effect(RENDER_EFFECT | BLOCK_EFFECT | flags, fn, true);\n}\n\n/**\n * @param {(() => void)} fn\n * @param {boolean} [push]\n */\nexport function branch(fn, push = true) {\n\treturn create_effect(RENDER_EFFECT | BRANCH_EFFECT, fn, true, push);\n}\n\n/**\n * @param {Effect} effect\n */\nexport function execute_effect_teardown(effect) {\n\tvar teardown = effect.teardown;\n\tif (teardown !== null) {\n\t\tconst previously_destroying_effect = is_destroying_effect;\n\t\tconst previous_reaction = active_reaction;\n\t\tset_is_destroying_effect(true);\n\t\tset_active_reaction(null);\n\t\ttry {\n\t\t\tteardown.call(null);\n\t\t} finally {\n\t\t\tset_is_destroying_effect(previously_destroying_effect);\n\t\t\tset_active_reaction(previous_reaction);\n\t\t}\n\t}\n}\n\n/**\n * @param {Effect} signal\n * @param {boolean} remove_dom\n * @returns {void}\n */\nexport function destroy_effect_children(signal, remove_dom = false) {\n\tvar effect = signal.first;\n\tsignal.first = signal.last = null;\n\n\twhile (effect !== null) {\n\t\tvar next = effect.next;\n\n\t\tif ((effect.f & ROOT_EFFECT) !== 0) {\n\t\t\t// this is now an independent root\n\t\t\teffect.parent = null;\n\t\t} else {\n\t\t\tdestroy_effect(effect, remove_dom);\n\t\t}\n\n\t\teffect = next;\n\t}\n}\n\n/**\n * @param {Effect} signal\n * @returns {void}\n */\nexport function destroy_block_effect_children(signal) {\n\tvar effect = signal.first;\n\n\twhile (effect !== null) {\n\t\tvar next = effect.next;\n\t\tif ((effect.f & BRANCH_EFFECT) === 0) {\n\t\t\tdestroy_effect(effect);\n\t\t}\n\t\teffect = next;\n\t}\n}\n\n/**\n * @param {Effect} effect\n * @param {boolean} [remove_dom]\n * @returns {void}\n */\nexport function destroy_effect(effect, remove_dom = true) {\n\tvar removed = false;\n\n\tif ((remove_dom || (effect.f & HEAD_EFFECT) !== 0) && effect.nodes_start !== null) {\n\t\t/** @type {TemplateNode | null} */\n\t\tvar node = effect.nodes_start;\n\t\tvar end = effect.nodes_end;\n\n\t\twhile (node !== null) {\n\t\t\t/** @type {TemplateNode | null} */\n\t\t\tvar next = node === end ? null : /** @type {TemplateNode} */ (get_next_sibling(node));\n\n\t\t\tnode.remove();\n\t\t\tnode = next;\n\t\t}\n\n\t\tremoved = true;\n\t}\n\n\tdestroy_effect_children(effect, remove_dom && !removed);\n\tremove_reactions(effect, 0);\n\tset_signal_status(effect, DESTROYED);\n\n\tvar transitions = effect.transitions;\n\n\tif (transitions !== null) {\n\t\tfor (const transition of transitions) {\n\t\t\ttransition.stop();\n\t\t}\n\t}\n\n\texecute_effect_teardown(effect);\n\n\tvar parent = effect.parent;\n\n\t// If the parent doesn't have any children, then skip this work altogether\n\tif (parent !== null && parent.first !== null) {\n\t\tunlink_effect(effect);\n\t}\n\n\tif (DEV) {\n\t\teffect.component_function = null;\n\t}\n\n\t// `first` and `child` are nulled out in destroy_effect_children\n\t// we don't null out `parent` so that error propagation can work correctly\n\teffect.next =\n\t\teffect.prev =\n\t\teffect.teardown =\n\t\teffect.ctx =\n\t\teffect.deps =\n\t\teffect.fn =\n\t\teffect.nodes_start =\n\t\teffect.nodes_end =\n\t\t\tnull;\n}\n\n/**\n * Detach an effect from the effect tree, freeing up memory and\n * reducing the amount of work that happens on subsequent traversals\n * @param {Effect} effect\n */\nexport function unlink_effect(effect) {\n\tvar parent = effect.parent;\n\tvar prev = effect.prev;\n\tvar next = effect.next;\n\n\tif (prev !== null) prev.next = next;\n\tif (next !== null) next.prev = prev;\n\n\tif (parent !== null) {\n\t\tif (parent.first === effect) parent.first = next;\n\t\tif (parent.last === effect) parent.last = prev;\n\t}\n}\n\n/**\n * When a block effect is removed, we don't immediately destroy it or yank it\n * out of the DOM, because it might have transitions. Instead, we 'pause' it.\n * It stays around (in memory, and in the DOM) until outro transitions have\n * completed, and if the state change is reversed then we _resume_ it.\n * A paused effect does not update, and the DOM subtree becomes inert.\n * @param {Effect} effect\n * @param {() => void} [callback]\n */\nexport function pause_effect(effect, callback) {\n\t/** @type {TransitionManager[]} */\n\tvar transitions = [];\n\n\tpause_children(effect, transitions, true);\n\n\trun_out_transitions(transitions, () => {\n\t\tdestroy_effect(effect);\n\t\tif (callback) callback();\n\t});\n}\n\n/**\n * @param {TransitionManager[]} transitions\n * @param {() => void} fn\n */\nexport function run_out_transitions(transitions, fn) {\n\tvar remaining = transitions.length;\n\tif (remaining > 0) {\n\t\tvar check = () => --remaining || fn();\n\t\tfor (var transition of transitions) {\n\t\t\ttransition.out(check);\n\t\t}\n\t} else {\n\t\tfn();\n\t}\n}\n\n/**\n * @param {Effect} effect\n * @param {TransitionManager[]} transitions\n * @param {boolean} local\n */\nexport function pause_children(effect, transitions, local) {\n\tif ((effect.f & INERT) !== 0) return;\n\teffect.f ^= INERT;\n\n\tif (effect.transitions !== null) {\n\t\tfor (const transition of effect.transitions) {\n\t\t\tif (transition.is_global || local) {\n\t\t\t\ttransitions.push(transition);\n\t\t\t}\n\t\t}\n\t}\n\n\tvar child = effect.first;\n\n\twhile (child !== null) {\n\t\tvar sibling = child.next;\n\t\tvar transparent = (child.f & EFFECT_TRANSPARENT) !== 0 || (child.f & BRANCH_EFFECT) !== 0;\n\t\t// TODO we don't need to call pause_children recursively with a linked list in place\n\t\t// it's slightly more involved though as we have to account for `transparent` changing\n\t\t// through the tree.\n\t\tpause_children(child, transitions, transparent ? local : false);\n\t\tchild = sibling;\n\t}\n}\n\n/**\n * The opposite of `pause_effect`. We call this if (for example)\n * `x` becomes falsy then truthy: `{#if x}...{/if}`\n * @param {Effect} effect\n */\nexport function resume_effect(effect) {\n\tresume_children(effect, true);\n}\n\n/**\n * @param {Effect} effect\n * @param {boolean} local\n */\nfunction resume_children(effect, local) {\n\tif ((effect.f & INERT) === 0) return;\n\teffect.f ^= INERT;\n\n\t// Ensure the effect is marked as clean again so that any dirty child\n\t// effects can schedule themselves for execution\n\tif ((effect.f & CLEAN) === 0) {\n\t\teffect.f ^= CLEAN;\n\t}\n\n\t// If a dependency of this effect changed while it was paused,\n\t// schedule the effect to update\n\tif (check_dirtiness(effect)) {\n\t\tset_signal_status(effect, DIRTY);\n\t\tschedule_effect(effect);\n\t}\n\n\tvar child = effect.first;\n\n\twhile (child !== null) {\n\t\tvar sibling = child.next;\n\t\tvar transparent = (child.f & EFFECT_TRANSPARENT) !== 0 || (child.f & BRANCH_EFFECT) !== 0;\n\t\t// TODO we don't need to call resume_children recursively with a linked list in place\n\t\t// it's slightly more involved though as we have to account for `transparent` changing\n\t\t// through the tree.\n\t\tresume_children(child, transparent ? local : false);\n\t\tchild = sibling;\n\t}\n\n\tif (effect.transitions !== null) {\n\t\tfor (const transition of effect.transitions) {\n\t\t\tif (transition.is_global || local) {\n\t\t\t\ttransition.in();\n\t\t\t}\n\t\t}\n\t}\n}\n","/* This file is generated by scripts/process-messages/index.js. Do not edit! */\n\nimport { DEV } from 'esm-env';\n\n/**\n * Cannot use `{@render children(...)}` if the parent component uses `let:` directives. Consider using a named snippet instead\n * @returns {never}\n */\nexport function invalid_default_snippet() {\n\tif (DEV) {\n\t\tconst error = new Error(`invalid_default_snippet\\nCannot use \\`{@render children(...)}\\` if the parent component uses \\`let:\\` directives. Consider using a named snippet instead\\nhttps://svelte.dev/e/invalid_default_snippet`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/invalid_default_snippet`);\n\t}\n}\n\n/**\n * `%name%(...)` can only be used during component initialisation\n * @param {string} name\n * @returns {never}\n */\nexport function lifecycle_outside_component(name) {\n\tif (DEV) {\n\t\tconst error = new Error(`lifecycle_outside_component\\n\\`${name}(...)\\` can only be used during component initialisation\\nhttps://svelte.dev/e/lifecycle_outside_component`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/lifecycle_outside_component`);\n\t}\n}\n\n/**\n * `%name%` is not a store with a `subscribe` method\n * @param {string} name\n * @returns {never}\n */\nexport function store_invalid_shape(name) {\n\tif (DEV) {\n\t\tconst error = new Error(`store_invalid_shape\\n\\`${name}\\` is not a store with a \\`subscribe\\` method\\nhttps://svelte.dev/e/store_invalid_shape`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/store_invalid_shape`);\n\t}\n}\n\n/**\n * The `this` prop on `<svelte:element>` must be a string, if defined\n * @returns {never}\n */\nexport function svelte_element_invalid_this_value() {\n\tif (DEV) {\n\t\tconst error = new Error(`svelte_element_invalid_this_value\\nThe \\`this\\` prop on \\`<svelte:element>\\` must be a string, if defined\\nhttps://svelte.dev/e/svelte_element_invalid_this_value`);\n\n\t\terror.name = 'Svelte error';\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/svelte_element_invalid_this_value`);\n\t}\n}","/** @import { ComponentContext } from '#client' */\n\nimport { DEV } from 'esm-env';\nimport { add_owner } from './dev/ownership.js';\nimport { lifecycle_outside_component } from '../shared/errors.js';\nimport { source } from './reactivity/sources.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tset_active_effect,\n\tset_active_reaction,\n\tuntrack\n} from './runtime.js';\nimport { effect, teardown } from './reactivity/effects.js';\nimport { legacy_mode_flag } from '../flags/index.js';\n\n/** @type {ComponentContext | null} */\nexport let component_context = null;\n\n/** @param {ComponentContext | null} context */\nexport function set_component_context(context) {\n\tcomponent_context = context;\n}\n\n/**\n * The current component function. Different from current component context:\n * ```html\n * <!-- App.svelte -->\n * <Foo>\n * <Bar /> <!-- context == Foo.svelte, function == App.svelte -->\n * </Foo>\n * ```\n * @type {ComponentContext['function']}\n */\nexport let dev_current_component_function = null;\n\n/** @param {ComponentContext['function']} fn */\nexport function set_dev_current_component_function(fn) {\n\tdev_current_component_function = fn;\n}\n\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * @template T\n * @param {any} key\n * @returns {T}\n */\nexport function getContext(key) {\n\tconst context_map = get_or_init_context_map('getContext');\n\tconst result = /** @type {T} */ (context_map.get(key));\n\treturn result;\n}\n\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * @template T\n * @param {any} key\n * @param {T} context\n * @returns {T}\n */\nexport function setContext(key, context) {\n\tconst context_map = get_or_init_context_map('setContext');\n\n\tif (DEV) {\n\t\t// When state is put into context, we treat as if it's global from now on.\n\t\t// We do for performance reasons (it's for example very expensive to call\n\t\t// getContext on a big object many times when part of a list component)\n\t\t// and danger of false positives.\n\t\tuntrack(() => add_owner(context, null, true));\n\t}\n\n\tcontext_map.set(key, context);\n\treturn context;\n}\n\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * @param {any} key\n * @returns {boolean}\n */\nexport function hasContext(key) {\n\tconst context_map = get_or_init_context_map('hasContext');\n\treturn context_map.has(key);\n}\n\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * @template {Map<any, any>} [T=Map<any, any>]\n * @returns {T}\n */\nexport function getAllContexts() {\n\tconst context_map = get_or_init_context_map('getAllContexts');\n\treturn /** @type {T} */ (context_map);\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {any} runes\n * @param {Function} [fn]\n * @returns {void}\n */\nexport function push(props, runes = false, fn) {\n\tvar ctx = (component_context = {\n\t\tp: component_context,\n\t\tc: null,\n\t\td: false,\n\t\te: null,\n\t\tm: false,\n\t\ts: props,\n\t\tx: null,\n\t\tl: null\n\t});\n\n\tif (legacy_mode_flag && !runes) {\n\t\tcomponent_context.l = {\n\t\t\ts: null,\n\t\t\tu: null,\n\t\t\tr1: [],\n\t\t\tr2: source(false)\n\t\t};\n\t}\n\n\tteardown(() => {\n\t\t/** @type {ComponentContext} */ (ctx).d = true;\n\t});\n\n\tif (DEV) {\n\t\t// component function\n\t\tcomponent_context.function = fn;\n\t\tdev_current_component_function = fn;\n\t}\n}\n\n/**\n * @template {Record<string, any>} T\n * @param {T} [component]\n * @returns {T}\n */\nexport function pop(component) {\n\tconst context_stack_item = component_context;\n\tif (context_stack_item !== null) {\n\t\tif (component !== undefined) {\n\t\t\tcontext_stack_item.x = component;\n\t\t}\n\t\tconst component_effects = context_stack_item.e;\n\t\tif (component_effects !== null) {\n\t\t\tvar previous_effect = active_effect;\n\t\t\tvar previous_reaction = active_reaction;\n\t\t\tcontext_stack_item.e = null;\n\t\t\ttry {\n\t\t\t\tfor (var i = 0; i < component_effects.length; i++) {\n\t\t\t\t\tvar component_effect = component_effects[i];\n\t\t\t\t\tset_active_effect(component_effect.effect);\n\t\t\t\t\tset_active_reaction(component_effect.reaction);\n\t\t\t\t\teffect(component_effect.fn);\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tset_active_effect(previous_effect);\n\t\t\t\tset_active_reaction(previous_reaction);\n\t\t\t}\n\t\t}\n\t\tcomponent_context = context_stack_item.p;\n\t\tif (DEV) {\n\t\t\tdev_current_component_function = context_stack_item.p?.function ?? null;\n\t\t}\n\t\tcontext_stack_item.m = true;\n\t}\n\t// Micro-optimization: Don't set .a above to the empty object\n\t// so it can be garbage-collected when the return here is unused\n\treturn component || /** @type {T} */ ({});\n}\n\n/** @returns {boolean} */\nexport function is_runes() {\n\treturn !legacy_mode_flag || (component_context !== null && component_context.l === null);\n}\n\n/**\n * @param {string} name\n * @returns {Map<unknown, unknown>}\n */\nfunction get_or_init_context_map(name) {\n\tif (component_context === null) {\n\t\tlifecycle_outside_component(name);\n\t}\n\n\treturn (component_context.c ??= new Map(get_parent_context(component_context) || undefined));\n}\n\n/**\n * @param {ComponentContext} component_context\n * @returns {Map<unknown, unknown> | null}\n */\nfunction get_parent_context(component_context) {\n\tlet parent = component_context.p;\n\twhile (parent !== null) {\n\t\tconst context_map = parent.c;\n\t\tif (context_map !== null) {\n\t\t\treturn context_map;\n\t\t}\n\t\tparent = parent.p;\n\t}\n\treturn null;\n}\n","const regex_return_characters = /\\r/g;\n\n/**\n * @param {string} str\n * @returns {string}\n */\nexport function hash(str) {\n\tstr = str.replace(regex_return_characters, '');\n\tlet hash = 5381;\n\tlet i = str.length;\n\n\twhile (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n\treturn (hash >>> 0).toString(36);\n}\n\nconst VOID_ELEMENT_NAMES = [\n\t'area',\n\t'base',\n\t'br',\n\t'col',\n\t'command',\n\t'embed',\n\t'hr',\n\t'img',\n\t'input',\n\t'keygen',\n\t'link',\n\t'meta',\n\t'param',\n\t'source',\n\t'track',\n\t'wbr'\n];\n\n/**\n * Returns `true` if `name` is of a void element\n * @param {string} name\n */\nexport function is_void(name) {\n\treturn VOID_ELEMENT_NAMES.includes(name) || name.toLowerCase() === '!doctype';\n}\n\nconst RESERVED_WORDS = [\n\t'arguments',\n\t'await',\n\t'break',\n\t'case',\n\t'catch',\n\t'class',\n\t'const',\n\t'continue',\n\t'debugger',\n\t'default',\n\t'delete',\n\t'do',\n\t'else',\n\t'enum',\n\t'eval',\n\t'export',\n\t'extends',\n\t'false',\n\t'finally',\n\t'for',\n\t'function',\n\t'if',\n\t'implements',\n\t'import',\n\t'in',\n\t'instanceof',\n\t'interface',\n\t'let',\n\t'new',\n\t'null',\n\t'package',\n\t'private',\n\t'protected',\n\t'public',\n\t'return',\n\t'static',\n\t'super',\n\t'switch',\n\t'this',\n\t'throw',\n\t'true',\n\t'try',\n\t'typeof',\n\t'var',\n\t'void',\n\t'while',\n\t'with',\n\t'yield'\n];\n\n/**\n * Returns `true` if `word` is a reserved JavaScript keyword\n * @param {string} word\n */\nexport function is_reserved(word) {\n\treturn RESERVED_WORDS.includes(word);\n}\n\n/**\n * @param {string} name\n */\nexport function is_capture_event(name) {\n\treturn name.endsWith('capture') && name !== 'gotpointercapture' && name !== 'lostpointercapture';\n}\n\n/** List of Element events that will be delegated */\nconst DELEGATED_EVENTS = [\n\t'beforeinput',\n\t'click',\n\t'change',\n\t'dblclick',\n\t'contextmenu',\n\t'focusin',\n\t'focusout',\n\t'input',\n\t'keydown',\n\t'keyup',\n\t'mousedown',\n\t'mousemove',\n\t'mouseout',\n\t'mouseover',\n\t'mouseup',\n\t'pointerdown',\n\t'pointermove',\n\t'pointerout',\n\t'pointerover',\n\t'pointerup',\n\t'touchend',\n\t'touchmove',\n\t'touchstart'\n];\n\n/**\n * Returns `true` if `event_name` is a delegated event\n * @param {string} event_name\n */\nexport function is_delegated(event_name) {\n\treturn DELEGATED_EVENTS.includes(event_name);\n}\n\n/**\n * Attributes that are boolean, i.e. they are present or not present.\n */\nconst DOM_BOOLEAN_ATTRIBUTES = [\n\t'allowfullscreen',\n\t'async',\n\t'autofocus',\n\t'autoplay',\n\t'checked',\n\t'controls',\n\t'default',\n\t'disabled',\n\t'formnovalidate',\n\t'hidden',\n\t'indeterminate',\n\t'inert',\n\t'ismap',\n\t'loop',\n\t'multiple',\n\t'muted',\n\t'nomodule',\n\t'novalidate',\n\t'open',\n\t'playsinline',\n\t'readonly',\n\t'required',\n\t'reversed',\n\t'seamless',\n\t'selected',\n\t'webkitdirectory',\n\t'defer',\n\t'disablepictureinpicture',\n\t'disableremoteplayback'\n];\n\n/**\n * Returns `true` if `name` is a boolean attribute\n * @param {string} name\n */\nexport function is_boolean_attribute(name) {\n\treturn DOM_BOOLEAN_ATTRIBUTES.includes(name);\n}\n\n/**\n * @type {Record<string, string>}\n * List of attribute names that should be aliased to their property names\n * because they behave differently between setting them as an attribute and\n * setting them as a property.\n */\nconst ATTRIBUTE_ALIASES = {\n\t// no `class: 'className'` because we handle that separately\n\tformnovalidate: 'formNoValidate',\n\tismap: 'isMap',\n\tnomodule: 'noModule',\n\tplaysinline: 'playsInline',\n\treadonly: 'readOnly',\n\tdefaultvalue: 'defaultValue',\n\tdefaultchecked: 'defaultChecked',\n\tsrcobject: 'srcObject',\n\tnovalidate: 'noValidate',\n\tallowfullscreen: 'allowFullscreen',\n\tdisablepictureinpicture: 'disablePictureInPicture',\n\tdisableremoteplayback: 'disableRemotePlayback'\n};\n\n/**\n * @param {string} name\n */\nexport function normalize_attribute(name) {\n\tname = name.toLowerCase();\n\treturn ATTRIBUTE_ALIASES[name] ?? name;\n}\n\nconst DOM_PROPERTIES = [\n\t...DOM_BOOLEAN_ATTRIBUTES,\n\t'formNoValidate',\n\t'isMap',\n\t'noModule',\n\t'playsInline',\n\t'readOnly',\n\t'value',\n\t'volume',\n\t'defaultValue',\n\t'defaultChecked',\n\t'srcObject',\n\t'noValidate',\n\t'allowFullscreen',\n\t'disablePictureInPicture',\n\t'disableRemotePlayback'\n];\n\n/**\n * @param {string} name\n */\nexport function is_dom_property(name) {\n\treturn DOM_PROPERTIES.includes(name);\n}\n\nconst NON_STATIC_PROPERTIES = ['autofocus', 'muted', 'defaultValue', 'defaultChecked'];\n\n/**\n * Returns `true` if the given attribute cannot be set through the template\n * string, i.e. needs some kind of JavaScript handling to work.\n * @param {string} name\n */\nexport function cannot_be_set_statically(name) {\n\treturn NON_STATIC_PROPERTIES.includes(name);\n}\n\n/**\n * Subset of delegated events which should be passive by default.\n * These two are already passive via browser defaults on window, document and body.\n * But since\n * - we're delegating them\n * - they happen often\n * - they apply to mobile which is generally less performant\n * we're marking them as passive by default for other elements, too.\n */\nconst PASSIVE_EVENTS = ['touchstart', 'touchmove'];\n\n/**\n * Returns `true` if `name` is a passive event\n * @param {string} name\n */\nexport function is_passive_event(name) {\n\treturn PASSIVE_EVENTS.includes(name);\n}\n\nconst CONTENT_EDITABLE_BINDINGS = ['textContent', 'innerHTML', 'innerText'];\n\n/** @param {string} name */\nexport function is_content_editable_binding(name) {\n\treturn CONTENT_EDITABLE_BINDINGS.includes(name);\n}\n\nconst LOAD_ERROR_ELEMENTS = [\n\t'body',\n\t'embed',\n\t'iframe',\n\t'img',\n\t'link',\n\t'object',\n\t'script',\n\t'style',\n\t'track'\n];\n\n/**\n * Returns `true` if the element emits `load` and `error` events\n * @param {string} name\n */\nexport function is_load_error_element(name) {\n\treturn LOAD_ERROR_ELEMENTS.includes(name);\n}\n\nconst SVG_ELEMENTS = [\n\t'altGlyph',\n\t'altGlyphDef',\n\t'altGlyphItem',\n\t'animate',\n\t'animateColor',\n\t'animateMotion',\n\t'animateTransform',\n\t'circle',\n\t'clipPath',\n\t'color-profile',\n\t'cursor',\n\t'defs',\n\t'desc',\n\t'discard',\n\t'ellipse',\n\t'feBlend',\n\t'feColorMatrix',\n\t'feComponentTransfer',\n\t'feComposite',\n\t'feConvolveMatrix',\n\t'feDiffuseLighting',\n\t'feDisplacementMap',\n\t'feDistantLight',\n\t'feDropShadow',\n\t'feFlood',\n\t'feFuncA',\n\t'feFuncB',\n\t'feFuncG',\n\t'feFuncR',\n\t'feGaussianBlur',\n\t'feImage',\n\t'feMerge',\n\t'feMergeNode',\n\t'feMorphology',\n\t'feOffset',\n\t'fePointLight',\n\t'feSpecularLighting',\n\t'feSpotLight',\n\t'feTile',\n\t'feTurbulence',\n\t'filter',\n\t'font',\n\t'font-face',\n\t'font-face-format',\n\t'font-face-name',\n\t'font-face-src',\n\t'font-face-uri',\n\t'foreignObject',\n\t'g',\n\t'glyph',\n\t'glyphRef',\n\t'hatch',\n\t'hatchpath',\n\t'hkern',\n\t'image',\n\t'line',\n\t'linearGradient',\n\t'marker',\n\t'mask',\n\t'mesh',\n\t'meshgradient',\n\t'meshpatch',\n\t'meshrow',\n\t'metadata',\n\t'missing-glyph',\n\t'mpath',\n\t'path',\n\t'pattern',\n\t'polygon',\n\t'polyline',\n\t'radialGradient',\n\t'rect',\n\t'set',\n\t'solidcolor',\n\t'stop',\n\t'svg',\n\t'switch',\n\t'symbol',\n\t'text',\n\t'textPath',\n\t'tref',\n\t'tspan',\n\t'unknown',\n\t'use',\n\t'view',\n\t'vkern'\n];\n\n/** @param {string} name */\nexport function is_svg(name) {\n\treturn SVG_ELEMENTS.includes(name);\n}\n\nconst MATHML_ELEMENTS = [\n\t'annotation',\n\t'annotation-xml',\n\t'maction',\n\t'math',\n\t'merror',\n\t'mfrac',\n\t'mi',\n\t'mmultiscripts',\n\t'mn',\n\t'mo',\n\t'mover',\n\t'mpadded',\n\t'mphantom',\n\t'mprescripts',\n\t'mroot',\n\t'mrow',\n\t'ms',\n\t'mspace',\n\t'msqrt',\n\t'mstyle',\n\t'msub',\n\t'msubsup',\n\t'msup',\n\t'mtable',\n\t'mtd',\n\t'mtext',\n\t'mtr',\n\t'munder',\n\t'munderover',\n\t'semantics'\n];\n\n/** @param {string} name */\nexport function is_mathml(name) {\n\treturn MATHML_ELEMENTS.includes(name);\n}\n\nconst RUNES = /** @type {const} */ ([\n\t'$state',\n\t'$state.raw',\n\t'$state.snapshot',\n\t'$props',\n\t'$props.id',\n\t'$bindable',\n\t'$derived',\n\t'$derived.by',\n\t'$effect',\n\t'$effect.pre',\n\t'$effect.tracking',\n\t'$effect.root',\n\t'$inspect',\n\t'$inspect().with',\n\t'$inspect.trace',\n\t'$host'\n]);\n\n/**\n * @param {string} name\n * @returns {name is RUNES[number]}\n */\nexport function is_rune(name) {\n\treturn RUNES.includes(/** @type {RUNES[number]} */ (name));\n}\n\n/** List of elements that require raw contents and should not have SSR comments put in them */\nconst RAW_TEXT_ELEMENTS = /** @type {const} */ (['textarea', 'script', 'style', 'title']);\n\n/** @param {string} name */\nexport function is_raw_text_element(name) {\n\treturn RAW_TEXT_ELEMENTS.includes(/** @type {RAW_TEXT_ELEMENTS[number]} */ (name));\n}\n\n/**\n * Prevent devtools trying to make `location` a clickable link by inserting a zero-width space\n * @param {string | undefined} location\n */\nexport function sanitize_location(location) {\n\treturn location?.replace(/\\//g, '/\\u200b');\n}\n","import { hydrating } from '../hydration.js';\nimport { clear_text_content, get_first_child } from '../operations.js';\nimport { queue_micro_task } from '../task.js';\n\n/**\n * @param {HTMLElement} dom\n * @param {boolean} value\n * @returns {void}\n */\nexport function autofocus(dom, value) {\n\tif (value) {\n\t\tconst body = document.body;\n\t\tdom.autofocus = true;\n\n\t\tqueue_micro_task(() => {\n\t\t\tif (document.activeElement === body) {\n\t\t\t\tdom.focus();\n\t\t\t}\n\t\t});\n\t}\n}\n\n/**\n * The child of a textarea actually corresponds to the defaultValue property, so we need\n * to remove it upon hydration to avoid a bug when someone resets the form value.\n * @param {HTMLTextAreaElement} dom\n * @returns {void}\n */\nexport function remove_textarea_child(dom) {\n\tif (hydrating && get_first_child(dom) !== null) {\n\t\tclear_text_content(dom);\n\t}\n}\n\nlet listening_to_form_reset = false;\n\nexport function add_form_reset_listener() {\n\tif (!listening_to_form_reset) {\n\t\tlistening_to_form_reset = true;\n\t\tdocument.addEventListener(\n\t\t\t'reset',\n\t\t\t(evt) => {\n\t\t\t\t// Needs to happen one tick later or else the dom properties of the form\n\t\t\t\t// elements have not updated to their reset values yet\n\t\t\t\tPromise.resolve().then(() => {\n\t\t\t\t\tif (!evt.defaultPrevented) {\n\t\t\t\t\t\tfor (const e of /**@type {HTMLFormElement} */ (evt.target).elements) {\n\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\te.__on_r?.();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\t// In the capture phase to guarantee we get noticed of it (no possiblity of stopPropagation)\n\t\t\t{ capture: true }\n\t\t);\n\t}\n}\n","import { teardown } from '../../../reactivity/effects.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tset_active_effect,\n\tset_active_reaction\n} from '../../../runtime.js';\nimport { add_form_reset_listener } from '../misc.js';\n\n/**\n * Fires the handler once immediately (unless corresponding arg is set to `false`),\n * then listens to the given events until the render effect context is destroyed\n * @param {EventTarget} target\n * @param {Array<string>} events\n * @param {(event?: Event) => void} handler\n * @param {any} call_handler_immediately\n */\nexport function listen(target, events, handler, call_handler_immediately = true) {\n\tif (call_handler_immediately) {\n\t\thandler();\n\t}\n\n\tfor (var name of events) {\n\t\ttarget.addEventListener(name, handler);\n\t}\n\n\tteardown(() => {\n\t\tfor (var name of events) {\n\t\t\ttarget.removeEventListener(name, handler);\n\t\t}\n\t});\n}\n\n/**\n * @template T\n * @param {() => T} fn\n */\nexport function without_reactive_context(fn) {\n\tvar previous_reaction = active_reaction;\n\tvar previous_effect = active_effect;\n\tset_active_reaction(null);\n\tset_active_effect(null);\n\ttry {\n\t\treturn fn();\n\t} finally {\n\t\tset_active_reaction(previous_reaction);\n\t\tset_active_effect(previous_effect);\n\t}\n}\n\n/**\n * Listen to the given event, and then instantiate a global form reset listener if not already done,\n * to notify all bindings when the form is reset\n * @param {HTMLElement} element\n * @param {string} event\n * @param {(is_reset?: true) => void} handler\n * @param {(is_reset?: true) => void} [on_reset]\n */\nexport function listen_to_event_and_reset_event(element, event, handler, on_reset = handler) {\n\telement.addEventListener(event, () => without_reactive_context(handler));\n\t// @ts-expect-error\n\tconst prev = element.__on_r;\n\tif (prev) {\n\t\t// special case for checkbox that can have multiple binds (group & checked)\n\t\t// @ts-expect-error\n\t\telement.__on_r = () => {\n\t\t\tprev();\n\t\t\ton_reset(true);\n\t\t};\n\t} else {\n\t\t// @ts-expect-error\n\t\telement.__on_r = () => on_reset(true);\n\t}\n\n\tadd_form_reset_listener();\n}\n","/** @import { Location } from 'locate-character' */\nimport { teardown } from '../../reactivity/effects.js';\nimport { define_property, is_array } from '../../../shared/utils.js';\nimport { hydrating } from '../hydration.js';\nimport { queue_micro_task } from '../task.js';\nimport { FILENAME } from '../../../../constants.js';\nimport * as w from '../../warnings.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tset_active_effect,\n\tset_active_reaction\n} from '../../runtime.js';\nimport { without_reactive_context } from './bindings/shared.js';\n\n/** @type {Set<string>} */\nexport const all_registered_events = new Set();\n\n/** @type {Set<(events: Array<string>) => void>} */\nexport const root_event_handles = new Set();\n\n/**\n * SSR adds onload and onerror attributes to catch those events before the hydration.\n * This function detects those cases, removes the attributes and replays the events.\n * @param {HTMLElement} dom\n */\nexport function replay_events(dom) {\n\tif (!hydrating) return;\n\n\tif (dom.onload) {\n\t\tdom.removeAttribute('onload');\n\t}\n\tif (dom.onerror) {\n\t\tdom.removeAttribute('onerror');\n\t}\n\t// @ts-expect-error\n\tconst event = dom.__e;\n\tif (event !== undefined) {\n\t\t// @ts-expect-error\n\t\tdom.__e = undefined;\n\t\tqueueMicrotask(() => {\n\t\t\tif (dom.isConnected) {\n\t\t\t\tdom.dispatchEvent(event);\n\t\t\t}\n\t\t});\n\t}\n}\n\n/**\n * @param {string} event_name\n * @param {EventTarget} dom\n * @param {EventListener} [handler]\n * @param {AddEventListenerOptions} [options]\n */\nexport function create_event(event_name, dom, handler, options = {}) {\n\t/**\n\t * @this {EventTarget}\n\t */\n\tfunction target_handler(/** @type {Event} */ event) {\n\t\tif (!options.capture) {\n\t\t\t// Only call in the bubble phase, else delegated events would be called before the capturing events\n\t\t\thandle_event_propagation.call(dom, event);\n\t\t}\n\t\tif (!event.cancelBubble) {\n\t\t\treturn without_reactive_context(() => {\n\t\t\t\treturn handler?.call(this, event);\n\t\t\t});\n\t\t}\n\t}\n\n\t// Chrome has a bug where pointer events don't work when attached to a DOM element that has been cloned\n\t// with cloneNode() and the DOM element is disconnected from the document. To ensure the event works, we\n\t// defer the attachment till after it's been appended to the document. TODO: remove this once Chrome fixes\n\t// this bug. The same applies to wheel events and touch events.\n\tif (\n\t\tevent_name.startsWith('pointer') ||\n\t\tevent_name.startsWith('touch') ||\n\t\tevent_name === 'wheel'\n\t) {\n\t\tqueue_micro_task(() => {\n\t\t\tdom.addEventListener(event_name, target_handler, options);\n\t\t});\n\t} else {\n\t\tdom.addEventListener(event_name, target_handler, options);\n\t}\n\n\treturn target_handler;\n}\n\n/**\n * Attaches an event handler to an element and returns a function that removes the handler. Using this\n * rather than `addEventListener` will preserve the correct order relative to handlers added declaratively\n * (with attributes like `onclick`), which use event delegation for performance reasons\n *\n * @param {EventTarget} element\n * @param {string} type\n * @param {EventListener} handler\n * @param {AddEventListenerOptions} [options]\n */\nexport function on(element, type, handler, options = {}) {\n\tvar target_handler = create_event(type, element, handler, options);\n\n\treturn () => {\n\t\telement.removeEventListener(type, target_handler, options);\n\t};\n}\n\n/**\n * @param {string} event_name\n * @param {Element} dom\n * @param {EventListener} [handler]\n * @param {boolean} [capture]\n * @param {boolean} [passive]\n * @returns {void}\n */\nexport function event(event_name, dom, handler, capture, passive) {\n\tvar options = { capture, passive };\n\tvar target_handler = create_event(event_name, dom, handler, options);\n\n\t// @ts-ignore\n\tif (dom === document.body || dom === window || dom === document) {\n\t\tteardown(() => {\n\t\t\tdom.removeEventListener(event_name, target_handler, options);\n\t\t});\n\t}\n}\n\n/**\n * @param {Array<string>} events\n * @returns {void}\n */\nexport function delegate(events) {\n\tfor (var i = 0; i < events.length; i++) {\n\t\tall_registered_events.add(events[i]);\n\t}\n\n\tfor (var fn of root_event_handles) {\n\t\tfn(events);\n\t}\n}\n\n/**\n * @this {EventTarget}\n * @param {Event} event\n * @returns {void}\n */\nexport function handle_event_propagation(event) {\n\tvar handler_element = this;\n\tvar owner_document = /** @type {Node} */ (handler_element).ownerDocument;\n\tvar event_name = event.type;\n\tvar path = event.composedPath?.() || [];\n\tvar current_target = /** @type {null | Element} */ (path[0] || event.target);\n\n\t// composedPath contains list of nodes the event has propagated through.\n\t// We check __root to skip all nodes below it in case this is a\n\t// parent of the __root node, which indicates that there's nested\n\t// mounted apps. In this case we don't want to trigger events multiple times.\n\tvar path_idx = 0;\n\n\t// @ts-expect-error is added below\n\tvar handled_at = event.__root;\n\n\tif (handled_at) {\n\t\tvar at_idx = path.indexOf(handled_at);\n\t\tif (\n\t\t\tat_idx !== -1 &&\n\t\t\t(handler_element === document || handler_element === /** @type {any} */ (window))\n\t\t) {\n\t\t\t// This is the fallback document listener or a window listener, but the event was already handled\n\t\t\t// -> ignore, but set handle_at to document/window so that we're resetting the event\n\t\t\t// chain in case someone manually dispatches the same event object again.\n\t\t\t// @ts-expect-error\n\t\t\tevent.__root = handler_element;\n\t\t\treturn;\n\t\t}\n\n\t\t// We're deliberately not skipping if the index is higher, because\n\t\t// someone could create an event programmatically and emit it multiple times,\n\t\t// in which case we want to handle the whole propagation chain properly each time.\n\t\t// (this will only be a false negative if the event is dispatched multiple times and\n\t\t// the fallback document listener isn't reached in between, but that's super rare)\n\t\tvar handler_idx = path.indexOf(handler_element);\n\t\tif (handler_idx === -1) {\n\t\t\t// handle_idx can theoretically be -1 (happened in some JSDOM testing scenarios with an event listener on the window object)\n\t\t\t// so guard against that, too, and assume that everything was handled at this point.\n\t\t\treturn;\n\t\t}\n\n\t\tif (at_idx <= handler_idx) {\n\t\t\tpath_idx = at_idx;\n\t\t}\n\t}\n\n\tcurrent_target = /** @type {Element} */ (path[path_idx] || event.target);\n\t// there can only be one delegated event per element, and we either already handled the current target,\n\t// or this is the very first target in the chain which has a non-delegated listener, in which case it's safe\n\t// to handle a possible delegated event on it later (through the root delegation listener for example).\n\tif (current_target === handler_element) return;\n\n\t// Proxy currentTarget to correct target\n\tdefine_property(event, 'currentTarget', {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn current_target || owner_document;\n\t\t}\n\t});\n\n\t// This started because of Chromium issue https://chromestatus.com/feature/5128696823545856,\n\t// where removal or moving of of the DOM can cause sync `blur` events to fire, which can cause logic\n\t// to run inside the current `active_reaction`, which isn't what we want at all. However, on reflection,\n\t// it's probably best that all event handled by Svelte have this behaviour, as we don't really want\n\t// an event handler to run in the context of another reaction or effect.\n\tvar previous_reaction = active_reaction;\n\tvar previous_effect = active_effect;\n\tset_active_reaction(null);\n\tset_active_effect(null);\n\n\ttry {\n\t\t/**\n\t\t * @type {unknown}\n\t\t */\n\t\tvar throw_error;\n\t\t/**\n\t\t * @type {unknown[]}\n\t\t */\n\t\tvar other_errors = [];\n\n\t\twhile (current_target !== null) {\n\t\t\t/** @type {null | Element} */\n\t\t\tvar parent_element =\n\t\t\t\tcurrent_target.assignedSlot ||\n\t\t\t\tcurrent_target.parentNode ||\n\t\t\t\t/** @type {any} */ (current_target).host ||\n\t\t\t\tnull;\n\n\t\t\ttry {\n\t\t\t\t// @ts-expect-error\n\t\t\t\tvar delegated = current_target['__' + event_name];\n\n\t\t\t\tif (\n\t\t\t\t\tdelegated != null &&\n\t\t\t\t\t(!(/** @type {any} */ (current_target).disabled) ||\n\t\t\t\t\t\t// DOM could've been updated already by the time this is reached, so we check this as well\n\t\t\t\t\t\t// -> the target could not have been disabled because it emits the event in the first place\n\t\t\t\t\t\tevent.target === current_target)\n\t\t\t\t) {\n\t\t\t\t\tif (is_array(delegated)) {\n\t\t\t\t\t\tvar [fn, ...data] = delegated;\n\t\t\t\t\t\tfn.apply(current_target, [event, ...data]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelegated.call(current_target, event);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (throw_error) {\n\t\t\t\t\tother_errors.push(error);\n\t\t\t\t} else {\n\t\t\t\t\tthrow_error = error;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (event.cancelBubble || parent_element === handler_element || parent_element === null) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurrent_target = parent_element;\n\t\t}\n\n\t\tif (throw_error) {\n\t\t\tfor (let error of other_errors) {\n\t\t\t\t// Throw the rest of the errors, one-by-one on a microtask\n\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\tthrow error;\n\t\t\t\t});\n\t\t\t}\n\t\t\tthrow throw_error;\n\t\t}\n\t} finally {\n\t\t// @ts-expect-error is used above\n\t\tevent.__root = handler_element;\n\t\t// @ts-ignore remove proxy on currentTarget\n\t\tdelete event.currentTarget;\n\t\tset_active_reaction(previous_reaction);\n\t\tset_active_effect(previous_effect);\n\t}\n}\n\n/**\n * In dev, warn if an event handler is not a function, as it means the\n * user probably called the handler or forgot to add a `() =>`\n * @param {() => (event: Event, ...args: any) => void} thunk\n * @param {EventTarget} element\n * @param {[Event, ...any]} args\n * @param {any} component\n * @param {[number, number]} [loc]\n * @param {boolean} [remove_parens]\n */\nexport function apply(\n\tthunk,\n\telement,\n\targs,\n\tcomponent,\n\tloc,\n\thas_side_effects = false,\n\tremove_parens = false\n) {\n\tlet handler;\n\tlet error;\n\n\ttry {\n\t\thandler = thunk();\n\t} catch (e) {\n\t\terror = e;\n\t}\n\n\tif (typeof handler !== 'function' && (has_side_effects || handler != null || error)) {\n\t\tconst filename = component?.[FILENAME];\n\t\tconst location = loc ? ` at ${filename}:${loc[0]}:${loc[1]}` : ` in ${filename}`;\n\t\tconst phase = args[0]?.eventPhase < Event.BUBBLING_PHASE ? 'capture' : '';\n\t\tconst event_name = args[0]?.type + phase;\n\t\tconst description = `\\`${event_name}\\` handler${location}`;\n\t\tconst suggestion = remove_parens ? 'remove the trailing `()`' : 'add a leading `() =>`';\n\n\t\tw.event_handler_invalid(description, suggestion);\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\t}\n\thandler?.apply(element, args);\n}\n","/** @param {string} html */\nexport function create_fragment_from_html(html) {\n\tvar elem = document.createElement('template');\n\telem.innerHTML = html;\n\treturn elem.content;\n}\n","/** @import { Effect, TemplateNode } from '#client' */\nimport { hydrate_next, hydrate_node, hydrating, set_hydrate_node } from './hydration.js';\nimport { create_text, get_first_child, is_firefox } from './operations.js';\nimport { create_fragment_from_html } from './reconciler.js';\nimport { active_effect } from '../runtime.js';\nimport { TEMPLATE_FRAGMENT, TEMPLATE_USE_IMPORT_NODE } from '../../../constants.js';\n\n/**\n * @param {TemplateNode} start\n * @param {TemplateNode | null} end\n */\nexport function assign_nodes(start, end) {\n\tvar effect = /** @type {Effect} */ (active_effect);\n\tif (effect.nodes_start === null) {\n\t\teffect.nodes_start = start;\n\t\teffect.nodes_end = end;\n\t}\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n * @returns {() => Node | Node[]}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function template(content, flags) {\n\tvar is_fragment = (flags & TEMPLATE_FRAGMENT) !== 0;\n\tvar use_import_node = (flags & TEMPLATE_USE_IMPORT_NODE) !== 0;\n\n\t/** @type {Node} */\n\tvar node;\n\n\t/**\n\t * Whether or not the first item is a text/element node. If not, we need to\n\t * create an additional comment node to act as `effect.nodes.start`\n\t */\n\tvar has_start = !content.startsWith('<!>');\n\n\treturn () => {\n\t\tif (hydrating) {\n\t\t\tassign_nodes(hydrate_node, null);\n\t\t\treturn hydrate_node;\n\t\t}\n\n\t\tif (node === undefined) {\n\t\t\tnode = create_fragment_from_html(has_start ? content : '<!>' + content);\n\t\t\tif (!is_fragment) node = /** @type {Node} */ (get_first_child(node));\n\t\t}\n\n\t\tvar clone = /** @type {TemplateNode} */ (\n\t\t\tuse_import_node || is_firefox ? document.importNode(node, true) : node.cloneNode(true)\n\t\t);\n\n\t\tif (is_fragment) {\n\t\t\tvar start = /** @type {TemplateNode} */ (get_first_child(clone));\n\t\t\tvar end = /** @type {TemplateNode} */ (clone.lastChild);\n\n\t\t\tassign_nodes(start, end);\n\t\t} else {\n\t\t\tassign_nodes(clone, clone);\n\t\t}\n\n\t\treturn clone;\n\t};\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n * @returns {() => Node | Node[]}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function template_with_script(content, flags) {\n\tvar fn = template(content, flags);\n\treturn () => run_scripts(/** @type {Element | DocumentFragment} */ (fn()));\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n * @param {'svg' | 'math'} ns\n * @returns {() => Node | Node[]}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function ns_template(content, flags, ns = 'svg') {\n\t/**\n\t * Whether or not the first item is a text/element node. If not, we need to\n\t * create an additional comment node to act as `effect.nodes.start`\n\t */\n\tvar has_start = !content.startsWith('<!>');\n\n\tvar is_fragment = (flags & TEMPLATE_FRAGMENT) !== 0;\n\tvar wrapped = `<${ns}>${has_start ? content : '<!>' + content}</${ns}>`;\n\n\t/** @type {Element | DocumentFragment} */\n\tvar node;\n\n\treturn () => {\n\t\tif (hydrating) {\n\t\t\tassign_nodes(hydrate_node, null);\n\t\t\treturn hydrate_node;\n\t\t}\n\n\t\tif (!node) {\n\t\t\tvar fragment = /** @type {DocumentFragment} */ (create_fragment_from_html(wrapped));\n\t\t\tvar root = /** @type {Element} */ (get_first_child(fragment));\n\n\t\t\tif (is_fragment) {\n\t\t\t\tnode = document.createDocumentFragment();\n\t\t\t\twhile (get_first_child(root)) {\n\t\t\t\t\tnode.appendChild(/** @type {Node} */ (get_first_child(root)));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnode = /** @type {Element} */ (get_first_child(root));\n\t\t\t}\n\t\t}\n\n\t\tvar clone = /** @type {TemplateNode} */ (node.cloneNode(true));\n\n\t\tif (is_fragment) {\n\t\t\tvar start = /** @type {TemplateNode} */ (get_first_child(clone));\n\t\t\tvar end = /** @type {TemplateNode} */ (clone.lastChild);\n\n\t\t\tassign_nodes(start, end);\n\t\t} else {\n\t\t\tassign_nodes(clone, clone);\n\t\t}\n\n\t\treturn clone;\n\t};\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n * @returns {() => Node | Node[]}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function svg_template_with_script(content, flags) {\n\tvar fn = ns_template(content, flags);\n\treturn () => run_scripts(/** @type {Element | DocumentFragment} */ (fn()));\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n * @returns {() => Node | Node[]}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function mathml_template(content, flags) {\n\treturn ns_template(content, flags, 'math');\n}\n\n/**\n * Creating a document fragment from HTML that contains script tags will not execute\n * the scripts. We need to replace the script tags with new ones so that they are executed.\n * @param {Element | DocumentFragment} node\n * @returns {Node | Node[]}\n */\nfunction run_scripts(node) {\n\t// scripts were SSR'd, in which case they will run\n\tif (hydrating) return node;\n\n\tconst is_fragment = node.nodeType === 11;\n\tconst scripts =\n\t\t/** @type {HTMLElement} */ (node).tagName === 'SCRIPT'\n\t\t\t? [/** @type {HTMLScriptElement} */ (node)]\n\t\t\t: node.querySelectorAll('script');\n\tconst effect = /** @type {Effect} */ (active_effect);\n\n\tfor (const script of scripts) {\n\t\tconst clone = document.createElement('script');\n\t\tfor (var attribute of script.attributes) {\n\t\t\tclone.setAttribute(attribute.name, attribute.value);\n\t\t}\n\n\t\tclone.textContent = script.textContent;\n\n\t\t// The script has changed - if it's at the edges, the effect now points at dead nodes\n\t\tif (is_fragment ? node.firstChild === script : node === script) {\n\t\t\teffect.nodes_start = clone;\n\t\t}\n\t\tif (is_fragment ? node.lastChild === script : node === script) {\n\t\t\teffect.nodes_end = clone;\n\t\t}\n\n\t\tscript.replaceWith(clone);\n\t}\n\treturn node;\n}\n\n/**\n * Don't mark this as side-effect-free, hydration needs to walk all nodes\n * @param {any} value\n */\nexport function text(value = '') {\n\tif (!hydrating) {\n\t\tvar t = create_text(value + '');\n\t\tassign_nodes(t, t);\n\t\treturn t;\n\t}\n\n\tvar node = hydrate_node;\n\n\tif (node.nodeType !== 3) {\n\t\t// if an {expression} is empty during SSR, we need to insert an empty text node\n\t\tnode.before((node = create_text()));\n\t\tset_hydrate_node(node);\n\t}\n\n\tassign_nodes(node, node);\n\treturn node;\n}\n\nexport function comment() {\n\t// we're not delegating to `template` here for performance reasons\n\tif (hydrating) {\n\t\tassign_nodes(hydrate_node, null);\n\t\treturn hydrate_node;\n\t}\n\n\tvar frag = document.createDocumentFragment();\n\tvar start = document.createComment('');\n\tvar anchor = create_text();\n\tfrag.append(start, anchor);\n\n\tassign_nodes(start, anchor);\n\n\treturn frag;\n}\n\n/**\n * Assign the created (or in hydration mode, traversed) dom elements to the current block\n * and insert the elements into the dom (in client mode).\n * @param {Text | Comment | Element} anchor\n * @param {DocumentFragment | Element} dom\n */\nexport function append(anchor, dom) {\n\tif (hydrating) {\n\t\t/** @type {Effect} */ (active_effect).nodes_end = hydrate_node;\n\t\thydrate_next();\n\t\treturn;\n\t}\n\n\tif (anchor === null) {\n\t\t// edge case — void `<svelte:element>` with content\n\t\treturn;\n\t}\n\n\tanchor.before(/** @type {Node} */ (dom));\n}\n\n/**\n * Create (or hydrate) an unique UID for the component instance.\n */\nexport function props_id() {\n\tif (\n\t\thydrating &&\n\t\thydrate_node &&\n\t\thydrate_node.nodeType === 8 &&\n\t\thydrate_node.textContent?.startsWith(`#`)\n\t) {\n\t\tconst id = hydrate_node.textContent.substring(1);\n\t\thydrate_next();\n\t\treturn id;\n\t}\n\n\t// @ts-expect-error This way we ensure the id is unique even across Svelte runtimes\n\t(window.__svelte ??= {}).uid ??= 1;\n\n\t// @ts-expect-error\n\treturn `c${window.__svelte.uid++}`;\n}\n","/** @import { ComponentContext, Effect, TemplateNode } from '#client' */\n/** @import { Component, ComponentType, SvelteComponent, MountOptions } from '../../index.js' */\nimport { DEV } from 'esm-env';\nimport {\n\tclear_text_content,\n\tcreate_text,\n\tget_first_child,\n\tget_next_sibling,\n\tinit_operations\n} from './dom/operations.js';\nimport { HYDRATION_END, HYDRATION_ERROR, HYDRATION_START } from '../../constants.js';\nimport { active_effect } from './runtime.js';\nimport { push, pop, component_context } from './context.js';\nimport { component_root, branch } from './reactivity/effects.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tset_hydrate_node,\n\tset_hydrating\n} from './dom/hydration.js';\nimport { array_from } from '../shared/utils.js';\nimport {\n\tall_registered_events,\n\thandle_event_propagation,\n\troot_event_handles\n} from './dom/elements/events.js';\nimport { reset_head_anchor } from './dom/blocks/svelte-head.js';\nimport * as w from './warnings.js';\nimport * as e from './errors.js';\nimport { assign_nodes } from './dom/template.js';\nimport { is_passive_event } from '../../utils.js';\n\n/**\n * This is normally true — block effects should run their intro transitions —\n * but is false during hydration (unless `options.intro` is `true`) and\n * when creating the children of a `<svelte:element>` that just changed tag\n */\nexport let should_intro = true;\n\n/** @param {boolean} value */\nexport function set_should_intro(value) {\n\tshould_intro = value;\n}\n\n/**\n * @param {Element} text\n * @param {string} value\n * @returns {void}\n */\nexport function set_text(text, value) {\n\t// For objects, we apply string coercion (which might make things like $state array references in the template reactive) before diffing\n\tvar str = value == null ? '' : typeof value === 'object' ? value + '' : value;\n\t// @ts-expect-error\n\tif (str !== (text.__t ??= text.nodeValue)) {\n\t\t// @ts-expect-error\n\t\ttext.__t = str;\n\t\ttext.nodeValue = str + '';\n\t}\n}\n\n/**\n * Mounts a component to the given target and returns the exports and potentially the props (if compiled with `accessors: true`) of the component.\n * Transitions will play during the initial render unless the `intro` option is set to `false`.\n *\n * @template {Record<string, any>} Props\n * @template {Record<string, any>} Exports\n * @param {ComponentType<SvelteComponent<Props>> | Component<Props, Exports, any>} component\n * @param {MountOptions<Props>} options\n * @returns {Exports}\n */\nexport function mount(component, options) {\n\treturn _mount(component, options);\n}\n\n/**\n * Hydrates a component on the given target and returns the exports and potentially the props (if compiled with `accessors: true`) of the component\n *\n * @template {Record<string, any>} Props\n * @template {Record<string, any>} Exports\n * @param {ComponentType<SvelteComponent<Props>> | Component<Props, Exports, any>} component\n * @param {{} extends Props ? {\n * \t\ttarget: Document | Element | ShadowRoot;\n * \t\tprops?: Props;\n * \t\tevents?: Record<string, (e: any) => any>;\n * \tcontext?: Map<any, any>;\n * \t\tintro?: boolean;\n * \t\trecover?: boolean;\n * \t} : {\n * \t\ttarget: Document | Element | ShadowRoot;\n * \t\tprops: Props;\n * \t\tevents?: Record<string, (e: any) => any>;\n * \tcontext?: Map<any, any>;\n * \t\tintro?: boolean;\n * \t\trecover?: boolean;\n * \t}} options\n * @returns {Exports}\n */\nexport function hydrate(component, options) {\n\tinit_operations();\n\toptions.intro = options.intro ?? false;\n\tconst target = options.target;\n\tconst was_hydrating = hydrating;\n\tconst previous_hydrate_node = hydrate_node;\n\n\ttry {\n\t\tvar anchor = /** @type {TemplateNode} */ (get_first_child(target));\n\t\twhile (\n\t\t\tanchor &&\n\t\t\t(anchor.nodeType !== 8 || /** @type {Comment} */ (anchor).data !== HYDRATION_START)\n\t\t) {\n\t\t\tanchor = /** @type {TemplateNode} */ (get_next_sibling(anchor));\n\t\t}\n\n\t\tif (!anchor) {\n\t\t\tthrow HYDRATION_ERROR;\n\t\t}\n\n\t\tset_hydrating(true);\n\t\tset_hydrate_node(/** @type {Comment} */ (anchor));\n\t\thydrate_next();\n\n\t\tconst instance = _mount(component, { ...options, anchor });\n\n\t\tif (\n\t\t\thydrate_node === null ||\n\t\t\thydrate_node.nodeType !== 8 ||\n\t\t\t/** @type {Comment} */ (hydrate_node).data !== HYDRATION_END\n\t\t) {\n\t\t\tw.hydration_mismatch();\n\t\t\tthrow HYDRATION_ERROR;\n\t\t}\n\n\t\tset_hydrating(false);\n\n\t\treturn /** @type {Exports} */ (instance);\n\t} catch (error) {\n\t\tif (error === HYDRATION_ERROR) {\n\t\t\tif (options.recover === false) {\n\t\t\t\te.hydration_failed();\n\t\t\t}\n\n\t\t\t// If an error occured above, the operations might not yet have been initialised.\n\t\t\tinit_operations();\n\t\t\tclear_text_content(target);\n\n\t\t\tset_hydrating(false);\n\t\t\treturn mount(component, options);\n\t\t}\n\n\t\tthrow error;\n\t} finally {\n\t\tset_hydrating(was_hydrating);\n\t\tset_hydrate_node(previous_hydrate_node);\n\t\treset_head_anchor();\n\t}\n}\n\n/** @type {Map<string, number>} */\nconst document_listeners = new Map();\n\n/**\n * @template {Record<string, any>} Exports\n * @param {ComponentType<SvelteComponent<any>> | Component<any>} Component\n * @param {MountOptions} options\n * @returns {Exports}\n */\nfunction _mount(Component, { target, anchor, props = {}, events, context, intro = true }) {\n\tinit_operations();\n\n\tvar registered_events = new Set();\n\n\t/** @param {Array<string>} events */\n\tvar event_handle = (events) => {\n\t\tfor (var i = 0; i < events.length; i++) {\n\t\t\tvar event_name = events[i];\n\n\t\t\tif (registered_events.has(event_name)) continue;\n\t\t\tregistered_events.add(event_name);\n\n\t\t\tvar passive = is_passive_event(event_name);\n\n\t\t\t// Add the event listener to both the container and the document.\n\t\t\t// The container listener ensures we catch events from within in case\n\t\t\t// the outer content stops propagation of the event.\n\t\t\ttarget.addEventListener(event_name, handle_event_propagation, { passive });\n\n\t\t\tvar n = document_listeners.get(event_name);\n\n\t\t\tif (n === undefined) {\n\t\t\t\t// The document listener ensures we catch events that originate from elements that were\n\t\t\t\t// manually moved outside of the container (e.g. via manual portals).\n\t\t\t\tdocument.addEventListener(event_name, handle_event_propagation, { passive });\n\t\t\t\tdocument_listeners.set(event_name, 1);\n\t\t\t} else {\n\t\t\t\tdocument_listeners.set(event_name, n + 1);\n\t\t\t}\n\t\t}\n\t};\n\n\tevent_handle(array_from(all_registered_events));\n\troot_event_handles.add(event_handle);\n\n\t/** @type {Exports} */\n\t// @ts-expect-error will be defined because the render effect runs synchronously\n\tvar component = undefined;\n\n\tvar unmount = component_root(() => {\n\t\tvar anchor_node = anchor ?? target.appendChild(create_text());\n\n\t\tbranch(() => {\n\t\t\tif (context) {\n\t\t\t\tpush({});\n\t\t\t\tvar ctx = /** @type {ComponentContext} */ (component_context);\n\t\t\t\tctx.c = context;\n\t\t\t}\n\n\t\t\tif (events) {\n\t\t\t\t// We can't spread the object or else we'd lose the state proxy stuff, if it is one\n\t\t\t\t/** @type {any} */ (props).$$events = events;\n\t\t\t}\n\n\t\t\tif (hydrating) {\n\t\t\t\tassign_nodes(/** @type {TemplateNode} */ (anchor_node), null);\n\t\t\t}\n\n\t\t\tshould_intro = intro;\n\t\t\t// @ts-expect-error the public typings are not what the actual function looks like\n\t\t\tcomponent = Component(anchor_node, props) || {};\n\t\t\tshould_intro = true;\n\n\t\t\tif (hydrating) {\n\t\t\t\t/** @type {Effect} */ (active_effect).nodes_end = hydrate_node;\n\t\t\t}\n\n\t\t\tif (context) {\n\t\t\t\tpop();\n\t\t\t}\n\t\t});\n\n\t\treturn () => {\n\t\t\tfor (var event_name of registered_events) {\n\t\t\t\ttarget.removeEventListener(event_name, handle_event_propagation);\n\n\t\t\t\tvar n = /** @type {number} */ (document_listeners.get(event_name));\n\n\t\t\t\tif (--n === 0) {\n\t\t\t\t\tdocument.removeEventListener(event_name, handle_event_propagation);\n\t\t\t\t\tdocument_listeners.delete(event_name);\n\t\t\t\t} else {\n\t\t\t\t\tdocument_listeners.set(event_name, n);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\troot_event_handles.delete(event_handle);\n\n\t\t\tif (anchor_node !== anchor) {\n\t\t\t\tanchor_node.parentNode?.removeChild(anchor_node);\n\t\t\t}\n\t\t};\n\t});\n\n\tmounted_components.set(component, unmount);\n\treturn component;\n}\n\n/**\n * References of the components that were mounted or hydrated.\n * Uses a `WeakMap` to avoid memory leaks.\n */\nlet mounted_components = new WeakMap();\n\n/**\n * Unmounts a component that was previously mounted using `mount` or `hydrate`.\n *\n * Since 5.13.0, if `options.outro` is `true`, [transitions](https://svelte.dev/docs/svelte/transition) will play before the component is removed from the DOM.\n *\n * Returns a `Promise` that resolves after transitions have completed if `options.outro` is true, or immediately otherwise (prior to 5.13.0, returns `void`).\n *\n * ```js\n * import { mount, unmount } from 'svelte';\n * import App from './App.svelte';\n *\n * const app = mount(App, { target: document.body });\n *\n * // later...\n * unmount(app, { outro: true });\n * ```\n * @param {Record<string, any>} component\n * @param {{ outro?: boolean }} [options]\n * @returns {Promise<void>}\n */\nexport function unmount(component, options) {\n\tconst fn = mounted_components.get(component);\n\n\tif (fn) {\n\t\tmounted_components.delete(component);\n\t\treturn fn(options);\n\t}\n\n\tif (DEV) {\n\t\tw.lifecycle_double_unmount();\n\t}\n\n\treturn Promise.resolve();\n}\n","/** @import { Effect, TemplateNode } from '#client' */\nimport { EFFECT_TRANSPARENT } from '../../constants.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tremove_nodes,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport { block, branch, pause_effect, resume_effect } from '../../reactivity/effects.js';\nimport { HYDRATION_START, HYDRATION_START_ELSE, UNINITIALIZED } from '../../../../constants.js';\n\n/**\n * @param {TemplateNode} node\n * @param {(branch: (fn: (anchor: Node, elseif?: [number,number]) => void, flag?: boolean) => void) => void} fn\n * @param {[number,number]} [elseif]\n * @returns {void}\n */\nexport function if_block(node, fn, [root_index, hydrate_index] = [0, 0]) {\n\tif (hydrating && root_index === 0) {\n\t\thydrate_next();\n\t}\n\n\tvar anchor = node;\n\n\t/** @type {Effect | null} */\n\tvar consequent_effect = null;\n\n\t/** @type {Effect | null} */\n\tvar alternate_effect = null;\n\n\t/** @type {UNINITIALIZED | boolean | null} */\n\tvar condition = UNINITIALIZED;\n\n\tvar flags = root_index > 0 ? EFFECT_TRANSPARENT : 0;\n\n\tvar has_branch = false;\n\n\tconst set_branch = (\n\t\t/** @type {(anchor: Node, elseif?: [number,number]) => void} */ fn,\n\t\tflag = true\n\t) => {\n\t\thas_branch = true;\n\t\tupdate_branch(flag, fn);\n\t};\n\n\tconst update_branch = (\n\t\t/** @type {boolean | null} */ new_condition,\n\t\t/** @type {null | ((anchor: Node, elseif?: [number,number]) => void)} */ fn\n\t) => {\n\t\tif (condition === (condition = new_condition)) return;\n\n\t\t/** Whether or not there was a hydration mismatch. Needs to be a `let` or else it isn't treeshaken out */\n\t\tlet mismatch = false;\n\n\t\tif (hydrating && hydrate_index !== -1) {\n\t\t\tif (root_index === 0) {\n\t\t\t\tconst data = /** @type {Comment} */ (anchor).data;\n\t\t\t\tif (data === HYDRATION_START) {\n\t\t\t\t\thydrate_index = 0;\n\t\t\t\t} else if (data === HYDRATION_START_ELSE) {\n\t\t\t\t\thydrate_index = Infinity;\n\t\t\t\t} else {\n\t\t\t\t\thydrate_index = parseInt(data.substring(1));\n\t\t\t\t\tif (hydrate_index !== hydrate_index) {\n\t\t\t\t\t\t// if hydrate_index is NaN\n\t\t\t\t\t\t// we set an invalid index to force mismatch\n\t\t\t\t\t\thydrate_index = condition ? Infinity : -1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst is_else = hydrate_index > root_index;\n\n\t\t\tif (!!condition === is_else) {\n\t\t\t\t// Hydration mismatch: remove everything inside the anchor and start fresh.\n\t\t\t\t// This could happen with `{#if browser}...{/if}`, for example\n\t\t\t\tanchor = remove_nodes();\n\n\t\t\t\tset_hydrate_node(anchor);\n\t\t\t\tset_hydrating(false);\n\t\t\t\tmismatch = true;\n\t\t\t\thydrate_index = -1; // ignore hydration in next else if\n\t\t\t}\n\t\t}\n\n\t\tif (condition) {\n\t\t\tif (consequent_effect) {\n\t\t\t\tresume_effect(consequent_effect);\n\t\t\t} else if (fn) {\n\t\t\t\tconsequent_effect = branch(() => fn(anchor));\n\t\t\t}\n\n\t\t\tif (alternate_effect) {\n\t\t\t\tpause_effect(alternate_effect, () => {\n\t\t\t\t\talternate_effect = null;\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tif (alternate_effect) {\n\t\t\t\tresume_effect(alternate_effect);\n\t\t\t} else if (fn) {\n\t\t\t\talternate_effect = branch(() => fn(anchor, [root_index + 1, hydrate_index]));\n\t\t\t}\n\n\t\t\tif (consequent_effect) {\n\t\t\t\tpause_effect(consequent_effect, () => {\n\t\t\t\t\tconsequent_effect = null;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (mismatch) {\n\t\t\t// continue in hydration mode\n\t\t\tset_hydrating(true);\n\t\t}\n\t};\n\n\tblock(() => {\n\t\thas_branch = false;\n\t\tfn(set_branch);\n\t\tif (!has_branch) {\n\t\t\tupdate_branch(null, null);\n\t\t}\n\t}, flags);\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n","/** @import { EachItem, EachState, Effect, MaybeSource, Source, TemplateNode, TransitionManager, Value } from '#client' */\nimport {\n\tEACH_INDEX_REACTIVE,\n\tEACH_IS_ANIMATED,\n\tEACH_IS_CONTROLLED,\n\tEACH_ITEM_IMMUTABLE,\n\tEACH_ITEM_REACTIVE,\n\tHYDRATION_END,\n\tHYDRATION_START_ELSE\n} from '../../../../constants.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tremove_nodes,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport {\n\tclear_text_content,\n\tcreate_text,\n\tget_first_child,\n\tget_next_sibling\n} from '../operations.js';\nimport {\n\tblock,\n\tbranch,\n\tdestroy_effect,\n\trun_out_transitions,\n\tpause_children,\n\tpause_effect,\n\tresume_effect\n} from '../../reactivity/effects.js';\nimport { source, mutable_source, internal_set } from '../../reactivity/sources.js';\nimport { array_from, is_array } from '../../../shared/utils.js';\nimport { INERT } from '../../constants.js';\nimport { queue_micro_task } from '../task.js';\nimport { active_effect, active_reaction, get } from '../../runtime.js';\nimport { DEV } from 'esm-env';\nimport { derived_safe_equal } from '../../reactivity/deriveds.js';\n\n/**\n * The row of a keyed each block that is currently updating. We track this\n * so that `animate:` directives have something to attach themselves to\n * @type {EachItem | null}\n */\nexport let current_each_item = null;\n\n/** @param {EachItem | null} item */\nexport function set_current_each_item(item) {\n\tcurrent_each_item = item;\n}\n\n/**\n * @param {any} _\n * @param {number} i\n */\nexport function index(_, i) {\n\treturn i;\n}\n\n/**\n * Pause multiple effects simultaneously, and coordinate their\n * subsequent destruction. Used in each blocks\n * @param {EachState} state\n * @param {EachItem[]} items\n * @param {null | Node} controlled_anchor\n * @param {Map<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\t// TODO: ideally we could use derived for runes mode but because of the ability\n\t// to use a store which can be mutated, we can't do that here as mutating a store\n\t// will still result in the collection array being the same from the store\n\tvar each_array = derived_safe_equal(() => {\n\t\tvar collection = get_collection();\n\n\t\treturn is_array(collection) ? collection : collection == null ? [] : array_from(collection);\n\t});\n\n\tblock(() => {\n\t\tvar array = get(each_array);\n\t\tvar length = array.length;\n\n\t\tif (was_empty && length === 0) {\n\t\t\t// ignore updates if the array is empty,\n\t\t\t// and it already was empty on previous run\n\t\t\treturn;\n\t\t}\n\t\twas_empty = length === 0;\n\n\t\t/** `true` if there was a hydration mismatch. Needs to be a `let` or else it isn't treeshaken out */\n\t\tlet mismatch = false;\n\n\t\tif (hydrating) {\n\t\t\tvar is_else = /** @type {Comment} */ (anchor).data === HYDRATION_START_ELSE;\n\n\t\t\tif (is_else !== (length === 0)) {\n\t\t\t\t// hydration mismatch — remove the server-rendered DOM and start over\n\t\t\t\tanchor = remove_nodes();\n\n\t\t\t\tset_hydrate_node(anchor);\n\t\t\t\tset_hydrating(false);\n\t\t\t\tmismatch = true;\n\t\t\t}\n\t\t}\n\n\t\t// this is separate to the previous block because `hydrating` might change\n\t\tif (hydrating) {\n\t\t\t/** @type {EachItem | null} */\n\t\t\tvar prev = null;\n\n\t\t\t/** @type {EachItem} */\n\t\t\tvar item;\n\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tif (\n\t\t\t\t\thydrate_node.nodeType === 8 &&\n\t\t\t\t\t/** @type {Comment} */ (hydrate_node).data === HYDRATION_END\n\t\t\t\t) {\n\t\t\t\t\t// The server rendered fewer items than expected,\n\t\t\t\t\t// so break out and continue appending non-hydrated items\n\t\t\t\t\tanchor = /** @type {Comment} */ (hydrate_node);\n\t\t\t\t\tmismatch = true;\n\t\t\t\t\tset_hydrating(false);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar value = array[i];\n\t\t\t\tvar key = get_key(value, i);\n\t\t\t\titem = create_item(\n\t\t\t\t\thydrate_node,\n\t\t\t\t\tstate,\n\t\t\t\t\tprev,\n\t\t\t\t\tnull,\n\t\t\t\t\tvalue,\n\t\t\t\t\tkey,\n\t\t\t\t\ti,\n\t\t\t\t\trender_fn,\n\t\t\t\t\tflags,\n\t\t\t\t\tget_collection\n\t\t\t\t);\n\t\t\t\tstate.items.set(key, item);\n\n\t\t\t\tprev = item;\n\t\t\t}\n\n\t\t\t// remove excess nodes\n\t\t\tif (length > 0) {\n\t\t\t\tset_hydrate_node(remove_nodes());\n\t\t\t}\n\t\t}\n\n\t\tif (!hydrating) {\n\t\t\treconcile(array, state, anchor, render_fn, flags, get_key, get_collection);\n\t\t}\n\n\t\tif (fallback_fn !== null) {\n\t\t\tif (length === 0) {\n\t\t\t\tif (fallback) {\n\t\t\t\t\tresume_effect(fallback);\n\t\t\t\t} else {\n\t\t\t\t\tfallback = branch(() => fallback_fn(anchor));\n\t\t\t\t}\n\t\t\t} else if (fallback !== null) {\n\t\t\t\tpause_effect(fallback, () => {\n\t\t\t\t\tfallback = null;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (mismatch) {\n\t\t\t// continue in hydration mode\n\t\t\tset_hydrating(true);\n\t\t}\n\n\t\t// When we mount the each block for the first time, the collection won't be\n\t\t// connected to this effect as the effect hasn't finished running yet and its deps\n\t\t// won't be assigned. However, it's possible that when reconciling the each block\n\t\t// that a mutation occurred and it's made the collection MAYBE_DIRTY, so reading the\n\t\t// collection again can provide consistency to the reactive graph again as the deriveds\n\t\t// will now be `CLEAN`.\n\t\tget(each_array);\n\t});\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n\n/**\n * Add, remove, or reorder items output by an each block as its input changes\n * @template V\n * @param {Array<V>} array\n * @param {EachState} state\n * @param {Element | Comment | Text} anchor\n * @param {(anchor: Node, item: MaybeSource<V>, index: number | Source<number>, collection: () => V[]) => void} render_fn\n * @param {number} flags\n * @param {(value: V, index: number) => any} get_key\n * @param {() => V[]} get_collection\n * @returns {void}\n */\nfunction reconcile(array, state, anchor, render_fn, flags, get_key, get_collection) {\n\tvar is_animated = (flags & EACH_IS_ANIMATED) !== 0;\n\tvar should_update = (flags & (EACH_ITEM_REACTIVE | EACH_INDEX_REACTIVE)) !== 0;\n\n\tvar length = array.length;\n\tvar items = state.items;\n\tvar first = state.first;\n\tvar current = first;\n\n\t/** @type {undefined | Set<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\tget_collection\n\t\t\t);\n\n\t\t\titems.set(key, prev);\n\n\t\t\tmatched = [];\n\t\t\tstashed = [];\n\n\t\t\tcurrent = prev.next;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (should_update) {\n\t\t\tupdate_item(item, value, i, flags);\n\t\t}\n\n\t\tif ((item.e.f & INERT) !== 0) {\n\t\t\tresume_effect(item.e);\n\t\t\tif (is_animated) {\n\t\t\t\titem.a?.unfix();\n\t\t\t\t(to_animate ??= new Set()).delete(item);\n\t\t\t}\n\t\t}\n\n\t\tif (item !== current) {\n\t\t\tif (seen !== undefined && seen.has(item)) {\n\t\t\t\tif (matched.length < stashed.length) {\n\t\t\t\t\t// more efficient to move later items to the front\n\t\t\t\t\tvar start = stashed[0];\n\t\t\t\t\tvar j;\n\n\t\t\t\t\tprev = start.prev;\n\n\t\t\t\t\tvar a = matched[0];\n\t\t\t\t\tvar b = matched[matched.length - 1];\n\n\t\t\t\t\tfor (j = 0; j < matched.length; j += 1) {\n\t\t\t\t\t\tmove(matched[j], start, anchor);\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (j = 0; j < stashed.length; j += 1) {\n\t\t\t\t\t\tseen.delete(stashed[j]);\n\t\t\t\t\t}\n\n\t\t\t\t\tlink(state, a.prev, b.next);\n\t\t\t\t\tlink(state, prev, a);\n\t\t\t\t\tlink(state, b, start);\n\n\t\t\t\t\tcurrent = start;\n\t\t\t\t\tprev = b;\n\t\t\t\t\ti -= 1;\n\n\t\t\t\t\tmatched = [];\n\t\t\t\t\tstashed = [];\n\t\t\t\t} else {\n\t\t\t\t\t// more efficient to move earlier items to the back\n\t\t\t\t\tseen.delete(item);\n\t\t\t\t\tmove(item, current, anchor);\n\n\t\t\t\t\tlink(state, item.prev, item.next);\n\t\t\t\t\tlink(state, item, prev === null ? state.first : prev.next);\n\t\t\t\t\tlink(state, prev, item);\n\n\t\t\t\t\tprev = item;\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tmatched = [];\n\t\t\tstashed = [];\n\n\t\t\twhile (current !== null && current.k !== key) {\n\t\t\t\t// If the each block isn't inert and an item has an effect that is already inert,\n\t\t\t\t// skip over adding it to our seen Set as the item is already being handled\n\t\t\t\tif ((current.e.f & INERT) === 0) {\n\t\t\t\t\t(seen ??= new Set()).add(current);\n\t\t\t\t}\n\t\t\t\tstashed.push(current);\n\t\t\t\tcurrent = current.next;\n\t\t\t}\n\n\t\t\tif (current === null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\titem = current;\n\t\t}\n\n\t\tmatched.push(item);\n\t\tprev = item;\n\t\tcurrent = item.next;\n\t}\n\n\tif (current !== null || seen !== undefined) {\n\t\tvar to_destroy = seen === undefined ? [] : array_from(seen);\n\n\t\twhile (current !== null) {\n\t\t\t// If the each block isn't inert, then inert effects are currently outroing and will be removed once the transition is finished\n\t\t\tif ((current.e.f & INERT) === 0) {\n\t\t\t\tto_destroy.push(current);\n\t\t\t}\n\t\t\tcurrent = current.next;\n\t\t}\n\n\t\tvar destroy_length = to_destroy.length;\n\n\t\tif (destroy_length > 0) {\n\t\t\tvar controlled_anchor = (flags & EACH_IS_CONTROLLED) !== 0 && length === 0 ? anchor : null;\n\n\t\t\tif (is_animated) {\n\t\t\t\tfor (i = 0; i < destroy_length; i += 1) {\n\t\t\t\t\tto_destroy[i].a?.measure();\n\t\t\t\t}\n\n\t\t\t\tfor (i = 0; i < destroy_length; i += 1) {\n\t\t\t\t\tto_destroy[i].a?.fix();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpause_effects(state, to_destroy, controlled_anchor, items);\n\t\t}\n\t}\n\n\tif (is_animated) {\n\t\tqueue_micro_task(() => {\n\t\t\tif (to_animate === undefined) return;\n\t\t\tfor (item of to_animate) {\n\t\t\t\titem.a?.apply();\n\t\t\t}\n\t\t});\n\t}\n\n\t/** @type {Effect} */ (active_effect).first = state.first && state.first.e;\n\t/** @type {Effect} */ (active_effect).last = prev && prev.e;\n}\n\n/**\n * @param {EachItem} item\n * @param {any} value\n * @param {number} index\n * @param {number} type\n * @returns {void}\n */\nfunction update_item(item, value, index, type) {\n\tif ((type & EACH_ITEM_REACTIVE) !== 0) {\n\t\tinternal_set(item.v, value);\n\t}\n\n\tif ((type & EACH_INDEX_REACTIVE) !== 0) {\n\t\tinternal_set(/** @type {Value<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>, collection: () => V[]) => void} render_fn\n * @param {number} flags\n * @param {() => V[]} get_collection\n * @returns {EachItem}\n */\nfunction create_item(\n\tanchor,\n\tstate,\n\tprev,\n\tnext,\n\tvalue,\n\tkey,\n\tindex,\n\trender_fn,\n\tflags,\n\tget_collection\n) {\n\tvar previous_each_item = current_each_item;\n\tvar reactive = (flags & EACH_ITEM_REACTIVE) !== 0;\n\tvar mutable = (flags & EACH_ITEM_IMMUTABLE) === 0;\n\n\tvar v = reactive ? (mutable ? mutable_source(value) : source(value)) : value;\n\tvar i = (flags & EACH_INDEX_REACTIVE) === 0 ? index : source(index);\n\n\tif (DEV && reactive) {\n\t\t// For tracing purposes, we need to link the source signal we create with the\n\t\t// collection + index so that tracing works as intended\n\t\t/** @type {Value} */ (v).debug = () => {\n\t\t\tvar collection_index = typeof i === 'number' ? index : i.v;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n\t\t\tget_collection()[collection_index];\n\t\t};\n\t}\n\n\t/** @type {EachItem} */\n\tvar item = {\n\t\ti,\n\t\tv,\n\t\tk: key,\n\t\ta: null,\n\t\t// @ts-expect-error\n\t\te: null,\n\t\tprev,\n\t\tnext\n\t};\n\n\tcurrent_each_item = item;\n\n\ttry {\n\t\titem.e = branch(() => render_fn(anchor, v, i, get_collection), hydrating);\n\n\t\titem.e.prev = prev && prev.e;\n\t\titem.e.next = next && next.e;\n\n\t\tif (prev === null) {\n\t\t\tstate.first = item;\n\t\t} else {\n\t\t\tprev.next = item;\n\t\t\tprev.e.next = item.e;\n\t\t}\n\n\t\tif (next !== null) {\n\t\t\tnext.prev = item;\n\t\t\tnext.e.prev = item.e;\n\t\t}\n\n\t\treturn item;\n\t} finally {\n\t\tcurrent_each_item = previous_each_item;\n\t}\n}\n\n/**\n * @param {EachItem} item\n * @param {EachItem | null} next\n * @param {Text | Element | Comment} anchor\n */\nfunction move(item, next, anchor) {\n\tvar end = item.next ? /** @type {TemplateNode} */ (item.next.e.nodes_start) : anchor;\n\n\tvar dest = next ? /** @type {TemplateNode} */ (next.e.nodes_start) : anchor;\n\tvar node = /** @type {TemplateNode} */ (item.e.nodes_start);\n\n\twhile (node !== end) {\n\t\tvar next_node = /** @type {TemplateNode} */ (get_next_sibling(node));\n\t\tdest.before(node);\n\t\tnode = next_node;\n\t}\n}\n\n/**\n * @param {EachState} state\n * @param {EachItem | null} prev\n * @param {EachItem | null} next\n */\nfunction link(state, prev, next) {\n\tif (prev === null) {\n\t\tstate.first = next;\n\t} else {\n\t\tprev.next = next;\n\t\tprev.e.next = next && next.e;\n\t}\n\n\tif (next !== null) {\n\t\tnext.prev = prev;\n\t\tnext.e.prev = prev && prev.e;\n\t}\n}\n","/** @import { Effect, TemplateNode } from '#client' */\nimport { FILENAME, HYDRATION_ERROR } from '../../../../constants.js';\nimport { block, branch, destroy_effect } from '../../reactivity/effects.js';\nimport { hydrate_next, hydrate_node, hydrating, set_hydrate_node } from '../hydration.js';\nimport { create_fragment_from_html } from '../reconciler.js';\nimport { assign_nodes } from '../template.js';\nimport * as w from '../../warnings.js';\nimport { hash, sanitize_location } from '../../../../utils.js';\nimport { DEV } from 'esm-env';\nimport { dev_current_component_function } from '../../context.js';\nimport { get_first_child, get_next_sibling } from '../operations.js';\n\n/**\n * @param {Element} element\n * @param {string | null} server_hash\n * @param {string} value\n */\nfunction check_hash(element, server_hash, value) {\n\tif (!server_hash || server_hash === hash(String(value ?? ''))) return;\n\n\tlet location;\n\n\t// @ts-expect-error\n\tconst loc = element.__svelte_meta?.loc;\n\tif (loc) {\n\t\tlocation = `near ${loc.file}:${loc.line}:${loc.column}`;\n\t} else if (dev_current_component_function?.[FILENAME]) {\n\t\tlocation = `in ${dev_current_component_function[FILENAME]}`;\n\t}\n\n\tw.hydration_html_changed(sanitize_location(location));\n}\n\n/**\n * @param {Element | Text | Comment} node\n * @param {() => string} get_value\n * @param {boolean} svg\n * @param {boolean} mathml\n * @param {boolean} [skip_warning]\n * @returns {void}\n */\nexport function html(node, get_value, svg, mathml, skip_warning) {\n\tvar anchor = node;\n\n\tvar value = '';\n\n\t/** @type {Effect | undefined} */\n\tvar effect;\n\n\tblock(() => {\n\t\tif (value === (value = get_value() ?? '')) {\n\t\t\tif (hydrating) {\n\t\t\t\thydrate_next();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (effect !== undefined) {\n\t\t\tdestroy_effect(effect);\n\t\t\teffect = undefined;\n\t\t}\n\n\t\tif (value === '') return;\n\n\t\teffect = branch(() => {\n\t\t\tif (hydrating) {\n\t\t\t\t// We're deliberately not trying to repair mismatches between server and client,\n\t\t\t\t// as it's costly and error-prone (and it's an edge case to have a mismatch anyway)\n\t\t\t\tvar hash = /** @type {Comment} */ (hydrate_node).data;\n\t\t\t\tvar next = hydrate_next();\n\t\t\t\tvar last = next;\n\n\t\t\t\twhile (\n\t\t\t\t\tnext !== null &&\n\t\t\t\t\t(next.nodeType !== 8 || /** @type {Comment} */ (next).data !== '')\n\t\t\t\t) {\n\t\t\t\t\tlast = next;\n\t\t\t\t\tnext = /** @type {TemplateNode} */ (get_next_sibling(next));\n\t\t\t\t}\n\n\t\t\t\tif (next === null) {\n\t\t\t\t\tw.hydration_mismatch();\n\t\t\t\t\tthrow HYDRATION_ERROR;\n\t\t\t\t}\n\n\t\t\t\tif (DEV && !skip_warning) {\n\t\t\t\t\tcheck_hash(/** @type {Element} */ (next.parentNode), hash, value);\n\t\t\t\t}\n\n\t\t\t\tassign_nodes(hydrate_node, last);\n\t\t\t\tanchor = set_hydrate_node(next);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar html = value + '';\n\t\t\tif (svg) html = `<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 { hydrate_next, hydrating } from '../hydration.js';\n\n/**\n * @param {Comment} anchor\n * @param {Record<string, any>} $$props\n * @param {string} name\n * @param {Record<string, unknown>} slot_props\n * @param {null | ((anchor: Comment) => void)} fallback_fn\n */\nexport function slot(anchor, $$props, name, slot_props, fallback_fn) {\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar slot_fn = $$props.$$slots?.[name];\n\t// Interop: Can use snippets to fill slots\n\tvar is_interop = false;\n\tif (slot_fn === true) {\n\t\tslot_fn = $$props[name === 'default' ? 'children' : name];\n\t\tis_interop = true;\n\t}\n\n\tif (slot_fn === undefined) {\n\t\tif (fallback_fn !== null) {\n\t\t\tfallback_fn(anchor);\n\t\t}\n\t} else {\n\t\tslot_fn(anchor, is_interop ? () => slot_props : slot_props);\n\t}\n}\n\n/**\n * @param {Record<string, any>} props\n * @returns {Record<string, boolean>}\n */\nexport function sanitize_slots(props) {\n\t/** @type {Record<string, boolean>} */\n\tconst sanitized = {};\n\tif (props.children) sanitized.default = true;\n\tfor (const key in props.$$slots) {\n\t\tsanitized[key] = true;\n\t}\n\treturn sanitized;\n}\n","/** @import { Snippet } from 'svelte' */\n/** @import { Effect, TemplateNode } from '#client' */\n/** @import { Getters } from '#shared' */\nimport { EFFECT_TRANSPARENT } from '../../constants.js';\nimport { branch, block, destroy_effect, teardown } from '../../reactivity/effects.js';\nimport {\n\tdev_current_component_function,\n\tset_dev_current_component_function\n} from '../../context.js';\nimport { hydrate_next, hydrate_node, hydrating } from '../hydration.js';\nimport { create_fragment_from_html } from '../reconciler.js';\nimport { assign_nodes } from '../template.js';\nimport * as w from '../../warnings.js';\nimport * as e from '../../errors.js';\nimport { DEV } from 'esm-env';\nimport { get_first_child, get_next_sibling } from '../operations.js';\nimport { noop } from '../../../shared/utils.js';\n\n/**\n * @template {(node: TemplateNode, ...args: any[]) => void} SnippetFn\n * @param {TemplateNode} node\n * @param {() => SnippetFn | null | undefined} get_snippet\n * @param {(() => any)[]} args\n * @returns {void}\n */\nexport function snippet(node, get_snippet, ...args) {\n\tvar anchor = node;\n\n\t/** @type {SnippetFn | null | undefined} */\n\t// @ts-ignore\n\tvar snippet = noop;\n\n\t/** @type {Effect | null} */\n\tvar snippet_effect;\n\n\tblock(() => {\n\t\tif (snippet === (snippet = get_snippet())) return;\n\n\t\tif (snippet_effect) {\n\t\t\tdestroy_effect(snippet_effect);\n\t\t\tsnippet_effect = null;\n\t\t}\n\n\t\tif (DEV && snippet == null) {\n\t\t\te.invalid_snippet();\n\t\t}\n\n\t\tsnippet_effect = branch(() => /** @type {SnippetFn} */ (snippet)(anchor, ...args));\n\t}, EFFECT_TRANSPARENT);\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n\n/**\n * In development, wrap the snippet function so that it passes validation, and so that the\n * correct component context is set for ownership checks\n * @param {any} component\n * @param {(node: TemplateNode, ...args: any[]) => void} fn\n */\nexport function wrap_snippet(component, fn) {\n\treturn (/** @type {TemplateNode} */ node, /** @type {any[]} */ ...args) => {\n\t\tvar previous_component_function = dev_current_component_function;\n\t\tset_dev_current_component_function(component);\n\n\t\ttry {\n\t\t\treturn fn(node, ...args);\n\t\t} finally {\n\t\t\tset_dev_current_component_function(previous_component_function);\n\t\t}\n\t};\n}\n\n/**\n * Create a snippet programmatically\n * @template {unknown[]} Params\n * @param {(...params: Getters<Params>) => {\n * render: () => string\n * setup?: (element: Element) => void | (() => void)\n * }} fn\n * @returns {Snippet<Params>}\n */\nexport function createRawSnippet(fn) {\n\t// @ts-expect-error the types are a lie\n\treturn (/** @type {TemplateNode} */ anchor, /** @type {Getters<Params>} */ ...params) => {\n\t\tvar snippet = fn(...params);\n\n\t\t/** @type {Element} */\n\t\tvar element;\n\n\t\tif (hydrating) {\n\t\t\telement = /** @type {Element} */ (hydrate_node);\n\t\t\thydrate_next();\n\t\t} else {\n\t\t\tvar html = snippet.render().trim();\n\t\t\tvar fragment = create_fragment_from_html(html);\n\t\t\telement = /** @type {Element} */ (get_first_child(fragment));\n\n\t\t\tif (DEV && (get_next_sibling(element) !== null || element.nodeType !== 1)) {\n\t\t\t\tw.invalid_raw_snippet_render();\n\t\t\t}\n\n\t\t\tanchor.before(element);\n\t\t}\n\n\t\tconst result = snippet.setup?.(element);\n\t\tassign_nodes(element, element);\n\n\t\tif (typeof result === 'function') {\n\t\t\tteardown(result);\n\t\t}\n\t};\n}\n","/** @import { Effect, TemplateNode } from '#client' */\nimport { FILENAME, NAMESPACE_SVG } from '../../../../constants.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport { create_text, get_first_child } from '../operations.js';\nimport {\n\tblock,\n\tbranch,\n\tdestroy_effect,\n\tpause_effect,\n\tresume_effect\n} from '../../reactivity/effects.js';\nimport { set_should_intro } from '../../render.js';\nimport { current_each_item, set_current_each_item } from './each.js';\nimport { active_effect } from '../../runtime.js';\nimport { component_context } from '../../context.js';\nimport { DEV } from 'esm-env';\nimport { EFFECT_TRANSPARENT } from '../../constants.js';\nimport { assign_nodes } from '../template.js';\nimport { is_raw_text_element } from '../../../../utils.js';\n\n/**\n * @param {Comment | Element} node\n * @param {() => string} get_tag\n * @param {boolean} is_svg\n * @param {undefined | ((element: Element, anchor: Node | null) => void)} render_fn,\n * @param {undefined | (() => string)} get_namespace\n * @param {undefined | [number, number]} location\n * @returns {void}\n */\nexport function element(node, get_tag, is_svg, render_fn, get_namespace, location) {\n\tlet was_hydrating = hydrating;\n\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar filename = DEV && location && component_context?.function[FILENAME];\n\n\t/** @type {string | null} */\n\tvar tag;\n\n\t/** @type {string | null} */\n\tvar current_tag;\n\n\t/** @type {null | Element} */\n\tvar element = null;\n\n\tif (hydrating && hydrate_node.nodeType === 1) {\n\t\telement = /** @type {Element} */ (hydrate_node);\n\t\thydrate_next();\n\t}\n\n\tvar anchor = /** @type {TemplateNode} */ (hydrating ? hydrate_node : node);\n\n\t/** @type {Effect | null} */\n\tvar effect;\n\n\t/**\n\t * The keyed `{#each ...}` item block, if any, that this element is inside.\n\t * We track this so we can set it when changing the element, allowing any\n\t * `animate:` directive to bind itself to the correct block\n\t */\n\tvar each_item_block = current_each_item;\n\n\tblock(() => {\n\t\tconst next_tag = get_tag() || null;\n\t\tvar ns = get_namespace ? get_namespace() : is_svg || next_tag === 'svg' ? NAMESPACE_SVG : null;\n\n\t\t// Assumption: Noone changes the namespace but not the tag (what would that even mean?)\n\t\tif (next_tag === tag) return;\n\n\t\t// See explanation of `each_item_block` above\n\t\tvar previous_each_item = current_each_item;\n\t\tset_current_each_item(each_item_block);\n\n\t\tif (effect) {\n\t\t\tif (next_tag === null) {\n\t\t\t\t// start outro\n\t\t\t\tpause_effect(effect, () => {\n\t\t\t\t\teffect = null;\n\t\t\t\t\tcurrent_tag = null;\n\t\t\t\t});\n\t\t\t} else if (next_tag === current_tag) {\n\t\t\t\t// same tag as is currently rendered — abort outro\n\t\t\t\tresume_effect(effect);\n\t\t\t} else {\n\t\t\t\t// tag is changing — destroy immediately, render contents without intro transitions\n\t\t\t\tdestroy_effect(effect);\n\t\t\t\tset_should_intro(false);\n\t\t\t}\n\t\t}\n\n\t\tif (next_tag && next_tag !== current_tag) {\n\t\t\teffect = branch(() => {\n\t\t\t\telement = hydrating\n\t\t\t\t\t? /** @type {Element} */ (element)\n\t\t\t\t\t: ns\n\t\t\t\t\t\t? document.createElementNS(ns, next_tag)\n\t\t\t\t\t\t: document.createElement(next_tag);\n\n\t\t\t\tif (DEV && location) {\n\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\telement.__svelte_meta = {\n\t\t\t\t\t\tloc: {\n\t\t\t\t\t\t\tfile: filename,\n\t\t\t\t\t\t\tline: location[0],\n\t\t\t\t\t\t\tcolumn: location[1]\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tassign_nodes(element, element);\n\n\t\t\t\tif (render_fn) {\n\t\t\t\t\tif (hydrating && is_raw_text_element(next_tag)) {\n\t\t\t\t\t\t// prevent hydration glitches\n\t\t\t\t\t\telement.append(document.createComment(''));\n\t\t\t\t\t}\n\n\t\t\t\t\t// If hydrating, use the existing ssr comment as the anchor so that the\n\t\t\t\t\t// inner open and close methods can pick up the existing nodes correctly\n\t\t\t\t\tvar child_anchor = /** @type {TemplateNode} */ (\n\t\t\t\t\t\thydrating ? get_first_child(element) : element.appendChild(create_text())\n\t\t\t\t\t);\n\n\t\t\t\t\tif (hydrating) {\n\t\t\t\t\t\tif (child_anchor === null) {\n\t\t\t\t\t\t\tset_hydrating(false);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tset_hydrate_node(child_anchor);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// `child_anchor` is undefined if this is a void element, but we still\n\t\t\t\t\t// need to call `render_fn` in order to run actions etc. If the element\n\t\t\t\t\t// contains children, it's a user error (which is warned on elsewhere)\n\t\t\t\t\t// and the DOM will be silently discarded\n\t\t\t\t\trender_fn(element, child_anchor);\n\t\t\t\t}\n\n\t\t\t\t// we do this after calling `render_fn` so that child effects don't override `nodes.end`\n\t\t\t\t/** @type {Effect} */ (active_effect).nodes_end = element;\n\n\t\t\t\tanchor.before(element);\n\t\t\t});\n\t\t}\n\n\t\ttag = next_tag;\n\t\tif (tag) current_tag = tag;\n\t\tset_should_intro(true);\n\n\t\tset_current_each_item(previous_each_item);\n\t}, EFFECT_TRANSPARENT);\n\n\tif (was_hydrating) {\n\t\tset_hydrating(true);\n\t\tset_hydrate_node(anchor);\n\t}\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { escape_html } from '../../escaping.js';\nimport { clsx as _clsx } from 'clsx';\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)) return '';\n\tconst normalized = (name in replacements && replacements[name].get(value)) || value;\n\tconst assignment = is_boolean ? '' : `=\"${escape_html(normalized, true)}\"`;\n\treturn ` ${name}${assignment}`;\n}\n\n/**\n * Small wrapper around clsx to preserve Svelte's (weird) handling of falsy values.\n * TODO Svelte 6 revisit this, and likely turn all falsy values into the empty string (what clsx also does)\n * @param {any} value\n */\nexport function clsx(value) {\n\tif (typeof value === 'object') {\n\t\treturn _clsx(value);\n\t} else {\n\t\treturn value ?? '';\n\t}\n}\n\nconst whitespace = [...' \\t\\n\\r\\f\\u00a0\\u000b\\ufeff'];\n\n/**\n * @param {any} value\n * @param {string | null} [hash]\n * @param {Record<string, boolean>} [directives]\n * @returns {string | null}\n */\nexport function to_class(value, hash, directives) {\n\tvar classname = value == null ? '' : '' + value;\n\n\tif (hash) {\n\t\tclassname = classname ? classname + ' ' + hash : hash;\n\t}\n\n\tif (directives) {\n\t\tfor (var key in directives) {\n\t\t\tif (directives[key]) {\n\t\t\t\tclassname = classname ? classname + ' ' + key : key;\n\t\t\t} else if (classname.length) {\n\t\t\t\tvar len = key.length;\n\t\t\t\tvar a = 0;\n\n\t\t\t\twhile ((a = classname.indexOf(key, a)) >= 0) {\n\t\t\t\t\tvar b = a + len;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t(a === 0 || whitespace.includes(classname[a - 1])) &&\n\t\t\t\t\t\t(b === classname.length || whitespace.includes(classname[b]))\n\t\t\t\t\t) {\n\t\t\t\t\t\tclassname = (a === 0 ? '' : classname.substring(0, a)) + classname.substring(b + 1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ta = b;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn classname === '' ? null : classname;\n}\n\n/**\n *\n * @param {Record<string,any>} styles\n * @param {boolean} important\n */\nfunction append_styles(styles, important = false) {\n\tvar separator = important ? ' !important;' : ';';\n\tvar css = '';\n\n\tfor (var key in styles) {\n\t\tvar value = styles[key];\n\t\tif (value != null && value !== '') {\n\t\t\tcss += ' ' + key + ': ' + value + separator;\n\t\t}\n\t}\n\n\treturn css;\n}\n\n/**\n * @param {string} name\n * @returns {string}\n */\nfunction to_css_name(name) {\n\tif (name[0] !== '-' || name[1] !== '-') {\n\t\treturn name.toLowerCase();\n\t}\n\treturn name;\n}\n\n/**\n * @param {any} value\n * @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [styles]\n * @returns {string | null}\n */\nexport function to_style(value, styles) {\n\tif (styles) {\n\t\tvar new_style = '';\n\n\t\t/** @type {Record<string,any> | undefined} */\n\t\tvar normal_styles;\n\n\t\t/** @type {Record<string,any> | undefined} */\n\t\tvar important_styles;\n\n\t\tif (Array.isArray(styles)) {\n\t\t\tnormal_styles = styles[0];\n\t\t\timportant_styles = styles[1];\n\t\t} else {\n\t\t\tnormal_styles = styles;\n\t\t}\n\n\t\tif (value) {\n\t\t\tvalue = String(value)\n\t\t\t\t.replaceAll(/\\s*\\/\\*.*?\\*\\/\\s*/g, '')\n\t\t\t\t.trim();\n\n\t\t\t/** @type {boolean | '\"' | \"'\"} */\n\t\t\tvar in_str = false;\n\t\t\tvar in_apo = 0;\n\t\t\tvar in_comment = false;\n\n\t\t\tvar reserved_names = [];\n\n\t\t\tif (normal_styles) {\n\t\t\t\treserved_names.push(...Object.keys(normal_styles).map(to_css_name));\n\t\t\t}\n\t\t\tif (important_styles) {\n\t\t\t\treserved_names.push(...Object.keys(important_styles).map(to_css_name));\n\t\t\t}\n\n\t\t\tvar start_index = 0;\n\t\t\tvar name_index = -1;\n\n\t\t\tconst len = value.length;\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\tvar c = value[i];\n\n\t\t\t\tif (in_comment) {\n\t\t\t\t\tif (c === '/' && value[i - 1] === '*') {\n\t\t\t\t\t\tin_comment = false;\n\t\t\t\t\t}\n\t\t\t\t} else if (in_str) {\n\t\t\t\t\tif (in_str === c) {\n\t\t\t\t\t\tin_str = false;\n\t\t\t\t\t}\n\t\t\t\t} else if (c === '/' && value[i + 1] === '*') {\n\t\t\t\t\tin_comment = true;\n\t\t\t\t} else if (c === '\"' || c === \"'\") {\n\t\t\t\t\tin_str = c;\n\t\t\t\t} else if (c === '(') {\n\t\t\t\t\tin_apo++;\n\t\t\t\t} else if (c === ')') {\n\t\t\t\t\tin_apo--;\n\t\t\t\t}\n\n\t\t\t\tif (!in_comment && in_str === false && in_apo === 0) {\n\t\t\t\t\tif (c === ':' && name_index === -1) {\n\t\t\t\t\t\tname_index = i;\n\t\t\t\t\t} else if (c === ';' || i === len - 1) {\n\t\t\t\t\t\tif (name_index !== -1) {\n\t\t\t\t\t\t\tvar name = to_css_name(value.substring(start_index, name_index).trim());\n\n\t\t\t\t\t\t\tif (!reserved_names.includes(name)) {\n\t\t\t\t\t\t\t\tif (c !== ';') {\n\t\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvar property = value.substring(start_index, i).trim();\n\t\t\t\t\t\t\t\tnew_style += ' ' + property + ';';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart_index = i + 1;\n\t\t\t\t\t\tname_index = -1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (normal_styles) {\n\t\t\tnew_style += append_styles(normal_styles);\n\t\t}\n\n\t\tif (important_styles) {\n\t\t\tnew_style += append_styles(important_styles, true);\n\t\t}\n\n\t\tnew_style = new_style.trim();\n\t\treturn new_style === '' ? null : new_style;\n\t}\n\n\treturn value == null ? null : String(value);\n}\n","import { to_class } from '../../../shared/attributes.js';\nimport { hydrating } from '../hydration.js';\n\n/**\n * @param {Element} dom\n * @param {boolean | number} is_html\n * @param {string | null} value\n * @param {string} [hash]\n * @param {Record<string, any>} [prev_classes]\n * @param {Record<string, any>} [next_classes]\n * @returns {Record<string, boolean> | undefined}\n */\nexport function set_class(dom, is_html, value, hash, prev_classes, next_classes) {\n\t// @ts-expect-error need to add __className to patched prototype\n\tvar prev = dom.__className;\n\n\tif (\n\t\thydrating ||\n\t\tprev !== value ||\n\t\tprev === undefined // for edge case of `class={undefined}`\n\t) {\n\t\tvar next_class_name = to_class(value, hash, next_classes);\n\n\t\tif (!hydrating || next_class_name !== dom.getAttribute('class')) {\n\t\t\t// Removing the attribute when the value is only an empty string causes\n\t\t\t// performance issues vs simply making the className an empty string. So\n\t\t\t// we should only remove the class if the the value is nullish\n\t\t\t// and there no hash/directives :\n\t\t\tif (next_class_name == null) {\n\t\t\t\tdom.removeAttribute('class');\n\t\t\t} else if (is_html) {\n\t\t\t\tdom.className = next_class_name;\n\t\t\t} else {\n\t\t\t\tdom.setAttribute('class', next_class_name);\n\t\t\t}\n\t\t}\n\n\t\t// @ts-expect-error need to add __className to patched prototype\n\t\tdom.__className = value;\n\t} else if (next_classes && prev_classes !== next_classes) {\n\t\tfor (var key in next_classes) {\n\t\t\tvar is_present = !!next_classes[key];\n\n\t\t\tif (prev_classes == null || is_present !== !!prev_classes[key]) {\n\t\t\t\tdom.classList.toggle(key, is_present);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn next_classes;\n}\n","import { to_style } from '../../../shared/attributes.js';\nimport { hydrating } from '../hydration.js';\n\n/**\n * @param {Element & ElementCSSInlineStyle} dom\n * @param {Record<string, any>} prev\n * @param {Record<string, any>} next\n * @param {string} [priority]\n */\nfunction update_styles(dom, prev = {}, next, priority) {\n\tfor (var key in next) {\n\t\tvar value = next[key];\n\n\t\tif (prev[key] !== value) {\n\t\t\tif (next[key] == null) {\n\t\t\t\tdom.style.removeProperty(key);\n\t\t\t} else {\n\t\t\t\tdom.style.setProperty(key, value, priority);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @param {Element & ElementCSSInlineStyle} dom\n * @param {string | null} value\n * @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [prev_styles]\n * @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [next_styles]\n */\nexport function set_style(dom, value, prev_styles, next_styles) {\n\t// @ts-expect-error\n\tvar prev = dom.__style;\n\n\tif (hydrating || prev !== value) {\n\t\tvar next_style_attr = to_style(value, next_styles);\n\n\t\tif (!hydrating || next_style_attr !== dom.getAttribute('style')) {\n\t\t\tif (next_style_attr == null) {\n\t\t\t\tdom.removeAttribute('style');\n\t\t\t} else {\n\t\t\t\tdom.style.cssText = next_style_attr;\n\t\t\t}\n\t\t}\n\n\t\t// @ts-expect-error\n\t\tdom.__style = value;\n\t} else if (next_styles) {\n\t\tif (Array.isArray(next_styles)) {\n\t\t\tupdate_styles(dom, prev_styles?.[0], next_styles[0]);\n\t\t\tupdate_styles(dom, prev_styles?.[1], next_styles[1], 'important');\n\t\t} else {\n\t\t\tupdate_styles(dom, prev_styles, next_styles);\n\t\t}\n\t}\n\n\treturn next_styles;\n}\n","import { DEV } from 'esm-env';\nimport { hydrating, set_hydrating } from '../hydration.js';\nimport { get_descriptors, get_prototype_of } from '../../../shared/utils.js';\nimport { create_event, delegate } from './events.js';\nimport { add_form_reset_listener, autofocus } from './misc.js';\nimport * as w from '../../warnings.js';\nimport { LOADING_ATTR_SYMBOL } from '../../constants.js';\nimport { queue_idle_task } from '../task.js';\nimport { is_capture_event, is_delegated, normalize_attribute } from '../../../../utils.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tset_active_effect,\n\tset_active_reaction\n} from '../../runtime.js';\nimport { clsx } from '../../../shared/attributes.js';\nimport { set_class } from './class.js';\nimport { set_style } from './style.js';\nimport { NAMESPACE_HTML } from '../../../../constants.js';\n\nexport const CLASS = Symbol('class');\nexport const STYLE = Symbol('style');\n\nconst IS_CUSTOM_ELEMENT = Symbol('is custom element');\nconst IS_HTML = Symbol('is html');\n\n/**\n * The value/checked attribute in the template actually corresponds to the defaultValue property, so we need\n * to remove it upon hydration to avoid a bug when someone resets the form value.\n * @param {HTMLInputElement} input\n * @returns {void}\n */\nexport function remove_input_defaults(input) {\n\tif (!hydrating) return;\n\n\tvar already_removed = false;\n\n\t// We try and remove the default attributes later, rather than sync during hydration.\n\t// Doing it sync during hydration has a negative impact on performance, but deferring the\n\t// work in an idle task alleviates this greatly. If a form reset event comes in before\n\t// the idle callback, then we ensure the input defaults are cleared just before.\n\tvar remove_defaults = () => {\n\t\tif (already_removed) return;\n\t\talready_removed = true;\n\n\t\t// Remove the attributes but preserve the values\n\t\tif (input.hasAttribute('value')) {\n\t\t\tvar value = input.value;\n\t\t\tset_attribute(input, 'value', null);\n\t\t\tinput.value = value;\n\t\t}\n\n\t\tif (input.hasAttribute('checked')) {\n\t\t\tvar checked = input.checked;\n\t\t\tset_attribute(input, 'checked', null);\n\t\t\tinput.checked = checked;\n\t\t}\n\t};\n\n\t// @ts-expect-error\n\tinput.__on_r = remove_defaults;\n\tqueue_idle_task(remove_defaults);\n\tadd_form_reset_listener();\n}\n\n/**\n * @param {Element} element\n * @param {any} value\n */\nexport function set_value(element, value) {\n\tvar attributes = get_attributes(element);\n\n\tif (\n\t\tattributes.value ===\n\t\t\t(attributes.value =\n\t\t\t\t// treat null and undefined the same for the initial value\n\t\t\t\tvalue ?? undefined) ||\n\t\t// @ts-expect-error\n\t\t// `progress` elements always need their value set when it's `0`\n\t\t(element.value === value && (value !== 0 || element.nodeName !== 'PROGRESS'))\n\t) {\n\t\treturn;\n\t}\n\n\t// @ts-expect-error\n\telement.value = value ?? '';\n}\n\n/**\n * @param {Element} element\n * @param {boolean} checked\n */\nexport function set_checked(element, checked) {\n\tvar attributes = get_attributes(element);\n\n\tif (\n\t\tattributes.checked ===\n\t\t(attributes.checked =\n\t\t\t// treat null and undefined the same for the initial value\n\t\t\tchecked ?? undefined)\n\t) {\n\t\treturn;\n\t}\n\n\t// @ts-expect-error\n\telement.checked = checked;\n}\n\n/**\n * Sets the `selected` attribute on an `option` element.\n * Not set through the property because that doesn't reflect to the DOM,\n * which means it wouldn't be taken into account when a form is reset.\n * @param {HTMLOptionElement} element\n * @param {boolean} selected\n */\nexport function set_selected(element, selected) {\n\tif (selected) {\n\t\t// The selected option could've changed via user selection, and\n\t\t// setting the value without this check would set it back.\n\t\tif (!element.hasAttribute('selected')) {\n\t\t\telement.setAttribute('selected', '');\n\t\t}\n\t} else {\n\t\telement.removeAttribute('selected');\n\t}\n}\n\n/**\n * Applies the default checked property without influencing the current checked property.\n * @param {HTMLInputElement} element\n * @param {boolean} checked\n */\nexport function set_default_checked(element, checked) {\n\tconst existing_value = element.checked;\n\telement.defaultChecked = checked;\n\telement.checked = existing_value;\n}\n\n/**\n * Applies the default value property without influencing the current value property.\n * @param {HTMLInputElement | HTMLTextAreaElement} element\n * @param {string} value\n */\nexport function set_default_value(element, value) {\n\tconst existing_value = element.value;\n\telement.defaultValue = value;\n\telement.value = existing_value;\n}\n\n/**\n * @param {Element} element\n * @param {string} attribute\n * @param {string | null} value\n * @param {boolean} [skip_warning]\n */\nexport function set_attribute(element, attribute, value, skip_warning) {\n\tvar attributes = get_attributes(element);\n\n\tif (hydrating) {\n\t\tattributes[attribute] = element.getAttribute(attribute);\n\n\t\tif (\n\t\t\tattribute === 'src' ||\n\t\t\tattribute === 'srcset' ||\n\t\t\t(attribute === 'href' && element.nodeName === 'LINK')\n\t\t) {\n\t\t\tif (!skip_warning) {\n\t\t\t\tcheck_src_in_dev_hydration(element, attribute, value ?? '');\n\t\t\t}\n\n\t\t\t// If we reset these attributes, they would result in another network request, which we want to avoid.\n\t\t\t// We assume they are the same between client and server as checking if they are equal is expensive\n\t\t\t// (we can't just compare the strings as they can be different between client and server but result in the\n\t\t\t// same url, so we would need to create hidden anchor elements to compare them)\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (attributes[attribute] === (attributes[attribute] = value)) return;\n\n\tif (attribute === 'loading') {\n\t\t// @ts-expect-error\n\t\telement[LOADING_ATTR_SYMBOL] = value;\n\t}\n\n\tif (value == null) {\n\t\telement.removeAttribute(attribute);\n\t} else if (typeof value !== 'string' && get_setters(element).includes(attribute)) {\n\t\t// @ts-ignore\n\t\telement[attribute] = value;\n\t} else {\n\t\telement.setAttribute(attribute, value);\n\t}\n}\n\n/**\n * @param {Element} dom\n * @param {string} attribute\n * @param {string} value\n */\nexport function set_xlink_attribute(dom, attribute, value) {\n\tdom.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\n\n/**\n * @param {HTMLElement} node\n * @param {string} prop\n * @param {any} value\n */\nexport function set_custom_element_data(node, prop, value) {\n\t// We need to ensure that setting custom element props, which can\n\t// invoke lifecycle methods on other custom elements, does not also\n\t// associate those lifecycle methods with the current active reaction\n\t// or effect\n\tvar previous_reaction = active_reaction;\n\tvar previous_effect = active_effect;\n\n\t// If we're hydrating but the custom element is from Svelte, and it already scaffolded,\n\t// then it might run block logic in hydration mode, which we have to prevent.\n\tlet was_hydrating = hydrating;\n\tif (hydrating) {\n\t\tset_hydrating(false);\n\t}\n\n\tset_active_reaction(null);\n\tset_active_effect(null);\n\n\ttry {\n\t\tif (\n\t\t\t// `style` should use `set_attribute` rather than the setter\n\t\t\tprop !== 'style' &&\n\t\t\t// Don't compute setters for custom elements while they aren't registered yet,\n\t\t\t// because during their upgrade/instantiation they might add more setters.\n\t\t\t// Instead, fall back to a simple \"an object, then set as property\" heuristic.\n\t\t\t(setters_cache.has(node.nodeName) ||\n\t\t\t// customElements may not be available in browser extension contexts\n\t\t\t!customElements ||\n\t\t\tcustomElements.get(node.tagName.toLowerCase())\n\t\t\t\t? get_setters(node).includes(prop)\n\t\t\t\t: value && typeof value === 'object')\n\t\t) {\n\t\t\t// @ts-expect-error\n\t\t\tnode[prop] = value;\n\t\t} else {\n\t\t\t// We did getters etc checks already, stringify before passing to set_attribute\n\t\t\t// to ensure it doesn't invoke the same logic again, and potentially populating\n\t\t\t// the setters cache too early.\n\t\t\tset_attribute(node, prop, value == null ? value : String(value));\n\t\t}\n\t} finally {\n\t\tset_active_reaction(previous_reaction);\n\t\tset_active_effect(previous_effect);\n\t\tif (was_hydrating) {\n\t\t\tset_hydrating(true);\n\t\t}\n\t}\n}\n\n/**\n * Spreads attributes onto a DOM element, taking into account the currently set attributes\n * @param {Element & ElementCSSInlineStyle} element\n * @param {Record<string | symbol, any> | undefined} prev\n * @param {Record<string | symbol, any>} next New attributes - this function mutates this object\n * @param {string} [css_hash]\n * @param {boolean} [skip_warning]\n * @returns {Record<string, any>}\n */\nexport function set_attributes(element, prev, next, css_hash, skip_warning = false) {\n\tvar attributes = get_attributes(element);\n\n\tvar is_custom_element = attributes[IS_CUSTOM_ELEMENT];\n\tvar preserve_attribute_case = !attributes[IS_HTML];\n\n\t// If we're hydrating but the custom element is from Svelte, and it already scaffolded,\n\t// then it might run block logic in hydration mode, which we have to prevent.\n\tlet is_hydrating_custom_element = hydrating && is_custom_element;\n\tif (is_hydrating_custom_element) {\n\t\tset_hydrating(false);\n\t}\n\n\tvar current = prev || {};\n\tvar is_option_element = element.tagName === 'OPTION';\n\n\tfor (var key in prev) {\n\t\tif (!(key in next)) {\n\t\t\tnext[key] = null;\n\t\t}\n\t}\n\n\tif (next.class) {\n\t\tnext.class = clsx(next.class);\n\t} else if (css_hash || next[CLASS]) {\n\t\tnext.class = null; /* force call to set_class() */\n\t}\n\n\tif (next[STYLE]) {\n\t\tnext.style ??= null; /* force call to set_style() */\n\t}\n\n\tvar setters = get_setters(element);\n\n\t// since key is captured we use const\n\tfor (const key in next) {\n\t\t// let instead of var because referenced in a closure\n\t\tlet value = next[key];\n\n\t\t// Up here because we want to do this for the initial value, too, even if it's undefined,\n\t\t// and this wouldn't be reached in case of undefined because of the equality check below\n\t\tif (is_option_element && key === 'value' && value == null) {\n\t\t\t// The <option> element is a special case because removing the value attribute means\n\t\t\t// the value is set to the text content of the option element, and setting the value\n\t\t\t// to null or undefined means the value is set to the string \"null\" or \"undefined\".\n\t\t\t// To align with how we handle this case in non-spread-scenarios, this logic is needed.\n\t\t\t// There's a super-edge-case bug here that is left in in favor of smaller code size:\n\t\t\t// Because of the \"set missing props to null\" logic above, we can't differentiate\n\t\t\t// between a missing value and an explicitly set value of null or undefined. That means\n\t\t\t// that once set, the value attribute of an <option> element can't be removed. This is\n\t\t\t// a very rare edge case, and removing the attribute altogether isn't possible either\n\t\t\t// for the <option value={undefined}> case, so we're not losing any functionality here.\n\t\t\t// @ts-ignore\n\t\t\telement.value = element.__value = '';\n\t\t\tcurrent[key] = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (key === 'class') {\n\t\t\tvar is_html = element.namespaceURI === 'http://www.w3.org/1999/xhtml';\n\t\t\tset_class(element, is_html, value, css_hash, prev?.[CLASS], next[CLASS]);\n\t\t\tcurrent[key] = value;\n\t\t\tcurrent[CLASS] = next[CLASS];\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (key === 'style') {\n\t\t\tset_style(element, value, prev?.[STYLE], next[STYLE]);\n\t\t\tcurrent[key] = value;\n\t\t\tcurrent[STYLE] = next[STYLE];\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar prev_value = current[key];\n\t\tif (value === prev_value) continue;\n\n\t\tcurrent[key] = value;\n\n\t\tvar prefix = key[0] + key[1]; // this is faster than key.slice(0, 2)\n\t\tif (prefix === '$$') continue;\n\n\t\tif (prefix === 'on') {\n\t\t\t/** @type {{ capture?: true }} */\n\t\t\tconst opts = {};\n\t\t\tconst event_handle_key = '$$' + key;\n\t\t\tlet event_name = key.slice(2);\n\t\t\tvar delegated = is_delegated(event_name);\n\n\t\t\tif (is_capture_event(event_name)) {\n\t\t\t\tevent_name = event_name.slice(0, -7);\n\t\t\t\topts.capture = true;\n\t\t\t}\n\n\t\t\tif (!delegated && prev_value) {\n\t\t\t\t// Listening to same event but different handler -> our handle function below takes care of this\n\t\t\t\t// If we were to remove and add listeners in this case, it could happen that the event is \"swallowed\"\n\t\t\t\t// (the browser seems to not know yet that a new one exists now) and doesn't reach the handler\n\t\t\t\t// https://github.com/sveltejs/svelte/issues/11903\n\t\t\t\tif (value != null) continue;\n\n\t\t\t\telement.removeEventListener(event_name, current[event_handle_key], opts);\n\t\t\t\tcurrent[event_handle_key] = null;\n\t\t\t}\n\n\t\t\tif (value != null) {\n\t\t\t\tif (!delegated) {\n\t\t\t\t\t/**\n\t\t\t\t\t * @this {any}\n\t\t\t\t\t * @param {Event} evt\n\t\t\t\t\t */\n\t\t\t\t\tfunction handle(evt) {\n\t\t\t\t\t\tcurrent[key].call(this, evt);\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent[event_handle_key] = create_event(event_name, element, handle, opts);\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\telement[`__${event_name}`] = value;\n\t\t\t\t\tdelegate([event_name]);\n\t\t\t\t}\n\t\t\t} else if (delegated) {\n\t\t\t\t// @ts-ignore\n\t\t\t\telement[`__${event_name}`] = undefined;\n\t\t\t}\n\t\t} else if (key === 'style') {\n\t\t\t// avoid using the setter\n\t\t\tset_attribute(element, key, value);\n\t\t} else if (key === 'autofocus') {\n\t\t\tautofocus(/** @type {HTMLElement} */ (element), Boolean(value));\n\t\t} else if (!is_custom_element && (key === '__value' || (key === 'value' && value != null))) {\n\t\t\t// @ts-ignore We're not running this for custom elements because __value is actually\n\t\t\t// how Lit stores the current value on the element, and messing with that would break things.\n\t\t\telement.value = element.__value = value;\n\t\t} else if (key === 'selected' && is_option_element) {\n\t\t\tset_selected(/** @type {HTMLOptionElement} */ (element), value);\n\t\t} else {\n\t\t\tvar name = key;\n\t\t\tif (!preserve_attribute_case) {\n\t\t\t\tname = normalize_attribute(name);\n\t\t\t}\n\n\t\t\tvar is_default = name === 'defaultValue' || name === 'defaultChecked';\n\n\t\t\tif (value == null && !is_custom_element && !is_default) {\n\t\t\t\tattributes[key] = null;\n\n\t\t\t\tif (name === 'value' || name === 'checked') {\n\t\t\t\t\t// removing value/checked also removes defaultValue/defaultChecked — preserve\n\t\t\t\t\tlet input = /** @type {HTMLInputElement} */ (element);\n\t\t\t\t\tconst use_default = prev === undefined;\n\t\t\t\t\tif (name === 'value') {\n\t\t\t\t\t\tlet previous = input.defaultValue;\n\t\t\t\t\t\tinput.removeAttribute(name);\n\t\t\t\t\t\tinput.defaultValue = previous;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tinput.value = input.__value = use_default ? previous : null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet previous = input.defaultChecked;\n\t\t\t\t\t\tinput.removeAttribute(name);\n\t\t\t\t\t\tinput.defaultChecked = previous;\n\t\t\t\t\t\tinput.checked = use_default ? previous : false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\telement.removeAttribute(key);\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tis_default ||\n\t\t\t\t(setters.includes(name) && (is_custom_element || typeof value !== 'string'))\n\t\t\t) {\n\t\t\t\t// @ts-ignore\n\t\t\t\telement[name] = value;\n\t\t\t} else if (typeof value !== 'function') {\n\t\t\t\tset_attribute(element, name, value, skip_warning);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (is_hydrating_custom_element) {\n\t\tset_hydrating(true);\n\t}\n\n\treturn current;\n}\n\n/**\n *\n * @param {Element} element\n */\nfunction get_attributes(element) {\n\treturn /** @type {Record<string | symbol, unknown>} **/ (\n\t\t// @ts-expect-error\n\t\telement.__attributes ??= {\n\t\t\t[IS_CUSTOM_ELEMENT]: element.nodeName.includes('-'),\n\t\t\t[IS_HTML]: element.namespaceURI === NAMESPACE_HTML\n\t\t}\n\t);\n}\n\n/** @type {Map<string, string[]>} */\nvar setters_cache = new Map();\n\n/** @param {Element} element */\nfunction get_setters(element) {\n\tvar setters = setters_cache.get(element.nodeName);\n\tif (setters) return setters;\n\tsetters_cache.set(element.nodeName, (setters = []));\n\n\tvar descriptors;\n\tvar proto = element; // In the case of custom elements there might be setters on the instance\n\tvar element_proto = Element.prototype;\n\n\t// Stop at Element, from there on there's only unnecessary setters we're not interested in\n\t// Do not use contructor.name here as that's unreliable in some browser environments\n\twhile (element_proto !== proto) {\n\t\tdescriptors = get_descriptors(proto);\n\n\t\tfor (var key in descriptors) {\n\t\t\tif (descriptors[key].set) {\n\t\t\t\tsetters.push(key);\n\t\t\t}\n\t\t}\n\n\t\tproto = get_prototype_of(proto);\n\t}\n\n\treturn setters;\n}\n\n/**\n * @param {any} element\n * @param {string} attribute\n * @param {string} value\n */\nfunction check_src_in_dev_hydration(element, attribute, value) {\n\tif (!DEV) return;\n\tif (attribute === 'srcset' && srcset_url_equal(element, value)) return;\n\tif (src_url_equal(element.getAttribute(attribute) ?? '', value)) return;\n\n\tw.hydration_attribute_changed(\n\t\tattribute,\n\t\telement.outerHTML.replace(element.innerHTML, element.innerHTML && '...'),\n\t\tString(value)\n\t);\n}\n\n/**\n * @param {string} element_src\n * @param {string} url\n * @returns {boolean}\n */\nfunction src_url_equal(element_src, url) {\n\tif (element_src === url) return true;\n\treturn new URL(element_src, document.baseURI).href === new URL(url, document.baseURI).href;\n}\n\n/** @param {string} srcset */\nfunction split_srcset(srcset) {\n\treturn srcset.split(',').map((src) => src.trim().split(' ').filter(Boolean));\n}\n\n/**\n * @param {HTMLSourceElement | HTMLImageElement} element\n * @param {string} srcset\n * @returns {boolean}\n */\nfunction srcset_url_equal(element, srcset) {\n\tvar element_urls = split_srcset(element.srcset);\n\tvar urls = split_srcset(srcset);\n\n\treturn (\n\t\turls.length === element_urls.length &&\n\t\turls.every(\n\t\t\t([url, width], i) =>\n\t\t\t\twidth === element_urls[i][1] &&\n\t\t\t\t// We need to test both ways because Vite will create an a full URL with\n\t\t\t\t// `new URL(asset, import.meta.url).href` for the client when `base: './'`, and the\n\t\t\t\t// relative URLs inside srcset are not automatically resolved to absolute URLs by\n\t\t\t\t// browsers (in contrast to img.src). This means both SSR and DOM code could\n\t\t\t\t// contain relative or absolute URLs.\n\t\t\t\t(src_url_equal(element_urls[i][0], url) || src_url_equal(url, element_urls[i][0]))\n\t\t)\n\t);\n}\n","import { DEV } from 'esm-env';\nimport { render_effect, teardown } from '../../../reactivity/effects.js';\nimport { listen_to_event_and_reset_event } from './shared.js';\nimport * as e from '../../../errors.js';\nimport { is } from '../../../proxy.js';\nimport { queue_micro_task } from '../../task.js';\nimport { hydrating } from '../../hydration.js';\nimport { untrack } from '../../../runtime.js';\nimport { is_runes } from '../../../context.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', (is_reset) => {\n\t\tif (DEV && input.type === 'checkbox') {\n\t\t\t// TODO should this happen in prod too?\n\t\t\te.bind_invalid_checkbox_value();\n\t\t}\n\n\t\t/** @type {any} */\n\t\tvar value = is_reset ? input.defaultValue : input.value;\n\t\tvalue = is_numberlike_input(input) ? to_number(value) : value;\n\t\tset(value);\n\n\t\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\tvar start = input.selectionStart;\n\t\t\tvar end = input.selectionEnd;\n\n\t\t\t// the value is coerced on assignment\n\t\t\tinput.value = value ?? '';\n\n\t\t\t// Restore selection\n\t\t\tif (end !== null) {\n\t\t\t\tinput.selectionStart = start;\n\t\t\t\tinput.selectionEnd = Math.min(end, input.value.length);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (\n\t\t// If we are hydrating and the value has since changed,\n\t\t// then use the updated value from the input instead.\n\t\t(hydrating && input.defaultValue !== input.value) ||\n\t\t// If defaultValue is set, then value == defaultValue\n\t\t// TODO Svelte 6: remove input.value check and set to empty string?\n\t\t(untrack(get) == null && input.value)\n\t) {\n\t\tset(is_numberlike_input(input) ? to_number(input.value) : input.value);\n\t}\n\n\trender_effect(() => {\n\t\tif (DEV && input.type === 'checkbox') {\n\t\t\t// TODO should this happen in prod too?\n\t\t\te.bind_invalid_checkbox_value();\n\t\t}\n\n\t\tvar value = get();\n\n\t\tif (is_numberlike_input(input) && value === to_number(input.value)) {\n\t\t\t// handles 0 vs 00 case (see https://github.com/sveltejs/svelte/issues/9959)\n\t\t\treturn;\n\t\t}\n\n\t\tif (input.type === 'date' && !value && !input.value) {\n\t\t\t// Handles the case where a temporarily invalid date is set (while typing, for example with a leading 0 for the day)\n\t\t\t// and prevents this state from clearing the other parts of the date input (see https://github.com/sveltejs/svelte/issues/7897)\n\t\t\treturn;\n\t\t}\n\n\t\t// don't set the value of the input if it's the same to allow\n\t\t// minlength to work properly\n\t\tif (value !== input.value) {\n\t\t\t// @ts-expect-error the value is coerced on assignment\n\t\t\tinput.value = value ?? '';\n\t\t}\n\t});\n}\n\n/** @type {Set<HTMLInputElement[]>} */\nconst pending = new Set();\n\n/**\n * @param {HTMLInputElement[]} inputs\n * @param {null | [number]} group_index\n * @param {HTMLInputElement} input\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_group(inputs, group_index, input, get, set = get) {\n\tvar is_checkbox = input.getAttribute('type') === 'checkbox';\n\tvar binding_group = inputs;\n\n\t// needs to be let or related code isn't treeshaken out if it's always false\n\tlet hydration_mismatch = false;\n\n\tif (group_index !== null) {\n\t\tfor (var index of group_index) {\n\t\t\t// @ts-expect-error\n\t\t\tbinding_group = binding_group[index] ??= [];\n\t\t}\n\t}\n\n\tbinding_group.push(input);\n\n\tlisten_to_event_and_reset_event(\n\t\tinput,\n\t\t'change',\n\t\t() => {\n\t\t\t// @ts-ignore\n\t\t\tvar value = input.__value;\n\n\t\t\tif (is_checkbox) {\n\t\t\t\tvalue = get_binding_group_value(binding_group, value, input.checked);\n\t\t\t}\n\n\t\t\tset(value);\n\t\t},\n\t\t// TODO better default value handling\n\t\t() => set(is_checkbox ? [] : null)\n\t);\n\n\trender_effect(() => {\n\t\tvar value = get();\n\n\t\t// If we are hydrating and the value has since changed, then use the update value\n\t\t// from the input instead.\n\t\tif (hydrating && input.defaultChecked !== input.checked) {\n\t\t\thydration_mismatch = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (is_checkbox) {\n\t\t\tvalue = value || [];\n\t\t\t// @ts-ignore\n\t\t\tinput.checked = value.includes(input.__value);\n\t\t} else {\n\t\t\t// @ts-ignore\n\t\t\tinput.checked = is(input.__value, value);\n\t\t}\n\t});\n\n\tteardown(() => {\n\t\tvar index = binding_group.indexOf(input);\n\n\t\tif (index !== -1) {\n\t\t\tbinding_group.splice(index, 1);\n\t\t}\n\t});\n\n\tif (!pending.has(binding_group)) {\n\t\tpending.add(binding_group);\n\n\t\tqueue_micro_task(() => {\n\t\t\t// necessary to maintain binding group order in all insertion scenarios\n\t\t\tbinding_group.sort((a, b) => (a.compareDocumentPosition(b) === 4 ? -1 : 1));\n\t\t\tpending.delete(binding_group);\n\t\t});\n\t}\n\n\tqueue_micro_task(() => {\n\t\tif (hydration_mismatch) {\n\t\t\tvar value;\n\n\t\t\tif (is_checkbox) {\n\t\t\t\tvalue = get_binding_group_value(binding_group, value, input.checked);\n\t\t\t} else {\n\t\t\t\tvar hydration_input = binding_group.find((input) => input.checked);\n\t\t\t\t// @ts-ignore\n\t\t\t\tvalue = hydration_input?.__value;\n\t\t\t}\n\n\t\t\tset(value);\n\t\t}\n\t});\n}\n\n/**\n * @param {HTMLInputElement} input\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_checked(input, get, set = get) {\n\tlisten_to_event_and_reset_event(input, 'change', (is_reset) => {\n\t\tvar value = is_reset ? input.defaultChecked : input.checked;\n\t\tset(value);\n\t});\n\n\tif (\n\t\t// If we are hydrating and the value has since changed,\n\t\t// then use the update value from the input instead.\n\t\t(hydrating && input.defaultChecked !== input.checked) ||\n\t\t// If defaultChecked is set, then checked == defaultChecked\n\t\tuntrack(get) == null\n\t) {\n\t\tset(input.checked);\n\t}\n\n\trender_effect(() => {\n\t\tvar value = get();\n\t\tinput.checked = Boolean(value);\n\t});\n}\n\n/**\n * @template V\n * @param {Array<HTMLInputElement>} group\n * @param {V} __value\n * @param {boolean} checked\n * @returns {V[]}\n */\nfunction get_binding_group_value(group, __value, checked) {\n\tvar value = new Set();\n\n\tfor (var i = 0; i < group.length; i += 1) {\n\t\tif (group[i].checked) {\n\t\t\t// @ts-ignore\n\t\t\tvalue.add(group[i].__value);\n\t\t}\n\t}\n\n\tif (!checked) {\n\t\tvalue.delete(__value);\n\t}\n\n\treturn Array.from(value);\n}\n\n/**\n * @param {HTMLInputElement} input\n */\nfunction is_numberlike_input(input) {\n\tvar type = input.type;\n\treturn type === 'number' || type === 'range';\n}\n\n/**\n * @param {string} value\n */\nfunction to_number(value) {\n\treturn value === '' ? null : +value;\n}\n\n/**\n * @param {HTMLInputElement} input\n * @param {() => FileList | null} get\n * @param {(value: FileList | null) => void} set\n */\nexport function bind_files(input, get, set = get) {\n\tlisten_to_event_and_reset_event(input, 'change', () => {\n\t\tset(input.files);\n\t});\n\n\tif (\n\t\t// If we are hydrating and the value has since changed,\n\t\t// then use the updated value from the input instead.\n\t\thydrating &&\n\t\tinput.files\n\t) {\n\t\tset(input.files);\n\t}\n\n\trender_effect(() => {\n\t\tinput.files = get();\n\t});\n}\n","import { STATE_SYMBOL } from '../../../constants.js';\nimport { effect, render_effect } from '../../../reactivity/effects.js';\nimport { untrack } from '../../../runtime.js';\nimport { queue_micro_task } from '../../task.js';\n\n/**\n * @param {any} bound_value\n * @param {Element} element_or_component\n * @returns {boolean}\n */\nfunction is_bound_this(bound_value, element_or_component) {\n\treturn (\n\t\tbound_value === element_or_component || bound_value?.[STATE_SYMBOL] === element_or_component\n\t);\n}\n\n/**\n * @param {any} element_or_component\n * @param {(value: unknown, ...parts: unknown[]) => void} update\n * @param {(...parts: unknown[]) => unknown} get_value\n * @param {() => unknown[]} [get_parts] Set if the this binding is used inside an each block,\n * \t\t\t\t\t\t\t\t\t\treturns all the parts of the each block context that are used in the expression\n * @returns {void}\n */\nexport function bind_this(element_or_component = {}, update, get_value, get_parts) {\n\teffect(() => {\n\t\t/** @type {unknown[]} */\n\t\tvar old_parts;\n\n\t\t/** @type {unknown[]} */\n\t\tvar parts;\n\n\t\trender_effect(() => {\n\t\t\told_parts = parts;\n\t\t\t// We only track changes to the parts, not the value itself to avoid unnecessary reruns.\n\t\t\tparts = get_parts?.() || [];\n\n\t\t\tuntrack(() => {\n\t\t\t\tif (element_or_component !== get_value(...parts)) {\n\t\t\t\t\tupdate(element_or_component, ...parts);\n\t\t\t\t\t// If this is an effect rerun (cause: each block context changes), then nullfiy the binding at\n\t\t\t\t\t// the previous position if it isn't already taken over by a different effect.\n\t\t\t\t\tif (old_parts && is_bound_this(get_value(...old_parts), element_or_component)) {\n\t\t\t\t\t\tupdate(null, ...old_parts);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\treturn () => {\n\t\t\t// We cannot use effects in the teardown phase, we we use a microtask instead.\n\t\t\tqueue_micro_task(() => {\n\t\t\t\tif (parts && is_bound_this(get_value(...parts), element_or_component)) {\n\t\t\t\t\tupdate(null, ...parts);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t});\n\n\treturn element_or_component;\n}\n","/** @import { ComponentContextLegacy } from '#client' */\nimport { run, run_all } from '../../../shared/utils.js';\nimport { component_context } from '../../context.js';\nimport { derived } from '../../reactivity/deriveds.js';\nimport { user_pre_effect, user_effect } from '../../reactivity/effects.js';\nimport { deep_read_state, get, untrack } from '../../runtime.js';\n\n/**\n * Legacy-mode only: Call `onMount` callbacks and set up `beforeUpdate`/`afterUpdate` effects\n * @param {boolean} [immutable]\n */\nexport function init(immutable = false) {\n\tconst context = /** @type {ComponentContextLegacy} */ (component_context);\n\n\tconst callbacks = context.l.u;\n\tif (!callbacks) return;\n\n\tlet props = () => deep_read_state(context.s);\n\n\tif (immutable) {\n\t\tlet version = 0;\n\t\tlet prev = /** @type {Record<string, any>} */ ({});\n\n\t\t// In legacy immutable mode, before/afterUpdate only fire if the object identity of a prop changes\n\t\tconst d = derived(() => {\n\t\t\tlet changed = false;\n\t\t\tconst props = context.s;\n\t\t\tfor (const key in props) {\n\t\t\t\tif (props[key] !== prev[key]) {\n\t\t\t\t\tprev[key] = props[key];\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (changed) version++;\n\t\t\treturn version;\n\t\t});\n\n\t\tprops = () => get(d);\n\t}\n\n\t// beforeUpdate\n\tif (callbacks.b.length) {\n\t\tuser_pre_effect(() => {\n\t\t\tobserve_all(context, props);\n\t\t\trun_all(callbacks.b);\n\t\t});\n\t}\n\n\t// onMount (must run before afterUpdate)\n\tuser_effect(() => {\n\t\tconst fns = untrack(() => callbacks.m.map(run));\n\t\treturn () => {\n\t\t\tfor (const fn of fns) {\n\t\t\t\tif (typeof fn === 'function') {\n\t\t\t\t\tfn();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n\n\t// afterUpdate\n\tif (callbacks.a.length) {\n\t\tuser_effect(() => {\n\t\t\tobserve_all(context, props);\n\t\t\trun_all(callbacks.a);\n\t\t});\n\t}\n}\n\n/**\n * Invoke the getter of all signals associated with a component\n * so they can be registered to the effect this function is called in.\n * @param {ComponentContextLegacy} context\n * @param {(() => void)} props\n */\nfunction observe_all(context, props) {\n\tif (context.l.s) {\n\t\tfor (const signal of context.l.s) get(signal);\n\t}\n\n\tprops();\n}\n","/** @import { ComponentContext, ComponentContextLegacy } from '#client' */\n/** @import { EventDispatcher } from './index.js' */\n/** @import { NotFunction } from './internal/types.js' */\nimport { untrack } from './internal/client/runtime.js';\nimport { is_array } from './internal/shared/utils.js';\nimport { user_effect } from './internal/client/index.js';\nimport * as e from './internal/client/errors.js';\nimport { lifecycle_outside_component } from './internal/shared/errors.js';\nimport { legacy_mode_flag } from './internal/flags/index.js';\nimport { component_context } from './internal/client/context.js';\nimport { DEV } from 'esm-env';\n\nif (DEV) {\n\t/**\n\t * @param {string} rune\n\t */\n\tfunction throw_rune_error(rune) {\n\t\tif (!(rune in globalThis)) {\n\t\t\t// TODO if people start adjusting the \"this can contain runes\" config through v-p-s more, adjust this message\n\t\t\t/** @type {any} */\n\t\t\tlet value; // let's hope noone modifies this global, but belts and braces\n\t\t\tObject.defineProperty(globalThis, rune, {\n\t\t\t\tconfigurable: true,\n\t\t\t\t// eslint-disable-next-line getter-return\n\t\t\t\tget: () => {\n\t\t\t\t\tif (value !== undefined) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\n\t\t\t\t\te.rune_outside_svelte(rune);\n\t\t\t\t},\n\t\t\t\tset: (v) => {\n\t\t\t\t\tvalue = v;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tthrow_rune_error('$state');\n\tthrow_rune_error('$effect');\n\tthrow_rune_error('$derived');\n\tthrow_rune_error('$inspect');\n\tthrow_rune_error('$props');\n\tthrow_rune_error('$bindable');\n}\n\n/**\n * `onMount`, like [`$effect`](https://svelte.dev/docs/svelte/$effect), schedules a function to run as soon as the component has been mounted to the DOM.\n * Unlike `$effect`, the provided function only runs once.\n *\n * It must be called during the component's initialisation (but doesn't need to live _inside_ the component;\n * it can be called from an external module). If a function is returned _synchronously_ from `onMount`,\n * it will be called when the component is unmounted.\n *\n * `onMount` functions do not run during [server-side rendering](https://svelte.dev/docs/svelte/svelte-server#render).\n *\n * @template T\n * @param {() => NotFunction<T> | Promise<NotFunction<T>> | (() => any)} fn\n * @returns {void}\n */\nexport function onMount(fn) {\n\tif (component_context === null) {\n\t\tlifecycle_outside_component('onMount');\n\t}\n\n\tif (legacy_mode_flag && component_context.l !== null) {\n\t\tinit_update_callbacks(component_context).m.push(fn);\n\t} else {\n\t\tuser_effect(() => {\n\t\t\tconst cleanup = untrack(fn);\n\t\t\tif (typeof cleanup === 'function') return /** @type {() => void} */ (cleanup);\n\t\t});\n\t}\n}\n\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * @param {() => any} fn\n * @returns {void}\n */\nexport function onDestroy(fn) {\n\tif (component_context === null) {\n\t\tlifecycle_outside_component('onDestroy');\n\t}\n\n\tonMount(() => () => untrack(fn));\n}\n\n/**\n * @template [T=any]\n * @param {string} type\n * @param {T} [detail]\n * @param {any}params_0\n * @returns {CustomEvent<T>}\n */\nfunction create_custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n\treturn new CustomEvent(type, { detail, bubbles, cancelable });\n}\n\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](https://svelte.dev/docs/svelte/legacy-on#Component-events).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * The event dispatcher can be typed to narrow the allowed event names and the type of the `detail` argument:\n * ```ts\n * const dispatch = createEventDispatcher<{\n * loaded: never; // does not take a detail argument\n * change: string; // takes a detail argument of type string, which is required\n * optional: number | null; // takes an optional detail argument of type number\n * }>();\n * ```\n *\n * @deprecated Use callback props and/or the `$host()` rune instead — see [migration guide](https://svelte.dev/docs/svelte/v5-migration-guide#Event-changes-Component-events)\n * @template {Record<string, any>} [EventMap = any]\n * @returns {EventDispatcher<EventMap>}\n */\nexport function createEventDispatcher() {\n\tconst active_component_context = component_context;\n\tif (active_component_context === null) {\n\t\tlifecycle_outside_component('createEventDispatcher');\n\t}\n\n\treturn (type, detail, options) => {\n\t\tconst events = /** @type {Record<string, Function | Function[]>} */ (\n\t\t\tactive_component_context.s.$$events\n\t\t)?.[/** @type {any} */ (type)];\n\n\t\tif (events) {\n\t\t\tconst callbacks = is_array(events) ? events.slice() : [events];\n\t\t\t// TODO are there situations where events could be dispatched\n\t\t\t// in a server (non-DOM) environment?\n\t\t\tconst event = create_custom_event(/** @type {string} */ (type), detail, options);\n\t\t\tfor (const fn of callbacks) {\n\t\t\t\tfn.call(active_component_context.x, event);\n\t\t\t}\n\t\t\treturn !event.defaultPrevented;\n\t\t}\n\n\t\treturn true;\n\t};\n}\n\n// TODO mark beforeUpdate and afterUpdate as deprecated in Svelte 6\n\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`.\n *\n * In runes mode use `$effect.pre` instead.\n *\n * @deprecated Use [`$effect.pre`](https://svelte.dev/docs/svelte/$effect#$effect.pre) instead\n * @param {() => void} fn\n * @returns {void}\n */\nexport function beforeUpdate(fn) {\n\tif (component_context === null) {\n\t\tlifecycle_outside_component('beforeUpdate');\n\t}\n\n\tif (component_context.l === null) {\n\t\te.lifecycle_legacy_only('beforeUpdate');\n\t}\n\n\tinit_update_callbacks(component_context).b.push(fn);\n}\n\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`.\n *\n * In runes mode use `$effect` instead.\n *\n * @deprecated Use [`$effect`](https://svelte.dev/docs/svelte/$effect) instead\n * @param {() => void} fn\n * @returns {void}\n */\nexport function afterUpdate(fn) {\n\tif (component_context === null) {\n\t\tlifecycle_outside_component('afterUpdate');\n\t}\n\n\tif (component_context.l === null) {\n\t\te.lifecycle_legacy_only('afterUpdate');\n\t}\n\n\tinit_update_callbacks(component_context).a.push(fn);\n}\n\n/**\n * Legacy-mode: Init callbacks object for onMount/beforeUpdate/afterUpdate\n * @param {ComponentContext} context\n */\nfunction init_update_callbacks(context) {\n\tvar l = /** @type {ComponentContextLegacy} */ (context).l;\n\treturn (l.u ??= { a: [], b: [], m: [] });\n}\n\nexport { flushSync } from './internal/client/runtime.js';\nexport { getContext, getAllContexts, hasContext, setContext } from './internal/client/context.js';\nexport { hydrate, mount, unmount } from './internal/client/render.js';\nexport { tick, untrack } from './internal/client/runtime.js';\nexport { createRawSnippet } from './internal/client/dom/blocks/snippet.js';\n","/** @import { StoreReferencesContainer } from '#client' */\n/** @import { Store } from '#shared' */\nimport { subscribe_to_store } from '../../../store/utils.js';\nimport { get as get_store } from '../../../store/shared/index.js';\nimport { define_property, noop } from '../../shared/utils.js';\nimport { get } from '../runtime.js';\nimport { teardown } from './effects.js';\nimport { mutable_source, set } from './sources.js';\n\n/**\n * Whether or not the prop currently being read is a store binding, as in\n * `<Child bind:x={$y} />`. If it is, we treat the prop as mutable even in\n * runes mode, and skip `binding_property_non_reactive` validation\n */\nlet is_store_binding = false;\n\nlet IS_UNMOUNTED = Symbol();\n\n/**\n * Gets the current value of a store. If the store isn't subscribed to yet, it will create a proxy\n * signal that will be updated when the store is. The store references container is needed to\n * track reassignments to stores and to track the correct component context.\n * @template V\n * @param {Store<V> | null | undefined} store\n * @param {string} store_name\n * @param {StoreReferencesContainer} stores\n * @returns {V}\n */\nexport function store_get(store, store_name, stores) {\n\tconst entry = (stores[store_name] ??= {\n\t\tstore: null,\n\t\tsource: mutable_source(undefined),\n\t\tunsubscribe: noop\n\t});\n\n\t// if the component that setup this is already unmounted we don't want to register a subscription\n\tif (entry.store !== store && !(IS_UNMOUNTED in stores)) {\n\t\tentry.unsubscribe();\n\t\tentry.store = store ?? null;\n\n\t\tif (store == null) {\n\t\t\tentry.source.v = undefined; // see synchronous callback comment below\n\t\t\tentry.unsubscribe = noop;\n\t\t} else {\n\t\t\tvar is_synchronous_callback = true;\n\n\t\t\tentry.unsubscribe = subscribe_to_store(store, (v) => {\n\t\t\t\tif (is_synchronous_callback) {\n\t\t\t\t\t// If the first updates to the store value (possibly multiple of them) are synchronously\n\t\t\t\t\t// inside a derived, we will hit the `state_unsafe_mutation` error if we `set` the value\n\t\t\t\t\tentry.source.v = v;\n\t\t\t\t} else {\n\t\t\t\t\tset(entry.source, v);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tis_synchronous_callback = false;\n\t\t}\n\t}\n\n\t// if the component that setup this stores is already unmounted the source will be out of sync\n\t// so we just use the `get` for the stores, less performant but it avoids to create a memory leak\n\t// and it will keep the value consistent\n\tif (store && IS_UNMOUNTED in stores) {\n\t\treturn get_store(store);\n\t}\n\n\treturn get(entry.source);\n}\n\n/**\n * Unsubscribe from a store if it's not the same as the one in the store references container.\n * We need this in addition to `store_get` because someone could unsubscribe from a store but\n * then never subscribe to the new one (if any), causing the subscription to stay open wrongfully.\n * @param {Store<any> | null | undefined} store\n * @param {string} store_name\n * @param {StoreReferencesContainer} stores\n */\nexport function store_unsub(store, store_name, stores) {\n\t/** @type {StoreReferencesContainer[''] | undefined} */\n\tlet entry = stores[store_name];\n\n\tif (entry && entry.store !== store) {\n\t\t// Don't reset store yet, so that store_get above can resubscribe to new store if necessary\n\t\tentry.unsubscribe();\n\t\tentry.unsubscribe = noop;\n\t}\n\n\treturn store;\n}\n\n/**\n * Sets the new value of a store and returns that value.\n * @template V\n * @param {Store<V>} store\n * @param {V} value\n * @returns {V}\n */\nexport function store_set(store, value) {\n\tstore.set(value);\n\treturn value;\n}\n\n/**\n * @param {StoreReferencesContainer} stores\n * @param {string} store_name\n */\nexport function invalidate_store(stores, store_name) {\n\tvar entry = stores[store_name];\n\tif (entry.store !== null) {\n\t\tstore_set(entry.store, entry.source.v);\n\t}\n}\n\n/**\n * Unsubscribes from all auto-subscribed stores on destroy\n * @returns {[StoreReferencesContainer, ()=>void]}\n */\nexport function setup_stores() {\n\t/** @type {StoreReferencesContainer} */\n\tconst stores = {};\n\n\tfunction cleanup() {\n\t\tteardown(() => {\n\t\t\tfor (var store_name in stores) {\n\t\t\t\tconst ref = stores[store_name];\n\t\t\t\tref.unsubscribe();\n\t\t\t}\n\t\t\tdefine_property(stores, IS_UNMOUNTED, {\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: true\n\t\t\t});\n\t\t});\n\t}\n\n\treturn [stores, cleanup];\n}\n\n/**\n * Updates a store with a new value.\n * @param {Store<V>} store the store to update\n * @param {any} expression the expression that mutates the store\n * @param {V} new_value the new store value\n * @template V\n */\nexport function store_mutate(store, expression, new_value) {\n\tstore.set(new_value);\n\treturn expression;\n}\n\n/**\n * @param {Store<number>} store\n * @param {number} store_value\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_store(store, store_value, d = 1) {\n\tstore.set(store_value + d);\n\treturn store_value;\n}\n\n/**\n * @param {Store<number>} store\n * @param {number} store_value\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_pre_store(store, store_value, d = 1) {\n\tconst value = store_value + d;\n\tstore.set(value);\n\treturn value;\n}\n\n/**\n * Called inside prop getters to communicate that the prop is a store binding\n */\nexport function mark_store_binding() {\n\tis_store_binding = true;\n}\n\n/**\n * Returns a tuple that indicates whether `fn()` reads a prop that is a store binding.\n * Used to prevent `binding_property_non_reactive` validation false positives and\n * ensure that these props are treated as mutable even in runes mode\n * @template T\n * @param {() => T} fn\n * @returns {[T, boolean]}\n */\nexport function capture_store_binding(fn) {\n\tvar previous_is_store_binding = is_store_binding;\n\n\ttry {\n\t\tis_store_binding = false;\n\t\treturn [fn(), is_store_binding];\n\t} finally {\n\t\tis_store_binding = previous_is_store_binding;\n\t}\n}\n","/** @import { Derived, Source } from './types.js' */\nimport { DEV } from 'esm-env';\nimport {\n\tPROPS_IS_BINDABLE,\n\tPROPS_IS_IMMUTABLE,\n\tPROPS_IS_LAZY_INITIAL,\n\tPROPS_IS_RUNES,\n\tPROPS_IS_UPDATED\n} from '../../../constants.js';\nimport { get_descriptor, is_function } from '../../shared/utils.js';\nimport { mutable_source, set, source, update } from './sources.js';\nimport { derived, derived_safe_equal } from './deriveds.js';\nimport { get, captured_signals, untrack } from '../runtime.js';\nimport { safe_equals } from './equality.js';\nimport * as e from '../errors.js';\nimport { LEGACY_DERIVED_PROP, LEGACY_PROPS, STATE_SYMBOL } from '../constants.js';\nimport { proxy } from '../proxy.js';\nimport { capture_store_binding } from './store.js';\nimport { legacy_mode_flag } from '../../flags/index.js';\n\n/**\n * @param {((value?: number) => number)} fn\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_prop(fn, d = 1) {\n\tconst value = fn();\n\tfn(value + d);\n\treturn value;\n}\n\n/**\n * @param {((value?: number) => number)} fn\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_pre_prop(fn, d = 1) {\n\tconst value = fn() + d;\n\tfn(value);\n\treturn value;\n}\n\n/**\n * The proxy handler for rest props (i.e. `const { x, ...rest } = $props()`).\n * Is passed the full `$$props` object and excludes the named props.\n * @type {ProxyHandler<{ props: Record<string | symbol, unknown>, exclude: Array<string | symbol>, name?: string }>}}\n */\nconst rest_props_handler = {\n\tget(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\treturn target.props[key];\n\t},\n\tset(target, key) {\n\t\tif (DEV) {\n\t\t\t// TODO should this happen in prod too?\n\t\t\te.props_rest_readonly(`${target.name}.${String(key)}`);\n\t\t}\n\n\t\treturn false;\n\t},\n\tgetOwnPropertyDescriptor(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\tif (key in target.props) {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: target.props[key]\n\t\t\t};\n\t\t}\n\t},\n\thas(target, key) {\n\t\tif (target.exclude.includes(key)) return false;\n\t\treturn key in target.props;\n\t},\n\townKeys(target) {\n\t\treturn Reflect.ownKeys(target.props).filter((key) => !target.exclude.includes(key));\n\t}\n};\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string[]} exclude\n * @param {string} [name]\n * @returns {Record<string, unknown>}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function rest_props(props, exclude, name) {\n\treturn new Proxy(\n\t\tDEV ? { props, exclude, name, other: {}, to_proxy: [] } : { props, exclude },\n\t\trest_props_handler\n\t);\n}\n\n/**\n * The proxy handler for legacy $$restProps and $$props\n * @type {ProxyHandler<{ props: Record<string | symbol, unknown>, exclude: Array<string | symbol>, special: Record<string | symbol, (v?: unknown) => unknown>, version: Source<number> }>}}\n */\nconst legacy_rest_props_handler = {\n\tget(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\tget(target.version);\n\t\treturn key in target.special ? target.special[key]() : target.props[key];\n\t},\n\tset(target, key, value) {\n\t\tif (!(key in target.special)) {\n\t\t\t// Handle props that can temporarily get out of sync with the parent\n\t\t\t/** @type {Record<string, (v?: unknown) => unknown>} */\n\t\t\ttarget.special[key] = prop(\n\t\t\t\t{\n\t\t\t\t\tget [key]() {\n\t\t\t\t\t\treturn target.props[key];\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t/** @type {string} */ (key),\n\t\t\t\tPROPS_IS_UPDATED\n\t\t\t);\n\t\t}\n\n\t\ttarget.special[key](value);\n\t\tupdate(target.version); // $$props is coarse-grained: when $$props.x is updated, usages of $$props.y etc are also rerun\n\t\treturn true;\n\t},\n\tgetOwnPropertyDescriptor(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\tif (key in target.props) {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: target.props[key]\n\t\t\t};\n\t\t}\n\t},\n\tdeleteProperty(target, key) {\n\t\t// Svelte 4 allowed for deletions on $$restProps\n\t\tif (target.exclude.includes(key)) return true;\n\t\ttarget.exclude.push(key);\n\t\tupdate(target.version);\n\t\treturn true;\n\t},\n\thas(target, key) {\n\t\tif (target.exclude.includes(key)) return false;\n\t\treturn key in target.props;\n\t},\n\townKeys(target) {\n\t\treturn Reflect.ownKeys(target.props).filter((key) => !target.exclude.includes(key));\n\t}\n};\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string[]} exclude\n * @returns {Record<string, unknown>}\n */\nexport function legacy_rest_props(props, exclude) {\n\treturn new Proxy({ props, exclude, special: {}, version: source(0) }, legacy_rest_props_handler);\n}\n\n/**\n * The proxy handler for spread props. Handles the incoming array of props\n * that looks like `() => { dynamic: props }, { static: prop }, ..` and wraps\n * them so that the whole thing is passed to the component as the `$$props` argument.\n * @template {Record<string | symbol, unknown>} T\n * @type {ProxyHandler<{ props: Array<T | (() => T)> }>}}\n */\nconst spread_props_handler = {\n\tget(target, key) {\n\t\tlet i = target.props.length;\n\t\twhile (i--) {\n\t\t\tlet p = target.props[i];\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (typeof p === 'object' && p !== null && key in p) return p[key];\n\t\t}\n\t},\n\tset(target, key, value) {\n\t\tlet i = target.props.length;\n\t\twhile (i--) {\n\t\t\tlet p = target.props[i];\n\t\t\tif (is_function(p)) p = p();\n\t\t\tconst desc = get_descriptor(p, key);\n\t\t\tif (desc && desc.set) {\n\t\t\t\tdesc.set(value);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\tgetOwnPropertyDescriptor(target, key) {\n\t\tlet i = target.props.length;\n\t\twhile (i--) {\n\t\t\tlet p = target.props[i];\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (typeof p === 'object' && p !== null && key in p) {\n\t\t\t\tconst descriptor = get_descriptor(p, key);\n\t\t\t\tif (descriptor && !descriptor.configurable) {\n\t\t\t\t\t// Prevent a \"Non-configurability Report Error\": The target is an array, it does\n\t\t\t\t\t// not actually contain this property. If it is now described as non-configurable,\n\t\t\t\t\t// the proxy throws a validation error. Setting it to true avoids that.\n\t\t\t\t\tdescriptor.configurable = true;\n\t\t\t\t}\n\t\t\t\treturn descriptor;\n\t\t\t}\n\t\t}\n\t},\n\thas(target, key) {\n\t\t// To prevent a false positive `is_entry_props` in the `prop` function\n\t\tif (key === STATE_SYMBOL || key === LEGACY_PROPS) return false;\n\n\t\tfor (let p of target.props) {\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (p != null && key in p) return true;\n\t\t}\n\n\t\treturn false;\n\t},\n\townKeys(target) {\n\t\t/** @type {Array<string | symbol>} */\n\t\tconst keys = [];\n\n\t\tfor (let p of target.props) {\n\t\t\tif (is_function(p)) p = p();\n\t\t\tfor (const key in p) {\n\t\t\t\tif (!keys.includes(key)) keys.push(key);\n\t\t\t}\n\t\t}\n\n\t\treturn keys;\n\t}\n};\n\n/**\n * @param {Array<Record<string, unknown> | (() => Record<string, unknown>)>} props\n * @returns {any}\n */\nexport function spread_props(...props) {\n\treturn new Proxy({ props }, spread_props_handler);\n}\n\n/**\n * @param {Derived} current_value\n * @returns {boolean}\n */\nfunction has_destroyed_component_ctx(current_value) {\n\treturn current_value.ctx?.d ?? false;\n}\n\n/**\n * This function is responsible for synchronizing a possibly bound prop with the inner component state.\n * It is used whenever the compiler sees that the component writes to the prop, or when it has a default prop_value.\n * @template V\n * @param {Record<string, unknown>} props\n * @param {string} key\n * @param {number} flags\n * @param {V | (() => V)} [fallback]\n * @returns {(() => V | ((arg: V) => V) | ((arg: V, mutation: boolean) => V))}\n */\nexport function prop(props, key, flags, fallback) {\n\tvar immutable = (flags & PROPS_IS_IMMUTABLE) !== 0;\n\tvar runes = !legacy_mode_flag || (flags & PROPS_IS_RUNES) !== 0;\n\tvar bindable = (flags & PROPS_IS_BINDABLE) !== 0;\n\tvar lazy = (flags & PROPS_IS_LAZY_INITIAL) !== 0;\n\tvar is_store_sub = false;\n\tvar prop_value;\n\n\tif (bindable) {\n\t\t[prop_value, is_store_sub] = capture_store_binding(() => /** @type {V} */ (props[key]));\n\t} else {\n\t\tprop_value = /** @type {V} */ (props[key]);\n\t}\n\n\t// Can be the case when someone does `mount(Component, props)` with `let props = $state({...})`\n\t// or `createClassComponent(Component, props)`\n\tvar is_entry_props = STATE_SYMBOL in props || LEGACY_PROPS in props;\n\n\tvar setter =\n\t\t(bindable &&\n\t\t\t(get_descriptor(props, key)?.set ??\n\t\t\t\t(is_entry_props && key in props && ((v) => (props[key] = v))))) ||\n\t\tundefined;\n\n\tvar fallback_value = /** @type {V} */ (fallback);\n\tvar fallback_dirty = true;\n\tvar fallback_used = false;\n\n\tvar get_fallback = () => {\n\t\tfallback_used = true;\n\t\tif (fallback_dirty) {\n\t\t\tfallback_dirty = false;\n\t\t\tif (lazy) {\n\t\t\t\tfallback_value = untrack(/** @type {() => V} */ (fallback));\n\t\t\t} else {\n\t\t\t\tfallback_value = /** @type {V} */ (fallback);\n\t\t\t}\n\t\t}\n\n\t\treturn fallback_value;\n\t};\n\n\tif (prop_value === undefined && fallback !== undefined) {\n\t\tif (setter && runes) {\n\t\t\te.props_invalid_value(key);\n\t\t}\n\n\t\tprop_value = get_fallback();\n\t\tif (setter) setter(prop_value);\n\t}\n\n\t/** @type {() => V} */\n\tvar getter;\n\tif (runes) {\n\t\tgetter = () => {\n\t\t\tvar value = /** @type {V} */ (props[key]);\n\t\t\tif (value === undefined) return get_fallback();\n\t\t\tfallback_dirty = true;\n\t\t\tfallback_used = false;\n\t\t\treturn value;\n\t\t};\n\t} else {\n\t\t// Svelte 4 did not trigger updates when a primitive value was updated to the same value.\n\t\t// Replicate that behavior through using a derived\n\t\tvar derived_getter = (immutable ? derived : derived_safe_equal)(\n\t\t\t() => /** @type {V} */ (props[key])\n\t\t);\n\t\tderived_getter.f |= LEGACY_DERIVED_PROP;\n\t\tgetter = () => {\n\t\t\tvar value = get(derived_getter);\n\t\t\tif (value !== undefined) fallback_value = /** @type {V} */ (undefined);\n\t\t\treturn value === undefined ? fallback_value : value;\n\t\t};\n\t}\n\n\t// easy mode — prop is never written to\n\tif ((flags & PROPS_IS_UPDATED) === 0) {\n\t\treturn getter;\n\t}\n\n\t// intermediate mode — prop is written to, but the parent component had\n\t// `bind:foo` which means we can just call `$$props.foo = value` directly\n\tif (setter) {\n\t\tvar legacy_parent = props.$$legacy;\n\t\treturn function (/** @type {any} */ value, /** @type {boolean} */ mutation) {\n\t\t\tif (arguments.length > 0) {\n\t\t\t\t// We don't want to notify if the value was mutated and the parent is in runes mode.\n\t\t\t\t// In that case the state proxy (if it exists) should take care of the notification.\n\t\t\t\t// If the parent is not in runes mode, we need to notify on mutation, too, that the prop\n\t\t\t\t// has changed because the parent will not be able to detect the change otherwise.\n\t\t\t\tif (!runes || !mutation || legacy_parent || is_store_sub) {\n\t\t\t\t\t/** @type {Function} */ (setter)(mutation ? getter() : value);\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t} else {\n\t\t\t\treturn getter();\n\t\t\t}\n\t\t};\n\t}\n\n\t// hard mode. this is where it gets ugly — the value in the child should\n\t// synchronize with the parent, but it should also be possible to temporarily\n\t// set the value to something else locally.\n\tvar from_child = false;\n\tvar was_from_child = false;\n\n\t// The derived returns the current value. The underlying mutable\n\t// source is written to from various places to persist this value.\n\tvar inner_current_value = mutable_source(prop_value);\n\tvar current_value = derived(() => {\n\t\tvar parent_value = getter();\n\t\tvar child_value = get(inner_current_value);\n\n\t\tif (from_child) {\n\t\t\tfrom_child = false;\n\t\t\twas_from_child = true;\n\t\t\treturn child_value;\n\t\t}\n\n\t\twas_from_child = false;\n\t\treturn (inner_current_value.v = parent_value);\n\t});\n\n\t// Ensure we eagerly capture the initial value if it's bindable\n\tif (bindable) {\n\t\tget(current_value);\n\t}\n\n\tif (!immutable) current_value.equals = safe_equals;\n\n\treturn function (/** @type {any} */ value, /** @type {boolean} */ mutation) {\n\t\t// legacy nonsense — need to ensure the source is invalidated when necessary\n\t\t// also needed for when handling inspect logic so we can inspect the correct source signal\n\t\tif (captured_signals !== null) {\n\t\t\t// set this so that we don't reset to the parent value if `d`\n\t\t\t// is invalidated because of `invalidate_inner_signals` (rather\n\t\t\t// than because the parent or child value changed)\n\t\t\tfrom_child = was_from_child;\n\t\t\t// invoke getters so that signals are picked up by `invalidate_inner_signals`\n\t\t\tgetter();\n\t\t\tget(inner_current_value);\n\t\t}\n\n\t\tif (arguments.length > 0) {\n\t\t\tconst new_value = mutation ? get(current_value) : runes && bindable ? proxy(value) : value;\n\n\t\t\tif (!current_value.equals(new_value)) {\n\t\t\t\tfrom_child = true;\n\t\t\t\tset(inner_current_value, new_value);\n\t\t\t\t// To ensure the fallback value is consistent when used with proxies, we\n\t\t\t\t// update the local fallback_value, but only if the fallback is actively used\n\t\t\t\tif (fallback_used && fallback_value !== undefined) {\n\t\t\t\t\tfallback_value = new_value;\n\t\t\t\t}\n\n\t\t\t\tif (has_destroyed_component_ctx(current_value)) {\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\n\t\t\t\tuntrack(() => get(current_value)); // force a synchronisation immediately\n\t\t\t}\n\n\t\t\treturn value;\n\t\t}\n\n\t\tif (has_destroyed_component_ctx(current_value)) {\n\t\t\treturn current_value.v;\n\t\t}\n\n\t\treturn get(current_value);\n\t};\n}\n","<script lang=\"ts\">\n\timport type { BurgerEditorEngine } from '@burger-editor/core';\n\texport let engine: BurgerEditorEngine;\n\n\t/**\n\t *\n\t * @param blockName\n\t */\n\tfunction addBlock(blockName: string) {\n\t\tengine.blockCatalogDialog.close();\n\t\tengine.addBlock(blockName);\n\t}\n</script>\n\n<div class=\"block-catalog\">\n\t<dl>\n\t\t{#each engine.blockCatalogDialog.catalog as [category, blocks] (category)}\n\t\t\t<dt>{category}</dt>\n\t\t\t<div>\n\t\t\t\t{#each blocks as [blockName, blockInfo] (blockName)}\n\t\t\t\t\t<dd>\n\t\t\t\t\t\t<button type=\"button\" on:click={() => addBlock(blockName)}>\n\t\t\t\t\t\t\t{#if blockInfo.img || blockInfo.svg}\n\t\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t\t<div class=\"img\">\n\t\t\t\t\t\t\t\t\t\t{#if blockInfo.img}\n\t\t\t\t\t\t\t\t\t\t\t<img src={blockInfo.img} alt=\"\" loading=\"lazy\" />\n\t\t\t\t\t\t\t\t\t\t{:else if blockInfo.svg}\n\t\t\t\t\t\t\t\t\t\t\t{@html blockInfo.svg}\n\t\t\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<figcaption>{blockInfo.label}</figcaption>\n\t\t\t\t\t\t\t\t</figure>\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\t{blockInfo.label}\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</dd>\n\t\t\t\t{/each}\n\t\t\t</div>\n\t\t{/each}\n\t</dl>\n</div>\n\n<style>\n\tdl {\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n\n\tdt {\n\t\tmargin-block-end: 10px;\n\t\tfont-size: 1.1em;\n\t\tfont-weight: bold;\n\t\tcolor: #333;\n\t\tborder-block-end: 1px #565a49 dotted;\n\t}\n\n\tdl > div {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(auto-fill, minmax(6em, 1fr));\n\t\tgap: 0.5em;\n\t}\n\n\tdd {\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n\n\tbutton {\n\t\tdisplay: flex;\n\t\talign-items: start;\n\t\tinline-size: 100%;\n\t\tblock-size: 100%;\n\t\tpadding: 0.5em 0.5em;\n\t\tmargin: 0;\n\t\tappearance: none;\n\t}\n\n\tfigure {\n\t\tmargin: 0 auto;\n\t}\n\n\t.img > * {\n\t\tdisplay: block;\n\t\tinline-size: 71px;\n\t\tblock-size: 56px;\n\t\tmargin: 0 auto;\n\t\tbackground-repeat: no-repeat;\n\t\tborder-radius: 10px;\n\t}\n\n\tfigcaption {\n\t\tpadding-block-start: 0.5em;\n\t\tfont-size: 0.6em;\n\t\tfont-weight: bold;\n\t\ttext-align: center;\n\t}\n</style>\n","const defaultAttributes = {\n outline: {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-width': 2,\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n },\n filled: {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n stroke: 'none'\n },\n};\nexport default defaultAttributes;\n","<script>import defaultAttributes from './defaultAttributes';\nexport let type;\nexport let name;\nexport let color = 'currentColor';\nexport let size = 24;\nexport let stroke = 2;\nexport let iconNode;\n</script>\n\n<svg\n {...defaultAttributes[type]}\n {...$$restProps}\n width={size}\n height={size}\n class={`tabler-icon tabler-icon-${name} ${$$props.class ?? ''}`}\n {...type === 'filled'\n ? {\n fill: color,\n }\n : {\n 'stroke-width': stroke,\n stroke: color,\n }}\n>\n {#each iconNode as [tag, attrs]}\n <svelte:element this={tag} {...attrs} />\n {/each}\n <slot />\n</svg>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M15 12h3.586a1 1 0 0 1 .707 1.707l-6.586 6.586a1 1 0 0 1 -1.414 0l-6.586 -6.586a1 1 0 0 1 .707 -1.707h3.586v-6h6v6z\" }], [\"path\", { \"d\": \"M15 3h-6\" }]];\n</script>\n<Icon type=\"outline\" name=\"arrow-big-down-line\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M9 12h-3.586a1 1 0 0 1 -.707 -1.707l6.586 -6.586a1 1 0 0 1 1.414 0l6.586 6.586a1 1 0 0 1 -.707 1.707h-3.586v6h-6v-6z\" }], [\"path\", { \"d\": \"M9 21h6\" }]];\n</script>\n<Icon type=\"outline\" name=\"arrow-big-up-line\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2\" }], [\"path\", { \"d\": \"M9 3m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z\" }], [\"path\", { \"d\": \"M10 14h4\" }], [\"path\", { \"d\": \"M12 12v4\" }]];\n</script>\n<Icon type=\"outline\" name=\"clipboard-plus\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M4 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z\" }], [\"path\", { \"d\": \"M14 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z\" }], [\"path\", { \"d\": \"M4 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z\" }], [\"path\", { \"d\": \"M14 17h6m-3 -3v6\" }]];\n</script>\n<Icon type=\"outline\" name=\"layout-grid-add\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M4 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-4z\" }], [\"path\", { \"d\": \"M14 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-4z\" }], [\"path\", { \"d\": \"M4 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-4z\" }], [\"path\", { \"d\": \"M14 17h6\" }]];\n</script>\n<Icon type=\"outline\" name=\"layout-grid-remove\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M20 6v4a1 1 0 0 1 -1 1h-14a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h14a1 1 0 0 1 1 1z\" }], [\"path\", { \"d\": \"M12 15l0 4\" }], [\"path\", { \"d\": \"M14 17l-4 0\" }]];\n</script>\n<Icon type=\"outline\" name=\"row-insert-bottom\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M4 18v-4a1 1 0 0 1 1 -1h14a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-14a1 1 0 0 1 -1 -1z\" }], [\"path\", { \"d\": \"M12 9v-4\" }], [\"path\", { \"d\": \"M10 7l4 0\" }]];\n</script>\n<Icon type=\"outline\" name=\"row-insert-top\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z\" }], [\"path\", { \"d\": \"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0\" }]];\n</script>\n<Icon type=\"outline\" name=\"settings\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M4 7l16 0\" }], [\"path\", { \"d\": \"M10 11l0 6\" }], [\"path\", { \"d\": \"M14 11l0 6\" }], [\"path\", { \"d\": \"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12\" }], [\"path\", { \"d\": \"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3\" }]];\n</script>\n<Icon type=\"outline\" name=\"trash\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script lang=\"ts\">\n\tconst { label, action, children } = $props();\n\tconst uid = $props.id();\n</script>\n\n<div style:--name={`--anchor-${uid}`}>\n\t<button type=\"button\" aria-labelledby={uid} onclick={action}>\n\t\t{@render children()}\n\t</button>\n\t<span id={uid}>{label}</span>\n</div>\n\n<style>\n\tbutton {\n\t\tanchor-name: var(--name);\n\t\tdisplay: block;\n\t\tpadding: 0.2em 0.5em;\n\t\tfont-size: 1.5em;\n\t\tcolor: var(--bge-lightest-color);\n\t\tpointer-events: all;\n\t\tbackground: var(--bge-ui-primary-color);\n\t\tborder: none;\n\t}\n\n\tdiv:is(:hover, :focus-within) button {\n\t\tbackground-color: color-mix(\n\t\t\tin srgb,\n\t\t\tvar(--bge-ui-primary-color) 70%,\n\t\t\tvar(--bge-darkest-color) 30%\n\t\t);\n\t}\n\n\tspan {\n\t\tposition: absolute;\n\t\tz-index: 1000;\n\t\tdisplay: none;\n\t\tposition-anchor: var(--name);\n\t\tinline-size: calc(anchor-size(inline-size) * 2);\n\t\tpadding-block: 0.2em;\n\t\tpadding-inline: 0.6em;\n\t\tmargin: 0.2em;\n\t\tposition-area: block-end;\n\t\tfont-size: 0.8em;\n\t\tcolor: var(--bge-lightest-color);\n\t\tbackground: var(--bge-tooltip-background-color);\n\t\tborder-radius: 0.6em;\n\t}\n\n\tdiv:is(:hover, :focus-within) span {\n\t\tdisplay: block;\n\t}\n</style>\n","/**\n *\n * @param elA\n * @param elB\n * @param duration\n */\nexport async function replaceElement(elA: HTMLElement, elB: HTMLElement, duration = 600) {\n\tif (elA.parentElement !== elB.parentElement) {\n\t\tthrow new Error('The parent element of the two elements is different.');\n\t}\n\n\tconst lockCSS = {\n\t\tvisibility: 'hidden',\n\t\tpointerEvents: 'none',\n\t} as const satisfies Partial<CSSStyleDeclaration>;\n\n\tconst boxA = elA.getBoundingClientRect();\n\tconst boxB = elB.getBoundingClientRect();\n\n\tconst tmpContainer = elA.ownerDocument.createElement('div');\n\ttmpContainer.style.position = 'absolute';\n\ttmpContainer.style.top = `0px`;\n\ttmpContainer.style.left = `0px`;\n\ttmpContainer.style.zIndex = '2147483647';\n\n\tconst tmpA = elA.cloneNode(true) as HTMLElement;\n\ttmpA.style.position = 'absolute';\n\ttmpA.style.top = `${boxA.top}px`;\n\ttmpA.style.left = `${boxA.left}px`;\n\ttmpA.style.width = `${boxA.width}px`;\n\ttmpA.style.height = `${boxA.height}px`;\n\ttmpA.style.zIndex = '20';\n\n\tconst tmpB = elB.cloneNode(true) as HTMLElement;\n\ttmpB.style.position = 'absolute';\n\ttmpB.style.top = `${boxB.top}px`;\n\ttmpB.style.left = `${boxB.left}px`;\n\ttmpB.style.width = `${boxB.width}px`;\n\ttmpB.style.height = `${boxB.height}px`;\n\ttmpB.style.zIndex = '10';\n\n\ttmpContainer.append(tmpA, tmpB);\n\ttmpContainer.ownerDocument.body.append(tmpContainer);\n\n\telB.remove();\n\telA.before(elB);\n\n\telA.style.visibility = lockCSS.visibility;\n\telA.style.pointerEvents = lockCSS.pointerEvents;\n\telB.style.visibility = lockCSS.visibility;\n\telB.style.pointerEvents = lockCSS.pointerEvents;\n\n\tconst animateA = tmpA.animate(\n\t\t[\n\t\t\t{ top: tmpA.style.top, left: tmpA.style.left },\n\t\t\t{ top: `${boxA.top + boxB.height}px`, left: tmpB.style.left },\n\t\t],\n\t\t{\n\t\t\tduration,\n\t\t},\n\t);\n\tconst animateB = tmpB.animate(\n\t\t[\n\t\t\t{ top: tmpB.style.top, left: tmpB.style.left },\n\t\t\t{ top: tmpA.style.top, left: tmpA.style.left },\n\t\t],\n\t\t{\n\t\t\tduration,\n\t\t},\n\t);\n\n\tawait Promise.all([animateA.finished, animateB.finished]);\n\n\ttmpContainer.remove();\n\telA.removeAttribute('style');\n\telB.removeAttribute('style');\n}\n","<script lang=\"ts\">\n\timport type { BurgerBlock, BurgerEditorEngine } from '@burger-editor/core';\n\n\timport IconArrowBigDownLine from '@tabler/icons-svelte/icons/arrow-big-down-line';\n\timport IconArrowBigUpLine from '@tabler/icons-svelte/icons/arrow-big-up-line';\n\timport IconClipboardPlus from '@tabler/icons-svelte/icons/clipboard-plus';\n\timport IconLayoutGridAdd from '@tabler/icons-svelte/icons/layout-grid-add';\n\timport IconLayoutGridRemove from '@tabler/icons-svelte/icons/layout-grid-remove';\n\timport IconRowInsertBottom from '@tabler/icons-svelte/icons/row-insert-bottom';\n\timport IconRowInsertTop from '@tabler/icons-svelte/icons/row-insert-top';\n\timport IconSettings from '@tabler/icons-svelte/icons/settings';\n\timport IconTrash from '@tabler/icons-svelte/icons/trash';\n\n\timport BlockMenuButton from './block-menu-button.svelte';\n\timport { replaceElement } from './replace-element.js';\n\texport let engine: BurgerEditorEngine;\n\n\tlet currentBlock: BurgerBlock | null = null;\n\n\t$: isMutable = currentBlock?.isMutable();\n\n\tlet _width = 0;\n\tlet _height = 0;\n\tlet _x = 0;\n\tlet _y = 0;\n\tlet _marginBlockEnd = 0;\n\tlet marginBlockEndValue = '0px';\n\n\tengine.blockOptionsDialog.onChangeBlock((block) => {\n\t\tcurrentBlock = block;\n\t});\n\n\tengine.componentObserver.on(\n\t\t'select-block',\n\t\t({ block, width, height, x, y, marginBlockEnd }) => {\n\t\t\tcurrentBlock = block;\n\t\t\t_width = width;\n\t\t\t_height = height;\n\t\t\t_x = x;\n\t\t\t_y = y;\n\t\t\t_marginBlockEnd = marginBlockEnd;\n\t\t\tmarginBlockEndValue = window\n\t\t\t\t.getComputedStyle(block.el)\n\t\t\t\t.getPropertyValue('--bge-block-margin');\n\t\t},\n\t);\n\n\t/**\n\t *\n\t * @param toTop\n\t */\n\tfunction insert(toTop: boolean) {\n\t\tif (!currentBlock) {\n\t\t\treturn;\n\t\t}\n\t\tengine.content.insertionPoint.set(currentBlock, toTop);\n\t\tengine.blockCatalogDialog.open();\n\t}\n\n\t/**\n\t *\n\t */\n\tfunction openConfig() {\n\t\tengine.blockOptionsDialog.open();\n\t}\n\n\t/**\n\t *\n\t * @param toTop\n\t */\n\tasync function move(toTop: boolean) {\n\t\tif (engine.isProcessed || !currentBlock) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet $from: HTMLElement | null;\n\t\tlet $to: HTMLElement | null;\n\t\tif (toTop) {\n\t\t\t$from = currentBlock.el.previousElementSibling as HTMLElement;\n\t\t\t$to = currentBlock.el;\n\t\t} else {\n\t\t\t$from = currentBlock.el;\n\t\t\t$to = currentBlock.el.nextElementSibling as HTMLElement;\n\t\t}\n\n\t\tif (!$from || !$to) {\n\t\t\treturn;\n\t\t}\n\n\t\tengine.isProcessed = true;\n\n\t\tawait replaceElement($from, $to);\n\n\t\tengine.isProcessed = false;\n\t\tengine.save();\n\t}\n\n\t/**\n\t *\n\t */\n\tasync function remove() {\n\t\tif (engine.isProcessed || !currentBlock) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\t!confirm(\n\t\t\t\t'ブロックを削除します。\\n削除したブロックはもとに戻すことはできません。\\n削除してもよろしいですか?',\n\t\t\t)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tengine.isProcessed = true;\n\n\t\tawait Promise.resolve();\n\n\t\tcurrentBlock.remove();\n\t\tcurrentBlock = null;\n\n\t\tengine.isProcessed = false;\n\t\tengine.save();\n\t}\n\n\t/**\n\t *\n\t * @param addOrRemove\n\t */\n\tfunction updateGridItems(addOrRemove: 1 | -1) {\n\t\tif (engine.isProcessed || !currentBlock) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\taddOrRemove === -1 &&\n\t\t\t!confirm(\n\t\t\t\t'ブロック内の最後の要素を削除します。\\n削除した要素はもとに戻すことはできません。\\n削除してもよろしいですか?',\n\t\t\t)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tcurrentBlock.updateGridItems(addOrRemove);\n\n\t\tengine.save();\n\t}\n\n\t/**\n\t *\n\t */\n\tfunction copy() {\n\t\tif (engine.isProcessed || !currentBlock) {\n\t\t\treturn;\n\t\t}\n\n\t\t// if (currentBlock.name === 'unknown') {\n\t\t// \talert(\n\t\t// \t\t'このブロックをコピーするには、ブロックのアップデートが必要です。\\nブロックをアップロードしてください。',\n\t\t// \t);\n\t\t// \treturn;\n\t\t// }\n\n\t\tconst html = currentBlock.getHTMLStringify();\n\n\t\tsessionStorage.setItem(engine.storageKey.blockClipboard, html);\n\n\t\talert(\n\t\t\t'ブロックをコピーしました。\\nブロックの追加ボタンからペースト(貼り付け)することができます。',\n\t\t);\n\t}\n</script>\n\n<div\n\tclass=\"bge-menu-base\"\n\tstyle={`\n\t--width:${_width}px;\n\t--height:${_height}px;\n\t--x:${_x}px;\n\t--y:${_y}px;\n\t--margin-block-end:${_marginBlockEnd ?? '0'}px`}>\n\t<div class=\"bge-menu\">\n\t\t<div class=\"bge-move-group\">\n\t\t\t<BlockMenuButton label=\"ひとつ上へ移動\" action={() => move(true)}>\n\t\t\t\t<IconArrowBigUpLine />\n\t\t\t</BlockMenuButton>\n\t\t\t<BlockMenuButton label=\"ひとつ下へ移動\" action={() => move(false)}>\n\t\t\t\t<IconArrowBigDownLine />\n\t\t\t</BlockMenuButton>\n\t\t</div>\n\t\t<div class=\"bge-standard-group\">\n\t\t\t<BlockMenuButton label=\"上にブロックを追加\" action={() => insert(true)}>\n\t\t\t\t<IconRowInsertTop />\n\t\t\t</BlockMenuButton>\n\t\t\t<BlockMenuButton label=\"下にブロックを追加\" action={() => insert(false)}>\n\t\t\t\t<IconRowInsertBottom />\n\t\t\t</BlockMenuButton>\n\t\t\t{#if isMutable}\n\t\t\t\t<BlockMenuButton\n\t\t\t\t\tlabel=\"ブロック内に要素を追加\"\n\t\t\t\t\taction={() => updateGridItems(+1)}>\n\t\t\t\t\t<IconLayoutGridAdd />\n\t\t\t\t</BlockMenuButton>\n\t\t\t\t<BlockMenuButton\n\t\t\t\t\tlabel=\"ブロック内の要素を削除\"\n\t\t\t\t\taction={() => updateGridItems(-1)}>\n\t\t\t\t\t<IconLayoutGridRemove />\n\t\t\t\t</BlockMenuButton>\n\t\t\t{/if}\n\t\t\t<BlockMenuButton label=\"オプション設定\" action={() => openConfig()}>\n\t\t\t\t<IconSettings />\n\t\t\t</BlockMenuButton>\n\t\t\t<BlockMenuButton label=\"ブロックをコピー\" action={() => copy()}>\n\t\t\t\t<IconClipboardPlus />\n\t\t\t</BlockMenuButton>\n\t\t\t<BlockMenuButton label=\"ブロックを削除\" action={() => remove()}>\n\t\t\t\t<IconTrash />\n\t\t\t</BlockMenuButton>\n\t\t</div>\n\t</div>\n\t<div class=\"bge-menu-margin\">\n\t\t<span>余白: {marginBlockEndValue} ({_marginBlockEnd}px)</span>\n\t</div>\n</div>\n\n<style>\n\t.bge-menu-base {\n\t\tposition: absolute;\n\t\tinset-block-start: var(--y);\n\t\tinset-inline-start: var(--x);\n\t\tinline-size: var(--width);\n\t\tblock-size: calc(var(--height) + var(--margin-block-end));\n\t\tpointer-events: none;\n\t}\n\n\t.bge-menu-margin {\n\t\t--_line-color: rgb(from var(--bge-ui-primary-color) r g b / 10%);\n\t\tcontainer: margin-view / size;\n\t\tposition: absolute;\n\t\tinset-block-end: 0;\n\t\tinset-inline-start: 0;\n\t\tz-index: 100;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tinline-size: 100%;\n\t\tblock-size: var(--margin-block-end);\n\t\tfont-size: 0.8em;\n\t\tfont-weight: bold;\n\t\tcolor: var(--bge-ui-primary-color);\n\t\tpointer-events: none;\n\t\tbackground: repeating-linear-gradient(\n\t\t\t45deg,\n\t\t\ttransparent,\n\t\t\ttransparent 4px,\n\t\t\tvar(--_line-color) 4px,\n\t\t\tvar(--_line-color) 8px\n\t\t);\n\t}\n\n\t@container margin-view (height < 1em) {\n\t\t.bge-menu-margin {\n\t\t\tspan {\n\t\t\t\tpadding: 0.2em 0.4em;\n\t\t\t\tcolor: var(--bge-lightest-color);\n\t\t\t\tbackground: var(--bge-ui-primary-color);\n\t\t\t\tborder-radius: 0.2em;\n\t\t\t}\n\t\t}\n\t}\n\n\t.bge-menu {\n\t\t--gap: 0.2em;\n\t\tdisplay: flex;\n\t\talign-items: start;\n\t\tjustify-content: space-between;\n\t\tinline-size: 100%;\n\t\tblock-size: 100%;\n\t\tmin-block-size: max-content;\n\t\tpointer-events: none;\n\t\toutline: 4px solid var(--bge-ui-primary-color);\n\t}\n\n\t.bge-move-group,\n\t.bge-standard-group {\n\t\tinset-block-start: 0;\n\t\tdisplay: flex;\n\t\tgap: var(--gap);\n\t\tjustify-content: center;\n\t\tpadding: var(--gap);\n\t}\n</style>\n","<script lang=\"ts\">\n\timport type { BurgerEditorEngine } from '@burger-editor/core';\n\n\tconst {\n\t\tengine,\n\t}: {\n\t\tengine: BurgerEditorEngine;\n\t} = $props();\n\n\tconst containerTypeLabel = {\n\t\tgrid: 'グリッド',\n\t\tinline: '横並び',\n\t\tfloat: '左右折り返し',\n\t} as const;\n\n\tconst currentBlock = engine.getCurrentBlock();\n\tconst cssProps = engine.getCustomProperties();\n\n\tif (!currentBlock) {\n\t\tthrow new Error('currentBlock is null');\n\t}\n\n\tconst options = currentBlock.exportOptions();\n\n\tlet currentColumns = $state(options.props.columns ?? 1);\n</script>\n\n{#if options}\n\t<fieldset>\n\t\t<legend>コンテナ特性</legend>\n\t\t<label>\n\t\t\t<span>コンテナタイプ</span>\n\t\t\t<output>{containerTypeLabel[options.props.type]} ({options.props.type})</output>\n\t\t</label>\n\t\t{#if options.props.immutable}\n\t\t\t<p>このブロックはコンテナタイプを変更できません。</p>\n\t\t{:else}\n\t\t\t{#if options.props.type === 'inline'}\n\t\t\t\t<div role=\"radiogroup\" aria-labelledby=\"justify-group\">\n\t\t\t\t\t<div id=\"justify-group\">横方向配置</div>\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tname=\"bge-options-justify\"\n\t\t\t\t\t\t\tvalue=\"center\"\n\t\t\t\t\t\t\tdefaultChecked={options.props.justify === 'center'} /><span>中央寄せ</span>\n\t\t\t\t\t</label>\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tname=\"bge-options-justify\"\n\t\t\t\t\t\t\tvalue=\"start\"\n\t\t\t\t\t\t\tdefaultChecked={options.props.justify === 'start'} /><span>左寄せ</span>\n\t\t\t\t\t</label>\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tname=\"bge-options-justify\"\n\t\t\t\t\t\t\tvalue=\"end\"\n\t\t\t\t\t\t\tdefaultChecked={options.props.justify === 'end'} /><span>右寄せ</span>\n\t\t\t\t\t</label>\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tname=\"bge-options-justify\"\n\t\t\t\t\t\t\tvalue=\"between\"\n\t\t\t\t\t\t\tdefaultChecked={options.props.justify === 'between'} /><span>両端寄せ</span>\n\t\t\t\t\t</label>\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tname=\"bge-options-justify\"\n\t\t\t\t\t\t\tvalue=\"around\"\n\t\t\t\t\t\t\tdefaultChecked={options.props.justify === 'around'} /><span\n\t\t\t\t\t\t\t>要素間余白均等</span>\n\t\t\t\t\t</label>\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tname=\"bge-options-justify\"\n\t\t\t\t\t\t\tvalue=\"evenly\"\n\t\t\t\t\t\t\tdefaultChecked={options.props.justify === 'evenly'} /><span\n\t\t\t\t\t\t\t>要素間均等</span>\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t\t<div role=\"radiogroup\" aria-labelledby=\"align-group\">\n\t\t\t\t\t<div id=\"align-group\">縦向配置</div>\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tname=\"bge-options-align\"\n\t\t\t\t\t\t\tvalue=\"align-center\"\n\t\t\t\t\t\t\tdefaultChecked={options.props.align === 'align-center'} /><span\n\t\t\t\t\t\t\t>垂直中央寄せ</span>\n\t\t\t\t\t</label>\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tname=\"bge-options-align\"\n\t\t\t\t\t\t\tvalue=\"align-start\"\n\t\t\t\t\t\t\tdefaultChecked={options.props.align === 'align-start'} /><span>上寄せ</span>\n\t\t\t\t\t</label>\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tname=\"bge-options-align\"\n\t\t\t\t\t\t\tvalue=\"align-end\"\n\t\t\t\t\t\t\tdefaultChecked={options.props.align === 'align-end'} /><span>下寄せ</span>\n\t\t\t\t\t</label>\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tname=\"bge-options-align\"\n\t\t\t\t\t\t\tvalue=\"align-stretch\"\n\t\t\t\t\t\t\tdefaultChecked={options.props.align === 'align-stretch'} /><span>伸縮</span>\n\t\t\t\t\t</label>\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tname=\"bge-options-align\"\n\t\t\t\t\t\t\tvalue=\"align-baseline\"\n\t\t\t\t\t\t\tdefaultChecked={options.props.align === 'align-baseline'} /><span\n\t\t\t\t\t\t\t>ベースライン</span>\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t\t{#if options.props.type === 'grid'}\n\t\t\t\t<label>\n\t\t\t\t\t<span>列数</span>\n\t\t\t\t\t<output>{currentColumns}</output>\n\t\t\t\t\t<input\n\t\t\t\t\t\tname=\"bge-options-columns\"\n\t\t\t\t\t\ttype=\"range\"\n\t\t\t\t\t\tbind:value={currentColumns}\n\t\t\t\t\t\tdefaultValue={options.props.columns ?? 1}\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\tmax=\"5\" />\n\t\t\t\t</label>\n\t\t\t{/if}\n\t\t\t{#if options.props.type === 'float'}\n\t\t\t\t<div role=\"radiogroup\" aria-labelledby=\"float-group\">\n\t\t\t\t\t<div id=\"float-group\">回り込み</div>\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tname=\"bge-options-float\"\n\t\t\t\t\t\t\tvalue=\"start\"\n\t\t\t\t\t\t\tdefaultChecked={options.props.float === 'start'} /><span>左寄せ</span>\n\t\t\t\t\t</label>\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tname=\"bge-options-float\"\n\t\t\t\t\t\t\tvalue=\"end\"\n\t\t\t\t\t\t\tdefaultChecked={options.props.float === 'end'} /><span>右寄せ</span>\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/if}\n\t</fieldset>\n{/if}\n\n{#if cssProps.size > 0}\n\t<fieldset>\n\t\t<legend>ブロックのスタイル拡張</legend>\n\n\t\t{#each cssProps as [category, props] (`bge-options-style-${category}`)}\n\t\t\t<label>\n\t\t\t\t<span>{category}</span>\n\t\t\t\t<select name={`bge-options-style-${category}`}>\n\t\t\t\t\t{#each props as [propName, data] (propName)}\n\t\t\t\t\t\t<option\n\t\t\t\t\t\t\tvalue={data.isDefault ? '@@default' : propName}\n\t\t\t\t\t\t\tselected={options.style[category] === propName || data.isDefault}\n\t\t\t\t\t\t\t>{`${propName} (${data.value})`}</option>\n\t\t\t\t\t{/each}\n\t\t\t\t</select>\n\t\t\t</label>\n\t\t{/each}\n\t</fieldset>\n{/if}\n\n<label>\n\t<span>独自class設定</span>\n\t<input\n\t\ttype=\"text\"\n\t\tname=\"bge-options-classes\"\n\t\tdefaultValue={options.classList.join(' ') ?? ''}\n\t\taria-describedby=\"block-option-classes-desc\" />\n</label>\n<small id=\"block-option-classes-desc\"\n\t>複数指定する場合はスペース(空白文字)で区切ってください。</small>\n\n<label>\n\t<span>ID設定: <code>bge-</code></span>\n\t<input\n\t\tname=\"bge-options-id\"\n\t\ttype=\"text\"\n\t\tdefaultValue={options.id ?? ''}\n\t\taria-describedby=\"block-option-id-desc\" />\n</label>\n<small id=\"block-option-id-desc\"\n\t>アンカーリンク用のID属性を設定します。実際のIDは<code>bge-</code\n\t>が自動的に先頭に付加されます。</small>\n","<script lang=\"ts\">\n\timport type { BurgerEditorEngine } from '@burger-editor/core';\n\n\timport { onMount } from 'svelte';\n\texport let engine: BurgerEditorEngine;\n\n\tlet isMain: boolean;\n\tlet isVisualMode: boolean;\n\n\tonMount(update);\n\n\t/**\n\t *\n\t */\n\tfunction update() {\n\t\tisMain = engine.content.type === 'main';\n\t\tisVisualMode = engine.content.isVisualMode;\n\t}\n\n\t/**\n\t *\n\t */\n\tfunction onClickMain() {\n\t\tengine.showMain();\n\t\tupdate();\n\t}\n\n\t/**\n\t *\n\t */\n\tfunction onClickDraft() {\n\t\tengine.showDraft();\n\t\tupdate();\n\t}\n\n\t/**\n\t *\n\t */\n\tasync function onClickDraftToMain() {\n\t\tif (\n\t\t\tawait engine.draftToMain(() =>\n\t\t\t\tconfirm('下書き内容を本稿へ上書きしてもよろしいですか?'),\n\t\t\t)\n\t\t) {\n\t\t\tonClickMain();\n\t\t}\n\t}\n\n\t/**\n\t *\n\t */\n\tasync function onClickMainToDraft() {\n\t\tif (\n\t\t\tawait engine.mainToDraft(() =>\n\t\t\t\tconfirm('本稿内容を下書きへ上書きしてもよろしいですか?'),\n\t\t\t)\n\t\t) {\n\t\t\tonClickDraft();\n\t\t}\n\t}\n\n\t/**\n\t *\n\t */\n\tfunction toggleDisplayMode() {\n\t\tengine.content.toggleDisplayMode();\n\t\tupdate();\n\t}\n\n\t/**\n\t *\n\t * @param e\n\t */\n\tfunction onDblClickMain(e: MouseEvent) {\n\t\tif (!e.altKey || !isMain) {\n\t\t\treturn;\n\t\t}\n\t\tengine.showMain();\n\t\ttoggleDisplayMode();\n\t}\n\n\t/**\n\t *\n\t * @param e\n\t */\n\tfunction onDblClickDraft(e: MouseEvent) {\n\t\tif (!e.altKey || isMain) {\n\t\t\treturn;\n\t\t}\n\t\tengine.showDraft();\n\t\ttoggleDisplayMode();\n\t}\n</script>\n\n<div class=\"draft-btn\">\n\t<div class=\"draft-tab-btn\">\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\taria-pressed={isMain}\n\t\t\ton:click={onClickMain}\n\t\t\ton:dblclick={onDblClickMain}\n\t\t\t>本稿モード\n\t\t\t{#if isMain && !isVisualMode}\n\t\t\t\t<span>ソース表示</span>\n\t\t\t{/if}\n\t\t</button>\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\taria-pressed={!isMain}\n\t\t\ton:click={onClickDraft}\n\t\t\ton:dblclick={onDblClickDraft}\n\t\t\t>下書きモード\n\t\t\t{#if !isMain && !isVisualMode}\n\t\t\t\t<span>ソース表示</span>\n\t\t\t{/if}</button>\n\t</div>\n\t<div class=\"draft-copy-btn\">\n\t\t{#if isMain}\n\t\t\t<button type=\"button\" on:click={onClickMainToDraft}>本稿を下書きにコピー</button>\n\t\t{:else}\n\t\t\t<button type=\"button\" on:click={onClickDraftToMain}>下書きを本稿にコピー</button>\n\t\t{/if}\n\t</div>\n</div>\n\n<style>\n\t.draft-btn {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t}\n\n\tbutton {\n\t\tdisplay: block;\n\t\tpadding: 3px 5px;\n\t\tcolor: #333;\n\t\ttext-decoration: none;\n\t\tbackground-color: var(--bge-background-color01);\n\t\tborder: var(--bge-border-primary-color) solid 1px;\n\t}\n\n\t.draft-tab-btn {\n\t\tdisplay: flex;\n\t}\n\n\t/* stylelint-disable declaration-no-important */\n\t.draft-tab-btn button[aria-pressed='true'] {\n\t\tcolor: var(--bge-lightest-color) !important;\n\t\tbackground-color: var(--bge-background-color02) !important;\n\t\tborder-color: var(--bge-background-color02) !important;\n\t}\n\t/* stylelint-enable declaration-no-important */\n\n\t.draft-tab-btn button:hover {\n\t\tcursor: pointer;\n\t\tbackground-color: var(--bge-border-primary-color);\n\t}\n\n\t.draft-tab-btn button span {\n\t\tmargin-inline-start: 0.5em;\n\t\tfont-size: 0.8em;\n\t}\n\n\t.draft-tab-btn button span::before {\n\t\tcontent: '(';\n\t}\n\n\t.draft-tab-btn button span::after {\n\t\tcontent: ')';\n\t}\n\n\t.draft-copy-btn {\n\t\tdisplay: flex;\n\t}\n\n\t.draft-copy-btn button:hover {\n\t\tcursor: pointer;\n\t\tbackground-color: var(--bge-border-primary-color);\n\t}\n</style>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M14 3v4a1 1 0 0 0 1 1h4\" }], [\"path\", { \"d\": \"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z\" }]];\n</script>\n<Icon type=\"outline\" name=\"file\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M14 3v4a1 1 0 0 0 1 1h4\" }], [\"path\", { \"d\": \"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4\" }], [\"path\", { \"d\": \"M5 15v6h1a2 2 0 0 0 2 -2v-2a2 2 0 0 0 -2 -2h-1z\" }], [\"path\", { \"d\": \"M20 16.5a1.5 1.5 0 0 0 -3 0v3a1.5 1.5 0 0 0 3 0\" }], [\"path\", { \"d\": \"M12.5 15a1.5 1.5 0 0 1 1.5 1.5v3a1.5 1.5 0 0 1 -3 0v-3a1.5 1.5 0 0 1 1.5 -1.5z\" }]];\n</script>\n<Icon type=\"outline\" name=\"file-type-doc\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M14 3v4a1 1 0 0 0 1 1h4\" }], [\"path\", { \"d\": \"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4\" }], [\"path\", { \"d\": \"M5 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6\" }], [\"path\", { \"d\": \"M17 18h2\" }], [\"path\", { \"d\": \"M20 15h-3v6\" }], [\"path\", { \"d\": \"M11 15v6h1a2 2 0 0 0 2 -2v-2a2 2 0 0 0 -2 -2h-1z\" }]];\n</script>\n<Icon type=\"outline\" name=\"file-type-pdf\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M14 3v4a1 1 0 0 0 1 1h4\" }], [\"path\", { \"d\": \"M14 3v4a1 1 0 0 0 1 1h4\" }], [\"path\", { \"d\": \"M5 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6\" }], [\"path\", { \"d\": \"M11 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6\" }], [\"path\", { \"d\": \"M16.5 15h3\" }], [\"path\", { \"d\": \"M18 15v6\" }], [\"path\", { \"d\": \"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4\" }]];\n</script>\n<Icon type=\"outline\" name=\"file-type-ppt\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M14 3v4a1 1 0 0 0 1 1h4\" }], [\"path\", { \"d\": \"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4\" }], [\"path\", { \"d\": \"M4 15l4 6\" }], [\"path\", { \"d\": \"M4 21l4 -6\" }], [\"path\", { \"d\": \"M17 20.25c0 .414 .336 .75 .75 .75h1.25a1 1 0 0 0 1 -1v-1a1 1 0 0 0 -1 -1h-1a1 1 0 0 1 -1 -1v-1a1 1 0 0 1 1 -1h1.25a.75 .75 0 0 1 .75 .75\" }], [\"path\", { \"d\": \"M11 15v6h3\" }]];\n</script>\n<Icon type=\"outline\" name=\"file-type-xls\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M4 13m0 2a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v3a2 2 0 0 1 -2 2h-1a2 2 0 0 1 -2 -2z\" }], [\"path\", { \"d\": \"M15 13m0 2a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v3a2 2 0 0 1 -2 2h-1a2 2 0 0 1 -2 -2z\" }], [\"path\", { \"d\": \"M4 15v-3a8 8 0 0 1 16 0v3\" }]];\n</script>\n<Icon type=\"outline\" name=\"headphones\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M15 10l4.553 -2.276a1 1 0 0 1 1.447 .894v6.764a1 1 0 0 1 -1.447 .894l-4.553 -2.276v-4z\" }], [\"path\", { \"d\": \"M3 6m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z\" }]];\n</script>\n<Icon type=\"outline\" name=\"video\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","/**\n *\n * @param src\n */\nexport function getExt(src: string) {\n\tconst ext = src.split('.').pop()?.toLowerCase() ?? '';\n\n\tconst isImage = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg'].includes(ext);\n\tconst isVideo = ['mp4', 'webm', 'mov', 'avi'].includes(ext);\n\tconst isAudio = ['mp3', 'wav', 'm4a', 'ogg', 'flac'].includes(ext);\n\tconst isDoc = ['doc', 'docx'].includes(ext);\n\tconst isPpt = ['ppt', 'pptx'].includes(ext);\n\tconst isXls = ['xls', 'xlsx'].includes(ext);\n\tconst isPdf = ['pdf'].includes(ext);\n\n\treturn {\n\t\text,\n\t\tisImage,\n\t\tisVideo,\n\t\tisAudio,\n\t\tisDoc,\n\t\tisPpt,\n\t\tisXls,\n\t\tisPdf,\n\t};\n}\n","<script lang=\"ts\">\n\timport IconFile from '@tabler/icons-svelte/icons/file';\n\timport IconFileTypeDoc from '@tabler/icons-svelte/icons/file-type-doc';\n\timport IconFileTypePdf from '@tabler/icons-svelte/icons/file-type-pdf';\n\timport IconFileTypePpt from '@tabler/icons-svelte/icons/file-type-ppt';\n\timport IconFileTypeXls from '@tabler/icons-svelte/icons/file-type-xls';\n\timport IconHandphones from '@tabler/icons-svelte/icons/headphones';\n\timport IconVideo from '@tabler/icons-svelte/icons/video';\n\n\timport { getExt } from './get-ext.js';\n\n\texport let src: string;\n\tlet isLoaded = false;\n\n\tconst file = getExt(src);\n</script>\n\n<span data-bge-editor-ui-component=\"thumbnail\" data-loaded={isLoaded}>\n\t{#if file.isImage}\n\t\t<img {src} alt=\"画像のプレビュー\" loading=\"lazy\" onload={() => (isLoaded = true)} />\n\t{:else if file.isVideo}\n\t\t<video controls={false} playsinline>\n\t\t\t<source {src} type={`video/${file.ext}`} />\n\t\t\t<track kind=\"captions\" src=\"\" />\n\t\t\t<IconVideo />\n\t\t</video>\n\t{:else if file.isAudio}\n\t\t<IconHandphones />\n\t{:else if file.isDoc}\n\t\t<IconFileTypeDoc />\n\t{:else if file.isPpt}\n\t\t<IconFileTypePpt />\n\t{:else if file.isXls}\n\t\t<IconFileTypeXls />\n\t{:else if file.isPdf}\n\t\t<IconFileTypePdf />\n\t{:else}\n\t\t<IconFile />\n\t{/if}\n</span>\n\n<style>\n\tspan {\n\t\tdisplay: block;\n\t\tinline-size: 100%;\n\t\tblock-size: 100%;\n\t}\n\n\timg,\n\tvideo {\n\t\tdisplay: block;\n\t\tinline-size: 100%;\n\t\tblock-size: 100%;\n\t\tobject-fit: cover;\n\t\ttransition: opacity 300ms linear;\n\t}\n\n\t[data-loaded='false'] img {\n\t\topacity: 0;\n\t}\n\n\t[data-loaded='true'] img {\n\t\topacity: 1;\n\t}\n</style>\n","<script lang=\"ts\">\n\timport type { BurgerEditorEngine, FileListItem, FileType } from '@burger-editor/core';\n\n\timport { formatByteSize, formatDate } from '@burger-editor/utils';\n\n\timport Thumbnail from './thumbnail.svelte';\n\texport let engine: BurgerEditorEngine;\n\texport let fileType: FileType;\n\n\tconst getFileList = engine.serverAPI.getFileList;\n\tconst deleteFile = engine.serverAPI.deleteFile;\n\n\tlet fileList: readonly FileListItem[] = [];\n\tlet selectedPath = '';\n\tlet searchWord = '';\n\tlet currentPage = 0;\n\tlet totalPage = 1;\n\n\tlet uploaded = 0;\n\tlet total = 100;\n\n\tlet requestDebounce: number = -1;\n\n\tengine.componentObserver.on('file-select', async ({ path, isMounted }) => {\n\t\tselectedPath = path;\n\n\t\tif (\n\t\t\t!isMounted && // On initial mount\n\t\t\tgetFileList\n\t\t) {\n\t\t\tconst result = await getFileList(fileType, {\n\t\t\t\tfilter: '',\n\t\t\t\tpage: 0,\n\t\t\t\tselected: selectedPath,\n\t\t\t});\n\t\t\tfileList = result.data;\n\t\t\tcurrentPage = result.pagination.current;\n\t\t\ttotalPage = result.pagination.total;\n\t\t}\n\n\t\tif (path.startsWith('blob:')) {\n\t\t\tfileList = [\n\t\t\t\t{\n\t\t\t\t\tfileId: '',\n\t\t\t\t\tname: '',\n\t\t\t\t\tsize: 0,\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\turl: path,\n\t\t\t\t\tsizes: {},\n\t\t\t\t},\n\t\t\t\t...fileList.filter((file) => !file.url.startsWith('blob:')),\n\t\t\t];\n\t\t}\n\n\t\tconst selectedButton = await awaitUntilFound(() =>\n\t\t\tdocument.querySelector<HTMLButtonElement>(\n\t\t\t\t`button[aria-pressed=\"true\"]:has(img[src=\"${path}\"])`,\n\t\t\t),\n\t\t);\n\t\tif (selectedButton) {\n\t\t\tselectedButton.scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tblock: 'nearest',\n\t\t\t});\n\t\t}\n\t});\n\n\tengine.componentObserver.on('file-upload-progress', (progress) => {\n\t\tif (progress.blob === selectedPath) {\n\t\t\tuploaded = progress.uploaded;\n\t\t\ttotal = progress.total;\n\t\t}\n\t});\n\n\tengine.componentObserver.on('file-listup', ({ data }) => {\n\t\tfileList = data;\n\t});\n\n\t/**\n\t *\n\t * @param page\n\t */\n\tasync function paginate(page: number) {\n\t\tif (currentPage === page) {\n\t\t\treturn;\n\t\t}\n\t\tcurrentPage = page;\n\t\twindow.clearTimeout(requestDebounce);\n\t\trequestDebounce = window.setTimeout(async () => {\n\t\t\tconst result = await getFileList?.(fileType, { page });\n\t\t\tif (result) {\n\t\t\t\tfileList = result.data;\n\t\t\t\tcurrentPage = result.pagination.current;\n\t\t\t\ttotalPage = result.pagination.total;\n\t\t\t}\n\t\t}, 100);\n\t}\n\n\t/**\n\t *\n\t * @param value\n\t */\n\tfunction search(value: string) {\n\t\tif (searchWord === value) {\n\t\t\treturn;\n\t\t}\n\t\tsearchWord = value;\n\t\twindow.clearTimeout(requestDebounce);\n\t\trequestDebounce = window.setTimeout(async () => {\n\t\t\tconst result = await getFileList?.(fileType, { filter: searchWord });\n\t\t\tif (result) {\n\t\t\t\tfileList = result.data;\n\t\t\t\tcurrentPage = result.pagination.current;\n\t\t\t\ttotalPage = result.pagination.total;\n\t\t\t}\n\t\t}, 300);\n\t}\n\n\t/**\n\t *\n\t * @param path\n\t * @param fileSize\n\t */\n\tfunction selectFile(path: string, fileSize: number) {\n\t\tengine.componentObserver.notify('file-select', {\n\t\t\tpath,\n\t\t\tfileSize,\n\t\t\tisEmpty: false,\n\t\t\tisMounted: true,\n\t\t});\n\t}\n\n\t/**\n\t *\n\t * @param callback\n\t */\n\tasync function awaitUntilFound<T>(callback: () => T): Promise<T> {\n\t\tconst result = callback();\n\t\tif (result) {\n\t\t\treturn result;\n\t\t}\n\t\tawait new Promise((resolve) => {\n\t\t\trequestAnimationFrame(resolve);\n\t\t});\n\t\treturn awaitUntilFound(callback);\n\t}\n</script>\n\n{#snippet marked(chars: string[])}\n\t{#each chars as char, i (char + i)}\n\t\t{#if i !== 0}<mark>{searchWord}</mark>{/if}{char}\n\t{/each}\n{/snippet}\n\n<div class=\"ctrl\">\n\t<div class=\"pagination\">\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tdisabled={currentPage === 0}\n\t\t\ton:click={() => paginate(currentPage - 1)}>\n\t\t\t前へ\n\t\t</button>\n\t\t<div class=\"page\">\n\t\t\t<span\n\t\t\t\t><input\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tvalue={currentPage + 1}\n\t\t\t\t\tmin=\"1\"\n\t\t\t\t\tmax={totalPage}\n\t\t\t\t\ton:change={(e) => paginate(e.currentTarget.valueAsNumber - 1)}\n\t\t\t\t\taria-label=\"ページ番号\" /></span>\n\t\t\t<span>/</span>\n\t\t\t<span>{totalPage}</span>\n\t\t</div>\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tdisabled={currentPage === totalPage - 1}\n\t\t\ton:click={() => paginate(currentPage + 1)}>\n\t\t\t次へ\n\t\t</button>\n\t</div>\n\t<input\n\t\ttype=\"search\"\n\t\tplaceholder=\"検索\"\n\t\tvalue={searchWord}\n\t\ton:input={(e) => search(e.currentTarget.value)} />\n</div>\n\n<ul class=\"list\">\n\t{#each fileList as file (file.url)}\n\t\t<li>\n\t\t\t<button\n\t\t\t\tclass=\"file\"\n\t\t\t\ttype=\"button\"\n\t\t\t\taria-pressed={file.url === selectedPath}\n\t\t\t\ton:click={() => selectFile(file.url, file.size)}>\n\t\t\t\t<span class=\"thumbnail\"><Thumbnail src={file.url} /></span>\n\t\t\t\t{#if file.url.startsWith('blob:')}\n\t\t\t\t\t<span\n\t\t\t\t\t\t>アップロード中... <span>{Math.floor((uploaded / total) * 100)}%</span></span>\n\t\t\t\t{:else}\n\t\t\t\t\t<span class=\"attr\">\n\t\t\t\t\t\t<span>ID</span><span>{@render marked(file.fileId.split(searchWord))}</span>\n\t\t\t\t\t\t<span>名称</span><span>{@render marked(file.name.split(searchWord))}</span>\n\t\t\t\t\t\t<span>更新</span><span\n\t\t\t\t\t\t\t>{formatDate(file.timestamp / 1000, 'YYYY-MM-DD HH:mm')}</span>\n\t\t\t\t\t\t<span>サイズ</span><span>{formatByteSize(file.size)}</span>\n\t\t\t\t\t</span>\n\t\t\t\t{/if}\n\t\t\t</button>\n\t\t\t{#if !file.url.startsWith('blob:') && deleteFile}\n\t\t\t\t<button\n\t\t\t\t\tclass=\"delete\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ton:click={() => deleteFile('image', file.url)}>削除</button>\n\t\t\t{/if}\n\t\t</li>\n\t{/each}\n</ul>\n\n<style>\n\t.ctrl {\n\t\tdisplay: flex;\n\t\tgap: 2em;\n\t\tmargin-block-end: 1em;\n\t}\n\n\t.pagination {\n\t\tdisplay: flex;\n\t\tflex: 1 0 auto;\n\t\tgap: 1em;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\tbutton {\n\t\t\tuser-select: none;\n\t\t}\n\t}\n\n\t.page {\n\t\tdisplay: flex;\n\t\tgap: 0.5em;\n\t\talign-items: center;\n\t}\n\n\t.list {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 0.5em;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n\n\t.list li {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\tlist-style: none;\n\t}\n\n\t.file {\n\t\tz-index: 0;\n\t\tdisplay: flex;\n\t\tgap: 1em;\n\t\talign-items: center;\n\t\tinline-size: 100%;\n\t\tpadding: 0.5em;\n\t\ttext-align: start;\n\t\tborder: none;\n\t}\n\n\t.file > span {\n\t\tdisplay: block;\n\t}\n\n\t.file > span.thumbnail {\n\t\tdisplay: block;\n\t\tflex: 0 0 7em;\n\t\tinline-size: 7em;\n\t\tblock-size: 7em;\n\t}\n\n\t.file > span.attr {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: max-content 1fr;\n\t\tgap: 0.2em 1em;\n\t\talign-items: baseline;\n\t}\n\n\t.file > span.attr > span:nth-child(odd)::after {\n\t\tcontent: ':';\n\t}\n\n\t.delete {\n\t\tposition: absolute;\n\t\tinset-block-end: 0.7em;\n\t\tinset-inline-end: 0.7em;\n\t\tdisplay: block;\n\t\tpadding: 0.5em;\n\t\tfont-size: 0.8em;\n\t\ttext-align: center;\n\t\topacity: 0;\n\n\t\t&:hover {\n\t\t\t--bge-border-color: var(--bge-ui-primary-color);\n\t\t}\n\t}\n\n\t.file[aria-pressed='true'] + .delete {\n\t\t--bge-outline-color: #fff;\n\t\t--bge-border-color: #fff;\n\t\tcolor: #fff;\n\t\tbackground-color: var(--bge-ui-primary-color);\n\t}\n\n\tli:is(:focus-within:has(:focus-visible), :hover) .delete {\n\t\topacity: 1;\n\t}\n</style>\n","<script lang=\"ts\">\n\timport type { BurgerEditorEngine, FileType } from '@burger-editor/core';\n\texport let engine: BurgerEditorEngine;\n\texport let fileType: FileType;\n\n\tconst accept = fileType === 'image' ? 'image/*' : '*';\n\n\tlet inputFile: HTMLInputElement;\n\n\t/**\n\t *\n\t */\n\tfunction openFile() {\n\t\tinputFile.click();\n\t}\n\n\t/**\n\t *\n\t */\n\tasync function stageFile() {\n\t\tconst file = inputFile.files?.[0];\n\t\tif (!file) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst path = URL.createObjectURL(file);\n\n\t\tengine.componentObserver.notify('file-select', {\n\t\t\tpath,\n\t\t\tfileSize: file.size,\n\t\t\tisEmpty: false,\n\t\t});\n\n\t\tconst res = await engine.serverAPI.postFile?.(fileType, file, (uploaded, total) => {\n\t\t\tengine.componentObserver.notify('file-upload-progress', {\n\t\t\t\tblob: path,\n\t\t\t\tuploaded,\n\t\t\t\ttotal,\n\t\t\t});\n\t\t});\n\n\t\tif (!res) {\n\t\t\tthrow new Error(`Failed to upload file: ${file.name}`);\n\t\t}\n\n\t\tengine.componentObserver.notify('file-listup', {\n\t\t\tfileType: fileType,\n\t\t\tdata: [res.uploaded],\n\t\t});\n\n\t\tengine.componentObserver.notify('file-select', {\n\t\t\tpath: res.uploaded.url,\n\t\t\tfileSize: res.uploaded.size,\n\t\t\tisEmpty: false,\n\t\t});\n\t}\n</script>\n\n<div>\n\t<input type=\"file\" bind:this={inputFile} on:change={stageFile} {accept} />\n\t<button type=\"button\" on:click={openFile}>ファイルを追加アップロードする</button>\n</div>\n\n<style>\n\tinput[type='file'] {\n\t\tdisplay: none;\n\t}\n</style>\n","<script lang=\"ts\">\n\timport type { BurgerEditorEngine } from '@burger-editor/core';\n\n\timport { getExt } from './get-ext.js';\n\texport let engine: BurgerEditorEngine;\n\n\tlet selectedPath = '';\n\tlet width = Number.NaN;\n\tlet height = Number.NaN;\n\tlet file: ReturnType<typeof getExt> | null = null;\n\n\tlet uploaded = 0;\n\tlet total = 100;\n\n\t$: isUploadingMode = selectedPath.startsWith('blob:');\n\n\tengine.componentObserver.on('file-select', ({ path }) => {\n\t\tselectedPath = path;\n\t\tfile = getExt(path);\n\t});\n\n\tengine.componentObserver.on('file-upload-progress', (progress) => {\n\t\tif (progress.blob === selectedPath) {\n\t\t\tuploaded = progress.uploaded;\n\t\t\ttotal = progress.total;\n\t\t}\n\t});\n\n\t$: {\n\t\twidth = Number.NaN;\n\t\theight = Number.NaN;\n\n\t\tif (file?.isImage) {\n\t\t\tconst image = new Image();\n\t\t\timage.src = selectedPath;\n\t\t\timage.addEventListener(\n\t\t\t\t'load',\n\t\t\t\t() => {\n\t\t\t\t\twidth = image.naturalWidth;\n\t\t\t\t\theight = image.naturalHeight;\n\t\t\t\t},\n\t\t\t\t{ once: true },\n\t\t\t);\n\t\t} else if (file?.isVideo) {\n\t\t\tconst video = document.createElement('video');\n\t\t\tvideo.src = selectedPath;\n\t\t\tvideo.addEventListener(\n\t\t\t\t'loadedmetadata',\n\t\t\t\t() => {\n\t\t\t\t\twidth = video.videoWidth;\n\t\t\t\t\theight = video.videoHeight;\n\t\t\t\t},\n\t\t\t\t{ once: true },\n\t\t\t);\n\t\t}\n\t}\n</script>\n\n<div>\n\t<div class=\"img\" class:uploading={isUploadingMode}>\n\t\t{#if file?.isImage}\n\t\t\t<img src={selectedPath} alt=\"画像プレビュー\" />\n\t\t{:else if file?.isVideo}\n\t\t\t<video controls playsinline>\n\t\t\t\t<source src={selectedPath} type={`video/${file.ext}`} />\n\t\t\t\t<track kind=\"captions\" src=\"\" />\n\t\t\t</video>\n\t\t{:else if file?.isAudio}\n\t\t\t<audio controls>\n\t\t\t\t<source src={selectedPath} type={`audio/${file.ext}`} />\n\t\t\t\t<track kind=\"metadata\" src=\"\" />\n\t\t\t</audio>\n\t\t{:else if file?.isDoc || file?.isPpt || file?.isXls || file?.isPdf}\n\t\t\t<object\n\t\t\t\tdata={selectedPath}\n\t\t\t\ttype={`application/${file.ext}`}\n\t\t\t\ttitle={`${file.ext}ファイルのプレビュー`}>\n\t\t\t\t<p>プレビューできません</p>\n\t\t\t</object>\n\t\t{:else}\n\t\t\t<p>プレビューできません</p>\n\t\t{/if}\n\t\t{#if isUploadingMode}\n\t\t\t<div class=\"progress\" style:translate={`${(uploaded / total) * 100}%`}></div>\n\t\t{/if}\n\t</div>\n\t<ul>\n\t\t{#if isUploadingMode}\n\t\t\t<li class=\"upload\">\n\t\t\t\t<span>アップロード...</span>\n\t\t\t\t<span class=\"progress\"\n\t\t\t\t\t>{Math.round((uploaded / total) * 100)}% ({uploaded}/{total})</span>\n\t\t\t</li>\n\t\t{:else}\n\t\t\t<li class=\"path\"><a href={selectedPath} target=\"_blank\">{selectedPath}</a></li>\n\t\t{/if}\n\t\t{#if !Number.isNaN(width) && !Number.isNaN(height)}\n\t\t\t<li class=\"dimension\">{width}x{height}</li>\n\t\t{/if}\n\t</ul>\n</div>\n\n<style>\n\t.img {\n\t\tposition: relative;\n\t\toverflow: hidden;\n\n\t\timg,\n\t\tvideo,\n\t\taudio,\n\t\tobject,\n\t\tp {\n\t\t\tposition: relative;\n\t\t\tz-index: 0;\n\t\t\tdisplay: block;\n\t\t\tinline-size: 100%;\n\t\t\taspect-ratio: 16 / 9;\n\t\t\tmargin: 0;\n\t\t\tobject-fit: contain;\n\t\t}\n\n\t\tp {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tbackground: rgb(0 0 0 / 10%);\n\t\t}\n\n\t\t&.uploading img {\n\t\t\tobject-fit: cover;\n\t\t}\n\n\t\t.progress {\n\t\t\tposition: absolute;\n\t\t\tinset-block-start: 0;\n\t\t\tz-index: 10;\n\t\t\tinline-size: 100%;\n\t\t\tblock-size: 100%;\n\t\t\tbackground: rgb(0 0 0 / 50%);\n\t\t}\n\t}\n\n\tul {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tgap: 0.3em;\n\t\tjustify-content: center;\n\t\tpadding: 0;\n\t\tpadding-block-end: 1em;\n\t\tmargin: 0;\n\t\tmargin-block-start: 0.5em;\n\t\tfont-family: monospace;\n\t\tfont-size: calc(12 / 16 * 1em);\n\t\topacity: 0.7;\n\t}\n\n\tli {\n\t\tdisplay: block;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\tlist-style: none;\n\t}\n\n\t.path {\n\t\tword-break: break-all;\n\n\t\ta {\n\t\t\tcolor: inherit;\n\t\t}\n\t}\n\n\t.upload .progress {\n\t\tfont-style: italic;\n\t}\n\n\t.dimension {\n\t\t&::before {\n\t\t\tcontent: '(';\n\t\t}\n\n\t\t&::after {\n\t\t\tcontent: ')';\n\t\t}\n\t}\n</style>\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Component, MountOptions } from 'svelte';\n\nimport { mount, unmount } from 'svelte';\n\n/**\n *\n * @param component\n * @param options\n */\nexport function svelteMount<P extends Record<string, any>>(\n\tcomponent: Component<P>,\n\toptions: MountOptions<P>,\n) {\n\tconst svelteComponent = mount(component, options);\n\n\treturn {\n\t\tcleanUp: () => {\n\t\t\tvoid unmount(svelteComponent, { outro: false });\n\t\t},\n\t};\n}\n","<script>import Icon from '../Icon.svelte';\nconst iconNode = [[\"path\", { \"d\": \"M17 3v6\" }], [\"path\", { \"d\": \"M10 18l-3 3l-3 -3\" }], [\"path\", { \"d\": \"M7 21v-18\" }], [\"path\", { \"d\": \"M20 6l-3 -3l-3 3\" }], [\"path\", { \"d\": \"M17 21v-2\" }], [\"path\", { \"d\": \"M17 15v-2\" }]];\n</script>\n<Icon type=\"outline\" name=\"arrows-transfer-down\" {...$$props} iconNode={iconNode}>\n <slot/>\n</Icon>\n","<script lang=\"ts\">\n\timport type { BurgerEditorEngine } from '@burger-editor/core';\n\n\timport IconArrowsTransferDown from '@tabler/icons-svelte/icons/arrows-transfer-down';\n\timport IconRowInsertBottom from '@tabler/icons-svelte/icons/row-insert-bottom';\n\timport IconTrash from '@tabler/icons-svelte/icons/trash';\n\n\texport let engine: BurgerEditorEngine;\n\n\ttype Data = {\n\t\tth: string[];\n\t\ttd: string[];\n\t};\n\ttype Table = [th: string, td: string][];\n\n\tlet table: Table = [];\n\n\tengine.componentObserver.on('open-editor', ({ data }) => {\n\t\tconst { th, td } = data as Data;\n\t\ttable = th.map((th, i) => [th, td[i] ?? '']);\n\t\tupdateDataEl();\n\t});\n\n\t/**\n\t *\n\t * @param index\n\t */\n\tfunction add(index: number) {\n\t\ttable = table.toSpliced(index + 1, 0, ['', '']);\n\t\tupdateDataEl();\n\t}\n\n\t/**\n\t *\n\t * @param index\n\t */\n\tfunction remove(index: number) {\n\t\ttable = table.toSpliced(index, 1);\n\t\tupdateDataEl();\n\t}\n\n\t/**\n\t *\n\t * @param from\n\t * @param to\n\t */\n\tfunction move(from: number, to: number) {\n\t\tconst $from = table[from]!;\n\t\tconst $to = table[to]!;\n\t\ttable = table.toSpliced(from, 1, $to);\n\t\ttable = table.toSpliced(to, 1, $from);\n\t\tupdateDataEl();\n\t}\n\n\t/**\n\t * Updates the data element with new values.\n\t * This function is responsible for modifying the data element\n\t * based on the provided logic or parameters.\n\t */\n\tfunction updateDataEl() {\n\t\tconst dataEl = engine.itemEditorDialog.find<HTMLInputElement>('[name=bge]');\n\t\tif (!dataEl) {\n\t\t\tthrow new Error('dataEl not found');\n\t\t}\n\t\tconst data: Data = {\n\t\t\tth: table.map(([th]) => th),\n\t\t\ttd: table.map(([, td]) => td),\n\t\t};\n\t\tdataEl.value = JSON.stringify(data);\n\t}\n</script>\n\n<div class=\"table\">\n\t{#each table as row, i (i)}\n\t\t<div class=\"row\">\n\t\t\t<div class=\"th\">\n\t\t\t\t<textarea\n\t\t\t\t\taria-label={`${i}行目の見出しセル`}\n\t\t\t\t\tname={`bge-th-${i}`}\n\t\t\t\t\tbind:value={row[0]}\n\t\t\t\t\toninput={updateDataEl}></textarea>\n\t\t\t</div>\n\t\t\t<div class=\"td\">\n\t\t\t\t<textarea\n\t\t\t\t\taria-label={`${i}行目の内容セル`}\n\t\t\t\t\tname={`bge-td-${i}`}\n\t\t\t\t\tbind:value={row[1]}\n\t\t\t\t\toninput={updateDataEl}></textarea>\n\t\t\t</div>\n\t\t\t<div class=\"btn\">\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<button type=\"button\" title=\"下に追加\" onclick={() => add(i)}>\n\t\t\t\t\t\t\t<IconRowInsertBottom />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\ttitle=\"削除\"\n\t\t\t\t\t\t\tdisabled={table.length === 1}\n\t\t\t\t\t\t\tonclick={() => remove(i)}>\n\t\t\t\t\t\t\t<IconTrash />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\ttitle=\"下に移動\"\n\t\t\t\t\t\t\tdisabled={i === table.length - 1}\n\t\t\t\t\t\t\tonclick={() => move(i, i + 1)}>\n\t\t\t\t\t\t\t<IconArrowsTransferDown class=\"icon\" />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</div>\n\t{/each}\n</div>\n\n<style>\n\t.table {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: minmax(1em, 1fr) minmax(1em, 1fr) auto;\n\t\tgap: 0.5em 1em;\n\t}\n\n\t.row {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: subgrid;\n\t\tgrid-column: span 3;\n\t\talign-items: center;\n\t}\n\n\ttextarea {\n\t\tinline-size: 100%;\n\t\tresize: vertical;\n\t}\n\n\t.btn ul {\n\t\tdisplay: flex;\n\t\tgap: 0.3em;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n\n\t.btn li {\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\tlist-style: none;\n\t}\n</style>\n","export class Migrator {\n}\n","import type { Config } from '@burger-editor/core';\n\n/**\n * 意味ない。たぶんそれぞれのプラットフォームでConfigの型が違うから。\n * @deprecated\n * @param urlOrScriptElement\n * @returns\n */\nexport async function getConfig(urlOrScriptElement: string): Promise<Config>;\nexport async function getConfig(urlOrScriptElement: HTMLScriptElement): Promise<Config>;\n/**\n *\n * @param urlOrScriptElement\n */\nexport async function getConfig(\n\turlOrScriptElement: string | HTMLScriptElement,\n): Promise<Config> {\n\tlet config: Config;\n\tif (typeof urlOrScriptElement === 'string') {\n\t\tconfig = await fetchConfig(urlOrScriptElement);\n\t} else {\n\t\tconfig = getConfigByScriptElement(urlOrScriptElement);\n\t}\n\treturn config;\n}\n\n/**\n *\n * @param url\n */\nasync function fetchConfig(url: string): Promise<Config> {\n\tconst response = await fetch(url);\n\tif (!response.ok) {\n\t\tthrow new Error(`Failed to fetch configuration JSON. ${response.statusText}`);\n\t}\n\tconst config = await response.text();\n\treturn parseConfig(config);\n}\n\n/**\n *\n * @param scriptElement\n */\nfunction getConfigByScriptElement(scriptElement: HTMLScriptElement): Config {\n\tif (!scriptElement) {\n\t\tthrow new Error('Configuration JSON from the script element is not found.');\n\t}\n\tconst json = scriptElement.textContent ?? '';\n\treturn parseConfig(json);\n}\n\n/**\n *\n * @param config\n */\nfunction parseConfig(config: string): Config {\n\ttry {\n\t\tconst json = JSON.parse(config);\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.info('success: Configuration JSON is parsed.');\n\t\treturn json;\n\t} catch {\n\t\tthrow new SyntaxError('parse error: Configuration JSON.');\n\t}\n}\n","import type { BurgerEditorEngineOptions } from '@burger-editor/core';\n\nimport { BurgerEditorEngine } from '@burger-editor/core';\n\nimport BlockCatalog from './block-catalog.svelte';\nimport BlockMenu from './block-menu.svelte';\nimport BlockOptions from './block-options.svelte';\nimport DraftSwitcher from './draft-switcher.svelte';\nimport FileList from './file-list.svelte';\nimport FileUploader from './file-uploader.svelte';\nimport Preview from './preview.svelte';\nimport { svelteMount } from './svelte-mount.js';\nimport TableEditor from './table-editor.svelte';\n\nimport './style/ui.scss';\n\nexport const version = __VERSION__;\n\n/**\n *\n * @param engine\n */\nexport function attachDraftSwitcher(engine: BurgerEditorEngine) {\n\tif (engine.hasDraft()) {\n\t\tconst container = document.createElement('div');\n\t\tcontainer.dataset.bgeComponent = 'draft-switcher';\n\t\tengine.viewArea.insertAdjacentElement('beforebegin', container);\n\t\treturn svelteMount(DraftSwitcher, {\n\t\t\ttarget: container,\n\t\t\tprops: {\n\t\t\t\tengine,\n\t\t\t},\n\t\t});\n\t}\n\n\treturn null;\n}\n\n/**\n *\n * @param options\n */\nexport async function createBurgerEditorClient(\n\toptions: Omit<BurgerEditorEngineOptions, 'ui' | 'blockMenu'>,\n) {\n\tconst engine = await BurgerEditorEngine.new({\n\t\t...options,\n\t\tblockMenu: (el, engine) => {\n\t\t\treturn svelteMount(BlockMenu, {\n\t\t\t\ttarget: el,\n\t\t\t\tprops: {\n\t\t\t\t\tengine,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tui: {\n\t\t\tblockCatalog: (el, engine) => {\n\t\t\t\treturn svelteMount(BlockCatalog, {\n\t\t\t\t\ttarget: el,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tengine,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t\tblockOptions: (el, engine) => {\n\t\t\t\treturn svelteMount(BlockOptions, {\n\t\t\t\t\ttarget: el,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tengine,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t\timageList: (el, engine) => {\n\t\t\t\treturn svelteMount(FileList, {\n\t\t\t\t\ttarget: el,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tengine,\n\t\t\t\t\t\tfileType: 'image',\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t\tfileList: (el, engine) => {\n\t\t\t\treturn svelteMount(FileList, {\n\t\t\t\t\ttarget: el,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tengine,\n\t\t\t\t\t\tfileType: 'other',\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t\timageUploader: (el, engine) => {\n\t\t\t\treturn svelteMount(FileUploader, {\n\t\t\t\t\ttarget: el,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tengine,\n\t\t\t\t\t\tfileType: 'image',\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t\tfileUploader: (el, engine) => {\n\t\t\t\treturn svelteMount(FileUploader, {\n\t\t\t\t\ttarget: el,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tengine,\n\t\t\t\t\t\tfileType: 'other',\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t\tpreview: (el, engine) => {\n\t\t\t\treturn svelteMount(Preview, {\n\t\t\t\t\ttarget: el,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tengine,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t\ttableEditor: (el, engine) => {\n\t\t\t\treturn svelteMount(TableEditor, {\n\t\t\t\t\ttarget: el,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tengine,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t});\n\n\treturn {\n\t\tengine,\n\t};\n}\n\nexport { Migrator } from '@burger-editor/migrator';\nexport { getConfig } from './get-config.js';\n"],"names":["html","link","block","root","this","require$$0","require$$1","require$$2","require$$3","require$$4","semver","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","require$$37","require$$38","require$$39","require$$40","set","get","combinateSoundMarks.default","source","e.state_descriptors_fixed","e.state_prototype_fixed","e.state_unsafe_mutation","e.effect_update_depth_exceeded","e.effect_orphan","e.effect_in_unowned_derived","e.effect_in_teardown","clsx","_clsx","e.props_invalid_value","$.prop","$.get","$.each","$.template_effect","$.set_attribute","$.html","$.set_text","$.event","$.index","$.props_id","$.set","$.bind_value","$.mutable_source","$.noop","$.derived_safe_equal","$.set_value","$.bind_this","DraftSwitcher","engine","BlockMenu","BlockCatalog","BlockOptions","FileList","FileUploader","TableEditor"],"mappings":"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AAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,E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,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC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","x_google_ignoreList":[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,78,79,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,139,140,141,142,143,144,145,146,147,148,149,155,156,157,158,159,160,161,168]}