diff --git a/packages/dom-expressions/src/jsx.d.ts b/packages/dom-expressions/src/jsx.d.ts index e7f49478..295e3298 100644 --- a/packages/dom-expressions/src/jsx.d.ts +++ b/packages/dom-expressions/src/jsx.d.ts @@ -5,6 +5,15 @@ import * as csstype from "csstype"; * * https://github.com/adamhaile/surplus/blob/master/index.d.ts * https://github.com/infernojs/inferno/blob/master/packages/inferno/src/core/types.ts + * + * MathML typings coming mostly from Preact + * https://github.com/preactjs/preact/blob/07dc9f324e58569ce66634aa03fe8949b4190358/src/jsx.d.ts#L2575 + * + * Checked against other frameworks via the following table: + * https://potahtml.github.io/namespace-jsx-project/index.html + * + * Note: Typings must include attributes and not properties (unless the property is special-cased, + * such textContent, event handlers, etc). */ type DOMElement = Element; @@ -30,30 +39,29 @@ export namespace JSX { } interface BoundEventHandler< - T, - E extends Event, - EHandler extends EventHandler = EventHandler, + T, + E extends Event, + EHandler extends EventHandler = EventHandler > { - 0: ( - data: any, - ...e: Parameters, - ) => void; + 0: (data: any, ...e: Parameters) => void; 1: any; } type EventHandlerUnion< T, E extends Event, - EHandler extends EventHandler = EventHandler, + EHandler extends EventHandler = EventHandler > = EHandler | BoundEventHandler; interface EventHandlerWithOptions> - extends AddEventListenerOptions { + extends AddEventListenerOptions { handleEvent: EHandler; } - type EventHandlerWithOptionsUnion = EventHandler> = - | EHandler - | EventHandlerWithOptions; + type EventHandlerWithOptionsUnion< + T, + E extends Event, + EHandler extends EventHandler = EventHandler + > = EHandler | EventHandlerWithOptions; interface InputEventHandler { ( @@ -65,7 +73,11 @@ export namespace JSX { } ): void; } - type InputEventHandlerUnion = EventHandlerUnion>; + type InputEventHandlerUnion = EventHandlerUnion< + T, + E, + InputEventHandler + >; interface ChangeEventHandler { ( @@ -77,7 +89,11 @@ export namespace JSX { } ): void; } - type ChangeEventHandlerUnion = EventHandlerUnion>; + type ChangeEventHandlerUnion = EventHandlerUnion< + T, + E, + ChangeEventHandler + >; interface FocusEventHandler { ( @@ -89,7 +105,11 @@ export namespace JSX { } ): void; } - type FocusEventHandlerUnion = EventHandlerUnion>; + type FocusEventHandlerUnion = EventHandlerUnion< + T, + E, + FocusEventHandler + >; const SERIALIZABLE: unique symbol; interface SerializableAttributeValue { @@ -102,9 +122,11 @@ export namespace JSX { } interface CustomAttributes { ref?: T | ((el: T) => void) | undefined; - classList?: { - [k: string]: boolean | undefined; - } | undefined; + classList?: + | { + [k: string]: boolean | undefined; + } + | undefined; $ServerOnly?: boolean | undefined; } type Accessor = () => T; @@ -180,7 +202,7 @@ export namespace JSX { onCompositionUpdate?: EventHandlerUnion | undefined; onFocusOut?: FocusEventHandlerUnion | undefined; onFocusIn?: FocusEventHandlerUnion | undefined; - onEncrypted?: EventHandlerUnion | undefined; + onEncrypted?: EventHandlerUnion | undefined; onDragExit?: EventHandlerUnion | undefined; // lower case events oncopy?: EventHandlerUnion | undefined; @@ -191,7 +213,7 @@ export namespace JSX { oncompositionupdate?: EventHandlerUnion | undefined; onfocusout?: FocusEventHandlerUnion | undefined; onfocusin?: FocusEventHandlerUnion | undefined; - onencrypted?: EventHandlerUnion | undefined; + onencrypted?: EventHandlerUnion | undefined; ondragexit?: EventHandlerUnion | undefined; // lower case events "on:copy"?: EventHandlerWithOptionsUnion | undefined; @@ -201,14 +223,16 @@ export namespace JSX { "on:compositionstart"?: EventHandlerWithOptionsUnion | undefined; "on:compositionupdate"?: EventHandlerWithOptionsUnion | undefined; "on:focusout"?: - EventHandlerWithOptionsUnion> | undefined; + | EventHandlerWithOptionsUnion> + | undefined; "on:focusin"?: - EventHandlerWithOptionsUnion> | undefined; - "on:encrypted"?: EventHandlerWithOptionsUnion | undefined; + | EventHandlerWithOptionsUnion> + | undefined; + "on:encrypted"?: EventHandlerWithOptionsUnion | undefined; "on:dragexit"?: EventHandlerWithOptionsUnion | undefined; } interface CustomEventHandlersCamelCase { - onAbort?: EventHandlerUnion | undefined; + onAbort?: EventHandlerUnion | undefined; onAnimationEnd?: EventHandlerUnion | undefined; onAnimationIteration?: EventHandlerUnion | undefined; onAnimationStart?: EventHandlerUnion | undefined; @@ -232,7 +256,7 @@ export namespace JSX { onDurationChange?: EventHandlerUnion | undefined; onEmptied?: EventHandlerUnion | undefined; onEnded?: EventHandlerUnion | undefined; - onError?: EventHandlerUnion | undefined; + onError?: EventHandlerUnion | undefined; onFocus?: FocusEventHandlerUnion | undefined; onGotPointerCapture?: EventHandlerUnion | undefined; onInput?: InputEventHandlerUnion | undefined; @@ -290,7 +314,7 @@ export namespace JSX { } /** @type {GlobalEventHandlers} */ interface CustomEventHandlersLowerCase { - onabort?: EventHandlerUnion | undefined; + onabort?: EventHandlerUnion | undefined; onanimationend?: EventHandlerUnion | undefined; onanimationiteration?: EventHandlerUnion | undefined; onanimationstart?: EventHandlerUnion | undefined; @@ -314,7 +338,7 @@ export namespace JSX { ondurationchange?: EventHandlerUnion | undefined; onemptied?: EventHandlerUnion | undefined; onended?: EventHandlerUnion | undefined; - onerror?: EventHandlerUnion | undefined; + onerror?: EventHandlerUnion | undefined; onfocus?: FocusEventHandlerUnion | undefined; ongotpointercapture?: EventHandlerUnion | undefined; oninput?: InputEventHandlerUnion | undefined; @@ -371,16 +395,18 @@ export namespace JSX { onwheel?: EventHandlerUnion | undefined; } interface CustomEventHandlersNamespaced { - "on:abort"?: EventHandlerWithOptionsUnion | undefined; + "on:abort"?: EventHandlerWithOptionsUnion | undefined; "on:animationend"?: EventHandlerWithOptionsUnion | undefined; "on:animationiteration"?: EventHandlerWithOptionsUnion | undefined; "on:animationstart"?: EventHandlerWithOptionsUnion | undefined; "on:auxclick"?: EventHandlerWithOptionsUnion | undefined; "on:beforeinput"?: - EventHandlerWithOptionsUnion> | undefined; + | EventHandlerWithOptionsUnion> + | undefined; "on:beforetoggle"?: EventHandlerWithOptionsUnion | undefined; "on:blur"?: - EventHandlerWithOptionsUnion> | undefined; + | EventHandlerWithOptionsUnion> + | undefined; "on:canplay"?: EventHandlerWithOptionsUnion | undefined; "on:canplaythrough"?: EventHandlerWithOptionsUnion | undefined; "on:change"?: EventHandlerWithOptionsUnion> | undefined; @@ -397,12 +423,14 @@ export namespace JSX { "on:durationchange"?: EventHandlerWithOptionsUnion | undefined; "on:emptied"?: EventHandlerWithOptionsUnion | undefined; "on:ended"?: EventHandlerWithOptionsUnion | undefined; - "on:error"?: EventHandlerWithOptionsUnion | undefined; + "on:error"?: EventHandlerWithOptionsUnion | undefined; "on:focus"?: - EventHandlerWithOptionsUnion> | undefined; + | EventHandlerWithOptionsUnion> + | undefined; "on:gotpointercapture"?: EventHandlerWithOptionsUnion | undefined; "on:input"?: - EventHandlerWithOptionsUnion> | undefined; + | EventHandlerWithOptionsUnion> + | undefined; "on:invalid"?: EventHandlerWithOptionsUnion | undefined; "on:keydown"?: EventHandlerWithOptionsUnion | undefined; "on:keypress"?: EventHandlerWithOptionsUnion | undefined; @@ -870,61 +898,63 @@ export namespace JSX { interface HTMLAttributes extends AriaAttributes, DOMAttributes { // [key: ClassKeys]: boolean; - accessKey?: string | undefined; + about?: string | undefined; + accesskey?: string | undefined; + autocapitalize?: HTMLAutocapitalize | undefined; class?: string | undefined; - contenteditable?: boolean | "plaintext-only" | "inherit" | undefined; + color?: string | undefined; + contenteditable?: "true" | "false" | boolean | "plaintext-only" | "inherit" | undefined; contextmenu?: string | undefined; + datatype?: string | undefined; dir?: HTMLDir | undefined; draggable?: boolean | "false" | "true" | undefined; + exportparts?: string | undefined; hidden?: boolean | "hidden" | "until-found" | undefined; id?: string | undefined; + inert?: "true" | boolean | undefined; + inlist?: any | undefined; + inputmode?: + | "decimal" + | "email" + | "none" + | "numeric" + | "search" + | "tel" + | "text" + | "url" + | undefined; is?: string | undefined; - inert?: boolean | undefined; + itemid?: string | undefined; + itemprop?: string | undefined; + itemref?: string | undefined; + itemscope?: "true" | boolean | undefined; + itemtype?: string | undefined; lang?: string | undefined; - spellcheck?: boolean | undefined; - style?: CSSProperties | string | undefined; - tabindex?: number | string | undefined; - title?: string | undefined; - translate?: "yes" | "no" | undefined; - about?: string | undefined; - datatype?: string | undefined; - inlist?: any | undefined; + part?: string | undefined; popover?: boolean | "manual" | "auto" | undefined; prefix?: string | undefined; property?: string | undefined; resource?: string | undefined; + slot?: string | undefined; + spellcheck?: "true" | boolean | undefined; + style?: CSSProperties | string | undefined; + tabindex?: number | string | undefined; + title?: string | undefined; + translate?: "yes" | "no" | undefined; typeof?: string | undefined; vocab?: string | undefined; - autocapitalize?: HTMLAutocapitalize | undefined; - slot?: string | undefined; - color?: string | undefined; - itemprop?: string | undefined; - itemscope?: boolean | undefined; - itemtype?: string | undefined; - itemid?: string | undefined; - itemref?: string | undefined; - part?: string | undefined; - exportparts?: string | undefined; - inputmode?: - | "none" - | "text" - | "tel" - | "url" - | "email" - | "numeric" - | "decimal" - | "search" - | undefined; + + /** @deprecated Use lowercase attributes */ + accessKey?: string | undefined; + /** @deprecated Use lowercase attributes */ + autoCapitalize?: HTMLAutocapitalize | undefined; + /** @deprecated Use lowercase attributes */ contentEditable?: boolean | "plaintext-only" | "inherit" | undefined; + /** @deprecated Use lowercase attributes */ contextMenu?: string | undefined; - tabIndex?: number | string | undefined; - autoCapitalize?: HTMLAutocapitalize | undefined; - itemProp?: string | undefined; - itemScope?: boolean | undefined; - itemType?: string | undefined; - itemId?: string | undefined; - itemRef?: string | undefined; + /** @deprecated Use lowercase attributes */ exportParts?: string | undefined; + /** @deprecated Use lowercase attributes */ inputMode?: | "none" | "text" @@ -935,84 +965,169 @@ export namespace JSX { | "decimal" | "search" | undefined; + /** @deprecated Use lowercase attributes */ + itemId?: string | undefined; + /** @deprecated Use lowercase attributes */ + itemProp?: string | undefined; + /** @deprecated Use lowercase attributes */ + itemRef?: string | undefined; + /** @deprecated Use lowercase attributes */ + itemScope?: boolean | undefined; + /** @deprecated Use lowercase attributes */ + itemType?: string | undefined; + /** @deprecated Use lowercase attributes */ + tabIndex?: number | string | undefined; } interface AnchorHTMLAttributes extends HTMLAttributes { - download?: any | undefined; + download?: string | undefined; href?: string | undefined; hreflang?: string | undefined; - media?: string | undefined; ping?: string | undefined; referrerpolicy?: HTMLReferrerPolicy | undefined; rel?: string | undefined; - target?: string | undefined; + target?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | undefined; type?: string | undefined; + + /** @experimental */ + attributionsrc?: string | undefined; + + /** @deprecated Use lowercase attributes */ referrerPolicy?: HTMLReferrerPolicy | undefined; + + /** @deprecated */ + charset?: string | undefined; + /** @deprecated */ + coords?: string | undefined; + /** @deprecated */ + name?: string | undefined; + /** @deprecated */ + rev?: string | undefined; + /** @deprecated */ + shape?: "rect" | "circle" | "poly" | "default" | undefined; } interface AudioHTMLAttributes extends MediaHTMLAttributes {} interface AreaHTMLAttributes extends HTMLAttributes { alt?: string | undefined; coords?: string | undefined; - download?: any | undefined; + download?: string | undefined; href?: string | undefined; - hreflang?: string | undefined; ping?: string | undefined; referrerpolicy?: HTMLReferrerPolicy | undefined; rel?: string | undefined; shape?: "rect" | "circle" | "poly" | "default" | undefined; - target?: string | undefined; + target?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | undefined; + + /** @deprecated Use lowercase attributes */ referrerPolicy?: HTMLReferrerPolicy | undefined; + + /** @deprecated */ + nohref?: "true" | boolean | undefined; } interface BaseHTMLAttributes extends HTMLAttributes { href?: string | undefined; - target?: string | undefined; + target?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | undefined; } interface BlockquoteHTMLAttributes extends HTMLAttributes { cite?: string | undefined; } interface ButtonHTMLAttributes extends HTMLAttributes { - autofocus?: boolean | undefined; - disabled?: boolean | undefined; + autofocus?: "true" | boolean | undefined; + disabled?: "true" | boolean | undefined; form?: string | undefined; formaction?: string | SerializableAttributeValue | undefined; formenctype?: HTMLFormEncType | undefined; formmethod?: HTMLFormMethod | undefined; - formnovalidate?: boolean | undefined; - formtarget?: string | undefined; + formnovalidate?: "true" | boolean | undefined; + formtarget?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | undefined; popovertarget?: string | undefined; popovertargetaction?: "hide" | "show" | "toggle" | undefined; name?: string | undefined; - type?: "submit" | "reset" | "button" | undefined; + type?: "submit" | "reset" | "button" | "menu" | undefined; value?: string | undefined; + + /** @experimental */ + command?: + | "show-modal" + | "close" + | "show-popover" + | "hide-popover" + | "toggle-popover" + | (string & {}) + | undefined; + /** @experimental */ + commandfor?: string | undefined; + + /** @deprecated Use lowercase attributes */ formAction?: string | SerializableAttributeValue | undefined; + /** @deprecated Use lowercase attributes */ formEnctype?: HTMLFormEncType | undefined; + /** @deprecated Use lowercase attributes */ formMethod?: HTMLFormMethod | undefined; + /** @deprecated Use lowercase attributes */ formNoValidate?: boolean | undefined; + /** @deprecated Use lowercase attributes */ formTarget?: string | undefined; + /** @deprecated Use lowercase attributes */ popoverTarget?: string | undefined; + /** @deprecated Use lowercase attributes */ popoverTargetAction?: "hide" | "show" | "toggle" | undefined; } interface CanvasHTMLAttributes extends HTMLAttributes { width?: number | string | undefined; height?: number | string | undefined; + + /** + * @deprecated + * @non-standard + */ + "moz-opaque"?: "true" | boolean | undefined; } interface ColHTMLAttributes extends HTMLAttributes { span?: number | string | undefined; + + /** @deprecated */ + align?: "left" | "center" | "right" | "justify" | "char" | undefined; + /** @deprecated */ + bgcolor?: string | undefined; + /** @deprecated */ + char?: string | undefined; + /** @deprecated */ + charoff?: string | undefined; + /** @deprecated */ + valign?: "baseline" | "bottom" | "middle" | "top" | undefined; + /** @deprecated */ width?: number | string | undefined; } interface ColgroupHTMLAttributes extends HTMLAttributes { span?: number | string | undefined; + + /** @deprecated */ + align?: "left" | "center" | "right" | "justify" | "char" | undefined; + /** @deprecated */ + bgcolor?: string | undefined; + /** @deprecated */ + char?: string | undefined; + /** @deprecated */ + charoff?: string | undefined; + /** @deprecated */ + valign?: "baseline" | "bottom" | "middle" | "top" | undefined; + /** @deprecated */ + width?: number | string | undefined; } interface DataHTMLAttributes extends HTMLAttributes { value?: string | string[] | number | undefined; } interface DetailsHtmlAttributes extends HTMLAttributes { - open?: boolean | undefined; - onToggle?: EventHandlerUnion | undefined; - ontoggle?: EventHandlerUnion | undefined; + name?: string | undefined; + open?: "true" | boolean | undefined; } interface DialogHtmlAttributes extends HTMLAttributes { - open?: boolean | undefined; + open?: "true" | boolean | undefined; + tabindex?: never | undefined; + + onclose?: EventHandlerUnion | undefined; onClose?: EventHandlerUnion | undefined; + oncancel?: EventHandlerUnion | undefined; onCancel?: EventHandlerUnion | undefined; } interface EmbedHTMLAttributes extends HTMLAttributes { @@ -1020,27 +1135,38 @@ export namespace JSX { src?: string | undefined; type?: string | undefined; width?: number | string | undefined; + + /** @deprecated */ + align?: "left" | "right" | "justify" | "center" | undefined; + /** @deprecated */ + name?: string | undefined; } interface FieldsetHTMLAttributes extends HTMLAttributes { - disabled?: boolean | undefined; + disabled?: "true" | boolean | undefined; form?: string | undefined; name?: string | undefined; } interface FormHTMLAttributes extends HTMLAttributes { "accept-charset"?: string | undefined; action?: string | SerializableAttributeValue | undefined; - autocomplete?: string | undefined; + autocomplete?: "on" | "off" | undefined; encoding?: HTMLFormEncType | undefined; enctype?: HTMLFormEncType | undefined; method?: HTMLFormMethod | undefined; name?: string | undefined; - novalidate?: boolean | undefined; - target?: string | undefined; + novalidate?: "true" | boolean | undefined; + rel?: string | undefined; + target?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | undefined; + + /** @deprecated Use lowercase attributes */ noValidate?: boolean | undefined; + + /** @deprecated */ + accept?: string | undefined; } interface IframeHTMLAttributes extends HTMLAttributes { allow?: string | undefined; - allowfullscreen?: boolean | undefined; + allowfullscreen?: "true" | boolean | undefined; height?: number | string | undefined; loading?: "eager" | "lazy" | undefined; name?: string | undefined; @@ -1049,87 +1175,273 @@ export namespace JSX { src?: string | undefined; srcdoc?: string | undefined; width?: number | string | undefined; + + /** @deprecated Use lowercase attributes */ referrerPolicy?: HTMLReferrerPolicy | undefined; + + /** @experimental */ + adauctionheaders?: "true" | boolean | undefined; + /** + * @non-standard + * @experimental + */ + browsingtopics?: "true" | boolean | undefined; + /** @experimental */ + credentialless?: "true" | boolean | undefined; + /** @experimental */ + csp?: string | undefined; + /** @experimental */ + privatetoken?: string | undefined; + /** @experimental */ + sharedstoragewritable?: "true" | boolean | undefined; + + /** @deprecated */ + align?: string | undefined; + /** + * @deprecated + * @non-standard + */ + allowpaymentrequest?: "true" | boolean | undefined; + /** @deprecated */ + allowtransparency?: "true" | boolean | undefined; + /** @deprecated */ + frameborder?: number | string | undefined; + /** @deprecated */ + longdesc?: string | undefined; + /** @deprecated */ + marginheight?: number | string | undefined; + /** @deprecated */ + marginwidth?: number | string | undefined; + /** @deprecated */ + scrolling?: "yes" | "no" | "auto" | undefined; + /** @deprecated */ + seamless?: "true" | boolean | undefined; } interface ImgHTMLAttributes extends HTMLAttributes { alt?: string | undefined; crossorigin?: HTMLCrossorigin | undefined; decoding?: "sync" | "async" | "auto" | undefined; height?: number | string | undefined; - ismap?: boolean | undefined; - isMap?: boolean | undefined; + ismap?: "true" | boolean | undefined; loading?: "eager" | "lazy" | undefined; referrerpolicy?: HTMLReferrerPolicy | undefined; - referrerPolicy?: HTMLReferrerPolicy | undefined; sizes?: string | undefined; src?: string | undefined; srcset?: string | undefined; - srcSet?: string | undefined; usemap?: string | undefined; - useMap?: string | undefined; width?: number | string | undefined; - crossOrigin?: HTMLCrossorigin | undefined; elementtiming?: string | undefined; fetchpriority?: "high" | "low" | "auto" | undefined; + + /** @experimental */ + attributionsrc?: string | undefined; + /** @experimental */ + sharedstoragewritable?: "true" | boolean | undefined; + + /** @deprecated Use lowercase attributes */ + crossOrigin?: HTMLCrossorigin | undefined; + /** @deprecated Use lowercase attributes */ + isMap?: boolean | undefined; + /** @deprecated Use lowercase attributes */ + referrerPolicy?: HTMLReferrerPolicy | undefined; + /** @deprecated Use lowercase attributes */ + srcSet?: string | undefined; + /** @deprecated Use lowercase attributes */ + useMap?: string | undefined; + + /** @deprecated */ + align?: "top" | "middle" | "bottom" | "left" | "right" | undefined; + /** @deprecated */ + border?: string | undefined; + /** @deprecated */ + hspace?: number | string | undefined; + /** @deprecated */ + intrinsicsize?: string | undefined; + /** @deprecated */ + longdesc?: string | undefined; + /** @deprecated */ + lowsrc?: string | undefined; + /** @deprecated */ + name?: string | undefined; + /** @deprecated */ + vspace?: number | string | undefined; } interface InputHTMLAttributes extends HTMLAttributes { accept?: string | undefined; alt?: string | undefined; - autocomplete?: string | undefined; + autocomplete?: + | "additional-name" + | "address-level1" + | "address-level2" + | "address-level3" + | "address-level4" + | "address-line1" + | "address-line2" + | "address-line3" + | "bday" + | "bday-day" + | "bday-month" + | "bday-year" + | "billing" + | "cc-additional-name" + | "cc-csc" + | "cc-exp" + | "cc-exp-month" + | "cc-exp-year" + | "cc-family-name" + | "cc-given-name" + | "cc-name" + | "cc-number" + | "cc-type" + | "country" + | "country-name" + | "current-password" + | "email" + | "family-name" + | "fax" + | "given-name" + | "home" + | "honorific-prefix" + | "honorific-suffix" + | "impp" + | "language" + | "mobile" + | "name" + | "new-password" + | "nickname" + | "off" + | "on" + | "organization" + | "organization-title" + | "pager" + | "photo" + | "postal-code" + | "sex" + | "shipping" + | "street-address" + | "tel" + | "tel-area-code" + | "tel-country-code" + | "tel-extension" + | "tel-local" + | "tel-local-prefix" + | "tel-local-suffix" + | "tel-national" + | "transaction-amount" + | "transaction-currency" + | "url" + | "username" + | "work" + | (string & {}) + | undefined; autocorrect?: "on" | "off" | undefined; - autofocus?: boolean | undefined; - capture?: boolean | string | undefined; - checked?: boolean | undefined; + autofocus?: "true" | boolean | undefined; + capture?: "user" | "environment" | undefined; + checked?: "true" | boolean | undefined; crossorigin?: HTMLCrossorigin | undefined; - disabled?: boolean | undefined; + dirname?: string | undefined; + disabled?: "true" | boolean | undefined; enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined; form?: string | undefined; formaction?: string | SerializableAttributeValue | undefined; formenctype?: HTMLFormEncType | undefined; formmethod?: HTMLFormMethod | undefined; - formnovalidate?: boolean | undefined; + formnovalidate?: "true" | boolean | undefined; formtarget?: string | undefined; height?: number | string | undefined; - incremental?: boolean | undefined; list?: string | undefined; max?: number | string | undefined; maxlength?: number | string | undefined; min?: number | string | undefined; minlength?: number | string | undefined; - multiple?: boolean | undefined; + multiple?: "true" | boolean | undefined; name?: string | undefined; pattern?: string | undefined; placeholder?: string | undefined; - readonly?: boolean | undefined; + popovertarget?: string | undefined; + popovertargetaction?: "hide" | "show" | "toggle" | undefined; + readonly?: "true" | boolean | undefined; + required?: "true" | boolean | undefined; + // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search#results results?: number | undefined; - required?: boolean | undefined; size?: number | string | undefined; src?: string | undefined; step?: number | string | undefined; - type?: string | undefined; + type?: + | "button" + | "checkbox" + | "color" + | "date" + | "datetime-local" + | "email" + | "file" + | "hidden" + | "image" + | "month" + | "number" + | "password" + | "radio" + | "range" + | "reset" + | "search" + | "submit" + | "tel" + | "text" + | "time" + | "url" + | "week" + | undefined; value?: string | string[] | number | undefined; width?: number | string | undefined; + + /** @non-standard */ + incremental?: "true" | boolean | undefined; + + /** @deprecated Use lowercase attributes */ crossOrigin?: HTMLCrossorigin | undefined; + /** @deprecated Use lowercase attributes */ formAction?: string | SerializableAttributeValue | undefined; + /** @deprecated Use lowercase attributes */ formEnctype?: HTMLFormEncType | undefined; + /** @deprecated Use lowercase attributes */ formMethod?: HTMLFormMethod | undefined; + /** @deprecated Use lowercase attributes */ formNoValidate?: boolean | undefined; + /** @deprecated Use lowercase attributes */ formTarget?: string | undefined; + /** @deprecated Use lowercase attributes */ maxLength?: number | string | undefined; + /** @deprecated Use lowercase attributes */ minLength?: number | string | undefined; + /** @deprecated Use lowercase attributes */ readOnly?: boolean | undefined; + + /** @deprecated */ + align?: string | undefined; + /** @deprecated */ + usemap?: string | undefined; } - interface InsHTMLAttributes extends HTMLAttributes { + interface ModHTMLAttributes extends HTMLAttributes { cite?: string | undefined; + datetime?: string | undefined; + + /** @deprecated Use lowercase attributes */ dateTime?: string | undefined; } interface KeygenHTMLAttributes extends HTMLAttributes { - autofocus?: boolean | undefined; + /** @deprecated */ + autofocus?: "true" | boolean | undefined; + /** @deprecated */ challenge?: string | undefined; - disabled?: boolean | undefined; + /** @deprecated */ + disabled?: "true" | boolean | undefined; + /** @deprecated */ form?: string | undefined; - keytype?: string | undefined; + /** @deprecated */ keyparams?: string | undefined; + /** @deprecated */ + keytype?: string | undefined; + /** @deprecated */ name?: string | undefined; } interface LabelHTMLAttributes extends HTMLAttributes { @@ -1138,11 +1450,15 @@ export namespace JSX { } interface LiHTMLAttributes extends HTMLAttributes { value?: number | string | undefined; + + /** @deprecated */ + type?: "1" | "a" | "A" | "i" | "I" | undefined; } interface LinkHTMLAttributes extends HTMLAttributes { as?: HTMLLinkAs | undefined; + blocking?: "render" | undefined; crossorigin?: HTMLCrossorigin | undefined; - disabled?: boolean | undefined; + disabled?: "true" | boolean | undefined; fetchpriority?: "high" | "low" | "auto" | undefined; href?: string | undefined; hreflang?: string | undefined; @@ -1154,34 +1470,64 @@ export namespace JSX { rel?: string | undefined; sizes?: string | undefined; type?: string | undefined; + + /** @deprecated Use lowercase attributes */ crossOrigin?: HTMLCrossorigin | undefined; + /** @deprecated Use lowercase attributes */ referrerPolicy?: HTMLReferrerPolicy | undefined; + + /** @deprecated */ + charset?: string | undefined; + /** @deprecated */ + rev?: string | undefined; + /** @deprecated */ + target?: string | undefined; } interface MapHTMLAttributes extends HTMLAttributes { name?: string | undefined; } interface MediaHTMLAttributes extends HTMLAttributes { - autoplay?: boolean | undefined; - controls?: boolean | undefined; + autoplay?: "true" | boolean | undefined; + controls?: "true" | boolean | undefined; + controlslist?: string | undefined; crossorigin?: HTMLCrossorigin | undefined; - loop?: boolean | undefined; - mediagroup?: string | undefined; - muted?: boolean | undefined; + disableremoteplayback?: "true" | boolean | undefined; + loop?: "true" | boolean | undefined; + muted?: "true" | boolean | undefined; preload?: "none" | "metadata" | "auto" | "" | undefined; src?: string | undefined; + + /** @deprecated Use lowercase attributes */ crossOrigin?: HTMLCrossorigin | undefined; + + /** @deprecated Use lowercase attributes */ mediaGroup?: string | undefined; + /** @deprecated */ + mediagroup?: string | undefined; } interface MenuHTMLAttributes extends HTMLAttributes { + /** @deprecated */ + compact?: "true" | boolean | undefined; + /** @deprecated */ label?: string | undefined; + /** @deprecated */ type?: "context" | "toolbar" | undefined; } interface MetaHTMLAttributes extends HTMLAttributes { charset?: string | undefined; content?: string | undefined; - "http-equiv"?: string | undefined; + "http-equiv"?: + | "content-security-policy" + | "content-type" + | "default-style" + | "x-ua-compatible" + | "refresh" + | undefined; name?: string | undefined; media?: string | undefined; + + /** @deprecated */ + scheme?: string | undefined; } interface MeterHTMLAttributes extends HTMLAttributes { form?: string | undefined; @@ -1201,23 +1547,57 @@ export namespace JSX { height?: number | string | undefined; name?: string | undefined; type?: string | undefined; - usemap?: string | undefined; width?: number | string | undefined; + + /** @deprecated Use lowercase attributes */ useMap?: string | undefined; + + /** @deprecated */ + align?: string | undefined; + /** @deprecated */ + archive?: string | undefined; + /** @deprecated */ + border?: string | undefined; + /** @deprecated */ + classid?: string | undefined; + /** @deprecated */ + code?: string | undefined; + /** @deprecated */ + codebase?: string | undefined; + /** @deprecated */ + codetype?: string | undefined; + /** @deprecated */ + declare?: "true" | boolean | undefined; + /** @deprecated */ + hspace?: number | string | undefined; + /** @deprecated */ + standby?: string | undefined; + /** @deprecated */ + usemap?: string | undefined; + /** @deprecated */ + vspace?: number | string | undefined; + /** @deprecated */ + typemustmatch?: "true" | boolean | undefined; } interface OlHTMLAttributes extends HTMLAttributes { - reversed?: boolean | undefined; + reversed?: "true" | boolean | undefined; start?: number | string | undefined; type?: "1" | "a" | "A" | "i" | "I" | undefined; + + /** + * @deprecated + * @non-standard + */ + compact?: "true" | boolean | undefined; } interface OptgroupHTMLAttributes extends HTMLAttributes { - disabled?: boolean | undefined; + disabled?: "true" | boolean | undefined; label?: string | undefined; } interface OptionHTMLAttributes extends HTMLAttributes { - disabled?: boolean | undefined; + disabled?: "true" | boolean | undefined; label?: string | undefined; - selected?: boolean | undefined; + selected?: "true" | boolean | undefined; value?: string | string[] | number | undefined; } interface OutputHTMLAttributes extends HTMLAttributes { @@ -1226,40 +1606,61 @@ export namespace JSX { name?: string | undefined; } interface ParamHTMLAttributes extends HTMLAttributes { + /** @deprecated */ name?: string | undefined; - value?: string | string[] | number | undefined; + /** @deprecated */ + type?: string | undefined; + /** @deprecated */ + value?: string | number | undefined; + /** @deprecated */ + valuetype?: "data" | "ref" | "object" | undefined; } interface ProgressHTMLAttributes extends HTMLAttributes { max?: number | string | undefined; value?: string | string[] | number | undefined; } interface ScriptHTMLAttributes extends HTMLAttributes { - async?: boolean | undefined; - charset?: string | undefined; + async?: "true" | boolean | undefined; + blocking?: "render" | undefined; crossorigin?: HTMLCrossorigin | undefined; - defer?: boolean | undefined; + defer?: "true" | boolean | undefined; + fetchpriority?: "high" | "low" | "auto" | undefined; integrity?: string | undefined; - nomodule?: boolean | undefined; + nomodule?: "true" | boolean | undefined; nonce?: string | undefined; referrerpolicy?: HTMLReferrerPolicy | undefined; src?: string | undefined; - type?: string | undefined; + type?: "importmap" | "module" | "speculationrules" | (string & {}) | undefined; + + /** @experimental */ + attributionsrc?: string | undefined; + + /** @deprecated Use lowercase attributes */ crossOrigin?: HTMLCrossorigin | undefined; + /** @deprecated Use lowercase attributes */ noModule?: boolean | undefined; + /** @deprecated Use lowercase attributes */ referrerPolicy?: HTMLReferrerPolicy | undefined; + + /** @deprecated */ + charset?: string | undefined; + /** @deprecated */ + event?: string | undefined; + /** @deprecated */ + language?: string | undefined; } interface SelectHTMLAttributes extends HTMLAttributes { autocomplete?: string | undefined; - autofocus?: boolean | undefined; - disabled?: boolean | undefined; + autofocus?: "true" | boolean | undefined; + disabled?: "true" | boolean | undefined; form?: string | undefined; - multiple?: boolean | undefined; + multiple?: "true" | boolean | undefined; name?: string | undefined; - required?: boolean | undefined; + required?: "true" | boolean | undefined; size?: number | string | undefined; value?: string | string[] | number | undefined; } - interface HTMLSlotElementAttributes extends HTMLAttributes { + interface HTMLSlotElementAttributes extends HTMLAttributes { name?: string | undefined; } interface SourceHTMLAttributes extends HTMLAttributes { @@ -1272,68 +1673,246 @@ export namespace JSX { height?: number | string | undefined; } interface StyleHTMLAttributes extends HTMLAttributes { + blocking?: "render" | undefined; media?: string | undefined; nonce?: string | undefined; - scoped?: boolean | undefined; + + /** @deprecated */ + scoped?: "true" | boolean | undefined; + /** @deprecated */ type?: string | undefined; } interface TdHTMLAttributes extends HTMLAttributes { colspan?: number | string | undefined; headers?: string | undefined; rowspan?: number | string | undefined; + + /** @deprecated Use lowercase attributes */ colSpan?: number | string | undefined; + /** @deprecated Use lowercase attributes */ rowSpan?: number | string | undefined; + + /** @deprecated */ + abbr?: string | undefined; + /** @deprecated */ + align?: "left" | "center" | "right" | "justify" | "char" | undefined; + /** @deprecated */ + axis?: string | undefined; + /** @deprecated */ + bgcolor?: string | undefined; + /** @deprecated */ + char?: string | undefined; + /** @deprecated */ + charoff?: string | undefined; + /** @deprecated */ + height?: number | string | undefined; + /** @deprecated */ + nowrap?: "true" | boolean | undefined; + /** @deprecated */ + scope?: "col" | "row" | "rowgroup" | "colgroup" | undefined; + /** @deprecated */ + valign?: "baseline" | "bottom" | "middle" | "top" | undefined; + /** @deprecated */ + width?: number | string | undefined; } - interface TemplateHTMLAttributes extends HTMLAttributes { + interface TemplateHTMLAttributes extends HTMLAttributes { + shadowrootmode?: "open" | "closed" | undefined; + shadowrootclonable?: "true" | boolean | undefined; + shadowrootdelegatesfocus?: "true" | boolean | undefined; + + /** @experimental */ + shadowrootserializable?: "true" | boolean | undefined; + + /** @deprecated */ content?: DocumentFragment | undefined; } interface TextareaHTMLAttributes extends HTMLAttributes { - autocomplete?: string | undefined; - autofocus?: boolean | undefined; + autocomplete?: + | "additional-name" + | "address-level1" + | "address-level2" + | "address-level3" + | "address-level4" + | "address-line1" + | "address-line2" + | "address-line3" + | "bday" + | "bday-day" + | "bday-month" + | "bday-year" + | "billing" + | "cc-additional-name" + | "cc-csc" + | "cc-exp" + | "cc-exp-month" + | "cc-exp-year" + | "cc-family-name" + | "cc-given-name" + | "cc-name" + | "cc-number" + | "cc-type" + | "country" + | "country-name" + | "current-password" + | "email" + | "family-name" + | "fax" + | "given-name" + | "home" + | "honorific-prefix" + | "honorific-suffix" + | "impp" + | "language" + | "mobile" + | "name" + | "new-password" + | "nickname" + | "off" + | "on" + | "organization" + | "organization-title" + | "pager" + | "photo" + | "postal-code" + | "sex" + | "shipping" + | "street-address" + | "tel" + | "tel-area-code" + | "tel-country-code" + | "tel-extension" + | "tel-local" + | "tel-local-prefix" + | "tel-local-suffix" + | "tel-national" + | "transaction-amount" + | "transaction-currency" + | "url" + | "username" + | "work" + | (string & {}) + | undefined; + autocorrect?: "on" | "off" | undefined; + autofocus?: "true" | boolean | undefined; cols?: number | string | undefined; dirname?: string | undefined; - disabled?: boolean | undefined; + disabled?: "true" | boolean | undefined; enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined; form?: string | undefined; maxlength?: number | string | undefined; minlength?: number | string | undefined; name?: string | undefined; placeholder?: string | undefined; - readonly?: boolean | undefined; - required?: boolean | undefined; + readonly?: "true" | boolean | undefined; + required?: "true" | boolean | undefined; rows?: number | string | undefined; value?: string | string[] | number | undefined; wrap?: "hard" | "soft" | "off" | undefined; + + /** @deprecated Use lowercase attributes */ maxLength?: number | string | undefined; + /** @deprecated Use lowercase attributes */ minLength?: number | string | undefined; + /** @deprecated Use lowercase attributes */ readOnly?: boolean | undefined; } interface ThHTMLAttributes extends HTMLAttributes { + abbr?: string | undefined; colspan?: number | string | undefined; headers?: string | undefined; rowspan?: number | string | undefined; + scope?: "col" | "row" | "rowgroup" | "colgroup" | undefined; + + /** @deprecated Use lowercase attributes */ colSpan?: number | string | undefined; + /** @deprecated Use lowercase attributes */ rowSpan?: number | string | undefined; - scope?: "col" | "row" | "rowgroup" | "colgroup" | undefined; + + /** @deprecated */ + align?: "left" | "center" | "right" | "justify" | "char" | undefined; + /** @deprecated */ + axis?: string | undefined; + /** @deprecated */ + bgcolor?: string | undefined; + /** @deprecated */ + char?: string | undefined; + /** @deprecated */ + charoff?: string | undefined; + /** @deprecated */ + height?: string | undefined; + /** @deprecated */ + nowrap?: "true" | boolean | undefined; + /** @deprecated */ + valign?: "baseline" | "bottom" | "middle" | "top" | undefined; + /** @deprecated */ + width?: number | string | undefined; } interface TimeHTMLAttributes extends HTMLAttributes { datetime?: string | undefined; + + /** @deprecated Use lowercase attributes */ dateTime?: string | undefined; } interface TrackHTMLAttributes extends HTMLAttributes { - default?: boolean | undefined; - kind?: "subtitles" | "captions" | "descriptions" | "chapters" | "metadata" | undefined; + default?: "true" | boolean | undefined; + kind?: // MDN + | "alternative" + | "descriptions" + | "main" + | "main-desc" + | "translation" + | "commentary" + // ?? + | "subtitles" + | "captions" + | "chapters" + | "metadata" + | undefined; label?: string | undefined; src?: string | undefined; srclang?: string | undefined; + + /** @deprecated Use lowercase attributes */ + mediaGroup?: string | undefined; + /** @deprecated */ + mediagroup?: string | undefined; } interface VideoHTMLAttributes extends MediaHTMLAttributes { height?: number | string | undefined; - playsinline?: boolean | undefined; + playsinline?: "true" | boolean | undefined; poster?: string | undefined; width?: number | string | undefined; - disablepictureinpicture?: boolean; + disablepictureinpicture?: "true" | boolean | undefined; + } + + interface WebViewHTMLAttributes extends HTMLAttributes { + allowpopups?: "true" | boolean | undefined; + disableblinkfeatures?: string | undefined; + disablewebsecurity?: "true" | boolean | undefined; + enableblinkfeatures?: string | undefined; + httpreferrer?: string | undefined; + nodeintegration?: "true" | boolean | undefined; + nodeintegrationinsubframes?: "true" | boolean | undefined; + partition?: string | undefined; + plugins?: "true" | boolean | undefined; + preload?: string | undefined; + src?: string | undefined; + useragent?: string | undefined; + webpreferences?: string | undefined; + + // does this exists? + allowfullscreen?: "true" | boolean | undefined; + autofocus?: "true" | boolean | undefined; + autosize?: "true" | boolean | undefined; + + /** @deprecated */ + blinkfeatures?: string | undefined; + /** @deprecated */ + disableguestresize?: "true" | boolean | undefined; + /** @deprecated */ + guestinstance?: string | undefined; } + type SVGPreserveAspectRatio = | "none" | "xMinYMin" @@ -1397,8 +1976,10 @@ export namespace JSX { interface CoreSVGAttributes extends AriaAttributes, DOMAttributes { id?: string | undefined; lang?: string | undefined; - tabIndex?: number | string | undefined; tabindex?: number | string | undefined; + + /** @deprecated Use lowercase attributes */ + tabIndex?: number | string | undefined; } interface StylableSVGAttributes { class?: string | undefined; @@ -1685,6 +2266,10 @@ export namespace JSX { | "stroke-opacity" > {} interface ZoomAndPanSVGAttributes { + /** + * @deprecated + * @non-standard + */ zoomAndPan?: "disable" | "magnify" | undefined; } interface AnimateSVGAttributes @@ -2083,16 +2668,19 @@ export namespace JSX { FitToViewBoxSVGAttributes, ZoomAndPanSVGAttributes, PresentationSVGAttributes { - version?: string | undefined; - baseProfile?: string | undefined; - x?: number | string | undefined; - y?: number | string | undefined; - width?: number | string | undefined; - height?: number | string | undefined; + "xmlns:xlink"?: string | undefined; contentScriptType?: string | undefined; contentStyleType?: string | undefined; + height?: number | string | undefined; + width?: number | string | undefined; + x?: number | string | undefined; xmlns?: string | undefined; - "xmlns:xlink"?: string | undefined; + y?: number | string | undefined; + + /** @deprecated */ + baseProfile?: string | undefined; + /** @deprecated */ + version?: string | undefined; } interface SwitchSVGAttributes extends ContainerElementSVGAttributes, @@ -2185,190 +2773,1305 @@ export namespace JSX { ZoomAndPanSVGAttributes { viewTarget?: string | undefined; } - /** @type {HTMLElementTagNameMap} */ - interface HTMLElementTags { - a: AnchorHTMLAttributes; - abbr: HTMLAttributes; - address: HTMLAttributes; + + interface MathMLAttributes extends HTMLAttributes { + displaystyle?: "true" | boolean | undefined; + /** @deprecated */ + href?: string | undefined; + /** @deprecated */ + mathbackground?: string | undefined; + /** @deprecated */ + mathcolor?: string | undefined; + /** @deprecated */ + mathsize?: string | undefined; + nonce?: string | undefined; + scriptlevel?: string | undefined; + } + + interface MathMLAnnotationElementAttributes extends MathMLAttributes { + encoding?: string | undefined; + + /** @deprecated */ + src?: string | undefined; + } + interface MathMLAnnotationXmlElementAttributes extends MathMLAttributes { + encoding?: string | undefined; + + /** @deprecated */ + src?: string | undefined; + } + interface MathMLMactionElementAttributes extends MathMLAttributes { + /** + * @deprecated + * @non-standard + */ + actiontype?: "statusline" | "toggle" | undefined; + /** + * @deprecated + * @non-standard + */ + selection?: string | undefined; + } + interface MathMLMathElementAttributes extends MathMLAttributes { + display?: "block" | "inline" | undefined; + } + interface MathMLMerrorElementAttributes extends MathMLAttributes {} + interface MathMLMfracElementAttributes extends MathMLAttributes { + linethickness?: string | undefined; + + /** + * @deprecated + * @non-standard + */ + denomalign?: "center" | "left" | "right" | undefined; + /** + * @deprecated + * @non-standard + */ + numalign?: "center" | "left" | "right" | undefined; + } + interface MathMLMiElementAttributes extends MathMLAttributes { + mathvariant?: "normal" | undefined; + } + + interface MathMLMmultiscriptsElementAttributes extends MathMLAttributes { + /** + * @deprecated + * @non-standard + */ + subscriptshift?: string | undefined; + /** + * @deprecated + * @non-standard + */ + superscriptshift?: string | undefined; + } + interface MathMLMnElementAttributes extends MathMLAttributes {} + interface MathMLMoElementAttributes extends MathMLAttributes { + fence?: "true" | boolean | undefined; + form?: "prefix" | "infix" | "postfix" | undefined; + largeop?: "true" | boolean | undefined; + lspace?: string | undefined; + maxsize?: string | undefined; + minsize?: string | undefined; + movablelimits?: "true" | boolean | undefined; + rspace?: string | undefined; + separator?: "true" | boolean | undefined; + stretchy?: "true" | boolean | undefined; + symmetric?: "true" | boolean | undefined; + + /** @non-standard */ + accent?: "true" | boolean | undefined; + } + interface MathMLMoverElementAttributes extends MathMLAttributes { + accent?: "true" | boolean | undefined; + } + interface MathMLMpaddedElementAttributes extends MathMLAttributes { + depth?: string | undefined; + height?: string | undefined; + lspace?: string | undefined; + voffset?: string | undefined; + width?: string | undefined; + } + interface MathMLMphantomElementAttributes extends MathMLAttributes {} + interface MathMLMprescriptsElementAttributes extends MathMLAttributes {} + interface MathMLMrootElementAttributes extends MathMLAttributes {} + interface MathMLMrowElementAttributes extends MathMLAttributes {} + interface MathMLMsElementAttributes extends MathMLAttributes { + /** @deprecated */ + lquote?: string | undefined; + /** @deprecated */ + rquote?: string | undefined; + } + interface MathMLMspaceElementAttributes extends MathMLAttributes { + depth?: string | undefined; + height?: string | undefined; + width?: string | undefined; + } + interface MathMLMsqrtElementAttributes extends MathMLAttributes {} + interface MathMLMstyleElementAttributes extends MathMLAttributes { + /** + * @deprecated + * @non-standard + */ + background?: string | undefined; + /** + * @deprecated + * @non-standard + */ + color?: string | undefined; + /** + * @deprecated + * @non-standard + */ + fontsize?: string | undefined; + /** + * @deprecated + * @non-standard + */ + fontstyle?: string | undefined; + /** + * @deprecated + * @non-standard + */ + fontweight?: string | undefined; + + /** @deprecated */ + scriptminsize?: string | undefined; + /** @deprecated */ + scriptsizemultiplier?: string | undefined; + } + interface MathMLMsubElementAttributes extends MathMLAttributes { + /** + * @deprecated + * @non-standard + */ + subscriptshift?: string | undefined; + } + interface MathMLMsubsupElementAttributes extends MathMLAttributes { + /** + * @deprecated + * @non-standard + */ + subscriptshift?: string | undefined; + /** + * @deprecated + * @non-standard + */ + superscriptshift?: string | undefined; + } + interface MathMLMsupElementAttributes extends MathMLAttributes { + /** + * @deprecated + * @non-standard + */ + superscriptshift?: string | undefined; + } + interface MathMLMtableElementAttributes extends MathMLAttributes { + /** @non-standard */ + align?: "axis" | "baseline" | "bottom" | "center" | "top" | undefined; + /** @non-standard */ + columnalign?: "center" | "left" | "right" | undefined; + /** @non-standard */ + columnlines?: "dashed" | "none" | "solid" | undefined; + /** @non-standard */ + columnspacing?: string | undefined; + /** @non-standard */ + frame?: "dashed" | "none" | "solid" | undefined; + /** @non-standard */ + framespacing?: string | undefined; + /** @non-standard */ + rowalign?: "axis" | "baseline" | "bottom" | "center" | "top" | undefined; + /** @non-standard */ + rowlines?: "dashed" | "none" | "solid" | undefined; + /** @non-standard */ + rowspacing?: string | undefined; + /** @non-standard */ + width?: string | undefined; + } + interface MathMLMtdElementAttributes extends MathMLAttributes { + columnspan?: number | string | undefined; + rowspan?: number | string | undefined; + /** @non-standard */ + columnalign?: "center" | "left" | "right" | undefined; + /** @non-standard */ + rowalign?: "axis" | "baseline" | "bottom" | "center" | "top" | undefined; + } + interface MathMLMtextElementAttributes extends MathMLAttributes {} + interface MathMLMtrElementAttributes extends MathMLAttributes { + /** @non-standard */ + columnalign?: "center" | "left" | "right" | undefined; + /** @non-standard */ + rowalign?: "axis" | "baseline" | "bottom" | "center" | "top" | undefined; + } + interface MathMLMunderElementAttributes extends MathMLAttributes { + accentunder?: "true" | boolean | undefined; + } + interface MathMLMunderoverElementAttributes extends MathMLAttributes { + accent?: "true" | boolean | undefined; + accentunder?: "true" | boolean | undefined; + } + interface MathMLSemanticsElementAttributes extends MathMLAttributes {} + + /* MathMLDeprecatedElements */ + + interface MathMLMencloseElementAttributes extends MathMLAttributes { + /** @non-standard */ + notation?: string | undefined; + } + interface MathMLMfencedElementAttributes extends MathMLAttributes { + close?: string | undefined; + open?: string | undefined; + separators?: string | undefined; + } + + /** @type {HTMLElementTagNameMap} */ + interface HTMLElementTags { + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement + */ + a: AnchorHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/abbr + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ + abbr: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/address + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ + address: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/area + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement + */ area: AreaHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/article + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ article: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/aside + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ aside: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement + */ audio: AudioHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/b + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ b: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement + */ base: BaseHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bdi + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ bdi: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bdo + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ bdo: HTMLAttributes; - blockquote: BlockquoteHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLQuoteElement + */ + blockquote: BlockquoteHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/body + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement + */ body: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/br + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLBRElement + */ br: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement + */ button: ButtonHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement + */ canvas: CanvasHTMLAttributes; - caption: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCaptionElement + */ + caption: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/cite + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ cite: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/code + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ code: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement + */ col: ColHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement + */ colgroup: ColgroupHTMLAttributes; - data: DataHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/data + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataElement + */ + data: DataHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datalist + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataListElement + */ datalist: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dd + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ dd: HTMLAttributes; - del: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/del + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLModElement + */ + del: ModHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLDetailsElement + */ details: DetailsHtmlAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dfn + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ dfn: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement + */ dialog: DialogHtmlAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement + */ div: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dl + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLDListElement + */ dl: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dt + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ dt: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/em + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ em: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/embed + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement + */ embed: EmbedHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement + */ fieldset: FieldsetHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figcaption + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ figcaption: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figure + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ figure: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/footer + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ footer: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement + */ form: FormHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h1 + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadingElement + */ h1: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h2 + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadingElement + */ h2: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h3 + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadingElement + */ h3: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h4 + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadingElement + */ h4: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h5 + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadingElement + */ h5: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h6 + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadingElement + */ h6: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadElement + */ head: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/header + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ header: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hgroup + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ hgroup: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hr + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement + */ hr: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/html + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLHtmlElement + */ html: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/i + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ i: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement + */ iframe: IframeHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement + */ img: ImgHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement + */ input: InputHTMLAttributes; - ins: InsHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ins + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLModElement + */ + ins: ModHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/kbd + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ kbd: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement + */ label: LabelHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLLegendElement + */ legend: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLLIElement + */ li: LiHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement + */ link: LinkHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/main + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ main: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement + */ map: MapHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/mark + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ mark: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLMenuElement + */ menu: MenuHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement + */ meta: MetaHTMLAttributes; - meter: MeterHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meter + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement + */ + meter: MeterHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/nav + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ nav: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/noscript + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ noscript: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement + */ object: ObjectHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement + */ ol: OlHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptGroupElement + */ optgroup: OptgroupHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/option + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement + */ option: OptionHTMLAttributes; - output: OutputHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/output + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement + */ + output: OutputHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLParagraphElement + */ p: HTMLAttributes; - picture: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLPictureElement + */ + picture: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLPreElement + */ pre: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement + */ progress: ProgressHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLQuoteElement + */ q: QuoteHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rp + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ rp: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rt + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ rt: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ruby + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ ruby: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/s + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ s: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/samp + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ samp: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement + */ script: ScriptHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/search + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ search: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/section + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ section: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement + */ select: SelectHTMLAttributes; - slot: HTMLSlotElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement + */ + slot: HTMLSlotElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/small + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ small: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement + */ source: SourceHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/span + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLSpanElement + */ span: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/strong + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ strong: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/style + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement + */ style: StyleHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sub + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ sub: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/summary + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ summary: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sup + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ sup: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement + */ table: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement + */ tbody: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement + */ td: TdHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement + */ template: TemplateHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement + */ textarea: TextareaHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement + */ tfoot: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement + */ th: ThHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement + */ thead: HTMLAttributes; - time: TimeHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/time + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTimeElement + */ + time: TimeHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTitleElement + */ title: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement + */ tr: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement + */ track: TrackHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/u + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ u: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLUListElement + */ ul: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/var + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ var: HTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement + */ video: VideoHTMLAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/wbr + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ wbr: HTMLAttributes; + /** @url https://www.electronjs.org/docs/latest/api/webview-tag */ + webview: WebViewHTMLAttributes; } /** @type {HTMLElementDeprecatedTagNameMap} */ interface HTMLElementDeprecatedTags { + /** + * @deprecated + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/big + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement + */ big: HTMLAttributes; - keygen: KeygenHTMLAttributes; - menuitem: HTMLAttributes; - noindex: HTMLAttributes; + /** + * @deprecated + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/keygen + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLUnknownElement + */ + keygen: KeygenHTMLAttributes; + /** + * @deprecated + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menuitem + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLUnknownElement + */ + menuitem: HTMLAttributes; + /** + * @deprecated + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/xxxxx + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLUnknownElement + */ + noindex: HTMLAttributes; + /** + * @deprecated + * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/param + * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLParamElement + */ param: ParamHTMLAttributes; } /** @type {SVGElementTagNameMap} */ interface SVGElementTags { + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/animate + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateElement + */ animate: AnimateSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/animateMotion + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateMotionElement + */ animateMotion: AnimateMotionSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/animateTransform + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateTransformElement + */ animateTransform: AnimateTransformSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/circle + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement + */ circle: CircleSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/clipPath + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGClipPathElement + */ clipPath: ClipPathSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGDefsElement + */ defs: DefsSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/desc + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGDescElement + */ desc: DescSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/ellipse + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement + */ ellipse: EllipseSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feBlend + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement + */ feBlend: FeBlendSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feColorMatrix + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement + */ feColorMatrix: FeColorMatrixSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feComponentTransfer + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEComponentTransferElemen + */ feComponentTransfer: FeComponentTransferSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feComposite + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement + */ feComposite: FeCompositeSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feConvolveMatrix + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement + */ feConvolveMatrix: FeConvolveMatrixSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feDiffuseLighting + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement + */ feDiffuseLighting: FeDiffuseLightingSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feDisplacementMap + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement + */ feDisplacementMap: FeDisplacementMapSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feDistantLight + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDistantLightElement + */ feDistantLight: FeDistantLightSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feDropShadow + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement + */ feDropShadow: FeDropShadowSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFlood + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFloodElement + */ feFlood: FeFloodSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFuncA + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncAElement + */ feFuncA: FeFuncSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFuncB + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncBElement + */ feFuncB: FeFuncSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFuncG + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncGElement + */ feFuncG: FeFuncSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFuncR + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncRElement + */ feFuncR: FeFuncSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feGaussianBlur + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement + */ feGaussianBlur: FeGaussianBlurSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feImage + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEImageElement + */ feImage: FeImageSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feMerge + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMergeElement + */ feMerge: FeMergeSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feMergeNode + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMergeNodeElement + */ feMergeNode: FeMergeNodeSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feMorphology + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement + */ feMorphology: FeMorphologySVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feOffset + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement + */ feOffset: FeOffsetSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/fePointLight + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement + */ fePointLight: FePointLightSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feSpecularLighting + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement + */ feSpecularLighting: FeSpecularLightingSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feSpotLight + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement + */ feSpotLight: FeSpotLightSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feTile + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFETileElement + */ feTile: FeTileSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feTurbulence + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement + */ feTurbulence: FeTurbulanceSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/filter + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement + */ filter: FilterSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/foreignObject + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement + */ foreignObject: ForeignObjectSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/g + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGGElement + */ g: GSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/image + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement + */ image: ImageSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/line + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement + */ line: LineSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement + */ linearGradient: LinearGradientSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/marker + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement + */ marker: MarkerSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/mask + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement + */ mask: MaskSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/metadata + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGMetadataElement + */ metadata: MetadataSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/mpath + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGMPathElement + */ mpath: MPathSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/path + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement + */ path: PathSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/pattern + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement + */ pattern: PatternSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polygon + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGPolygonElement + */ polygon: PolygonSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polyline + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGPolylineElement + */ polyline: PolylineSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/radialGradient + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement + */ radialGradient: RadialGradientSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/rect + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement + */ rect: RectSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/set + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGSetElement + */ set: SetSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/stop + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGStopElement + */ stop: StopSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement + */ svg: SvgSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/switch + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGSwitchElement + */ switch: SwitchSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/symbol + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGSymbolElement + */ symbol: SymbolSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/text + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGTextElement + */ text: TextSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/textPath + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement + */ textPath: TextPathSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/tspan + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGTSpanElement + */ tspan: TSpanSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/use + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement + */ use: UseSVGAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/SVG/Element/view + * @url https://developer.mozilla.org/en-US/docs/Web/API/SVGViewElement + */ view: ViewSVGAttributes; } - interface IntrinsicElements extends HTMLElementTags, HTMLElementDeprecatedTags, SVGElementTags {} + + interface MathMLElementTags { + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/annotation + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + annotation: MathMLAnnotationElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/annotation-xml + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + "annotation-xml": MathMLAnnotationXmlElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/math + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + math: MathMLMathElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/merror + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + merror: MathMLMerrorElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mfrac + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mfrac: MathMLMfracElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mi + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mi: MathMLMiElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mmultiscripts + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mmultiscripts: MathMLMmultiscriptsElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mn + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mn: MathMLMnElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mo + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mo: MathMLMoElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mover + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mover: MathMLMoverElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mpadded + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mpadded: MathMLMpaddedElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mphantom + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mphantom: MathMLMphantomElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mprescripts + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mprescripts: MathMLMprescriptsElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mroot + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mroot: MathMLMrootElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mrow + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mrow: MathMLMrowElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/ms + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + ms: MathMLMsElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mspace + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mspace: MathMLMspaceElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/msqrt + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + msqrt: MathMLMsqrtElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mstyle + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mstyle: MathMLMstyleElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/msub + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + msub: MathMLMsubElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/msubsup + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + msubsup: MathMLMsubsupElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/msup + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + msup: MathMLMsupElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtable + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mtable: MathMLMtableElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtd + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mtd: MathMLMtdElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtext + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mtext: MathMLMtextElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtr + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mtr: MathMLMtrElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/munder + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + munder: MathMLMunderElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/munderover + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + munderover: MathMLMunderoverElementAttributes; + /** + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/semantics + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + semantics: MathMLSemanticsElementAttributes; + /** + * @non-standard + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/menclose + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + menclose: MathMLMencloseElementAttributes; + /** + * @deprecated + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/maction + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + maction: MathMLMactionElementAttributes; + /** + * @deprecated + * @non-standard + * @url https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mfenced + * @url https://developer.mozilla.org/en-US/docs/Web/API/MathMLElement + */ + mfenced: MathMLMfencedElementAttributes; + } + + interface IntrinsicElements + extends HTMLElementTags, + HTMLElementDeprecatedTags, + SVGElementTags, + MathMLElementTags {} }