import { Ref, ComponentPublicInstance } from '@vue/runtime-core'
-// This code is based on https://github.com/wonderful-panda/vue-tsx-support
-// published under the MIT license.
-// Copyright by @wonderful-panda
-//
-// which is in turn based on the react definition in DefinitelyTyped
-// published under the MIT license.
+// 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/v15/index.d.ts
+// Path in the repository: types/react/index.d.ts
//
// Copyrights of original definition are:
-// Asana <https://asana.com>
// AssureSign <http://www.assuresign.com>
// Microsoft <https://microsoft.com>
-// John Reilly <https://github.com/johnnyreilly/>
+// John Reilly <https://github.com/johnnyreilly>
// Benoit Benezech <https://github.com/bbenezech>
// Patricio Zavolinsky <https://github.com/pzavolinsky>
// Digiguru <https://github.com/digiguru>
// Eric Anderson <https://github.com/ericanderson>
-// Albert Kurniawan <https://github.com/morcerf>
-// Tanguy Krotoff <https://github.com/tkrotoff>
// Dovydas Navickas <https://github.com/DovydasNavickas>
-// Stéphane Goetz <https://github.com/onigoetz>
+// Josh Rutherford <https://github.com/theruther4d>
+// Guilherme Hübner <https://github.com/guilhermehubner>
+// Ferdy Budhidharma <https://github.com/ferdaber>
+// Johann Rakotoharisoa <https://github.com/jrakotoharisoa>
+// Olivier Pascal <https://github.com/pascaloliv>
+// Martin Hochel <https://github.com/hotell>
+// Frank Li <https://github.com/franklixuefei>
+// Jessica Franco <https://github.com/Jessidhia>
+// Saransh Kataria <https://github.com/saranshkataria>
+// Kanitkorn Sujautra <https://github.com/lukyth>
+// Sebastian Silbermann <https://github.com/eps1lon>
+
+import * as CSS from 'csstype'
+
+export interface CSSProperties extends CSS.Properties<string | number> {
+ /**
+ * 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
+ */
+}
+
+type Booleanish = boolean | 'true' | 'false'
+
+// 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'?: boolean | 'false' | 'true'
+ /**
+ * 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'?: boolean | 'false' | 'true'
+ /**
+ * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
+ * @see aria-pressed @see aria-selected.
+ */
+ 'aria-checked'?: boolean | 'false' | 'mixed' | 'true'
+ /**
+ * Defines the total number of columns in a table, grid, or treegrid.
+ * @see aria-colindex.
+ */
+ 'aria-colcount'?: number
+ /**
+ * 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
+ /**
+ * 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
+ /**
+ * 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'?: boolean | 'false' | 'true' | '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'?: boolean | 'false' | 'true'
+ /**
+ * 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'?: boolean | 'false' | 'true'
+ /**
+ * 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'?: boolean | 'false' | 'true'
+ /** 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'
+ /**
+ * Indicates whether the element is exposed to an accessibility API.
+ * @see aria-disabled.
+ */
+ 'aria-hidden'?: boolean | 'false' | 'true'
+ /**
+ * Indicates the entered value does not conform to the format expected by the application.
+ * @see aria-errormessage.
+ */
+ 'aria-invalid'?: boolean | 'false' | 'true' | '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'?: number
+ /** 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'?: boolean | 'false' | 'true'
+ /** Indicates whether a text box accepts multiple lines of input or only a single line. */
+ 'aria-multiline'?: boolean | 'false' | 'true'
+ /** Indicates that the user may select more than one item from the current selectable descendants. */
+ 'aria-multiselectable'?: boolean | 'false' | 'true'
+ /** 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'?: number
+ /**
+ * Indicates the current "pressed" state of toggle buttons.
+ * @see aria-checked @see aria-selected.
+ */
+ 'aria-pressed'?: boolean | 'false' | 'mixed' | 'true'
+ /**
+ * Indicates that the element is not editable, but is otherwise operable.
+ * @see aria-disabled.
+ */
+ 'aria-readonly'?: boolean | 'false' | 'true'
+ /**
+ * 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'?: boolean | 'false' | 'true'
+ /** 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'?: number
+ /**
+ * 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
+ /**
+ * 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
+ /**
+ * Indicates the current "selected" state of various widgets.
+ * @see aria-checked @see aria-pressed.
+ */
+ 'aria-selected'?: boolean | 'false' | 'true'
+ /**
+ * 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
+ /** 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'?: number
+ /** Defines the minimum allowed value for a range widget. */
+ 'aria-valuemin'?: number
+ /**
+ * Defines the current value for a range widget.
+ * @see aria-valuetext.
+ */
+ 'aria-valuenow'?: number
+ /** Defines the human readable text alternative of aria-valuenow for a range widget. */
+ 'aria-valuetext'?: string
+}
+
+export interface HTMLAttributes extends AriaAttributes{
+
+ domPropsInnerHTML?: string;
-interface HTMLAttributes {
class?: any
- style?: string | Partial<CSSStyleDeclaration>
+ style?: string | CSSProperties
+
+ // Standard HTML Attributes
accesskey?: string
- contenteditable?: boolean
+ contenteditable?: Booleanish | "inherit"
contextmenu?: string
dir?: string
- disabled?: boolean
- draggable?: boolean
+ draggable?: Booleanish
hidden?: boolean
id?: string
lang?: string
- spellcheck?: boolean
+ placeholder?: string
+ spellcheck?: Booleanish
tabindex?: number
title?: string
+ translate?: 'yes' | 'no'
+ // Unknown
+ radiogroup?: string // <command>, <menuitem>
+
+ // 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
+ autocave?: string
+ color?: string
+ itemprop?: string
+ itemscope?: boolean
+ itemtype?: string
+ itemid?: string
+ itemref?: string
+ results?: number
+ 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
}
-interface AnchorHTMLAttributes extends HTMLAttributes {
+export interface AnchorHTMLAttributes extends HTMLAttributes {
download?: any
href?: string
hreflang?: string
media?: string
+ ping?: string
rel?: string
target?: string
+ type?: string
+ referrerpolicy?: string
}
-interface AreaHTMLAttributes extends HTMLAttributes {
+export interface AreaHTMLAttributes extends HTMLAttributes {
alt?: string
- coord?: string
+ coords?: string
download?: any
href?: string
hreflang?: string
target?: string
}
-interface AudioHTMLAttributes extends MediaHTMLAttributes {}
+export interface AudioHTMLAttributes extends MediaHTMLAttributes {
+}
-interface BaseHTMLAttributes extends HTMLAttributes {
+export interface BaseHTMLAttributes extends HTMLAttributes {
href?: string
target?: string
}
-interface BlockquoteHTMLAttributes extends HTMLAttributes {
+export interface BlockquoteHTMLAttributes extends HTMLAttributes {
cite?: string
}
-interface ButtonHTMLAttributes extends HTMLAttributes {
+export interface ButtonHTMLAttributes extends HTMLAttributes {
autofocus?: boolean
disabled?: boolean
form?: string
formnovalidate?: boolean
formtarget?: string
name?: string
- type?: string
+ type?: 'submit' | 'reset' | 'button'
value?: string | string[] | number
}
-interface CanvasHTMLAttributes extends HTMLAttributes {
+export interface CanvasHTMLAttributes extends HTMLAttributes {
height?: number | string
width?: number | string
}
-interface ColHTMLAttributes extends HTMLAttributes {
+export interface ColHTMLAttributes extends HTMLAttributes {
+ span?: number
+ width?: number | string
+}
+
+export interface ColgroupHTMLAttributes extends HTMLAttributes {
span?: number
}
-interface ColgroupHTMLAttributes extends ColHTMLAttributes {}
+export interface DataHTMLAttributes extends HTMLAttributes {
+ value?: string | string[] | number
+}
-interface DetailsHTMLAttributes extends HTMLAttributes {
+export interface DetailsHTMLAttributes extends HTMLAttributes {
open?: boolean
}
-interface DelHTMLAttributes extends HTMLAttributes {
+export interface DelHTMLAttributes extends HTMLAttributes {
cite?: string
datetime?: string
}
-interface EmbedHTMLAttributes extends HTMLAttributes {
+export interface DialogHTMLAttributes extends HTMLAttributes {
+ open?: boolean
+}
+
+export interface EmbedHTMLAttributes extends HTMLAttributes {
height?: number | string
src?: string
type?: string
width?: number | string
}
-interface FieldsetHTMLAttributes extends HTMLAttributes {
+export interface FieldsetHTMLAttributes extends HTMLAttributes {
disabled?: boolean
form?: string
name?: string
}
-interface FormHTMLAttributes extends HTMLAttributes {
+export interface FormHTMLAttributes extends HTMLAttributes {
acceptcharset?: string
action?: string
autocomplete?: string
target?: string
}
-interface HtmlHTMLAttributes extends HTMLAttributes {
+export interface HtmlHTMLAttributes extends HTMLAttributes {
manifest?: string
}
-interface IframeHTMLAttributes extends HTMLAttributes {
+export interface IframeHTMLAttributes extends HTMLAttributes {
+ allow?: string
allowfullscreen?: boolean
allowtransparency?: boolean
frameborder?: number | string
marginheight?: number
marginwidth?: number
name?: string
+ referrerpolicy?: string
sandbox?: string
scrolling?: string
seamless?: boolean
width?: number | string
}
-interface ImgHTMLAttributes extends HTMLAttributes {
+export interface ImgHTMLAttributes extends HTMLAttributes {
alt?: string
+ crossorigin?: 'anonymous' | 'use-credentials' | ''
+ decoding?: 'async' | 'auto' | 'sync'
height?: number | string
sizes?: string
src?: string
width?: number | string
}
-interface InsHTMLAttributes extends HTMLAttributes {
+export interface InsHTMLAttributes extends HTMLAttributes {
cite?: string
datetime?: string
}
-interface InputHTMLAttributes extends HTMLAttributes {
+export interface InputHTMLAttributes extends HTMLAttributes {
accept?: string
alt?: string
autocomplete?: string
width?: number | string
}
-interface KeygenHTMLAttributes extends HTMLAttributes {
+export interface KeygenHTMLAttributes extends HTMLAttributes {
autofocus?: boolean
challenge?: string
disabled?: boolean
name?: string
}
-interface LabelHTMLAttributes extends HTMLAttributes {
+export interface LabelHTMLAttributes extends HTMLAttributes {
+ for?: string
form?: string
- htmlfor?: string
}
-interface LiHTMLAttributes extends HTMLAttributes {
+export interface LiHTMLAttributes extends HTMLAttributes {
value?: string | string[] | number
}
-interface LinkHTMLAttributes extends HTMLAttributes {
+export interface LinkHTMLAttributes extends HTMLAttributes {
+ as?: string
+ crossorigin?: string
href?: string
hreflang?: string
integrity?: string
type?: string
}
-interface MapHTMLAttributes extends HTMLAttributes {
+export interface MapHTMLAttributes extends HTMLAttributes {
name?: string
}
-interface MenuHTMLAttributes extends HTMLAttributes {
+export interface MenuHTMLAttributes extends HTMLAttributes {
type?: string
}
-interface MediaHTMLAttributes extends HTMLAttributes {
+export interface MediaHTMLAttributes extends HTMLAttributes {
autoplay?: boolean
controls?: boolean
+ controlslist?: string
crossorigin?: string
loop?: boolean
mediagroup?: string
muted?: boolean
+ playsinline?: boolean
preload?: string
src?: string
}
-interface MetaHTMLAttributes extends HTMLAttributes {
+export interface MetaHTMLAttributes extends HTMLAttributes {
charset?: string
content?: string
httpequiv?: string
name?: string
}
-interface MeterHTMLAttributes extends HTMLAttributes {
+export interface MeterHTMLAttributes extends HTMLAttributes {
form?: string
high?: number
low?: number
value?: string | string[] | number
}
-interface QuoteHTMLAttributes extends HTMLAttributes {
+export interface QuoteHTMLAttributes extends HTMLAttributes {
cite?: string
}
-interface ObjectHTMLAttributes extends HTMLAttributes {
+export interface ObjectHTMLAttributes extends HTMLAttributes {
classid?: string
data?: string
form?: string
wmode?: string
}
-interface OlHTMLAttributes extends HTMLAttributes {
+export interface OlHTMLAttributes extends HTMLAttributes {
reversed?: boolean
start?: number
+ type?: '1' | 'a' | 'A' | 'i' | 'I'
}
-interface OptgroupHTMLAttributes extends HTMLAttributes {
+export interface OptgroupHTMLAttributes extends HTMLAttributes {
disabled?: boolean
label?: string
}
-interface OptionHTMLAttributes extends HTMLAttributes {
+export interface OptionHTMLAttributes extends HTMLAttributes {
disabled?: boolean
label?: string
selected?: boolean
value?: string | string[] | number
}
-interface OutputHTMLAttributes extends HTMLAttributes {
+export interface OutputHTMLAttributes extends HTMLAttributes {
+ for?: string
form?: string
- htmlfor?: string
name?: string
}
-interface ParamHTMLAttributes extends HTMLAttributes {
+export interface ParamHTMLAttributes extends HTMLAttributes {
name?: string
value?: string | string[] | number
}
-interface ProgressHTMLAttributes extends HTMLAttributes {
+export interface ProgressHTMLAttributes extends HTMLAttributes {
max?: number | string
value?: string | string[] | number
}
-interface ScriptHTMLAttributes extends HTMLAttributes {
+export interface ScriptHTMLAttributes extends HTMLAttributes {
async?: boolean
charset?: string
crossorigin?: string
defer?: boolean
integrity?: string
+ nomodule?: boolean
nonce?: string
src?: string
type?: string
}
-interface SelectHTMLAttributes extends HTMLAttributes {
+export interface SelectHTMLAttributes extends HTMLAttributes {
+ autocomplete?: string
autofocus?: boolean
disabled?: boolean
form?: string
value?: string | string[] | number
}
-interface SourceHTMLAttributes extends HTMLAttributes {
+export interface SourceHTMLAttributes extends HTMLAttributes {
media?: string
sizes?: string
src?: string
type?: string
}
-interface StyleHTMLAttributes extends HTMLAttributes {
+export interface StyleHTMLAttributes extends HTMLAttributes {
media?: string
nonce?: string
scoped?: boolean
type?: string
}
-interface TableHTMLAttributes extends HTMLAttributes {
+export interface TableHTMLAttributes extends HTMLAttributes {
cellpadding?: number | string
cellspacing?: number | string
summary?: string
}
-interface TextareaHTMLAttributes extends HTMLAttributes {
+export interface TextareaHTMLAttributes extends HTMLAttributes {
autocomplete?: string
autofocus?: boolean
cols?: number
wrap?: string
}
-interface TdHTMLAttributes extends HTMLAttributes {
+export interface TdHTMLAttributes extends HTMLAttributes {
+ align?: 'left' | 'center' | 'right' | 'justify' | 'char'
colspan?: number
headers?: string
rowspan?: number
+ scope?: string
+ valign?: 'top' | 'middle' | 'bottom' | 'baseline'
}
-interface ThHTMLAttributes extends HTMLAttributes {
+export interface ThHTMLAttributes extends HTMLAttributes {
+ align?: 'left' | 'center' | 'right' | 'justify' | 'char'
colspan?: number
headers?: string
rowspan?: number
scope?: string
}
-interface TimeHTMLAttributes extends HTMLAttributes {
+export interface TimeHTMLAttributes extends HTMLAttributes {
datetime?: string
}
-interface TrackHTMLAttributes extends HTMLAttributes {
+export interface TrackHTMLAttributes extends HTMLAttributes {
default?: boolean
kind?: string
label?: string
srclang?: string
}
-interface VideoHTMLAttributes extends MediaHTMLAttributes {
+export interface VideoHTMLAttributes extends MediaHTMLAttributes {
height?: number | string
playsinline?: boolean
poster?: string
width?: number | string
+ disablePictureInPicture?: boolean
}
-interface AllHTMLAttributes extends HTMLAttributes {
- accept?: string
- acceptcharset?: string
- action?: boolean
+export interface WebViewHTMLAttributes extends HTMLAttributes {
allowfullscreen?: boolean
- allowtransparency?: boolean
- alt?: string
- async?: boolean
- autocomplete?: string
- autofocus?: boolean
- autoplay?: boolean
- capture?: boolean // https://www.w3.org/tr/html-media-capture/#the-capture-attribute
- cellpadding?: number | string
- cellspacing?: number | string
- challenge?: string
- charset?: string
- checked?: boolean
- cite?: string
- classid?: string
- cols?: number
- colspan?: number
- content?: string
- controls?: boolean
- coord?: string
- crossorigin?: string
- data?: string
- datetime?: string
- default?: boolean
- defer?: boolean
- dirname?: string
- disabled?: boolean
- download?: any
- enctype?: string
- form?: string
- formaction?: string
- formenctype?: string
- formmethod?: string
- formnovalidate?: boolean
- formtarget?: string
- frameborder?: number | string
- headers?: string
+ allowpopups?: boolean
+ autoFocus?: boolean
+ autosize?: boolean
+ blinkfeatures?: string
+ disableblinkfeatures?: string
+ disableguestresize?: boolean
+ disablewebsecurity?: boolean
+ guestinstance?: string
+ httpreferrer?: string
+ nodeintegration?: boolean
+ partition?: string
+ plugins?: boolean
+ preload?: string
+ src?: string
+ useragent?: string
+ webpreferences?: string
+}
+
+export interface SVGAttributes extends AriaAttributes {
+
+ domPropsInnerHTML?: string;
+
+ color?: string
height?: number | string
- high?: number
- href?: string
- hreflang?: string
- htmlfor?: string
- httpequiv?: string
- integrity?: string
- keyparams?: string
- keytype?: string
- kind?: string
- label?: string
- list?: string
- loop?: boolean
- low?: number
- manifest?: string
- marginheight?: number
- marginwidth?: number
+ id?: string
+ lang?: string
max?: number | string
- maxlength?: number
media?: string
- mediagroup?: string
method?: string
min?: number | string
- minlength?: number
- multiple?: boolean
- muted?: boolean
name?: string
- nonce?: string
- novalidate?: boolean
- open?: boolean
- optimum?: number
- pattern?: string
- placeholder?: string
- playsinline?: boolean
- poster?: string
- preload?: string
- readonly?: boolean
- rel?: string
- required?: boolean
- reversed?: boolean
- rows?: number
- rowspan?: number
- sandbox?: string
- scope?: string
- scoped?: boolean
- scrolling?: string
- seamless?: boolean
- selected?: boolean
- shape?: string
- size?: number
- sizes?: string
- span?: number
- src?: string
- srcdoc?: string
- srclang?: string
- srcset?: string
- start?: number
- step?: number | string
- summary?: string
target?: string
type?: string
- usemap?: string
- value?: string | string[] | number
width?: number | string
- wmode?: string
- wrap?: string
+
+ // Other HTML properties supported by SVG elements in browsers
+ role?: string
+ tabindex?: number
+
+ // SVG Specific attributes
+ 'accent-height'?: number | string
+ 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?: number | string
+ amplitude?: number | string
+ 'arabic-form'?: 'initial' | 'medial' | 'terminal' | 'isolated'
+ ascent?: number | string
+ attributeName?: string
+ attributeType?: string
+ autoReverse?: number | string
+ azimuth?: number | string
+ baseFrequency?: number | string
+ 'baseline-shift'?: number | string
+ baseProfile?: number | string
+ bbox?: number | string
+ begin?: number | string
+ bias?: number | string
+ by?: number | string
+ calcMode?: number | string
+ 'cap-height'?: number | string
+ clip?: number | string
+ 'clip-path'?: string
+ clipPathUnits?: number | string
+ 'clip-rule'?: number | string
+ 'color-interpolation'?: number | string
+ 'color-interpolation-filters'?: 'auto' | 'sRGB' | 'linearRGB' | 'inherit'
+ 'color-profile'?: number | string
+ 'color-rendering'?: number | string
+ contentScriptType?: number | string
+ contentStyleType?: number | string
+ cursor?: number | string
+ cx?: number | string
+ cy?: number | string
+ d?: string
+ decelerate?: number | string
+ descent?: number | string
+ diffuseConstant?: number | string
+ direction?: number | string
+ display?: number | string
+ divisor?: number | string
+ 'dominant-baseline'?: number | string
+ dur?: number | string
+ dx?: number | string
+ dy?: number | string
+ edgeMode?: number | string
+ elevation?: number | string
+ 'enable-background'?: number | string
+ end?: number | string
+ exponent?: number | string
+ externalResourcesRequired?: number | string
+ fill?: string
+ 'fill-opacity'?: number | string
+ 'fill-rule'?: 'nonzero' | 'evenodd' | 'inherit'
+ filter?: string
+ filterRes?: number | string
+ filterUnits?: number | string
+ 'flood-color'?: number | string
+ 'flood-opacity'?: number | string
+ focusable?: number | string
+ 'font-family'?: string
+ 'font-size'?: number | string
+ 'font-size-adjust'?: number | string
+ 'font-stretch'?: number | string
+ 'font-style'?: number | string
+ 'font-variant'?: number | string
+ 'font-weight'?: number | string
+ format?: number | string
+ from?: number | string
+ fx?: number | string
+ fy?: number | string
+ g1?: number | string
+ g2?: number | string
+ 'glyph-name'?: number | string
+ 'glyph-orientation-horizontal'?: number | string
+ 'glyph-orientation-vertical'?: number | string
+ glyphRef?: number | string
+ gradientTransform?: string
+ gradientUnits?: string
+ hanging?: number | string
+ 'horiz-adv-x'?: number | string
+ 'horiz-origin-x'?: number | string
+ href?: string
+ ideographic?: number | string
+ 'image-rendering'?: number | string
+ in2?: number | string
+ in?: string
+ intercept?: number | string
+ k1?: number | string
+ k2?: number | string
+ k3?: number | string
+ k4?: number | string
+ k?: number | string
+ kernelMatrix?: number | string
+ kernelUnitLength?: number | string
+ kerning?: number | string
+ keyPoints?: number | string
+ keySplines?: number | string
+ keyTimes?: number | string
+ lengthAdjust?: number | string
+ 'letter-spacing'?: number | string
+ 'lighting-color'?: number | string
+ limitingConeAngle?: number | string
+ local?: number | string
+ 'marker-end'?: string
+ markerHeight?: number | string
+ 'marker-mid'?: string
+ 'marker-start'?: string
+ markerUnits?: number | string
+ markerWidth?: number | string
+ mask?: string
+ maskContentUnits?: number | string
+ maskUnits?: number | string
+ mathematical?: number | string
+ mode?: number | string
+ numOctaves?: number | string
+ offset?: number | string
+ opacity?: number | string
+ operator?: number | string
+ order?: number | string
+ orient?: number | string
+ orientation?: number | string
+ origin?: number | string
+ overflow?: number | string
+ 'overline-position'?: number | string
+ 'overline-thickness'?: number | string
+ 'paint-order'?: number | string
+ 'panose-1'?: number | string
+ pathLength?: number | string
+ patternContentUnits?: string
+ patternTransform?: number | string
+ patternUnits?: string
+ 'pointer-events'?: number | string
+ points?: string
+ pointsAtX?: number | string
+ pointsAtY?: number | string
+ pointsAtZ?: number | string
+ preserveAlpha?: number | string
+ preserveAspectRatio?: string
+ primitiveUnits?: number | string
+ r?: number | string
+ radius?: number | string
+ refX?: number | string
+ refY?: number | string
+ renderingIntent?: number | string
+ repeatCount?: number | string
+ repeatDur?: number | string
+ requiredExtensions?: number | string
+ requiredFeatures?: number | string
+ restart?: number | string
+ result?: string
+ rotate?: number | string
+ rx?: number | string
+ ry?: number | string
+ scale?: number | string
+ seed?: number | string
+ 'shape-rendering'?: number | string
+ slope?: number | string
+ spacing?: number | string
+ specularConstant?: number | string
+ specularExponent?: number | string
+ speed?: number | string
+ spreadMethod?: string
+ startOffset?: number | string
+ stdDeviation?: number | string
+ stemh?: number | string
+ stemv?: number | string
+ stitchTiles?: number | string
+ 'stop-color'?: string
+ 'stop-opacity'?: number | string
+ 'strikethrough-position'?: number | string
+ 'strikethrough-thickness'?: number | string
+ string?: number | string
+ stroke?: string
+ 'stroke-dasharray'?: string | number
+ 'stroke-dashoffset'?: string | number
+ 'stroke-linecap'?: 'butt' | 'round' | 'square' | 'inherit'
+ 'stroke-linejoin'?: 'miter' | 'round' | 'bevel' | 'inherit'
+ 'stroke-miterlimit'?: number | string
+ 'stroke-opacity'?: number | string
+ 'stroke-width'?: number | string
+ surfaceScale?: number | string
+ systemLanguage?: number | string
+ tableValues?: number | string
+ targetX?: number | string
+ targetY?: number | string
+ 'text-anchor'?: string
+ 'text-decoration'?: number | string
+ textLength?: number | string
+ 'text-rendering'?: number | string
+ to?: number | string
+ transform?: string
+ u1?: number | string
+ u2?: number | string
+ 'underline-position'?: number | string
+ 'underline-thickness'?: number | string
+ unicode?: number | string
+ 'unicode-bidi'?: number | string
+ 'unicode-range'?: number | string
+ 'unitsPer-em'?: number | string
+ 'v-alphabetic'?: number | string
+ values?: string
+ 'vector-effect'?: number | string
+ version?: string
+ 'vert-adv-y'?: number | string
+ 'vert-origin-x'?: number | string
+ 'vert-origin-y'?: number | string
+ 'v-hanging'?: number | string
+ 'v-ideographic'?: number | string
+ viewBox?: string
+ viewTarget?: number | string
+ visibility?: number | string
+ 'v-mathematical'?: number | string
+ widths?: number | string
+ 'word-spacing'?: number | string
+ 'writing-mode'?: number | string
+ x1?: number | string
+ x2?: number | string
+ x?: number | string
+ xChannelSelector?: string
+ 'x-height'?: number | string
+ 'xlinkActuate'?: string
+ 'xlinkArcrole'?: string
+ 'xlinkHref'?: string
+ 'xlinkRole'?: string
+ 'xlinkShow'?: string
+ 'xlinkTitle'?: string
+ 'xlinkType'?: string
+ y1?: number | string
+ y2?: number | string
+ y?: number | string
+ yChannelSelector?: string
+ z?: number | string
+ zoomAndPan?: string
}
interface IntrinsicElementAttributes {
code: HTMLAttributes
col: ColHTMLAttributes
colgroup: ColgroupHTMLAttributes
- data: HTMLAttributes
+ data: DataHTMLAttributes
datalist: HTMLAttributes
dd: HTMLAttributes
del: DelHTMLAttributes
details: DetailsHTMLAttributes
dfn: HTMLAttributes
- dialog: HTMLAttributes
+ dialog: DialogHTMLAttributes
div: HTMLAttributes
dl: HTMLAttributes
dt: HTMLAttributes
meta: MetaHTMLAttributes
meter: MeterHTMLAttributes
nav: HTMLAttributes
+ noindex: HTMLAttributes
noscript: HTMLAttributes
object: ObjectHTMLAttributes
ol: OlHTMLAttributes
summary: HTMLAttributes
sup: HTMLAttributes
table: TableHTMLAttributes
+ template: HTMLAttributes
tbody: HTMLAttributes
td: TdHTMLAttributes
textarea: TextareaHTMLAttributes
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
}
-interface Events {
+export interface Events {
// clipboard events
onCopy: ClipboardEvent
onCut: ClipboardEvent
// form events
onChange: Event
+ onBeforeinput: Event
onInput: Event
onReset: Event
onSubmit: Event
onKeyup: KeyboardEvent
// mouse events
+ onAuxclick: MouseEvent
onClick: MouseEvent
onContextmenu: MouseEvent
onDblclick: MouseEvent
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