html-standard 0.0.4 → 0.0.5
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.
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -1
- package/dist/index.d.ts +7 -1
- package/package.json +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/elements/index.ts","../src/helpers/contents.ts","../src/helpers/content-constraint.ts","../src/helpers/attributes.ts","../src/helpers/content-attributes.ts","../src/helpers/contents-preset.ts","../src/elements/html.ts","../src/elements/head.ts","../src/elements/title.ts","../src/elements/base.ts","../src/elements/link.ts","../src/elements/meta.ts","../src/elements/style.ts","../src/elements/body.ts","../src/elements/article.ts","../src/elements/section.ts","../src/elements/nav.ts","../src/elements/aside.ts","../src/elements/h1.ts","../src/elements/h2.ts","../src/elements/h3.ts","../src/elements/h4.ts","../src/elements/h5.ts","../src/elements/h6.ts","../src/elements/hrgroup.ts","../src/elements/header.ts","../src/elements/footer.ts","../src/elements/address.ts","../src/elements/p.ts","../src/elements/hr.ts","../src/elements/pre.ts","../src/elements/blockquote.ts","../src/elements/ol.ts","../src/elements/ul.ts","../src/elements/menu.ts","../src/elements/li.ts","../src/elements/dl.ts","../src/elements/dt.ts","../src/elements/dd.ts","../src/elements/figure.ts","../src/elements/figcaption.ts","../src/elements/main.ts","../src/elements/search.ts","../src/elements/div.ts","../src/elements/a.ts","../src/elements/em.ts","../src/elements/strong.ts","../src/elements/small.ts","../src/elements/s.ts","../src/elements/cite.ts","../src/elements/q.ts","../src/elements/dfn.ts","../src/elements/abbr.ts","../src/elements/ruby.ts","../src/elements/rt.ts","../src/elements/rp.ts","../src/elements/data.ts","../src/elements/time.ts","../src/elements/code.ts","../src/elements/var.ts","../src/elements/samp.ts","../src/elements/kbd.ts","../src/elements/sub.ts","../src/elements/sup.ts","../src/elements/i.ts","../src/elements/b.ts","../src/elements/u.ts","../src/elements/mark.ts","../src/elements/bdi.ts","../src/elements/bdo.ts","../src/elements/span.ts","../src/elements/br.ts","../src/elements/wbr.ts","../src/elements/ins.ts","../src/elements/del.ts","../src/elements/picture.ts","../src/elements/source.ts","../src/elements/img.ts","../src/elements/iframe.ts","../src/elements/embed.ts","../src/elements/object.ts","../src/elements/video.ts","../src/elements/audio.ts","../src/elements/track.ts","../src/elements/map.ts","../src/elements/area.ts","../src/elements/table.ts","../src/elements/caption.ts","../src/elements/colgroup.ts","../src/elements/col.ts","../src/elements/tbody.ts","../src/elements/thead.ts","../src/elements/tfoot.ts","../src/elements/tr.ts","../src/elements/td.ts","../src/elements/th.ts","../src/elements/form.ts","../src/elements/label.ts","../src/elements/input.ts","../src/elements/button.ts","../src/elements/select.ts","../src/elements/datalist.ts","../src/elements/optgroup.ts","../src/elements/option.ts","../src/elements/textarea.ts","../src/elements/output.ts","../src/elements/progress.ts","../src/elements/meter.ts","../src/elements/fieldset.ts","../src/elements/legend.ts","../src/elements/details.ts","../src/elements/summary.ts","../src/elements/dialog.ts","../src/elements/script.ts","../src/elements/noscript.ts","../src/elements/template.ts","../src/elements/slot.ts","../src/elements/canvas.ts","../src/getElementSpec.ts"],"sourcesContent":["export { getElementSpec } from \"./getElementSpec\";\n","/**\n * @see html.spec.whatwg.org/#toc-semantics\n */\n\n// The document element\nexport { html } from \"./html\";\n\n// Document metadata\nexport { head } from \"./head\";\nexport { title } from \"./title\";\nexport { base } from \"./base\";\nexport { link } from \"./link\";\nexport { meta } from \"./meta\";\nexport { style } from \"./style\";\n\n// Sections\nexport { body } from \"./body\";\nexport { article } from \"./article\";\nexport { section } from \"./section\";\nexport { nav } from \"./nav\";\nexport { aside } from \"./aside\";\nexport { h1 } from \"./h1\";\nexport { h2 } from \"./h2\";\nexport { h3 } from \"./h3\";\nexport { h4 } from \"./h4\";\nexport { h5 } from \"./h5\";\nexport { h6 } from \"./h6\";\nexport { hrgroup } from \"./hrgroup\";\nexport { header } from \"./header\";\nexport { footer } from \"./footer\";\nexport { address } from \"./address\";\n\n// Grouping content\nexport { p } from \"./p\";\nexport { hr } from \"./hr\";\nexport { pre } from \"./pre\";\nexport { blockquote } from \"./blockquote\";\nexport { ol } from \"./ol\";\nexport { ul } from \"./ul\";\nexport { menu } from \"./menu\";\nexport { li } from \"./li\";\nexport { dl } from \"./dl\";\nexport { dt } from \"./dt\";\nexport { dd } from \"./dd\";\nexport { figure } from \"./figure\";\nexport { figcaption } from \"./figcaption\";\nexport { main } from \"./main\";\nexport { search } from \"./search\";\nexport { div } from \"./div\";\n\n// Text-level semantics\nexport { a } from \"./a\";\nexport { em } from \"./em\";\nexport { strong } from \"./strong\";\nexport { small } from \"./small\";\nexport { s } from \"./s\";\nexport { cite } from \"./cite\";\nexport { q } from \"./q\";\nexport { dfn } from \"./dfn\";\nexport { abbr } from \"./abbr\";\nexport { ruby } from \"./ruby\";\nexport { rt } from \"./rt\";\nexport { rp } from \"./rp\";\nexport { data } from \"./data\";\nexport { time } from \"./time\";\nexport { code } from \"./code\";\nexport { _var } from \"./var\";\nexport { samp } from \"./samp\";\nexport { kbd } from \"./kbd\";\nexport { sub } from \"./sub\";\nexport { sup } from \"./sup\";\nexport { i } from \"./i\";\nexport { b } from \"./b\";\nexport { u } from \"./u\";\nexport { mark } from \"./mark\";\nexport { bdi } from \"./bdi\";\nexport { bdo } from \"./bdo\";\nexport { span } from \"./span\";\nexport { br } from \"./br\";\nexport { wbr } from \"./wbr\";\n\n// Edits\nexport { ins } from \"./ins\";\nexport { del } from \"./del\";\n\n// Embedded content\nexport { picture } from \"./picture\";\nexport { source } from \"./source\";\nexport { img } from \"./img\";\nexport { iframe } from \"./iframe\";\nexport { embed } from \"./embed\";\nexport { object } from \"./object\";\nexport { video } from \"./video\";\nexport { audio } from \"./audio\";\nexport { track } from \"./track\";\nexport { map } from \"./map\";\nexport { area } from \"./area\";\n\n// Tabular data\nexport { table } from \"./table\";\nexport { caption } from \"./caption\";\nexport { colgroup } from \"./colgroup\";\nexport { col } from \"./col\";\nexport { tbody } from \"./tbody\";\nexport { thead } from \"./thead\";\nexport { tfoot } from \"./tfoot\";\nexport { tr } from \"./tr\";\nexport { td } from \"./td\";\nexport { th } from \"./th\";\n\n// Forms\nexport { form } from \"./form\";\nexport { label } from \"./label\";\nexport { input } from \"./input\";\nexport { button } from \"./button\";\nexport { select } from \"./select\";\nexport { datalist } from \"./datalist\";\nexport { optgroup } from \"./optgroup\";\nexport { option } from \"./option\";\nexport { textarea } from \"./textarea\";\nexport { output } from \"./output\";\nexport { progress } from \"./progress\";\nexport { meter } from \"./meter\";\nexport { fieldset } from \"./fieldset\";\nexport { legend } from \"./legend\";\n\n// Interactive elements\nexport { details } from \"./details\";\nexport { summary } from \"./summary\";\nexport { dialog } from \"./dialog\";\n\n// Scripting\nexport { script } from \"./script\";\nexport { noscript } from \"./noscript\";\nexport { template } from \"./template\";\nexport { slot } from \"./slot\";\nexport { canvas } from \"./canvas\";\n","import type { ReadonlySet } from \"../types\";\n\nexport const contents = {\n fromKeys(...keys: string[]): ReadonlySet<string> {\n return new Set(keys);\n },\n fromSet(set: Set<string>, ...keys: string[]): ReadonlySet<string> {\n const result = new Set(set);\n keys.forEach((key) => set.add(key));\n return result;\n },\n fromUnionSets(setA: Set<string>, setB: Set<string>): ReadonlySet<string> {\n const set = new Set(...setA, ...setB);\n return set;\n },\n};\n","import type { ContentConstraint, ContentConstraintValue } from \"../types\";\n\nexport const contentConstraint = {\n fromEntries(entries: [string, ContentConstraintValue][]): ContentConstraint {\n return new Map(entries);\n },\n fromSets(\n value: ContentConstraintValue,\n ...sets: Set<string>[]\n ): ContentConstraint {\n return new Map(\n sets\n .reduce<string[]>((acc, set) => [...acc, ...set], [])\n .map((key) => [key, value]),\n );\n },\n};\n\nexport const required: ContentConstraintValue = {\n required: true,\n};\n\nexport const onlyOne: ContentConstraintValue = {\n max: 1,\n};\n\nexport const disallow: ContentConstraintValue = {\n disallow: true,\n};\n","export const emptyAttributes = new Set([]);\nexport const globalAttributes = new Set([\n \"accesskey\",\n \"autocapitalize\",\n \"autocorrect\",\n \"autofocus\",\n \"contenteditable\",\n \"dir\",\n \"draggable\",\n \"enterkeyhint\",\n \"hidden\",\n \"inert\",\n \"inputmode\",\n \"is\",\n \"itemid\",\n \"itemprop\",\n \"itemref\",\n \"itemscope\",\n \"itemtype\",\n \"lang\",\n \"nonce\",\n \"popover\",\n \"spellcheck\",\n \"style\",\n \"tabindex\",\n \"title\",\n \"translate\",\n \"writingsuggestions\",\n \"class\",\n \"id\",\n \"slot\",\n \"xmlns\",\n \"xml:lang\",\n \"xml:space\",\n]);\n","import { AttributesSpecMap } from \"../types\";\nimport { emptyAttributes, globalAttributes } from \"./attributes\";\n\nexport const contentAttributes = (\n global: boolean,\n specific?: string[],\n): AttributesSpecMap => {\n if (!specific || specific.length === 0) {\n if (global) {\n return globalAttributes;\n }\n return emptyAttributes;\n }\n const specificAttributes = new Set(specific);\n return {\n has(name) {\n return globalAttributes.has(name) || specificAttributes.has(name);\n },\n };\n};\n","export const contentsPreset = {\n metadataContent: new Set([\n \"base\",\n \"link\",\n \"meta\",\n \"noscript\",\n \"script\",\n \"style\",\n \"template\",\n \"title\",\n ]),\n flowContent: new Set([\n \"a\",\n \"abbr\",\n \"address\",\n \"area\",\n \"article\",\n \"aside\",\n \"audio\",\n \"b\",\n \"bdi\",\n \"bdo\",\n \"blockquote\",\n \"br\",\n \"button\",\n \"canvas\",\n \"cite\",\n \"code\",\n \"data\",\n \"datalist\",\n \"del\",\n \"details\",\n \"dfn\",\n \"dialog\",\n \"div\",\n \"dl\",\n \"em\",\n \"embed\",\n \"fieldset\",\n \"figure\",\n \"footer\",\n \"form\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"header\",\n \"hgroup\",\n \"hr\",\n \"i\",\n \"iframe\",\n \"img\",\n \"input\",\n \"ins\",\n \"kbd\",\n \"label\",\n \"link\",\n \"main\",\n \"map\",\n \"mark\",\n \"math\",\n \"menu\",\n \"meta\",\n \"meter\",\n \"nav\",\n \"noscript\",\n \"object\",\n \"ol\",\n \"output\",\n \"p\",\n \"picture\",\n \"pre\",\n \"progress\",\n \"q\",\n \"ruby\",\n \"s\",\n \"samp\",\n \"script\",\n \"search\",\n \"section\",\n \"select\",\n \"slot\",\n \"small\",\n \"span\",\n \"strong\",\n \"sub\",\n \"sup\",\n \"svg\",\n \"table\",\n \"template\",\n \"textarea\",\n \"time\",\n \"u\",\n \"ul\",\n \"var\",\n \"video\",\n \"wbr\",\n \"#text\",\n ]),\n phrasingContent: new Set([\n \"a\",\n \"abbr\",\n \"area\",\n \"audio\",\n \"b\",\n \"bdi\",\n \"bdo\",\n \"br\",\n \"button\",\n \"canvas\",\n \"cite\",\n \"code\",\n \"data\",\n \"datalist\",\n \"del\",\n \"dfn\",\n \"em\",\n \"embed\",\n \"i\",\n \"iframe\",\n \"img\",\n \"input\",\n \"ins\",\n \"kbd\",\n \"label\",\n \"link\",\n \"map\",\n \"mark\",\n \"math\",\n \"meta\",\n \"meter\",\n \"noscript\",\n \"object\",\n \"output\",\n \"picture\",\n \"progress\",\n \"q\",\n \"ruby\",\n \"s\",\n \"samp\",\n \"script\",\n \"select\",\n \"slot\",\n \"small\",\n \"span\",\n \"strong\",\n \"sub\",\n \"sup\",\n \"svg\",\n \"template\",\n \"textarea\",\n \"time\",\n \"u\",\n \"var\",\n \"video\",\n \"wbr\",\n \"#text\",\n ]),\n scriptSupportingElements: new Set([\"script\", \"template\"]),\n headingContent: new Set([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"hgroup\"]),\n sectioningContent: new Set([\"article\", \"aside\", \"nav\", \"section\"]),\n transparentContent: new Set([\"#transparent\"]),\n interactiveContent: new Set([\n \"a\",\n \"audio\",\n \"button\",\n \"details\",\n \"embed\",\n \"iframe\",\n \"img\",\n \"input\",\n \"label\",\n \"select\",\n \"text\",\n \"area\",\n \"video\",\n ]),\n text: new Set(\"#text\"),\n mediaElements: new Set([\"audio\", \"video\"]),\n labelableElements: new Set([\n \"button\",\n \"input\",\n \"meter\",\n \"output\",\n \"progress\",\n \"select\",\n \"textarea\",\n ]),\n};\n","import type { ElementSpec, GetElementSpec } from \"../types\";\n\nimport { contentAttributes } from \"../helpers\";\nimport { contents } from \"../helpers\";\n\nconst htmlSpec: ElementSpec = {\n contents: [\n {\n type: \"required\",\n contents: contents.fromKeys(\"head\"),\n },\n {\n type: \"required\",\n contents: contents.fromKeys(\"body\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const html: GetElementSpec = () => htmlSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\nimport { contentConstraint, onlyOne, required } from \"../helpers\";\n\nconst headSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.metadataContent,\n constraints: {\n children: contentConstraint.fromEntries([\n [\"title\", required],\n [\"base\", onlyOne],\n ]),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const head: GetElementSpec = () => headSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst titleSpec: ElementSpec = {\n contents: [\n {\n type: \"required\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const title: GetElementSpec = () => titleSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst baseSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\"href\", \"target\"]),\n};\n\nexport const base: GetElementSpec = () => baseSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst linkSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"href\",\n \"crossorigin\",\n \"rel\",\n \"media\",\n \"integrity\",\n \"hreflang\",\n \"type\",\n \"referrerpolicy\",\n \"sizes\",\n \"imagesrcset\",\n \"imagesizes\",\n \"as\",\n \"blocking\",\n \"color\",\n \"disabled\",\n \"fetchpriority\",\n \"title\",\n ]),\n};\n\nexport const link: GetElementSpec = () => linkSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst metaSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"name\",\n \"http-equiv\",\n \"content\",\n \"charset\",\n \"media\",\n ]),\n};\n\nexport const meta: GetElementSpec = () => metaSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst styleSpec: ElementSpec = {\n contents: [\n {\n type: \"required\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true, [\"media\", \"blocking\", \"title\"]),\n};\n\nexport const style: GetElementSpec = () => styleSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst bodySpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\n \"onafterprint\",\n \"onbeforeprint\",\n \"onbeforeunload\",\n \"onhashchange\",\n \"onlanguagechange\",\n \"onmessage\",\n \"onmessageerror\",\n \"onoffline\",\n \"ononline\",\n \"onpageswap\",\n \"onpagehide\",\n \"onpagereveal\",\n \"onpageshow\",\n \"onpopstate\",\n \"onrejectionhandled\",\n \"onstorage\",\n \"onunhandledrejection\",\n \"onunload\",\n ]),\n};\n\nexport const body: GetElementSpec = () => bodySpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst articleSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const article: GetElementSpec = () => articleSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst sectionSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const section: GetElementSpec = () => sectionSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst navSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const nav: GetElementSpec = () => navSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst asideSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const aside: GetElementSpec = () => asideSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst h1Spec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const h1: GetElementSpec = () => h1Spec;\n","import { h1 } from \"./h1\";\nexport const h2 = h1;\n","import { h1 } from \"./h1\";\nexport const h3 = h1;\n","import { h1 } from \"./h1\";\nexport const h4 = h1;\n","import { h1 } from \"./h1\";\nexport const h5 = h1;\n","import { h1 } from \"./h1\";\nexport const h6 = h1;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset, contents } from \"../helpers\";\n\nconst hrgroupSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"p\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"required\",\n contents: contents.fromKeys(\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"p\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const hrgroup: GetElementSpec = () => hrgroupSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst headerSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n new Set([\"header\", \"footer\"]),\n ),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const header: GetElementSpec = () => headerSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentsPreset,\n contentConstraint,\n disallow,\n} from \"../helpers\";\n\nconst footerSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n new Set([\"header\", \"footer\"]),\n ),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const footer: GetElementSpec = () => footerSpec;\n","import { contentConstraint, disallow } from \"../helpers\";\nimport { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst addressSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.headingContent,\n contentsPreset.sectioningContent,\n new Set([\"header\", \"footer\", \"address\"]),\n ),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const address: GetElementSpec = () => addressSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst pSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const p: GetElementSpec = () => pSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst hrSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true),\n};\n\nexport const hr: GetElementSpec = () => hrSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst preSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const pre: GetElementSpec = () => preSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst blockquoteSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\"cite\"]),\n};\n\nexport const blockquote: GetElementSpec = () => blockquoteSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contents, contentsPreset, contentAttributes } from \"../helpers\";\n\nconst olSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.scriptSupportingElements, \"li\"),\n },\n ],\n attributes: contentAttributes(true, [\"reversed\", \"start\", \"type\"]),\n};\n\nexport const ol: GetElementSpec = () => olSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst ulSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.scriptSupportingElements, \"li\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const ul: GetElementSpec = () => ulSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst menuSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.scriptSupportingElements, \"li\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const menu: GetElementSpec = () => menuSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst liInMenuOrUl: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nconst liNotInMenuOrUl: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\"value\"]),\n};\n\nexport const li: GetElementSpec = (state) => {\n const parent = state?.parent;\n if (parent === \"menu\" || parent === \"ul\") {\n return liInMenuOrUl;\n }\n return liNotInMenuOrUl;\n};\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst dlSpec: ElementSpec = {\n contents: [\n {\n type: \"either\",\n options: [\n [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"oneOrMore\",\n contents: new Set([\"dt\"]),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"oneOrMore\",\n contents: new Set([\"dd\"]),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n ],\n [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"oneOrMore\",\n contents: new Set([\"div\"]),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n ],\n ],\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const dl: GetElementSpec = () => dlSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst dtSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n new Set([\"header\", \"footer\"]),\n contentsPreset.sectioningContent,\n contentsPreset.headingContent,\n ),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const dt: GetElementSpec = () => dtSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst ddSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const dd: GetElementSpec = () => ddSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst figureSpec: ElementSpec = {\n contents: [\n {\n type: \"either\",\n options: [\n [\n {\n type: \"required\",\n contents: new Set(\"figcaption\"),\n },\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n {\n type: \"required\",\n contents: contents.fromKeys(\"figcaption\"),\n },\n ],\n [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n ],\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const figure: GetElementSpec = () => figureSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst figcaptionSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const figcaption: GetElementSpec = () => figcaptionSpec;\n","import { contentsPreset } from \"../helpers\";\nimport { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst mainSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const main: GetElementSpec = () => mainSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst searchSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const search: GetElementSpec = () => searchSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst divChildOfDlSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"oneOrMore\",\n contents: contents.fromKeys(\"dt\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"oneOrMore\",\n contents: contents.fromKeys(\"dd\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nconst divSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const div: GetElementSpec = (state) => {\n const parent = state?.parent;\n if (parent === \"dl\") {\n return divChildOfDlSpec;\n }\n return divSpec;\n};\n","import { ContentConstraintValue, ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst descendantsConstraints = new Map<string, ContentConstraintValue>(\n [contentsPreset.interactiveContent, new Set([\"a\"])]\n .reduce<string[]>((acc, set) => [...acc, ...set], [])\n .map((key) => [key, disallow]),\n);\n\ndescendantsConstraints.set(\"*\", {\n disallow: true,\n ifAttributes(attributes) {\n return !!attributes[\"tabindex\"];\n },\n});\n\nconst aSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.interactiveContent,\n new Set([\"a\"]),\n ),\n },\n },\n ],\n attributes: contentAttributes(true, [\n \"href\",\n \"target\",\n \"download\",\n \"ping\",\n \"rel\",\n \"hreflang\",\n \"type\",\n \"referrerpolicy\",\n ]),\n};\n\nexport const a: GetElementSpec = () => aSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst emSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const em: GetElementSpec = () => emSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst strongSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const strong: GetElementSpec = () => strongSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst smallSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const small: GetElementSpec = () => smallSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst sSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const s: GetElementSpec = () => sSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst citeSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const cite: GetElementSpec = () => citeSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst qSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true, [\"cite\"]),\n};\n\nexport const q: GetElementSpec = () => qSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst dfnSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n constraints: {\n descendants: contentConstraint.fromEntries([[\"dfn\", disallow]]),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const dfn: GetElementSpec = () => dfnSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst abbrSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const abbr: GetElementSpec = () => abbrSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst rubySpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.phrasingContent, \"rt\", \"rp\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const ruby: GetElementSpec = () => rubySpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst rtSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const rt: GetElementSpec = () => rtSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst rpSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const rp: GetElementSpec = () => rpSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst dataSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true, [\"value\"]),\n};\n\nexport const data: GetElementSpec = () => dataSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst timeWihthoutDatetimeSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true, [\"datetime\"]),\n};\nconst timeWithDatetimeSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true, [\"datetime\"]),\n};\n\nexport const time: GetElementSpec = (state) => {\n const attributes = state?.attributes || {};\n if (!!attributes[\"datetime\"]) {\n return timeWihthoutDatetimeSpec;\n }\n return timeWithDatetimeSpec;\n};\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst codeSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const code: GetElementSpec = () => codeSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst varSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const _var: GetElementSpec = () => varSpec;\n","import { contentsPreset } from \"../helpers\";\nimport { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst sampSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const samp: GetElementSpec = () => sampSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst kbdSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const kbd: GetElementSpec = () => kbdSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst subSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const sub: GetElementSpec = () => subSpec;\n","import { sub } from \"./sub\";\n\nexport const sup = sub;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst iSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const i: GetElementSpec = () => iSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst bSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const b: GetElementSpec = () => bSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst uSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const u: GetElementSpec = () => uSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst markSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const mark: GetElementSpec = () => markSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst bdiSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const bdi: GetElementSpec = () => bdiSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst bdoSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const bdo: GetElementSpec = () => bdoSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst spanSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const span: GetElementSpec = () => spanSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst brSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true),\n};\n\nexport const br: GetElementSpec = () => brSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst wbrSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true),\n};\n\nexport const wbr: GetElementSpec = () => wbrSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentsPreset } from \"../helpers\";\nimport { contentAttributes } from \"../helpers\";\n\nconst insSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n },\n ],\n attributes: contentAttributes(true, [\"cite\", \"datetime\"]),\n};\n\nexport const ins: GetElementSpec = () => insSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst delSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n },\n ],\n attributes: contentAttributes(true, [\"cite\", \"datetime\"]),\n};\n\nexport const del: GetElementSpec = () => delSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst pictureSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"source\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"required\",\n contents: contents.fromKeys(\"img\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const picture: GetElementSpec = () => pictureSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst sourceSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"type\",\n \"media\",\n \"src\",\n \"srcset\",\n \"sizes\",\n \"width\",\n \"height\",\n ]),\n};\n\nexport const source: GetElementSpec = () => sourceSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst imgSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"alt\",\n \"src\",\n \"srcset\",\n \"sizes\",\n \"crossorigin\",\n \"usemap\",\n \"ismap\",\n \"width\",\n \"height\",\n \"referrerpolicy\",\n \"decoding\",\n \"loading\",\n \"fetchpriority\",\n ]),\n};\n\nexport const img: GetElementSpec = () => imgSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst iframeSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"src\",\n \"srcdoc\",\n \"name\",\n \"sandbox\",\n \"allow\",\n \"allowfullscreen\",\n \"width\",\n \"height\",\n \"referrerpolicy\",\n \"loading\",\n ]),\n};\n\nexport const iframe: GetElementSpec = () => iframeSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst embedSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\"src\", \"type\", \"width\", \"height\"]),\n};\n\nexport const embed: GetElementSpec = () => embedSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst objectSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n },\n ],\n attributes: contentAttributes(true, [\n \"data\",\n \"type\",\n \"name\",\n \"form\",\n \"width\",\n \"height\",\n ]),\n};\n\nexport const object: GetElementSpec = () => objectSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentsPreset,\n contentConstraint,\n disallow,\n contents,\n} from \"../helpers\";\n\nconst attributes = contentAttributes(true, [\n \"src\",\n \"crossorigin\",\n \"poster\",\n \"preload\",\n \"autoplay\",\n \"playsinline\",\n \"loop\",\n \"muted\",\n \"controls\",\n \"width\",\n \"height\",\n]);\n\nconst videoWithSrcSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"track\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.transparentContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.mediaElements,\n ),\n },\n },\n ],\n attributes,\n};\nconst videoWitoutSrcSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"source\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"track\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.transparentContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.mediaElements,\n ),\n },\n },\n ],\n attributes,\n};\n\nexport const video: GetElementSpec = (state) => {\n const attributes = state?.attributes || {};\n if (!!attributes[\"src\"]) {\n return videoWithSrcSpec;\n }\n return videoWitoutSrcSpec;\n};\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contents,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst attributes = contentAttributes(true, [\n \"src\",\n \"crossorigin\",\n \"preload\",\n \"autoplay\",\n \"loop\",\n \"muted\",\n \"controls\",\n]);\n\nconst audioWithSrcSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"track\"),\n },\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n },\n ],\n attributes,\n};\n\nconst audioWithoutSrcSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"source\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"track\"),\n },\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.mediaElements,\n ),\n },\n },\n ],\n attributes,\n};\n\nexport const audio: GetElementSpec = (state) => {\n const attributes = state?.attributes || {};\n if (!!attributes[\"src\"]) {\n return audioWithSrcSpec;\n }\n return audioWithoutSrcSpec;\n};\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst trackSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"kind\",\n \"src\",\n \"srclang\",\n \"label\",\n \"label\",\n \"default\",\n ]),\n};\n\nexport const track: GetElementSpec = () => trackSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst mapSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n },\n ],\n attributes: contentAttributes(true, [\"name\"]),\n};\n\nexport const map: GetElementSpec = () => mapSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst areaSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"alt\",\n \"coords\",\n \"shape\",\n \"href\",\n \"target\",\n \"download\",\n \"ping\",\n \"rel\",\n \"referrerpolicy\",\n ]),\n};\n\nexport const area: GetElementSpec = () => areaSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst tableSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"optional\",\n contents: contents.fromKeys(\"caption\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"colgroup\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"optional\",\n contents: contents.fromKeys(\"thead\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"either\",\n options: [\n [\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"tbody\"),\n },\n ],\n [\n {\n type: \"oneOrMore\",\n contents: contents.fromKeys(\"tr\"),\n },\n ],\n ],\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"optional\",\n contents: contents.fromKeys(\"tfoot\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const table: GetElementSpec = () => tableSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst captionSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromEntries([[\"table\", disallow]]),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const caption: GetElementSpec = () => captionSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents } from \"../helpers\";\n\nconst attributes = contentAttributes(true, [\"span\"]);\n\nconst colgroupWithSpanSpec: ElementSpec = {\n contents: null,\n attributes,\n};\nconst colgroupWithoutSpanSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"col\", \"template\"),\n },\n ],\n attributes,\n};\n\nexport const colgroup: GetElementSpec = (state) => {\n const attributes = state?.attributes || {};\n if (attributes[\"span\"]) {\n return colgroupWithSpanSpec;\n }\n return colgroupWithoutSpanSpec;\n};\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst colSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\"span\"]),\n};\n\nexport const col: GetElementSpec = () => colSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst tbodySpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.scriptSupportingElements, \"tr\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const tbody: GetElementSpec = () => tbodySpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst theadSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.scriptSupportingElements, \"tr\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const thead: GetElementSpec = () => theadSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst tfootSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.scriptSupportingElements, \"tr\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const tfoot: GetElementSpec = () => tfootSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst trSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(\n contentsPreset.scriptSupportingElements,\n \"td\",\n \"th\",\n ),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const tr: GetElementSpec = () => trSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst tdSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\"colspan\", \"rowspan\", \"headers\"]),\n};\n\nexport const td: GetElementSpec = () => tdSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst thSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n new Set([\"header\", \"footer\"]),\n contentsPreset.sectioningContent,\n contentsPreset.headingContent,\n ),\n },\n },\n ],\n attributes: contentAttributes(true, [\n \"colspan\",\n \"rowspan\",\n \"headers\",\n \"scope\",\n \"abbr\",\n ]),\n};\n\nexport const th: GetElementSpec = () => thSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst formSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromEntries([[\"from\", disallow]]),\n },\n },\n ],\n attributes: contentAttributes(true, [\n \"accept-charset\",\n \"action\",\n \"autocomplete\",\n \"enctype\",\n \"method\",\n \"name\",\n \"novalidate\",\n \"target\",\n \"rel\",\n ]),\n};\n\nexport const form: GetElementSpec = () => formSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst labelSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n constraints: {\n descendants: contentConstraint.fromEntries([[\"label\", disallow]]),\n },\n },\n ],\n attributes: contentAttributes(true, [\"for\"]),\n};\n\nexport const label: GetElementSpec = () => labelSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst inputSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"accept\",\n \"alpha\",\n \"alt\",\n \"autocomplete\",\n \"checked\",\n \"colorspace\",\n \"dirname\",\n \"disabled\",\n \"form\",\n \"formaction\",\n \"formenctype\",\n \"formmethod\",\n \"formnovalidate\",\n \"formtarget\",\n \"height\",\n \"list\",\n \"max\",\n \"maxlength\",\n \"min\",\n \"minlength\",\n \"multiple\",\n \"name\",\n \"pattern\",\n \"placeholder\",\n \"popovertarget\",\n \"popovertargetaction\",\n \"readonly\",\n \"required\",\n \"size\",\n \"src\",\n \"step\",\n \"type\",\n \"value\",\n \"width\",\n \"title\",\n ]),\n};\n\nexport const input: GetElementSpec = () => inputSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst buttonSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.interactiveContent,\n ),\n },\n },\n ],\n attributes: contentAttributes(true, [\n \"command\",\n \"commandfor\",\n \"disabled\",\n \"form\",\n \"formaction\",\n \"formenctype\",\n \"formmethod\",\n \"formnovalidate\",\n \"formtarget\",\n \"name\",\n \"popovertarget\",\n \"popovertargetaction\",\n \"type\",\n \"value\",\n ]),\n};\n\nexport const button: GetElementSpec = () => buttonSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset, contents } from \"../helpers\";\n\nconst selectSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(\n contentsPreset.scriptSupportingElements,\n \"option\",\n \"optgroup\",\n \"hr\",\n ),\n },\n ],\n attributes: contentAttributes(true, [\n \"autocomplete\",\n \"disabled\",\n \"form\",\n \"multiple\",\n \"name\",\n \"required\",\n \"size\",\n ]),\n};\n\nexport const select: GetElementSpec = () => selectSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst datalistSpec: ElementSpec = {\n contents: [\n {\n type: \"either\",\n options: [\n [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(\n contentsPreset.scriptSupportingElements,\n \"option\",\n ),\n },\n ],\n ],\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const datalist: GetElementSpec = () => datalistSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset, contents } from \"../helpers\";\n\nconst optgroupSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(\n contentsPreset.scriptSupportingElements,\n \"option\",\n ),\n },\n ],\n attributes: contentAttributes(true, [\"disabled\", \"label\"]),\n};\n\nexport const optgroup: GetElementSpec = () => optgroupSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst attributes = contentAttributes(true, [\n \"disabled\",\n \"label\",\n \"selected\",\n \"value\",\n]);\n\nconst optionWithLabelAndValueSpec: ElementSpec = {\n contents: null,\n attributes,\n};\n\nconst optionWithLabelSpec: ElementSpec = {\n contents: [\n {\n type: \"required\",\n contents: contentsPreset.text,\n },\n ],\n attributes,\n};\nconst optionWithoutLabelAndValueSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.text,\n },\n ],\n attributes,\n};\n\nexport const option: GetElementSpec = (state) => {\n const attributes = state?.attributes || {};\n if (attributes[\"label\"] && attributes[\"value\"]) {\n return optionWithLabelAndValueSpec;\n }\n if (attributes[\"label\"]) {\n return optionWithLabelSpec;\n }\n return optionWithoutLabelAndValueSpec;\n};\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst textareaSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true, [\n \"autocomplete\",\n \"cols\",\n \"dirname\",\n \"disabled\",\n \"form\",\n \"maxlength\",\n \"minlength\",\n \"name\",\n \"placeholder\",\n \"readonly\",\n \"required\",\n \"rows\",\n \"wrap\",\n ]),\n};\n\nexport const textarea: GetElementSpec = () => textareaSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst outputSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true, [\"for\", \"form\", \"name\"]),\n};\n\nexport const output: GetElementSpec = () => outputSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst progressSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n constraints: {\n descendants: contentConstraint.fromEntries([[\"progress\", disallow]]),\n },\n },\n ],\n attributes: contentAttributes(true, [\"value\", \"max\"]),\n};\n\nexport const progress: GetElementSpec = () => progressSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentsPreset,\n contentConstraint,\n disallow,\n} from \"../helpers\";\n\nconst meterSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n constraints: {\n descendants: contentConstraint.fromEntries([[\"meter\", disallow]]),\n },\n },\n ],\n attributes: contentAttributes(true, [\n \"value\",\n \"min\",\n \"max\",\n \"low\",\n \"high\",\n \"optimum\",\n ]),\n};\n\nexport const meter: GetElementSpec = () => meterSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst fieldsetSpec: ElementSpec = {\n contents: [\n {\n type: \"optional\",\n contents: contents.fromKeys(\"legend\"),\n },\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\"disabled\", \"form\", \"name\"]),\n};\n\nexport const fieldset: GetElementSpec = () => fieldsetSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst legendSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromUnionSets(\n contentsPreset.phrasingContent,\n contentsPreset.headingContent,\n ),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const legend: GetElementSpec = () => legendSpec;\n","import { contents, contentsPreset } from \"../helpers\";\nimport { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst detailsSpec: ElementSpec = {\n contents: [\n {\n type: \"required\",\n contents: contents.fromKeys(\"summary\"),\n },\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\"name\", \"open\"]),\n};\n\nexport const details: GetElementSpec = () => detailsSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst summarySpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contents.fromUnionSets(\n contentsPreset.phrasingContent,\n contentsPreset.headingContent,\n ),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const summary: GetElementSpec = () => summarySpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst dialogSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\"closedby\", \"open\"]),\n};\n\nexport const dialog: GetElementSpec = () => dialogSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst scriptSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true, [\n \"src\",\n \"type\",\n \"nomodule\",\n \"async\",\n \"defer\",\n \"crossorigin\",\n \"integrity\",\n \"referrerpolicy\",\n \"blocking\",\n \"fetchpriority\",\n ]),\n};\n\nexport const script: GetElementSpec = () => scriptSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst noscriptSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const noscript: GetElementSpec = () => noscriptSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst templateSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"shadowrootmode\",\n \"shadowrootdelegatesfocus\",\n \"shadowrootclonable\",\n \"shadowrootserializable\",\n ]),\n};\n\nexport const template: GetElementSpec = () => templateSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst slotSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n },\n ],\n attributes: contentAttributes(true, [\"name\"]),\n};\n\nexport const slot: GetElementSpec = () => slotSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst canvasSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.interactiveContent,\n ),\n },\n },\n ],\n attributes: contentAttributes(true, [\"width\", \"height\"]),\n};\n\nexport const canvas: GetElementSpec = () => canvasSpec;\n","import { ElementSpec, GetElementSpec } from \"./types\";\nimport * as elementsSpecs from \"./elements\";\n\nconst specsRecord: Record<string, GetElementSpec> = elementsSpecs;\n\ntype Options = {\n parent?: string;\n attributes?: Record<string, string | boolean>;\n};\n\nexport function getElementSpec(\n name: string,\n options?: Options,\n): ElementSpec | null {\n const getSpec = specsRecord[name.toLowerCase()] || null;\n if (!getSpec) {\n return null;\n }\n return getSpec(options);\n}\n"],"mappings":"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,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,iBAAiB,oBAAI,IAAI;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;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","names":["attributes","attributes","attributes","attributes","attributes","attributes"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/elements/index.ts","../src/helpers/contents.ts","../src/helpers/content-constraint.ts","../src/helpers/attributes.ts","../src/helpers/content-attributes.ts","../src/helpers/contents-preset.ts","../src/elements/html.ts","../src/elements/head.ts","../src/elements/title.ts","../src/elements/base.ts","../src/elements/link.ts","../src/elements/meta.ts","../src/elements/style.ts","../src/elements/body.ts","../src/elements/article.ts","../src/elements/section.ts","../src/elements/nav.ts","../src/elements/aside.ts","../src/elements/h1.ts","../src/elements/h2.ts","../src/elements/h3.ts","../src/elements/h4.ts","../src/elements/h5.ts","../src/elements/h6.ts","../src/elements/hrgroup.ts","../src/elements/header.ts","../src/elements/footer.ts","../src/elements/address.ts","../src/elements/p.ts","../src/elements/hr.ts","../src/elements/pre.ts","../src/elements/blockquote.ts","../src/elements/ol.ts","../src/elements/ul.ts","../src/elements/menu.ts","../src/elements/li.ts","../src/elements/dl.ts","../src/elements/dt.ts","../src/elements/dd.ts","../src/elements/figure.ts","../src/elements/figcaption.ts","../src/elements/main.ts","../src/elements/search.ts","../src/elements/div.ts","../src/elements/a.ts","../src/elements/em.ts","../src/elements/strong.ts","../src/elements/small.ts","../src/elements/s.ts","../src/elements/cite.ts","../src/elements/q.ts","../src/elements/dfn.ts","../src/elements/abbr.ts","../src/elements/ruby.ts","../src/elements/rt.ts","../src/elements/rp.ts","../src/elements/data.ts","../src/elements/time.ts","../src/elements/code.ts","../src/elements/var.ts","../src/elements/samp.ts","../src/elements/kbd.ts","../src/elements/sub.ts","../src/elements/sup.ts","../src/elements/i.ts","../src/elements/b.ts","../src/elements/u.ts","../src/elements/mark.ts","../src/elements/bdi.ts","../src/elements/bdo.ts","../src/elements/span.ts","../src/elements/br.ts","../src/elements/wbr.ts","../src/elements/ins.ts","../src/elements/del.ts","../src/elements/picture.ts","../src/elements/source.ts","../src/elements/img.ts","../src/elements/iframe.ts","../src/elements/embed.ts","../src/elements/object.ts","../src/elements/video.ts","../src/elements/audio.ts","../src/elements/track.ts","../src/elements/map.ts","../src/elements/area.ts","../src/elements/table.ts","../src/elements/caption.ts","../src/elements/colgroup.ts","../src/elements/col.ts","../src/elements/tbody.ts","../src/elements/thead.ts","../src/elements/tfoot.ts","../src/elements/tr.ts","../src/elements/td.ts","../src/elements/th.ts","../src/elements/form.ts","../src/elements/label.ts","../src/elements/input.ts","../src/elements/button.ts","../src/elements/select.ts","../src/elements/datalist.ts","../src/elements/optgroup.ts","../src/elements/option.ts","../src/elements/textarea.ts","../src/elements/output.ts","../src/elements/progress.ts","../src/elements/meter.ts","../src/elements/fieldset.ts","../src/elements/legend.ts","../src/elements/details.ts","../src/elements/summary.ts","../src/elements/dialog.ts","../src/elements/script.ts","../src/elements/noscript.ts","../src/elements/template.ts","../src/elements/slot.ts","../src/elements/canvas.ts","../src/getElementSpec.ts"],"sourcesContent":["export { getElementSpec } from \"./getElementSpec\";\nexport * from \"./types\";\n","/**\n * @see html.spec.whatwg.org/#toc-semantics\n */\n\n// The document element\nexport { html } from \"./html\";\n\n// Document metadata\nexport { head } from \"./head\";\nexport { title } from \"./title\";\nexport { base } from \"./base\";\nexport { link } from \"./link\";\nexport { meta } from \"./meta\";\nexport { style } from \"./style\";\n\n// Sections\nexport { body } from \"./body\";\nexport { article } from \"./article\";\nexport { section } from \"./section\";\nexport { nav } from \"./nav\";\nexport { aside } from \"./aside\";\nexport { h1 } from \"./h1\";\nexport { h2 } from \"./h2\";\nexport { h3 } from \"./h3\";\nexport { h4 } from \"./h4\";\nexport { h5 } from \"./h5\";\nexport { h6 } from \"./h6\";\nexport { hrgroup } from \"./hrgroup\";\nexport { header } from \"./header\";\nexport { footer } from \"./footer\";\nexport { address } from \"./address\";\n\n// Grouping content\nexport { p } from \"./p\";\nexport { hr } from \"./hr\";\nexport { pre } from \"./pre\";\nexport { blockquote } from \"./blockquote\";\nexport { ol } from \"./ol\";\nexport { ul } from \"./ul\";\nexport { menu } from \"./menu\";\nexport { li } from \"./li\";\nexport { dl } from \"./dl\";\nexport { dt } from \"./dt\";\nexport { dd } from \"./dd\";\nexport { figure } from \"./figure\";\nexport { figcaption } from \"./figcaption\";\nexport { main } from \"./main\";\nexport { search } from \"./search\";\nexport { div } from \"./div\";\n\n// Text-level semantics\nexport { a } from \"./a\";\nexport { em } from \"./em\";\nexport { strong } from \"./strong\";\nexport { small } from \"./small\";\nexport { s } from \"./s\";\nexport { cite } from \"./cite\";\nexport { q } from \"./q\";\nexport { dfn } from \"./dfn\";\nexport { abbr } from \"./abbr\";\nexport { ruby } from \"./ruby\";\nexport { rt } from \"./rt\";\nexport { rp } from \"./rp\";\nexport { data } from \"./data\";\nexport { time } from \"./time\";\nexport { code } from \"./code\";\nexport { _var } from \"./var\";\nexport { samp } from \"./samp\";\nexport { kbd } from \"./kbd\";\nexport { sub } from \"./sub\";\nexport { sup } from \"./sup\";\nexport { i } from \"./i\";\nexport { b } from \"./b\";\nexport { u } from \"./u\";\nexport { mark } from \"./mark\";\nexport { bdi } from \"./bdi\";\nexport { bdo } from \"./bdo\";\nexport { span } from \"./span\";\nexport { br } from \"./br\";\nexport { wbr } from \"./wbr\";\n\n// Edits\nexport { ins } from \"./ins\";\nexport { del } from \"./del\";\n\n// Embedded content\nexport { picture } from \"./picture\";\nexport { source } from \"./source\";\nexport { img } from \"./img\";\nexport { iframe } from \"./iframe\";\nexport { embed } from \"./embed\";\nexport { object } from \"./object\";\nexport { video } from \"./video\";\nexport { audio } from \"./audio\";\nexport { track } from \"./track\";\nexport { map } from \"./map\";\nexport { area } from \"./area\";\n\n// Tabular data\nexport { table } from \"./table\";\nexport { caption } from \"./caption\";\nexport { colgroup } from \"./colgroup\";\nexport { col } from \"./col\";\nexport { tbody } from \"./tbody\";\nexport { thead } from \"./thead\";\nexport { tfoot } from \"./tfoot\";\nexport { tr } from \"./tr\";\nexport { td } from \"./td\";\nexport { th } from \"./th\";\n\n// Forms\nexport { form } from \"./form\";\nexport { label } from \"./label\";\nexport { input } from \"./input\";\nexport { button } from \"./button\";\nexport { select } from \"./select\";\nexport { datalist } from \"./datalist\";\nexport { optgroup } from \"./optgroup\";\nexport { option } from \"./option\";\nexport { textarea } from \"./textarea\";\nexport { output } from \"./output\";\nexport { progress } from \"./progress\";\nexport { meter } from \"./meter\";\nexport { fieldset } from \"./fieldset\";\nexport { legend } from \"./legend\";\n\n// Interactive elements\nexport { details } from \"./details\";\nexport { summary } from \"./summary\";\nexport { dialog } from \"./dialog\";\n\n// Scripting\nexport { script } from \"./script\";\nexport { noscript } from \"./noscript\";\nexport { template } from \"./template\";\nexport { slot } from \"./slot\";\nexport { canvas } from \"./canvas\";\n","import type { ReadonlySet } from \"../types\";\n\nexport const contents = {\n fromKeys(...keys: string[]): ReadonlySet<string> {\n return new Set(keys);\n },\n fromSet(set: Set<string>, ...keys: string[]): ReadonlySet<string> {\n const result = new Set(set);\n keys.forEach((key) => set.add(key));\n return result;\n },\n fromUnionSets(setA: Set<string>, setB: Set<string>): ReadonlySet<string> {\n const set = new Set(...setA, ...setB);\n return set;\n },\n};\n","import type { ContentConstraint, ContentConstraintValue } from \"../types\";\n\nexport const contentConstraint = {\n fromEntries(entries: [string, ContentConstraintValue][]): ContentConstraint {\n return new Map(entries);\n },\n fromSets(\n value: ContentConstraintValue,\n ...sets: Set<string>[]\n ): ContentConstraint {\n return new Map(\n sets\n .reduce<string[]>((acc, set) => [...acc, ...set], [])\n .map((key) => [key, value]),\n );\n },\n};\n\nexport const required: ContentConstraintValue = {\n required: true,\n};\n\nexport const onlyOne: ContentConstraintValue = {\n max: 1,\n};\n\nexport const disallow: ContentConstraintValue = {\n disallow: true,\n};\n","export const emptyAttributes = new Set([]);\nexport const globalAttributes = new Set([\n \"accesskey\",\n \"autocapitalize\",\n \"autocorrect\",\n \"autofocus\",\n \"contenteditable\",\n \"dir\",\n \"draggable\",\n \"enterkeyhint\",\n \"hidden\",\n \"inert\",\n \"inputmode\",\n \"is\",\n \"itemid\",\n \"itemprop\",\n \"itemref\",\n \"itemscope\",\n \"itemtype\",\n \"lang\",\n \"nonce\",\n \"popover\",\n \"spellcheck\",\n \"style\",\n \"tabindex\",\n \"title\",\n \"translate\",\n \"writingsuggestions\",\n \"class\",\n \"id\",\n \"slot\",\n \"xmlns\",\n \"xml:lang\",\n \"xml:space\",\n]);\n","import { AttributesSpecMap } from \"../types\";\nimport { emptyAttributes, globalAttributes } from \"./attributes\";\n\nexport const contentAttributes = (\n global: boolean,\n specific?: string[],\n): AttributesSpecMap => {\n if (!specific || specific.length === 0) {\n if (global) {\n return globalAttributes;\n }\n return emptyAttributes;\n }\n const specificAttributes = new Set(specific);\n return {\n has(name) {\n return globalAttributes.has(name) || specificAttributes.has(name);\n },\n };\n};\n","export const contentsPreset = {\n metadataContent: new Set([\n \"base\",\n \"link\",\n \"meta\",\n \"noscript\",\n \"script\",\n \"style\",\n \"template\",\n \"title\",\n ]),\n flowContent: new Set([\n \"a\",\n \"abbr\",\n \"address\",\n \"area\",\n \"article\",\n \"aside\",\n \"audio\",\n \"b\",\n \"bdi\",\n \"bdo\",\n \"blockquote\",\n \"br\",\n \"button\",\n \"canvas\",\n \"cite\",\n \"code\",\n \"data\",\n \"datalist\",\n \"del\",\n \"details\",\n \"dfn\",\n \"dialog\",\n \"div\",\n \"dl\",\n \"em\",\n \"embed\",\n \"fieldset\",\n \"figure\",\n \"footer\",\n \"form\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"header\",\n \"hgroup\",\n \"hr\",\n \"i\",\n \"iframe\",\n \"img\",\n \"input\",\n \"ins\",\n \"kbd\",\n \"label\",\n \"link\",\n \"main\",\n \"map\",\n \"mark\",\n \"math\",\n \"menu\",\n \"meta\",\n \"meter\",\n \"nav\",\n \"noscript\",\n \"object\",\n \"ol\",\n \"output\",\n \"p\",\n \"picture\",\n \"pre\",\n \"progress\",\n \"q\",\n \"ruby\",\n \"s\",\n \"samp\",\n \"script\",\n \"search\",\n \"section\",\n \"select\",\n \"slot\",\n \"small\",\n \"span\",\n \"strong\",\n \"sub\",\n \"sup\",\n \"svg\",\n \"table\",\n \"template\",\n \"textarea\",\n \"time\",\n \"u\",\n \"ul\",\n \"var\",\n \"video\",\n \"wbr\",\n \"#text\",\n ]),\n phrasingContent: new Set([\n \"a\",\n \"abbr\",\n \"area\",\n \"audio\",\n \"b\",\n \"bdi\",\n \"bdo\",\n \"br\",\n \"button\",\n \"canvas\",\n \"cite\",\n \"code\",\n \"data\",\n \"datalist\",\n \"del\",\n \"dfn\",\n \"em\",\n \"embed\",\n \"i\",\n \"iframe\",\n \"img\",\n \"input\",\n \"ins\",\n \"kbd\",\n \"label\",\n \"link\",\n \"map\",\n \"mark\",\n \"math\",\n \"meta\",\n \"meter\",\n \"noscript\",\n \"object\",\n \"output\",\n \"picture\",\n \"progress\",\n \"q\",\n \"ruby\",\n \"s\",\n \"samp\",\n \"script\",\n \"select\",\n \"slot\",\n \"small\",\n \"span\",\n \"strong\",\n \"sub\",\n \"sup\",\n \"svg\",\n \"template\",\n \"textarea\",\n \"time\",\n \"u\",\n \"var\",\n \"video\",\n \"wbr\",\n \"#text\",\n ]),\n scriptSupportingElements: new Set([\"script\", \"template\"]),\n headingContent: new Set([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"hgroup\"]),\n sectioningContent: new Set([\"article\", \"aside\", \"nav\", \"section\"]),\n transparentContent: new Set([\"#transparent\"]),\n interactiveContent: new Set([\n \"a\",\n \"audio\",\n \"button\",\n \"details\",\n \"embed\",\n \"iframe\",\n \"img\",\n \"input\",\n \"label\",\n \"select\",\n \"text\",\n \"area\",\n \"video\",\n ]),\n text: new Set(\"#text\"),\n mediaElements: new Set([\"audio\", \"video\"]),\n labelableElements: new Set([\n \"button\",\n \"input\",\n \"meter\",\n \"output\",\n \"progress\",\n \"select\",\n \"textarea\",\n ]),\n};\n","import type { ElementSpec, GetElementSpec } from \"../types\";\n\nimport { contentAttributes } from \"../helpers\";\nimport { contents } from \"../helpers\";\n\nconst htmlSpec: ElementSpec = {\n contents: [\n {\n type: \"required\",\n contents: contents.fromKeys(\"head\"),\n },\n {\n type: \"required\",\n contents: contents.fromKeys(\"body\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const html: GetElementSpec = () => htmlSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\nimport { contentConstraint, onlyOne, required } from \"../helpers\";\n\nconst headSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.metadataContent,\n constraints: {\n children: contentConstraint.fromEntries([\n [\"title\", required],\n [\"base\", onlyOne],\n ]),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const head: GetElementSpec = () => headSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst titleSpec: ElementSpec = {\n contents: [\n {\n type: \"required\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const title: GetElementSpec = () => titleSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst baseSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\"href\", \"target\"]),\n};\n\nexport const base: GetElementSpec = () => baseSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst linkSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"href\",\n \"crossorigin\",\n \"rel\",\n \"media\",\n \"integrity\",\n \"hreflang\",\n \"type\",\n \"referrerpolicy\",\n \"sizes\",\n \"imagesrcset\",\n \"imagesizes\",\n \"as\",\n \"blocking\",\n \"color\",\n \"disabled\",\n \"fetchpriority\",\n \"title\",\n ]),\n};\n\nexport const link: GetElementSpec = () => linkSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst metaSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"name\",\n \"http-equiv\",\n \"content\",\n \"charset\",\n \"media\",\n ]),\n};\n\nexport const meta: GetElementSpec = () => metaSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst styleSpec: ElementSpec = {\n contents: [\n {\n type: \"required\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true, [\"media\", \"blocking\", \"title\"]),\n};\n\nexport const style: GetElementSpec = () => styleSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst bodySpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\n \"onafterprint\",\n \"onbeforeprint\",\n \"onbeforeunload\",\n \"onhashchange\",\n \"onlanguagechange\",\n \"onmessage\",\n \"onmessageerror\",\n \"onoffline\",\n \"ononline\",\n \"onpageswap\",\n \"onpagehide\",\n \"onpagereveal\",\n \"onpageshow\",\n \"onpopstate\",\n \"onrejectionhandled\",\n \"onstorage\",\n \"onunhandledrejection\",\n \"onunload\",\n ]),\n};\n\nexport const body: GetElementSpec = () => bodySpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst articleSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const article: GetElementSpec = () => articleSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst sectionSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const section: GetElementSpec = () => sectionSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst navSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const nav: GetElementSpec = () => navSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst asideSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const aside: GetElementSpec = () => asideSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst h1Spec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const h1: GetElementSpec = () => h1Spec;\n","import { h1 } from \"./h1\";\nexport const h2 = h1;\n","import { h1 } from \"./h1\";\nexport const h3 = h1;\n","import { h1 } from \"./h1\";\nexport const h4 = h1;\n","import { h1 } from \"./h1\";\nexport const h5 = h1;\n","import { h1 } from \"./h1\";\nexport const h6 = h1;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset, contents } from \"../helpers\";\n\nconst hrgroupSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"p\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"required\",\n contents: contents.fromKeys(\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"p\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const hrgroup: GetElementSpec = () => hrgroupSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst headerSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n new Set([\"header\", \"footer\"]),\n ),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const header: GetElementSpec = () => headerSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentsPreset,\n contentConstraint,\n disallow,\n} from \"../helpers\";\n\nconst footerSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n new Set([\"header\", \"footer\"]),\n ),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const footer: GetElementSpec = () => footerSpec;\n","import { contentConstraint, disallow } from \"../helpers\";\nimport { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst addressSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.headingContent,\n contentsPreset.sectioningContent,\n new Set([\"header\", \"footer\", \"address\"]),\n ),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const address: GetElementSpec = () => addressSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst pSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const p: GetElementSpec = () => pSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst hrSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true),\n};\n\nexport const hr: GetElementSpec = () => hrSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst preSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const pre: GetElementSpec = () => preSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst blockquoteSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\"cite\"]),\n};\n\nexport const blockquote: GetElementSpec = () => blockquoteSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contents, contentsPreset, contentAttributes } from \"../helpers\";\n\nconst olSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.scriptSupportingElements, \"li\"),\n },\n ],\n attributes: contentAttributes(true, [\"reversed\", \"start\", \"type\"]),\n};\n\nexport const ol: GetElementSpec = () => olSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst ulSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.scriptSupportingElements, \"li\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const ul: GetElementSpec = () => ulSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst menuSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.scriptSupportingElements, \"li\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const menu: GetElementSpec = () => menuSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst liInMenuOrUl: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nconst liNotInMenuOrUl: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\"value\"]),\n};\n\nexport const li: GetElementSpec = (state) => {\n const parent = state?.parent;\n if (parent === \"menu\" || parent === \"ul\") {\n return liInMenuOrUl;\n }\n return liNotInMenuOrUl;\n};\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst dlSpec: ElementSpec = {\n contents: [\n {\n type: \"either\",\n options: [\n [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"oneOrMore\",\n contents: new Set([\"dt\"]),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"oneOrMore\",\n contents: new Set([\"dd\"]),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n ],\n [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"oneOrMore\",\n contents: new Set([\"div\"]),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n ],\n ],\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const dl: GetElementSpec = () => dlSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst dtSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n new Set([\"header\", \"footer\"]),\n contentsPreset.sectioningContent,\n contentsPreset.headingContent,\n ),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const dt: GetElementSpec = () => dtSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst ddSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const dd: GetElementSpec = () => ddSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst figureSpec: ElementSpec = {\n contents: [\n {\n type: \"either\",\n options: [\n [\n {\n type: \"required\",\n contents: new Set(\"figcaption\"),\n },\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n {\n type: \"required\",\n contents: contents.fromKeys(\"figcaption\"),\n },\n ],\n [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n ],\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const figure: GetElementSpec = () => figureSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst figcaptionSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const figcaption: GetElementSpec = () => figcaptionSpec;\n","import { contentsPreset } from \"../helpers\";\nimport { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst mainSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const main: GetElementSpec = () => mainSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst searchSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const search: GetElementSpec = () => searchSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst divChildOfDlSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"oneOrMore\",\n contents: contents.fromKeys(\"dt\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"oneOrMore\",\n contents: contents.fromKeys(\"dd\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nconst divSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const div: GetElementSpec = (state) => {\n const parent = state?.parent;\n if (parent === \"dl\") {\n return divChildOfDlSpec;\n }\n return divSpec;\n};\n","import { ContentConstraintValue, ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst descendantsConstraints = new Map<string, ContentConstraintValue>(\n [contentsPreset.interactiveContent, new Set([\"a\"])]\n .reduce<string[]>((acc, set) => [...acc, ...set], [])\n .map((key) => [key, disallow]),\n);\n\ndescendantsConstraints.set(\"*\", {\n disallow: true,\n ifAttributes(attributes) {\n return !!attributes[\"tabindex\"];\n },\n});\n\nconst aSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.interactiveContent,\n new Set([\"a\"]),\n ),\n },\n },\n ],\n attributes: contentAttributes(true, [\n \"href\",\n \"target\",\n \"download\",\n \"ping\",\n \"rel\",\n \"hreflang\",\n \"type\",\n \"referrerpolicy\",\n ]),\n};\n\nexport const a: GetElementSpec = () => aSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst emSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const em: GetElementSpec = () => emSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst strongSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const strong: GetElementSpec = () => strongSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst smallSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const small: GetElementSpec = () => smallSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst sSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const s: GetElementSpec = () => sSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst citeSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const cite: GetElementSpec = () => citeSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst qSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true, [\"cite\"]),\n};\n\nexport const q: GetElementSpec = () => qSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst dfnSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n constraints: {\n descendants: contentConstraint.fromEntries([[\"dfn\", disallow]]),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const dfn: GetElementSpec = () => dfnSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst abbrSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const abbr: GetElementSpec = () => abbrSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst rubySpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.phrasingContent, \"rt\", \"rp\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const ruby: GetElementSpec = () => rubySpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst rtSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const rt: GetElementSpec = () => rtSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst rpSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const rp: GetElementSpec = () => rpSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst dataSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true, [\"value\"]),\n};\n\nexport const data: GetElementSpec = () => dataSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst timeWihthoutDatetimeSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true, [\"datetime\"]),\n};\nconst timeWithDatetimeSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true, [\"datetime\"]),\n};\n\nexport const time: GetElementSpec = (state) => {\n const attributes = state?.attributes || {};\n if (!!attributes[\"datetime\"]) {\n return timeWihthoutDatetimeSpec;\n }\n return timeWithDatetimeSpec;\n};\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst codeSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const code: GetElementSpec = () => codeSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst varSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const _var: GetElementSpec = () => varSpec;\n","import { contentsPreset } from \"../helpers\";\nimport { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst sampSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const samp: GetElementSpec = () => sampSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst kbdSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const kbd: GetElementSpec = () => kbdSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst subSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const sub: GetElementSpec = () => subSpec;\n","import { sub } from \"./sub\";\n\nexport const sup = sub;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst iSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const i: GetElementSpec = () => iSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst bSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const b: GetElementSpec = () => bSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst uSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const u: GetElementSpec = () => uSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst markSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const mark: GetElementSpec = () => markSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst bdiSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const bdi: GetElementSpec = () => bdiSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst bdoSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const bdo: GetElementSpec = () => bdoSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst spanSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const span: GetElementSpec = () => spanSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst brSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true),\n};\n\nexport const br: GetElementSpec = () => brSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst wbrSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true),\n};\n\nexport const wbr: GetElementSpec = () => wbrSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentsPreset } from \"../helpers\";\nimport { contentAttributes } from \"../helpers\";\n\nconst insSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n },\n ],\n attributes: contentAttributes(true, [\"cite\", \"datetime\"]),\n};\n\nexport const ins: GetElementSpec = () => insSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst delSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n },\n ],\n attributes: contentAttributes(true, [\"cite\", \"datetime\"]),\n};\n\nexport const del: GetElementSpec = () => delSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst pictureSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"source\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"required\",\n contents: contents.fromKeys(\"img\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const picture: GetElementSpec = () => pictureSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst sourceSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"type\",\n \"media\",\n \"src\",\n \"srcset\",\n \"sizes\",\n \"width\",\n \"height\",\n ]),\n};\n\nexport const source: GetElementSpec = () => sourceSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst imgSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"alt\",\n \"src\",\n \"srcset\",\n \"sizes\",\n \"crossorigin\",\n \"usemap\",\n \"ismap\",\n \"width\",\n \"height\",\n \"referrerpolicy\",\n \"decoding\",\n \"loading\",\n \"fetchpriority\",\n ]),\n};\n\nexport const img: GetElementSpec = () => imgSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst iframeSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"src\",\n \"srcdoc\",\n \"name\",\n \"sandbox\",\n \"allow\",\n \"allowfullscreen\",\n \"width\",\n \"height\",\n \"referrerpolicy\",\n \"loading\",\n ]),\n};\n\nexport const iframe: GetElementSpec = () => iframeSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst embedSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\"src\", \"type\", \"width\", \"height\"]),\n};\n\nexport const embed: GetElementSpec = () => embedSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst objectSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n },\n ],\n attributes: contentAttributes(true, [\n \"data\",\n \"type\",\n \"name\",\n \"form\",\n \"width\",\n \"height\",\n ]),\n};\n\nexport const object: GetElementSpec = () => objectSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentsPreset,\n contentConstraint,\n disallow,\n contents,\n} from \"../helpers\";\n\nconst attributes = contentAttributes(true, [\n \"src\",\n \"crossorigin\",\n \"poster\",\n \"preload\",\n \"autoplay\",\n \"playsinline\",\n \"loop\",\n \"muted\",\n \"controls\",\n \"width\",\n \"height\",\n]);\n\nconst videoWithSrcSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"track\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.transparentContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.mediaElements,\n ),\n },\n },\n ],\n attributes,\n};\nconst videoWitoutSrcSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"source\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"track\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.transparentContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.mediaElements,\n ),\n },\n },\n ],\n attributes,\n};\n\nexport const video: GetElementSpec = (state) => {\n const attributes = state?.attributes || {};\n if (!!attributes[\"src\"]) {\n return videoWithSrcSpec;\n }\n return videoWitoutSrcSpec;\n};\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contents,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst attributes = contentAttributes(true, [\n \"src\",\n \"crossorigin\",\n \"preload\",\n \"autoplay\",\n \"loop\",\n \"muted\",\n \"controls\",\n]);\n\nconst audioWithSrcSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"track\"),\n },\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n },\n ],\n attributes,\n};\n\nconst audioWithoutSrcSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"source\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"track\"),\n },\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.mediaElements,\n ),\n },\n },\n ],\n attributes,\n};\n\nexport const audio: GetElementSpec = (state) => {\n const attributes = state?.attributes || {};\n if (!!attributes[\"src\"]) {\n return audioWithSrcSpec;\n }\n return audioWithoutSrcSpec;\n};\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst trackSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"kind\",\n \"src\",\n \"srclang\",\n \"label\",\n \"label\",\n \"default\",\n ]),\n};\n\nexport const track: GetElementSpec = () => trackSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst mapSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n },\n ],\n attributes: contentAttributes(true, [\"name\"]),\n};\n\nexport const map: GetElementSpec = () => mapSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst areaSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"alt\",\n \"coords\",\n \"shape\",\n \"href\",\n \"target\",\n \"download\",\n \"ping\",\n \"rel\",\n \"referrerpolicy\",\n ]),\n};\n\nexport const area: GetElementSpec = () => areaSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst tableSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"optional\",\n contents: contents.fromKeys(\"caption\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"colgroup\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"optional\",\n contents: contents.fromKeys(\"thead\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"either\",\n options: [\n [\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"tbody\"),\n },\n ],\n [\n {\n type: \"oneOrMore\",\n contents: contents.fromKeys(\"tr\"),\n },\n ],\n ],\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n {\n type: \"optional\",\n contents: contents.fromKeys(\"tfoot\"),\n },\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.scriptSupportingElements,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const table: GetElementSpec = () => tableSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst captionSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromEntries([[\"table\", disallow]]),\n },\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const caption: GetElementSpec = () => captionSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents } from \"../helpers\";\n\nconst attributes = contentAttributes(true, [\"span\"]);\n\nconst colgroupWithSpanSpec: ElementSpec = {\n contents: null,\n attributes,\n};\nconst colgroupWithoutSpanSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromKeys(\"col\", \"template\"),\n },\n ],\n attributes,\n};\n\nexport const colgroup: GetElementSpec = (state) => {\n const attributes = state?.attributes || {};\n if (attributes[\"span\"]) {\n return colgroupWithSpanSpec;\n }\n return colgroupWithoutSpanSpec;\n};\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst colSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\"span\"]),\n};\n\nexport const col: GetElementSpec = () => colSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst tbodySpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.scriptSupportingElements, \"tr\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const tbody: GetElementSpec = () => tbodySpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst theadSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.scriptSupportingElements, \"tr\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const thead: GetElementSpec = () => theadSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst tfootSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(contentsPreset.scriptSupportingElements, \"tr\"),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const tfoot: GetElementSpec = () => tfootSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst trSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(\n contentsPreset.scriptSupportingElements,\n \"td\",\n \"th\",\n ),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const tr: GetElementSpec = () => trSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst tdSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\"colspan\", \"rowspan\", \"headers\"]),\n};\n\nexport const td: GetElementSpec = () => tdSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst thSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n new Set([\"header\", \"footer\"]),\n contentsPreset.sectioningContent,\n contentsPreset.headingContent,\n ),\n },\n },\n ],\n attributes: contentAttributes(true, [\n \"colspan\",\n \"rowspan\",\n \"headers\",\n \"scope\",\n \"abbr\",\n ]),\n};\n\nexport const th: GetElementSpec = () => thSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst formSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n constraints: {\n descendants: contentConstraint.fromEntries([[\"from\", disallow]]),\n },\n },\n ],\n attributes: contentAttributes(true, [\n \"accept-charset\",\n \"action\",\n \"autocomplete\",\n \"enctype\",\n \"method\",\n \"name\",\n \"novalidate\",\n \"target\",\n \"rel\",\n ]),\n};\n\nexport const form: GetElementSpec = () => formSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst labelSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n constraints: {\n descendants: contentConstraint.fromEntries([[\"label\", disallow]]),\n },\n },\n ],\n attributes: contentAttributes(true, [\"for\"]),\n};\n\nexport const label: GetElementSpec = () => labelSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst inputSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"accept\",\n \"alpha\",\n \"alt\",\n \"autocomplete\",\n \"checked\",\n \"colorspace\",\n \"dirname\",\n \"disabled\",\n \"form\",\n \"formaction\",\n \"formenctype\",\n \"formmethod\",\n \"formnovalidate\",\n \"formtarget\",\n \"height\",\n \"list\",\n \"max\",\n \"maxlength\",\n \"min\",\n \"minlength\",\n \"multiple\",\n \"name\",\n \"pattern\",\n \"placeholder\",\n \"popovertarget\",\n \"popovertargetaction\",\n \"readonly\",\n \"required\",\n \"size\",\n \"src\",\n \"step\",\n \"type\",\n \"value\",\n \"width\",\n \"title\",\n ]),\n};\n\nexport const input: GetElementSpec = () => inputSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst buttonSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.interactiveContent,\n ),\n },\n },\n ],\n attributes: contentAttributes(true, [\n \"command\",\n \"commandfor\",\n \"disabled\",\n \"form\",\n \"formaction\",\n \"formenctype\",\n \"formmethod\",\n \"formnovalidate\",\n \"formtarget\",\n \"name\",\n \"popovertarget\",\n \"popovertargetaction\",\n \"type\",\n \"value\",\n ]),\n};\n\nexport const button: GetElementSpec = () => buttonSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset, contents } from \"../helpers\";\n\nconst selectSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(\n contentsPreset.scriptSupportingElements,\n \"option\",\n \"optgroup\",\n \"hr\",\n ),\n },\n ],\n attributes: contentAttributes(true, [\n \"autocomplete\",\n \"disabled\",\n \"form\",\n \"multiple\",\n \"name\",\n \"required\",\n \"size\",\n ]),\n};\n\nexport const select: GetElementSpec = () => selectSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst datalistSpec: ElementSpec = {\n contents: [\n {\n type: \"either\",\n options: [\n [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(\n contentsPreset.scriptSupportingElements,\n \"option\",\n ),\n },\n ],\n ],\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const datalist: GetElementSpec = () => datalistSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset, contents } from \"../helpers\";\n\nconst optgroupSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromSet(\n contentsPreset.scriptSupportingElements,\n \"option\",\n ),\n },\n ],\n attributes: contentAttributes(true, [\"disabled\", \"label\"]),\n};\n\nexport const optgroup: GetElementSpec = () => optgroupSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst attributes = contentAttributes(true, [\n \"disabled\",\n \"label\",\n \"selected\",\n \"value\",\n]);\n\nconst optionWithLabelAndValueSpec: ElementSpec = {\n contents: null,\n attributes,\n};\n\nconst optionWithLabelSpec: ElementSpec = {\n contents: [\n {\n type: \"required\",\n contents: contentsPreset.text,\n },\n ],\n attributes,\n};\nconst optionWithoutLabelAndValueSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.text,\n },\n ],\n attributes,\n};\n\nexport const option: GetElementSpec = (state) => {\n const attributes = state?.attributes || {};\n if (attributes[\"label\"] && attributes[\"value\"]) {\n return optionWithLabelAndValueSpec;\n }\n if (attributes[\"label\"]) {\n return optionWithLabelSpec;\n }\n return optionWithoutLabelAndValueSpec;\n};\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst textareaSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true, [\n \"autocomplete\",\n \"cols\",\n \"dirname\",\n \"disabled\",\n \"form\",\n \"maxlength\",\n \"minlength\",\n \"name\",\n \"placeholder\",\n \"readonly\",\n \"required\",\n \"rows\",\n \"wrap\",\n ]),\n};\n\nexport const textarea: GetElementSpec = () => textareaSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst outputSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n },\n ],\n attributes: contentAttributes(true, [\"for\", \"form\", \"name\"]),\n};\n\nexport const output: GetElementSpec = () => outputSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst progressSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n constraints: {\n descendants: contentConstraint.fromEntries([[\"progress\", disallow]]),\n },\n },\n ],\n attributes: contentAttributes(true, [\"value\", \"max\"]),\n};\n\nexport const progress: GetElementSpec = () => progressSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentsPreset,\n contentConstraint,\n disallow,\n} from \"../helpers\";\n\nconst meterSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.phrasingContent,\n constraints: {\n descendants: contentConstraint.fromEntries([[\"meter\", disallow]]),\n },\n },\n ],\n attributes: contentAttributes(true, [\n \"value\",\n \"min\",\n \"max\",\n \"low\",\n \"high\",\n \"optimum\",\n ]),\n};\n\nexport const meter: GetElementSpec = () => meterSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst fieldsetSpec: ElementSpec = {\n contents: [\n {\n type: \"optional\",\n contents: contents.fromKeys(\"legend\"),\n },\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\"disabled\", \"form\", \"name\"]),\n};\n\nexport const fieldset: GetElementSpec = () => fieldsetSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst legendSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contents.fromUnionSets(\n contentsPreset.phrasingContent,\n contentsPreset.headingContent,\n ),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const legend: GetElementSpec = () => legendSpec;\n","import { contents, contentsPreset } from \"../helpers\";\nimport { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst detailsSpec: ElementSpec = {\n contents: [\n {\n type: \"required\",\n contents: contents.fromKeys(\"summary\"),\n },\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\"name\", \"open\"]),\n};\n\nexport const details: GetElementSpec = () => detailsSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contents, contentsPreset } from \"../helpers\";\n\nconst summarySpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contents.fromUnionSets(\n contentsPreset.phrasingContent,\n contentsPreset.headingContent,\n ),\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const summary: GetElementSpec = () => summarySpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst dialogSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.flowContent,\n },\n ],\n attributes: contentAttributes(true, [\"closedby\", \"open\"]),\n};\n\nexport const dialog: GetElementSpec = () => dialogSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst scriptSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true, [\n \"src\",\n \"type\",\n \"nomodule\",\n \"async\",\n \"defer\",\n \"crossorigin\",\n \"integrity\",\n \"referrerpolicy\",\n \"blocking\",\n \"fetchpriority\",\n ]),\n};\n\nexport const script: GetElementSpec = () => scriptSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst noscriptSpec: ElementSpec = {\n contents: [\n {\n type: \"zeroOrMore\",\n contents: contentsPreset.text,\n },\n ],\n attributes: contentAttributes(true),\n};\n\nexport const noscript: GetElementSpec = () => noscriptSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes } from \"../helpers\";\n\nconst templateSpec: ElementSpec = {\n contents: null,\n attributes: contentAttributes(true, [\n \"shadowrootmode\",\n \"shadowrootdelegatesfocus\",\n \"shadowrootclonable\",\n \"shadowrootserializable\",\n ]),\n};\n\nexport const template: GetElementSpec = () => templateSpec;\n","import type { ElementSpec, GetElementSpec } from \"../types\";\nimport { contentAttributes, contentsPreset } from \"../helpers\";\n\nconst slotSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n },\n ],\n attributes: contentAttributes(true, [\"name\"]),\n};\n\nexport const slot: GetElementSpec = () => slotSpec;\n","import { ElementSpec, GetElementSpec } from \"../types\";\nimport {\n contentAttributes,\n contentConstraint,\n contentsPreset,\n disallow,\n} from \"../helpers\";\n\nconst canvasSpec: ElementSpec = {\n contents: [\n {\n type: \"oneOrMore\",\n contents: contentsPreset.transparentContent,\n constraints: {\n descendants: contentConstraint.fromSets(\n disallow,\n contentsPreset.interactiveContent,\n ),\n },\n },\n ],\n attributes: contentAttributes(true, [\"width\", \"height\"]),\n};\n\nexport const canvas: GetElementSpec = () => canvasSpec;\n","import { ElementSpec, GetElementSpec } from \"./types\";\nimport * as elementsSpecs from \"./elements\";\n\nconst specsRecord: Record<string, GetElementSpec> = elementsSpecs;\n\ntype Options = {\n parent?: string;\n attributes?: Record<string, string | boolean>;\n};\n\nexport function getElementSpec(\n name: string,\n options?: Options,\n): ElementSpec | null {\n const getSpec = specsRecord[name.toLowerCase()] || null;\n if (!getSpec) {\n return null;\n }\n return getSpec(options);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,IAAM,WAAW;AAAA,EACtB,YAAY,MAAqC;AAC/C,WAAO,IAAI,IAAI,IAAI;AAAA,EACrB;AAAA,EACA,QAAQ,QAAqB,MAAqC;AAChE,UAAM,SAAS,IAAI,IAAI,GAAG;AAC1B,SAAK,QAAQ,CAAC,QAAQ,IAAI,IAAI,GAAG,CAAC;AAClC,WAAO;AAAA,EACT;AAAA,EACA,cAAc,MAAmB,MAAwC;AACvE,UAAM,MAAM,IAAI,IAAI,GAAG,MAAM,GAAG,IAAI;AACpC,WAAO;AAAA,EACT;AACF;;;ACbO,IAAM,oBAAoB;AAAA,EAC/B,YAAY,SAAgE;AAC1E,WAAO,IAAI,IAAI,OAAO;AAAA,EACxB;AAAA,EACA,SACE,UACG,MACgB;AACnB,WAAO,IAAI;AAAA,MACT,KACG,OAAiB,CAAC,KAAK,QAAQ,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,EACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC;AAAA,IAC9B;AAAA,EACF;AACF;AAEO,IAAM,WAAmC;AAAA,EAC9C,UAAU;AACZ;AAEO,IAAM,UAAkC;AAAA,EAC7C,KAAK;AACP;AAEO,IAAM,WAAmC;AAAA,EAC9C,UAAU;AACZ;;;AC5BO,IAAM,kBAAkB,oBAAI,IAAI,CAAC,CAAC;AAClC,IAAM,mBAAmB,oBAAI,IAAI;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;;;AC/BM,IAAM,oBAAoB,CAC/B,QACA,aACsB;AACtB,MAAI,CAAC,YAAY,SAAS,WAAW,GAAG;AACtC,QAAI,QAAQ;AACV,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,QAAM,qBAAqB,IAAI,IAAI,QAAQ;AAC3C,SAAO;AAAA,IACL,IAAI,MAAM;AACR,aAAO,iBAAiB,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI;AAAA,IAClE;AAAA,EACF;AACF;;;ACnBO,IAAM,iBAAiB;AAAA,EAC5B,iBAAiB,oBAAI,IAAI;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,aAAa,oBAAI,IAAI;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,iBAAiB,oBAAI,IAAI;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;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","names":["attributes","attributes","attributes","attributes","attributes","attributes"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -57,10 +57,16 @@ interface ElementSpec {
|
|
|
57
57
|
attributes: AttributesSpecMap;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
type ElementState = {
|
|
61
|
+
parent?: string;
|
|
62
|
+
attributes?: Record<string, string | boolean>;
|
|
63
|
+
};
|
|
64
|
+
type GetElementSpec = (state?: ElementState) => ElementSpec;
|
|
65
|
+
|
|
60
66
|
type Options = {
|
|
61
67
|
parent?: string;
|
|
62
68
|
attributes?: Record<string, string | boolean>;
|
|
63
69
|
};
|
|
64
70
|
declare function getElementSpec(name: string, options?: Options): ElementSpec | null;
|
|
65
71
|
|
|
66
|
-
export { getElementSpec };
|
|
72
|
+
export { type AttributesSpecMap, type ContentConstraint, type ContentConstraintValue, type ContentConstraints, type ContentModel, type ElementSpec, type GetElementSpec, type ReadonlyMap, type ReadonlySet, getElementSpec };
|
package/dist/index.d.ts
CHANGED
|
@@ -57,10 +57,16 @@ interface ElementSpec {
|
|
|
57
57
|
attributes: AttributesSpecMap;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
type ElementState = {
|
|
61
|
+
parent?: string;
|
|
62
|
+
attributes?: Record<string, string | boolean>;
|
|
63
|
+
};
|
|
64
|
+
type GetElementSpec = (state?: ElementState) => ElementSpec;
|
|
65
|
+
|
|
60
66
|
type Options = {
|
|
61
67
|
parent?: string;
|
|
62
68
|
attributes?: Record<string, string | boolean>;
|
|
63
69
|
};
|
|
64
70
|
declare function getElementSpec(name: string, options?: Options): ElementSpec | null;
|
|
65
71
|
|
|
66
|
-
export { getElementSpec };
|
|
72
|
+
export { type AttributesSpecMap, type ContentConstraint, type ContentConstraintValue, type ContentConstraints, type ContentModel, type ElementSpec, type GetElementSpec, type ReadonlyMap, type ReadonlySet, getElementSpec };
|