@native-dom/runtime 0.0.3 → 0.0.4

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.
Files changed (50) hide show
  1. package/README.md +1 -1
  2. package/dist/attributes.d.ts +21 -18
  3. package/dist/attributes.d.ts.map +1 -1
  4. package/dist/attributes.js +115 -137
  5. package/dist/attributes.js.map +1 -1
  6. package/dist/css.d.ts +137 -133
  7. package/dist/css.d.ts.map +1 -1
  8. package/dist/css.js +495 -555
  9. package/dist/css.js.map +1 -1
  10. package/dist/custom-elements.d.ts +22 -18
  11. package/dist/custom-elements.d.ts.map +1 -1
  12. package/dist/custom-elements.js +58 -58
  13. package/dist/custom-elements.js.map +1 -1
  14. package/dist/errors.d.ts +5 -2
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js +10 -6
  17. package/dist/errors.js.map +1 -1
  18. package/dist/event-init.d.ts +81 -77
  19. package/dist/event-init.d.ts.map +1 -1
  20. package/dist/events.d.ts +164 -161
  21. package/dist/events.d.ts.map +1 -1
  22. package/dist/events.js +417 -462
  23. package/dist/events.js.map +1 -1
  24. package/dist/geometry.d.ts +44 -41
  25. package/dist/geometry.d.ts.map +1 -1
  26. package/dist/geometry.js +68 -72
  27. package/dist/geometry.js.map +1 -1
  28. package/dist/history.d.ts +17 -13
  29. package/dist/history.d.ts.map +1 -1
  30. package/dist/history.js +67 -62
  31. package/dist/history.js.map +1 -1
  32. package/dist/index.d.ts +795 -798
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +3020 -3597
  35. package/dist/index.js.map +1 -1
  36. package/dist/observers.d.ts +46 -42
  37. package/dist/observers.d.ts.map +1 -1
  38. package/dist/observers.js +59 -57
  39. package/dist/observers.js.map +1 -1
  40. package/dist/platform.d.ts +71 -67
  41. package/dist/platform.d.ts.map +1 -1
  42. package/dist/platform.js +204 -212
  43. package/dist/platform.js.map +1 -1
  44. package/dist/stats.d.ts +18 -31
  45. package/dist/stats.d.ts.map +1 -1
  46. package/dist/stats.js +75 -87
  47. package/dist/stats.js.map +1 -1
  48. package/package.json +6 -7
  49. package/dist/event-init.js +0 -2
  50. package/dist/event-init.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["#ranges","#entries","#document","#animationFrames","#timeouts","#intervals","#selection","#closed","#animationFrameHandle","#nodeName","#textContentCacheVersion","#textContentCache","#adoptForMutation","#toNode","#assertSameDocument","#callback","#observed","#records","#matchingOptions","#scheduled","#documentNodeId","#documentElementId","#headId","#bodyId","#cookies","#activeElement","#namespaces","#wrappers","#mutationVersion","#queryAllCache","#queryOneCache","#classNameCache","#matchesCache","#closestCache","#lastQueryAllRootId","#lastQueryOneRootId","#lastClassNameRootId","#lastMatchesId","#lastClosestId","#customElementRegistryVersion","#hasCustomElementDefinitions","#lastQueryAllVersion","#lastQueryAllSelector","#lastQueryAllIds","#lastQueryOneVersion","#lastQueryOneSelector","#lastQueryOneId","#lastClassNameVersion","#lastClassNameSelector","#lastClassNameIds","#lastMatchesVersion","#lastMatchesSelector","#lastMatchesResult","#lastClosestVersion","#lastClosestSelector","#lastClosestResult","#localName","#shadowRoot","#classList","#dataset","#style","#normalizeAttributeName","#insertAdjacentNode","#toggleBooleanAttribute","#isRangeOverflow","#isRangeUnderflow","#isTooLong","#isTooShort","#isTypeMismatch","#isValueMissing","#resetFormValue","#blurWithoutFocusCheck","#disabled","#directChild","#content","#sheet","#sheetText","#nodeIds","#index","#accepts","#ids"],"sources":["../src/index.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\nimport type { NativeDocument as NativeDocumentBinding } from \"@native-dom/native-core\";\nimport { createDataset, DOMTokenList, type DOMStringMap } from \"./attributes.js\";\nimport { CSSMediaRule, CSSRule, CSSStyleDeclaration, CSSStyleRule, CSSStyleSheet } from \"./css.js\";\nimport {\n CustomElementRegistry,\n type CustomElementConstructor,\n type CustomElementDefinition\n} from \"./custom-elements.js\";\nimport { DOMException } from \"./errors.js\";\nimport {\n ClipboardEvent,\n CustomEvent,\n Event,\n EventTarget,\n FocusEvent,\n InputEvent,\n KeyboardEvent,\n MediaQueryList,\n MediaQueryListEvent,\n MouseEvent,\n PointerEvent,\n PopStateEvent,\n SubmitEvent,\n Touch,\n TouchEvent,\n UIEvent\n} from \"./events.js\";\nimport { DOMRect, DOMRectReadOnly, ValidityState, type DOMRectInit } from \"./geometry.js\";\nimport { History } from \"./history.js\";\nimport { IntersectionObserver, IntersectionObserverEntry, ResizeObserver } from \"./observers.js\";\nimport {\n getRuntimeStats,\n prepareNativeDocument,\n recordNativeCall,\n recordOperation,\n recordWrapperCreated,\n resetRuntimeStats,\n runtimeStats,\n setRuntimeStatsEnabled,\n type RuntimeStatsSnapshot\n} from \"./stats.js\";\nimport {\n DataTransfer,\n DataTransferItemList,\n FileList,\n Location,\n Navigator,\n Screen,\n ScreenOrientation,\n Storage,\n URL\n} from \"./platform.js\";\n\nexport {\n ClipboardEvent,\n CSSMediaRule,\n CSSRule,\n CSSStyleDeclaration,\n CSSStyleRule,\n CSSStyleSheet,\n CustomEvent,\n CustomElementRegistry,\n DataTransfer,\n DataTransferItemList,\n DOMException,\n DOMTokenList,\n DOMRect,\n DOMRectReadOnly,\n Event,\n EventTarget,\n FileList,\n FocusEvent,\n getRuntimeStats,\n History,\n InputEvent,\n IntersectionObserver,\n IntersectionObserverEntry,\n KeyboardEvent,\n Location,\n MediaQueryList,\n MediaQueryListEvent,\n MouseEvent,\n Navigator,\n PointerEvent,\n PopStateEvent,\n resetRuntimeStats,\n ResizeObserver,\n Screen,\n ScreenOrientation,\n setRuntimeStatsEnabled,\n Storage,\n SubmitEvent,\n Touch,\n TouchEvent,\n UIEvent,\n ValidityState,\n URL,\n type CustomElementConstructor,\n type CustomElementDefinition,\n type DOMRectInit,\n type DOMStringMap,\n type RuntimeStatsSnapshot\n};\n\nexport type {\n AddEventListenerOptions,\n ClipboardEventInit,\n CustomEventInit,\n EventInit,\n EventListenerCallback,\n EventListenerOptions,\n EventModifierInit,\n FocusEventInit,\n InputEventInit,\n KeyboardEventInit,\n MouseEventInit,\n PointerEventInit,\n PopStateEventInit,\n SubmitEventInit,\n TouchEventInit,\n TouchInit,\n UIEventInit\n} from \"./events.js\";\nexport type {\n IntersectionObserverCallback,\n IntersectionObserverInit,\n ResizeObserverCallback,\n ResizeObserverEntry\n} from \"./observers.js\";\n\nconst require = createRequire(import.meta.url);\nconst nativeCore = require(\"@native-dom/native-core\") as typeof import(\"@native-dom/native-core\");\nconst { parseHtmlDocumentNative } = nativeCore;\nconst hostSetTimeout = globalThis.setTimeout.bind(globalThis);\nconst hostClearTimeout = globalThis.clearTimeout.bind(globalThis);\nconst hostSetInterval = globalThis.setInterval.bind(globalThis);\nconst hostClearInterval = globalThis.clearInterval.bind(globalThis);\nconst hostQueueMicrotask = globalThis.queueMicrotask.bind(globalThis);\n\nexport type NodeId = number;\ntype NodeInput = Node | string;\ntype NodeFilterCallback = ((node: Node) => number) | { acceptNode(node: Node): number };\ntype TimerHandle = ReturnType<typeof globalThis.setTimeout>;\nconst HTML_NAMESPACE = \"http://www.w3.org/1999/xhtml\";\nconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\nconst MATHML_NAMESPACE = \"http://www.w3.org/1998/Math/MathML\";\n\nexport const NodeFilter = {\n FILTER_ACCEPT: 1,\n FILTER_REJECT: 2,\n FILTER_SKIP: 3,\n SHOW_ALL: 0xffffffff,\n SHOW_ELEMENT: 0x1,\n SHOW_ATTRIBUTE: 0x2,\n SHOW_TEXT: 0x4,\n SHOW_CDATA_SECTION: 0x8,\n SHOW_ENTITY_REFERENCE: 0x10,\n SHOW_ENTITY: 0x20,\n SHOW_PROCESSING_INSTRUCTION: 0x40,\n SHOW_COMMENT: 0x80,\n SHOW_DOCUMENT: 0x100,\n SHOW_DOCUMENT_TYPE: 0x200,\n SHOW_DOCUMENT_FRAGMENT: 0x400,\n SHOW_NOTATION: 0x800\n} as const;\n\nexport class Selection {\n #ranges: Range[] = [];\n\n get rangeCount(): number {\n return this.#ranges.length;\n }\n\n get anchorNode(): Node | null {\n return this.#ranges[0]?.startContainer ?? null;\n }\n\n get focusNode(): Node | null {\n return this.#ranges[0]?.endContainer ?? null;\n }\n\n get isCollapsed(): boolean {\n return this.rangeCount === 0 || this.#ranges.every((range) => range.collapsed);\n }\n\n addRange(range: Range): void {\n this.#ranges = [range];\n }\n\n removeAllRanges(): void {\n this.#ranges = [];\n }\n\n getRangeAt(index: number): Range {\n const range = this.#ranges[index];\n if (!range) {\n throw new DOMException(\"Selection range index is out of bounds\", \"IndexSizeError\");\n }\n return range;\n }\n\n toString(): string {\n return this.#ranges.map((range) => String(range)).join(\"\");\n }\n}\n\nexport type FormDataEntryValue = string;\n\nexport class FormData {\n readonly #entries: Array<[string, FormDataEntryValue]> = [];\n\n constructor(form?: HTMLElement) {\n if (!form) {\n return;\n }\n if (!(form instanceof HTMLElement) || form.localName !== \"form\") {\n throw new TypeError(\"FormData constructor argument must be a form element\");\n }\n for (const element of form.elements ?? []) {\n const entry = formDataEntryFor(element);\n if (entry) {\n this.#entries.push(entry);\n }\n }\n }\n\n append(name: string, value: FormDataEntryValue): void {\n this.#entries.push([String(name), String(value)]);\n }\n\n delete(name: string): void {\n const normalizedName = String(name);\n for (let index = this.#entries.length - 1; index >= 0; index--) {\n if (this.#entries[index][0] === normalizedName) {\n this.#entries.splice(index, 1);\n }\n }\n }\n\n get(name: string): FormDataEntryValue | null {\n return this.#entries.find(([entryName]) => entryName === String(name))?.[1] ?? null;\n }\n\n getAll(name: string): FormDataEntryValue[] {\n return this.#entries\n .filter(([entryName]) => entryName === String(name))\n .map(([, value]) => value);\n }\n\n has(name: string): boolean {\n return this.#entries.some(([entryName]) => entryName === String(name));\n }\n\n set(name: string, value: FormDataEntryValue): void {\n const normalizedName = String(name);\n const firstIndex = this.#entries.findIndex(([entryName]) => entryName === normalizedName);\n if (firstIndex === -1) {\n this.append(normalizedName, value);\n return;\n }\n this.#entries[firstIndex] = [normalizedName, String(value)];\n for (let index = this.#entries.length - 1; index > firstIndex; index--) {\n if (this.#entries[index][0] === normalizedName) {\n this.#entries.splice(index, 1);\n }\n }\n }\n\n forEach(\n callback: (value: FormDataEntryValue, key: string, formData: FormData) => void,\n thisArg?: unknown\n ): void {\n for (const [name, value] of this.#entries) {\n callback.call(thisArg, value, name, this);\n }\n }\n\n entries(): IterableIterator<[string, FormDataEntryValue]> {\n return this.#entries[Symbol.iterator]();\n }\n\n keys(): IterableIterator<string> {\n return this.#entries.map(([name]) => name)[Symbol.iterator]();\n }\n\n values(): IterableIterator<FormDataEntryValue> {\n return this.#entries.map(([, value]) => value)[Symbol.iterator]();\n }\n\n [Symbol.iterator](): IterableIterator<[string, FormDataEntryValue]> {\n return this.entries();\n }\n}\n\nexport class Range {\n static readonly START_TO_START = 0;\n static readonly START_TO_END = 1;\n static readonly END_TO_END = 2;\n static readonly END_TO_START = 3;\n\n readonly START_TO_START = Range.START_TO_START;\n readonly START_TO_END = Range.START_TO_END;\n readonly END_TO_END = Range.END_TO_END;\n readonly END_TO_START = Range.END_TO_START;\n\n startContainer: Node;\n startOffset = 0;\n endContainer: Node;\n endOffset = 0;\n readonly #document: Document;\n\n constructor(document: Document) {\n this.#document = document;\n this.startContainer = document;\n this.endContainer = document;\n }\n\n get collapsed(): boolean {\n return this.startContainer === this.endContainer && this.startOffset === this.endOffset;\n }\n\n get commonAncestorContainer(): Node {\n let current: Node | null = this.startContainer;\n while (current) {\n if (current.contains(this.endContainer)) {\n return current;\n }\n current = current.parentNode;\n }\n return this.#document;\n }\n\n setStart(node: Node, offset: number): void {\n this.startContainer = node;\n this.startOffset = offset;\n }\n\n setEnd(node: Node, offset: number): void {\n this.endContainer = node;\n this.endOffset = offset;\n }\n\n setStartBefore(node: Node): void {\n const parent = node.parentNode;\n if (!parent) {\n throw new DOMException(\"Node has no parent.\", \"InvalidNodeTypeError\");\n }\n this.setStart(parent, nodeIndex(node));\n }\n\n setStartAfter(node: Node): void {\n const parent = node.parentNode;\n if (!parent) {\n throw new DOMException(\"Node has no parent.\", \"InvalidNodeTypeError\");\n }\n this.setStart(parent, nodeIndex(node) + 1);\n }\n\n setEndBefore(node: Node): void {\n const parent = node.parentNode;\n if (!parent) {\n throw new DOMException(\"Node has no parent.\", \"InvalidNodeTypeError\");\n }\n this.setEnd(parent, nodeIndex(node));\n }\n\n setEndAfter(node: Node): void {\n const parent = node.parentNode;\n if (!parent) {\n throw new DOMException(\"Node has no parent.\", \"InvalidNodeTypeError\");\n }\n this.setEnd(parent, nodeIndex(node) + 1);\n }\n\n selectNode(node: Node): void {\n const parent = node.parentNode;\n if (!parent) {\n throw new DOMException(\"Node has no parent.\", \"InvalidNodeTypeError\");\n }\n const index = nodeIndex(node);\n this.setStart(parent, index);\n this.setEnd(parent, index + 1);\n }\n\n selectNodeContents(node: Node): void {\n this.setStart(node, 0);\n this.setEnd(node, rangeNodeLength(node));\n }\n\n collapse(toStart = false): void {\n if (toStart) {\n this.setEnd(this.startContainer, this.startOffset);\n } else {\n this.setStart(this.endContainer, this.endOffset);\n }\n }\n\n cloneRange(): Range {\n const range = new Range(this.#document);\n range.setStart(this.startContainer, this.startOffset);\n range.setEnd(this.endContainer, this.endOffset);\n return range;\n }\n\n cloneContents(): DocumentFragment {\n const fragment = this.#document.createDocumentFragment();\n if (this.startContainer !== this.endContainer) {\n return fragment;\n }\n if (this.startContainer.nodeType === Node.TEXT_NODE) {\n fragment.appendChild(\n this.#document.createTextNode(\n (this.startContainer.nodeValue ?? \"\").slice(this.startOffset, this.endOffset)\n )\n );\n return fragment;\n }\n const children = [...this.startContainer.childNodes].slice(this.startOffset, this.endOffset);\n for (const child of children) {\n fragment.appendChild(this.#document.importNode(child, true));\n }\n return fragment;\n }\n\n deleteContents(): void {\n if (\n this.startContainer !== this.endContainer ||\n this.startContainer.nodeType === Node.TEXT_NODE\n ) {\n return;\n }\n const children = [...this.startContainer.childNodes].slice(this.startOffset, this.endOffset);\n for (const child of children) {\n this.startContainer.removeChild(child);\n }\n this.collapse(true);\n }\n\n insertNode(node: Node): void {\n if (this.startContainer.nodeType === Node.TEXT_NODE) {\n this.startContainer.parentNode?.insertBefore(node, this.startContainer);\n return;\n }\n this.startContainer.insertBefore(node, this.startContainer.childNodes.item(this.startOffset));\n }\n\n createContextualFragment(html: string): DocumentFragment {\n return fragmentFromHtml(this.#document, html);\n }\n\n detach(): void {}\n\n toString(): string {\n return this.cloneContents().textContent;\n }\n}\n\nfunction rangeNodeLength(node: Node): number {\n return node.nodeType === Node.TEXT_NODE || node.nodeType === Node.COMMENT_NODE\n ? (node.nodeValue ?? \"\").length\n : node.childNodes.length;\n}\n\nfunction nodeIndex(node: Node): number {\n return node.parentNode ? [...node.parentNode.childNodes].indexOf(node) : -1;\n}\n\nexport class Window extends EventTarget {\n #animationFrameHandle = 0;\n readonly #animationFrames = new Map<number, TimerHandle>();\n readonly #timeouts = new Set<TimerHandle>();\n readonly #intervals = new Set<TimerHandle>();\n #closed = false;\n readonly #selection = new Selection();\n readonly document: Document;\n readonly Window = Window;\n readonly window = this;\n readonly self = this;\n readonly top = this;\n readonly parent = this;\n readonly location: Location;\n readonly history: History;\n readonly Image: new (width?: number, height?: number) => HTMLImageElement;\n readonly navigator = new Navigator();\n readonly screen = new Screen();\n readonly localStorage = new Storage();\n readonly sessionStorage = new Storage();\n readonly URL = URL;\n readonly URLSearchParams = globalThis.URLSearchParams;\n readonly Blob = globalThis.Blob;\n readonly File = globalThis.File;\n readonly Headers = globalThis.Headers;\n readonly Request = globalThis.Request;\n readonly Response = globalThis.Response;\n readonly AbortController = globalThis.AbortController;\n readonly fetch = globalThis.fetch.bind(globalThis);\n readonly customElements = new CustomElementRegistry();\n readonly innerWidth = 1024;\n readonly innerHeight = 768;\n readonly outerWidth = 1024;\n readonly outerHeight = 768;\n readonly queueMicrotask = hostQueueMicrotask;\n readonly devicePixelRatio = 1;\n readonly FormData = FormData;\n readonly Storage = Storage;\n readonly Node = Node;\n readonly Element = Element;\n readonly HTMLElement = HTMLElement;\n readonly HTMLHtmlElement = HTMLHtmlElement;\n readonly HTMLBodyElement = HTMLBodyElement;\n readonly SVGElement = SVGElement;\n readonly MathMLElement = MathMLElement;\n readonly DocumentFragment = DocumentFragment;\n readonly ShadowRoot = ShadowRoot;\n readonly HTMLButtonElement = HTMLButtonElement;\n readonly HTMLCanvasElement = HTMLCanvasElement;\n readonly HTMLFormElement = HTMLFormElement;\n readonly HTMLIFrameElement = HTMLElement;\n readonly HTMLImageElement = HTMLImageElement;\n readonly HTMLInputElement = HTMLInputElement;\n readonly HTMLLinkElement = HTMLLinkElement;\n readonly HTMLOptionElement = HTMLOptionElement;\n readonly HTMLScriptElement = HTMLScriptElement;\n readonly HTMLSelectElement = HTMLSelectElement;\n readonly HTMLStyleElement = HTMLStyleElement;\n readonly HTMLTableCellElement = HTMLTableCellElement;\n readonly HTMLTableElement = HTMLTableElement;\n readonly HTMLTableRowElement = HTMLTableRowElement;\n readonly HTMLTableSectionElement = HTMLTableSectionElement;\n readonly HTMLTemplateElement = HTMLTemplateElement;\n readonly HTMLTextAreaElement = HTMLTextAreaElement;\n readonly HTMLCollection = NativeNodeList;\n readonly NodeList = NativeNodeList;\n readonly Document = Document;\n readonly Text = Text;\n readonly Comment = Comment;\n readonly DOMParser = DOMParser;\n readonly DocumentType = DocumentType;\n readonly DOMRect = DOMRect;\n readonly DOMRectReadOnly = DOMRectReadOnly;\n readonly EventTarget = EventTarget;\n readonly Event = Event;\n readonly CustomEvent = CustomEvent;\n readonly UIEvent = UIEvent;\n readonly MouseEvent = MouseEvent;\n readonly PointerEvent = PointerEvent;\n readonly KeyboardEvent = KeyboardEvent;\n readonly InputEvent = InputEvent;\n readonly FocusEvent = FocusEvent;\n readonly SubmitEvent = SubmitEvent;\n readonly PopStateEvent = PopStateEvent;\n readonly ClipboardEvent = ClipboardEvent;\n readonly Touch = Touch;\n readonly TouchEvent = TouchEvent;\n readonly ResizeObserver = ResizeObserver;\n readonly IntersectionObserver = IntersectionObserver;\n readonly IntersectionObserverEntry = IntersectionObserverEntry;\n readonly Selection = Selection;\n readonly DataTransfer = DataTransfer;\n readonly DataTransferItemList = DataTransferItemList;\n readonly FileList = FileList;\n readonly MutationObserver = MutationObserver;\n readonly DOMException = DOMException;\n readonly Range = Range;\n readonly TreeWalker = TreeWalker;\n readonly NodeIterator = NodeIterator;\n readonly ValidityState = ValidityState;\n readonly NodeFilter = NodeFilter;\n readonly Location = Location;\n readonly History = History;\n readonly Navigator = Navigator;\n readonly Screen = Screen;\n readonly ScreenOrientation = ScreenOrientation;\n readonly MediaQueryList = MediaQueryList;\n readonly MediaQueryListEvent = MediaQueryListEvent;\n readonly NamedNodeMap = NamedNodeMap;\n readonly XMLSerializer = XMLSerializer;\n readonly CSSStyleDeclaration = CSSStyleDeclaration;\n readonly CSSRule = CSSRule;\n readonly CSSStyleRule = CSSStyleRule;\n readonly CSSMediaRule = CSSMediaRule;\n readonly CSSStyleSheet = CSSStyleSheet;\n readonly CustomElementRegistry = CustomElementRegistry;\n\n constructor(html = \"\", url = \"about:blank\") {\n super();\n this.location = new Location(url);\n this.history = new History(this.location, this);\n this.document = new Document(this, html);\n this.Image = createImageConstructor(this.document);\n }\n\n setTimeout(handler: TimerHandler, timeout?: number, ...arguments_: unknown[]): TimerHandle {\n const handle = hostSetTimeout(() => {\n this.#timeouts.delete(handle);\n if (this.#closed) {\n return;\n }\n if (typeof handler === \"function\") {\n handler(...arguments_);\n } else {\n globalThis.Function(String(handler))();\n }\n }, timeout);\n this.#timeouts.add(handle);\n return handle;\n }\n\n clearTimeout(handle?: TimerHandle): void {\n if (handle === undefined) {\n return;\n }\n this.#timeouts.delete(handle);\n hostClearTimeout(handle);\n }\n\n setInterval(handler: TimerHandler, timeout?: number, ...arguments_: unknown[]): TimerHandle {\n const handle = hostSetInterval(() => {\n if (this.#closed) {\n return;\n }\n if (typeof handler === \"function\") {\n handler(...arguments_);\n } else {\n globalThis.Function(String(handler))();\n }\n }, timeout);\n this.#intervals.add(handle);\n return handle;\n }\n\n clearInterval(handle?: TimerHandle): void {\n if (handle === undefined) {\n return;\n }\n this.#intervals.delete(handle);\n hostClearInterval(handle);\n }\n\n getComputedStyle(element: Element, _pseudoElement?: string): CSSStyleDeclaration {\n const style = new CSSStyleDeclaration(element.getAttribute(\"style\") ?? \"\");\n if (element.hasAttribute(\"hidden\")) {\n style.display = \"none\";\n }\n if (!style.display) {\n style.display = defaultDisplayFor(element.localName);\n }\n if (!style.visibility) {\n style.visibility = inheritedVisibility(element);\n }\n return style;\n }\n\n requestAnimationFrame(callback: (time: number) => void): number {\n const id = ++this.#animationFrameHandle;\n const handle = hostSetTimeout(() => {\n this.#animationFrames.delete(id);\n callback(Date.now());\n }, 16);\n this.#animationFrames.set(id, handle);\n return id;\n }\n\n cancelAnimationFrame(id: number): void {\n const handle = this.#animationFrames.get(id);\n if (handle) {\n hostClearTimeout(handle);\n this.#animationFrames.delete(id);\n }\n }\n\n matchMedia(query: string): MediaQueryList {\n return new MediaQueryList(String(query), false);\n }\n\n getSelection(): Selection {\n return this.#selection;\n }\n\n close(): void {\n this.#closed = true;\n for (const handle of this.#timeouts) {\n hostClearTimeout(handle);\n }\n this.#timeouts.clear();\n for (const handle of this.#intervals) {\n hostClearInterval(handle);\n }\n this.#intervals.clear();\n for (const handle of this.#animationFrames.values()) {\n hostClearTimeout(handle);\n }\n this.#animationFrames.clear();\n }\n\n cancelAsync(): void {\n this.close();\n }\n}\n\nfunction inheritedVisibility(element: Element): string {\n let current: Element | null = element;\n while (current) {\n const visibility = new CSSStyleDeclaration(current.getAttribute(\"style\") ?? \"\").visibility;\n if (visibility) {\n return visibility;\n }\n current = current.parentElement;\n }\n return \"\";\n}\n\nfunction defaultDisplayFor(localName: string): string {\n switch (localName) {\n case \"body\":\n case \"div\":\n case \"form\":\n case \"main\":\n case \"option\":\n case \"p\":\n case \"section\":\n return \"block\";\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n return \"inline-block\";\n case \"table\":\n return \"table\";\n case \"tbody\":\n return \"table-row-group\";\n case \"tr\":\n return \"table-row\";\n case \"th\":\n case \"td\":\n return \"table-cell\";\n default:\n return \"\";\n }\n}\n\nexport class Node extends EventTarget {\n static readonly ELEMENT_NODE = 1;\n static readonly TEXT_NODE = 3;\n static readonly COMMENT_NODE = 8;\n static readonly DOCUMENT_NODE = 9;\n static readonly DOCUMENT_TYPE_NODE = 10;\n static readonly DOCUMENT_FRAGMENT_NODE = 11;\n static readonly DOCUMENT_POSITION_DISCONNECTED = 1;\n static readonly DOCUMENT_POSITION_PRECEDING = 2;\n static readonly DOCUMENT_POSITION_FOLLOWING = 4;\n static readonly DOCUMENT_POSITION_CONTAINS = 8;\n static readonly DOCUMENT_POSITION_CONTAINED_BY = 16;\n static readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32;\n\n declare readonly ELEMENT_NODE: typeof Node.ELEMENT_NODE;\n declare readonly TEXT_NODE: typeof Node.TEXT_NODE;\n declare readonly COMMENT_NODE: typeof Node.COMMENT_NODE;\n declare readonly DOCUMENT_NODE: typeof Node.DOCUMENT_NODE;\n declare readonly DOCUMENT_TYPE_NODE: typeof Node.DOCUMENT_TYPE_NODE;\n declare readonly DOCUMENT_FRAGMENT_NODE: typeof Node.DOCUMENT_FRAGMENT_NODE;\n declare readonly DOCUMENT_POSITION_DISCONNECTED: typeof Node.DOCUMENT_POSITION_DISCONNECTED;\n declare readonly DOCUMENT_POSITION_PRECEDING: typeof Node.DOCUMENT_POSITION_PRECEDING;\n declare readonly DOCUMENT_POSITION_FOLLOWING: typeof Node.DOCUMENT_POSITION_FOLLOWING;\n declare readonly DOCUMENT_POSITION_CONTAINS: typeof Node.DOCUMENT_POSITION_CONTAINS;\n declare readonly DOCUMENT_POSITION_CONTAINED_BY: typeof Node.DOCUMENT_POSITION_CONTAINED_BY;\n declare readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: typeof Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC;\n\n protected readonly _document: Document;\n protected readonly _id: NodeId;\n #nodeName: string | null;\n #textContentCache = \"\";\n #textContentCacheVersion = -1;\n\n constructor(document: Document, id: NodeId, nodeName: string | null = null) {\n super();\n this._document = document;\n this._id = id;\n this.#nodeName = nodeName;\n }\n\n get nodeName(): string {\n this.#nodeName ??= this._document._native.nodeName(this._id);\n return this.#nodeName;\n }\n\n get nodeType(): number {\n switch (this.nodeName) {\n case \"#document\":\n return 9;\n case \"#document-type\":\n return 10;\n case \"#document-fragment\":\n return 11;\n case \"#text\":\n return 3;\n case \"#comment\":\n return 8;\n default:\n return 1;\n }\n }\n\n get nodeValue(): string | null {\n return this._document._native.nodeValue(this._id);\n }\n\n set nodeValue(value: string | null) {\n if (runtimeStats.enabled) {\n recordOperation(\"nodeValueSet\");\n }\n if (!hasMutationObservers()) {\n this._document._native.setNodeValue(this._id, value ?? \"\");\n if (this.nodeType === 3 || this.nodeType === 8) {\n this._document._bumpMutationVersion();\n }\n return;\n }\n\n const oldValue = this.nodeValue;\n this._document._native.setNodeValue(this._id, value ?? \"\");\n if (this.nodeType === 3 || this.nodeType === 8) {\n this._document._bumpMutationVersion();\n notifyMutation({\n type: \"characterData\",\n target: this,\n addedNodes: [],\n removedNodes: [],\n attributeName: null,\n oldValue\n });\n }\n }\n\n get textContent(): string {\n if (this.nodeType === 3 || this.nodeType === 8) {\n return this.nodeValue ?? \"\";\n }\n const mutationVersion = this._document._mutationVersion();\n if (this.#textContentCacheVersion === mutationVersion) {\n return this.#textContentCache;\n }\n const value = this._document._native.textContent(this._id);\n this.#textContentCache = value;\n this.#textContentCacheVersion = mutationVersion;\n return value;\n }\n\n set textContent(value: string) {\n if (runtimeStats.enabled) {\n recordOperation(\"textContentSet\");\n }\n if (this.nodeType === 3 || this.nodeType === 8) {\n if (!hasActiveMutationObservers) {\n this._document._native.setNodeValue(this._id, value);\n this._document._bumpMutationVersion();\n return;\n }\n\n const oldValue = this.nodeValue;\n this._document._native.setNodeValue(this._id, value);\n this._document._bumpMutationVersion();\n notifyMutation({\n type: \"characterData\",\n target: this,\n addedNodes: [],\n removedNodes: [],\n attributeName: null,\n oldValue\n });\n return;\n }\n\n if (hasActiveMutationObservers) {\n while (this.firstChild) {\n this.removeChild(this.firstChild);\n }\n if (value !== \"\") {\n this.appendChild(this._document.createTextNode(value));\n }\n return;\n }\n\n this._document._native.setTextContent(this._id, value);\n this._document._bumpMutationVersion();\n }\n\n get ownerDocument(): Document | null {\n return this._document;\n }\n\n get parentNode(): Node | null {\n const id = this._document._native.parentNode(this._id);\n return id == null ? null : this._document._wrap(id);\n }\n\n get parentElement(): Element | null {\n const parent = this.parentNode;\n return parent instanceof Element ? parent : null;\n }\n\n get isConnected(): boolean {\n return this._document._native.isConnected(this._id);\n }\n\n get firstChild(): Node | null {\n const id = this._document._native.firstChild(this._id);\n return id == null ? null : this._document._wrap(id);\n }\n\n get lastChild(): Node | null {\n const id = this._document._native.lastChild(this._id);\n return id == null ? null : this._document._wrap(id);\n }\n\n get nextSibling(): Node | null {\n const id = this._document._native.nextSibling(this._id);\n return id == null ? null : this._document._wrap(id);\n }\n\n get previousSibling(): Node | null {\n const id = this._document._native.previousSibling(this._id);\n return id == null ? null : this._document._wrap(id);\n }\n\n get previousElementSibling(): Element | null {\n const id = this._document._native.previousElementSibling(this._id);\n return id == null ? null : (this._document._wrap(id) as Element);\n }\n\n get nextElementSibling(): Element | null {\n const id = this._document._native.nextElementSibling(this._id);\n return id == null ? null : (this._document._wrap(id) as Element);\n }\n\n get childNodes(): NativeNodeList<Node> {\n return new NativeNodeList(this._document, this._document._native.childNodes(this._id));\n }\n\n hasChildNodes(): boolean {\n return this.firstChild !== null;\n }\n\n appendChild<T extends Node>(child: T): T {\n if (runtimeStats.enabled) {\n recordOperation(\"appendChild\");\n }\n child = this.#adoptForMutation(child);\n const hasObservers = hasActiveMutationObservers;\n if (child instanceof DocumentFragment) {\n if (!hasObservers) {\n if (this._document._native.appendDocumentFragment(this._id, child._nativeId)) {\n this._document._bumpMutationVersion();\n }\n return child;\n }\n while (child.firstChild) {\n this.appendChild(child.firstChild);\n }\n return child;\n }\n const hasCustomElements = this._document._hasCustomElementDefinitions();\n if (!hasObservers && !hasCustomElements) {\n this._document._native.appendChild(this._id, child._nativeId);\n this._document._bumpMutationVersion();\n return child;\n }\n const oldParent = hasCustomElements ? child.parentNode : null;\n const wasConnected = hasCustomElements && child.isConnected;\n this._document._native.appendChild(this._id, child._nativeId);\n this._document._bumpMutationVersion();\n if (hasCustomElements) {\n notifyCustomElementReparented(child, oldParent, wasConnected);\n }\n if (hasObservers) {\n notifyMutation({\n type: \"childList\",\n target: this,\n addedNodes: [child],\n removedNodes: [],\n attributeName: null,\n oldValue: null\n });\n }\n return child;\n }\n\n append(...nodes: NodeInput[]): void {\n for (const node of nodes) {\n this.appendChild(this.#toNode(node));\n }\n }\n\n prepend(...nodes: NodeInput[]): void {\n const reference = this.firstChild;\n for (const node of nodes) {\n this.insertBefore(this.#toNode(node), reference);\n }\n }\n\n insertBefore<T extends Node>(child: T, referenceNode: Node | null): T {\n if (runtimeStats.enabled) {\n recordOperation(\"insertBefore\");\n }\n child = this.#adoptForMutation(child);\n if (referenceNode) {\n this.#assertSameDocument(referenceNode);\n }\n const hasObservers = hasActiveMutationObservers;\n if (child instanceof DocumentFragment) {\n if (!hasObservers) {\n const moved = this._document._native.insertDocumentFragment(\n this._id,\n child._nativeId,\n referenceNode?._nativeId ?? null\n );\n if (moved) {\n this._document._bumpMutationVersion();\n }\n return child;\n }\n while (child.firstChild) {\n this.insertBefore(child.firstChild, referenceNode);\n }\n return child;\n }\n const hasCustomElements = this._document._hasCustomElementDefinitions();\n if (!hasObservers && !hasCustomElements) {\n this._document._native.insertBefore(\n this._id,\n child._nativeId,\n referenceNode?._nativeId ?? null\n );\n this._document._bumpMutationVersion();\n return child;\n }\n const oldParent = hasCustomElements ? child.parentNode : null;\n const wasConnected = hasCustomElements && child.isConnected;\n this._document._native.insertBefore(\n this._id,\n child._nativeId,\n referenceNode?._nativeId ?? null\n );\n this._document._bumpMutationVersion();\n if (hasCustomElements) {\n notifyCustomElementReparented(child, oldParent, wasConnected);\n }\n if (hasObservers) {\n notifyMutation({\n type: \"childList\",\n target: this,\n addedNodes: [child],\n removedNodes: [],\n attributeName: null,\n oldValue: null\n });\n }\n return child;\n }\n\n removeChild<T extends Node>(child: T): T {\n if (runtimeStats.enabled) {\n recordOperation(\"removeChild\");\n }\n this.#assertSameDocument(child);\n const hasCustomElements = this._document._hasCustomElementDefinitions();\n const wasConnected = hasCustomElements && child.isConnected;\n const hasObservers = hasMutationObservers();\n if (!hasObservers) {\n this._document._native.removeChild(this._id, child._nativeId);\n this._document._bumpMutationVersion();\n if (hasCustomElements && wasConnected) {\n notifyCustomElementDisconnected(child);\n }\n return child;\n }\n\n const previousSibling = child.previousSibling;\n const nextSibling = child.nextSibling;\n this._document._native.removeChild(this._id, child._nativeId);\n this._document._bumpMutationVersion();\n if (hasCustomElements && wasConnected) {\n notifyCustomElementDisconnected(child);\n }\n notifyMutation({\n type: \"childList\",\n target: this,\n addedNodes: [],\n removedNodes: [child],\n attributeName: null,\n oldValue: null,\n previousSibling,\n nextSibling\n });\n return child;\n }\n\n replaceChild<T extends Node>(newChild: Node, oldChild: T): T {\n if (runtimeStats.enabled) {\n recordOperation(\"replaceChild\");\n }\n newChild = this.#adoptForMutation(newChild);\n this.#assertSameDocument(oldChild);\n if (newChild === oldChild) {\n return oldChild;\n }\n if (newChild instanceof DocumentFragment) {\n this.insertBefore(newChild, oldChild);\n this.removeChild(oldChild);\n return oldChild;\n }\n if (!hasMutationObservers()) {\n const hasCustomElements = this._document._hasCustomElementDefinitions();\n const oldWasConnected = hasCustomElements && oldChild.isConnected;\n const newOldParent = hasCustomElements ? newChild.parentNode : null;\n const newWasConnected = hasCustomElements && newChild.isConnected;\n this._document._native.replaceChild(this._id, newChild._nativeId, oldChild._nativeId);\n this._document._bumpMutationVersion();\n if (hasCustomElements && oldWasConnected) {\n notifyCustomElementDisconnected(oldChild);\n }\n if (hasCustomElements) {\n notifyCustomElementReparented(newChild, newOldParent, newWasConnected);\n }\n return oldChild;\n }\n this.insertBefore(newChild, oldChild);\n this.removeChild(oldChild);\n return oldChild;\n }\n\n replaceChildren(...nodes: NodeInput[]): void {\n if (runtimeStats.enabled) {\n recordOperation(\"replaceChildren\");\n }\n if (hasMutationObservers()) {\n while (this.firstChild) {\n this.removeChild(this.firstChild);\n }\n this.append(...nodes);\n return;\n }\n\n this._document._native.clearChildren(this._id);\n this._document._bumpMutationVersion();\n this.append(...nodes);\n }\n\n cloneNode(deep = false): Node {\n return this._document._wrap(this._document._native.cloneNode(this._id, deep));\n }\n\n contains(other: Node | null): boolean {\n if (!other || other._document !== this._document) {\n return false;\n }\n return this._document._native.contains(this._id, other._nativeId);\n }\n\n getRootNode(): Node {\n let current: Node = this;\n while (current.parentNode) {\n current = current.parentNode;\n }\n return current;\n }\n\n isSameNode(other: Node | null): boolean {\n return this === other;\n }\n\n isEqualNode(other: Node | null): boolean {\n if (!other || this.nodeType !== other.nodeType || this.nodeName !== other.nodeName) {\n return false;\n }\n if (this.nodeValue !== other.nodeValue) {\n return false;\n }\n if (this instanceof Element || other instanceof Element) {\n if (!(this instanceof Element) || !(other instanceof Element)) {\n return false;\n }\n const attributeNames = this.getAttributeNames();\n const otherAttributeNames = other.getAttributeNames();\n if (attributeNames.length !== otherAttributeNames.length) {\n return false;\n }\n for (const name of attributeNames) {\n if (this.getAttribute(name) !== other.getAttribute(name)) {\n return false;\n }\n }\n }\n\n const children = [...this.childNodes];\n const otherChildren = [...other.childNodes];\n return (\n children.length === otherChildren.length &&\n children.every((child, index) => child.isEqualNode(otherChildren[index]))\n );\n }\n\n compareDocumentPosition(other: Node): number {\n if (this === other) {\n return 0;\n }\n if (other._document !== this._document) {\n return (\n Node.DOCUMENT_POSITION_DISCONNECTED |\n Node.DOCUMENT_POSITION_FOLLOWING |\n Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\n );\n }\n return this._document._native.compareDocumentPosition(this._id, other._nativeId);\n }\n\n normalize(): void {\n if (runtimeStats.enabled) {\n recordOperation(\"normalize\");\n }\n if (!hasMutationObservers()) {\n if (this._document._native.normalizeSubtree(this._id)) {\n this._document._bumpMutationVersion();\n }\n return;\n }\n\n let child = this.firstChild;\n while (child) {\n const next = child.nextSibling;\n if (child.nodeType !== Node.TEXT_NODE) {\n child.normalize();\n child = next;\n continue;\n }\n\n let data = child.nodeValue ?? \"\";\n let sibling = next;\n while (sibling?.nodeType === Node.TEXT_NODE) {\n data += sibling.nodeValue ?? \"\";\n const siblingToRemove = sibling;\n sibling = sibling.nextSibling;\n this.removeChild(siblingToRemove);\n }\n\n if (data === \"\") {\n this.removeChild(child);\n } else if (child.nodeValue !== data) {\n child.nodeValue = data;\n }\n child = sibling;\n }\n }\n\n remove(): void {\n this.parentNode?.removeChild(this);\n }\n\n before(...nodes: NodeInput[]): void {\n const parent = this.parentNode;\n if (!parent) {\n return;\n }\n for (const node of nodes) {\n parent.insertBefore(this.#toNode(node), this);\n }\n }\n\n after(...nodes: NodeInput[]): void {\n const parent = this.parentNode;\n if (!parent) {\n return;\n }\n const reference = this.nextSibling;\n for (const node of nodes) {\n parent.insertBefore(this.#toNode(node), reference);\n }\n }\n\n replaceWith(...nodes: NodeInput[]): void {\n const parent = this.parentNode;\n if (!parent) {\n return;\n }\n for (const node of nodes) {\n parent.insertBefore(this.#toNode(node), this);\n }\n parent.removeChild(this);\n }\n\n _eventPath(): EventTarget[] {\n const path: EventTarget[] = [this];\n let current: Node | null = this.parentNode;\n while (current) {\n path.push(current);\n current = current.parentNode;\n }\n path.push(this._document.defaultView);\n return path;\n }\n\n get _nativeId(): NodeId {\n return this._id;\n }\n\n #assertSameDocument(node: Node): void {\n if (node._document !== this._document) {\n throw new Error(\"Cross-document node mutations are not implemented\");\n }\n }\n\n #adoptForMutation<T extends Node>(node: T): T {\n const targetDocument = this._document;\n return !targetDocument || node._document === targetDocument\n ? node\n : (importNodeIntoDocument(targetDocument, node, true) as T);\n }\n\n #toNode(node: NodeInput): Node {\n return typeof node === \"string\" ? this._document.createTextNode(node) : node;\n }\n}\n\nObject.defineProperties(Node.prototype, {\n ELEMENT_NODE: { value: Node.ELEMENT_NODE },\n TEXT_NODE: { value: Node.TEXT_NODE },\n COMMENT_NODE: { value: Node.COMMENT_NODE },\n DOCUMENT_NODE: { value: Node.DOCUMENT_NODE },\n DOCUMENT_TYPE_NODE: { value: Node.DOCUMENT_TYPE_NODE },\n DOCUMENT_FRAGMENT_NODE: { value: Node.DOCUMENT_FRAGMENT_NODE },\n DOCUMENT_POSITION_DISCONNECTED: { value: Node.DOCUMENT_POSITION_DISCONNECTED },\n DOCUMENT_POSITION_PRECEDING: { value: Node.DOCUMENT_POSITION_PRECEDING },\n DOCUMENT_POSITION_FOLLOWING: { value: Node.DOCUMENT_POSITION_FOLLOWING },\n DOCUMENT_POSITION_CONTAINS: { value: Node.DOCUMENT_POSITION_CONTAINS },\n DOCUMENT_POSITION_CONTAINED_BY: { value: Node.DOCUMENT_POSITION_CONTAINED_BY },\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: {\n value: Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\n }\n});\n\nfunction nativeDocumentOrder(root: Node): { document: Document; ids: readonly NodeId[] } {\n const document = root.ownerDocument;\n if (!document) {\n throw new Error(\"Node has no owner document\");\n }\n return {\n document,\n ids: document._native.documentOrderIds(root._nativeId)\n };\n}\n\nexport interface Attr {\n localName: string;\n name: string;\n value: string;\n}\n\nexport class NamedNodeMap extends Array<Attr> {\n static get [Symbol.species](): ArrayConstructor {\n return Array;\n }\n\n constructor(attributes: Iterable<Attr> = []) {\n super();\n for (const attribute of attributes) {\n this.push(attribute);\n }\n }\n\n item(index: number): Attr | null {\n return this[index] ?? null;\n }\n\n getNamedItem(name: string): Attr | null {\n const normalizedName = String(name).toLowerCase();\n return this.find((attribute) => attribute.name === normalizedName) ?? null;\n }\n\n getNamedItemNS(_namespace: string | null, localName: string): Attr | null {\n const normalizedName = String(localName).toLowerCase();\n return this.find((attribute) => attribute.localName === normalizedName) ?? null;\n }\n}\n\nexport type MutationRecordType = \"attributes\" | \"characterData\" | \"childList\";\n\nexport interface MutationObserverInit {\n attributes?: boolean;\n attributeFilter?: string[];\n attributeOldValue?: boolean;\n characterData?: boolean;\n characterDataOldValue?: boolean;\n childList?: boolean;\n subtree?: boolean;\n}\n\nexport class MutationRecord {\n readonly type: MutationRecordType;\n readonly target: Node;\n readonly addedNodes: readonly Node[];\n readonly removedNodes: readonly Node[];\n readonly attributeName: string | null;\n readonly oldValue: string | null;\n readonly previousSibling: Node | null;\n readonly nextSibling: Node | null;\n\n constructor(init: {\n type: MutationRecordType;\n target: Node;\n addedNodes: readonly Node[];\n removedNodes: readonly Node[];\n attributeName: string | null;\n oldValue: string | null;\n previousSibling?: Node | null;\n nextSibling?: Node | null;\n }) {\n this.type = init.type;\n this.target = init.target;\n this.addedNodes = init.addedNodes;\n this.removedNodes = init.removedNodes;\n this.attributeName = init.attributeName;\n this.oldValue = init.oldValue;\n this.previousSibling = init.previousSibling ?? null;\n this.nextSibling = init.nextSibling ?? null;\n }\n}\n\ntype MutationCallback = (records: MutationRecord[], observer: MutationObserver) => void;\n\nconst mutationObservers = new Set<MutationObserver>();\nlet hasActiveMutationObservers = false;\n\nfunction hasMutationObservers(): boolean {\n if (runtimeStats.enabled) {\n recordOperation(\"observerChecks\");\n }\n return hasActiveMutationObservers;\n}\n\nexport class MutationObserver {\n readonly #callback: MutationCallback;\n readonly #observed = new Map<Node, MutationObserverInit>();\n #records: MutationRecord[] = [];\n #scheduled = false;\n\n constructor(callback: MutationCallback) {\n this.#callback = callback;\n }\n\n observe(target: Node, options?: MutationObserverInit): void {\n if (!target) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'MutationObserver': The first parameter \\\"target\\\" should be of type \\\"Node\\\".\"\n );\n }\n this.#observed.set(target, normalizeMutationObserverOptions(options));\n mutationObservers.add(this);\n hasActiveMutationObservers = true;\n }\n\n disconnect(): void {\n this.#observed.clear();\n this.#records = [];\n mutationObservers.delete(this);\n hasActiveMutationObservers = mutationObservers.size > 0;\n }\n\n takeRecords(): MutationRecord[] {\n const records = this.#records;\n this.#records = [];\n return records;\n }\n\n _enqueue(record: MutationRecord): void {\n const matched = this.#matchingOptions(record);\n if (!matched) {\n return;\n }\n\n this.#records.push(\n new MutationRecord({\n ...record,\n oldValue:\n (record.type === \"attributes\" && matched.attributeOldValue) ||\n (record.type === \"characterData\" && matched.characterDataOldValue)\n ? record.oldValue\n : null\n })\n );\n\n if (!this.#scheduled) {\n this.#scheduled = true;\n queueMicrotask(() => {\n this.#scheduled = false;\n const records = this.takeRecords();\n if (records.length > 0) {\n this.#callback(records, this);\n }\n });\n }\n }\n\n #matchingOptions(record: MutationRecord): MutationObserverInit | null {\n for (const [target, options] of this.#observed) {\n if (record.target !== target && !(options.subtree && target.contains(record.target))) {\n continue;\n }\n if (record.type === \"childList\" && options.childList) {\n return options;\n }\n if (record.type === \"attributes\" && options.attributes) {\n if (\n options.attributeFilter &&\n (!record.attributeName || !options.attributeFilter.includes(record.attributeName))\n ) {\n continue;\n }\n return options;\n }\n if (record.type === \"characterData\" && options.characterData) {\n return options;\n }\n }\n return null;\n }\n}\n\nfunction normalizeMutationObserverOptions(options?: MutationObserverInit): MutationObserverInit {\n if (!options) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'MutationObserver': The options object must set at least one of 'attributes', 'characterData', or 'childList' to true.\"\n );\n }\n\n if (options.attributeOldValue && options.attributes === false) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'MutationObserver': The options object may only set 'attributeOldValue' to true when 'attributes' is true or not present.\"\n );\n }\n if (options.attributeFilter && options.attributes === false) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'MutationObserver': The options object may only set 'attributeFilter' when 'attributes' is true or not present.\"\n );\n }\n if (options.characterDataOldValue && options.characterData === false) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'MutationObserver': The options object may only set 'characterDataOldValue' to true when 'characterData' is true or not present.\"\n );\n }\n\n const normalized: MutationObserverInit = {\n ...options,\n attributes:\n options.attributes ??\n (options.attributeOldValue || options.attributeFilter ? true : undefined),\n characterData: options.characterData ?? (options.characterDataOldValue ? true : undefined),\n attributeFilter: options.attributeFilter?.map((name) => name.toLowerCase())\n };\n\n if (!normalized.childList && !normalized.attributes && !normalized.characterData) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'MutationObserver': The options object must set at least one of 'attributes', 'characterData', or 'childList' to true.\"\n );\n }\n\n return normalized;\n}\n\nfunction notifyMutation(record: {\n type: MutationRecordType;\n target: Node;\n addedNodes: readonly Node[];\n removedNodes: readonly Node[];\n attributeName: string | null;\n oldValue: string | null;\n previousSibling?: Node | null;\n nextSibling?: Node | null;\n}): void {\n if (mutationObservers.size === 0) {\n return;\n }\n const mutationRecord = new MutationRecord(record);\n for (const observer of mutationObservers) {\n observer._enqueue(mutationRecord);\n }\n}\n\nexport class DOMImplementation {\n readonly #document: Document | null;\n\n constructor(document: Document | null = null) {\n this.#document = document;\n }\n\n createHTMLDocument(_title = \"\"): Document {\n return new Window().document;\n }\n\n createDocumentType(name: string, publicId = \"\", systemId = \"\"): DocumentType {\n const document = this.#document ?? new Window().document;\n return document._wrap(\n document._native.createDocumentType(String(name), String(publicId), String(systemId))\n ) as DocumentType;\n }\n}\n\nexport class DOMParser {\n parseFromString(markup: string, _type: string): Document {\n return new Window(String(markup)).document;\n }\n}\n\nexport class XMLSerializer {\n serializeToString(node: Node): string {\n if (node instanceof Document) {\n return addRootHtmlNamespace(node.documentElement.outerHTML);\n }\n if (node instanceof Element) {\n return addRootHtmlNamespace(node.outerHTML);\n }\n const document = node instanceof Document ? node : node.ownerDocument;\n return document?._native.serializeNode(node._nativeId) ?? \"\";\n }\n}\n\nfunction addRootHtmlNamespace(markup: string): string {\n if (/^<[^\\s>]+[\\s>]/.test(markup) && !/^<[^\\s>]+\\s[^>]*\\bxmlns=/.test(markup)) {\n return markup.replace(/^<([^\\s>]+)/, '<$1 xmlns=\"http://www.w3.org/1999/xhtml\"');\n }\n return markup;\n}\n\ninterface CookieEntry {\n readonly hasValue: boolean;\n readonly name: string;\n readonly value: string;\n}\n\nlet customElementConstruction: {\n readonly document: Document;\n readonly id: NodeId;\n readonly nodeName: string;\n} | null = null;\n\nfunction parseDocumentCookie(cookieText: string): CookieEntry | null {\n const [pair] = cookieText.split(\";\");\n const trimmedPair = pair?.trim() ?? \"\";\n if (!trimmedPair) {\n return null;\n }\n const equalsIndex = trimmedPair.indexOf(\"=\");\n if (equalsIndex === -1) {\n return {\n hasValue: false,\n name: trimmedPair,\n value: \"\"\n };\n }\n const name = trimmedPair.slice(0, equalsIndex).trim();\n if (!name) {\n return null;\n }\n return {\n hasValue: true,\n name,\n value: trimmedPair.slice(equalsIndex + 1).trim()\n };\n}\n\nexport class Document extends Node {\n readonly defaultView: Window;\n readonly implementation: DOMImplementation;\n _native: NativeDocumentBinding;\n #wrappers = new Map<NodeId, Node>();\n #activeElement: Element | null = null;\n #documentNodeId: NodeId;\n #documentElementId: NodeId;\n #headId: NodeId;\n #bodyId: NodeId;\n #mutationVersion = 0;\n #namespaces = new Map<NodeId, string>();\n #cookies = new Map<string, CookieEntry>();\n #queryAllCache = new Map<string, { readonly version: number; readonly ids: readonly NodeId[] }>();\n #lastQueryAllRootId: NodeId | null = null;\n #lastQueryAllSelector = \"\";\n #lastQueryAllVersion = -1;\n #lastQueryAllIds: readonly NodeId[] = [];\n #queryOneCache = new Map<string, { readonly version: number; readonly id: NodeId | null }>();\n #lastQueryOneRootId: NodeId | null = null;\n #lastQueryOneSelector = \"\";\n #lastQueryOneVersion = -1;\n #lastQueryOneId: NodeId | null = null;\n #classNameCache = new Map<\n string,\n { readonly version: number; readonly ids: readonly NodeId[] }\n >();\n #lastClassNameRootId: NodeId | null = null;\n #lastClassNameSelector = \"\";\n #lastClassNameVersion = -1;\n #lastClassNameIds: readonly NodeId[] = [];\n #matchesCache = new Map<string, { readonly version: number; readonly result: boolean }>();\n #lastMatchesId: NodeId | null = null;\n #lastMatchesSelector = \"\";\n #lastMatchesVersion = -1;\n #lastMatchesResult = false;\n #closestCache = new Map<string, { readonly version: number; readonly id: NodeId | null }>();\n #lastClosestId: NodeId | null = null;\n #lastClosestSelector = \"\";\n #lastClosestVersion = -1;\n #lastClosestResult: NodeId | null = null;\n #customElementRegistryVersion = -1;\n #hasCustomElementDefinitions = false;\n\n constructor(defaultView: Window, html = \"\") {\n if (runtimeStats.enabled) {\n recordNativeCall(\"parseHtmlDocumentNative\");\n }\n const native = prepareNativeDocument(parseHtmlDocumentNative(html));\n const documentNodeId = native.documentNode();\n super(undefined as unknown as Document, documentNodeId, \"#document\");\n this.defaultView = defaultView;\n this._native = native;\n this.#documentNodeId = documentNodeId;\n this.#documentElementId = native.documentElement();\n this.#headId = native.head();\n this.#bodyId = native.body();\n this.implementation = new DOMImplementation(this);\n Object.defineProperty(this, \"_document\", {\n configurable: false,\n value: this\n });\n if (runtimeStats.enabled) {\n recordWrapperCreated(\"#document\");\n }\n }\n\n get documentElement(): Element {\n return this._wrap(this.#documentElementId, \"HTML\") as Element;\n }\n\n get doctype(): DocumentType | null {\n const id = this._native.documentType();\n return id == null ? null : (this._wrap(id) as DocumentType);\n }\n\n get head(): Element {\n return this._wrap(this.#headId, \"HEAD\") as Element;\n }\n\n get body(): HTMLElement {\n return this._wrap(this.#bodyId, \"BODY\") as HTMLElement;\n }\n\n get URL(): string {\n return this.defaultView.location.href;\n }\n\n get documentURI(): string {\n return this.URL;\n }\n\n get characterSet(): string {\n return \"UTF-8\";\n }\n\n get charset(): string {\n return this.characterSet;\n }\n\n get inputEncoding(): string {\n return this.characterSet;\n }\n\n get contentType(): string {\n return \"text/html\";\n }\n\n get readyState(): string {\n return \"interactive\";\n }\n\n get visibilityState(): string {\n return \"visible\";\n }\n\n get hidden(): boolean {\n return this.visibilityState !== \"visible\";\n }\n\n get cookie(): string {\n return [...this.#cookies.values()]\n .map((cookie) => (cookie.hasValue ? `${cookie.name}=${cookie.value}` : cookie.name))\n .join(\"; \");\n }\n\n set cookie(value: string) {\n const cookie = parseDocumentCookie(String(value));\n if (!cookie) {\n return;\n }\n this.#cookies.delete(cookie.name);\n this.#cookies.set(cookie.name, cookie);\n }\n\n get styleSheets(): readonly CSSStyleSheet[] {\n return [...this.querySelectorAll(\"style\")]\n .filter((element): element is HTMLStyleElement => element instanceof HTMLStyleElement)\n .map((element) => element.sheet)\n .filter((sheet): sheet is CSSStyleSheet => sheet !== null);\n }\n\n hasFocus(): boolean {\n return true;\n }\n\n get title(): string {\n return this.head.querySelector(\"title\")?.textContent ?? \"\";\n }\n\n set title(value: string) {\n let title = this.head.querySelector(\"title\");\n if (!title) {\n title = this.createElement(\"title\");\n this.head.appendChild(title);\n }\n title.textContent = String(value);\n }\n\n get ownerDocument(): null {\n return null;\n }\n\n get activeElement(): Element | null {\n return this.#activeElement ?? this.body;\n }\n\n querySelector(selector: string): Element | null {\n const id = this._querySelector(this.#documentNodeId, selector);\n return id == null ? null : (this._wrap(id) as Element);\n }\n\n querySelectorAll(selector: string): NativeNodeList<Element> {\n return new NativeNodeList(this, this._querySelectorAll(this.#documentNodeId, selector));\n }\n\n getElementById(id: string): Element | null {\n const nativeId = this._native.elementById(this.#documentNodeId, String(id));\n return nativeId == null ? null : (this._wrap(nativeId) as Element);\n }\n\n createElement(localName: string): HTMLElement {\n if (runtimeStats.enabled) {\n recordOperation(\"createElement\");\n }\n const normalizedName = String(localName).toLowerCase();\n const id = this._native.createElement(normalizedName);\n const nodeName = normalizedName.toUpperCase();\n const definition =\n normalizedName.includes(\"-\") && this._hasCustomElementDefinitions()\n ? this.defaultView.customElements._definitionFor(normalizedName)\n : undefined;\n if (definition) {\n const previousConstruction = customElementConstruction;\n customElementConstruction = {\n document: this,\n id,\n nodeName\n };\n try {\n const element = new definition.constructor();\n this._storeWrapper(id, element);\n return element;\n } finally {\n customElementConstruction = previousConstruction;\n }\n }\n return this._wrapCreatedHTMLElement(id, nodeName);\n }\n\n createElementNS(namespaceURI: string | null, qualifiedName: string): Element {\n if (runtimeStats.enabled) {\n recordOperation(\"createElementNS\");\n }\n const id = this._native.createElement(qualifiedName);\n if (namespaceURI) {\n this.#namespaces.set(id, namespaceURI);\n }\n return this._wrap(id, qualifiedName.toUpperCase()) as Element;\n }\n\n createTextNode(value: string): Text {\n if (runtimeStats.enabled) {\n recordOperation(\"createTextNode\");\n }\n const id = this._native.createTextNode(value);\n const node = new Text(this, id, \"#text\");\n this.#wrappers.set(id, node);\n if (runtimeStats.enabled) {\n recordWrapperCreated(\"#text\");\n }\n return node;\n }\n\n createComment(value: string): Comment {\n if (runtimeStats.enabled) {\n recordOperation(\"createComment\");\n }\n const id = this._native.createComment(value);\n const node = new Comment(this, id, \"#comment\");\n this.#wrappers.set(id, node);\n if (runtimeStats.enabled) {\n recordWrapperCreated(\"#comment\");\n }\n return node;\n }\n\n createDocumentFragment(): DocumentFragment {\n if (runtimeStats.enabled) {\n recordOperation(\"createDocumentFragment\");\n }\n const id = this._native.createDocumentFragment();\n const fragment = new DocumentFragment(this, id, \"#document-fragment\");\n this.#wrappers.set(id, fragment);\n if (runtimeStats.enabled) {\n recordWrapperCreated(\"#document-fragment\");\n }\n return fragment;\n }\n\n createRange(): Range {\n return new Range(this);\n }\n\n createEvent(eventInterface: string): Event {\n switch (String(eventInterface).toLowerCase()) {\n case \"customevent\":\n return new CustomEvent(\"\");\n case \"event\":\n case \"events\":\n case \"htmlevents\":\n return new Event(\"\");\n case \"uievent\":\n case \"uievents\":\n return new UIEvent(\"\");\n case \"mouseevent\":\n case \"mouseevents\":\n return new MouseEvent(\"\");\n case \"pointerevent\":\n case \"pointerevents\":\n return new PointerEvent(\"\");\n case \"keyboardevent\":\n case \"keyboardevents\":\n return new KeyboardEvent(\"\");\n case \"focusevent\":\n case \"focusevents\":\n return new FocusEvent(\"\");\n case \"inputevent\":\n case \"inputevents\":\n return new InputEvent(\"\");\n case \"clipboardevent\":\n case \"clipboardevents\":\n return new ClipboardEvent(\"\");\n case \"touchevent\":\n case \"touchevents\":\n return new TouchEvent(\"\");\n default:\n throw new DOMException(\n `The event interface \"${eventInterface}\" is not supported.`,\n \"NotSupportedError\"\n );\n }\n }\n\n getSelection(): Selection {\n return this.defaultView.getSelection();\n }\n\n createTreeWalker(\n root: Node,\n whatToShow: number = NodeFilter.SHOW_ALL,\n filter: NodeFilterCallback | null = null\n ): TreeWalker {\n return new TreeWalker(root, whatToShow, filter);\n }\n\n createNodeIterator(\n root: Node,\n whatToShow: number = NodeFilter.SHOW_ALL,\n filter: NodeFilterCallback | null = null\n ): NodeIterator {\n return new NodeIterator(root, whatToShow, filter);\n }\n\n importNode<T extends Node>(node: T, deep = false): T {\n return importNodeIntoDocument(this, node, deep) as T;\n }\n\n adoptNode<T extends Node>(node: T): T {\n if (node instanceof Document) {\n throw new DOMException(\"Document nodes cannot be adopted.\", \"NotSupportedError\");\n }\n if (node.ownerDocument === this) {\n node.parentNode?.removeChild(node);\n return node;\n }\n\n const adopted = importNodeIntoDocument(this, node, true) as T;\n node.parentNode?.removeChild(node);\n return adopted;\n }\n\n getElementsByTagName(tagName: string): NativeNodeList<Element> {\n return this.querySelectorAll(tagName);\n }\n\n getElementsByClassName(classNames: string): NativeNodeList<Element> {\n return new NativeNodeList(\n this,\n this._elementsByClassName(this.#documentNodeId, String(classNames))\n );\n }\n\n getElementsByName(name: string): NativeNodeList<Element> {\n return new NativeNodeList(\n this,\n this._native.elementsByName(this.#documentNodeId, String(name))\n );\n }\n\n _setActiveElement(element: Element | null): void {\n this.#activeElement = element;\n }\n\n _replaceWithHtml(html: string): void {\n if (runtimeStats.enabled) {\n recordNativeCall(\"parseHtmlDocumentNative\");\n }\n this._native = prepareNativeDocument(parseHtmlDocumentNative(html));\n this.#wrappers = new Map();\n this.#activeElement = null;\n this.#documentNodeId = this._native.documentNode();\n this.#documentElementId = this._native.documentElement();\n this.#headId = this._native.head();\n this.#bodyId = this._native.body();\n this.#namespaces.clear();\n this.#mutationVersion++;\n this.#queryAllCache.clear();\n this.#queryOneCache.clear();\n this.#classNameCache.clear();\n this.#matchesCache.clear();\n this.#closestCache.clear();\n this.#lastQueryAllRootId = null;\n this.#lastQueryOneRootId = null;\n this.#lastClassNameRootId = null;\n this.#lastMatchesId = null;\n this.#lastClosestId = null;\n (this as unknown as { _id: NodeId })._id = this.#documentNodeId;\n }\n\n _mutationVersion(): number {\n return this.#mutationVersion;\n }\n\n _documentNodeId(): NodeId {\n return this.#documentNodeId;\n }\n\n _storeWrapper(id: NodeId, node: Node): void {\n this.#wrappers.set(id, node);\n }\n\n _hasCustomElementDefinitions(): boolean {\n if (runtimeStats.enabled) {\n recordOperation(\"customElementCheckCalls\");\n }\n const registry = this.defaultView.customElements;\n const version = registry._version();\n if (version !== this.#customElementRegistryVersion) {\n if (runtimeStats.enabled) {\n recordOperation(\"customElementRegistryReads\");\n }\n this.#customElementRegistryVersion = version;\n this.#hasCustomElementDefinitions = registry._hasDefinitions();\n }\n return this.#hasCustomElementDefinitions;\n }\n\n _bumpMutationVersion(): void {\n if (runtimeStats.enabled) {\n recordOperation(\"mutationBumps\");\n }\n this.#mutationVersion++;\n // Cache entries are version-tagged, so hot mutation loops only need to\n // advance the version. Periodic pruning bounds stale entries.\n if (\n (this.#mutationVersion & 1023) === 0 &&\n (this.#queryAllCache.size > 0 ||\n this.#queryOneCache.size > 0 ||\n this.#classNameCache.size > 0 ||\n this.#matchesCache.size > 0 ||\n this.#closestCache.size > 0)\n ) {\n this.#queryAllCache.clear();\n this.#queryOneCache.clear();\n this.#classNameCache.clear();\n this.#matchesCache.clear();\n this.#closestCache.clear();\n }\n }\n\n _namespaceFor(id: NodeId): string {\n return this.#namespaces.get(id) ?? HTML_NAMESPACE;\n }\n\n _querySelectorAll(rootId: NodeId, selector: string): readonly NodeId[] {\n if (\n this.#lastQueryAllVersion === this.#mutationVersion &&\n this.#lastQueryAllRootId === rootId &&\n this.#lastQueryAllSelector === selector\n ) {\n return this.#lastQueryAllIds;\n }\n\n const key = `${rootId}\\u0000${selector}`;\n const cached = this.#queryAllCache.get(key);\n if (cached?.version === this.#mutationVersion) {\n this.#lastQueryAllRootId = rootId;\n this.#lastQueryAllSelector = selector;\n this.#lastQueryAllVersion = this.#mutationVersion;\n this.#lastQueryAllIds = cached.ids;\n return cached.ids;\n }\n const ids = this._native.querySelectorAll(rootId, selector);\n this.#queryAllCache.set(key, {\n version: this.#mutationVersion,\n ids\n });\n this.#lastQueryAllRootId = rootId;\n this.#lastQueryAllSelector = selector;\n this.#lastQueryAllVersion = this.#mutationVersion;\n this.#lastQueryAllIds = ids;\n return ids;\n }\n\n _querySelector(rootId: NodeId, selector: string): NodeId | null {\n if (\n this.#lastQueryOneVersion === this.#mutationVersion &&\n this.#lastQueryOneRootId === rootId &&\n this.#lastQueryOneSelector === selector\n ) {\n return this.#lastQueryOneId;\n }\n\n const key = `${rootId}\\u0000${selector}`;\n const cached = this.#queryOneCache.get(key);\n if (cached?.version === this.#mutationVersion) {\n this.#lastQueryOneRootId = rootId;\n this.#lastQueryOneSelector = selector;\n this.#lastQueryOneVersion = this.#mutationVersion;\n this.#lastQueryOneId = cached.id;\n return cached.id;\n }\n const id = this._native.querySelector(rootId, selector) ?? null;\n this.#queryOneCache.set(key, {\n version: this.#mutationVersion,\n id\n });\n this.#lastQueryOneRootId = rootId;\n this.#lastQueryOneSelector = selector;\n this.#lastQueryOneVersion = this.#mutationVersion;\n this.#lastQueryOneId = id;\n return id;\n }\n\n _elementsByClassName(rootId: NodeId, classNames: string): readonly NodeId[] {\n if (\n this.#lastClassNameVersion === this.#mutationVersion &&\n this.#lastClassNameRootId === rootId &&\n this.#lastClassNameSelector === classNames\n ) {\n return this.#lastClassNameIds;\n }\n\n const key = `${rootId}\\u0000${classNames}`;\n const cached = this.#classNameCache.get(key);\n if (cached?.version === this.#mutationVersion) {\n this.#lastClassNameRootId = rootId;\n this.#lastClassNameSelector = classNames;\n this.#lastClassNameVersion = this.#mutationVersion;\n this.#lastClassNameIds = cached.ids;\n return cached.ids;\n }\n const ids = this._native.elementsByClassName(rootId, classNames);\n this.#classNameCache.set(key, {\n version: this.#mutationVersion,\n ids\n });\n this.#lastClassNameRootId = rootId;\n this.#lastClassNameSelector = classNames;\n this.#lastClassNameVersion = this.#mutationVersion;\n this.#lastClassNameIds = ids;\n return ids;\n }\n\n _matchesSelector(id: NodeId, selector: string): boolean {\n if (\n this.#lastMatchesVersion === this.#mutationVersion &&\n this.#lastMatchesId === id &&\n this.#lastMatchesSelector === selector\n ) {\n return this.#lastMatchesResult;\n }\n\n const key = `${id}\\u0000${selector}`;\n const cached = this.#matchesCache.get(key);\n if (cached?.version === this.#mutationVersion) {\n this.#lastMatchesId = id;\n this.#lastMatchesSelector = selector;\n this.#lastMatchesVersion = this.#mutationVersion;\n this.#lastMatchesResult = cached.result;\n return cached.result;\n }\n const result = this._native.matchesSelector(id, selector);\n this.#matchesCache.set(key, {\n version: this.#mutationVersion,\n result\n });\n this.#lastMatchesId = id;\n this.#lastMatchesSelector = selector;\n this.#lastMatchesVersion = this.#mutationVersion;\n this.#lastMatchesResult = result;\n return result;\n }\n\n _closest(id: NodeId, selector: string): NodeId | null {\n if (\n this.#lastClosestVersion === this.#mutationVersion &&\n this.#lastClosestId === id &&\n this.#lastClosestSelector === selector\n ) {\n return this.#lastClosestResult;\n }\n\n const key = `${id}\\u0000${selector}`;\n const cached = this.#closestCache.get(key);\n if (cached?.version === this.#mutationVersion) {\n this.#lastClosestId = id;\n this.#lastClosestSelector = selector;\n this.#lastClosestVersion = this.#mutationVersion;\n this.#lastClosestResult = cached.id;\n return cached.id;\n }\n const result = this._native.closest(id, selector) ?? null;\n this.#closestCache.set(key, {\n version: this.#mutationVersion,\n id: result\n });\n this.#lastClosestId = id;\n this.#lastClosestSelector = selector;\n this.#lastClosestVersion = this.#mutationVersion;\n this.#lastClosestResult = result;\n return result;\n }\n\n _wrapCreatedHTMLElement(id: NodeId, nodeName: string): HTMLElement {\n const wrapper = createHTMLElementWrapper(this, id, nodeName);\n this.#wrappers.set(id, wrapper);\n if (runtimeStats.enabled) {\n recordWrapperCreated(nodeName);\n }\n return wrapper;\n }\n\n _wrap(id: NodeId, knownNodeName: string | null = null): Node {\n if (id === this.#documentNodeId) {\n if (runtimeStats.enabled) {\n runtimeStats.wrappers.documentHits++;\n }\n return this;\n }\n\n const existing = this.#wrappers.get(id);\n if (existing) {\n if (runtimeStats.enabled) {\n runtimeStats.wrappers.cacheHits++;\n }\n return existing;\n }\n\n if (knownNodeName != null) {\n const wrapper =\n knownNodeName === \"#text\"\n ? new Text(this, id, knownNodeName)\n : knownNodeName === \"#comment\"\n ? new Comment(this, id, knownNodeName)\n : knownNodeName === \"#document-fragment\"\n ? new DocumentFragment(this, id, knownNodeName)\n : this.#namespaces.get(id) === SVG_NAMESPACE\n ? new SVGElement(this, id, knownNodeName)\n : this.#namespaces.get(id) === MATHML_NAMESPACE\n ? new MathMLElement(this, id, knownNodeName)\n : createHTMLElementWrapper(this, id, knownNodeName);\n this.#wrappers.set(id, wrapper);\n if (runtimeStats.enabled) {\n recordWrapperCreated(knownNodeName);\n }\n return wrapper;\n }\n\n const nodeType = this._native.nodeType(id);\n const nodeName = this._native.nodeName(id);\n const wrapper =\n nodeType === Node.TEXT_NODE\n ? new Text(this, id, nodeName)\n : nodeType === Node.COMMENT_NODE\n ? new Comment(this, id, nodeName)\n : nodeType === Node.DOCUMENT_TYPE_NODE\n ? new DocumentType(this, id, nodeName)\n : nodeType === Node.DOCUMENT_FRAGMENT_NODE\n ? new DocumentFragment(this, id, nodeName)\n : this.#namespaces.get(id) === SVG_NAMESPACE\n ? new SVGElement(this, id, nodeName)\n : this.#namespaces.get(id) === MATHML_NAMESPACE\n ? new MathMLElement(this, id, nodeName)\n : createHTMLElementWrapper(this, id, nodeName);\n this.#wrappers.set(id, wrapper);\n if (runtimeStats.enabled) {\n recordWrapperCreated(nodeName);\n }\n return wrapper;\n }\n}\n\nfunction importNodeIntoDocument(document: Document, node: Node, deep: boolean): Node {\n switch (node.nodeType) {\n case Node.ELEMENT_NODE: {\n const element = node as Element;\n const clone = document.createElement(element.localName);\n for (const attribute of element.attributes) {\n clone.setAttribute(attribute.name, attribute.value);\n }\n if (deep) {\n appendImportedChildren(\n document,\n clone,\n element instanceof HTMLTemplateElement ? element.content : element\n );\n }\n return clone;\n }\n case Node.TEXT_NODE:\n return document.createTextNode(node.nodeValue ?? \"\");\n case Node.COMMENT_NODE:\n return document.createComment(node.nodeValue ?? \"\");\n case Node.DOCUMENT_TYPE_NODE: {\n const documentType = node as DocumentType;\n return document.implementation.createDocumentType(\n documentType.name,\n documentType.publicId,\n documentType.systemId\n );\n }\n case Node.DOCUMENT_FRAGMENT_NODE: {\n const fragment = document.createDocumentFragment();\n if (deep) {\n appendImportedChildren(document, fragment, node);\n }\n return fragment;\n }\n default: {\n const fragment = document.createDocumentFragment();\n if (deep) {\n appendImportedChildren(document, fragment, node);\n }\n return fragment;\n }\n }\n}\n\nfunction appendImportedChildren(document: Document, clone: Node, source: Node): void {\n for (const child of source.childNodes) {\n clone.appendChild(importNodeIntoDocument(document, child, true));\n }\n}\n\nfunction createHTMLElementWrapper(document: Document, id: NodeId, nodeName: string): HTMLElement {\n switch (nodeName) {\n case \"BUTTON\":\n return new HTMLButtonElement(document, id, nodeName);\n case \"CANVAS\":\n return new HTMLCanvasElement(document, id, nodeName);\n case \"FORM\":\n return new HTMLFormElement(document, id, nodeName);\n case \"HTML\":\n return new HTMLHtmlElement(document, id, nodeName);\n case \"BODY\":\n return new HTMLBodyElement(document, id, nodeName);\n case \"IMG\":\n return new HTMLImageElement(document, id, nodeName);\n case \"INPUT\":\n return new HTMLInputElement(document, id, nodeName);\n case \"LINK\":\n return new HTMLLinkElement(document, id, nodeName);\n case \"OPTION\":\n return new HTMLOptionElement(document, id, nodeName);\n case \"SCRIPT\":\n return new HTMLScriptElement(document, id, nodeName);\n case \"SELECT\":\n return new HTMLSelectElement(document, id, nodeName);\n case \"STYLE\":\n return new HTMLStyleElement(document, id, nodeName);\n case \"TABLE\":\n return new HTMLTableElement(document, id, nodeName);\n case \"TBODY\":\n case \"TFOOT\":\n case \"THEAD\":\n return new HTMLTableSectionElement(document, id, nodeName);\n case \"TD\":\n case \"TH\":\n return new HTMLTableCellElement(document, id, nodeName);\n case \"TEMPLATE\":\n return new HTMLTemplateElement(document, id, nodeName);\n case \"TR\":\n return new HTMLTableRowElement(document, id, nodeName);\n case \"TEXTAREA\":\n return new HTMLTextAreaElement(document, id, nodeName);\n default:\n return new HTMLElement(document, id, nodeName);\n }\n}\n\nexport class Element extends Node {\n #classList: DOMTokenList | null = null;\n #dataset: DOMStringMap | null = null;\n #localName: string | null = null;\n #shadowRoot: ShadowRoot | null = null;\n #style: CSSStyleDeclaration | null = null;\n\n get children(): NativeNodeList<Element> {\n return new NativeNodeList(this._document, this._document._native.elementChildren(this._id));\n }\n\n get childElementCount(): number {\n return this._document._native.childElementCount(this._id);\n }\n\n get firstElementChild(): Element | null {\n const id = this._document._native.firstElementChild(this._id);\n return id == null ? null : (this._document._wrap(id) as Element);\n }\n\n get lastElementChild(): Element | null {\n const id = this._document._native.lastElementChild(this._id);\n return id == null ? null : (this._document._wrap(id) as Element);\n }\n\n get previousElementSibling(): Element | null {\n const id = this._document._native.previousElementSibling(this._id);\n return id == null ? null : (this._document._wrap(id) as Element);\n }\n\n get nextElementSibling(): Element | null {\n const id = this._document._native.nextElementSibling(this._id);\n return id == null ? null : (this._document._wrap(id) as Element);\n }\n\n get tagName(): string {\n return this.nodeName;\n }\n\n get localName(): string {\n this.#localName ??= this.nodeName.toLowerCase();\n return this.#localName;\n }\n\n get namespaceURI(): string {\n return this._document._namespaceFor(this._id);\n }\n\n get shadowRoot(): ShadowRoot | null {\n return this.#shadowRoot?.mode === \"open\" ? this.#shadowRoot : null;\n }\n\n attachShadow(init: ShadowRootInit): ShadowRoot {\n if (this.#shadowRoot) {\n throw new DOMException(\"Shadow root has already been attached.\", \"DOMException\");\n }\n const mode = init.mode;\n if (mode !== \"open\" && mode !== \"closed\") {\n throw new TypeError('Shadow root mode must be \"open\" or \"closed\".');\n }\n const root = new ShadowRoot(\n this._document,\n this._document._native.createDocumentFragment(),\n this,\n mode\n );\n this.#shadowRoot = root;\n return root;\n }\n\n get innerHTML(): string {\n return this._document._native.serializeChildren(this._id);\n }\n\n set innerHTML(html: string) {\n if (!hasMutationObservers()) {\n this._document._native.setInnerHtml(this._id, html);\n this._document._bumpMutationVersion();\n return;\n }\n\n const removedNodes = [...this.childNodes];\n this._document._native.setInnerHtml(this._id, html);\n this._document._bumpMutationVersion();\n notifyMutation({\n type: \"childList\",\n target: this,\n addedNodes: [...this.childNodes],\n removedNodes,\n attributeName: null,\n oldValue: null\n });\n }\n\n get outerHTML(): string {\n return this._document._native.serializeNode(this._id);\n }\n\n set outerHTML(html: string) {\n const parentId = this._document._native.parentNode(this._id);\n if (parentId == null) {\n return;\n }\n if (!hasMutationObservers() && !this._document._hasCustomElementDefinitions()) {\n if (this._document._native.replaceWithHtmlFragment(this._id, html, \"div\")) {\n this._document._bumpMutationVersion();\n }\n return;\n }\n const parent = this._document._wrap(parentId);\n const fragment = fragmentFromHtml(this._document, html);\n parent.insertBefore(fragment, this);\n parent.removeChild(this);\n }\n\n get id(): string {\n return this.getAttribute(\"id\") ?? \"\";\n }\n\n set id(value: string) {\n this.setAttribute(\"id\", value);\n }\n\n get className(): string {\n return this.getAttribute(\"class\") ?? \"\";\n }\n\n set className(value: string) {\n this.setAttribute(\"class\", value);\n }\n\n get classList(): DOMTokenList {\n this.#classList ??= new DOMTokenList(this, \"class\");\n return this.#classList;\n }\n\n get dataset(): DOMStringMap {\n this.#dataset ??= createDataset(this);\n return this.#dataset;\n }\n\n get style(): CSSStyleDeclaration {\n this.#style ??= new CSSStyleDeclaration(this.getAttribute(\"style\") ?? \"\", this);\n return this.#style;\n }\n\n get clientWidth(): number {\n return elementBox(this).width;\n }\n\n get clientHeight(): number {\n return elementBox(this).height;\n }\n\n get scrollWidth(): number {\n return this.clientWidth;\n }\n\n get scrollHeight(): number {\n return this.clientHeight;\n }\n\n get offsetWidth(): number {\n return elementBox(this).width;\n }\n\n get offsetHeight(): number {\n return elementBox(this).height;\n }\n\n getBoundingClientRect(): DOMRect {\n const box = elementBox(this);\n return new DOMRect(box.left, box.top, box.width, box.height);\n }\n\n getClientRects(): DOMRect[] {\n if (this.ownerDocument && this.isConnected && elementDisplay(this) !== \"none\") {\n return [this.getBoundingClientRect()];\n }\n return [];\n }\n\n setAttribute(name: string, value: string): void {\n if (runtimeStats.enabled) {\n recordOperation(\"setAttribute\");\n }\n const normalizedName = this.#normalizeAttributeName(name);\n const stringValue = String(value);\n const hasObservers = hasMutationObservers();\n const hasCustomElements = this._document._hasCustomElementDefinitions();\n if (!hasObservers && !hasCustomElements) {\n this._document._native.setAttribute(this._id, normalizedName, stringValue);\n this._document._bumpMutationVersion();\n return;\n }\n\n const oldValue = this.getAttribute(normalizedName);\n this._document._native.setAttribute(this._id, normalizedName, stringValue);\n this._document._bumpMutationVersion();\n if (hasCustomElements) {\n notifyCustomElementAttributeChanged(this, normalizedName, oldValue, stringValue);\n }\n if (hasObservers) {\n notifyMutation({\n type: \"attributes\",\n target: this,\n addedNodes: [],\n removedNodes: [],\n attributeName: normalizedName,\n oldValue\n });\n }\n }\n\n getAttribute(name: string): string | null {\n return this._document._native.getAttribute(this._id, this.#normalizeAttributeName(name));\n }\n\n getAttributeNode(name: string): Attr | null {\n const normalizedName = this.#normalizeAttributeName(name);\n const value = this.getAttribute(normalizedName);\n return value == null\n ? null\n : {\n localName: normalizedName,\n name: normalizedName,\n value\n };\n }\n\n hasAttribute(name: string): boolean {\n return this.getAttribute(name) !== null;\n }\n\n hasAttributes(): boolean {\n return this.getAttributeNames().length > 0;\n }\n\n getAttributeNames(): string[] {\n return this._document._native.attributeNames(this._id);\n }\n\n get attributes(): NamedNodeMap {\n return new NamedNodeMap(\n this.getAttributeNames().map((name) => ({\n localName: name,\n name,\n value: this.getAttribute(name) ?? \"\"\n }))\n );\n }\n\n matches(selector: string): boolean {\n try {\n return this._document._matchesSelector(this._id, selector);\n } catch {\n return false;\n }\n }\n\n scrollIntoView(_arg?: boolean | ScrollIntoViewOptions): void {}\n\n removeAttribute(name: string): void {\n if (runtimeStats.enabled) {\n recordOperation(\"removeAttribute\");\n }\n const normalizedName = this.#normalizeAttributeName(name);\n const oldValue = this.getAttribute(normalizedName);\n if (oldValue === null) {\n return;\n }\n if (!hasMutationObservers()) {\n this._document._native.removeAttribute(this._id, normalizedName);\n this._document._bumpMutationVersion();\n notifyCustomElementAttributeChanged(this, normalizedName, oldValue, null);\n return;\n }\n\n this._document._native.removeAttribute(this._id, normalizedName);\n this._document._bumpMutationVersion();\n notifyCustomElementAttributeChanged(this, normalizedName, oldValue, null);\n notifyMutation({\n type: \"attributes\",\n target: this,\n addedNodes: [],\n removedNodes: [],\n attributeName: normalizedName,\n oldValue\n });\n }\n\n toggleAttribute(name: string, force?: boolean): boolean {\n if (force === true) {\n this.setAttribute(name, \"\");\n return true;\n }\n if (force === false) {\n this.removeAttribute(name);\n return false;\n }\n if (this.hasAttribute(name)) {\n this.removeAttribute(name);\n return false;\n }\n this.setAttribute(name, \"\");\n return true;\n }\n\n querySelector(selector: string): Element | null {\n const id = this._document._querySelector(this._id, selector);\n return id == null ? null : (this._document._wrap(id) as Element);\n }\n\n querySelectorAll(selector: string): NativeNodeList<Element> {\n return new NativeNodeList(this._document, this._document._querySelectorAll(this._id, selector));\n }\n\n closest(selector: string): Element | null {\n try {\n const id = this._document._closest(this._id, selector);\n return id == null ? null : (this._document._wrap(id) as Element);\n } catch {\n return null;\n }\n }\n\n getElementsByTagName(tagName: string): NativeNodeList<Element> {\n return this.querySelectorAll(tagName);\n }\n\n getElementsByClassName(classNames: string): NativeNodeList<Element> {\n return new NativeNodeList(\n this._document,\n this._document._elementsByClassName(this._id, String(classNames))\n );\n }\n\n insertAdjacentElement(position: string, element: Element): Element | null {\n return this.#insertAdjacentNode(position, element) ? element : null;\n }\n\n insertAdjacentHTML(position: string, html: string): void {\n if (!hasMutationObservers() && !this._document._hasCustomElementDefinitions()) {\n const normalized = position.toLowerCase();\n let moved = false;\n switch (normalized) {\n case \"beforebegin\": {\n const parentId = this._document._native.parentNode(this._id);\n if (parentId != null) {\n moved = this._document._native.insertHtmlFragment(parentId, this._id, html, \"div\");\n }\n break;\n }\n case \"afterbegin\":\n moved = this._document._native.insertHtmlFragment(\n this._id,\n this._document._native.firstChild(this._id),\n html,\n \"div\"\n );\n break;\n case \"beforeend\":\n moved = this._document._native.insertHtmlFragment(this._id, null, html, \"div\");\n break;\n case \"afterend\": {\n const parentId = this._document._native.parentNode(this._id);\n if (parentId != null) {\n moved = this._document._native.insertHtmlFragment(\n parentId,\n this._document._native.nextSibling(this._id),\n html,\n \"div\"\n );\n }\n break;\n }\n default:\n throw new DOMException(\n \"Position must be one of beforebegin, afterbegin, beforeend, or afterend\",\n \"SyntaxError\"\n );\n }\n if (moved) {\n this._document._bumpMutationVersion();\n }\n return;\n }\n this.#insertAdjacentNode(position, fragmentFromHtml(this._document, html));\n }\n\n insertAdjacentText(position: string, data: string): void {\n this.#insertAdjacentNode(position, this._document.createTextNode(String(data)));\n }\n\n #insertAdjacentNode(position: string, node: Node): Node | null {\n switch (position.toLowerCase()) {\n case \"beforebegin\":\n return this.parentNode ? this.parentNode.insertBefore(node, this) : null;\n case \"afterbegin\":\n return this.insertBefore(node, this.firstChild);\n case \"beforeend\":\n return this.appendChild(node);\n case \"afterend\":\n return this.parentNode ? this.parentNode.insertBefore(node, this.nextSibling) : null;\n default:\n throw new DOMException(\n \"Position must be one of beforebegin, afterbegin, beforeend, or afterend\",\n \"SyntaxError\"\n );\n }\n }\n\n #normalizeAttributeName(name: string): string {\n const value = String(name);\n return this.namespaceURI === HTML_NAMESPACE ? value.toLowerCase() : value;\n }\n}\n\nfunction elementBox(element: Element): {\n left: number;\n top: number;\n width: number;\n height: number;\n} {\n if (elementDisplay(element) === \"none\") {\n return { left: 0, top: 0, width: 0, height: 0 };\n }\n const style = inlineStyleFor(element);\n return {\n left: pixelValue(style.getPropertyValue(\"left\")),\n top: pixelValue(style.getPropertyValue(\"top\")),\n width: pixelValue(style.getPropertyValue(\"width\")),\n height: pixelValue(style.getPropertyValue(\"height\"))\n };\n}\n\nfunction elementDisplay(element: Element): string {\n if (element.hasAttribute(\"hidden\")) {\n return \"none\";\n }\n return inlineStyleFor(element).display;\n}\n\nfunction inlineStyleFor(element: Element): CSSStyleDeclaration {\n return new CSSStyleDeclaration(element.getAttribute(\"style\") ?? \"\");\n}\n\nfunction pixelValue(value: string): number {\n const parsed = Number.parseFloat(value);\n return Number.isFinite(parsed) ? parsed : 0;\n}\n\nfunction parseNonNegativeInteger(value: string | null, fallback: number): number {\n const parsed = Number.parseInt(value ?? \"\", 10);\n return Number.isFinite(parsed) && parsed >= 0 ? parsed : fallback;\n}\n\nfunction resolveElementUrl(element: Element, value: string): string {\n if (!value) {\n return \"\";\n }\n const base = element.ownerDocument?.URL ?? \"about:blank\";\n if (base.startsWith(\"about:\") || base.startsWith(\"data:\")) {\n return value;\n }\n try {\n return new URL(value, base).href;\n } catch {\n return value;\n }\n}\n\nfunction fragmentFromHtml(document: Document, html: string): DocumentFragment {\n return document._wrap(\n document._native.createHtmlFragment(String(html), \"div\")\n ) as DocumentFragment;\n}\n\nexport class SVGElement extends Element {}\n\nexport class MathMLElement extends Element {}\n\ninterface HTMLElementState {\n checked?: boolean | null;\n customValidityMessage?: string;\n selected?: boolean | null;\n value?: string | null;\n}\n\nconst htmlElementState = new WeakMap<HTMLElement, HTMLElementState>();\n\nfunction getHTMLElementState(element: HTMLElement): HTMLElementState {\n let state = htmlElementState.get(element);\n if (!state) {\n state = {};\n htmlElementState.set(element, state);\n }\n return state;\n}\n\nexport class HTMLElement extends Element {\n constructor(document?: Document, id?: NodeId, nodeName: string | null = null) {\n if (document && id !== undefined) {\n super(document, id, nodeName);\n return;\n }\n if (customElementConstruction) {\n super(\n customElementConstruction.document,\n customElementConstruction.id,\n customElementConstruction.nodeName\n );\n return;\n }\n const active = activeDocument();\n super(active, active._native.createElement(\"div\"), \"DIV\");\n }\n\n get innerText(): string {\n return this.textContent;\n }\n\n set innerText(value: string) {\n this.textContent = String(value);\n }\n\n get hidden(): boolean {\n return this.hasAttribute(\"hidden\");\n }\n\n set hidden(value: boolean) {\n if (value) {\n this.setAttribute(\"hidden\", \"\");\n } else {\n this.removeAttribute(\"hidden\");\n }\n }\n\n get type(): string {\n return this.getAttribute(\"type\") ?? (this.localName === \"input\" ? \"text\" : \"\");\n }\n\n set type(value: string) {\n this.setAttribute(\"type\", String(value));\n }\n\n get name(): string {\n return this.getAttribute(\"name\") ?? \"\";\n }\n\n set name(value: string) {\n this.setAttribute(\"name\", String(value));\n }\n\n get placeholder(): string {\n return this.getAttribute(\"placeholder\") ?? \"\";\n }\n\n set placeholder(value: string) {\n this.setAttribute(\"placeholder\", String(value));\n }\n\n get htmlFor(): string {\n return this.getAttribute(\"for\") ?? \"\";\n }\n\n set htmlFor(value: string) {\n this.setAttribute(\"for\", String(value));\n }\n\n get value(): string {\n if (this.localName === \"select\") {\n const option = this.options?.item(this.selectedIndex);\n return option?.value ?? \"\";\n }\n if (this.localName === \"option\") {\n return this.getAttribute(\"value\") ?? this.textContent;\n }\n if (this.localName === \"textarea\") {\n return htmlElementState.get(this)?.value ?? this.defaultValue;\n }\n return htmlElementState.get(this)?.value ?? this.defaultValue;\n }\n\n set value(value: string) {\n if (this.localName === \"select\") {\n const options = [...(this.options ?? [])];\n const index = options.findIndex((option) => option.value === String(value));\n if (index !== -1) {\n this.selectedIndex = index;\n }\n return;\n }\n const nextValue = value === null ? \"\" : String(value);\n if (\n this.localName === \"input\" &&\n this.type.toLowerCase() === \"number\" &&\n nextValue !== \"\" &&\n !isValidNumberValue(nextValue)\n ) {\n getHTMLElementState(this).value = \"\";\n return;\n }\n getHTMLElementState(this).value = nextValue;\n }\n\n get defaultValue(): string {\n if (this.localName === \"textarea\") {\n return this.textContent;\n }\n return this.getAttribute(\"value\") ?? \"\";\n }\n\n set defaultValue(value: string) {\n if (this.localName === \"textarea\") {\n this.textContent = String(value);\n return;\n }\n this.setAttribute(\"value\", String(value));\n }\n\n get checked(): boolean {\n return htmlElementState.get(this)?.checked ?? this.defaultChecked;\n }\n\n set checked(value: boolean) {\n getHTMLElementState(this).checked = value;\n }\n\n get defaultChecked(): boolean {\n return this.hasAttribute(\"checked\");\n }\n\n set defaultChecked(value: boolean) {\n this.#toggleBooleanAttribute(\"checked\", value);\n }\n\n get readOnly(): boolean {\n return this.hasAttribute(\"readonly\");\n }\n\n set readOnly(value: boolean) {\n this.#toggleBooleanAttribute(\"readonly\", value);\n }\n\n get multiple(): boolean {\n return this.hasAttribute(\"multiple\");\n }\n\n set multiple(value: boolean) {\n this.#toggleBooleanAttribute(\"multiple\", value);\n }\n\n get selected(): boolean {\n return htmlElementState.get(this)?.selected ?? this.hasAttribute(\"selected\");\n }\n\n set selected(value: boolean) {\n getHTMLElementState(this).selected = value;\n }\n\n get selectedIndex(): number {\n const options = [...(this.options ?? [])];\n if (options.length === 0) {\n return -1;\n }\n const selectedIndex = options.findIndex((option) => option.selected);\n return selectedIndex === -1 ? 0 : selectedIndex;\n }\n\n set selectedIndex(value: number) {\n const options = [...(this.options ?? [])];\n options.forEach((option, index) => {\n option.selected = index === value;\n });\n }\n\n get options(): NativeNodeList<HTMLElement> | undefined {\n if (this.localName !== \"select\") {\n return undefined;\n }\n return new NativeNodeList(\n this._document,\n [...this.querySelectorAll(\"option\")].map((option) => option._nativeId)\n );\n }\n\n get text(): string {\n return this.textContent;\n }\n\n set text(value: string) {\n this.textContent = String(value);\n }\n\n get form(): HTMLElement | null {\n if (!isFormAssociatedElement(this)) {\n return null;\n }\n const formId = this.getAttribute(\"form\");\n if (formId) {\n const form = this._document.getElementById(formId);\n return form instanceof HTMLElement && form.localName === \"form\" ? form : null;\n }\n const form = this.closest(\"form\");\n return form instanceof HTMLElement ? form : null;\n }\n\n get elements(): NativeNodeList<HTMLElement> | undefined {\n if (this.localName !== \"form\") {\n return undefined;\n }\n const selector = \"button, fieldset, input, object, output, select, textarea\";\n const descendants = [...this.querySelectorAll(selector)];\n const external = this.id\n ? [...this._document.querySelectorAll(\"[form]\")].filter(\n (element) => element.getAttribute(\"form\") === this.id\n )\n : [];\n return new NativeNodeList(\n this._document,\n [...descendants, ...external]\n .filter((element): element is HTMLElement => element instanceof HTMLElement)\n .filter((element) => element.form === this)\n .map((element) => element._nativeId)\n );\n }\n\n get control(): HTMLElement | null {\n if (this.localName !== \"label\") {\n return null;\n }\n if (this.htmlFor) {\n const control = this._document.getElementById(this.htmlFor);\n return control instanceof HTMLElement ? control : null;\n }\n return (\n [...this.querySelectorAll(\"button, input, meter, output, progress, select, textarea\")].filter(\n isLabelableElement\n )[0] ?? null\n );\n }\n\n get labels(): NativeNodeList<HTMLElement> | undefined {\n if (!isLabelableElement(this)) {\n return undefined;\n }\n const labels = [...this._document.querySelectorAll(\"label\")].filter(\n (label): label is HTMLElement => label instanceof HTMLElement && label.control === this\n );\n return new NativeNodeList(\n this._document,\n labels.map((label) => label._nativeId)\n );\n }\n\n get validity(): ValidityState | undefined {\n if (!hasValidityState(this)) {\n return undefined;\n }\n return new ValidityState({\n customError: (htmlElementState.get(this)?.customValidityMessage ?? \"\") !== \"\",\n rangeOverflow: this.#isRangeOverflow(),\n rangeUnderflow: this.#isRangeUnderflow(),\n tooLong: this.#isTooLong(),\n tooShort: this.#isTooShort(),\n typeMismatch: this.#isTypeMismatch(),\n valueMissing: this.#isValueMissing()\n });\n }\n\n get validationMessage(): string {\n return htmlElementState.get(this)?.customValidityMessage ?? \"\";\n }\n\n get willValidate(): boolean | undefined {\n if (this.localName !== \"input\" && this.localName !== \"select\") {\n return undefined;\n }\n if (isDisabledFormElement(this) || this.readOnly) {\n return false;\n }\n return !(this.localName === \"input\" && this.type.toLowerCase() === \"hidden\");\n }\n\n setCustomValidity(message: string): void {\n getHTMLElementState(this).customValidityMessage = String(message);\n }\n\n checkValidity(): boolean {\n if (this.localName === \"form\") {\n return [...(this.elements ?? [])].every((element) => element.checkValidity());\n }\n if (!hasValidityState(this)) {\n return true;\n }\n if (\n isDisabledFormElement(this) ||\n this.readOnly ||\n (this.localName === \"input\" && this.type.toLowerCase() === \"hidden\")\n ) {\n return true;\n }\n return this.validity?.valid ?? true;\n }\n\n reportValidity(): boolean {\n return this.checkValidity();\n }\n\n click(): void {\n this.dispatchEvent(new MouseEvent(\"click\", { bubbles: true, cancelable: true }));\n }\n\n submit(): void {\n this.requestSubmit();\n }\n\n requestSubmit(): void {\n if (this.localName !== \"form\") {\n return;\n }\n if (!this.checkValidity()) {\n return;\n }\n this.dispatchEvent(new SubmitEvent(\"submit\", { bubbles: true, cancelable: true }));\n }\n\n reset(): void {\n if (this.localName !== \"form\") {\n return;\n }\n const event = new Event(\"reset\", { bubbles: true, cancelable: true });\n if (!this.dispatchEvent(event)) {\n return;\n }\n for (const element of this.elements ?? []) {\n element.#resetFormValue();\n }\n }\n\n focus(): void {\n if (this._document.activeElement === this) {\n return;\n }\n const previous = this._document.activeElement;\n if (previous instanceof HTMLElement && previous !== this._document.body) {\n previous.#blurWithoutFocusCheck();\n }\n this._document._setActiveElement(this);\n this.dispatchEvent(new FocusEvent(\"focus\"));\n this.dispatchEvent(new FocusEvent(\"focusin\", { bubbles: true }));\n }\n\n blur(): void {\n if (this._document.activeElement !== this) {\n return;\n }\n this.#blurWithoutFocusCheck();\n }\n\n #blurWithoutFocusCheck(): void {\n this._document._setActiveElement(null);\n this.dispatchEvent(new FocusEvent(\"blur\"));\n this.dispatchEvent(new FocusEvent(\"focusout\", { bubbles: true }));\n }\n\n #toggleBooleanAttribute(name: string, value: boolean): void {\n if (value) {\n this.setAttribute(name, \"\");\n } else {\n this.removeAttribute(name);\n }\n }\n\n #resetFormValue(): void {\n if (this.localName === \"input\") {\n const state = getHTMLElementState(this);\n state.value = null;\n state.checked = null;\n return;\n }\n if (this.localName === \"textarea\") {\n getHTMLElementState(this).value = null;\n return;\n }\n if (this.localName === \"select\") {\n for (const option of this.options ?? []) {\n getHTMLElementState(option).selected = null;\n }\n const options = [...(this.options ?? [])];\n const selectedIndex = options.findIndex((option) => option.hasAttribute(\"selected\"));\n this.selectedIndex = selectedIndex === -1 && options.length > 0 ? 0 : selectedIndex;\n }\n }\n\n #isValueMissing(): boolean {\n if (![\"input\", \"select\", \"textarea\"].includes(this.localName)) {\n return false;\n }\n if (!this.hasAttribute(\"required\")) {\n return false;\n }\n if (this.localName === \"input\") {\n const type = this.type.toLowerCase();\n if (type === \"checkbox\" || type === \"radio\") {\n return !this.checked;\n }\n }\n return this.value === \"\";\n }\n\n #isTypeMismatch(): boolean {\n if (this.localName !== \"input\" || this.value === \"\") {\n return false;\n }\n if (this.type.toLowerCase() === \"email\") {\n return !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(this.value);\n }\n return false;\n }\n\n #isRangeUnderflow(): boolean {\n if (this.localName !== \"input\" || this.type.toLowerCase() !== \"number\" || this.value === \"\") {\n return false;\n }\n const min = Number.parseFloat(this.getAttribute(\"min\") ?? \"\");\n return Number.isFinite(min) && Number.parseFloat(this.value) < min;\n }\n\n #isRangeOverflow(): boolean {\n if (this.localName !== \"input\" || this.type.toLowerCase() !== \"number\" || this.value === \"\") {\n return false;\n }\n const max = Number.parseFloat(this.getAttribute(\"max\") ?? \"\");\n return Number.isFinite(max) && Number.parseFloat(this.value) > max;\n }\n\n #isTooShort(): boolean {\n if (![\"input\", \"textarea\"].includes(this.localName) || this.value === \"\") {\n return false;\n }\n const minLength = Number.parseInt(this.getAttribute(\"minlength\") ?? \"\", 10);\n return Number.isFinite(minLength) && this.value.length < minLength;\n }\n\n #isTooLong(): boolean {\n if (![\"input\", \"textarea\"].includes(this.localName) || this.value === \"\") {\n return false;\n }\n const maxLength = Number.parseInt(this.getAttribute(\"maxlength\") ?? \"\", 10);\n return Number.isFinite(maxLength) && this.value.length > maxLength;\n }\n}\n\nexport class HTMLButtonElement extends HTMLElement {\n get disabled(): boolean {\n return this.hasAttribute(\"disabled\");\n }\n\n set disabled(value: boolean) {\n toggleBooleanAttribute(this, \"disabled\", value);\n }\n}\n\nexport class HTMLCanvasElement extends HTMLElement {\n get width(): number {\n return Number.parseInt(this.getAttribute(\"width\") ?? \"300\", 10);\n }\n\n set width(value: number) {\n this.setAttribute(\"width\", String(value));\n }\n\n get height(): number {\n return Number.parseInt(this.getAttribute(\"height\") ?? \"150\", 10);\n }\n\n set height(value: number) {\n this.setAttribute(\"height\", String(value));\n }\n\n getContext(_contextId: string, ..._arguments_: unknown[]): null {\n return null;\n }\n\n toDataURL(_type?: string, ..._arguments_: unknown[]): string {\n return \"data:,\";\n }\n}\n\nexport class HTMLFormElement extends HTMLElement {}\n\nexport class HTMLHtmlElement extends HTMLElement {}\n\nexport class HTMLBodyElement extends HTMLElement {}\n\nexport class HTMLImageElement extends HTMLElement {\n get alt(): string {\n return this.getAttribute(\"alt\") ?? \"\";\n }\n\n set alt(value: string) {\n this.setAttribute(\"alt\", String(value));\n }\n\n get src(): string {\n return resolveElementUrl(this, this.getAttribute(\"src\") ?? \"\");\n }\n\n set src(value: string) {\n this.setAttribute(\"src\", String(value));\n }\n\n get currentSrc(): string {\n return this.src;\n }\n\n get srcset(): string {\n return this.getAttribute(\"srcset\") ?? \"\";\n }\n\n set srcset(value: string) {\n this.setAttribute(\"srcset\", String(value));\n }\n\n get sizes(): string {\n return this.getAttribute(\"sizes\") ?? \"\";\n }\n\n set sizes(value: string) {\n this.setAttribute(\"sizes\", String(value));\n }\n\n get width(): number {\n return parseNonNegativeInteger(this.getAttribute(\"width\"), 0);\n }\n\n set width(value: number) {\n this.setAttribute(\"width\", String(Math.max(0, Number(value) || 0)));\n }\n\n get height(): number {\n return parseNonNegativeInteger(this.getAttribute(\"height\"), 0);\n }\n\n set height(value: number) {\n this.setAttribute(\"height\", String(Math.max(0, Number(value) || 0)));\n }\n\n get naturalWidth(): number {\n return 0;\n }\n\n get naturalHeight(): number {\n return 0;\n }\n\n get complete(): boolean {\n return false;\n }\n\n get loading(): string {\n return this.getAttribute(\"loading\") ?? \"auto\";\n }\n\n set loading(value: string) {\n this.setAttribute(\"loading\", String(value));\n }\n\n get decoding(): string {\n return this.getAttribute(\"decoding\") ?? \"auto\";\n }\n\n set decoding(value: string) {\n this.setAttribute(\"decoding\", String(value));\n }\n\n get crossOrigin(): string | null {\n return this.getAttribute(\"crossorigin\");\n }\n\n set crossOrigin(value: string | null) {\n if (value === null) {\n this.removeAttribute(\"crossorigin\");\n return;\n }\n this.setAttribute(\"crossorigin\", String(value));\n }\n\n get referrerPolicy(): string {\n return this.getAttribute(\"referrerpolicy\") ?? \"\";\n }\n\n set referrerPolicy(value: string) {\n this.setAttribute(\"referrerpolicy\", String(value));\n }\n}\n\nfunction createImageConstructor(\n document: Document\n): new (width?: number, height?: number) => HTMLImageElement {\n const ImageConstructor = function Image(width?: number, height?: number): HTMLImageElement {\n const element = document.createElement(\"img\") as HTMLImageElement;\n Object.setPrototypeOf(element, ImageConstructor.prototype);\n if (width !== undefined) {\n element.width = width;\n }\n if (height !== undefined) {\n element.height = height;\n }\n return element;\n } as unknown as new (width?: number, height?: number) => HTMLImageElement;\n\n Object.setPrototypeOf(ImageConstructor.prototype, HTMLImageElement.prototype);\n Object.defineProperty(ImageConstructor.prototype, \"constructor\", {\n configurable: true,\n value: ImageConstructor,\n writable: true\n });\n return ImageConstructor;\n}\n\nexport class HTMLLinkElement extends HTMLElement {\n #disabled: boolean | undefined;\n\n get href(): string {\n return resolveElementUrl(this, this.getAttribute(\"href\") ?? \"\");\n }\n\n set href(value: string) {\n this.setAttribute(\"href\", String(value));\n }\n\n get rel(): string {\n return this.getAttribute(\"rel\") ?? \"\";\n }\n\n set rel(value: string) {\n this.setAttribute(\"rel\", String(value));\n }\n\n get as(): string {\n return this.getAttribute(\"as\") ?? \"\";\n }\n\n set as(value: string) {\n this.setAttribute(\"as\", String(value));\n }\n\n get type(): string {\n return this.getAttribute(\"type\") ?? \"\";\n }\n\n set type(value: string) {\n this.setAttribute(\"type\", String(value));\n }\n\n get media(): string {\n return this.getAttribute(\"media\") ?? \"\";\n }\n\n set media(value: string) {\n this.setAttribute(\"media\", String(value));\n }\n\n get crossOrigin(): string {\n return this.getAttribute(\"crossorigin\") ?? \"\";\n }\n\n set crossOrigin(value: string) {\n this.setAttribute(\"crossorigin\", String(value));\n }\n\n get referrerPolicy(): string {\n return this.getAttribute(\"referrerpolicy\") ?? \"\";\n }\n\n set referrerPolicy(value: string) {\n this.setAttribute(\"referrerpolicy\", String(value));\n }\n\n get disabled(): boolean | undefined {\n return this.#disabled;\n }\n\n set disabled(value: boolean) {\n this.#disabled = Boolean(value);\n }\n\n get sheet(): CSSStyleSheet | null {\n return null;\n }\n}\n\nexport class HTMLScriptElement extends HTMLElement {\n get src(): string {\n return resolveElementUrl(this, this.getAttribute(\"src\") ?? \"\");\n }\n\n set src(value: string) {\n this.setAttribute(\"src\", String(value));\n }\n\n get type(): string {\n return this.getAttribute(\"type\") ?? \"\";\n }\n\n set type(value: string) {\n this.setAttribute(\"type\", String(value));\n }\n\n get charset(): string {\n return this.getAttribute(\"charset\") ?? \"\";\n }\n\n set charset(value: string) {\n this.setAttribute(\"charset\", String(value));\n }\n\n get lang(): string {\n return this.getAttribute(\"lang\") ?? \"\";\n }\n\n set lang(value: string) {\n this.setAttribute(\"lang\", String(value));\n }\n\n get async(): boolean {\n return this.hasAttribute(\"async\");\n }\n\n set async(value: boolean) {\n toggleBooleanAttribute(this, \"async\", value);\n }\n\n get defer(): boolean {\n return this.hasAttribute(\"defer\");\n }\n\n set defer(value: boolean) {\n toggleBooleanAttribute(this, \"defer\", value);\n }\n\n get noModule(): boolean {\n return this.hasAttribute(\"nomodule\");\n }\n\n set noModule(value: boolean) {\n toggleBooleanAttribute(this, \"nomodule\", value);\n }\n\n get crossOrigin(): string {\n return this.getAttribute(\"crossorigin\") ?? \"\";\n }\n\n set crossOrigin(value: string) {\n this.setAttribute(\"crossorigin\", String(value));\n }\n\n get integrity(): string {\n return this.getAttribute(\"integrity\") ?? \"\";\n }\n\n set integrity(value: string) {\n this.setAttribute(\"integrity\", String(value));\n }\n\n get referrerPolicy(): string {\n return this.getAttribute(\"referrerpolicy\") ?? \"\";\n }\n\n set referrerPolicy(value: string) {\n this.setAttribute(\"referrerpolicy\", String(value));\n }\n\n get text(): string {\n return this.textContent;\n }\n\n set text(value: string) {\n this.textContent = String(value);\n }\n}\n\nexport class HTMLTableElement extends HTMLElement {\n get caption(): HTMLElement | null {\n return this.#directChild(\"caption\");\n }\n\n get tHead(): HTMLTableSectionElement | null {\n return this.#directChild(\"thead\") as HTMLTableSectionElement | null;\n }\n\n get tFoot(): HTMLTableSectionElement | null {\n return this.#directChild(\"tfoot\") as HTMLTableSectionElement | null;\n }\n\n get tBodies(): NativeNodeList<HTMLTableSectionElement> {\n return collectionFromElements(\n this._document,\n [...this.children].filter(\n (element): element is HTMLTableSectionElement =>\n element instanceof HTMLTableSectionElement && element.localName === \"tbody\"\n )\n );\n }\n\n get rows(): NativeNodeList<HTMLTableRowElement> {\n return collectionFromElements(\n this._document,\n [...this.querySelectorAll(\"tr\")].filter(\n (element): element is HTMLTableRowElement => element instanceof HTMLTableRowElement\n )\n );\n }\n\n createTHead(): HTMLTableSectionElement {\n return (\n this.tHead ??\n this.appendChild(this._document.createElement(\"thead\") as HTMLTableSectionElement)\n );\n }\n\n deleteTHead(): void {\n this.tHead?.remove();\n }\n\n createTFoot(): HTMLTableSectionElement {\n return (\n this.tFoot ??\n this.appendChild(this._document.createElement(\"tfoot\") as HTMLTableSectionElement)\n );\n }\n\n deleteTFoot(): void {\n this.tFoot?.remove();\n }\n\n createTBody(): HTMLTableSectionElement {\n return this.appendChild(this._document.createElement(\"tbody\") as HTMLTableSectionElement);\n }\n\n insertRow(index = -1): HTMLTableRowElement {\n const rows = [...this.rows];\n const normalizedIndex = normalizeTableIndex(index, rows.length, true);\n const row = this._document.createElement(\"tr\") as HTMLTableRowElement;\n if (normalizedIndex === rows.length) {\n const bodies = [...this.tBodies];\n const container = bodies[bodies.length - 1] ?? this.createTBody();\n container.appendChild(row);\n return row;\n }\n rows[normalizedIndex].parentNode?.insertBefore(row, rows[normalizedIndex]);\n return row;\n }\n\n deleteRow(index: number): void {\n const rows = [...this.rows];\n const normalizedIndex = normalizeTableIndex(index, rows.length, false);\n rows[normalizedIndex]?.remove();\n }\n\n #directChild(localName: string): HTMLElement | null {\n return (\n [...this.children].find(\n (element): element is HTMLElement =>\n element instanceof HTMLElement && element.localName === localName\n ) ?? null\n );\n }\n}\n\nexport class HTMLTableSectionElement extends HTMLElement {\n get rows(): NativeNodeList<HTMLTableRowElement> {\n return collectionFromElements(\n this._document,\n [...this.children].filter(\n (element): element is HTMLTableRowElement => element instanceof HTMLTableRowElement\n )\n );\n }\n\n insertRow(index = -1): HTMLTableRowElement {\n const rows = [...this.rows];\n const normalizedIndex = normalizeTableIndex(index, rows.length, true);\n const row = this._document.createElement(\"tr\") as HTMLTableRowElement;\n if (normalizedIndex === rows.length) {\n this.appendChild(row);\n return row;\n }\n this.insertBefore(row, rows[normalizedIndex]);\n return row;\n }\n\n deleteRow(index: number): void {\n const rows = [...this.rows];\n const normalizedIndex = normalizeTableIndex(index, rows.length, false);\n rows[normalizedIndex]?.remove();\n }\n}\n\nexport class HTMLTableRowElement extends HTMLElement {\n get cells(): NativeNodeList<HTMLTableCellElement> {\n return collectionFromElements(\n this._document,\n [...this.children].filter(\n (element): element is HTMLTableCellElement => element instanceof HTMLTableCellElement\n )\n );\n }\n\n get rowIndex(): number {\n const table = this.closest(\"table\") as HTMLTableElement | null;\n return table ? [...table.rows].indexOf(this) : -1;\n }\n\n get sectionRowIndex(): number {\n const parent = this.parentElement;\n if (parent instanceof HTMLTableSectionElement) {\n return [...parent.rows].indexOf(this);\n }\n return -1;\n }\n\n insertCell(index = -1): HTMLTableCellElement {\n const cells = [...this.cells];\n const normalizedIndex = normalizeTableIndex(index, cells.length, true);\n const cell = this._document.createElement(\"td\") as HTMLTableCellElement;\n if (normalizedIndex === cells.length) {\n this.appendChild(cell);\n return cell;\n }\n this.insertBefore(cell, cells[normalizedIndex]);\n return cell;\n }\n\n deleteCell(index: number): void {\n const cells = [...this.cells];\n const normalizedIndex = normalizeTableIndex(index, cells.length, false);\n cells[normalizedIndex]?.remove();\n }\n}\n\nexport class HTMLTableCellElement extends HTMLElement {\n get cellIndex(): number {\n const parent = this.parentElement;\n if (parent instanceof HTMLTableRowElement) {\n return [...parent.cells].indexOf(this);\n }\n return -1;\n }\n\n get colSpan(): number {\n return parseNonNegativeInteger(this.getAttribute(\"colspan\"), 1) || 1;\n }\n\n set colSpan(value: number) {\n this.setAttribute(\"colspan\", String(Math.max(1, Number(value) || 1)));\n }\n\n get rowSpan(): number {\n return parseNonNegativeInteger(this.getAttribute(\"rowspan\"), 1) || 1;\n }\n\n set rowSpan(value: number) {\n this.setAttribute(\"rowspan\", String(Math.max(1, Number(value) || 1)));\n }\n}\n\nfunction collectionFromElements<T extends Element>(\n document: Document,\n elements: readonly T[]\n): NativeNodeList<T> {\n return new NativeNodeList(\n document,\n elements.map((element) => element._nativeId)\n );\n}\n\nfunction normalizeTableIndex(index: number, length: number, allowAppend: boolean): number {\n const normalizedIndex = Number(index);\n if (!Number.isInteger(normalizedIndex)) {\n throw new DOMException(\"The index is outside the allowed range.\", \"IndexSizeError\");\n }\n if (normalizedIndex === -1) {\n return allowAppend ? length : length - 1;\n }\n if (\n normalizedIndex < 0 ||\n normalizedIndex > length ||\n (!allowAppend && normalizedIndex === length)\n ) {\n throw new DOMException(\"The index is outside the allowed range.\", \"IndexSizeError\");\n }\n return normalizedIndex;\n}\n\nfunction customElementDefinitionFor(element: Element): CustomElementDefinition | undefined {\n return element.ownerDocument?.defaultView.customElements._definitionFor(element.localName);\n}\n\nfunction notifyCustomElementReparented(\n node: Node,\n oldParent: Node | null,\n wasConnected: boolean\n): void {\n const movedBetweenParents = oldParent !== null && oldParent !== node.parentNode;\n const isConnected = node.isConnected;\n if (wasConnected && (movedBetweenParents || !isConnected)) {\n notifyCustomElementDisconnected(node);\n }\n if (isConnected && (!wasConnected || movedBetweenParents)) {\n notifyCustomElementConnected(node);\n }\n}\n\nfunction notifyCustomElementConnected(node: Node): void {\n if (node instanceof Element) {\n const callback = (node as { connectedCallback?: () => void }).connectedCallback;\n if (customElementDefinitionFor(node) && typeof callback === \"function\") {\n callback.call(node);\n }\n }\n for (const child of node.childNodes) {\n notifyCustomElementConnected(child);\n }\n}\n\nfunction notifyCustomElementDisconnected(node: Node): void {\n if (node instanceof Element) {\n const callback = (node as { disconnectedCallback?: () => void }).disconnectedCallback;\n if (customElementDefinitionFor(node) && typeof callback === \"function\") {\n callback.call(node);\n }\n }\n for (const child of node.childNodes) {\n notifyCustomElementDisconnected(child);\n }\n}\n\nfunction notifyCustomElementAttributeChanged(\n element: Element,\n name: string,\n oldValue: string | null,\n newValue: string | null\n): void {\n const definition = customElementDefinitionFor(element);\n if (!definition?.observedAttributes.includes(name)) {\n return;\n }\n const callback = (\n element as {\n attributeChangedCallback?: (\n name: string,\n oldValue: string | null,\n newValue: string | null\n ) => void;\n }\n ).attributeChangedCallback;\n if (typeof callback === \"function\") {\n callback.call(element, name, oldValue, newValue);\n }\n}\n\nexport class HTMLTemplateElement extends HTMLElement {\n readonly #content: DocumentFragment;\n\n constructor(document: Document, id: NodeId, nodeName: string) {\n super(document, id, nodeName);\n const contentId = document._native.templateContent(id);\n this.#content =\n contentId == null\n ? document.createDocumentFragment()\n : (document._wrap(contentId, \"#document-fragment\") as DocumentFragment);\n }\n\n get content(): DocumentFragment {\n return this.#content;\n }\n\n get firstChild(): Node | null {\n return this.#content.firstChild;\n }\n\n get lastChild(): Node | null {\n return this.#content.lastChild;\n }\n\n get innerHTML(): string {\n return this.#content.innerHTML;\n }\n\n set innerHTML(html: string) {\n this.#content.innerHTML = html;\n }\n\n appendChild<T extends Node>(child: T): T {\n return this.#content.appendChild(child);\n }\n\n append(...nodes: NodeInput[]): void {\n this.#content.append(...nodes);\n }\n\n prepend(...nodes: NodeInput[]): void {\n this.#content.prepend(...nodes);\n }\n\n insertBefore<T extends Node>(child: T, referenceNode: Node | null): T {\n return this.#content.insertBefore(child, referenceNode);\n }\n\n removeChild<T extends Node>(child: T): T {\n return this.#content.removeChild(child);\n }\n\n replaceChild<T extends Node>(newChild: Node, oldChild: T): T {\n return this.#content.replaceChild(newChild, oldChild);\n }\n\n replaceChildren(...nodes: NodeInput[]): void {\n this.#content.replaceChildren(...nodes);\n }\n}\n\nexport class HTMLInputElement extends HTMLElement {\n get accept(): string {\n return this.getAttribute(\"accept\") ?? \"\";\n }\n\n set accept(value: string) {\n this.setAttribute(\"accept\", String(value));\n }\n\n get files(): readonly unknown[] {\n return [];\n }\n\n get value(): string {\n return super.value;\n }\n\n set value(value: string) {\n super.value = value;\n }\n\n get checked(): boolean {\n return super.checked;\n }\n\n set checked(value: boolean) {\n super.checked = value;\n }\n\n get disabled(): boolean {\n return this.hasAttribute(\"disabled\");\n }\n\n set disabled(value: boolean) {\n toggleBooleanAttribute(this, \"disabled\", value);\n }\n\n get multiple(): boolean {\n return super.multiple;\n }\n\n set multiple(value: boolean) {\n super.multiple = value;\n }\n\n get required(): boolean {\n return this.hasAttribute(\"required\");\n }\n\n set required(value: boolean) {\n toggleBooleanAttribute(this, \"required\", value);\n }\n}\n\nexport class HTMLOptionElement extends HTMLElement {\n get disabled(): boolean {\n return this.hasAttribute(\"disabled\");\n }\n\n set disabled(value: boolean) {\n toggleBooleanAttribute(this, \"disabled\", value);\n }\n}\n\nexport class HTMLSelectElement extends HTMLElement {\n get value(): string {\n return super.value;\n }\n\n set value(value: string) {\n super.value = value;\n }\n\n get disabled(): boolean {\n return this.hasAttribute(\"disabled\");\n }\n\n set disabled(value: boolean) {\n toggleBooleanAttribute(this, \"disabled\", value);\n }\n\n get required(): boolean {\n return this.hasAttribute(\"required\");\n }\n\n set required(value: boolean) {\n toggleBooleanAttribute(this, \"required\", value);\n }\n}\n\nexport class HTMLStyleElement extends HTMLElement {\n #sheet: CSSStyleSheet | null = null;\n #sheetText = \"\";\n\n get disabled(): boolean {\n return this.hasAttribute(\"disabled\");\n }\n\n set disabled(value: boolean) {\n toggleBooleanAttribute(this, \"disabled\", value);\n }\n\n get media(): string {\n return this.getAttribute(\"media\") ?? \"\";\n }\n\n set media(value: string) {\n this.setAttribute(\"media\", String(value));\n }\n\n get type(): string {\n return this.getAttribute(\"type\") ?? \"\";\n }\n\n set type(value: string) {\n this.setAttribute(\"type\", String(value));\n }\n\n get sheet(): CSSStyleSheet | null {\n if (!this.isConnected) {\n return null;\n }\n this.#sheet ??= new CSSStyleSheet();\n const text = this.textContent;\n if (text !== this.#sheetText) {\n this.#sheet.replaceSync(text);\n this.#sheetText = text;\n }\n return this.#sheet;\n }\n}\n\nexport class HTMLTextAreaElement extends HTMLElement {\n get disabled(): boolean {\n return this.hasAttribute(\"disabled\");\n }\n\n set disabled(value: boolean) {\n toggleBooleanAttribute(this, \"disabled\", value);\n }\n\n get required(): boolean {\n return this.hasAttribute(\"required\");\n }\n\n set required(value: boolean) {\n toggleBooleanAttribute(this, \"required\", value);\n }\n}\n\nfunction toggleBooleanAttribute(element: Element, name: string, value: boolean): void {\n if (value) {\n element.setAttribute(name, \"\");\n } else {\n element.removeAttribute(name);\n }\n}\n\nfunction isValidNumberValue(value: string): boolean {\n return value.trim() !== \"\" && Number.isFinite(Number(value));\n}\n\nfunction isLabelableElement(element: Element): element is HTMLElement {\n if (!(element instanceof HTMLElement)) {\n return false;\n }\n if (element.localName === \"input\" && element.type.toLowerCase() === \"hidden\") {\n return false;\n }\n return [\"button\", \"meter\", \"output\", \"progress\", \"select\", \"textarea\", \"input\"].includes(\n element.localName\n );\n}\n\nfunction isDisabledFormElement(element: HTMLElement): boolean {\n return element.hasAttribute(\"disabled\");\n}\n\nfunction hasValidityState(element: Element): element is HTMLElement {\n return (\n element instanceof HTMLElement &&\n [\"button\", \"input\", \"select\", \"textarea\"].includes(element.localName)\n );\n}\n\nfunction isFormAssociatedElement(element: Element): element is HTMLElement {\n return (\n element instanceof HTMLElement &&\n [\"button\", \"fieldset\", \"input\", \"object\", \"output\", \"select\", \"textarea\"].includes(\n element.localName\n )\n );\n}\n\nfunction formDataEntryFor(element: HTMLElement): [string, string] | null {\n if (![\"input\", \"select\", \"textarea\"].includes(element.localName)) {\n return null;\n }\n if (isDisabledFormElement(element) || !element.name) {\n return null;\n }\n\n if (element.localName === \"input\") {\n const type = element.type.toLowerCase();\n if ([\"button\", \"file\", \"image\", \"reset\", \"submit\"].includes(type)) {\n return null;\n }\n if ((type === \"checkbox\" || type === \"radio\") && !element.checked) {\n return null;\n }\n if ((type === \"checkbox\" || type === \"radio\") && !element.hasAttribute(\"value\")) {\n return [element.name, \"on\"];\n }\n }\n\n return [element.name, element.value];\n}\n\nexport interface ShadowRootInit {\n delegatesFocus?: boolean;\n mode: \"open\" | \"closed\";\n}\n\nexport interface ScrollIntoViewOptions {\n behavior?: \"auto\" | \"instant\" | \"smooth\";\n block?: \"start\" | \"center\" | \"end\" | \"nearest\";\n inline?: \"start\" | \"center\" | \"end\" | \"nearest\";\n}\n\nfunction activeDocument(): Document {\n const candidate = (globalThis as { document?: unknown }).document;\n return candidate instanceof Document ? candidate : new Window().document;\n}\n\nexport class Text extends Node {\n constructor(document: Document, id: NodeId, nodeName?: string | null);\n constructor(data?: string);\n constructor(\n documentOrData: Document | string = \"\",\n id?: NodeId,\n nodeName: string | null = \"#text\"\n ) {\n if (documentOrData instanceof Document && id !== undefined) {\n super(documentOrData, id, nodeName);\n return;\n }\n const document = activeDocument();\n super(document, document._native.createTextNode(String(documentOrData ?? \"\")), \"#text\");\n }\n\n get data(): string {\n return this.nodeValue ?? \"\";\n }\n\n set data(value: string) {\n this.nodeValue = value;\n }\n}\n\nexport class Comment extends Node {\n constructor(document: Document, id: NodeId, nodeName?: string | null);\n constructor(data?: string);\n constructor(\n documentOrData: Document | string = \"\",\n id?: NodeId,\n nodeName: string | null = \"#comment\"\n ) {\n if (documentOrData instanceof Document && id !== undefined) {\n super(documentOrData, id, nodeName);\n return;\n }\n const document = activeDocument();\n super(document, document._native.createComment(String(documentOrData ?? \"\")), \"#comment\");\n }\n\n get data(): string {\n return this.nodeValue ?? \"\";\n }\n\n set data(value: string) {\n this.nodeValue = value;\n }\n}\n\nexport class DocumentType extends Node {\n constructor(document: Document, id: NodeId, nodeName: string | null = null) {\n super(document, id, nodeName);\n }\n\n get name(): string {\n return this._document._native.documentTypeName(this._id);\n }\n\n get publicId(): string {\n return this._document._native.documentTypePublicId(this._id);\n }\n\n get systemId(): string {\n return this._document._native.documentTypeSystemId(this._id);\n }\n\n get nodeType(): number {\n return Node.DOCUMENT_TYPE_NODE;\n }\n\n get nodeValue(): null {\n return null;\n }\n\n set nodeValue(_value: string | null) {}\n\n get textContent(): string {\n return \"\";\n }\n\n set textContent(_value: string) {}\n\n get outerHTML(): string {\n return this._document._native.serializeNode(this._id);\n }\n}\n\nexport class DocumentFragment extends Node {\n constructor(document?: Document, id?: NodeId, nodeName: string | null = \"#document-fragment\") {\n if (document instanceof Document && id !== undefined) {\n super(document, id, nodeName);\n return;\n }\n const active = activeDocument();\n super(active, active._native.createDocumentFragment(), \"#document-fragment\");\n }\n\n get children(): NativeNodeList<Element> {\n return new NativeNodeList(this._document, this._document._native.elementChildren(this._id));\n }\n\n get childElementCount(): number {\n return this._document._native.childElementCount(this._id);\n }\n\n get firstElementChild(): Element | null {\n const id = this._document._native.firstElementChild(this._id);\n return id == null ? null : (this._document._wrap(id) as Element);\n }\n\n get lastElementChild(): Element | null {\n const id = this._document._native.lastElementChild(this._id);\n return id == null ? null : (this._document._wrap(id) as Element);\n }\n\n get innerHTML(): string {\n return this._document._native.serializeChildren(this._id);\n }\n\n set innerHTML(html: string) {\n if (!hasMutationObservers()) {\n this._document._native.setInnerHtml(this._id, html);\n this._document._bumpMutationVersion();\n return;\n }\n while (this.firstChild) {\n this.removeChild(this.firstChild);\n }\n this.appendChild(fragmentFromHtml(this._document, html));\n }\n\n querySelector(selector: string): Element | null {\n const id = this._document._querySelector(this._id, selector);\n return id == null ? null : (this._document._wrap(id) as Element);\n }\n\n querySelectorAll(selector: string): NativeNodeList<Element> {\n return new NativeNodeList(this._document, this._document._querySelectorAll(this._id, selector));\n }\n\n getElementById(id: string): Element | null {\n const nativeId = this._document._native.elementById(this._id, String(id));\n return nativeId == null ? null : (this._document._wrap(nativeId) as Element);\n }\n}\n\nexport class ShadowRoot extends DocumentFragment {\n readonly delegatesFocus = false;\n readonly host: Element;\n readonly mode: \"open\" | \"closed\";\n\n constructor(document: Document, id: NodeId, host: Element, mode: \"open\" | \"closed\") {\n super(document, id, \"#document-fragment\");\n this.host = host;\n this.mode = mode;\n }\n}\n\nexport class TreeWalker {\n currentNode: Node;\n readonly root: Node;\n readonly whatToShow: number;\n readonly filter: NodeFilterCallback | null;\n readonly #document: Document;\n readonly #nodeIds: readonly NodeId[];\n #index = 0;\n\n constructor(\n root: Node,\n whatToShow: number = NodeFilter.SHOW_ALL,\n filter: NodeFilterCallback | null = null\n ) {\n this.root = root;\n this.currentNode = root;\n this.whatToShow = whatToShow;\n this.filter = filter;\n const order = nativeDocumentOrder(root);\n this.#document = order.document;\n this.#nodeIds = order.ids;\n }\n\n nextNode(): Node | null {\n for (let index = this.#index + 1; index < this.#nodeIds.length; index++) {\n const node = this.#document._wrap(this.#nodeIds[index]);\n if (this.#accepts(node)) {\n this.#index = index;\n this.currentNode = node;\n return node;\n }\n }\n return null;\n }\n\n previousNode(): Node | null {\n for (let index = this.#index - 1; index >= 0; index--) {\n const node = this.#document._wrap(this.#nodeIds[index]);\n if (this.#accepts(node)) {\n this.#index = index;\n this.currentNode = node;\n return node;\n }\n }\n return null;\n }\n\n #accepts(node: Node): boolean {\n if (!(this.whatToShow & nodeFilterMaskFor(node))) {\n return false;\n }\n if (!this.filter) {\n return true;\n }\n const result =\n typeof this.filter === \"function\" ? this.filter(node) : this.filter.acceptNode(node);\n return result === NodeFilter.FILTER_ACCEPT;\n }\n}\n\nexport class NodeIterator {\n readonly root: Node;\n readonly whatToShow: number;\n readonly filter: NodeFilterCallback | null;\n readonly #document: Document;\n readonly #nodeIds: readonly NodeId[];\n #index = -1;\n\n constructor(\n root: Node,\n whatToShow: number = NodeFilter.SHOW_ALL,\n filter: NodeFilterCallback | null = null\n ) {\n this.root = root;\n this.whatToShow = whatToShow;\n this.filter = filter;\n const order = nativeDocumentOrder(root);\n this.#document = order.document;\n this.#nodeIds = order.ids;\n }\n\n nextNode(): Node | null {\n for (let index = this.#index + 1; index < this.#nodeIds.length; index++) {\n const node = this.#document._wrap(this.#nodeIds[index]);\n if (this.#accepts(node)) {\n this.#index = index;\n return node;\n }\n }\n return null;\n }\n\n previousNode(): Node | null {\n for (let index = this.#index - 1; index >= 0; index--) {\n const node = this.#document._wrap(this.#nodeIds[index]);\n if (this.#accepts(node)) {\n this.#index = index;\n return node;\n }\n }\n return null;\n }\n\n detach(): void {}\n\n #accepts(node: Node): boolean {\n if (!(this.whatToShow & nodeFilterMaskFor(node))) {\n return false;\n }\n if (!this.filter) {\n return true;\n }\n const result =\n typeof this.filter === \"function\" ? this.filter(node) : this.filter.acceptNode(node);\n return result === NodeFilter.FILTER_ACCEPT;\n }\n}\n\nfunction nodeFilterMaskFor(node: Node): number {\n switch (node.nodeType) {\n case Node.ELEMENT_NODE:\n return NodeFilter.SHOW_ELEMENT;\n case Node.TEXT_NODE:\n return NodeFilter.SHOW_TEXT;\n case Node.COMMENT_NODE:\n return NodeFilter.SHOW_COMMENT;\n case Node.DOCUMENT_NODE:\n return NodeFilter.SHOW_DOCUMENT;\n case Node.DOCUMENT_TYPE_NODE:\n return NodeFilter.SHOW_DOCUMENT_TYPE;\n case Node.DOCUMENT_FRAGMENT_NODE:\n return NodeFilter.SHOW_DOCUMENT_FRAGMENT;\n default:\n return 0;\n }\n}\n\nexport class NativeNodeList<T extends Node = Node> {\n readonly #document: Document;\n readonly #ids: readonly NodeId[];\n\n constructor(document: Document, ids: readonly NodeId[]) {\n this.#document = document;\n this.#ids = ids;\n return new Proxy(this, {\n get(target, property): unknown {\n if (typeof property === \"string\" && isNodeListIndex(property, target.length)) {\n return target.item(Number(property));\n }\n const value = Reflect.get(target, property, target);\n return typeof value === \"function\" ? value.bind(target) : value;\n },\n getOwnPropertyDescriptor(target, property): PropertyDescriptor | undefined {\n if (typeof property === \"string\" && isNodeListIndex(property, target.length)) {\n return {\n configurable: true,\n enumerable: true,\n value: target.item(Number(property))\n };\n }\n return Reflect.getOwnPropertyDescriptor(target, property);\n },\n has(target, property): boolean {\n return (\n (typeof property === \"string\" && isNodeListIndex(property, target.length)) ||\n Reflect.has(target, property)\n );\n },\n ownKeys(target): ArrayLike<string | symbol> {\n return [\n ...Array.from({ length: target.length }, (_value, index) => String(index)),\n ...Reflect.ownKeys(target)\n ];\n }\n });\n }\n\n get length(): number {\n return this.#ids.length;\n }\n\n item(index: number): T | null {\n const id = this.#ids[index];\n return id == null ? null : (this.#document._wrap(id) as T);\n }\n\n forEach(callback: (value: T, index: number, list: NativeNodeList<T>) => void): void {\n for (let index = 0; index < this.length; index++) {\n const value = this.item(index);\n if (value) {\n callback(value, index, this);\n }\n }\n }\n\n [Symbol.iterator](): Iterator<T> {\n let index = 0;\n return {\n next: (): IteratorResult<T> => {\n const value = this.item(index++);\n return value == null ? { done: true, value: undefined } : { done: false, value };\n }\n };\n }\n}\n\nfunction isNodeListIndex(property: string, length: number): boolean {\n if (!/^(0|[1-9]\\d*)$/.test(property)) {\n return false;\n }\n const index = Number(property);\n return Number.isSafeInteger(index) && index >= 0 && index < length;\n}\n"],"mappings":"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"}