2019-11-05 07:38:55 +08:00
import { Ref , ComponentPublicInstance } from '@vue/runtime-core'
2020-01-07 05:19:18 +08:00
// This code is based on react definition in DefinitelyTyped published under the MIT license.
2018-10-14 08:46:30 +08:00
// Repository: https://github.com/DefinitelyTyped/DefinitelyTyped
2020-01-07 05:19:18 +08:00
// Path in the repository: types/react/index.d.ts
2018-10-14 08:46:30 +08:00
//
// Copyrights of original definition are:
// AssureSign <http://www.assuresign.com>
// Microsoft <https://microsoft.com>
2020-01-07 05:19:18 +08:00
// John Reilly <https://github.com/johnnyreilly>
2018-10-14 08:46:30 +08:00
// Benoit Benezech <https://github.com/bbenezech>
// Patricio Zavolinsky <https://github.com/pzavolinsky>
// Digiguru <https://github.com/digiguru>
// Eric Anderson <https://github.com/ericanderson>
// Dovydas Navickas <https://github.com/DovydasNavickas>
2020-01-07 05:19:18 +08:00
// 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. */
2020-04-15 22:51:07 +08:00
'aria-current' ? :
| boolean
| 'false'
| 'true'
| 'page'
| 'step'
| 'location'
| 'date'
| 'time'
2020-01-07 05:19:18 +08:00
/ * *
* 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. */
2020-04-15 22:51:07 +08:00
'aria-haspopup' ? :
| boolean
| 'false'
| 'true'
| 'menu'
| 'listbox'
| 'tree'
| 'grid'
| 'dialog'
2020-01-07 05:19:18 +08:00
/ * *
* 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
}
2020-04-15 22:51:07 +08:00
export interface HTMLAttributes extends AriaAttributes {
domPropsInnerHTML? : string
2018-10-14 08:46:30 +08:00
class ? : any
2020-01-07 05:19:18 +08:00
style? : string | CSSProperties
// Standard HTML Attributes
2018-10-14 08:46:30 +08:00
accesskey? : string
2020-04-15 22:51:07 +08:00
contenteditable? : Booleanish | 'inherit'
2018-10-14 08:46:30 +08:00
contextmenu? : string
dir? : string
2020-01-07 05:19:18 +08:00
draggable? : Booleanish
2018-10-14 08:46:30 +08:00
hidden? : boolean
id? : string
lang? : string
2020-01-07 05:19:18 +08:00
placeholder? : string
spellcheck? : Booleanish
2018-10-14 08:46:30 +08:00
tabindex? : number
title? : string
2020-01-07 05:19:18 +08:00
translate ? : 'yes' | 'no'
2018-10-14 08:46:30 +08:00
2020-01-07 05:19:18 +08:00
// Unknown
radiogroup? : string // <command>, <menuitem>
// WAI-ARIA
2018-10-14 08:46:30 +08:00
role? : string
2020-01-07 05:19:18 +08:00
// 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
* /
2020-04-15 22:51:07 +08:00
inputmode ? :
| 'none'
| 'text'
| 'tel'
| 'url'
| 'email'
| 'numeric'
| 'decimal'
| 'search'
2020-01-07 05:19:18 +08:00
/ * *
* 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
2018-10-14 08:46:30 +08:00
}
2020-01-07 05:19:18 +08:00
export interface AnchorHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
download? : any
href? : string
hreflang? : string
media? : string
2020-01-07 05:19:18 +08:00
ping? : string
2018-10-14 08:46:30 +08:00
rel? : string
target? : string
2020-01-07 05:19:18 +08:00
type ? : string
referrerpolicy? : string
2018-10-14 08:46:30 +08:00
}
2020-01-07 05:19:18 +08:00
export interface AreaHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
alt? : string
2020-01-07 05:19:18 +08:00
coords? : string
2018-10-14 08:46:30 +08:00
download? : any
href? : string
hreflang? : string
media? : string
rel? : string
shape? : string
target? : string
}
2020-04-15 22:51:07 +08:00
export interface AudioHTMLAttributes extends MediaHTMLAttributes { }
2018-10-14 08:46:30 +08:00
2020-01-07 05:19:18 +08:00
export interface BaseHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
href? : string
target? : string
}
2020-01-07 05:19:18 +08:00
export interface BlockquoteHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
cite? : string
}
2020-01-07 05:19:18 +08:00
export interface ButtonHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
autofocus? : boolean
disabled? : boolean
form? : string
formaction? : string
formenctype? : string
formmethod? : string
formnovalidate? : boolean
formtarget? : string
name? : string
2020-01-07 05:19:18 +08:00
type ? : 'submit' | 'reset' | 'button'
2018-10-14 08:46:30 +08:00
value? : string | string [ ] | number
}
2020-01-07 05:19:18 +08:00
export interface CanvasHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
height? : number | string
width? : number | string
}
2020-01-07 05:19:18 +08:00
export interface ColHTMLAttributes extends HTMLAttributes {
span? : number
width? : number | string
}
export interface ColgroupHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
span? : number
}
2020-01-07 05:19:18 +08:00
export interface DataHTMLAttributes extends HTMLAttributes {
value? : string | string [ ] | number
}
2018-10-14 08:46:30 +08:00
2020-01-07 05:19:18 +08:00
export interface DetailsHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
open? : boolean
}
2020-01-07 05:19:18 +08:00
export interface DelHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
cite? : string
datetime? : string
}
2020-01-07 05:19:18 +08:00
export interface DialogHTMLAttributes extends HTMLAttributes {
open? : boolean
}
export interface EmbedHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
height? : number | string
src? : string
type ? : string
width? : number | string
}
2020-01-07 05:19:18 +08:00
export interface FieldsetHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
disabled? : boolean
form? : string
name? : string
}
2020-01-07 05:19:18 +08:00
export interface FormHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
acceptcharset? : string
action? : string
autocomplete? : string
enctype? : string
method? : string
name? : string
novalidate? : boolean
target? : string
}
2020-01-07 05:19:18 +08:00
export interface HtmlHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
manifest? : string
}
2020-01-07 05:19:18 +08:00
export interface IframeHTMLAttributes extends HTMLAttributes {
allow? : string
2018-10-14 08:46:30 +08:00
allowfullscreen? : boolean
allowtransparency? : boolean
frameborder? : number | string
height? : number | string
marginheight? : number
marginwidth? : number
name? : string
2020-01-07 05:19:18 +08:00
referrerpolicy? : string
2018-10-14 08:46:30 +08:00
sandbox? : string
scrolling? : string
seamless? : boolean
src? : string
srcdoc? : string
width? : number | string
}
2020-01-07 05:19:18 +08:00
export interface ImgHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
alt? : string
2020-01-07 05:19:18 +08:00
crossorigin ? : 'anonymous' | 'use-credentials' | ''
decoding ? : 'async' | 'auto' | 'sync'
2018-10-14 08:46:30 +08:00
height? : number | string
sizes? : string
src? : string
srcset? : string
usemap? : string
width? : number | string
}
2020-01-07 05:19:18 +08:00
export interface InsHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
cite? : string
datetime? : string
}
2020-01-07 05:19:18 +08:00
export interface InputHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
accept? : string
alt? : string
autocomplete? : string
autofocus? : boolean
capture? : boolean // https://www.w3.org/tr/html-media-capture/#the-capture-attribute
checked? : boolean
crossorigin? : string
disabled? : boolean
form? : string
formaction? : string
formenctype? : string
formmethod? : string
formnovalidate? : boolean
formtarget? : string
height? : number | string
list? : string
max? : number | string
maxlength? : number
min? : number | string
minlength? : number
multiple? : boolean
name? : string
pattern? : string
placeholder? : string
readonly ? : boolean
required? : boolean
size? : number
src? : string
step? : number | string
type ? : string
value? : string | string [ ] | number
width? : number | string
}
2020-01-07 05:19:18 +08:00
export interface KeygenHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
autofocus? : boolean
challenge? : string
disabled? : boolean
form? : string
keytype? : string
keyparams? : string
name? : string
}
2020-01-07 05:19:18 +08:00
export interface LabelHTMLAttributes extends HTMLAttributes {
for ? : string
2018-10-14 08:46:30 +08:00
form? : string
}
2020-01-07 05:19:18 +08:00
export interface LiHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
value? : string | string [ ] | number
}
2020-01-07 05:19:18 +08:00
export interface LinkHTMLAttributes extends HTMLAttributes {
as ? : string
crossorigin? : string
2018-10-14 08:46:30 +08:00
href? : string
hreflang? : string
integrity? : string
media? : string
rel? : string
sizes? : string
type ? : string
}
2020-01-07 05:19:18 +08:00
export interface MapHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
name? : string
}
2020-01-07 05:19:18 +08:00
export interface MenuHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
type ? : string
}
2020-01-07 05:19:18 +08:00
export interface MediaHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
autoplay? : boolean
controls? : boolean
2020-01-07 05:19:18 +08:00
controlslist? : string
2018-10-14 08:46:30 +08:00
crossorigin? : string
loop? : boolean
mediagroup? : string
muted? : boolean
2020-01-07 05:19:18 +08:00
playsinline? : boolean
2018-10-14 08:46:30 +08:00
preload? : string
src? : string
}
2020-01-07 05:19:18 +08:00
export interface MetaHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
charset? : string
content? : string
httpequiv? : string
name? : string
}
2020-01-07 05:19:18 +08:00
export interface MeterHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
form? : string
high? : number
low? : number
max? : number | string
min? : number | string
optimum? : number
value? : string | string [ ] | number
}
2020-01-07 05:19:18 +08:00
export interface QuoteHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
cite? : string
}
2020-01-07 05:19:18 +08:00
export interface ObjectHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
classid? : string
data? : string
form? : string
height? : number | string
name? : string
type ? : string
usemap? : string
width? : number | string
wmode? : string
}
2020-01-07 05:19:18 +08:00
export interface OlHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
reversed? : boolean
start? : number
2020-01-07 05:19:18 +08:00
type ? : '1' | 'a' | 'A' | 'i' | 'I'
2018-10-14 08:46:30 +08:00
}
2020-01-07 05:19:18 +08:00
export interface OptgroupHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
disabled? : boolean
label? : string
}
2020-01-07 05:19:18 +08:00
export interface OptionHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
disabled? : boolean
label? : string
selected? : boolean
value? : string | string [ ] | number
}
2020-01-07 05:19:18 +08:00
export interface OutputHTMLAttributes extends HTMLAttributes {
for ? : string
2018-10-14 08:46:30 +08:00
form? : string
name? : string
}
2020-01-07 05:19:18 +08:00
export interface ParamHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
name? : string
value? : string | string [ ] | number
}
2020-01-07 05:19:18 +08:00
export interface ProgressHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
max? : number | string
value? : string | string [ ] | number
}
2020-01-07 05:19:18 +08:00
export interface ScriptHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
async ? : boolean
charset? : string
crossorigin? : string
defer? : boolean
integrity? : string
2020-01-07 05:19:18 +08:00
nomodule? : boolean
2018-10-14 08:46:30 +08:00
nonce? : string
src? : string
type ? : string
}
2020-01-07 05:19:18 +08:00
export interface SelectHTMLAttributes extends HTMLAttributes {
autocomplete? : string
2018-10-14 08:46:30 +08:00
autofocus? : boolean
disabled? : boolean
form? : string
multiple? : boolean
name? : string
required? : boolean
size? : number
value? : string | string [ ] | number
}
2020-01-07 05:19:18 +08:00
export interface SourceHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
media? : string
sizes? : string
src? : string
srcset? : string
type ? : string
}
2020-01-07 05:19:18 +08:00
export interface StyleHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
media? : string
nonce? : string
scoped? : boolean
type ? : string
}
2020-01-07 05:19:18 +08:00
export interface TableHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
cellpadding? : number | string
cellspacing? : number | string
summary? : string
}
2020-01-07 05:19:18 +08:00
export interface TextareaHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
autocomplete? : string
autofocus? : boolean
cols? : number
dirname? : string
disabled? : boolean
form? : string
maxlength? : number
minlength? : number
name? : string
placeholder? : string
readonly ? : boolean
required? : boolean
rows? : number
value? : string | string [ ] | number
wrap? : string
}
2020-01-07 05:19:18 +08:00
export interface TdHTMLAttributes extends HTMLAttributes {
align ? : 'left' | 'center' | 'right' | 'justify' | 'char'
2018-10-14 08:46:30 +08:00
colspan? : number
headers? : string
rowspan? : number
2020-01-07 05:19:18 +08:00
scope? : string
valign ? : 'top' | 'middle' | 'bottom' | 'baseline'
2018-10-14 08:46:30 +08:00
}
2020-01-07 05:19:18 +08:00
export interface ThHTMLAttributes extends HTMLAttributes {
align ? : 'left' | 'center' | 'right' | 'justify' | 'char'
2018-10-14 08:46:30 +08:00
colspan? : number
headers? : string
rowspan? : number
scope? : string
}
2020-01-07 05:19:18 +08:00
export interface TimeHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
datetime? : string
}
2020-01-07 05:19:18 +08:00
export interface TrackHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
default ? : boolean
kind? : string
label? : string
src? : string
srclang? : string
}
2020-01-07 05:19:18 +08:00
export interface VideoHTMLAttributes extends MediaHTMLAttributes {
2018-10-14 08:46:30 +08:00
height? : number | string
playsinline? : boolean
poster? : string
width? : number | string
2020-01-07 05:19:18 +08:00
disablePictureInPicture? : boolean
2018-10-14 08:46:30 +08:00
}
2020-01-07 05:19:18 +08:00
export interface WebViewHTMLAttributes extends HTMLAttributes {
2018-10-14 08:46:30 +08:00
allowfullscreen? : boolean
2020-01-07 05:19:18 +08:00
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 {
2020-04-15 22:51:07 +08:00
domPropsInnerHTML? : string
2020-01-07 05:19:18 +08:00
color? : string
2018-10-14 08:46:30 +08:00
height? : number | string
2020-01-07 05:19:18 +08:00
id? : string
lang? : string
2018-10-14 08:46:30 +08:00
max? : number | string
media? : string
method? : string
min? : number | string
name? : string
target? : string
type ? : string
width? : number | string
2020-01-07 05:19:18 +08:00
// 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'
2020-04-15 22:51:07 +08:00
'alignment-baseline' ? :
| 'auto'
| 'baseline'
| 'before-edge'
| 'text-before-edge'
| 'middle'
| 'central'
| 'after-edge'
| 'text-after-edge'
| 'ideographic'
| 'alphabetic'
| 'hanging'
| 'mathematical'
| 'inherit'
2020-01-07 05:19:18 +08:00
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
2020-04-15 22:51:07 +08:00
xlinkActuate? : string
xlinkArcrole? : string
xlinkHref? : string
xlinkRole? : string
xlinkShow? : string
xlinkTitle? : string
xlinkType? : string
2020-01-07 05:19:18 +08:00
y1? : number | string
y2? : number | string
y? : number | string
yChannelSelector? : string
z? : number | string
zoomAndPan? : string
2018-10-14 08:46:30 +08:00
}
interface IntrinsicElementAttributes {
a : AnchorHTMLAttributes
abbr : HTMLAttributes
address : HTMLAttributes
area : AreaHTMLAttributes
article : HTMLAttributes
aside : HTMLAttributes
audio : AudioHTMLAttributes
b : HTMLAttributes
base : BaseHTMLAttributes
bdi : HTMLAttributes
bdo : HTMLAttributes
big : HTMLAttributes
blockquote : BlockquoteHTMLAttributes
body : HTMLAttributes
br : HTMLAttributes
button : ButtonHTMLAttributes
canvas : CanvasHTMLAttributes
caption : HTMLAttributes
cite : HTMLAttributes
code : HTMLAttributes
col : ColHTMLAttributes
colgroup : ColgroupHTMLAttributes
2020-01-07 05:19:18 +08:00
data : DataHTMLAttributes
2018-10-14 08:46:30 +08:00
datalist : HTMLAttributes
dd : HTMLAttributes
del : DelHTMLAttributes
details : DetailsHTMLAttributes
dfn : HTMLAttributes
2020-01-07 05:19:18 +08:00
dialog : DialogHTMLAttributes
2018-10-14 08:46:30 +08:00
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
menuitem : HTMLAttributes
meta : MetaHTMLAttributes
meter : MeterHTMLAttributes
nav : HTMLAttributes
2020-01-07 05:19:18 +08:00
noindex : HTMLAttributes
2018-10-14 08:46:30 +08:00
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
2020-01-07 05:19:18 +08:00
template : HTMLAttributes
2018-10-14 08:46:30 +08:00
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
2020-01-07 05:19:18 +08:00
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
2018-10-14 08:46:30 +08:00
}
2020-01-07 05:19:18 +08:00
export interface Events {
2018-10-14 08:46:30 +08:00
// 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
onBlur : FocusEvent
// form events
onChange : Event
2020-01-07 05:19:18 +08:00
onBeforeinput : Event
2018-10-14 08:46:30 +08:00
onInput : Event
onReset : Event
onSubmit : Event
onInvalid : Event
// image events
onLoad : Event
onError : Event
// keyboard events
onKeydown : KeyboardEvent
onKeypress : KeyboardEvent
onKeyup : KeyboardEvent
// mouse events
2020-01-07 05:19:18 +08:00
onAuxclick : MouseEvent
2018-10-14 08:46:30 +08:00
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
2020-01-07 05:19:18 +08:00
// pointer events
onPointerdown : PointerEvent
onPointermove : PointerEvent
onPointerup : PointerEvent
onPointercancel : PointerEvent
onPointerenter : PointerEvent
onPointerleave : PointerEvent
onPointerover : PointerEvent
onPointerout : PointerEvent
2018-10-14 08:46:30 +08:00
// wheel events
onWheel : WheelEvent
// animation events
onAnimationstart : AnimationEvent
onAnimationend : AnimationEvent
onAnimationiteration : AnimationEvent
// transition events
onTransitionend : TransitionEvent
onTransitionstart : TransitionEvent
}
type StringKeyOf < T > = Extract < keyof T , string >
type EventHandlers < E > = {
[ K in StringKeyOf < E > ] ? : E [ K ] extends Function ? E [ K ] : ( payload : E [ K ] ) = > void
}
2019-11-05 07:38:55 +08:00
type ReservedProps = {
key? : string | number
ref? : string | Ref | ( ( ref : Element | ComponentPublicInstance | null ) = > void )
}
type ElementAttrs < T > = T & EventHandlers < Events > & ReservedProps
2018-10-14 08:46:30 +08:00
type NativeElements = {
[ K in StringKeyOf < IntrinsicElementAttributes > ] : ElementAttrs <
IntrinsicElementAttributes [ K ]
>
}
2019-11-05 07:38:55 +08:00
declare global {
namespace JSX {
interface Element { }
interface ElementClass {
$props : { }
}
interface ElementAttributesProperty {
$props : { }
}
interface IntrinsicElements extends NativeElements {
// allow arbitrary elements
[ name : string ] : any
}
2018-10-14 08:46:30 +08:00
}
}
2019-11-05 07:38:55 +08:00
// suppress ts:2669
export { }