jsx.d.ts 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353
  1. // This code is based on react definition in DefinitelyTyped published under the MIT license.
  2. // Repository: https://github.com/DefinitelyTyped/DefinitelyTyped
  3. // Path in the repository: types/react/index.d.ts
  4. //
  5. // Copyrights of original definition are:
  6. // AssureSign <http://www.assuresign.com>
  7. // Microsoft <https://microsoft.com>
  8. // John Reilly <https://github.com/johnnyreilly>
  9. // Benoit Benezech <https://github.com/bbenezech>
  10. // Patricio Zavolinsky <https://github.com/pzavolinsky>
  11. // Digiguru <https://github.com/digiguru>
  12. // Eric Anderson <https://github.com/ericanderson>
  13. // Dovydas Navickas <https://github.com/DovydasNavickas>
  14. // Josh Rutherford <https://github.com/theruther4d>
  15. // Guilherme Hübner <https://github.com/guilhermehubner>
  16. // Ferdy Budhidharma <https://github.com/ferdaber>
  17. // Johann Rakotoharisoa <https://github.com/jrakotoharisoa>
  18. // Olivier Pascal <https://github.com/pascaloliv>
  19. // Martin Hochel <https://github.com/hotell>
  20. // Frank Li <https://github.com/franklixuefei>
  21. // Jessica Franco <https://github.com/Jessidhia>
  22. // Saransh Kataria <https://github.com/saranshkataria>
  23. // Kanitkorn Sujautra <https://github.com/lukyth>
  24. // Sebastian Silbermann <https://github.com/eps1lon>
  25. import * as CSS from 'csstype'
  26. export interface CSSProperties
  27. extends CSS.Properties<string | number>,
  28. CSS.PropertiesHyphen<string | number> {
  29. /**
  30. * The index signature was removed to enable closed typing for style
  31. * using CSSType. You're able to use type assertion or module augmentation
  32. * to add properties or an index signature of your own.
  33. *
  34. * For examples and more information, visit:
  35. * https://github.com/frenic/csstype#what-should-i-do-when-i-get-type-errors
  36. */
  37. [v: `--${string}`]: string | number | undefined
  38. }
  39. type Booleanish = boolean | 'true' | 'false'
  40. type Numberish = number | string
  41. // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/
  42. interface AriaAttributes {
  43. /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */
  44. 'aria-activedescendant'?: string
  45. /** 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. */
  46. 'aria-atomic'?: Booleanish
  47. /**
  48. * 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
  49. * presented if they are made.
  50. */
  51. 'aria-autocomplete'?: 'none' | 'inline' | 'list' | 'both'
  52. /** 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. */
  53. 'aria-busy'?: Booleanish
  54. /**
  55. * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
  56. * @see aria-pressed @see aria-selected.
  57. */
  58. 'aria-checked'?: Booleanish | 'mixed'
  59. /**
  60. * Defines the total number of columns in a table, grid, or treegrid.
  61. * @see aria-colindex.
  62. */
  63. 'aria-colcount'?: Numberish
  64. /**
  65. * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
  66. * @see aria-colcount @see aria-colspan.
  67. */
  68. 'aria-colindex'?: Numberish
  69. /**
  70. * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
  71. * @see aria-colindex @see aria-rowspan.
  72. */
  73. 'aria-colspan'?: Numberish
  74. /**
  75. * Identifies the element (or elements) whose contents or presence are controlled by the current element.
  76. * @see aria-owns.
  77. */
  78. 'aria-controls'?: string
  79. /** Indicates the element that represents the current item within a container or set of related elements. */
  80. 'aria-current'?: Booleanish | 'page' | 'step' | 'location' | 'date' | 'time'
  81. /**
  82. * Identifies the element (or elements) that describes the object.
  83. * @see aria-labelledby
  84. */
  85. 'aria-describedby'?: string
  86. /**
  87. * Identifies the element that provides a detailed, extended description for the object.
  88. * @see aria-describedby.
  89. */
  90. 'aria-details'?: string
  91. /**
  92. * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
  93. * @see aria-hidden @see aria-readonly.
  94. */
  95. 'aria-disabled'?: Booleanish
  96. /**
  97. * Indicates what functions can be performed when a dragged object is released on the drop target.
  98. * @deprecated in ARIA 1.1
  99. */
  100. 'aria-dropeffect'?: 'none' | 'copy' | 'execute' | 'link' | 'move' | 'popup'
  101. /**
  102. * Identifies the element that provides an error message for the object.
  103. * @see aria-invalid @see aria-describedby.
  104. */
  105. 'aria-errormessage'?: string
  106. /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */
  107. 'aria-expanded'?: Booleanish
  108. /**
  109. * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion,
  110. * allows assistive technology to override the general default of reading in document source order.
  111. */
  112. 'aria-flowto'?: string
  113. /**
  114. * Indicates an element's "grabbed" state in a drag-and-drop operation.
  115. * @deprecated in ARIA 1.1
  116. */
  117. 'aria-grabbed'?: Booleanish
  118. /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */
  119. 'aria-haspopup'?: Booleanish | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'
  120. /**
  121. * Indicates whether the element is exposed to an accessibility API.
  122. * @see aria-disabled.
  123. */
  124. 'aria-hidden'?: Booleanish
  125. /**
  126. * Indicates the entered value does not conform to the format expected by the application.
  127. * @see aria-errormessage.
  128. */
  129. 'aria-invalid'?: Booleanish | 'grammar' | 'spelling'
  130. /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */
  131. 'aria-keyshortcuts'?: string
  132. /**
  133. * Defines a string value that labels the current element.
  134. * @see aria-labelledby.
  135. */
  136. 'aria-label'?: string
  137. /**
  138. * Identifies the element (or elements) that labels the current element.
  139. * @see aria-describedby.
  140. */
  141. 'aria-labelledby'?: string
  142. /** Defines the hierarchical level of an element within a structure. */
  143. 'aria-level'?: Numberish
  144. /** 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. */
  145. 'aria-live'?: 'off' | 'assertive' | 'polite'
  146. /** Indicates whether an element is modal when displayed. */
  147. 'aria-modal'?: Booleanish
  148. /** Indicates whether a text box accepts multiple lines of input or only a single line. */
  149. 'aria-multiline'?: Booleanish
  150. /** Indicates that the user may select more than one item from the current selectable descendants. */
  151. 'aria-multiselectable'?: Booleanish
  152. /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */
  153. 'aria-orientation'?: 'horizontal' | 'vertical'
  154. /**
  155. * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship
  156. * between DOM elements where the DOM hierarchy cannot be used to represent the relationship.
  157. * @see aria-controls.
  158. */
  159. 'aria-owns'?: string
  160. /**
  161. * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value.
  162. * A hint could be a sample value or a brief description of the expected format.
  163. */
  164. 'aria-placeholder'?: string
  165. /**
  166. * 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.
  167. * @see aria-setsize.
  168. */
  169. 'aria-posinset'?: Numberish
  170. /**
  171. * Indicates the current "pressed" state of toggle buttons.
  172. * @see aria-checked @see aria-selected.
  173. */
  174. 'aria-pressed'?: Booleanish | 'mixed'
  175. /**
  176. * Indicates that the element is not editable, but is otherwise operable.
  177. * @see aria-disabled.
  178. */
  179. 'aria-readonly'?: Booleanish
  180. /**
  181. * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.
  182. * @see aria-atomic.
  183. */
  184. 'aria-relevant'?: 'additions' | 'additions text' | 'all' | 'removals' | 'text'
  185. /** Indicates that user input is required on the element before a form may be submitted. */
  186. 'aria-required'?: Booleanish
  187. /** Defines a human-readable, author-localized description for the role of an element. */
  188. 'aria-roledescription'?: string
  189. /**
  190. * Defines the total number of rows in a table, grid, or treegrid.
  191. * @see aria-rowindex.
  192. */
  193. 'aria-rowcount'?: Numberish
  194. /**
  195. * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.
  196. * @see aria-rowcount @see aria-rowspan.
  197. */
  198. 'aria-rowindex'?: Numberish
  199. /**
  200. * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
  201. * @see aria-rowindex @see aria-colspan.
  202. */
  203. 'aria-rowspan'?: Numberish
  204. /**
  205. * Indicates the current "selected" state of various widgets.
  206. * @see aria-checked @see aria-pressed.
  207. */
  208. 'aria-selected'?: Booleanish
  209. /**
  210. * 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.
  211. * @see aria-posinset.
  212. */
  213. 'aria-setsize'?: Numberish
  214. /** Indicates if items in a table or grid are sorted in ascending or descending order. */
  215. 'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other'
  216. /** Defines the maximum allowed value for a range widget. */
  217. 'aria-valuemax'?: Numberish
  218. /** Defines the minimum allowed value for a range widget. */
  219. 'aria-valuemin'?: Numberish
  220. /**
  221. * Defines the current value for a range widget.
  222. * @see aria-valuetext.
  223. */
  224. 'aria-valuenow'?: Numberish
  225. /** Defines the human readable text alternative of aria-valuenow for a range widget. */
  226. 'aria-valuetext'?: string
  227. }
  228. // Vue's style normalization supports nested arrays
  229. export type StyleValue = string | CSSProperties | Array<StyleValue>
  230. export interface HTMLAttributes extends AriaAttributes, EventHandlers<Events> {
  231. innerHTML?: string
  232. class?: any
  233. style?: StyleValue
  234. // Standard HTML Attributes
  235. accesskey?: string
  236. contenteditable?: Booleanish | 'inherit'
  237. contextmenu?: string
  238. dir?: string
  239. draggable?: Booleanish
  240. hidden?: Booleanish
  241. id?: string
  242. lang?: string
  243. placeholder?: string
  244. spellcheck?: Booleanish
  245. tabindex?: Numberish
  246. title?: string
  247. translate?: 'yes' | 'no'
  248. // Unknown
  249. radiogroup?: string // <command>, <menuitem>
  250. // WAI-ARIA
  251. role?: string
  252. // RDFa Attributes
  253. about?: string
  254. datatype?: string
  255. inlist?: any
  256. prefix?: string
  257. property?: string
  258. resource?: string
  259. typeof?: string
  260. vocab?: string
  261. // Non-standard Attributes
  262. autocapitalize?: string
  263. autocorrect?: string
  264. autosave?: string
  265. color?: string
  266. itemprop?: string
  267. itemscope?: Booleanish
  268. itemtype?: string
  269. itemid?: string
  270. itemref?: string
  271. results?: Numberish
  272. security?: string
  273. unselectable?: 'on' | 'off'
  274. // Living Standard
  275. /**
  276. * Hints at the type of data that might be entered by the user while editing the element or its contents
  277. * @see https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute
  278. */
  279. inputmode?:
  280. | 'none'
  281. | 'text'
  282. | 'tel'
  283. | 'url'
  284. | 'email'
  285. | 'numeric'
  286. | 'decimal'
  287. | 'search'
  288. /**
  289. * Specify that a standard HTML element should behave like a defined custom built-in element
  290. * @see https://html.spec.whatwg.org/multipage/custom-elements.html#attr-is
  291. */
  292. is?: string
  293. }
  294. export interface AnchorHTMLAttributes extends HTMLAttributes {
  295. download?: any
  296. href?: string
  297. hreflang?: string
  298. media?: string
  299. ping?: string
  300. rel?: string
  301. target?: string
  302. type?: string
  303. referrerpolicy?: string
  304. }
  305. export interface AreaHTMLAttributes extends HTMLAttributes {
  306. alt?: string
  307. coords?: string
  308. download?: any
  309. href?: string
  310. hreflang?: string
  311. media?: string
  312. rel?: string
  313. shape?: string
  314. target?: string
  315. }
  316. export interface AudioHTMLAttributes extends MediaHTMLAttributes {}
  317. export interface BaseHTMLAttributes extends HTMLAttributes {
  318. href?: string
  319. target?: string
  320. }
  321. export interface BlockquoteHTMLAttributes extends HTMLAttributes {
  322. cite?: string
  323. }
  324. export interface ButtonHTMLAttributes extends HTMLAttributes {
  325. autofocus?: Booleanish
  326. disabled?: Booleanish
  327. form?: string
  328. formaction?: string
  329. formenctype?: string
  330. formmethod?: string
  331. formnovalidate?: Booleanish
  332. formtarget?: string
  333. name?: string
  334. type?: 'submit' | 'reset' | 'button'
  335. value?: string | string[] | number
  336. }
  337. export interface CanvasHTMLAttributes extends HTMLAttributes {
  338. height?: Numberish
  339. width?: Numberish
  340. }
  341. export interface ColHTMLAttributes extends HTMLAttributes {
  342. span?: Numberish
  343. width?: Numberish
  344. }
  345. export interface ColgroupHTMLAttributes extends HTMLAttributes {
  346. span?: Numberish
  347. }
  348. export interface DataHTMLAttributes extends HTMLAttributes {
  349. value?: string | string[] | number
  350. }
  351. export interface DetailsHTMLAttributes extends HTMLAttributes {
  352. open?: Booleanish
  353. }
  354. export interface DelHTMLAttributes extends HTMLAttributes {
  355. cite?: string
  356. datetime?: string
  357. }
  358. export interface DialogHTMLAttributes extends HTMLAttributes {
  359. open?: Booleanish
  360. }
  361. export interface EmbedHTMLAttributes extends HTMLAttributes {
  362. height?: Numberish
  363. src?: string
  364. type?: string
  365. width?: Numberish
  366. }
  367. export interface FieldsetHTMLAttributes extends HTMLAttributes {
  368. disabled?: Booleanish
  369. form?: string
  370. name?: string
  371. }
  372. export interface FormHTMLAttributes extends HTMLAttributes {
  373. acceptcharset?: string
  374. action?: string
  375. autocomplete?: string
  376. enctype?: string
  377. method?: string
  378. name?: string
  379. novalidate?: Booleanish
  380. target?: string
  381. }
  382. export interface HtmlHTMLAttributes extends HTMLAttributes {
  383. manifest?: string
  384. }
  385. export interface IframeHTMLAttributes extends HTMLAttributes {
  386. allow?: string
  387. allowfullscreen?: Booleanish
  388. allowtransparency?: Booleanish
  389. frameborder?: Numberish
  390. height?: Numberish
  391. marginheight?: Numberish
  392. marginwidth?: Numberish
  393. name?: string
  394. referrerpolicy?: string
  395. sandbox?: string
  396. scrolling?: string
  397. seamless?: Booleanish
  398. src?: string
  399. srcdoc?: string
  400. width?: Numberish
  401. }
  402. export interface ImgHTMLAttributes extends HTMLAttributes {
  403. alt?: string
  404. crossorigin?: 'anonymous' | 'use-credentials' | ''
  405. decoding?: 'async' | 'auto' | 'sync'
  406. height?: Numberish
  407. sizes?: string
  408. src?: string
  409. srcset?: string
  410. usemap?: string
  411. width?: Numberish
  412. }
  413. export interface InsHTMLAttributes extends HTMLAttributes {
  414. cite?: string
  415. datetime?: string
  416. }
  417. export interface InputHTMLAttributes extends HTMLAttributes {
  418. accept?: string
  419. alt?: string
  420. autocomplete?: string
  421. autofocus?: Booleanish
  422. capture?: boolean | 'user' | 'environment' // https://www.w3.org/tr/html-media-capture/#the-capture-attribute
  423. checked?: Booleanish | any[] | Set<any> // for IDE v-model multi-checkbox support
  424. crossorigin?: string
  425. disabled?: Booleanish
  426. form?: string
  427. formaction?: string
  428. formenctype?: string
  429. formmethod?: string
  430. formnovalidate?: Booleanish
  431. formtarget?: string
  432. height?: Numberish
  433. indeterminate?: boolean
  434. list?: string
  435. max?: Numberish
  436. maxlength?: Numberish
  437. min?: Numberish
  438. minlength?: Numberish
  439. multiple?: Booleanish
  440. name?: string
  441. pattern?: string
  442. placeholder?: string
  443. readonly?: Booleanish
  444. required?: Booleanish
  445. size?: Numberish
  446. src?: string
  447. step?: Numberish
  448. type?: string
  449. value?: any // we support :value to be bound to anything w/ v-model
  450. width?: Numberish
  451. }
  452. export interface KeygenHTMLAttributes extends HTMLAttributes {
  453. autofocus?: Booleanish
  454. challenge?: string
  455. disabled?: Booleanish
  456. form?: string
  457. keytype?: string
  458. keyparams?: string
  459. name?: string
  460. }
  461. export interface LabelHTMLAttributes extends HTMLAttributes {
  462. for?: string
  463. form?: string
  464. }
  465. export interface LiHTMLAttributes extends HTMLAttributes {
  466. value?: string | string[] | number
  467. }
  468. export interface LinkHTMLAttributes extends HTMLAttributes {
  469. as?: string
  470. crossorigin?: string
  471. href?: string
  472. hreflang?: string
  473. integrity?: string
  474. media?: string
  475. rel?: string
  476. sizes?: string
  477. type?: string
  478. }
  479. export interface MapHTMLAttributes extends HTMLAttributes {
  480. name?: string
  481. }
  482. export interface MenuHTMLAttributes extends HTMLAttributes {
  483. type?: string
  484. }
  485. export interface MediaHTMLAttributes extends HTMLAttributes {
  486. autoplay?: Booleanish
  487. controls?: Booleanish
  488. controlslist?: string
  489. crossorigin?: string
  490. loop?: Booleanish
  491. mediagroup?: string
  492. muted?: Booleanish
  493. playsinline?: Booleanish
  494. preload?: string
  495. src?: string
  496. }
  497. export interface MetaHTMLAttributes extends HTMLAttributes {
  498. charset?: string
  499. content?: string
  500. httpequiv?: string
  501. name?: string
  502. }
  503. export interface MeterHTMLAttributes extends HTMLAttributes {
  504. form?: string
  505. high?: Numberish
  506. low?: Numberish
  507. max?: Numberish
  508. min?: Numberish
  509. optimum?: Numberish
  510. value?: string | string[] | number
  511. }
  512. export interface QuoteHTMLAttributes extends HTMLAttributes {
  513. cite?: string
  514. }
  515. export interface ObjectHTMLAttributes extends HTMLAttributes {
  516. classid?: string
  517. data?: string
  518. form?: string
  519. height?: Numberish
  520. name?: string
  521. type?: string
  522. usemap?: string
  523. width?: Numberish
  524. wmode?: string
  525. }
  526. export interface OlHTMLAttributes extends HTMLAttributes {
  527. reversed?: Booleanish
  528. start?: Numberish
  529. type?: '1' | 'a' | 'A' | 'i' | 'I'
  530. }
  531. export interface OptgroupHTMLAttributes extends HTMLAttributes {
  532. disabled?: Booleanish
  533. label?: string
  534. }
  535. export interface OptionHTMLAttributes extends HTMLAttributes {
  536. disabled?: Booleanish
  537. label?: string
  538. selected?: Booleanish
  539. value?: any // we support :value to be bound to anything w/ v-model
  540. }
  541. export interface OutputHTMLAttributes extends HTMLAttributes {
  542. for?: string
  543. form?: string
  544. name?: string
  545. }
  546. export interface ParamHTMLAttributes extends HTMLAttributes {
  547. name?: string
  548. value?: string | string[] | number
  549. }
  550. export interface ProgressHTMLAttributes extends HTMLAttributes {
  551. max?: Numberish
  552. value?: string | string[] | number
  553. }
  554. export interface ScriptHTMLAttributes extends HTMLAttributes {
  555. async?: Booleanish
  556. charset?: string
  557. crossorigin?: string
  558. defer?: Booleanish
  559. integrity?: string
  560. nomodule?: Booleanish
  561. nonce?: string
  562. src?: string
  563. type?: string
  564. }
  565. export interface SelectHTMLAttributes extends HTMLAttributes {
  566. autocomplete?: string
  567. autofocus?: Booleanish
  568. disabled?: Booleanish
  569. form?: string
  570. multiple?: Booleanish
  571. name?: string
  572. required?: Booleanish
  573. size?: Numberish
  574. value?: any // we support :value to be bound to anything w/ v-model
  575. }
  576. export interface SourceHTMLAttributes extends HTMLAttributes {
  577. media?: string
  578. sizes?: string
  579. src?: string
  580. srcset?: string
  581. type?: string
  582. }
  583. export interface StyleHTMLAttributes extends HTMLAttributes {
  584. media?: string
  585. nonce?: string
  586. scoped?: Booleanish
  587. type?: string
  588. }
  589. export interface TableHTMLAttributes extends HTMLAttributes {
  590. cellpadding?: Numberish
  591. cellspacing?: Numberish
  592. summary?: string
  593. }
  594. export interface TextareaHTMLAttributes extends HTMLAttributes {
  595. autocomplete?: string
  596. autofocus?: Booleanish
  597. cols?: Numberish
  598. dirname?: string
  599. disabled?: Booleanish
  600. form?: string
  601. maxlength?: Numberish
  602. minlength?: Numberish
  603. name?: string
  604. placeholder?: string
  605. readonly?: boolean
  606. required?: Booleanish
  607. rows?: Numberish
  608. value?: string | string[] | number
  609. wrap?: string
  610. }
  611. export interface TdHTMLAttributes extends HTMLAttributes {
  612. align?: 'left' | 'center' | 'right' | 'justify' | 'char'
  613. colspan?: Numberish
  614. headers?: string
  615. rowspan?: Numberish
  616. scope?: string
  617. valign?: 'top' | 'middle' | 'bottom' | 'baseline'
  618. }
  619. export interface ThHTMLAttributes extends HTMLAttributes {
  620. align?: 'left' | 'center' | 'right' | 'justify' | 'char'
  621. colspan?: Numberish
  622. headers?: string
  623. rowspan?: Numberish
  624. scope?: string
  625. }
  626. export interface TimeHTMLAttributes extends HTMLAttributes {
  627. datetime?: string
  628. }
  629. export interface TrackHTMLAttributes extends HTMLAttributes {
  630. default?: Booleanish
  631. kind?: string
  632. label?: string
  633. src?: string
  634. srclang?: string
  635. }
  636. export interface VideoHTMLAttributes extends MediaHTMLAttributes {
  637. height?: Numberish
  638. playsinline?: Booleanish
  639. poster?: string
  640. width?: Numberish
  641. disablePictureInPicture?: Booleanish
  642. }
  643. export interface WebViewHTMLAttributes extends HTMLAttributes {
  644. allowfullscreen?: Booleanish
  645. allowpopups?: Booleanish
  646. autoFocus?: Booleanish
  647. autosize?: Booleanish
  648. blinkfeatures?: string
  649. disableblinkfeatures?: string
  650. disableguestresize?: Booleanish
  651. disablewebsecurity?: Booleanish
  652. guestinstance?: string
  653. httpreferrer?: string
  654. nodeintegration?: Booleanish
  655. partition?: string
  656. plugins?: Booleanish
  657. preload?: string
  658. src?: string
  659. useragent?: string
  660. webpreferences?: string
  661. }
  662. export interface SVGAttributes extends AriaAttributes, EventHandlers<Events> {
  663. innerHTML?: string
  664. /**
  665. * SVG Styling Attributes
  666. * @see https://www.w3.org/TR/SVG/styling.html#ElementSpecificStyling
  667. */
  668. class?: any
  669. style?: StyleValue
  670. color?: string
  671. height?: Numberish
  672. id?: string
  673. lang?: string
  674. max?: Numberish
  675. media?: string
  676. method?: string
  677. min?: Numberish
  678. name?: string
  679. target?: string
  680. type?: string
  681. width?: Numberish
  682. // Other HTML properties supported by SVG elements in browsers
  683. role?: string
  684. tabindex?: Numberish
  685. // SVG Specific attributes
  686. 'accent-height'?: Numberish
  687. accumulate?: 'none' | 'sum'
  688. additive?: 'replace' | 'sum'
  689. 'alignment-baseline'?:
  690. | 'auto'
  691. | 'baseline'
  692. | 'before-edge'
  693. | 'text-before-edge'
  694. | 'middle'
  695. | 'central'
  696. | 'after-edge'
  697. | 'text-after-edge'
  698. | 'ideographic'
  699. | 'alphabetic'
  700. | 'hanging'
  701. | 'mathematical'
  702. | 'inherit'
  703. allowReorder?: 'no' | 'yes'
  704. alphabetic?: Numberish
  705. amplitude?: Numberish
  706. 'arabic-form'?: 'initial' | 'medial' | 'terminal' | 'isolated'
  707. ascent?: Numberish
  708. attributeName?: string
  709. attributeType?: string
  710. autoReverse?: Numberish
  711. azimuth?: Numberish
  712. baseFrequency?: Numberish
  713. 'baseline-shift'?: Numberish
  714. baseProfile?: Numberish
  715. bbox?: Numberish
  716. begin?: Numberish
  717. bias?: Numberish
  718. by?: Numberish
  719. calcMode?: Numberish
  720. 'cap-height'?: Numberish
  721. clip?: Numberish
  722. 'clip-path'?: string
  723. clipPathUnits?: Numberish
  724. 'clip-rule'?: Numberish
  725. 'color-interpolation'?: Numberish
  726. 'color-interpolation-filters'?: 'auto' | 'sRGB' | 'linearRGB' | 'inherit'
  727. 'color-profile'?: Numberish
  728. 'color-rendering'?: Numberish
  729. contentScriptType?: Numberish
  730. contentStyleType?: Numberish
  731. cursor?: Numberish
  732. cx?: Numberish
  733. cy?: Numberish
  734. d?: string
  735. decelerate?: Numberish
  736. descent?: Numberish
  737. diffuseConstant?: Numberish
  738. direction?: Numberish
  739. display?: Numberish
  740. divisor?: Numberish
  741. 'dominant-baseline'?: Numberish
  742. dur?: Numberish
  743. dx?: Numberish
  744. dy?: Numberish
  745. edgeMode?: Numberish
  746. elevation?: Numberish
  747. 'enable-background'?: Numberish
  748. end?: Numberish
  749. exponent?: Numberish
  750. externalResourcesRequired?: Numberish
  751. fill?: string
  752. 'fill-opacity'?: Numberish
  753. 'fill-rule'?: 'nonzero' | 'evenodd' | 'inherit'
  754. filter?: string
  755. filterRes?: Numberish
  756. filterUnits?: Numberish
  757. 'flood-color'?: Numberish
  758. 'flood-opacity'?: Numberish
  759. focusable?: Numberish
  760. 'font-family'?: string
  761. 'font-size'?: Numberish
  762. 'font-size-adjust'?: Numberish
  763. 'font-stretch'?: Numberish
  764. 'font-style'?: Numberish
  765. 'font-variant'?: Numberish
  766. 'font-weight'?: Numberish
  767. format?: Numberish
  768. from?: Numberish
  769. fx?: Numberish
  770. fy?: Numberish
  771. g1?: Numberish
  772. g2?: Numberish
  773. 'glyph-name'?: Numberish
  774. 'glyph-orientation-horizontal'?: Numberish
  775. 'glyph-orientation-vertical'?: Numberish
  776. glyphRef?: Numberish
  777. gradientTransform?: string
  778. gradientUnits?: string
  779. hanging?: Numberish
  780. 'horiz-adv-x'?: Numberish
  781. 'horiz-origin-x'?: Numberish
  782. href?: string
  783. ideographic?: Numberish
  784. 'image-rendering'?: Numberish
  785. in2?: Numberish
  786. in?: string
  787. intercept?: Numberish
  788. k1?: Numberish
  789. k2?: Numberish
  790. k3?: Numberish
  791. k4?: Numberish
  792. k?: Numberish
  793. kernelMatrix?: Numberish
  794. kernelUnitLength?: Numberish
  795. kerning?: Numberish
  796. keyPoints?: Numberish
  797. keySplines?: Numberish
  798. keyTimes?: Numberish
  799. lengthAdjust?: Numberish
  800. 'letter-spacing'?: Numberish
  801. 'lighting-color'?: Numberish
  802. limitingConeAngle?: Numberish
  803. local?: Numberish
  804. 'marker-end'?: string
  805. markerHeight?: Numberish
  806. 'marker-mid'?: string
  807. 'marker-start'?: string
  808. markerUnits?: Numberish
  809. markerWidth?: Numberish
  810. mask?: string
  811. maskContentUnits?: Numberish
  812. maskUnits?: Numberish
  813. mathematical?: Numberish
  814. mode?: Numberish
  815. numOctaves?: Numberish
  816. offset?: Numberish
  817. opacity?: Numberish
  818. operator?: Numberish
  819. order?: Numberish
  820. orient?: Numberish
  821. orientation?: Numberish
  822. origin?: Numberish
  823. overflow?: Numberish
  824. 'overline-position'?: Numberish
  825. 'overline-thickness'?: Numberish
  826. 'paint-order'?: Numberish
  827. 'panose-1'?: Numberish
  828. pathLength?: Numberish
  829. patternContentUnits?: string
  830. patternTransform?: Numberish
  831. patternUnits?: string
  832. 'pointer-events'?: Numberish
  833. points?: string
  834. pointsAtX?: Numberish
  835. pointsAtY?: Numberish
  836. pointsAtZ?: Numberish
  837. preserveAlpha?: Numberish
  838. preserveAspectRatio?: string
  839. primitiveUnits?: Numberish
  840. r?: Numberish
  841. radius?: Numberish
  842. refX?: Numberish
  843. refY?: Numberish
  844. renderingIntent?: Numberish
  845. repeatCount?: Numberish
  846. repeatDur?: Numberish
  847. requiredExtensions?: Numberish
  848. requiredFeatures?: Numberish
  849. restart?: Numberish
  850. result?: string
  851. rotate?: Numberish
  852. rx?: Numberish
  853. ry?: Numberish
  854. scale?: Numberish
  855. seed?: Numberish
  856. 'shape-rendering'?: Numberish
  857. slope?: Numberish
  858. spacing?: Numberish
  859. specularConstant?: Numberish
  860. specularExponent?: Numberish
  861. speed?: Numberish
  862. spreadMethod?: string
  863. startOffset?: Numberish
  864. stdDeviation?: Numberish
  865. stemh?: Numberish
  866. stemv?: Numberish
  867. stitchTiles?: Numberish
  868. 'stop-color'?: string
  869. 'stop-opacity'?: Numberish
  870. 'strikethrough-position'?: Numberish
  871. 'strikethrough-thickness'?: Numberish
  872. string?: Numberish
  873. stroke?: string
  874. 'stroke-dasharray'?: Numberish
  875. 'stroke-dashoffset'?: Numberish
  876. 'stroke-linecap'?: 'butt' | 'round' | 'square' | 'inherit'
  877. 'stroke-linejoin'?: 'miter' | 'round' | 'bevel' | 'inherit'
  878. 'stroke-miterlimit'?: Numberish
  879. 'stroke-opacity'?: Numberish
  880. 'stroke-width'?: Numberish
  881. surfaceScale?: Numberish
  882. systemLanguage?: Numberish
  883. tableValues?: Numberish
  884. targetX?: Numberish
  885. targetY?: Numberish
  886. 'text-anchor'?: string
  887. 'text-decoration'?: Numberish
  888. textLength?: Numberish
  889. 'text-rendering'?: Numberish
  890. to?: Numberish
  891. transform?: string
  892. u1?: Numberish
  893. u2?: Numberish
  894. 'underline-position'?: Numberish
  895. 'underline-thickness'?: Numberish
  896. unicode?: Numberish
  897. 'unicode-bidi'?: Numberish
  898. 'unicode-range'?: Numberish
  899. 'unitsPer-em'?: Numberish
  900. 'v-alphabetic'?: Numberish
  901. values?: string
  902. 'vector-effect'?: Numberish
  903. version?: string
  904. 'vert-adv-y'?: Numberish
  905. 'vert-origin-x'?: Numberish
  906. 'vert-origin-y'?: Numberish
  907. 'v-hanging'?: Numberish
  908. 'v-ideographic'?: Numberish
  909. viewBox?: string
  910. viewTarget?: Numberish
  911. visibility?: Numberish
  912. 'v-mathematical'?: Numberish
  913. widths?: Numberish
  914. 'word-spacing'?: Numberish
  915. 'writing-mode'?: Numberish
  916. x1?: Numberish
  917. x2?: Numberish
  918. x?: Numberish
  919. xChannelSelector?: string
  920. 'x-height'?: Numberish
  921. xlinkActuate?: string
  922. xlinkArcrole?: string
  923. xlinkHref?: string
  924. xlinkRole?: string
  925. xlinkShow?: string
  926. xlinkTitle?: string
  927. xlinkType?: string
  928. xmlns?: string
  929. y1?: Numberish
  930. y2?: Numberish
  931. y?: Numberish
  932. yChannelSelector?: string
  933. z?: Numberish
  934. zoomAndPan?: string
  935. }
  936. interface IntrinsicElementAttributes {
  937. a: AnchorHTMLAttributes
  938. abbr: HTMLAttributes
  939. address: HTMLAttributes
  940. area: AreaHTMLAttributes
  941. article: HTMLAttributes
  942. aside: HTMLAttributes
  943. audio: AudioHTMLAttributes
  944. b: HTMLAttributes
  945. base: BaseHTMLAttributes
  946. bdi: HTMLAttributes
  947. bdo: HTMLAttributes
  948. blockquote: BlockquoteHTMLAttributes
  949. body: HTMLAttributes
  950. br: HTMLAttributes
  951. button: ButtonHTMLAttributes
  952. canvas: CanvasHTMLAttributes
  953. caption: HTMLAttributes
  954. cite: HTMLAttributes
  955. code: HTMLAttributes
  956. col: ColHTMLAttributes
  957. colgroup: ColgroupHTMLAttributes
  958. data: DataHTMLAttributes
  959. datalist: HTMLAttributes
  960. dd: HTMLAttributes
  961. del: DelHTMLAttributes
  962. details: DetailsHTMLAttributes
  963. dfn: HTMLAttributes
  964. dialog: DialogHTMLAttributes
  965. div: HTMLAttributes
  966. dl: HTMLAttributes
  967. dt: HTMLAttributes
  968. em: HTMLAttributes
  969. embed: EmbedHTMLAttributes
  970. fieldset: FieldsetHTMLAttributes
  971. figcaption: HTMLAttributes
  972. figure: HTMLAttributes
  973. footer: HTMLAttributes
  974. form: FormHTMLAttributes
  975. h1: HTMLAttributes
  976. h2: HTMLAttributes
  977. h3: HTMLAttributes
  978. h4: HTMLAttributes
  979. h5: HTMLAttributes
  980. h6: HTMLAttributes
  981. head: HTMLAttributes
  982. header: HTMLAttributes
  983. hgroup: HTMLAttributes
  984. hr: HTMLAttributes
  985. html: HtmlHTMLAttributes
  986. i: HTMLAttributes
  987. iframe: IframeHTMLAttributes
  988. img: ImgHTMLAttributes
  989. input: InputHTMLAttributes
  990. ins: InsHTMLAttributes
  991. kbd: HTMLAttributes
  992. keygen: KeygenHTMLAttributes
  993. label: LabelHTMLAttributes
  994. legend: HTMLAttributes
  995. li: LiHTMLAttributes
  996. link: LinkHTMLAttributes
  997. main: HTMLAttributes
  998. map: MapHTMLAttributes
  999. mark: HTMLAttributes
  1000. menu: MenuHTMLAttributes
  1001. meta: MetaHTMLAttributes
  1002. meter: MeterHTMLAttributes
  1003. nav: HTMLAttributes
  1004. noindex: HTMLAttributes
  1005. noscript: HTMLAttributes
  1006. object: ObjectHTMLAttributes
  1007. ol: OlHTMLAttributes
  1008. optgroup: OptgroupHTMLAttributes
  1009. option: OptionHTMLAttributes
  1010. output: OutputHTMLAttributes
  1011. p: HTMLAttributes
  1012. param: ParamHTMLAttributes
  1013. picture: HTMLAttributes
  1014. pre: HTMLAttributes
  1015. progress: ProgressHTMLAttributes
  1016. q: QuoteHTMLAttributes
  1017. rp: HTMLAttributes
  1018. rt: HTMLAttributes
  1019. ruby: HTMLAttributes
  1020. s: HTMLAttributes
  1021. samp: HTMLAttributes
  1022. script: ScriptHTMLAttributes
  1023. section: HTMLAttributes
  1024. select: SelectHTMLAttributes
  1025. small: HTMLAttributes
  1026. source: SourceHTMLAttributes
  1027. span: HTMLAttributes
  1028. strong: HTMLAttributes
  1029. style: StyleHTMLAttributes
  1030. sub: HTMLAttributes
  1031. summary: HTMLAttributes
  1032. sup: HTMLAttributes
  1033. table: TableHTMLAttributes
  1034. template: HTMLAttributes
  1035. tbody: HTMLAttributes
  1036. td: TdHTMLAttributes
  1037. textarea: TextareaHTMLAttributes
  1038. tfoot: HTMLAttributes
  1039. th: ThHTMLAttributes
  1040. thead: HTMLAttributes
  1041. time: TimeHTMLAttributes
  1042. title: HTMLAttributes
  1043. tr: HTMLAttributes
  1044. track: TrackHTMLAttributes
  1045. u: HTMLAttributes
  1046. ul: HTMLAttributes
  1047. var: HTMLAttributes
  1048. video: VideoHTMLAttributes
  1049. wbr: HTMLAttributes
  1050. webview: WebViewHTMLAttributes
  1051. // SVG
  1052. svg: SVGAttributes
  1053. animate: SVGAttributes
  1054. animateMotion: SVGAttributes
  1055. animateTransform: SVGAttributes
  1056. circle: SVGAttributes
  1057. clipPath: SVGAttributes
  1058. defs: SVGAttributes
  1059. desc: SVGAttributes
  1060. ellipse: SVGAttributes
  1061. feBlend: SVGAttributes
  1062. feColorMatrix: SVGAttributes
  1063. feComponentTransfer: SVGAttributes
  1064. feComposite: SVGAttributes
  1065. feConvolveMatrix: SVGAttributes
  1066. feDiffuseLighting: SVGAttributes
  1067. feDisplacementMap: SVGAttributes
  1068. feDistantLight: SVGAttributes
  1069. feDropShadow: SVGAttributes
  1070. feFlood: SVGAttributes
  1071. feFuncA: SVGAttributes
  1072. feFuncB: SVGAttributes
  1073. feFuncG: SVGAttributes
  1074. feFuncR: SVGAttributes
  1075. feGaussianBlur: SVGAttributes
  1076. feImage: SVGAttributes
  1077. feMerge: SVGAttributes
  1078. feMergeNode: SVGAttributes
  1079. feMorphology: SVGAttributes
  1080. feOffset: SVGAttributes
  1081. fePointLight: SVGAttributes
  1082. feSpecularLighting: SVGAttributes
  1083. feSpotLight: SVGAttributes
  1084. feTile: SVGAttributes
  1085. feTurbulence: SVGAttributes
  1086. filter: SVGAttributes
  1087. foreignObject: SVGAttributes
  1088. g: SVGAttributes
  1089. image: SVGAttributes
  1090. line: SVGAttributes
  1091. linearGradient: SVGAttributes
  1092. marker: SVGAttributes
  1093. mask: SVGAttributes
  1094. metadata: SVGAttributes
  1095. mpath: SVGAttributes
  1096. path: SVGAttributes
  1097. pattern: SVGAttributes
  1098. polygon: SVGAttributes
  1099. polyline: SVGAttributes
  1100. radialGradient: SVGAttributes
  1101. rect: SVGAttributes
  1102. stop: SVGAttributes
  1103. switch: SVGAttributes
  1104. symbol: SVGAttributes
  1105. text: SVGAttributes
  1106. textPath: SVGAttributes
  1107. tspan: SVGAttributes
  1108. use: SVGAttributes
  1109. view: SVGAttributes
  1110. }
  1111. export interface Events {
  1112. // clipboard events
  1113. onCopy: ClipboardEvent
  1114. onCut: ClipboardEvent
  1115. onPaste: ClipboardEvent
  1116. // composition events
  1117. onCompositionend: CompositionEvent
  1118. onCompositionstart: CompositionEvent
  1119. onCompositionupdate: CompositionEvent
  1120. // drag drop events
  1121. onDrag: DragEvent
  1122. onDragend: DragEvent
  1123. onDragenter: DragEvent
  1124. onDragexit: DragEvent
  1125. onDragleave: DragEvent
  1126. onDragover: DragEvent
  1127. onDragstart: DragEvent
  1128. onDrop: DragEvent
  1129. // focus events
  1130. onFocus: FocusEvent
  1131. onFocusin: FocusEvent
  1132. onFocusout: FocusEvent
  1133. onBlur: FocusEvent
  1134. // form events
  1135. onChange: Event
  1136. onBeforeinput: Event
  1137. onInput: Event
  1138. onReset: Event
  1139. onSubmit: Event
  1140. onInvalid: Event
  1141. // image events
  1142. onLoad: Event
  1143. onError: Event
  1144. // keyboard events
  1145. onKeydown: KeyboardEvent
  1146. onKeypress: KeyboardEvent
  1147. onKeyup: KeyboardEvent
  1148. // mouse events
  1149. onAuxclick: MouseEvent
  1150. onClick: MouseEvent
  1151. onContextmenu: MouseEvent
  1152. onDblclick: MouseEvent
  1153. onMousedown: MouseEvent
  1154. onMouseenter: MouseEvent
  1155. onMouseleave: MouseEvent
  1156. onMousemove: MouseEvent
  1157. onMouseout: MouseEvent
  1158. onMouseover: MouseEvent
  1159. onMouseup: MouseEvent
  1160. // media events
  1161. onAbort: Event
  1162. onCanplay: Event
  1163. onCanplaythrough: Event
  1164. onDurationchange: Event
  1165. onEmptied: Event
  1166. onEncrypted: Event
  1167. onEnded: Event
  1168. onLoadeddata: Event
  1169. onLoadedmetadata: Event
  1170. onLoadstart: Event
  1171. onPause: Event
  1172. onPlay: Event
  1173. onPlaying: Event
  1174. onProgress: Event
  1175. onRatechange: Event
  1176. onSeeked: Event
  1177. onSeeking: Event
  1178. onStalled: Event
  1179. onSuspend: Event
  1180. onTimeupdate: Event
  1181. onVolumechange: Event
  1182. onWaiting: Event
  1183. // selection events
  1184. onSelect: Event
  1185. // UI events
  1186. onScroll: UIEvent
  1187. // touch events
  1188. onTouchcancel: TouchEvent
  1189. onTouchend: TouchEvent
  1190. onTouchmove: TouchEvent
  1191. onTouchstart: TouchEvent
  1192. // pointer events
  1193. onPointerdown: PointerEvent
  1194. onPointermove: PointerEvent
  1195. onPointerup: PointerEvent
  1196. onPointercancel: PointerEvent
  1197. onPointerenter: PointerEvent
  1198. onPointerleave: PointerEvent
  1199. onPointerover: PointerEvent
  1200. onPointerout: PointerEvent
  1201. // wheel events
  1202. onWheel: WheelEvent
  1203. // animation events
  1204. onAnimationstart: AnimationEvent
  1205. onAnimationend: AnimationEvent
  1206. onAnimationiteration: AnimationEvent
  1207. // transition events
  1208. onTransitionend: TransitionEvent
  1209. onTransitionstart: TransitionEvent
  1210. }
  1211. type EventHandlers<E> = {
  1212. [K in keyof E]?: E[K] extends (...args: any) => any
  1213. ? E[K]
  1214. : (payload: E[K]) => void
  1215. }
  1216. type ReservedProps = {
  1217. key?: string | number | symbol
  1218. ref?: VNodeData['ref']
  1219. /**
  1220. * @deprecated Old named slot syntax has been deprecated, use the new syntax
  1221. * instead: `<template v-slot:name>`
  1222. * https://v2.vuejs.org/v2/guide/components-slots.html#Named-Slots
  1223. */
  1224. slot?: string
  1225. }
  1226. type ElementAttrs<T> = T & ReservedProps
  1227. type NativeElements = {
  1228. [K in keyof IntrinsicElementAttributes]: ElementAttrs<
  1229. IntrinsicElementAttributes[K]
  1230. >
  1231. }
  1232. import {
  1233. VNode,
  1234. VNodeData,
  1235. ComponentCustomProps,
  1236. AllowedComponentProps
  1237. } from './vnode'
  1238. declare global {
  1239. namespace JSX {
  1240. interface Element extends VNode {}
  1241. interface ElementClass {
  1242. $props: {}
  1243. }
  1244. interface ElementAttributesProperty {
  1245. $props: {}
  1246. }
  1247. interface IntrinsicElements extends NativeElements {
  1248. // allow arbitrary elements
  1249. // @ts-ignore suppress ts:2374 = Duplicate string index signature.
  1250. [name: string]: any
  1251. }
  1252. interface IntrinsicAttributes
  1253. extends ReservedProps,
  1254. AllowedComponentProps,
  1255. ComponentCustomProps {}
  1256. }
  1257. }
  1258. // suppress ts:2669
  1259. export {}