vue3-yuanma/packages/runtime-dom/jsx.d.ts

1338 lines
36 KiB
TypeScript
Raw Normal View History

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
}
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]
>
}
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
}
}
// suppress ts:2669
export {}