import * as csstype from 'csstype'; /** * Based on JSX types for Surplus and Inferno and adapted for `dom-expressions`. * * https://github.com/adamhaile/surplus/blob/master/index.d.ts * https://github.com/infernojs/inferno/blob/master/packages/inferno/src/core/types.ts */ type DOMElement = Element; export namespace JSX { type Element = Node | ArrayElement | (string & {}) | number | boolean | null | undefined | any; interface ArrayElement extends Array {} interface ElementClass { // empty, libs can define requirements downstream } interface ElementAttributesProperty { // empty, libs can define requirements downstream } interface ElementChildrenAttribute { children: {}; } interface EventHandler { ( e: E & { currentTarget: T; target: DOMElement; }, ): void; } interface BoundEventHandler< T, E extends Event, EHandler extends EventHandler = EventHandler, > { 0: (data: any, ...e: Parameters) => void; 1: any; } type EventHandlerUnion< T, E extends Event, EHandler extends EventHandler = EventHandler, > = EHandler | BoundEventHandler; interface EventHandlerWithOptions< T, E extends Event, EHandler = EventHandler, > extends AddEventListenerOptions { handleEvent: EHandler; } type EventHandlerWithOptionsUnion< T, E extends Event, EHandler extends EventHandler = EventHandler, > = EHandler | EventHandlerWithOptions; interface InputEventHandler { ( e: E & { currentTarget: T; target: T extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement ? T : DOMElement; }, ): void; } type InputEventHandlerUnion = EventHandlerUnion< T, E, InputEventHandler >; interface ChangeEventHandler { ( e: E & { currentTarget: T; target: T extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement ? T : DOMElement; }, ): void; } type ChangeEventHandlerUnion = EventHandlerUnion< T, E, ChangeEventHandler >; interface FocusEventHandler { ( e: E & { currentTarget: T; target: T extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement ? T : DOMElement; }, ): void; } type FocusEventHandlerUnion = EventHandlerUnion< T, E, FocusEventHandler >; interface SerializableAttributeValue { toString(): string; } interface IntrinsicAttributes { ref?: unknown | ((e: unknown) => void) | undefined; [key: string]: any; } interface CustomAttributes { $ref?: any; key?: any; ref?: T | ((el: T) => void) | undefined; classList?: | { [k: string]: boolean | undefined; } | undefined; $ServerOnly?: boolean | undefined; } type Accessor = () => T; interface Directives {} interface DirectiveFunctions { [x: string]: (el: DOMElement, accessor: Accessor) => void; } interface ExplicitProperties {} interface ExplicitAttributes {} interface ExplicitBoolAttributes {} interface CustomEvents {} /** @deprecated Replaced by CustomEvents */ interface CustomCaptureEvents {} type DirectiveAttributes = { [Key in keyof Directives as `use:${Key}`]?: Directives[Key]; }; type DirectiveFunctionAttributes = { [K in keyof DirectiveFunctions as string extends K ? never : `use:${K}`]?: DirectiveFunctions[K] extends ( el: infer E, // will be unknown if not provided ...rest: infer R // use rest so that we can check whether it's provided or not ) => void ? T extends E // everything extends unknown if E is unknown ? R extends [infer A] // check if has accessor provided ? A extends Accessor ? V // it's an accessor : never // it isn't, type error : true // no accessor provided : never // T is the wrong element : never; // it isn't a function }; type PropAttributes = { [Key in keyof ExplicitProperties as `prop:${Key}`]?: ExplicitProperties[Key]; }; type AttrAttributes = { [Key in keyof ExplicitAttributes as `attr:${Key}`]?: ExplicitAttributes[Key]; }; type BoolAttributes = { [Key in keyof ExplicitBoolAttributes as `bool:${Key}`]?: ExplicitBoolAttributes[Key]; }; type OnAttributes = { [Key in keyof CustomEvents as `on:${Key}`]?: EventHandlerWithOptionsUnion; }; type OnCaptureAttributes = { [Key in keyof CustomCaptureEvents as `oncapture:${Key}`]?: EventHandler< T, CustomCaptureEvents[Key] >; }; interface DOMAttributes extends CustomAttributes, DirectiveAttributes, DirectiveFunctionAttributes, PropAttributes, AttrAttributes, BoolAttributes, OnAttributes, OnCaptureAttributes, CustomEventHandlersCamelCase, CustomEventHandlersLowerCase, CustomEventHandlersNamespaced { 'children'?: Element | undefined; 'innerHTML'?: string | undefined; 'innerText'?: string | number | undefined; 'textContent'?: string | number | undefined; // camel case events 'onCopy'?: EventHandlerUnion | undefined; 'onCut'?: EventHandlerUnion | undefined; 'onPaste'?: EventHandlerUnion | undefined; 'onCompositionEnd'?: EventHandlerUnion | undefined; 'onCompositionStart'?: EventHandlerUnion | undefined; 'onCompositionUpdate'?: EventHandlerUnion | undefined; 'onFocusOut'?: FocusEventHandlerUnion | undefined; 'onFocusIn'?: FocusEventHandlerUnion | undefined; 'onEncrypted'?: EventHandlerUnion | undefined; 'onDragExit'?: EventHandlerUnion | undefined; // lower case events 'oncopy'?: EventHandlerUnion | undefined; 'oncut'?: EventHandlerUnion | undefined; 'onpaste'?: EventHandlerUnion | undefined; 'oncompositionend'?: EventHandlerUnion | undefined; 'oncompositionstart'?: EventHandlerUnion | undefined; 'oncompositionupdate'?: EventHandlerUnion | undefined; 'onfocusout'?: FocusEventHandlerUnion | undefined; 'onfocusin'?: FocusEventHandlerUnion | undefined; 'onencrypted'?: EventHandlerUnion | undefined; 'ondragexit'?: EventHandlerUnion | undefined; // lower case events 'on:copy'?: EventHandlerWithOptionsUnion | undefined; 'on:cut'?: EventHandlerWithOptionsUnion | undefined; 'on:paste'?: EventHandlerWithOptionsUnion | undefined; 'on:compositionend'?: EventHandlerWithOptionsUnion | undefined; 'on:compositionstart'?: EventHandlerWithOptionsUnion | undefined; 'on:compositionupdate'?: EventHandlerWithOptionsUnion | undefined; 'on:focusout'?: | EventHandlerWithOptionsUnion> | undefined; 'on:focusin'?: | EventHandlerWithOptionsUnion> | undefined; 'on:encrypted'?: EventHandlerWithOptionsUnion | undefined; 'on:dragexit'?: EventHandlerWithOptionsUnion | undefined; } interface CustomEventHandlersCamelCase { onAbort?: EventHandlerUnion | undefined; onAnimationEnd?: EventHandlerUnion | undefined; onAnimationIteration?: EventHandlerUnion | undefined; onAnimationStart?: EventHandlerUnion | undefined; onAuxClick?: EventHandlerUnion | undefined; onBeforeInput?: InputEventHandlerUnion | undefined; onBeforeToggle?: EventHandlerUnion | undefined; onBlur?: FocusEventHandlerUnion | undefined; onCanPlay?: EventHandlerUnion | undefined; onCanPlayThrough?: EventHandlerUnion | undefined; onChange?: ChangeEventHandlerUnion | undefined; onClick?: EventHandlerUnion | undefined; onContextMenu?: EventHandlerUnion | undefined; onDblClick?: EventHandlerUnion | undefined; onDrag?: EventHandlerUnion | undefined; onDragEnd?: EventHandlerUnion | undefined; onDragEnter?: EventHandlerUnion | undefined; onDragLeave?: EventHandlerUnion | undefined; onDragOver?: EventHandlerUnion | undefined; onDragStart?: EventHandlerUnion | undefined; onDrop?: EventHandlerUnion | undefined; onDurationChange?: EventHandlerUnion | undefined; onEmptied?: EventHandlerUnion | undefined; onEnded?: EventHandlerUnion | undefined; onError?: EventHandlerUnion | undefined; onFocus?: FocusEventHandlerUnion | undefined; onGotPointerCapture?: EventHandlerUnion | undefined; onInput?: InputEventHandlerUnion | undefined; onInvalid?: EventHandlerUnion | undefined; onKeyDown?: EventHandlerUnion | undefined; onKeyPress?: EventHandlerUnion | undefined; onKeyUp?: EventHandlerUnion | undefined; onLoad?: EventHandlerUnion | undefined; onLoadedData?: EventHandlerUnion | undefined; onLoadedMetadata?: EventHandlerUnion | undefined; onLoadStart?: EventHandlerUnion | undefined; onLostPointerCapture?: EventHandlerUnion | undefined; onMouseDown?: EventHandlerUnion | undefined; onMouseEnter?: EventHandlerUnion | undefined; onMouseLeave?: EventHandlerUnion | undefined; onMouseMove?: EventHandlerUnion | undefined; onMouseOut?: EventHandlerUnion | undefined; onMouseOver?: EventHandlerUnion | undefined; onMouseUp?: EventHandlerUnion | undefined; onPause?: EventHandlerUnion | undefined; onPlay?: EventHandlerUnion | undefined; onPlaying?: EventHandlerUnion | undefined; onPointerCancel?: EventHandlerUnion | undefined; onPointerDown?: EventHandlerUnion | undefined; onPointerEnter?: EventHandlerUnion | undefined; onPointerLeave?: EventHandlerUnion | undefined; onPointerMove?: EventHandlerUnion | undefined; onPointerOut?: EventHandlerUnion | undefined; onPointerOver?: EventHandlerUnion | undefined; onPointerUp?: EventHandlerUnion | undefined; onProgress?: EventHandlerUnion | undefined; onRateChange?: EventHandlerUnion | undefined; onReset?: EventHandlerUnion | undefined; onScroll?: EventHandlerUnion | undefined; onScrollEnd?: EventHandlerUnion | undefined; onSeeked?: EventHandlerUnion | undefined; onSeeking?: EventHandlerUnion | undefined; onSelect?: EventHandlerUnion | undefined; onStalled?: EventHandlerUnion | undefined; onSubmit?: EventHandlerUnion | undefined; onSuspend?: EventHandlerUnion | undefined; onTimeUpdate?: EventHandlerUnion | undefined; onToggle?: EventHandlerUnion | undefined; onTouchCancel?: EventHandlerUnion | undefined; onTouchEnd?: EventHandlerUnion | undefined; onTouchMove?: EventHandlerUnion | undefined; onTouchStart?: EventHandlerUnion | undefined; onTransitionStart?: EventHandlerUnion | undefined; onTransitionEnd?: EventHandlerUnion | undefined; onTransitionRun?: EventHandlerUnion | undefined; onTransitionCancel?: EventHandlerUnion | undefined; onVolumeChange?: EventHandlerUnion | undefined; onWaiting?: EventHandlerUnion | undefined; onWheel?: EventHandlerUnion | undefined; } /** @type {GlobalEventHandlers} */ interface CustomEventHandlersLowerCase { onabort?: EventHandlerUnion | undefined; onanimationend?: EventHandlerUnion | undefined; onanimationiteration?: EventHandlerUnion | undefined; onanimationstart?: EventHandlerUnion | undefined; onauxclick?: EventHandlerUnion | undefined; onbeforeinput?: InputEventHandlerUnion | undefined; onbeforetoggle?: EventHandlerUnion | undefined; onblur?: FocusEventHandlerUnion | undefined; oncanplay?: EventHandlerUnion | undefined; oncanplaythrough?: EventHandlerUnion | undefined; onchange?: ChangeEventHandlerUnion | undefined; onclick?: EventHandlerUnion | undefined; oncontextmenu?: EventHandlerUnion | undefined; ondblclick?: EventHandlerUnion | undefined; ondrag?: EventHandlerUnion | undefined; ondragend?: EventHandlerUnion | undefined; ondragenter?: EventHandlerUnion | undefined; ondragleave?: EventHandlerUnion | undefined; ondragover?: EventHandlerUnion | undefined; ondragstart?: EventHandlerUnion | undefined; ondrop?: EventHandlerUnion | undefined; ondurationchange?: EventHandlerUnion | undefined; onemptied?: EventHandlerUnion | undefined; onended?: EventHandlerUnion | undefined; onerror?: EventHandlerUnion | undefined; onfocus?: FocusEventHandlerUnion | undefined; ongotpointercapture?: EventHandlerUnion | undefined; oninput?: InputEventHandlerUnion | undefined; oninvalid?: EventHandlerUnion | undefined; onkeydown?: EventHandlerUnion | undefined; onkeypress?: EventHandlerUnion | undefined; onkeyup?: EventHandlerUnion | undefined; onload?: EventHandlerUnion | undefined; onloadeddata?: EventHandlerUnion | undefined; onloadedmetadata?: EventHandlerUnion | undefined; onloadstart?: EventHandlerUnion | undefined; onlostpointercapture?: EventHandlerUnion | undefined; onmousedown?: EventHandlerUnion | undefined; onmouseenter?: EventHandlerUnion | undefined; onmouseleave?: EventHandlerUnion | undefined; onmousemove?: EventHandlerUnion | undefined; onmouseout?: EventHandlerUnion | undefined; onmouseover?: EventHandlerUnion | undefined; onmouseup?: EventHandlerUnion | undefined; onpause?: EventHandlerUnion | undefined; onplay?: EventHandlerUnion | undefined; onplaying?: EventHandlerUnion | undefined; onpointercancel?: EventHandlerUnion | undefined; onpointerdown?: EventHandlerUnion | undefined; onpointerenter?: EventHandlerUnion | undefined; onpointerleave?: EventHandlerUnion | undefined; onpointermove?: EventHandlerUnion | undefined; onpointerout?: EventHandlerUnion | undefined; onpointerover?: EventHandlerUnion | undefined; onpointerup?: EventHandlerUnion | undefined; onprogress?: EventHandlerUnion | undefined; onratechange?: EventHandlerUnion | undefined; onreset?: EventHandlerUnion | undefined; onscroll?: EventHandlerUnion | undefined; onscrollend?: EventHandlerUnion | undefined; onseeked?: EventHandlerUnion | undefined; onseeking?: EventHandlerUnion | undefined; onselect?: EventHandlerUnion | undefined; onstalled?: EventHandlerUnion | undefined; onsubmit?: EventHandlerUnion | undefined; onsuspend?: EventHandlerUnion | undefined; ontimeupdate?: EventHandlerUnion | undefined; ontoggle?: EventHandlerUnion | undefined; ontouchcancel?: EventHandlerUnion | undefined; ontouchend?: EventHandlerUnion | undefined; ontouchmove?: EventHandlerUnion | undefined; ontouchstart?: EventHandlerUnion | undefined; ontransitionstart?: EventHandlerUnion | undefined; ontransitionend?: EventHandlerUnion | undefined; ontransitionrun?: EventHandlerUnion | undefined; ontransitioncancel?: EventHandlerUnion | undefined; onvolumechange?: EventHandlerUnion | undefined; onwaiting?: EventHandlerUnion | undefined; onwheel?: EventHandlerUnion | undefined; } interface CustomEventHandlersNamespaced { 'on:abort'?: EventHandlerWithOptionsUnion | undefined; 'on:animationend'?: EventHandlerWithOptionsUnion | undefined; 'on:animationiteration'?: EventHandlerWithOptionsUnion | undefined; 'on:animationstart'?: EventHandlerWithOptionsUnion | undefined; 'on:auxclick'?: EventHandlerWithOptionsUnion | undefined; 'on:beforeinput'?: | EventHandlerWithOptionsUnion> | undefined; 'on:beforetoggle'?: EventHandlerWithOptionsUnion | undefined; 'on:blur'?: | EventHandlerWithOptionsUnion> | undefined; 'on:canplay'?: EventHandlerWithOptionsUnion | undefined; 'on:canplaythrough'?: EventHandlerWithOptionsUnion | undefined; 'on:change'?: EventHandlerWithOptionsUnion> | undefined; 'on:click'?: EventHandlerWithOptionsUnion | undefined; 'on:contextmenu'?: EventHandlerWithOptionsUnion | undefined; 'on:dblclick'?: EventHandlerWithOptionsUnion | undefined; 'on:drag'?: EventHandlerWithOptionsUnion | undefined; 'on:dragend'?: EventHandlerWithOptionsUnion | undefined; 'on:dragenter'?: EventHandlerWithOptionsUnion | undefined; 'on:dragleave'?: EventHandlerWithOptionsUnion | undefined; 'on:dragover'?: EventHandlerWithOptionsUnion | undefined; 'on:dragstart'?: EventHandlerWithOptionsUnion | undefined; 'on:drop'?: EventHandlerWithOptionsUnion | undefined; 'on:durationchange'?: EventHandlerWithOptionsUnion | undefined; 'on:emptied'?: EventHandlerWithOptionsUnion | undefined; 'on:ended'?: EventHandlerWithOptionsUnion | undefined; 'on:error'?: EventHandlerWithOptionsUnion | undefined; 'on:focus'?: | EventHandlerWithOptionsUnion> | undefined; 'on:gotpointercapture'?: EventHandlerWithOptionsUnion | undefined; 'on:input'?: | EventHandlerWithOptionsUnion> | undefined; 'on:invalid'?: EventHandlerWithOptionsUnion | undefined; 'on:keydown'?: EventHandlerWithOptionsUnion | undefined; 'on:keypress'?: EventHandlerWithOptionsUnion | undefined; 'on:keyup'?: EventHandlerWithOptionsUnion | undefined; 'on:load'?: EventHandlerWithOptionsUnion | undefined; 'on:loadeddata'?: EventHandlerWithOptionsUnion | undefined; 'on:loadedmetadata'?: EventHandlerWithOptionsUnion | undefined; 'on:loadstart'?: EventHandlerWithOptionsUnion | undefined; 'on:lostpointercapture'?: EventHandlerWithOptionsUnion | undefined; 'on:mousedown'?: EventHandlerWithOptionsUnion | undefined; 'on:mouseenter'?: EventHandlerWithOptionsUnion | undefined; 'on:mouseleave'?: EventHandlerWithOptionsUnion | undefined; 'on:mousemove'?: EventHandlerWithOptionsUnion | undefined; 'on:mouseout'?: EventHandlerWithOptionsUnion | undefined; 'on:mouseover'?: EventHandlerWithOptionsUnion | undefined; 'on:mouseup'?: EventHandlerWithOptionsUnion | undefined; 'on:pause'?: EventHandlerWithOptionsUnion | undefined; 'on:play'?: EventHandlerWithOptionsUnion | undefined; 'on:playing'?: EventHandlerWithOptionsUnion | undefined; 'on:pointercancel'?: EventHandlerWithOptionsUnion | undefined; 'on:pointerdown'?: EventHandlerWithOptionsUnion | undefined; 'on:pointerenter'?: EventHandlerWithOptionsUnion | undefined; 'on:pointerleave'?: EventHandlerWithOptionsUnion | undefined; 'on:pointermove'?: EventHandlerWithOptionsUnion | undefined; 'on:pointerout'?: EventHandlerWithOptionsUnion | undefined; 'on:pointerover'?: EventHandlerWithOptionsUnion | undefined; 'on:pointerup'?: EventHandlerWithOptionsUnion | undefined; 'on:progress'?: EventHandlerWithOptionsUnion | undefined; 'on:ratechange'?: EventHandlerWithOptionsUnion | undefined; 'on:reset'?: EventHandlerWithOptionsUnion | undefined; 'on:scroll'?: EventHandlerWithOptionsUnion | undefined; 'on:scrollend'?: EventHandlerWithOptionsUnion | undefined; 'on:seeked'?: EventHandlerWithOptionsUnion | undefined; 'on:seeking'?: EventHandlerWithOptionsUnion | undefined; 'on:select'?: EventHandlerWithOptionsUnion | undefined; 'on:stalled'?: EventHandlerWithOptionsUnion | undefined; 'on:submit'?: EventHandlerWithOptionsUnion | undefined; 'on:suspend'?: EventHandlerWithOptionsUnion | undefined; 'on:timeupdate'?: EventHandlerWithOptionsUnion | undefined; 'on:toggle'?: EventHandlerWithOptionsUnion | undefined; 'on:touchcancel'?: EventHandlerWithOptionsUnion | undefined; 'on:touchend'?: EventHandlerWithOptionsUnion | undefined; 'on:touchmove'?: EventHandlerWithOptionsUnion | undefined; 'on:touchstart'?: EventHandlerWithOptionsUnion | undefined; 'on:transitionstart'?: EventHandlerWithOptionsUnion | undefined; 'on:transitionend'?: EventHandlerWithOptionsUnion | undefined; 'on:transitionrun'?: EventHandlerWithOptionsUnion | undefined; 'on:transitioncancel'?: EventHandlerWithOptionsUnion | undefined; 'on:volumechange'?: EventHandlerWithOptionsUnion | undefined; 'on:waiting'?: EventHandlerWithOptionsUnion | undefined; 'on:wheel'?: EventHandlerWithOptionsUnion | undefined; } interface CSSProperties extends csstype.PropertiesHyphen { // Override [key: `-${string}`]: string | number | undefined; } type HTMLAutocapitalize = 'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'; type HTMLDir = 'ltr' | 'rtl' | 'auto'; type HTMLFormEncType = 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain'; type HTMLFormMethod = 'post' | 'get' | 'dialog'; type HTMLCrossorigin = 'anonymous' | 'use-credentials' | ''; type HTMLReferrerPolicy = | 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url'; type HTMLIframeSandbox = | 'allow-downloads-without-user-activation' | 'allow-downloads' | 'allow-forms' | 'allow-modals' | 'allow-orientation-lock' | 'allow-pointer-lock' | 'allow-popups' | 'allow-popups-to-escape-sandbox' | 'allow-presentation' | 'allow-same-origin' | 'allow-scripts' | 'allow-storage-access-by-user-activation' | 'allow-top-navigation' | 'allow-top-navigation-by-user-activation' | 'allow-top-navigation-to-custom-protocols'; type HTMLLinkAs = | 'audio' | 'document' | 'embed' | 'fetch' | 'font' | 'image' | 'object' | 'script' | 'style' | 'track' | 'video' | 'worker'; // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/ interface AriaAttributes { /** * Identifies the currently active element when DOM focus is on a composite widget, textbox, * group, or application. */ 'aria-activedescendant'?: string | undefined; /** * Indicates whether assistive technologies will present all, or only parts of, the changed * region based on the change notifications defined by the aria-relevant attribute. */ 'aria-atomic'?: boolean | 'false' | 'true' | undefined; /** * Indicates whether inputting text could trigger display of one or more predictions of the * user's intended value for an input and specifies how predictions would be presented if they * are made. */ 'aria-autocomplete'?: 'none' | 'inline' | 'list' | 'both' | undefined; /** * Indicates an element is being modified and that assistive technologies MAY want to wait until * the modifications are complete before exposing them to the user. */ 'aria-busy'?: boolean | 'false' | 'true' | undefined; /** * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets. * * @see aria-pressed @see aria-selected. */ 'aria-checked'?: boolean | 'false' | 'mixed' | 'true' | undefined; /** * Defines the total number of columns in a table, grid, or treegrid. * * @see aria-colindex. */ 'aria-colcount'?: number | string | undefined; /** * Defines an element's column index or position with respect to the total number of columns * within a table, grid, or treegrid. * * @see aria-colcount @see aria-colspan. */ 'aria-colindex'?: number | string | undefined; /** * Defines the number of columns spanned by a cell or gridcell within a table, grid, or * treegrid. * * @see aria-colindex @see aria-rowspan. */ 'aria-colspan'?: number | string | undefined; /** * Identifies the element (or elements) whose contents or presence are controlled by the current * element. * * @see aria-owns. */ 'aria-controls'?: string | undefined; /** * Indicates the element that represents the current item within a container or set of related * elements. */ 'aria-current'?: | boolean | 'false' | 'true' | 'page' | 'step' | 'location' | 'date' | 'time' | undefined; /** * Identifies the element (or elements) that describes the object. * * @see aria-labelledby */ 'aria-describedby'?: string | undefined; /** * Identifies the element that provides a detailed, extended description for the object. * * @see aria-describedby. */ 'aria-details'?: string | undefined; /** * Indicates that the element is perceivable but disabled, so it is not editable or otherwise * operable. * * @see aria-hidden @see aria-readonly. */ 'aria-disabled'?: boolean | 'false' | 'true' | undefined; /** * Indicates what functions can be performed when a dragged object is released on the drop * target. * * @deprecated In ARIA 1.1 */ 'aria-dropeffect'?: 'none' | 'copy' | 'execute' | 'link' | 'move' | 'popup' | undefined; /** * Identifies the element that provides an error message for the object. * * @see aria-invalid @see aria-describedby. */ 'aria-errormessage'?: string | undefined; /** * Indicates whether the element, or another grouping element it controls, is currently expanded * or collapsed. */ 'aria-expanded'?: boolean | 'false' | 'true' | undefined; /** * Identifies the next element (or elements) in an alternate reading order of content which, at * the user's discretion, allows assistive technology to override the general default of reading * in document source order. */ 'aria-flowto'?: string | undefined; /** * Indicates an element's "grabbed" state in a drag-and-drop operation. * * @deprecated In ARIA 1.1 */ 'aria-grabbed'?: boolean | 'false' | 'true' | undefined; /** * Indicates the availability and type of interactive popup element, such as menu or dialog, * that can be triggered by an element. */ 'aria-haspopup'?: | boolean | 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog' | undefined; /** * Indicates whether the element is exposed to an accessibility API. * * @see aria-disabled. */ 'aria-hidden'?: boolean | 'false' | 'true' | undefined; /** * Indicates the entered value does not conform to the format expected by the application. * * @see aria-errormessage. */ 'aria-invalid'?: boolean | 'false' | 'true' | 'grammar' | 'spelling' | undefined; /** * Indicates keyboard shortcuts that an author has implemented to activate or give focus to an * element. */ 'aria-keyshortcuts'?: string | undefined; /** * Defines a string value that labels the current element. * * @see aria-labelledby. */ 'aria-label'?: string | undefined; /** * Identifies the element (or elements) that labels the current element. * * @see aria-describedby. */ 'aria-labelledby'?: string | undefined; /** Defines the hierarchical level of an element within a structure. */ 'aria-level'?: number | string | undefined; /** * Indicates that an element will be updated, and describes the types of updates the user * agents, assistive technologies, and user can expect from the live region. */ 'aria-live'?: 'off' | 'assertive' | 'polite' | undefined; /** Indicates whether an element is modal when displayed. */ 'aria-modal'?: boolean | 'false' | 'true' | undefined; /** Indicates whether a text box accepts multiple lines of input or only a single line. */ 'aria-multiline'?: boolean | 'false' | 'true' | undefined; /** * Indicates that the user may select more than one item from the current selectable * descendants. */ 'aria-multiselectable'?: boolean | 'false' | 'true' | undefined; /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */ 'aria-orientation'?: 'horizontal' | 'vertical' | undefined; /** * Identifies an element (or elements) in order to define a visual, functional, or contextual * parent/child relationship between DOM elements where the DOM hierarchy cannot be used to * represent the relationship. * * @see aria-controls. */ 'aria-owns'?: string | undefined; /** * Defines a short hint (a word or short phrase) intended to aid the user with data entry when * the control has no value. A hint could be a sample value or a brief description of the * expected format. */ 'aria-placeholder'?: string | undefined; /** * Defines an element's number or position in the current set of listitems or treeitems. Not * required if all elements in the set are present in the DOM. * * @see aria-setsize. */ 'aria-posinset'?: number | string | undefined; /** * Indicates the current "pressed" state of toggle buttons. * * @see aria-checked @see aria-selected. */ 'aria-pressed'?: boolean | 'false' | 'mixed' | 'true' | undefined; /** * Indicates that the element is not editable, but is otherwise operable. * * @see aria-disabled. */ 'aria-readonly'?: boolean | 'false' | 'true' | undefined; /** * Indicates what notifications the user agent will trigger when the accessibility tree within a * live region is modified. * * @see aria-atomic. */ 'aria-relevant'?: | 'additions' | 'additions removals' | 'additions text' | 'all' | 'removals' | 'removals additions' | 'removals text' | 'text' | 'text additions' | 'text removals' | undefined; /** Indicates that user input is required on the element before a form may be submitted. */ 'aria-required'?: boolean | 'false' | 'true' | undefined; /** Defines a human-readable, author-localized description for the role of an element. */ 'aria-roledescription'?: string | undefined; /** * Defines the total number of rows in a table, grid, or treegrid. * * @see aria-rowindex. */ 'aria-rowcount'?: number | string | undefined; /** * Defines an element's row index or position with respect to the total number of rows within a * table, grid, or treegrid. * * @see aria-rowcount @see aria-rowspan. */ 'aria-rowindex'?: number | string | undefined; /** * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid. * * @see aria-rowindex @see aria-colspan. */ 'aria-rowspan'?: number | string | undefined; /** * Indicates the current "selected" state of various widgets. * * @see aria-checked @see aria-pressed. */ 'aria-selected'?: boolean | 'false' | 'true' | undefined; /** * Defines the number of items in the current set of listitems or treeitems. Not required if all * elements in the set are present in the DOM. * * @see aria-posinset. */ 'aria-setsize'?: number | string | undefined; /** Indicates if items in a table or grid are sorted in ascending or descending order. */ 'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other' | undefined; /** Defines the maximum allowed value for a range widget. */ 'aria-valuemax'?: number | string | undefined; /** Defines the minimum allowed value for a range widget. */ 'aria-valuemin'?: number | string | undefined; /** * Defines the current value for a range widget. * * @see aria-valuetext. */ 'aria-valuenow'?: number | string | undefined; /** Defines the human readable text alternative of aria-valuenow for a range widget. */ 'aria-valuetext'?: string | undefined; 'role'?: | 'alert' | 'alertdialog' | 'application' | 'article' | 'banner' | 'button' | 'cell' | 'checkbox' | 'columnheader' | 'combobox' | 'complementary' | 'contentinfo' | 'definition' | 'dialog' | 'directory' | 'document' | 'feed' | 'figure' | 'form' | 'grid' | 'gridcell' | 'group' | 'heading' | 'img' | 'link' | 'list' | 'listbox' | 'listitem' | 'log' | 'main' | 'marquee' | 'math' | 'menu' | 'menubar' | 'menuitem' | 'menuitemcheckbox' | 'menuitemradio' | 'meter' | 'navigation' | 'none' | 'note' | 'option' | 'presentation' | 'progressbar' | 'radio' | 'radiogroup' | 'region' | 'row' | 'rowgroup' | 'rowheader' | 'scrollbar' | 'search' | 'searchbox' | 'separator' | 'slider' | 'spinbutton' | 'status' | 'switch' | 'tab' | 'table' | 'tablist' | 'tabpanel' | 'term' | 'textbox' | 'timer' | 'toolbar' | 'tooltip' | 'tree' | 'treegrid' | 'treeitem' | undefined; } // TODO: Should we allow this? // type ClassKeys = `class:${string}`; // type CSSKeys = Exclude; // type CSSAttributes = { // [key in CSSKeys as `style:${key}`]: csstype.PropertiesHyphen[key]; // }; interface HTMLAttributes extends AriaAttributes, DOMAttributes { // [key: ClassKeys]: boolean; accessKey?: string | undefined; class?: string | undefined; contenteditable?: boolean | 'plaintext-only' | 'inherit' | undefined; contextmenu?: string | undefined; dir?: HTMLDir | undefined; draggable?: boolean | 'false' | 'true' | undefined; hidden?: boolean | 'hidden' | 'until-found' | undefined; id?: string | undefined; is?: string | undefined; inert?: boolean | 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; popover?: boolean | 'manual' | 'auto' | undefined; prefix?: string | undefined; property?: string | undefined; resource?: string | 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; contentEditable?: boolean | 'plaintext-only' | 'inherit' | undefined; 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; exportParts?: string | undefined; inputMode?: | 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search' | undefined; } interface AnchorHTMLAttributes extends HTMLAttributes { download?: any | undefined; href?: string | undefined; hreflang?: string | undefined; media?: string | undefined; ping?: string | undefined; referrerpolicy?: HTMLReferrerPolicy | undefined; rel?: string | undefined; target?: string | undefined; type?: string | undefined; referrerPolicy?: HTMLReferrerPolicy | undefined; } interface AudioHTMLAttributes extends MediaHTMLAttributes {} interface AreaHTMLAttributes extends HTMLAttributes { alt?: string | undefined; coords?: string | undefined; download?: any | 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; referrerPolicy?: HTMLReferrerPolicy | undefined; } interface BaseHTMLAttributes extends HTMLAttributes { href?: string | undefined; target?: string | undefined; } interface BlockquoteHTMLAttributes extends HTMLAttributes { cite?: string | undefined; } interface ButtonHTMLAttributes extends HTMLAttributes { autofocus?: boolean | undefined; disabled?: boolean | undefined; form?: string | undefined; formaction?: string | SerializableAttributeValue | undefined; formenctype?: HTMLFormEncType | undefined; formmethod?: HTMLFormMethod | undefined; formnovalidate?: boolean | undefined; formtarget?: string | undefined; popovertarget?: string | undefined; popovertargetaction?: 'hide' | 'show' | 'toggle' | undefined; name?: string | undefined; type?: 'submit' | 'reset' | 'button' | undefined; value?: string | undefined; formAction?: string | SerializableAttributeValue | undefined; formEnctype?: HTMLFormEncType | undefined; formMethod?: HTMLFormMethod | undefined; formNoValidate?: boolean | undefined; formTarget?: string | undefined; popoverTarget?: string | undefined; popoverTargetAction?: 'hide' | 'show' | 'toggle' | undefined; } interface CanvasHTMLAttributes extends HTMLAttributes { width?: number | string | undefined; height?: number | string | undefined; } interface ColHTMLAttributes extends HTMLAttributes { span?: number | string | undefined; width?: number | string | undefined; } interface ColgroupHTMLAttributes extends HTMLAttributes { span?: 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; } interface DialogHtmlAttributes extends HTMLAttributes { open?: boolean | undefined; onClose?: EventHandlerUnion | undefined; onCancel?: EventHandlerUnion | undefined; } interface EmbedHTMLAttributes extends HTMLAttributes { height?: number | string | undefined; src?: string | undefined; type?: string | undefined; width?: number | string | undefined; } interface FieldsetHTMLAttributes extends HTMLAttributes { disabled?: boolean | undefined; form?: string | undefined; name?: string | undefined; } interface FormHTMLAttributes extends HTMLAttributes { 'accept-charset'?: string | undefined; 'action'?: string | SerializableAttributeValue | undefined; 'autocomplete'?: string | undefined; 'encoding'?: HTMLFormEncType | undefined; 'enctype'?: HTMLFormEncType | undefined; 'method'?: HTMLFormMethod | undefined; 'name'?: string | undefined; 'novalidate'?: boolean | undefined; 'target'?: string | undefined; 'noValidate'?: boolean | undefined; } interface IframeHTMLAttributes extends HTMLAttributes { allow?: string | undefined; allowfullscreen?: boolean | undefined; height?: number | string | undefined; loading?: 'eager' | 'lazy' | undefined; name?: string | undefined; referrerpolicy?: HTMLReferrerPolicy | undefined; sandbox?: HTMLIframeSandbox | string | undefined; src?: string | undefined; srcdoc?: string | undefined; width?: number | string | undefined; referrerPolicy?: HTMLReferrerPolicy | 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; 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; } interface InputHTMLAttributes extends HTMLAttributes { accept?: string | undefined; alt?: string | undefined; autocomplete?: string | undefined; autocorrect?: 'on' | 'off' | undefined; autofocus?: boolean | undefined; capture?: boolean | string | undefined; checked?: boolean | undefined; crossorigin?: HTMLCrossorigin | undefined; disabled?: 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; 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; name?: string | undefined; pattern?: string | undefined; placeholder?: string | undefined; readonly?: boolean | undefined; results?: number | undefined; required?: boolean | undefined; size?: number | string | undefined; src?: string | undefined; step?: number | string | undefined; type?: string | undefined; value?: string | string[] | number | undefined; width?: number | string | undefined; crossOrigin?: HTMLCrossorigin | undefined; formAction?: string | SerializableAttributeValue | undefined; formEnctype?: HTMLFormEncType | undefined; formMethod?: HTMLFormMethod | undefined; formNoValidate?: boolean | undefined; formTarget?: string | undefined; maxLength?: number | string | undefined; minLength?: number | string | undefined; readOnly?: boolean | undefined; } interface InsHTMLAttributes extends HTMLAttributes { cite?: string | undefined; dateTime?: string | undefined; } interface KeygenHTMLAttributes extends HTMLAttributes { autofocus?: boolean | undefined; challenge?: string | undefined; disabled?: boolean | undefined; form?: string | undefined; keytype?: string | undefined; keyparams?: string | undefined; name?: string | undefined; } interface LabelHTMLAttributes extends HTMLAttributes { for?: string | undefined; form?: string | undefined; } interface LiHTMLAttributes extends HTMLAttributes { value?: number | string | undefined; } interface LinkHTMLAttributes extends HTMLAttributes { as?: HTMLLinkAs | undefined; crossorigin?: HTMLCrossorigin | undefined; disabled?: boolean | undefined; fetchpriority?: 'high' | 'low' | 'auto' | undefined; href?: string | undefined; hreflang?: string | undefined; imagesizes?: string | undefined; imagesrcset?: string | undefined; integrity?: string | undefined; media?: string | undefined; referrerpolicy?: HTMLReferrerPolicy | undefined; rel?: string | undefined; sizes?: string | undefined; type?: string | undefined; crossOrigin?: HTMLCrossorigin | undefined; referrerPolicy?: HTMLReferrerPolicy | undefined; } interface MapHTMLAttributes extends HTMLAttributes { name?: string | undefined; } interface MediaHTMLAttributes extends HTMLAttributes { autoplay?: boolean | undefined; controls?: boolean | undefined; crossorigin?: HTMLCrossorigin | undefined; loop?: boolean | undefined; mediagroup?: string | undefined; muted?: boolean | undefined; preload?: 'none' | 'metadata' | 'auto' | '' | undefined; src?: string | undefined; crossOrigin?: HTMLCrossorigin | undefined; mediaGroup?: string | undefined; } interface MenuHTMLAttributes extends HTMLAttributes { label?: string | undefined; type?: 'context' | 'toolbar' | undefined; } interface MetaHTMLAttributes extends HTMLAttributes { 'charset'?: string | undefined; 'content'?: string | undefined; 'http-equiv'?: string | undefined; 'name'?: string | undefined; 'media'?: string | undefined; } interface MeterHTMLAttributes extends HTMLAttributes { form?: string | undefined; high?: number | string | undefined; low?: number | string | undefined; max?: number | string | undefined; min?: number | string | undefined; optimum?: number | string | undefined; value?: string | string[] | number | undefined; } interface QuoteHTMLAttributes extends HTMLAttributes { cite?: string | undefined; } interface ObjectHTMLAttributes extends HTMLAttributes { data?: string | undefined; form?: string | undefined; height?: number | string | undefined; name?: string | undefined; type?: string | undefined; usemap?: string | undefined; width?: number | string | undefined; useMap?: string | undefined; } interface OlHTMLAttributes extends HTMLAttributes { reversed?: boolean | undefined; start?: number | string | undefined; type?: '1' | 'a' | 'A' | 'i' | 'I' | undefined; } interface OptgroupHTMLAttributes extends HTMLAttributes { disabled?: boolean | undefined; label?: string | undefined; } interface OptionHTMLAttributes extends HTMLAttributes { disabled?: boolean | undefined; label?: string | undefined; selected?: boolean | undefined; value?: string | string[] | number | undefined; } interface OutputHTMLAttributes extends HTMLAttributes { form?: string | undefined; for?: string | undefined; name?: string | undefined; } interface ParamHTMLAttributes extends HTMLAttributes { name?: string | undefined; value?: string | string[] | number | undefined; } interface ProgressHTMLAttributes extends HTMLAttributes { max?: number | string | undefined; value?: string | string[] | number | undefined; } interface ScriptHTMLAttributes extends HTMLAttributes { async?: boolean | undefined; charset?: string | undefined; crossorigin?: HTMLCrossorigin | undefined; defer?: boolean | undefined; integrity?: string | undefined; nomodule?: boolean | undefined; nonce?: string | undefined; referrerpolicy?: HTMLReferrerPolicy | undefined; src?: string | undefined; type?: string | undefined; crossOrigin?: HTMLCrossorigin | undefined; noModule?: boolean | undefined; referrerPolicy?: HTMLReferrerPolicy | undefined; } interface SelectHTMLAttributes extends HTMLAttributes { autocomplete?: string | undefined; autofocus?: boolean | undefined; disabled?: boolean | undefined; form?: string | undefined; multiple?: boolean | undefined; name?: string | undefined; required?: boolean | undefined; size?: number | string | undefined; value?: string | string[] | number | undefined; } interface HTMLSlotElementAttributes extends HTMLAttributes { name?: string | undefined; } interface SourceHTMLAttributes extends HTMLAttributes { media?: string | undefined; sizes?: string | undefined; src?: string | undefined; srcset?: string | undefined; type?: string | undefined; width?: number | string | undefined; height?: number | string | undefined; } interface StyleHTMLAttributes extends HTMLAttributes { media?: string | undefined; nonce?: string | undefined; scoped?: boolean | undefined; type?: string | undefined; } interface TdHTMLAttributes extends HTMLAttributes { colspan?: number | string | undefined; headers?: string | undefined; rowspan?: number | string | undefined; colSpan?: number | string | undefined; rowSpan?: number | string | undefined; } interface TemplateHTMLAttributes extends HTMLAttributes { content?: DocumentFragment | undefined; } interface TextareaHTMLAttributes extends HTMLAttributes { autocomplete?: string | undefined; autofocus?: boolean | undefined; cols?: number | string | undefined; dirname?: string | undefined; disabled?: 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; rows?: number | string | undefined; value?: string | string[] | number | undefined; wrap?: 'hard' | 'soft' | 'off' | undefined; maxLength?: number | string | undefined; minLength?: number | string | undefined; readOnly?: boolean | undefined; } interface ThHTMLAttributes extends HTMLAttributes { colspan?: number | string | undefined; headers?: string | undefined; rowspan?: number | string | undefined; colSpan?: number | string | undefined; rowSpan?: number | string | undefined; scope?: 'col' | 'row' | 'rowgroup' | 'colgroup' | undefined; } interface TimeHTMLAttributes extends HTMLAttributes { datetime?: string | undefined; dateTime?: string | undefined; } interface TrackHTMLAttributes extends HTMLAttributes { default?: boolean | undefined; kind?: 'subtitles' | 'captions' | 'descriptions' | 'chapters' | 'metadata' | undefined; label?: string | undefined; src?: string | undefined; srclang?: string | undefined; } interface VideoHTMLAttributes extends MediaHTMLAttributes { height?: number | string | undefined; playsinline?: boolean | undefined; poster?: string | undefined; width?: number | string | undefined; disablepictureinpicture?: boolean; } type SVGPreserveAspectRatio = | 'none' | 'xMinYMin' | 'xMidYMin' | 'xMaxYMin' | 'xMinYMid' | 'xMidYMid' | 'xMaxYMid' | 'xMinYMax' | 'xMidYMax' | 'xMaxYMax' | 'xMinYMin meet' | 'xMidYMin meet' | 'xMaxYMin meet' | 'xMinYMid meet' | 'xMidYMid meet' | 'xMaxYMid meet' | 'xMinYMax meet' | 'xMidYMax meet' | 'xMaxYMax meet' | 'xMinYMin slice' | 'xMidYMin slice' | 'xMaxYMin slice' | 'xMinYMid slice' | 'xMidYMid slice' | 'xMaxYMid slice' | 'xMinYMax slice' | 'xMidYMax slice' | 'xMaxYMax slice'; type ImagePreserveAspectRatio = | SVGPreserveAspectRatio | 'defer none' | 'defer xMinYMin' | 'defer xMidYMin' | 'defer xMaxYMin' | 'defer xMinYMid' | 'defer xMidYMid' | 'defer xMaxYMid' | 'defer xMinYMax' | 'defer xMidYMax' | 'defer xMaxYMax' | 'defer xMinYMin meet' | 'defer xMidYMin meet' | 'defer xMaxYMin meet' | 'defer xMinYMid meet' | 'defer xMidYMid meet' | 'defer xMaxYMid meet' | 'defer xMinYMax meet' | 'defer xMidYMax meet' | 'defer xMaxYMax meet' | 'defer xMinYMin slice' | 'defer xMidYMin slice' | 'defer xMaxYMin slice' | 'defer xMinYMid slice' | 'defer xMidYMid slice' | 'defer xMaxYMid slice' | 'defer xMinYMax slice' | 'defer xMidYMax slice' | 'defer xMaxYMax slice'; type SVGUnits = 'userSpaceOnUse' | 'objectBoundingBox'; interface CoreSVGAttributes extends AriaAttributes, DOMAttributes { id?: string | undefined; lang?: string | undefined; tabIndex?: number | string | undefined; tabindex?: number | string | undefined; } interface StylableSVGAttributes { class?: string | undefined; style?: CSSProperties | string | undefined; } interface TransformableSVGAttributes { transform?: string | undefined; } interface ConditionalProcessingSVGAttributes { requiredExtensions?: string | undefined; requiredFeatures?: string | undefined; systemLanguage?: string | undefined; } interface ExternalResourceSVGAttributes { externalResourcesRequired?: 'true' | 'false' | undefined; } interface AnimationTimingSVGAttributes { begin?: string | undefined; dur?: string | undefined; end?: string | undefined; min?: string | undefined; max?: string | undefined; restart?: 'always' | 'whenNotActive' | 'never' | undefined; repeatCount?: number | 'indefinite' | undefined; repeatDur?: string | undefined; fill?: 'freeze' | 'remove' | undefined; } interface AnimationValueSVGAttributes { calcMode?: 'discrete' | 'linear' | 'paced' | 'spline' | undefined; values?: string | undefined; keyTimes?: string | undefined; keySplines?: string | undefined; from?: number | string | undefined; to?: number | string | undefined; by?: number | string | undefined; } interface AnimationAdditionSVGAttributes { attributeName?: string | undefined; additive?: 'replace' | 'sum' | undefined; accumulate?: 'none' | 'sum' | undefined; } interface AnimationAttributeTargetSVGAttributes { attributeName?: string | undefined; attributeType?: 'CSS' | 'XML' | 'auto' | undefined; } interface PresentationSVGAttributes { 'alignment-baseline'?: | 'auto' | 'baseline' | 'before-edge' | 'text-before-edge' | 'middle' | 'central' | 'after-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | 'inherit' | undefined; 'baseline-shift'?: number | string | undefined; 'clip'?: string | undefined; 'clip-path'?: string | undefined; 'clip-rule'?: 'nonzero' | 'evenodd' | 'inherit' | undefined; 'color'?: string | undefined; 'color-interpolation'?: 'auto' | 'sRGB' | 'linearRGB' | 'inherit' | undefined; 'color-interpolation-filters'?: 'auto' | 'sRGB' | 'linearRGB' | 'inherit' | undefined; 'color-profile'?: string | undefined; 'color-rendering'?: 'auto' | 'optimizeSpeed' | 'optimizeQuality' | 'inherit' | undefined; 'cursor'?: string | undefined; 'direction'?: 'ltr' | 'rtl' | 'inherit' | undefined; 'display'?: string | undefined; 'dominant-baseline'?: | 'auto' | 'text-bottom' | 'alphabetic' | 'ideographic' | 'middle' | 'central' | 'mathematical' | 'hanging' | 'text-top' | 'inherit' | undefined; 'enable-background'?: string | undefined; 'fill'?: string | undefined; 'fill-opacity'?: number | string | 'inherit' | undefined; 'fill-rule'?: 'nonzero' | 'evenodd' | 'inherit' | undefined; 'filter'?: string | undefined; 'flood-color'?: string | undefined; 'flood-opacity'?: number | string | 'inherit' | undefined; 'font-family'?: string | undefined; 'font-size'?: string | undefined; 'font-size-adjust'?: number | string | undefined; 'font-stretch'?: string | undefined; 'font-style'?: 'normal' | 'italic' | 'oblique' | 'inherit' | undefined; 'font-variant'?: string | undefined; 'font-weight'?: number | string | undefined; 'glyph-orientation-horizontal'?: string | undefined; 'glyph-orientation-vertical'?: string | undefined; 'image-rendering'?: 'auto' | 'optimizeQuality' | 'optimizeSpeed' | 'inherit' | undefined; 'kerning'?: string | undefined; 'letter-spacing'?: number | string | undefined; 'lighting-color'?: string | undefined; 'marker-end'?: string | undefined; 'marker-mid'?: string | undefined; 'marker-start'?: string | undefined; 'mask'?: string | undefined; 'opacity'?: number | string | 'inherit' | undefined; 'overflow'?: 'visible' | 'hidden' | 'scroll' | 'auto' | 'inherit' | undefined; 'pathLength'?: string | number | undefined; 'pointer-events'?: | 'bounding-box' | 'visiblePainted' | 'visibleFill' | 'visibleStroke' | 'visible' | 'painted' | 'color' | 'fill' | 'stroke' | 'all' | 'none' | 'inherit' | undefined; 'shape-rendering'?: | 'auto' | 'optimizeSpeed' | 'crispEdges' | 'geometricPrecision' | 'inherit' | undefined; 'stop-color'?: string | undefined; 'stop-opacity'?: number | string | 'inherit' | undefined; 'stroke'?: string | undefined; 'stroke-dasharray'?: string | undefined; 'stroke-dashoffset'?: number | string | undefined; 'stroke-linecap'?: 'butt' | 'round' | 'square' | 'inherit' | undefined; 'stroke-linejoin'?: 'arcs' | 'bevel' | 'miter' | 'miter-clip' | 'round' | 'inherit' | undefined; 'stroke-miterlimit'?: number | string | 'inherit' | undefined; 'stroke-opacity'?: number | string | 'inherit' | undefined; 'stroke-width'?: number | string | undefined; 'text-anchor'?: 'start' | 'middle' | 'end' | 'inherit' | undefined; 'text-decoration'?: | 'none' | 'underline' | 'overline' | 'line-through' | 'blink' | 'inherit' | undefined; 'text-rendering'?: | 'auto' | 'optimizeSpeed' | 'optimizeLegibility' | 'geometricPrecision' | 'inherit' | undefined; 'unicode-bidi'?: string | undefined; 'visibility'?: 'visible' | 'hidden' | 'collapse' | 'inherit' | undefined; 'word-spacing'?: number | string | undefined; 'writing-mode'?: 'lr-tb' | 'rl-tb' | 'tb-rl' | 'lr' | 'rl' | 'tb' | 'inherit' | undefined; } interface AnimationElementSVGAttributes extends CoreSVGAttributes, ExternalResourceSVGAttributes, ConditionalProcessingSVGAttributes {} interface ContainerElementSVGAttributes extends CoreSVGAttributes, ShapeElementSVGAttributes, Pick< PresentationSVGAttributes, | 'clip-path' | 'mask' | 'cursor' | 'opacity' | 'filter' | 'enable-background' | 'color-interpolation' | 'color-rendering' > {} interface FilterPrimitiveElementSVGAttributes extends CoreSVGAttributes, Pick { x?: number | string | undefined; y?: number | string | undefined; width?: number | string | undefined; height?: number | string | undefined; result?: string | undefined; } interface SingleInputFilterSVGAttributes { in?: string | undefined; } interface DoubleInputFilterSVGAttributes { in?: string | undefined; in2?: string | undefined; } interface FitToViewBoxSVGAttributes { viewBox?: string | undefined; preserveAspectRatio?: SVGPreserveAspectRatio | undefined; } interface GradientElementSVGAttributes extends CoreSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes { gradientUnits?: SVGUnits | undefined; gradientTransform?: string | undefined; spreadMethod?: 'pad' | 'reflect' | 'repeat' | undefined; href?: string | undefined; } interface GraphicsElementSVGAttributes extends CoreSVGAttributes, Pick< PresentationSVGAttributes, | 'clip-rule' | 'mask' | 'pointer-events' | 'cursor' | 'opacity' | 'filter' | 'display' | 'visibility' | 'color-interpolation' | 'color-rendering' > {} interface LightSourceElementSVGAttributes extends CoreSVGAttributes {} interface NewViewportSVGAttributes extends CoreSVGAttributes, Pick { viewBox?: string | undefined; } interface ShapeElementSVGAttributes extends CoreSVGAttributes, Pick< PresentationSVGAttributes, | 'color' | 'fill' | 'fill-rule' | 'fill-opacity' | 'stroke' | 'stroke-width' | 'stroke-linecap' | 'stroke-linejoin' | 'stroke-miterlimit' | 'stroke-dasharray' | 'stroke-dashoffset' | 'stroke-opacity' | 'shape-rendering' | 'pathLength' > {} interface TextContentElementSVGAttributes extends CoreSVGAttributes, Pick< PresentationSVGAttributes, | 'font-family' | 'font-style' | 'font-variant' | 'font-weight' | 'font-stretch' | 'font-size' | 'font-size-adjust' | 'kerning' | 'letter-spacing' | 'word-spacing' | 'text-decoration' | 'glyph-orientation-horizontal' | 'glyph-orientation-vertical' | 'direction' | 'unicode-bidi' | 'text-anchor' | 'dominant-baseline' | 'color' | 'fill' | 'fill-rule' | 'fill-opacity' | 'stroke' | 'stroke-width' | 'stroke-linecap' | 'stroke-linejoin' | 'stroke-miterlimit' | 'stroke-dasharray' | 'stroke-dashoffset' | 'stroke-opacity' > {} interface ZoomAndPanSVGAttributes { zoomAndPan?: 'disable' | 'magnify' | undefined; } interface AnimateSVGAttributes extends AnimationElementSVGAttributes, AnimationAttributeTargetSVGAttributes, AnimationTimingSVGAttributes, AnimationValueSVGAttributes, AnimationAdditionSVGAttributes, Pick {} interface AnimateMotionSVGAttributes extends AnimationElementSVGAttributes, AnimationTimingSVGAttributes, AnimationValueSVGAttributes, AnimationAdditionSVGAttributes { path?: string | undefined; keyPoints?: string | undefined; rotate?: number | string | 'auto' | 'auto-reverse' | undefined; origin?: 'default' | undefined; } interface AnimateTransformSVGAttributes extends AnimationElementSVGAttributes, AnimationAttributeTargetSVGAttributes, AnimationTimingSVGAttributes, AnimationValueSVGAttributes, AnimationAdditionSVGAttributes { type?: 'translate' | 'scale' | 'rotate' | 'skewX' | 'skewY' | undefined; } interface CircleSVGAttributes extends GraphicsElementSVGAttributes, ShapeElementSVGAttributes, ConditionalProcessingSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes { cx?: number | string | undefined; cy?: number | string | undefined; r?: number | string | undefined; } interface ClipPathSVGAttributes extends CoreSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick { clipPathUnits?: SVGUnits | undefined; } interface DefsSVGAttributes extends ContainerElementSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes {} interface DescSVGAttributes extends CoreSVGAttributes, StylableSVGAttributes {} interface EllipseSVGAttributes extends GraphicsElementSVGAttributes, ShapeElementSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes { cx?: number | string | undefined; cy?: number | string | undefined; rx?: number | string | undefined; ry?: number | string | undefined; } interface FeBlendSVGAttributes extends FilterPrimitiveElementSVGAttributes, DoubleInputFilterSVGAttributes, StylableSVGAttributes { mode?: 'normal' | 'multiply' | 'screen' | 'darken' | 'lighten' | undefined; } interface FeColorMatrixSVGAttributes extends FilterPrimitiveElementSVGAttributes, SingleInputFilterSVGAttributes, StylableSVGAttributes { type?: 'matrix' | 'saturate' | 'hueRotate' | 'luminanceToAlpha' | undefined; values?: string | undefined; } interface FeComponentTransferSVGAttributes extends FilterPrimitiveElementSVGAttributes, SingleInputFilterSVGAttributes, StylableSVGAttributes {} interface FeCompositeSVGAttributes extends FilterPrimitiveElementSVGAttributes, DoubleInputFilterSVGAttributes, StylableSVGAttributes { operator?: 'over' | 'in' | 'out' | 'atop' | 'xor' | 'arithmetic' | undefined; k1?: number | string | undefined; k2?: number | string | undefined; k3?: number | string | undefined; k4?: number | string | undefined; } interface FeConvolveMatrixSVGAttributes extends FilterPrimitiveElementSVGAttributes, SingleInputFilterSVGAttributes, StylableSVGAttributes { order?: number | string | undefined; kernelMatrix?: string | undefined; divisor?: number | string | undefined; bias?: number | string | undefined; targetX?: number | string | undefined; targetY?: number | string | undefined; edgeMode?: 'duplicate' | 'wrap' | 'none' | undefined; kernelUnitLength?: number | string | undefined; preserveAlpha?: 'true' | 'false' | undefined; } interface FeDiffuseLightingSVGAttributes extends FilterPrimitiveElementSVGAttributes, SingleInputFilterSVGAttributes, StylableSVGAttributes, Pick { surfaceScale?: number | string | undefined; diffuseConstant?: number | string | undefined; kernelUnitLength?: number | string | undefined; } interface FeDisplacementMapSVGAttributes extends FilterPrimitiveElementSVGAttributes, DoubleInputFilterSVGAttributes, StylableSVGAttributes { scale?: number | string | undefined; xChannelSelector?: 'R' | 'G' | 'B' | 'A' | undefined; yChannelSelector?: 'R' | 'G' | 'B' | 'A' | undefined; } interface FeDistantLightSVGAttributes extends LightSourceElementSVGAttributes { azimuth?: number | string | undefined; elevation?: number | string | undefined; } interface FeDropShadowSVGAttributes extends CoreSVGAttributes, FilterPrimitiveElementSVGAttributes, StylableSVGAttributes, Pick { dx?: number | string | undefined; dy?: number | string | undefined; stdDeviation?: number | string | undefined; } interface FeFloodSVGAttributes extends FilterPrimitiveElementSVGAttributes, StylableSVGAttributes, Pick {} interface FeFuncSVGAttributes extends CoreSVGAttributes { type?: 'identity' | 'table' | 'discrete' | 'linear' | 'gamma' | undefined; tableValues?: string | undefined; slope?: number | string | undefined; intercept?: number | string | undefined; amplitude?: number | string | undefined; exponent?: number | string | undefined; offset?: number | string | undefined; } interface FeGaussianBlurSVGAttributes extends FilterPrimitiveElementSVGAttributes, SingleInputFilterSVGAttributes, StylableSVGAttributes { stdDeviation?: number | string | undefined; } interface FeImageSVGAttributes extends FilterPrimitiveElementSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes { preserveAspectRatio?: SVGPreserveAspectRatio | undefined; href?: string | undefined; } interface FeMergeSVGAttributes extends FilterPrimitiveElementSVGAttributes, StylableSVGAttributes {} interface FeMergeNodeSVGAttributes extends CoreSVGAttributes, SingleInputFilterSVGAttributes {} interface FeMorphologySVGAttributes extends FilterPrimitiveElementSVGAttributes, SingleInputFilterSVGAttributes, StylableSVGAttributes { operator?: 'erode' | 'dilate' | undefined; radius?: number | string | undefined; } interface FeOffsetSVGAttributes extends FilterPrimitiveElementSVGAttributes, SingleInputFilterSVGAttributes, StylableSVGAttributes { dx?: number | string | undefined; dy?: number | string | undefined; } interface FePointLightSVGAttributes extends LightSourceElementSVGAttributes { x?: number | string | undefined; y?: number | string | undefined; z?: number | string | undefined; } interface FeSpecularLightingSVGAttributes extends FilterPrimitiveElementSVGAttributes, SingleInputFilterSVGAttributes, StylableSVGAttributes, Pick { surfaceScale?: string | undefined; specularConstant?: string | undefined; specularExponent?: string | undefined; kernelUnitLength?: number | string | undefined; } interface FeSpotLightSVGAttributes extends LightSourceElementSVGAttributes { x?: number | string | undefined; y?: number | string | undefined; z?: number | string | undefined; pointsAtX?: number | string | undefined; pointsAtY?: number | string | undefined; pointsAtZ?: number | string | undefined; specularExponent?: number | string | undefined; limitingConeAngle?: number | string | undefined; } interface FeTileSVGAttributes extends FilterPrimitiveElementSVGAttributes, SingleInputFilterSVGAttributes, StylableSVGAttributes {} interface FeTurbulanceSVGAttributes extends FilterPrimitiveElementSVGAttributes, StylableSVGAttributes { baseFrequency?: number | string | undefined; numOctaves?: number | string | undefined; seed?: number | string | undefined; stitchTiles?: 'stitch' | 'noStitch' | undefined; type?: 'fractalNoise' | 'turbulence' | undefined; } interface FilterSVGAttributes extends CoreSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes { filterUnits?: SVGUnits | undefined; primitiveUnits?: SVGUnits | undefined; x?: number | string | undefined; y?: number | string | undefined; width?: number | string | undefined; height?: number | string | undefined; filterRes?: number | string | undefined; } interface ForeignObjectSVGAttributes extends NewViewportSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick { x?: number | string | undefined; y?: number | string | undefined; width?: number | string | undefined; height?: number | string | undefined; } interface GSVGAttributes extends ContainerElementSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick {} interface ImageSVGAttributes extends NewViewportSVGAttributes, GraphicsElementSVGAttributes, ConditionalProcessingSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick { x?: number | string | undefined; y?: number | string | undefined; width?: number | string | undefined; height?: number | string | undefined; preserveAspectRatio?: ImagePreserveAspectRatio | undefined; href?: string | undefined; } interface LineSVGAttributes extends GraphicsElementSVGAttributes, ShapeElementSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick { x1?: number | string | undefined; y1?: number | string | undefined; x2?: number | string | undefined; y2?: number | string | undefined; } interface LinearGradientSVGAttributes extends GradientElementSVGAttributes { x1?: number | string | undefined; x2?: number | string | undefined; y1?: number | string | undefined; y2?: number | string | undefined; } interface MarkerSVGAttributes extends ContainerElementSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, FitToViewBoxSVGAttributes, Pick { markerUnits?: 'strokeWidth' | 'userSpaceOnUse' | undefined; refX?: number | string | undefined; refY?: number | string | undefined; markerWidth?: number | string | undefined; markerHeight?: number | string | undefined; orient?: string | undefined; } interface MaskSVGAttributes extends Omit, 'opacity' | 'filter'>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes { maskUnits?: SVGUnits | undefined; maskContentUnits?: SVGUnits | undefined; x?: number | string | undefined; y?: number | string | undefined; width?: number | string | undefined; height?: number | string | undefined; } interface MetadataSVGAttributes extends CoreSVGAttributes {} interface MPathSVGAttributes extends CoreSVGAttributes {} interface PathSVGAttributes extends GraphicsElementSVGAttributes, ShapeElementSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick { d?: string | undefined; pathLength?: number | string | undefined; } interface PatternSVGAttributes extends ContainerElementSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, FitToViewBoxSVGAttributes, Pick { x?: number | string | undefined; y?: number | string | undefined; width?: number | string | undefined; height?: number | string | undefined; patternUnits?: SVGUnits | undefined; patternContentUnits?: SVGUnits | undefined; patternTransform?: string | undefined; href?: string | undefined; } interface PolygonSVGAttributes extends GraphicsElementSVGAttributes, ShapeElementSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick { points?: string | undefined; } interface PolylineSVGAttributes extends GraphicsElementSVGAttributes, ShapeElementSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick { points?: string | undefined; } interface RadialGradientSVGAttributes extends GradientElementSVGAttributes { cx?: number | string | undefined; cy?: number | string | undefined; r?: number | string | undefined; fx?: number | string | undefined; fy?: number | string | undefined; } interface RectSVGAttributes extends GraphicsElementSVGAttributes, ShapeElementSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes { x?: number | string | undefined; y?: number | string | undefined; width?: number | string | undefined; height?: number | string | undefined; rx?: number | string | undefined; ry?: number | string | undefined; } interface SetSVGAttributes extends CoreSVGAttributes, StylableSVGAttributes, AnimationTimingSVGAttributes {} interface StopSVGAttributes extends CoreSVGAttributes, StylableSVGAttributes, Pick { offset?: number | string | undefined; } interface SvgSVGAttributes extends ContainerElementSVGAttributes, NewViewportSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, 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; 'contentScriptType'?: string | undefined; 'contentStyleType'?: string | undefined; 'xmlns'?: string | undefined; 'xmlns:xlink'?: string | undefined; } interface SwitchSVGAttributes extends ContainerElementSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick {} interface SymbolSVGAttributes extends ContainerElementSVGAttributes, NewViewportSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, FitToViewBoxSVGAttributes { width?: number | string | undefined; height?: number | string | undefined; preserveAspectRatio?: SVGPreserveAspectRatio | undefined; refX?: number | string | undefined; refY?: number | string | undefined; viewBox?: string | undefined; x?: number | string | undefined; y?: number | string | undefined; } interface TextSVGAttributes extends TextContentElementSVGAttributes, GraphicsElementSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick { x?: number | string | undefined; y?: number | string | undefined; dx?: number | string | undefined; dy?: number | string | undefined; rotate?: number | string | undefined; textLength?: number | string | undefined; lengthAdjust?: 'spacing' | 'spacingAndGlyphs' | undefined; } interface TextPathSVGAttributes extends TextContentElementSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, Pick< PresentationSVGAttributes, 'alignment-baseline' | 'baseline-shift' | 'display' | 'visibility' > { startOffset?: number | string | undefined; method?: 'align' | 'stretch' | undefined; spacing?: 'auto' | 'exact' | undefined; href?: string | undefined; } interface TSpanSVGAttributes extends TextContentElementSVGAttributes, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, Pick< PresentationSVGAttributes, 'alignment-baseline' | 'baseline-shift' | 'display' | 'visibility' > { x?: number | string | undefined; y?: number | string | undefined; dx?: number | string | undefined; dy?: number | string | undefined; rotate?: number | string | undefined; textLength?: number | string | undefined; lengthAdjust?: 'spacing' | 'spacingAndGlyphs' | undefined; } /** @see https://developer.mozilla.org/en-US/docs/Web/SVG/Element/use */ interface UseSVGAttributes extends CoreSVGAttributes, StylableSVGAttributes, ConditionalProcessingSVGAttributes, GraphicsElementSVGAttributes, PresentationSVGAttributes, ExternalResourceSVGAttributes, TransformableSVGAttributes { x?: number | string | undefined; y?: number | string | undefined; width?: number | string | undefined; height?: number | string | undefined; href?: string | undefined; } interface ViewSVGAttributes extends CoreSVGAttributes, ExternalResourceSVGAttributes, FitToViewBoxSVGAttributes, ZoomAndPanSVGAttributes { viewTarget?: string | undefined; } /** @type {HTMLElementTagNameMap} */ interface HTMLElementTags { a: AnchorHTMLAttributes; abbr: HTMLAttributes; address: HTMLAttributes; area: AreaHTMLAttributes; article: HTMLAttributes; aside: HTMLAttributes; audio: AudioHTMLAttributes; b: HTMLAttributes; base: BaseHTMLAttributes; bdi: HTMLAttributes; bdo: HTMLAttributes; blockquote: BlockquoteHTMLAttributes; body: HTMLAttributes; br: HTMLAttributes; button: ButtonHTMLAttributes; canvas: CanvasHTMLAttributes; caption: HTMLAttributes; cite: HTMLAttributes; code: HTMLAttributes; col: ColHTMLAttributes; colgroup: ColgroupHTMLAttributes; data: DataHTMLAttributes; datalist: HTMLAttributes; dd: HTMLAttributes; del: HTMLAttributes; details: DetailsHtmlAttributes; dfn: HTMLAttributes; dialog: DialogHtmlAttributes; div: HTMLAttributes; dl: HTMLAttributes; dt: HTMLAttributes; em: HTMLAttributes; embed: EmbedHTMLAttributes; fieldset: FieldsetHTMLAttributes; figcaption: HTMLAttributes; figure: HTMLAttributes; footer: HTMLAttributes; form: FormHTMLAttributes; h1: HTMLAttributes; h2: HTMLAttributes; h3: HTMLAttributes; h4: HTMLAttributes; h5: HTMLAttributes; h6: HTMLAttributes; head: HTMLAttributes; header: HTMLAttributes; hgroup: HTMLAttributes; hr: HTMLAttributes; html: HTMLAttributes; i: HTMLAttributes; iframe: IframeHTMLAttributes; img: ImgHTMLAttributes; input: InputHTMLAttributes; ins: InsHTMLAttributes; kbd: HTMLAttributes; label: LabelHTMLAttributes; legend: HTMLAttributes; li: LiHTMLAttributes; link: LinkHTMLAttributes; main: HTMLAttributes; map: MapHTMLAttributes; mark: HTMLAttributes; menu: MenuHTMLAttributes; meta: MetaHTMLAttributes; meter: MeterHTMLAttributes; nav: HTMLAttributes; noscript: HTMLAttributes; object: ObjectHTMLAttributes; ol: OlHTMLAttributes; optgroup: OptgroupHTMLAttributes; option: OptionHTMLAttributes; output: OutputHTMLAttributes; p: HTMLAttributes; picture: HTMLAttributes; pre: HTMLAttributes; progress: ProgressHTMLAttributes; q: QuoteHTMLAttributes; rp: HTMLAttributes; rt: HTMLAttributes; ruby: HTMLAttributes; s: HTMLAttributes; samp: HTMLAttributes; script: ScriptHTMLAttributes; search: HTMLAttributes; section: HTMLAttributes; select: SelectHTMLAttributes; slot: HTMLSlotElementAttributes; small: HTMLAttributes; source: SourceHTMLAttributes; span: HTMLAttributes; strong: HTMLAttributes; style: StyleHTMLAttributes; sub: HTMLAttributes; summary: HTMLAttributes; sup: HTMLAttributes; table: HTMLAttributes; tbody: HTMLAttributes; td: TdHTMLAttributes; template: TemplateHTMLAttributes; textarea: TextareaHTMLAttributes; tfoot: HTMLAttributes; th: ThHTMLAttributes; thead: HTMLAttributes; time: TimeHTMLAttributes; title: HTMLAttributes; tr: HTMLAttributes; track: TrackHTMLAttributes; u: HTMLAttributes; ul: HTMLAttributes; var: HTMLAttributes; video: VideoHTMLAttributes; wbr: HTMLAttributes; } /** @type {HTMLElementDeprecatedTagNameMap} */ interface HTMLElementDeprecatedTags { big: HTMLAttributes; keygen: KeygenHTMLAttributes; menuitem: HTMLAttributes; noindex: HTMLAttributes; param: ParamHTMLAttributes; } /** @type {SVGElementTagNameMap} */ interface SVGElementTags { animate: AnimateSVGAttributes; animateMotion: AnimateMotionSVGAttributes; animateTransform: AnimateTransformSVGAttributes; circle: CircleSVGAttributes; clipPath: ClipPathSVGAttributes; defs: DefsSVGAttributes; desc: DescSVGAttributes; ellipse: EllipseSVGAttributes; feBlend: FeBlendSVGAttributes; feColorMatrix: FeColorMatrixSVGAttributes; feComponentTransfer: FeComponentTransferSVGAttributes; feComposite: FeCompositeSVGAttributes; feConvolveMatrix: FeConvolveMatrixSVGAttributes; feDiffuseLighting: FeDiffuseLightingSVGAttributes; feDisplacementMap: FeDisplacementMapSVGAttributes; feDistantLight: FeDistantLightSVGAttributes; feDropShadow: FeDropShadowSVGAttributes; feFlood: FeFloodSVGAttributes; feFuncA: FeFuncSVGAttributes; feFuncB: FeFuncSVGAttributes; feFuncG: FeFuncSVGAttributes; feFuncR: FeFuncSVGAttributes; feGaussianBlur: FeGaussianBlurSVGAttributes; feImage: FeImageSVGAttributes; feMerge: FeMergeSVGAttributes; feMergeNode: FeMergeNodeSVGAttributes; feMorphology: FeMorphologySVGAttributes; feOffset: FeOffsetSVGAttributes; fePointLight: FePointLightSVGAttributes; feSpecularLighting: FeSpecularLightingSVGAttributes; feSpotLight: FeSpotLightSVGAttributes; feTile: FeTileSVGAttributes; feTurbulence: FeTurbulanceSVGAttributes; filter: FilterSVGAttributes; foreignObject: ForeignObjectSVGAttributes; g: GSVGAttributes; image: ImageSVGAttributes; line: LineSVGAttributes; linearGradient: LinearGradientSVGAttributes; marker: MarkerSVGAttributes; mask: MaskSVGAttributes; metadata: MetadataSVGAttributes; mpath: MPathSVGAttributes; path: PathSVGAttributes; pattern: PatternSVGAttributes; polygon: PolygonSVGAttributes; polyline: PolylineSVGAttributes; radialGradient: RadialGradientSVGAttributes; rect: RectSVGAttributes; set: SetSVGAttributes; stop: StopSVGAttributes; svg: SvgSVGAttributes; switch: SwitchSVGAttributes; symbol: SymbolSVGAttributes; text: TextSVGAttributes; textPath: TextPathSVGAttributes; tspan: TSpanSVGAttributes; use: UseSVGAttributes; view: ViewSVGAttributes; } interface IntrinsicElements extends HTMLElementTags, HTMLElementDeprecatedTags, SVGElementTags { null; fragment; comment; } }