{"version":3,"file":"index.mjs","sources":["../../../../../../node_modules/@codemirror/lang-html/dist/index.js"],"sourcesContent":["import { parser, configureNesting } from '@lezer/html';\nimport { cssLanguage, css } from '@codemirror/lang-css';\nimport { javascriptLanguage, typescriptLanguage, jsxLanguage, tsxLanguage, javascript } from '@codemirror/lang-javascript';\nimport { EditorView } from '@codemirror/view';\nimport { EditorSelection } from '@codemirror/state';\nimport { syntaxTree, LRLanguage, indentNodeProp, foldNodeProp, bracketMatchingHandle, LanguageSupport } from '@codemirror/language';\n\nconst Targets = [\"_blank\", \"_self\", \"_top\", \"_parent\"];\nconst Charsets = [\"ascii\", \"utf-8\", \"utf-16\", \"latin1\", \"latin1\"];\nconst Methods = [\"get\", \"post\", \"put\", \"delete\"];\nconst Encs = [\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"];\nconst Bool = [\"true\", \"false\"];\nconst S = {}; // Empty tag spec\nconst Tags = {\n    a: {\n        attrs: {\n            href: null, ping: null, type: null,\n            media: null,\n            target: Targets,\n            hreflang: null\n        }\n    },\n    abbr: S,\n    address: S,\n    area: {\n        attrs: {\n            alt: null, coords: null, href: null, target: null, ping: null,\n            media: null, hreflang: null, type: null,\n            shape: [\"default\", \"rect\", \"circle\", \"poly\"]\n        }\n    },\n    article: S,\n    aside: S,\n    audio: {\n        attrs: {\n            src: null, mediagroup: null,\n            crossorigin: [\"anonymous\", \"use-credentials\"],\n            preload: [\"none\", \"metadata\", \"auto\"],\n            autoplay: [\"autoplay\"],\n            loop: [\"loop\"],\n            controls: [\"controls\"]\n        }\n    },\n    b: S,\n    base: { attrs: { href: null, target: Targets } },\n    bdi: S,\n    bdo: S,\n    blockquote: { attrs: { cite: null } },\n    body: S,\n    br: S,\n    button: {\n        attrs: {\n            form: null, formaction: null, name: null, value: null,\n            autofocus: [\"autofocus\"],\n            disabled: [\"autofocus\"],\n            formenctype: Encs,\n            formmethod: Methods,\n            formnovalidate: [\"novalidate\"],\n            formtarget: Targets,\n            type: [\"submit\", \"reset\", \"button\"]\n        }\n    },\n    canvas: { attrs: { width: null, height: null } },\n    caption: S,\n    center: S,\n    cite: S,\n    code: S,\n    col: { attrs: { span: null } },\n    colgroup: { attrs: { span: null } },\n    command: {\n        attrs: {\n            type: [\"command\", \"checkbox\", \"radio\"],\n            label: null, icon: null, radiogroup: null, command: null, title: null,\n            disabled: [\"disabled\"],\n            checked: [\"checked\"]\n        }\n    },\n    data: { attrs: { value: null } },\n    datagrid: { attrs: { disabled: [\"disabled\"], multiple: [\"multiple\"] } },\n    datalist: { attrs: { data: null } },\n    dd: S,\n    del: { attrs: { cite: null, datetime: null } },\n    details: { attrs: { open: [\"open\"] } },\n    dfn: S,\n    div: S,\n    dl: S,\n    dt: S,\n    em: S,\n    embed: { attrs: { src: null, type: null, width: null, height: null } },\n    eventsource: { attrs: { src: null } },\n    fieldset: { attrs: { disabled: [\"disabled\"], form: null, name: null } },\n    figcaption: S,\n    figure: S,\n    footer: S,\n    form: {\n        attrs: {\n            action: null, name: null,\n            \"accept-charset\": Charsets,\n            autocomplete: [\"on\", \"off\"],\n            enctype: Encs,\n            method: Methods,\n            novalidate: [\"novalidate\"],\n            target: Targets\n        }\n    },\n    h1: S, h2: S, h3: S, h4: S, h5: S, h6: S,\n    head: {\n        children: [\"title\", \"base\", \"link\", \"style\", \"meta\", \"script\", \"noscript\", \"command\"]\n    },\n    header: S,\n    hgroup: S,\n    hr: S,\n    html: {\n        attrs: { manifest: null }\n    },\n    i: S,\n    iframe: {\n        attrs: {\n            src: null, srcdoc: null, name: null, width: null, height: null,\n            sandbox: [\"allow-top-navigation\", \"allow-same-origin\", \"allow-forms\", \"allow-scripts\"],\n            seamless: [\"seamless\"]\n        }\n    },\n    img: {\n        attrs: {\n            alt: null, src: null, ismap: null, usemap: null, width: null, height: null,\n            crossorigin: [\"anonymous\", \"use-credentials\"]\n        }\n    },\n    input: {\n        attrs: {\n            alt: null, dirname: null, form: null, formaction: null,\n            height: null, list: null, max: null, maxlength: null, min: null,\n            name: null, pattern: null, placeholder: null, size: null, src: null,\n            step: null, value: null, width: null,\n            accept: [\"audio/*\", \"video/*\", \"image/*\"],\n            autocomplete: [\"on\", \"off\"],\n            autofocus: [\"autofocus\"],\n            checked: [\"checked\"],\n            disabled: [\"disabled\"],\n            formenctype: Encs,\n            formmethod: Methods,\n            formnovalidate: [\"novalidate\"],\n            formtarget: Targets,\n            multiple: [\"multiple\"],\n            readonly: [\"readonly\"],\n            required: [\"required\"],\n            type: [\"hidden\", \"text\", \"search\", \"tel\", \"url\", \"email\", \"password\", \"datetime\", \"date\", \"month\",\n                \"week\", \"time\", \"datetime-local\", \"number\", \"range\", \"color\", \"checkbox\", \"radio\",\n                \"file\", \"submit\", \"image\", \"reset\", \"button\"]\n        }\n    },\n    ins: { attrs: { cite: null, datetime: null } },\n    kbd: S,\n    keygen: {\n        attrs: {\n            challenge: null, form: null, name: null,\n            autofocus: [\"autofocus\"],\n            disabled: [\"disabled\"],\n            keytype: [\"RSA\"]\n        }\n    },\n    label: { attrs: { for: null, form: null } },\n    legend: S,\n    li: { attrs: { value: null } },\n    link: {\n        attrs: {\n            href: null, type: null,\n            hreflang: null,\n            media: null,\n            sizes: [\"all\", \"16x16\", \"16x16 32x32\", \"16x16 32x32 64x64\"]\n        }\n    },\n    map: { attrs: { name: null } },\n    mark: S,\n    menu: { attrs: { label: null, type: [\"list\", \"context\", \"toolbar\"] } },\n    meta: {\n        attrs: {\n            content: null,\n            charset: Charsets,\n            name: [\"viewport\", \"application-name\", \"author\", \"description\", \"generator\", \"keywords\"],\n            \"http-equiv\": [\"content-language\", \"content-type\", \"default-style\", \"refresh\"]\n        }\n    },\n    meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },\n    nav: S,\n    noscript: S,\n    object: {\n        attrs: {\n            data: null, type: null, name: null, usemap: null, form: null, width: null, height: null,\n            typemustmatch: [\"typemustmatch\"]\n        }\n    },\n    ol: { attrs: { reversed: [\"reversed\"], start: null, type: [\"1\", \"a\", \"A\", \"i\", \"I\"] },\n        children: [\"li\", \"script\", \"template\", \"ul\", \"ol\"] },\n    optgroup: { attrs: { disabled: [\"disabled\"], label: null } },\n    option: { attrs: { disabled: [\"disabled\"], label: null, selected: [\"selected\"], value: null } },\n    output: { attrs: { for: null, form: null, name: null } },\n    p: S,\n    param: { attrs: { name: null, value: null } },\n    pre: S,\n    progress: { attrs: { value: null, max: null } },\n    q: { attrs: { cite: null } },\n    rp: S,\n    rt: S,\n    ruby: S,\n    samp: S,\n    script: {\n        attrs: {\n            type: [\"text/javascript\"],\n            src: null,\n            async: [\"async\"],\n            defer: [\"defer\"],\n            charset: Charsets\n        }\n    },\n    section: S,\n    select: {\n        attrs: {\n            form: null, name: null, size: null,\n            autofocus: [\"autofocus\"],\n            disabled: [\"disabled\"],\n            multiple: [\"multiple\"]\n        }\n    },\n    slot: { attrs: { name: null } },\n    small: S,\n    source: { attrs: { src: null, type: null, media: null } },\n    span: S,\n    strong: S,\n    style: {\n        attrs: {\n            type: [\"text/css\"],\n            media: null,\n            scoped: null\n        }\n    },\n    sub: S,\n    summary: S,\n    sup: S,\n    table: S,\n    tbody: S,\n    td: { attrs: { colspan: null, rowspan: null, headers: null } },\n    template: S,\n    textarea: {\n        attrs: {\n            dirname: null, form: null, maxlength: null, name: null, placeholder: null,\n            rows: null, cols: null,\n            autofocus: [\"autofocus\"],\n            disabled: [\"disabled\"],\n            readonly: [\"readonly\"],\n            required: [\"required\"],\n            wrap: [\"soft\", \"hard\"]\n        }\n    },\n    tfoot: S,\n    th: { attrs: { colspan: null, rowspan: null, headers: null, scope: [\"row\", \"col\", \"rowgroup\", \"colgroup\"] } },\n    thead: S,\n    time: { attrs: { datetime: null } },\n    title: S,\n    tr: S,\n    track: {\n        attrs: {\n            src: null, label: null, default: null,\n            kind: [\"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\"],\n            srclang: null\n        }\n    },\n    ul: { children: [\"li\", \"script\", \"template\", \"ul\", \"ol\"] },\n    var: S,\n    video: {\n        attrs: {\n            src: null, poster: null, width: null, height: null,\n            crossorigin: [\"anonymous\", \"use-credentials\"],\n            preload: [\"auto\", \"metadata\", \"none\"],\n            autoplay: [\"autoplay\"],\n            mediagroup: [\"movie\"],\n            muted: [\"muted\"],\n            controls: [\"controls\"]\n        }\n    },\n    wbr: S\n};\nconst GlobalAttrs = {\n    accesskey: null,\n    class: null,\n    contenteditable: Bool,\n    contextmenu: null,\n    dir: [\"ltr\", \"rtl\", \"auto\"],\n    draggable: [\"true\", \"false\", \"auto\"],\n    dropzone: [\"copy\", \"move\", \"link\", \"string:\", \"file:\"],\n    hidden: [\"hidden\"],\n    id: null,\n    inert: [\"inert\"],\n    itemid: null,\n    itemprop: null,\n    itemref: null,\n    itemscope: [\"itemscope\"],\n    itemtype: null,\n    lang: [\"ar\", \"bn\", \"de\", \"en-GB\", \"en-US\", \"es\", \"fr\", \"hi\", \"id\", \"ja\", \"pa\", \"pt\", \"ru\", \"tr\", \"zh\"],\n    spellcheck: Bool,\n    autocorrect: Bool,\n    autocapitalize: Bool,\n    style: null,\n    tabindex: null,\n    title: null,\n    translate: [\"yes\", \"no\"],\n    rel: [\"stylesheet\", \"alternate\", \"author\", \"bookmark\", \"help\", \"license\", \"next\", \"nofollow\", \"noreferrer\", \"prefetch\", \"prev\", \"search\", \"tag\"],\n    role: /*@__PURE__*/\"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer\".split(\" \"),\n    \"aria-activedescendant\": null,\n    \"aria-atomic\": Bool,\n    \"aria-autocomplete\": [\"inline\", \"list\", \"both\", \"none\"],\n    \"aria-busy\": Bool,\n    \"aria-checked\": [\"true\", \"false\", \"mixed\", \"undefined\"],\n    \"aria-controls\": null,\n    \"aria-describedby\": null,\n    \"aria-disabled\": Bool,\n    \"aria-dropeffect\": null,\n    \"aria-expanded\": [\"true\", \"false\", \"undefined\"],\n    \"aria-flowto\": null,\n    \"aria-grabbed\": [\"true\", \"false\", \"undefined\"],\n    \"aria-haspopup\": Bool,\n    \"aria-hidden\": Bool,\n    \"aria-invalid\": [\"true\", \"false\", \"grammar\", \"spelling\"],\n    \"aria-label\": null,\n    \"aria-labelledby\": null,\n    \"aria-level\": null,\n    \"aria-live\": [\"off\", \"polite\", \"assertive\"],\n    \"aria-multiline\": Bool,\n    \"aria-multiselectable\": Bool,\n    \"aria-owns\": null,\n    \"aria-posinset\": null,\n    \"aria-pressed\": [\"true\", \"false\", \"mixed\", \"undefined\"],\n    \"aria-readonly\": Bool,\n    \"aria-relevant\": null,\n    \"aria-required\": Bool,\n    \"aria-selected\": [\"true\", \"false\", \"undefined\"],\n    \"aria-setsize\": null,\n    \"aria-sort\": [\"ascending\", \"descending\", \"none\", \"other\"],\n    \"aria-valuemax\": null,\n    \"aria-valuemin\": null,\n    \"aria-valuenow\": null,\n    \"aria-valuetext\": null\n};\nconst eventAttributes = /*@__PURE__*/(\"beforeunload copy cut dragstart dragover dragleave dragenter dragend \" +\n    \"drag paste focus blur change click load mousedown mouseenter mouseleave \" +\n    \"mouseup keydown keyup resize scroll unload\").split(\" \").map(n => \"on\" + n);\nfor (let a of eventAttributes)\n    GlobalAttrs[a] = null;\nclass Schema {\n    constructor(extraTags, extraAttrs) {\n        this.tags = Object.assign(Object.assign({}, Tags), extraTags);\n        this.globalAttrs = Object.assign(Object.assign({}, GlobalAttrs), extraAttrs);\n        this.allTags = Object.keys(this.tags);\n        this.globalAttrNames = Object.keys(this.globalAttrs);\n    }\n}\nSchema.default = /*@__PURE__*/new Schema;\nfunction elementName(doc, tree, max = doc.length) {\n    if (!tree)\n        return \"\";\n    let tag = tree.firstChild;\n    let name = tag && tag.getChild(\"TagName\");\n    return name ? doc.sliceString(name.from, Math.min(name.to, max)) : \"\";\n}\nfunction findParentElement(tree, skip = false) {\n    for (; tree; tree = tree.parent)\n        if (tree.name == \"Element\") {\n            if (skip)\n                skip = false;\n            else\n                return tree;\n        }\n    return null;\n}\nfunction allowedChildren(doc, tree, schema) {\n    let parentInfo = schema.tags[elementName(doc, findParentElement(tree))];\n    return (parentInfo === null || parentInfo === void 0 ? void 0 : parentInfo.children) || schema.allTags;\n}\nfunction openTags(doc, tree) {\n    let open = [];\n    for (let parent = findParentElement(tree); parent && !parent.type.isTop; parent = findParentElement(parent.parent)) {\n        let tagName = elementName(doc, parent);\n        if (tagName && parent.lastChild.name == \"CloseTag\")\n            break;\n        if (tagName && open.indexOf(tagName) < 0 && (tree.name == \"EndTag\" || tree.from >= parent.firstChild.to))\n            open.push(tagName);\n    }\n    return open;\n}\nconst identifier = /^[:\\-\\.\\w\\u00b7-\\uffff]*$/;\nfunction completeTag(state, schema, tree, from, to) {\n    let end = /\\s*>/.test(state.sliceDoc(to, to + 5)) ? \"\" : \">\";\n    let parent = findParentElement(tree, true);\n    return { from, to,\n        options: allowedChildren(state.doc, parent, schema).map(tagName => ({ label: tagName, type: \"type\" })).concat(openTags(state.doc, tree).map((tag, i) => ({ label: \"/\" + tag, apply: \"/\" + tag + end,\n            type: \"type\", boost: 99 - i }))),\n        validFor: /^\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/ };\n}\nfunction completeCloseTag(state, tree, from, to) {\n    let end = /\\s*>/.test(state.sliceDoc(to, to + 5)) ? \"\" : \">\";\n    return { from, to,\n        options: openTags(state.doc, tree).map((tag, i) => ({ label: tag, apply: tag + end, type: \"type\", boost: 99 - i })),\n        validFor: identifier };\n}\nfunction completeStartTag(state, schema, tree, pos) {\n    let options = [], level = 0;\n    for (let tagName of allowedChildren(state.doc, tree, schema))\n        options.push({ label: \"<\" + tagName, type: \"type\" });\n    for (let open of openTags(state.doc, tree))\n        options.push({ label: \"</\" + open + \">\", type: \"type\", boost: 99 - level++ });\n    return { from: pos, to: pos, options, validFor: /^<\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/ };\n}\nfunction completeAttrName(state, schema, tree, from, to) {\n    let elt = findParentElement(tree), info = elt ? schema.tags[elementName(state.doc, elt)] : null;\n    let localAttrs = info && info.attrs ? Object.keys(info.attrs) : [];\n    let names = info && info.globalAttrs === false ? localAttrs\n        : localAttrs.length ? localAttrs.concat(schema.globalAttrNames) : schema.globalAttrNames;\n    return { from, to,\n        options: names.map(attrName => ({ label: attrName, type: \"property\" })),\n        validFor: identifier };\n}\nfunction completeAttrValue(state, schema, tree, from, to) {\n    var _a;\n    let nameNode = (_a = tree.parent) === null || _a === void 0 ? void 0 : _a.getChild(\"AttributeName\");\n    let options = [], token = undefined;\n    if (nameNode) {\n        let attrName = state.sliceDoc(nameNode.from, nameNode.to);\n        let attrs = schema.globalAttrs[attrName];\n        if (!attrs) {\n            let elt = findParentElement(tree), info = elt ? schema.tags[elementName(state.doc, elt)] : null;\n            attrs = (info === null || info === void 0 ? void 0 : info.attrs) && info.attrs[attrName];\n        }\n        if (attrs) {\n            let base = state.sliceDoc(from, to).toLowerCase(), quoteStart = '\"', quoteEnd = '\"';\n            if (/^['\"]/.test(base)) {\n                token = base[0] == '\"' ? /^[^\"]*$/ : /^[^']*$/;\n                quoteStart = \"\";\n                quoteEnd = state.sliceDoc(to, to + 1) == base[0] ? \"\" : base[0];\n                base = base.slice(1);\n                from++;\n            }\n            else {\n                token = /^[^\\s<>='\"]*$/;\n            }\n            for (let value of attrs)\n                options.push({ label: value, apply: quoteStart + value + quoteEnd, type: \"constant\" });\n        }\n    }\n    return { from, to, options, validFor: token };\n}\nfunction htmlCompletionFor(schema, context) {\n    let { state, pos } = context, tree = syntaxTree(state).resolveInner(pos, -1), around = tree.resolve(pos);\n    for (let scan = pos, before; around == tree && (before = tree.childBefore(scan));) {\n        let last = before.lastChild;\n        if (!last || !last.type.isError || last.from < last.to)\n            break;\n        around = tree = before;\n        scan = last.from;\n    }\n    if (tree.name == \"TagName\") {\n        return tree.parent && /CloseTag$/.test(tree.parent.name) ? completeCloseTag(state, tree, tree.from, pos)\n            : completeTag(state, schema, tree, tree.from, pos);\n    }\n    else if (tree.name == \"StartTag\") {\n        return completeTag(state, schema, tree, pos, pos);\n    }\n    else if (tree.name == \"StartCloseTag\" || tree.name == \"IncompleteCloseTag\") {\n        return completeCloseTag(state, tree, pos, pos);\n    }\n    else if (tree.name == \"OpenTag\" || tree.name == \"SelfClosingTag\" || tree.name == \"AttributeName\") {\n        return completeAttrName(state, schema, tree, tree.name == \"AttributeName\" ? tree.from : pos, pos);\n    }\n    else if (tree.name == \"Is\" || tree.name == \"AttributeValue\" || tree.name == \"UnquotedAttributeValue\") {\n        return completeAttrValue(state, schema, tree, tree.name == \"Is\" ? pos : tree.from, pos);\n    }\n    else if (context.explicit && (around.name == \"Element\" || around.name == \"Text\" || around.name == \"Document\")) {\n        return completeStartTag(state, schema, tree, pos);\n    }\n    else {\n        return null;\n    }\n}\n/**\nHTML tag completion. Opens and closes tags and attributes in a\ncontext-aware way.\n*/\nfunction htmlCompletionSource(context) {\n    return htmlCompletionFor(Schema.default, context);\n}\n/**\nCreate a completion source for HTML extended with additional tags\nor attributes.\n*/\nfunction htmlCompletionSourceWith(config) {\n    let { extraTags, extraGlobalAttributes: extraAttrs } = config;\n    let schema = extraAttrs || extraTags ? new Schema(extraTags, extraAttrs) : Schema.default;\n    return (context) => htmlCompletionFor(schema, context);\n}\n\nconst jsonParser = /*@__PURE__*/javascriptLanguage.parser.configure({ top: \"SingleExpression\" });\nconst defaultNesting = [\n    { tag: \"script\",\n        attrs: attrs => attrs.type == \"text/typescript\" || attrs.lang == \"ts\",\n        parser: typescriptLanguage.parser },\n    { tag: \"script\",\n        attrs: attrs => attrs.type == \"text/babel\" || attrs.type == \"text/jsx\",\n        parser: jsxLanguage.parser },\n    { tag: \"script\",\n        attrs: attrs => attrs.type == \"text/typescript-jsx\",\n        parser: tsxLanguage.parser },\n    { tag: \"script\",\n        attrs(attrs) {\n            return /^(importmap|speculationrules|application\\/(.+\\+)?json)$/i.test(attrs.type);\n        },\n        parser: jsonParser },\n    { tag: \"script\",\n        attrs(attrs) {\n            return !attrs.type || /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(attrs.type);\n        },\n        parser: javascriptLanguage.parser },\n    { tag: \"style\",\n        attrs(attrs) {\n            return (!attrs.lang || attrs.lang == \"css\") && (!attrs.type || /^(text\\/)?(x-)?(stylesheet|css)$/i.test(attrs.type));\n        },\n        parser: cssLanguage.parser }\n];\nconst defaultAttrs = /*@__PURE__*/[\n    { name: \"style\",\n        parser: /*@__PURE__*/cssLanguage.parser.configure({ top: \"Styles\" }) }\n].concat(/*@__PURE__*/eventAttributes.map(name => ({ name, parser: javascriptLanguage.parser })));\n/**\nA language provider based on the [Lezer HTML\nparser](https://github.com/lezer-parser/html), extended with the\nJavaScript and CSS parsers to parse the content of `<script>` and\n`<style>` tags.\n*/\nconst htmlPlain = /*@__PURE__*/LRLanguage.define({\n    name: \"html\",\n    parser: /*@__PURE__*/parser.configure({\n        props: [\n            /*@__PURE__*/indentNodeProp.add({\n                Element(context) {\n                    let after = /^(\\s*)(<\\/)?/.exec(context.textAfter);\n                    if (context.node.to <= context.pos + after[0].length)\n                        return context.continue();\n                    return context.lineIndent(context.node.from) + (after[2] ? 0 : context.unit);\n                },\n                \"OpenTag CloseTag SelfClosingTag\"(context) {\n                    return context.column(context.node.from) + context.unit;\n                },\n                Document(context) {\n                    if (context.pos + /\\s*/.exec(context.textAfter)[0].length < context.node.to)\n                        return context.continue();\n                    let endElt = null, close;\n                    for (let cur = context.node;;) {\n                        let last = cur.lastChild;\n                        if (!last || last.name != \"Element\" || last.to != cur.to)\n                            break;\n                        endElt = cur = last;\n                    }\n                    if (endElt && !((close = endElt.lastChild) && (close.name == \"CloseTag\" || close.name == \"SelfClosingTag\")))\n                        return context.lineIndent(endElt.from) + context.unit;\n                    return null;\n                }\n            }),\n            /*@__PURE__*/foldNodeProp.add({\n                Element(node) {\n                    let first = node.firstChild, last = node.lastChild;\n                    if (!first || first.name != \"OpenTag\")\n                        return null;\n                    return { from: first.to, to: last.name == \"CloseTag\" ? last.from : node.to };\n                }\n            }),\n            /*@__PURE__*/bracketMatchingHandle.add({\n                \"OpenTag CloseTag\": node => node.getChild(\"TagName\")\n            })\n        ]\n    }),\n    languageData: {\n        commentTokens: { block: { open: \"<!--\", close: \"-->\" } },\n        indentOnInput: /^\\s*<\\/\\w+\\W$/,\n        wordChars: \"-._\"\n    }\n});\n/**\nA language provider based on the [Lezer HTML\nparser](https://github.com/lezer-parser/html), extended with the\nJavaScript and CSS parsers to parse the content of `<script>` and\n`<style>` tags.\n*/\nconst htmlLanguage = /*@__PURE__*/htmlPlain.configure({\n    wrap: /*@__PURE__*/configureNesting(defaultNesting, defaultAttrs)\n});\n/**\nLanguage support for HTML, including\n[`htmlCompletion`](https://codemirror.net/6/docs/ref/#lang-html.htmlCompletion) and JavaScript and\nCSS support extensions.\n*/\nfunction html(config = {}) {\n    let dialect = \"\", wrap;\n    if (config.matchClosingTags === false)\n        dialect = \"noMatch\";\n    if (config.selfClosingTags === true)\n        dialect = (dialect ? dialect + \" \" : \"\") + \"selfClosing\";\n    if (config.nestedLanguages && config.nestedLanguages.length ||\n        config.nestedAttributes && config.nestedAttributes.length)\n        wrap = configureNesting((config.nestedLanguages || []).concat(defaultNesting), (config.nestedAttributes || []).concat(defaultAttrs));\n    let lang = wrap ? htmlPlain.configure({ wrap, dialect }) : dialect ? htmlLanguage.configure({ dialect }) : htmlLanguage;\n    return new LanguageSupport(lang, [\n        htmlLanguage.data.of({ autocomplete: htmlCompletionSourceWith(config) }),\n        config.autoCloseTags !== false ? autoCloseTags : [],\n        javascript().support,\n        css().support\n    ]);\n}\nconst selfClosers = /*@__PURE__*/new Set(/*@__PURE__*/\"area base br col command embed frame hr img input keygen link meta param source track wbr menuitem\".split(\" \"));\n/**\nExtension that will automatically insert close tags when a `>` or\n`/` is typed.\n*/\nconst autoCloseTags = /*@__PURE__*/EditorView.inputHandler.of((view, from, to, text, insertTransaction) => {\n    if (view.composing || view.state.readOnly || from != to || (text != \">\" && text != \"/\") ||\n        !htmlLanguage.isActiveAt(view.state, from, -1))\n        return false;\n    let base = insertTransaction(), { state } = base;\n    let closeTags = state.changeByRange(range => {\n        var _a, _b, _c;\n        let didType = state.doc.sliceString(range.from - 1, range.to) == text;\n        let { head } = range, after = syntaxTree(state).resolveInner(head, -1), name;\n        if (didType && text == \">\" && after.name == \"EndTag\") {\n            let tag = after.parent;\n            if (((_b = (_a = tag.parent) === null || _a === void 0 ? void 0 : _a.lastChild) === null || _b === void 0 ? void 0 : _b.name) != \"CloseTag\" &&\n                (name = elementName(state.doc, tag.parent, head)) &&\n                !selfClosers.has(name)) {\n                let to = head + (state.doc.sliceString(head, head + 1) === \">\" ? 1 : 0);\n                let insert = `</${name}>`;\n                return { range, changes: { from: head, to, insert } };\n            }\n        }\n        else if (didType && text == \"/\" && after.name == \"IncompleteCloseTag\") {\n            let tag = after.parent;\n            if (after.from == head - 2 && ((_c = tag.lastChild) === null || _c === void 0 ? void 0 : _c.name) != \"CloseTag\" &&\n                (name = elementName(state.doc, tag, head)) && !selfClosers.has(name)) {\n                let to = head + (state.doc.sliceString(head, head + 1) === \">\" ? 1 : 0);\n                let insert = `${name}>`;\n                return {\n                    range: EditorSelection.cursor(head + insert.length, -1),\n                    changes: { from: head, to, insert }\n                };\n            }\n        }\n        return { range };\n    });\n    if (closeTags.changes.empty)\n        return false;\n    view.dispatch([\n        base,\n        state.update(closeTags, {\n            userEvent: \"input.complete\",\n            scrollIntoView: true\n        })\n    ]);\n    return true;\n});\n\nexport { autoCloseTags, html, htmlCompletionSource, htmlCompletionSourceWith, htmlLanguage, htmlPlain };\n"],"names":["Targets","Charsets","Methods","Encs","Bool","S","Tags","GlobalAttrs","eventAttributes","n","a","Schema","extraTags","extraAttrs","elementName","doc","tree","max","tag","name","findParentElement","skip","allowedChildren","schema","parentInfo","openTags","open","parent","tagName","identifier","completeTag","state","from","to","end","completeCloseTag","i","completeStartTag","pos","options","level","completeAttrName","elt","info","localAttrs","names","attrName","completeAttrValue","_a","nameNode","token","attrs","base","quoteStart","quoteEnd","value","htmlCompletionFor","context","syntaxTree","around","scan","before","last","htmlCompletionSourceWith","config","jsonParser","javascriptLanguage","defaultNesting","typescriptLanguage","jsxLanguage","tsxLanguage","cssLanguage","defaultAttrs","htmlPlain","LRLanguage","parser","indentNodeProp","after","endElt","close","cur","foldNodeProp","node","first","bracketMatchingHandle","htmlLanguage","configureNesting","html","dialect","wrap","lang","LanguageSupport","autoCloseTags","javascript","css","selfClosers","EditorView","view","text","insertTransaction","closeTags","range","_b","_c","didType","head","insert","EditorSelection"],"mappings":"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","x_google_ignoreList":[0]}