// This code is based on react definition in DefinitelyTyped published under the MIT license. // Repository: https://github.com/DefinitelyTyped/DefinitelyTyped // Path in the repository: types/react/index.d.ts // // Copyrights of original definition are: // AssureSign // Microsoft // John Reilly // Benoit Benezech // Patricio Zavolinsky // Digiguru // Eric Anderson // Dovydas Navickas // Josh Rutherford // Guilherme Hübner // Ferdy Budhidharma // Johann Rakotoharisoa // Olivier Pascal // Martin Hochel // Frank Li // Jessica Franco // Saransh Kataria // Kanitkorn Sujautra // Sebastian Silbermann import * as CSS from 'csstype' export interface CSSProperties extends CSS.Properties, CSS.PropertiesHyphen { /** * The index signature was removed to enable closed typing for style * using CSSType. You're able to use type assertion or module augmentation * to add properties or an index signature of your own. * * For examples and more information, visit: * https://github.com/frenic/csstype#what-should-i-do-when-i-get-type-errors */ [v: `--${string}`]: string | number | undefined } type Booleanish = boolean | 'true' | 'false' type Numberish = number | string // 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 /** 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'?: Booleanish /** * 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' /** 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'?: Booleanish /** * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets. * @see aria-pressed @see aria-selected. */ 'aria-checked'?: Booleanish | 'mixed' /** * Defines the total number of columns in a table, grid, or treegrid. * @see aria-colindex. */ 'aria-colcount'?: Numberish /** * 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'?: Numberish /** * 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'?: Numberish /** * Identifies the element (or elements) whose contents or presence are controlled by the current element. * @see aria-owns. */ 'aria-controls'?: string /** Indicates the element that represents the current item within a container or set of related elements. */ 'aria-current'?: Booleanish | 'page' | 'step' | 'location' | 'date' | 'time' /** * Identifies the element (or elements) that describes the object. * @see aria-labelledby */ 'aria-describedby'?: string /** * Identifies the element that provides a detailed, extended description for the object. * @see aria-describedby. */ 'aria-details'?: string /** * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable. * @see aria-hidden @see aria-readonly. */ 'aria-disabled'?: Booleanish /** * 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' /** * Identifies the element that provides an error message for the object. * @see aria-invalid @see aria-describedby. */ 'aria-errormessage'?: string /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */ 'aria-expanded'?: Booleanish /** * 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 /** * Indicates an element's "grabbed" state in a drag-and-drop operation. * @deprecated in ARIA 1.1 */ 'aria-grabbed'?: Booleanish /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */ 'aria-haspopup'?: Booleanish | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog' /** * Indicates whether the element is exposed to an accessibility API. * @see aria-disabled. */ 'aria-hidden'?: Booleanish /** * Indicates the entered value does not conform to the format expected by the application. * @see aria-errormessage. */ 'aria-invalid'?: Booleanish | 'grammar' | 'spelling' /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */ 'aria-keyshortcuts'?: string /** * Defines a string value that labels the current element. * @see aria-labelledby. */ 'aria-label'?: string /** * Identifies the element (or elements) that labels the current element. * @see aria-describedby. */ 'aria-labelledby'?: string /** Defines the hierarchical level of an element within a structure. */ 'aria-level'?: Numberish /** 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' /** Indicates whether an element is modal when displayed. */ 'aria-modal'?: Booleanish /** Indicates whether a text box accepts multiple lines of input or only a single line. */ 'aria-multiline'?: Booleanish /** Indicates that the user may select more than one item from the current selectable descendants. */ 'aria-multiselectable'?: Booleanish /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */ 'aria-orientation'?: 'horizontal' | 'vertical' /** * 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 /** * 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 /** * 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'?: Numberish /** * Indicates the current "pressed" state of toggle buttons. * @see aria-checked @see aria-selected. */ 'aria-pressed'?: Booleanish | 'mixed' /** * Indicates that the element is not editable, but is otherwise operable. * @see aria-disabled. */ 'aria-readonly'?: Booleanish /** * 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 text' | 'all' | 'removals' | 'text' /** Indicates that user input is required on the element before a form may be submitted. */ 'aria-required'?: Booleanish /** Defines a human-readable, author-localized description for the role of an element. */ 'aria-roledescription'?: string /** * Defines the total number of rows in a table, grid, or treegrid. * @see aria-rowindex. */ 'aria-rowcount'?: Numberish /** * 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'?: Numberish /** * 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'?: Numberish /** * Indicates the current "selected" state of various widgets. * @see aria-checked @see aria-pressed. */ 'aria-selected'?: Booleanish /** * 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'?: Numberish /** Indicates if items in a table or grid are sorted in ascending or descending order. */ 'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other' /** Defines the maximum allowed value for a range widget. */ 'aria-valuemax'?: Numberish /** Defines the minimum allowed value for a range widget. */ 'aria-valuemin'?: Numberish /** * Defines the current value for a range widget. * @see aria-valuetext. */ 'aria-valuenow'?: Numberish /** Defines the human readable text alternative of aria-valuenow for a range widget. */ 'aria-valuetext'?: string } // Vue's style normalization supports nested arrays export type StyleValue = string | CSSProperties | Array export interface HTMLAttributes extends AriaAttributes, EventHandlers { innerHTML?: string class?: any style?: StyleValue // Standard HTML Attributes accesskey?: string contenteditable?: Booleanish | 'inherit' contextmenu?: string dir?: string draggable?: Booleanish hidden?: Booleanish id?: string lang?: string placeholder?: string spellcheck?: Booleanish tabindex?: Numberish title?: string translate?: 'yes' | 'no' // Unknown radiogroup?: string // , // WAI-ARIA role?: string // RDFa Attributes about?: string datatype?: string inlist?: any prefix?: string property?: string resource?: string typeof?: string vocab?: string // Non-standard Attributes autocapitalize?: string autocorrect?: string autosave?: string color?: string itemprop?: string itemscope?: Booleanish itemtype?: string itemid?: string itemref?: string results?: Numberish security?: string unselectable?: 'on' | 'off' // Living Standard /** * Hints at the type of data that might be entered by the user while editing the element or its contents * @see https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute */ inputmode?: | 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search' /** * Specify that a standard HTML element should behave like a defined custom built-in element * @see https://html.spec.whatwg.org/multipage/custom-elements.html#attr-is */ is?: string } export interface AnchorHTMLAttributes extends HTMLAttributes { download?: any href?: string hreflang?: string media?: string ping?: string rel?: string target?: string type?: string referrerpolicy?: string } export interface AreaHTMLAttributes extends HTMLAttributes { alt?: string coords?: string download?: any href?: string hreflang?: string media?: string rel?: string shape?: string target?: string } export interface AudioHTMLAttributes extends MediaHTMLAttributes {} export interface BaseHTMLAttributes extends HTMLAttributes { href?: string target?: string } export interface BlockquoteHTMLAttributes extends HTMLAttributes { cite?: string } export interface ButtonHTMLAttributes extends HTMLAttributes { autofocus?: Booleanish disabled?: Booleanish form?: string formaction?: string formenctype?: string formmethod?: string formnovalidate?: Booleanish formtarget?: string name?: string type?: 'submit' | 'reset' | 'button' value?: string | string[] | number } export interface CanvasHTMLAttributes extends HTMLAttributes { height?: Numberish width?: Numberish } export interface ColHTMLAttributes extends HTMLAttributes { span?: Numberish width?: Numberish } export interface ColgroupHTMLAttributes extends HTMLAttributes { span?: Numberish } export interface DataHTMLAttributes extends HTMLAttributes { value?: string | string[] | number } export interface DetailsHTMLAttributes extends HTMLAttributes { open?: Booleanish } export interface DelHTMLAttributes extends HTMLAttributes { cite?: string datetime?: string } export interface DialogHTMLAttributes extends HTMLAttributes { open?: Booleanish } export interface EmbedHTMLAttributes extends HTMLAttributes { height?: Numberish src?: string type?: string width?: Numberish } export interface FieldsetHTMLAttributes extends HTMLAttributes { disabled?: Booleanish form?: string name?: string } export interface FormHTMLAttributes extends HTMLAttributes { acceptcharset?: string action?: string autocomplete?: string enctype?: string method?: string name?: string novalidate?: Booleanish target?: string } export interface HtmlHTMLAttributes extends HTMLAttributes { manifest?: string } export interface IframeHTMLAttributes extends HTMLAttributes { allow?: string allowfullscreen?: Booleanish allowtransparency?: Booleanish frameborder?: Numberish height?: Numberish marginheight?: Numberish marginwidth?: Numberish name?: string referrerpolicy?: string sandbox?: string scrolling?: string seamless?: Booleanish src?: string srcdoc?: string width?: Numberish } export interface ImgHTMLAttributes extends HTMLAttributes { alt?: string crossorigin?: 'anonymous' | 'use-credentials' | '' decoding?: 'async' | 'auto' | 'sync' height?: Numberish sizes?: string src?: string srcset?: string usemap?: string width?: Numberish } export interface InsHTMLAttributes extends HTMLAttributes { cite?: string datetime?: string } export interface InputHTMLAttributes extends HTMLAttributes { accept?: string alt?: string autocomplete?: string autofocus?: Booleanish capture?: boolean | 'user' | 'environment' // https://www.w3.org/tr/html-media-capture/#the-capture-attribute checked?: Booleanish | any[] | Set // for IDE v-model multi-checkbox support crossorigin?: string disabled?: Booleanish form?: string formaction?: string formenctype?: string formmethod?: string formnovalidate?: Booleanish formtarget?: string height?: Numberish indeterminate?: boolean list?: string max?: Numberish maxlength?: Numberish min?: Numberish minlength?: Numberish multiple?: Booleanish name?: string pattern?: string placeholder?: string readonly?: Booleanish required?: Booleanish size?: Numberish src?: string step?: Numberish type?: string value?: any // we support :value to be bound to anything w/ v-model width?: Numberish } export interface KeygenHTMLAttributes extends HTMLAttributes { autofocus?: Booleanish challenge?: string disabled?: Booleanish form?: string keytype?: string keyparams?: string name?: string } export interface LabelHTMLAttributes extends HTMLAttributes { for?: string form?: string } export interface LiHTMLAttributes extends HTMLAttributes { value?: string | string[] | number } export interface LinkHTMLAttributes extends HTMLAttributes { as?: string crossorigin?: string href?: string hreflang?: string integrity?: string media?: string rel?: string sizes?: string type?: string } export interface MapHTMLAttributes extends HTMLAttributes { name?: string } export interface MenuHTMLAttributes extends HTMLAttributes { type?: string } export interface MediaHTMLAttributes extends HTMLAttributes { autoplay?: Booleanish controls?: Booleanish controlslist?: string crossorigin?: string loop?: Booleanish mediagroup?: string muted?: Booleanish playsinline?: Booleanish preload?: string src?: string } export interface MetaHTMLAttributes extends HTMLAttributes { charset?: string content?: string httpequiv?: string name?: string } export interface MeterHTMLAttributes extends HTMLAttributes { form?: string high?: Numberish low?: Numberish max?: Numberish min?: Numberish optimum?: Numberish value?: string | string[] | number } export interface QuoteHTMLAttributes extends HTMLAttributes { cite?: string } export interface ObjectHTMLAttributes extends HTMLAttributes { classid?: string data?: string form?: string height?: Numberish name?: string type?: string usemap?: string width?: Numberish wmode?: string } export interface OlHTMLAttributes extends HTMLAttributes { reversed?: Booleanish start?: Numberish type?: '1' | 'a' | 'A' | 'i' | 'I' } export interface OptgroupHTMLAttributes extends HTMLAttributes { disabled?: Booleanish label?: string } export interface OptionHTMLAttributes extends HTMLAttributes { disabled?: Booleanish label?: string selected?: Booleanish value?: any // we support :value to be bound to anything w/ v-model } export interface OutputHTMLAttributes extends HTMLAttributes { for?: string form?: string name?: string } export interface ParamHTMLAttributes extends HTMLAttributes { name?: string value?: string | string[] | number } export interface ProgressHTMLAttributes extends HTMLAttributes { max?: Numberish value?: string | string[] | number } export interface ScriptHTMLAttributes extends HTMLAttributes { async?: Booleanish charset?: string crossorigin?: string defer?: Booleanish integrity?: string nomodule?: Booleanish nonce?: string src?: string type?: string } export interface SelectHTMLAttributes extends HTMLAttributes { autocomplete?: string autofocus?: Booleanish disabled?: Booleanish form?: string multiple?: Booleanish name?: string required?: Booleanish size?: Numberish value?: any // we support :value to be bound to anything w/ v-model } export interface SourceHTMLAttributes extends HTMLAttributes { media?: string sizes?: string src?: string srcset?: string type?: string } export interface StyleHTMLAttributes extends HTMLAttributes { media?: string nonce?: string scoped?: Booleanish type?: string } export interface TableHTMLAttributes extends HTMLAttributes { cellpadding?: Numberish cellspacing?: Numberish summary?: string } export interface TextareaHTMLAttributes extends HTMLAttributes { autocomplete?: string autofocus?: Booleanish cols?: Numberish dirname?: string disabled?: Booleanish form?: string maxlength?: Numberish minlength?: Numberish name?: string placeholder?: string readonly?: boolean required?: Booleanish rows?: Numberish value?: string | string[] | number wrap?: string } export interface TdHTMLAttributes extends HTMLAttributes { align?: 'left' | 'center' | 'right' | 'justify' | 'char' colspan?: Numberish headers?: string rowspan?: Numberish scope?: string valign?: 'top' | 'middle' | 'bottom' | 'baseline' } export interface ThHTMLAttributes extends HTMLAttributes { align?: 'left' | 'center' | 'right' | 'justify' | 'char' colspan?: Numberish headers?: string rowspan?: Numberish scope?: string } export interface TimeHTMLAttributes extends HTMLAttributes { datetime?: string } export interface TrackHTMLAttributes extends HTMLAttributes { default?: Booleanish kind?: string label?: string src?: string srclang?: string } export interface VideoHTMLAttributes extends MediaHTMLAttributes { height?: Numberish playsinline?: Booleanish poster?: string width?: Numberish disablePictureInPicture?: Booleanish } export interface WebViewHTMLAttributes extends HTMLAttributes { allowfullscreen?: Booleanish allowpopups?: Booleanish autoFocus?: Booleanish autosize?: Booleanish blinkfeatures?: string disableblinkfeatures?: string disableguestresize?: Booleanish disablewebsecurity?: Booleanish guestinstance?: string httpreferrer?: string nodeintegration?: Booleanish partition?: string plugins?: Booleanish preload?: string src?: string useragent?: string webpreferences?: string } export interface SVGAttributes extends AriaAttributes, EventHandlers { innerHTML?: string /** * SVG Styling Attributes * @see https://www.w3.org/TR/SVG/styling.html#ElementSpecificStyling */ class?: any style?: string | CSSProperties color?: string height?: Numberish id?: string lang?: string max?: Numberish media?: string method?: string min?: Numberish name?: string target?: string type?: string width?: Numberish // Other HTML properties supported by SVG elements in browsers role?: string tabindex?: Numberish // SVG Specific attributes 'accent-height'?: Numberish accumulate?: 'none' | 'sum' additive?: 'replace' | 'sum' 'alignment-baseline'?: | 'auto' | 'baseline' | 'before-edge' | 'text-before-edge' | 'middle' | 'central' | 'after-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | 'inherit' allowReorder?: 'no' | 'yes' alphabetic?: Numberish amplitude?: Numberish 'arabic-form'?: 'initial' | 'medial' | 'terminal' | 'isolated' ascent?: Numberish attributeName?: string attributeType?: string autoReverse?: Numberish azimuth?: Numberish baseFrequency?: Numberish 'baseline-shift'?: Numberish baseProfile?: Numberish bbox?: Numberish begin?: Numberish bias?: Numberish by?: Numberish calcMode?: Numberish 'cap-height'?: Numberish clip?: Numberish 'clip-path'?: string clipPathUnits?: Numberish 'clip-rule'?: Numberish 'color-interpolation'?: Numberish 'color-interpolation-filters'?: 'auto' | 'sRGB' | 'linearRGB' | 'inherit' 'color-profile'?: Numberish 'color-rendering'?: Numberish contentScriptType?: Numberish contentStyleType?: Numberish cursor?: Numberish cx?: Numberish cy?: Numberish d?: string decelerate?: Numberish descent?: Numberish diffuseConstant?: Numberish direction?: Numberish display?: Numberish divisor?: Numberish 'dominant-baseline'?: Numberish dur?: Numberish dx?: Numberish dy?: Numberish edgeMode?: Numberish elevation?: Numberish 'enable-background'?: Numberish end?: Numberish exponent?: Numberish externalResourcesRequired?: Numberish fill?: string 'fill-opacity'?: Numberish 'fill-rule'?: 'nonzero' | 'evenodd' | 'inherit' filter?: string filterRes?: Numberish filterUnits?: Numberish 'flood-color'?: Numberish 'flood-opacity'?: Numberish focusable?: Numberish 'font-family'?: string 'font-size'?: Numberish 'font-size-adjust'?: Numberish 'font-stretch'?: Numberish 'font-style'?: Numberish 'font-variant'?: Numberish 'font-weight'?: Numberish format?: Numberish from?: Numberish fx?: Numberish fy?: Numberish g1?: Numberish g2?: Numberish 'glyph-name'?: Numberish 'glyph-orientation-horizontal'?: Numberish 'glyph-orientation-vertical'?: Numberish glyphRef?: Numberish gradientTransform?: string gradientUnits?: string hanging?: Numberish 'horiz-adv-x'?: Numberish 'horiz-origin-x'?: Numberish href?: string ideographic?: Numberish 'image-rendering'?: Numberish in2?: Numberish in?: string intercept?: Numberish k1?: Numberish k2?: Numberish k3?: Numberish k4?: Numberish k?: Numberish kernelMatrix?: Numberish kernelUnitLength?: Numberish kerning?: Numberish keyPoints?: Numberish keySplines?: Numberish keyTimes?: Numberish lengthAdjust?: Numberish 'letter-spacing'?: Numberish 'lighting-color'?: Numberish limitingConeAngle?: Numberish local?: Numberish 'marker-end'?: string markerHeight?: Numberish 'marker-mid'?: string 'marker-start'?: string markerUnits?: Numberish markerWidth?: Numberish mask?: string maskContentUnits?: Numberish maskUnits?: Numberish mathematical?: Numberish mode?: Numberish numOctaves?: Numberish offset?: Numberish opacity?: Numberish operator?: Numberish order?: Numberish orient?: Numberish orientation?: Numberish origin?: Numberish overflow?: Numberish 'overline-position'?: Numberish 'overline-thickness'?: Numberish 'paint-order'?: Numberish 'panose-1'?: Numberish pathLength?: Numberish patternContentUnits?: string patternTransform?: Numberish patternUnits?: string 'pointer-events'?: Numberish points?: string pointsAtX?: Numberish pointsAtY?: Numberish pointsAtZ?: Numberish preserveAlpha?: Numberish preserveAspectRatio?: string primitiveUnits?: Numberish r?: Numberish radius?: Numberish refX?: Numberish refY?: Numberish renderingIntent?: Numberish repeatCount?: Numberish repeatDur?: Numberish requiredExtensions?: Numberish requiredFeatures?: Numberish restart?: Numberish result?: string rotate?: Numberish rx?: Numberish ry?: Numberish scale?: Numberish seed?: Numberish 'shape-rendering'?: Numberish slope?: Numberish spacing?: Numberish specularConstant?: Numberish specularExponent?: Numberish speed?: Numberish spreadMethod?: string startOffset?: Numberish stdDeviation?: Numberish stemh?: Numberish stemv?: Numberish stitchTiles?: Numberish 'stop-color'?: string 'stop-opacity'?: Numberish 'strikethrough-position'?: Numberish 'strikethrough-thickness'?: Numberish string?: Numberish stroke?: string 'stroke-dasharray'?: Numberish 'stroke-dashoffset'?: Numberish 'stroke-linecap'?: 'butt' | 'round' | 'square' | 'inherit' 'stroke-linejoin'?: 'miter' | 'round' | 'bevel' | 'inherit' 'stroke-miterlimit'?: Numberish 'stroke-opacity'?: Numberish 'stroke-width'?: Numberish surfaceScale?: Numberish systemLanguage?: Numberish tableValues?: Numberish targetX?: Numberish targetY?: Numberish 'text-anchor'?: string 'text-decoration'?: Numberish textLength?: Numberish 'text-rendering'?: Numberish to?: Numberish transform?: string u1?: Numberish u2?: Numberish 'underline-position'?: Numberish 'underline-thickness'?: Numberish unicode?: Numberish 'unicode-bidi'?: Numberish 'unicode-range'?: Numberish 'unitsPer-em'?: Numberish 'v-alphabetic'?: Numberish values?: string 'vector-effect'?: Numberish version?: string 'vert-adv-y'?: Numberish 'vert-origin-x'?: Numberish 'vert-origin-y'?: Numberish 'v-hanging'?: Numberish 'v-ideographic'?: Numberish viewBox?: string viewTarget?: Numberish visibility?: Numberish 'v-mathematical'?: Numberish widths?: Numberish 'word-spacing'?: Numberish 'writing-mode'?: Numberish x1?: Numberish x2?: Numberish x?: Numberish xChannelSelector?: string 'x-height'?: Numberish xlinkActuate?: string xlinkArcrole?: string xlinkHref?: string xlinkRole?: string xlinkShow?: string xlinkTitle?: string xlinkType?: string xmlns?: string y1?: Numberish y2?: Numberish y?: Numberish yChannelSelector?: string z?: Numberish zoomAndPan?: string } interface IntrinsicElementAttributes { 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: DelHTMLAttributes 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: HtmlHTMLAttributes i: HTMLAttributes iframe: IframeHTMLAttributes img: ImgHTMLAttributes input: InputHTMLAttributes ins: InsHTMLAttributes kbd: HTMLAttributes keygen: KeygenHTMLAttributes label: LabelHTMLAttributes legend: HTMLAttributes li: LiHTMLAttributes link: LinkHTMLAttributes main: HTMLAttributes map: MapHTMLAttributes mark: HTMLAttributes menu: MenuHTMLAttributes meta: MetaHTMLAttributes meter: MeterHTMLAttributes nav: HTMLAttributes noindex: HTMLAttributes noscript: HTMLAttributes object: ObjectHTMLAttributes ol: OlHTMLAttributes optgroup: OptgroupHTMLAttributes option: OptionHTMLAttributes output: OutputHTMLAttributes p: HTMLAttributes param: ParamHTMLAttributes picture: HTMLAttributes pre: HTMLAttributes progress: ProgressHTMLAttributes q: QuoteHTMLAttributes rp: HTMLAttributes rt: HTMLAttributes ruby: HTMLAttributes s: HTMLAttributes samp: HTMLAttributes script: ScriptHTMLAttributes section: HTMLAttributes select: SelectHTMLAttributes small: HTMLAttributes source: SourceHTMLAttributes span: HTMLAttributes strong: HTMLAttributes style: StyleHTMLAttributes sub: HTMLAttributes summary: HTMLAttributes sup: HTMLAttributes table: TableHTMLAttributes template: HTMLAttributes tbody: HTMLAttributes td: TdHTMLAttributes 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 webview: WebViewHTMLAttributes // SVG svg: SVGAttributes animate: SVGAttributes animateMotion: SVGAttributes animateTransform: SVGAttributes circle: SVGAttributes clipPath: SVGAttributes defs: SVGAttributes desc: SVGAttributes ellipse: SVGAttributes feBlend: SVGAttributes feColorMatrix: SVGAttributes feComponentTransfer: SVGAttributes feComposite: SVGAttributes feConvolveMatrix: SVGAttributes feDiffuseLighting: SVGAttributes feDisplacementMap: SVGAttributes feDistantLight: SVGAttributes feDropShadow: SVGAttributes feFlood: SVGAttributes feFuncA: SVGAttributes feFuncB: SVGAttributes feFuncG: SVGAttributes feFuncR: SVGAttributes feGaussianBlur: SVGAttributes feImage: SVGAttributes feMerge: SVGAttributes feMergeNode: SVGAttributes feMorphology: SVGAttributes feOffset: SVGAttributes fePointLight: SVGAttributes feSpecularLighting: SVGAttributes feSpotLight: SVGAttributes feTile: SVGAttributes feTurbulence: SVGAttributes filter: SVGAttributes foreignObject: SVGAttributes g: SVGAttributes image: SVGAttributes line: SVGAttributes linearGradient: SVGAttributes marker: SVGAttributes mask: SVGAttributes metadata: SVGAttributes mpath: SVGAttributes path: SVGAttributes pattern: SVGAttributes polygon: SVGAttributes polyline: SVGAttributes radialGradient: SVGAttributes rect: SVGAttributes stop: SVGAttributes switch: SVGAttributes symbol: SVGAttributes text: SVGAttributes textPath: SVGAttributes tspan: SVGAttributes use: SVGAttributes view: SVGAttributes } export interface Events { // clipboard events onCopy: ClipboardEvent onCut: ClipboardEvent onPaste: ClipboardEvent // composition events onCompositionend: CompositionEvent onCompositionstart: CompositionEvent onCompositionupdate: CompositionEvent // drag drop events onDrag: DragEvent onDragend: DragEvent onDragenter: DragEvent onDragexit: DragEvent onDragleave: DragEvent onDragover: DragEvent onDragstart: DragEvent onDrop: DragEvent // focus events onFocus: FocusEvent onFocusin: FocusEvent onFocusout: FocusEvent onBlur: FocusEvent // form events onChange: Event onBeforeinput: Event onInput: Event onReset: Event onSubmit: Event onInvalid: Event // image events onLoad: Event onError: Event // keyboard events onKeydown: KeyboardEvent onKeypress: KeyboardEvent onKeyup: KeyboardEvent // mouse events onAuxclick: MouseEvent onClick: MouseEvent onContextmenu: MouseEvent onDblclick: MouseEvent onMousedown: MouseEvent onMouseenter: MouseEvent onMouseleave: MouseEvent onMousemove: MouseEvent onMouseout: MouseEvent onMouseover: MouseEvent onMouseup: MouseEvent // media events onAbort: Event onCanplay: Event onCanplaythrough: Event onDurationchange: Event onEmptied: Event onEncrypted: Event onEnded: Event onLoadeddata: Event onLoadedmetadata: Event onLoadstart: Event onPause: Event onPlay: Event onPlaying: Event onProgress: Event onRatechange: Event onSeeked: Event onSeeking: Event onStalled: Event onSuspend: Event onTimeupdate: Event onVolumechange: Event onWaiting: Event // selection events onSelect: Event // UI events onScroll: UIEvent // touch events onTouchcancel: TouchEvent onTouchend: TouchEvent onTouchmove: TouchEvent onTouchstart: TouchEvent // pointer events onPointerdown: PointerEvent onPointermove: PointerEvent onPointerup: PointerEvent onPointercancel: PointerEvent onPointerenter: PointerEvent onPointerleave: PointerEvent onPointerover: PointerEvent onPointerout: PointerEvent // wheel events onWheel: WheelEvent // animation events onAnimationstart: AnimationEvent onAnimationend: AnimationEvent onAnimationiteration: AnimationEvent // transition events onTransitionend: TransitionEvent onTransitionstart: TransitionEvent } type EventHandlers = { [K in keyof E]?: E[K] extends Function ? E[K] : (payload: E[K]) => void } type ReservedProps = { key?: string | number | symbol ref?: VNodeData['ref'] } type ElementAttrs = T & ReservedProps type NativeElements = { [K in keyof IntrinsicElementAttributes]: ElementAttrs< IntrinsicElementAttributes[K] > } import { VNode, VNodeData } from './vnode' declare global { namespace JSX { interface Element extends VNode {} interface ElementClass { $props: {} } interface ElementAttributesProperty { $props: {} } interface IntrinsicElements extends NativeElements { // allow arbitrary elements // @ts-ignore suppress ts:2374 = Duplicate string index signature. [name: string]: any } interface IntrinsicAttributes extends ReservedProps {} } } // suppress ts:2669 export {}