]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
types: update jsx support (#587)
authorYu Zong <liuxuanzy@vip.qq.com>
Mon, 6 Jan 2020 21:19:18 +0000 (15:19 -0600)
committerEvan You <yyx990803@gmail.com>
Mon, 6 Jan 2020 21:19:18 +0000 (16:19 -0500)
package.json
packages/runtime-dom/jsx.d.ts
packages/runtime-dom/package.json
yarn.lock

index ab6d0f4ad27ddf9143dd8b84509af0229e7f4943..6cd49c73b05b90c738be7a3e1d09597150454de5 100644 (file)
@@ -42,6 +42,7 @@
     "@types/puppeteer": "^2.0.0",
     "brotli": "^1.3.2",
     "chalk": "^2.4.2",
+    "csstype": "^2.6.8",
     "conventional-changelog-cli": "^2.0.31",
     "enquirer": "^2.3.2",
     "execa": "^2.0.4",
index 05a8654676e976610e3cf60353fa65fb44fe1180..cdf6f409d227708d6412329ddc504912e4661980 100644 (file)
 import { Ref, ComponentPublicInstance } from '@vue/runtime-core'
 
-// This code is based on https://github.com/wonderful-panda/vue-tsx-support
-// published under the MIT license.
-// Copyright by @wonderful-panda
-//
-// which is in turn based on the react definition in DefinitelyTyped
-// published under the MIT license.
+// This code is based on react definition in DefinitelyTyped published under the MIT license.
 //      Repository: https://github.com/DefinitelyTyped/DefinitelyTyped
-//      Path in the repository: types/react/v15/index.d.ts
+//      Path in the repository: types/react/index.d.ts
 //
 // Copyrights of original definition are:
-//      Asana <https://asana.com>
 //      AssureSign <http://www.assuresign.com>
 //      Microsoft <https://microsoft.com>
-//      John Reilly <https://github.com/johnnyreilly/>
+//                 John Reilly <https://github.com/johnnyreilly>
 //      Benoit Benezech <https://github.com/bbenezech>
 //      Patricio Zavolinsky <https://github.com/pzavolinsky>
 //      Digiguru <https://github.com/digiguru>
 //      Eric Anderson <https://github.com/ericanderson>
-//      Albert Kurniawan <https://github.com/morcerf>
-//      Tanguy Krotoff <https://github.com/tkrotoff>
 //      Dovydas Navickas <https://github.com/DovydasNavickas>
-//      Stéphane Goetz <https://github.com/onigoetz>
+//                 Josh Rutherford <https://github.com/theruther4d>
+//                 Guilherme Hübner <https://github.com/guilhermehubner>
+//                 Ferdy Budhidharma <https://github.com/ferdaber>
+//                 Johann Rakotoharisoa <https://github.com/jrakotoharisoa>
+//                 Olivier Pascal <https://github.com/pascaloliv>
+//                 Martin Hochel <https://github.com/hotell>
+//                 Frank Li <https://github.com/franklixuefei>
+//                 Jessica Franco <https://github.com/Jessidhia>
+//                 Saransh Kataria <https://github.com/saranshkataria>
+//                 Kanitkorn Sujautra <https://github.com/lukyth>
+//                 Sebastian Silbermann <https://github.com/eps1lon>
+
+import * as CSS from 'csstype'
+
+export interface CSSProperties extends CSS.Properties<string | number> {
+  /**
+   * The index signature was removed to enable closed typing for style
+   * using CSSType. You're able to use type assertion or module augmentation
+   * to add properties or an index signature of your own.
+   *
+   * For examples and more information, visit:
+   * https://github.com/frenic/csstype#what-should-i-do-when-i-get-type-errors
+   */
+}
+
+type Booleanish = boolean | 'true' | 'false'
+
+// All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/
+interface AriaAttributes {
+  /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */
+  'aria-activedescendant'?: string
+  /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */
+  'aria-atomic'?: boolean | 'false' | 'true'
+  /**
+   * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be
+   * presented if they are made.
+   */
+  'aria-autocomplete'?: 'none' | 'inline' | 'list' | 'both'
+  /** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */
+  'aria-busy'?: boolean | 'false' | 'true'
+  /**
+   * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
+   * @see aria-pressed @see aria-selected.
+   */
+  'aria-checked'?: boolean | 'false' | 'mixed' | 'true'
+  /**
+   * Defines the total number of columns in a table, grid, or treegrid.
+   * @see aria-colindex.
+   */
+  'aria-colcount'?: number
+  /**
+   * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
+   * @see aria-colcount @see aria-colspan.
+   */
+  'aria-colindex'?: number
+  /**
+   * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
+   * @see aria-colindex @see aria-rowspan.
+   */
+  'aria-colspan'?: number
+  /**
+   * Identifies the element (or elements) whose contents or presence are controlled by the current element.
+   * @see aria-owns.
+   */
+  'aria-controls'?: string
+  /** Indicates the element that represents the current item within a container or set of related elements. */
+  'aria-current'?: boolean | 'false' | 'true' | 'page' | 'step' | 'location' | 'date' | 'time'
+  /**
+   * Identifies the element (or elements) that describes the object.
+   * @see aria-labelledby
+   */
+  'aria-describedby'?: string
+  /**
+   * Identifies the element that provides a detailed, extended description for the object.
+   * @see aria-describedby.
+   */
+  'aria-details'?: string
+  /**
+   * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
+   * @see aria-hidden @see aria-readonly.
+   */
+  'aria-disabled'?: boolean | 'false' | 'true'
+  /**
+   * Indicates what functions can be performed when a dragged object is released on the drop target.
+   * @deprecated in ARIA 1.1
+   */
+  'aria-dropeffect'?: 'none' | 'copy' | 'execute' | 'link' | 'move' | 'popup'
+  /**
+   * Identifies the element that provides an error message for the object.
+   * @see aria-invalid @see aria-describedby.
+   */
+  'aria-errormessage'?: string
+  /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */
+  'aria-expanded'?: boolean | 'false' | 'true'
+  /**
+   * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion,
+   * allows assistive technology to override the general default of reading in document source order.
+   */
+  'aria-flowto'?: string
+  /**
+   * Indicates an element's "grabbed" state in a drag-and-drop operation.
+   * @deprecated in ARIA 1.1
+   */
+  'aria-grabbed'?: boolean | 'false' | 'true'
+  /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */
+  'aria-haspopup'?: boolean | 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'
+  /**
+   * Indicates whether the element is exposed to an accessibility API.
+   * @see aria-disabled.
+   */
+  'aria-hidden'?: boolean | 'false' | 'true'
+  /**
+   * Indicates the entered value does not conform to the format expected by the application.
+   * @see aria-errormessage.
+   */
+  'aria-invalid'?: boolean | 'false' | 'true' | 'grammar' | 'spelling'
+  /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */
+  'aria-keyshortcuts'?: string
+  /**
+   * Defines a string value that labels the current element.
+   * @see aria-labelledby.
+   */
+  'aria-label'?: string
+  /**
+   * Identifies the element (or elements) that labels the current element.
+   * @see aria-describedby.
+   */
+  'aria-labelledby'?: string
+  /** Defines the hierarchical level of an element within a structure. */
+  'aria-level'?: number
+  /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */
+  'aria-live'?: 'off' | 'assertive' | 'polite'
+  /** Indicates whether an element is modal when displayed. */
+  'aria-modal'?: boolean | 'false' | 'true'
+  /** Indicates whether a text box accepts multiple lines of input or only a single line. */
+  'aria-multiline'?: boolean | 'false' | 'true'
+  /** Indicates that the user may select more than one item from the current selectable descendants. */
+  'aria-multiselectable'?: boolean | 'false' | 'true'
+  /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */
+  'aria-orientation'?: 'horizontal' | 'vertical'
+  /**
+   * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship
+   * between DOM elements where the DOM hierarchy cannot be used to represent the relationship.
+   * @see aria-controls.
+   */
+  'aria-owns'?: string
+  /**
+   * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value.
+   * A hint could be a sample value or a brief description of the expected format.
+   */
+  'aria-placeholder'?: string
+  /**
+   * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
+   * @see aria-setsize.
+   */
+  'aria-posinset'?: number
+  /**
+   * Indicates the current "pressed" state of toggle buttons.
+   * @see aria-checked @see aria-selected.
+   */
+  'aria-pressed'?: boolean | 'false' | 'mixed' | 'true'
+  /**
+   * Indicates that the element is not editable, but is otherwise operable.
+   * @see aria-disabled.
+   */
+  'aria-readonly'?: boolean | 'false' | 'true'
+  /**
+   * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.
+   * @see aria-atomic.
+   */
+  'aria-relevant'?: 'additions' | 'additions text' | 'all' | 'removals' | 'text'
+  /** Indicates that user input is required on the element before a form may be submitted. */
+  'aria-required'?: boolean | 'false' | 'true'
+  /** Defines a human-readable, author-localized description for the role of an element. */
+  'aria-roledescription'?: string
+  /**
+   * Defines the total number of rows in a table, grid, or treegrid.
+   * @see aria-rowindex.
+   */
+  'aria-rowcount'?: number
+  /**
+   * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.
+   * @see aria-rowcount @see aria-rowspan.
+   */
+  'aria-rowindex'?: number
+  /**
+   * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
+   * @see aria-rowindex @see aria-colspan.
+   */
+  'aria-rowspan'?: number
+  /**
+   * Indicates the current "selected" state of various widgets.
+   * @see aria-checked @see aria-pressed.
+   */
+  'aria-selected'?: boolean | 'false' | 'true'
+  /**
+   * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
+   * @see aria-posinset.
+   */
+  'aria-setsize'?: number
+  /** Indicates if items in a table or grid are sorted in ascending or descending order. */
+  'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other'
+  /** Defines the maximum allowed value for a range widget. */
+  'aria-valuemax'?: number
+  /** Defines the minimum allowed value for a range widget. */
+  'aria-valuemin'?: number
+  /**
+   * Defines the current value for a range widget.
+   * @see aria-valuetext.
+   */
+  'aria-valuenow'?: number
+  /** Defines the human readable text alternative of aria-valuenow for a range widget. */
+  'aria-valuetext'?: string
+}
+
+export interface HTMLAttributes extends AriaAttributes{
+
+  domPropsInnerHTML?: string;
 
-interface HTMLAttributes {
   class?: any
-  style?: string | Partial<CSSStyleDeclaration>
+  style?: string | CSSProperties
+
+  // Standard HTML Attributes
   accesskey?: string
-  contenteditable?: boolean
+  contenteditable?: Booleanish | "inherit"
   contextmenu?: string
   dir?: string
-  disabled?: boolean
-  draggable?: boolean
+  draggable?: Booleanish
   hidden?: boolean
   id?: string
   lang?: string
-  spellcheck?: boolean
+  placeholder?: string
+  spellcheck?: Booleanish
   tabindex?: number
   title?: string
+  translate?: 'yes' | 'no'
 
+  // Unknown
+  radiogroup?: string // <command>, <menuitem>
+
+  // WAI-ARIA
   role?: string
+
+  // RDFa Attributes
+  about?: string
+  datatype?: string
+  inlist?: any
+  prefix?: string
+  property?: string
+  resource?: string
+  typeof?: string
+  vocab?: string
+
+  // Non-standard Attributes
+  autocapitalize?: string
+  autocorrect?: string
+  autocave?: string
+  color?: string
+  itemprop?: string
+  itemscope?: boolean
+  itemtype?: string
+  itemid?: string
+  itemref?: string
+  results?: number
+  security?: string
+  unselectable?: 'on' | 'off'
+
+  // Living Standard
+  /**
+   * Hints at the type of data that might be entered by the user while editing the element or its contents
+   * @see https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute
+   */
+  inputmode?: 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'
+  /**
+   * Specify that a standard HTML element should behave like a defined custom built-in element
+   * @see https://html.spec.whatwg.org/multipage/custom-elements.html#attr-is
+   */
+  is?: string
 }
 
-interface AnchorHTMLAttributes extends HTMLAttributes {
+export interface AnchorHTMLAttributes extends HTMLAttributes {
   download?: any
   href?: string
   hreflang?: string
   media?: string
+  ping?: string
   rel?: string
   target?: string
+  type?: string
+  referrerpolicy?: string
 }
 
-interface AreaHTMLAttributes extends HTMLAttributes {
+export interface AreaHTMLAttributes extends HTMLAttributes {
   alt?: string
-  coord?: string
+  coords?: string
   download?: any
   href?: string
   hreflang?: string
@@ -63,18 +317,19 @@ interface AreaHTMLAttributes extends HTMLAttributes {
   target?: string
 }
 
-interface AudioHTMLAttributes extends MediaHTMLAttributes {}
+export interface AudioHTMLAttributes extends MediaHTMLAttributes {
+}
 
-interface BaseHTMLAttributes extends HTMLAttributes {
+export interface BaseHTMLAttributes extends HTMLAttributes {
   href?: string
   target?: string
 }
 
-interface BlockquoteHTMLAttributes extends HTMLAttributes {
+export interface BlockquoteHTMLAttributes extends HTMLAttributes {
   cite?: string
 }
 
-interface ButtonHTMLAttributes extends HTMLAttributes {
+export interface ButtonHTMLAttributes extends HTMLAttributes {
   autofocus?: boolean
   disabled?: boolean
   form?: string
@@ -84,44 +339,55 @@ interface ButtonHTMLAttributes extends HTMLAttributes {
   formnovalidate?: boolean
   formtarget?: string
   name?: string
-  type?: string
+  type?: 'submit' | 'reset' | 'button'
   value?: string | string[] | number
 }
 
-interface CanvasHTMLAttributes extends HTMLAttributes {
+export interface CanvasHTMLAttributes extends HTMLAttributes {
   height?: number | string
   width?: number | string
 }
 
-interface ColHTMLAttributes extends HTMLAttributes {
+export interface ColHTMLAttributes extends HTMLAttributes {
+  span?: number
+  width?: number | string
+}
+
+export interface ColgroupHTMLAttributes extends HTMLAttributes {
   span?: number
 }
 
-interface ColgroupHTMLAttributes extends ColHTMLAttributes {}
+export interface DataHTMLAttributes extends HTMLAttributes {
+  value?: string | string[] | number
+}
 
-interface DetailsHTMLAttributes extends HTMLAttributes {
+export interface DetailsHTMLAttributes extends HTMLAttributes {
   open?: boolean
 }
 
-interface DelHTMLAttributes extends HTMLAttributes {
+export interface DelHTMLAttributes extends HTMLAttributes {
   cite?: string
   datetime?: string
 }
 
-interface EmbedHTMLAttributes extends HTMLAttributes {
+export interface DialogHTMLAttributes extends HTMLAttributes {
+  open?: boolean
+}
+
+export interface EmbedHTMLAttributes extends HTMLAttributes {
   height?: number | string
   src?: string
   type?: string
   width?: number | string
 }
 
-interface FieldsetHTMLAttributes extends HTMLAttributes {
+export interface FieldsetHTMLAttributes extends HTMLAttributes {
   disabled?: boolean
   form?: string
   name?: string
 }
 
-interface FormHTMLAttributes extends HTMLAttributes {
+export interface FormHTMLAttributes extends HTMLAttributes {
   acceptcharset?: string
   action?: string
   autocomplete?: string
@@ -132,11 +398,12 @@ interface FormHTMLAttributes extends HTMLAttributes {
   target?: string
 }
 
-interface HtmlHTMLAttributes extends HTMLAttributes {
+export interface HtmlHTMLAttributes extends HTMLAttributes {
   manifest?: string
 }
 
-interface IframeHTMLAttributes extends HTMLAttributes {
+export interface IframeHTMLAttributes extends HTMLAttributes {
+  allow?: string
   allowfullscreen?: boolean
   allowtransparency?: boolean
   frameborder?: number | string
@@ -144,6 +411,7 @@ interface IframeHTMLAttributes extends HTMLAttributes {
   marginheight?: number
   marginwidth?: number
   name?: string
+  referrerpolicy?: string
   sandbox?: string
   scrolling?: string
   seamless?: boolean
@@ -152,8 +420,10 @@ interface IframeHTMLAttributes extends HTMLAttributes {
   width?: number | string
 }
 
-interface ImgHTMLAttributes extends HTMLAttributes {
+export interface ImgHTMLAttributes extends HTMLAttributes {
   alt?: string
+  crossorigin?: 'anonymous' | 'use-credentials' | ''
+  decoding?: 'async' | 'auto' | 'sync'
   height?: number | string
   sizes?: string
   src?: string
@@ -162,12 +432,12 @@ interface ImgHTMLAttributes extends HTMLAttributes {
   width?: number | string
 }
 
-interface InsHTMLAttributes extends HTMLAttributes {
+export interface InsHTMLAttributes extends HTMLAttributes {
   cite?: string
   datetime?: string
 }
 
-interface InputHTMLAttributes extends HTMLAttributes {
+export interface InputHTMLAttributes extends HTMLAttributes {
   accept?: string
   alt?: string
   autocomplete?: string
@@ -202,7 +472,7 @@ interface InputHTMLAttributes extends HTMLAttributes {
   width?: number | string
 }
 
-interface KeygenHTMLAttributes extends HTMLAttributes {
+export interface KeygenHTMLAttributes extends HTMLAttributes {
   autofocus?: boolean
   challenge?: string
   disabled?: boolean
@@ -212,16 +482,18 @@ interface KeygenHTMLAttributes extends HTMLAttributes {
   name?: string
 }
 
-interface LabelHTMLAttributes extends HTMLAttributes {
+export interface LabelHTMLAttributes extends HTMLAttributes {
+  for?: string
   form?: string
-  htmlfor?: string
 }
 
-interface LiHTMLAttributes extends HTMLAttributes {
+export interface LiHTMLAttributes extends HTMLAttributes {
   value?: string | string[] | number
 }
 
-interface LinkHTMLAttributes extends HTMLAttributes {
+export interface LinkHTMLAttributes extends HTMLAttributes {
+  as?: string
+  crossorigin?: string
   href?: string
   hreflang?: string
   integrity?: string
@@ -231,33 +503,35 @@ interface LinkHTMLAttributes extends HTMLAttributes {
   type?: string
 }
 
-interface MapHTMLAttributes extends HTMLAttributes {
+export interface MapHTMLAttributes extends HTMLAttributes {
   name?: string
 }
 
-interface MenuHTMLAttributes extends HTMLAttributes {
+export interface MenuHTMLAttributes extends HTMLAttributes {
   type?: string
 }
 
-interface MediaHTMLAttributes extends HTMLAttributes {
+export interface MediaHTMLAttributes extends HTMLAttributes {
   autoplay?: boolean
   controls?: boolean
+  controlslist?: string
   crossorigin?: string
   loop?: boolean
   mediagroup?: string
   muted?: boolean
+  playsinline?: boolean
   preload?: string
   src?: string
 }
 
-interface MetaHTMLAttributes extends HTMLAttributes {
+export interface MetaHTMLAttributes extends HTMLAttributes {
   charset?: string
   content?: string
   httpequiv?: string
   name?: string
 }
 
-interface MeterHTMLAttributes extends HTMLAttributes {
+export interface MeterHTMLAttributes extends HTMLAttributes {
   form?: string
   high?: number
   low?: number
@@ -267,11 +541,11 @@ interface MeterHTMLAttributes extends HTMLAttributes {
   value?: string | string[] | number
 }
 
-interface QuoteHTMLAttributes extends HTMLAttributes {
+export interface QuoteHTMLAttributes extends HTMLAttributes {
   cite?: string
 }
 
-interface ObjectHTMLAttributes extends HTMLAttributes {
+export interface ObjectHTMLAttributes extends HTMLAttributes {
   classid?: string
   data?: string
   form?: string
@@ -283,51 +557,54 @@ interface ObjectHTMLAttributes extends HTMLAttributes {
   wmode?: string
 }
 
-interface OlHTMLAttributes extends HTMLAttributes {
+export interface OlHTMLAttributes extends HTMLAttributes {
   reversed?: boolean
   start?: number
+  type?: '1' | 'a' | 'A' | 'i' | 'I'
 }
 
-interface OptgroupHTMLAttributes extends HTMLAttributes {
+export interface OptgroupHTMLAttributes extends HTMLAttributes {
   disabled?: boolean
   label?: string
 }
 
-interface OptionHTMLAttributes extends HTMLAttributes {
+export interface OptionHTMLAttributes extends HTMLAttributes {
   disabled?: boolean
   label?: string
   selected?: boolean
   value?: string | string[] | number
 }
 
-interface OutputHTMLAttributes extends HTMLAttributes {
+export interface OutputHTMLAttributes extends HTMLAttributes {
+  for?: string
   form?: string
-  htmlfor?: string
   name?: string
 }
 
-interface ParamHTMLAttributes extends HTMLAttributes {
+export interface ParamHTMLAttributes extends HTMLAttributes {
   name?: string
   value?: string | string[] | number
 }
 
-interface ProgressHTMLAttributes extends HTMLAttributes {
+export interface ProgressHTMLAttributes extends HTMLAttributes {
   max?: number | string
   value?: string | string[] | number
 }
 
-interface ScriptHTMLAttributes extends HTMLAttributes {
+export interface ScriptHTMLAttributes extends HTMLAttributes {
   async?: boolean
   charset?: string
   crossorigin?: string
   defer?: boolean
   integrity?: string
+  nomodule?: boolean
   nonce?: string
   src?: string
   type?: string
 }
 
-interface SelectHTMLAttributes extends HTMLAttributes {
+export interface SelectHTMLAttributes extends HTMLAttributes {
+  autocomplete?: string
   autofocus?: boolean
   disabled?: boolean
   form?: string
@@ -338,7 +615,7 @@ interface SelectHTMLAttributes extends HTMLAttributes {
   value?: string | string[] | number
 }
 
-interface SourceHTMLAttributes extends HTMLAttributes {
+export interface SourceHTMLAttributes extends HTMLAttributes {
   media?: string
   sizes?: string
   src?: string
@@ -346,20 +623,20 @@ interface SourceHTMLAttributes extends HTMLAttributes {
   type?: string
 }
 
-interface StyleHTMLAttributes extends HTMLAttributes {
+export interface StyleHTMLAttributes extends HTMLAttributes {
   media?: string
   nonce?: string
   scoped?: boolean
   type?: string
 }
 
-interface TableHTMLAttributes extends HTMLAttributes {
+export interface TableHTMLAttributes extends HTMLAttributes {
   cellpadding?: number | string
   cellspacing?: number | string
   summary?: string
 }
 
-interface TextareaHTMLAttributes extends HTMLAttributes {
+export interface TextareaHTMLAttributes extends HTMLAttributes {
   autocomplete?: string
   autofocus?: boolean
   cols?: number
@@ -377,24 +654,28 @@ interface TextareaHTMLAttributes extends HTMLAttributes {
   wrap?: string
 }
 
-interface TdHTMLAttributes extends HTMLAttributes {
+export interface TdHTMLAttributes extends HTMLAttributes {
+  align?: 'left' | 'center' | 'right' | 'justify' | 'char'
   colspan?: number
   headers?: string
   rowspan?: number
+  scope?: string
+  valign?: 'top' | 'middle' | 'bottom' | 'baseline'
 }
 
-interface ThHTMLAttributes extends HTMLAttributes {
+export interface ThHTMLAttributes extends HTMLAttributes {
+  align?: 'left' | 'center' | 'right' | 'justify' | 'char'
   colspan?: number
   headers?: string
   rowspan?: number
   scope?: string
 }
 
-interface TimeHTMLAttributes extends HTMLAttributes {
+export interface TimeHTMLAttributes extends HTMLAttributes {
   datetime?: string
 }
 
-interface TrackHTMLAttributes extends HTMLAttributes {
+export interface TrackHTMLAttributes extends HTMLAttributes {
   default?: boolean
   kind?: string
   label?: string
@@ -402,120 +683,291 @@ interface TrackHTMLAttributes extends HTMLAttributes {
   srclang?: string
 }
 
-interface VideoHTMLAttributes extends MediaHTMLAttributes {
+export interface VideoHTMLAttributes extends MediaHTMLAttributes {
   height?: number | string
   playsinline?: boolean
   poster?: string
   width?: number | string
+  disablePictureInPicture?: boolean
 }
 
-interface AllHTMLAttributes extends HTMLAttributes {
-  accept?: string
-  acceptcharset?: string
-  action?: boolean
+export interface WebViewHTMLAttributes extends HTMLAttributes {
   allowfullscreen?: boolean
-  allowtransparency?: boolean
-  alt?: string
-  async?: boolean
-  autocomplete?: string
-  autofocus?: boolean
-  autoplay?: boolean
-  capture?: boolean // https://www.w3.org/tr/html-media-capture/#the-capture-attribute
-  cellpadding?: number | string
-  cellspacing?: number | string
-  challenge?: string
-  charset?: string
-  checked?: boolean
-  cite?: string
-  classid?: string
-  cols?: number
-  colspan?: number
-  content?: string
-  controls?: boolean
-  coord?: string
-  crossorigin?: string
-  data?: string
-  datetime?: string
-  default?: boolean
-  defer?: boolean
-  dirname?: string
-  disabled?: boolean
-  download?: any
-  enctype?: string
-  form?: string
-  formaction?: string
-  formenctype?: string
-  formmethod?: string
-  formnovalidate?: boolean
-  formtarget?: string
-  frameborder?: number | string
-  headers?: string
+  allowpopups?: boolean
+  autoFocus?: boolean
+  autosize?: boolean
+  blinkfeatures?: string
+  disableblinkfeatures?: string
+  disableguestresize?: boolean
+  disablewebsecurity?: boolean
+  guestinstance?: string
+  httpreferrer?: string
+  nodeintegration?: boolean
+  partition?: string
+  plugins?: boolean
+  preload?: string
+  src?: string
+  useragent?: string
+  webpreferences?: string
+}
+
+export interface SVGAttributes extends AriaAttributes {
+
+  domPropsInnerHTML?: string;
+
+  color?: string
   height?: number | string
-  high?: number
-  href?: string
-  hreflang?: string
-  htmlfor?: string
-  httpequiv?: string
-  integrity?: string
-  keyparams?: string
-  keytype?: string
-  kind?: string
-  label?: string
-  list?: string
-  loop?: boolean
-  low?: number
-  manifest?: string
-  marginheight?: number
-  marginwidth?: number
+  id?: string
+  lang?: string
   max?: number | string
-  maxlength?: number
   media?: string
-  mediagroup?: string
   method?: string
   min?: number | string
-  minlength?: number
-  multiple?: boolean
-  muted?: boolean
   name?: string
-  nonce?: string
-  novalidate?: boolean
-  open?: boolean
-  optimum?: number
-  pattern?: string
-  placeholder?: string
-  playsinline?: boolean
-  poster?: string
-  preload?: string
-  readonly?: boolean
-  rel?: string
-  required?: boolean
-  reversed?: boolean
-  rows?: number
-  rowspan?: number
-  sandbox?: string
-  scope?: string
-  scoped?: boolean
-  scrolling?: string
-  seamless?: boolean
-  selected?: boolean
-  shape?: string
-  size?: number
-  sizes?: string
-  span?: number
-  src?: string
-  srcdoc?: string
-  srclang?: string
-  srcset?: string
-  start?: number
-  step?: number | string
-  summary?: string
   target?: string
   type?: string
-  usemap?: string
-  value?: string | string[] | number
   width?: number | string
-  wmode?: string
-  wrap?: string
+
+  // Other HTML properties supported by SVG elements in browsers
+  role?: string
+  tabindex?: number
+
+  // SVG Specific attributes
+  'accent-height'?: number | string
+  accumulate?: 'none' | 'sum'
+  additive?: 'replace' | 'sum'
+  'alignment-baseline'?: 'auto' | 'baseline' | 'before-edge' | 'text-before-edge' | 'middle' | 'central' | 'after-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | 'inherit'
+  allowReorder?: 'no' | 'yes'
+  alphabetic?: number | string
+  amplitude?: number | string
+  'arabic-form'?: 'initial' | 'medial' | 'terminal' | 'isolated'
+  ascent?: number | string
+  attributeName?: string
+  attributeType?: string
+  autoReverse?: number | string
+  azimuth?: number | string
+  baseFrequency?: number | string
+  'baseline-shift'?: number | string
+  baseProfile?: number | string
+  bbox?: number | string
+  begin?: number | string
+  bias?: number | string
+  by?: number | string
+  calcMode?: number | string
+  'cap-height'?: number | string
+  clip?: number | string
+  'clip-path'?: string
+  clipPathUnits?: number | string
+  'clip-rule'?: number | string
+  'color-interpolation'?: number | string
+  'color-interpolation-filters'?: 'auto' | 'sRGB' | 'linearRGB' | 'inherit'
+  'color-profile'?: number | string
+  'color-rendering'?: number | string
+  contentScriptType?: number | string
+  contentStyleType?: number | string
+  cursor?: number | string
+  cx?: number | string
+  cy?: number | string
+  d?: string
+  decelerate?: number | string
+  descent?: number | string
+  diffuseConstant?: number | string
+  direction?: number | string
+  display?: number | string
+  divisor?: number | string
+  'dominant-baseline'?: number | string
+  dur?: number | string
+  dx?: number | string
+  dy?: number | string
+  edgeMode?: number | string
+  elevation?: number | string
+  'enable-background'?: number | string
+  end?: number | string
+  exponent?: number | string
+  externalResourcesRequired?: number | string
+  fill?: string
+  'fill-opacity'?: number | string
+  'fill-rule'?: 'nonzero' | 'evenodd' | 'inherit'
+  filter?: string
+  filterRes?: number | string
+  filterUnits?: number | string
+  'flood-color'?: number | string
+  'flood-opacity'?: number | string
+  focusable?: number | string
+  'font-family'?: string
+  'font-size'?: number | string
+  'font-size-adjust'?: number | string
+  'font-stretch'?: number | string
+  'font-style'?: number | string
+  'font-variant'?: number | string
+  'font-weight'?: number | string
+  format?: number | string
+  from?: number | string
+  fx?: number | string
+  fy?: number | string
+  g1?: number | string
+  g2?: number | string
+  'glyph-name'?: number | string
+  'glyph-orientation-horizontal'?: number | string
+  'glyph-orientation-vertical'?: number | string
+  glyphRef?: number | string
+  gradientTransform?: string
+  gradientUnits?: string
+  hanging?: number | string
+  'horiz-adv-x'?: number | string
+  'horiz-origin-x'?: number | string
+  href?: string
+  ideographic?: number | string
+  'image-rendering'?: number | string
+  in2?: number | string
+  in?: string
+  intercept?: number | string
+  k1?: number | string
+  k2?: number | string
+  k3?: number | string
+  k4?: number | string
+  k?: number | string
+  kernelMatrix?: number | string
+  kernelUnitLength?: number | string
+  kerning?: number | string
+  keyPoints?: number | string
+  keySplines?: number | string
+  keyTimes?: number | string
+  lengthAdjust?: number | string
+  'letter-spacing'?: number | string
+  'lighting-color'?: number | string
+  limitingConeAngle?: number | string
+  local?: number | string
+  'marker-end'?: string
+  markerHeight?: number | string
+  'marker-mid'?: string
+  'marker-start'?: string
+  markerUnits?: number | string
+  markerWidth?: number | string
+  mask?: string
+  maskContentUnits?: number | string
+  maskUnits?: number | string
+  mathematical?: number | string
+  mode?: number | string
+  numOctaves?: number | string
+  offset?: number | string
+  opacity?: number | string
+  operator?: number | string
+  order?: number | string
+  orient?: number | string
+  orientation?: number | string
+  origin?: number | string
+  overflow?: number | string
+  'overline-position'?: number | string
+  'overline-thickness'?: number | string
+  'paint-order'?: number | string
+  'panose-1'?: number | string
+  pathLength?: number | string
+  patternContentUnits?: string
+  patternTransform?: number | string
+  patternUnits?: string
+  'pointer-events'?: number | string
+  points?: string
+  pointsAtX?: number | string
+  pointsAtY?: number | string
+  pointsAtZ?: number | string
+  preserveAlpha?: number | string
+  preserveAspectRatio?: string
+  primitiveUnits?: number | string
+  r?: number | string
+  radius?: number | string
+  refX?: number | string
+  refY?: number | string
+  renderingIntent?: number | string
+  repeatCount?: number | string
+  repeatDur?: number | string
+  requiredExtensions?: number | string
+  requiredFeatures?: number | string
+  restart?: number | string
+  result?: string
+  rotate?: number | string
+  rx?: number | string
+  ry?: number | string
+  scale?: number | string
+  seed?: number | string
+  'shape-rendering'?: number | string
+  slope?: number | string
+  spacing?: number | string
+  specularConstant?: number | string
+  specularExponent?: number | string
+  speed?: number | string
+  spreadMethod?: string
+  startOffset?: number | string
+  stdDeviation?: number | string
+  stemh?: number | string
+  stemv?: number | string
+  stitchTiles?: number | string
+  'stop-color'?: string
+  'stop-opacity'?: number | string
+  'strikethrough-position'?: number | string
+  'strikethrough-thickness'?: number | string
+  string?: number | string
+  stroke?: string
+  'stroke-dasharray'?: string | number
+  'stroke-dashoffset'?: string | number
+  'stroke-linecap'?: 'butt' | 'round' | 'square' | 'inherit'
+  'stroke-linejoin'?: 'miter' | 'round' | 'bevel' | 'inherit'
+  'stroke-miterlimit'?: number | string
+  'stroke-opacity'?: number | string
+  'stroke-width'?: number | string
+  surfaceScale?: number | string
+  systemLanguage?: number | string
+  tableValues?: number | string
+  targetX?: number | string
+  targetY?: number | string
+  'text-anchor'?: string
+  'text-decoration'?: number | string
+  textLength?: number | string
+  'text-rendering'?: number | string
+  to?: number | string
+  transform?: string
+  u1?: number | string
+  u2?: number | string
+  'underline-position'?: number | string
+  'underline-thickness'?: number | string
+  unicode?: number | string
+  'unicode-bidi'?: number | string
+  'unicode-range'?: number | string
+  'unitsPer-em'?: number | string
+  'v-alphabetic'?: number | string
+  values?: string
+  'vector-effect'?: number | string
+  version?: string
+  'vert-adv-y'?: number | string
+  'vert-origin-x'?: number | string
+  'vert-origin-y'?: number | string
+  'v-hanging'?: number | string
+  'v-ideographic'?: number | string
+  viewBox?: string
+  viewTarget?: number | string
+  visibility?: number | string
+  'v-mathematical'?: number | string
+  widths?: number | string
+  'word-spacing'?: number | string
+  'writing-mode'?: number | string
+  x1?: number | string
+  x2?: number | string
+  x?: number | string
+  xChannelSelector?: string
+  'x-height'?: number | string
+  'xlinkActuate'?: string
+  'xlinkArcrole'?: string
+  'xlinkHref'?: string
+  'xlinkRole'?: string
+  'xlinkShow'?: string
+  'xlinkTitle'?: string
+  'xlinkType'?: string
+  y1?: number | string
+  y2?: number | string
+  y?: number | string
+  yChannelSelector?: string
+  z?: number | string
+  zoomAndPan?: string
 }
 
 interface IntrinsicElementAttributes {
@@ -541,13 +993,13 @@ interface IntrinsicElementAttributes {
   code: HTMLAttributes
   col: ColHTMLAttributes
   colgroup: ColgroupHTMLAttributes
-  data: HTMLAttributes
+  data: DataHTMLAttributes
   datalist: HTMLAttributes
   dd: HTMLAttributes
   del: DelHTMLAttributes
   details: DetailsHTMLAttributes
   dfn: HTMLAttributes
-  dialog: HTMLAttributes
+  dialog: DialogHTMLAttributes
   div: HTMLAttributes
   dl: HTMLAttributes
   dt: HTMLAttributes
@@ -588,6 +1040,7 @@ interface IntrinsicElementAttributes {
   meta: MetaHTMLAttributes
   meter: MeterHTMLAttributes
   nav: HTMLAttributes
+  noindex: HTMLAttributes
   noscript: HTMLAttributes
   object: ObjectHTMLAttributes
   ol: OlHTMLAttributes
@@ -617,6 +1070,7 @@ interface IntrinsicElementAttributes {
   summary: HTMLAttributes
   sup: HTMLAttributes
   table: TableHTMLAttributes
+  template: HTMLAttributes
   tbody: HTMLAttributes
   td: TdHTMLAttributes
   textarea: TextareaHTMLAttributes
@@ -632,9 +1086,71 @@ interface IntrinsicElementAttributes {
   var: HTMLAttributes
   video: VideoHTMLAttributes
   wbr: HTMLAttributes
+  webview: WebViewHTMLAttributes
+
+  // SVG
+  svg: SVGAttributes
+
+  animate: SVGAttributes
+  animateMotion: SVGAttributes
+  animateTransform: SVGAttributes
+  circle: SVGAttributes
+  clipPath: SVGAttributes
+  defs: SVGAttributes
+  desc: SVGAttributes
+  ellipse: SVGAttributes
+  feBlend: SVGAttributes
+  feColorMatrix: SVGAttributes
+  feComponentTransfer: SVGAttributes
+  feComposite: SVGAttributes
+  feConvolveMatrix: SVGAttributes
+  feDiffuseLighting: SVGAttributes
+  feDisplacementMap: SVGAttributes
+  feDistantLight: SVGAttributes
+  feDropShadow: SVGAttributes
+  feFlood: SVGAttributes
+  feFuncA: SVGAttributes
+  feFuncB: SVGAttributes
+  feFuncG: SVGAttributes
+  feFuncR: SVGAttributes
+  feGaussianBlur: SVGAttributes
+  feImage: SVGAttributes
+  feMerge: SVGAttributes
+  feMergeNode: SVGAttributes
+  feMorphology: SVGAttributes
+  feOffset: SVGAttributes
+  fePointLight: SVGAttributes
+  feSpecularLighting: SVGAttributes
+  feSpotLight: SVGAttributes
+  feTile: SVGAttributes
+  feTurbulence: SVGAttributes
+  filter: SVGAttributes
+  foreignObject: SVGAttributes
+  g: SVGAttributes
+  image: SVGAttributes
+  line: SVGAttributes
+  linearGradient: SVGAttributes
+  marker: SVGAttributes
+  mask: SVGAttributes
+  metadata: SVGAttributes
+  mpath: SVGAttributes
+  path: SVGAttributes
+  pattern: SVGAttributes
+  polygon: SVGAttributes
+  polyline: SVGAttributes
+  radialGradient: SVGAttributes
+  rect: SVGAttributes
+  stop: SVGAttributes
+  switch: SVGAttributes
+  symbol: SVGAttributes
+  text: SVGAttributes
+  textPath: SVGAttributes
+  tspan: SVGAttributes
+  use: SVGAttributes
+  view: SVGAttributes
 }
 
-interface Events {
+export interface Events {
   // clipboard events
   onCopy: ClipboardEvent
   onCut: ClipboardEvent
@@ -661,6 +1177,7 @@ interface Events {
 
   // form events
   onChange: Event
+  onBeforeinput: Event
   onInput: Event
   onReset: Event
   onSubmit: Event
@@ -676,6 +1193,7 @@ interface Events {
   onKeyup: KeyboardEvent
 
   // mouse events
+  onAuxclick: MouseEvent
   onClick: MouseEvent
   onContextmenu: MouseEvent
   onDblclick: MouseEvent
@@ -723,6 +1241,16 @@ interface Events {
   onTouchmove: TouchEvent
   onTouchstart: TouchEvent
 
+  // pointer events
+  onPointerdown: PointerEvent
+  onPointermove: PointerEvent
+  onPointerup: PointerEvent
+  onPointercancel: PointerEvent
+  onPointerenter: PointerEvent
+  onPointerleave: PointerEvent
+  onPointerover: PointerEvent
+  onPointerout: PointerEvent
+
   // wheel events
   onWheel: WheelEvent
 
index e1c96fc7584fd39619d3071fe90de6dd668c6ab9..96ca3b4436f115f372c4d2318eb344e2291e914a 100644 (file)
@@ -37,6 +37,7 @@
   },
   "homepage": "https://github.com/vuejs/vue/tree/dev/packages/runtime-dom#readme",
   "dependencies": {
-    "@vue/runtime-core": "3.0.0-alpha.1"
+    "@vue/runtime-core": "3.0.0-alpha.1",
+    "csstype": "^2.6.8"
   }
 }
index 162e0d6b2a6c8af3c0499dba0d0e45cec6d041aa..904cec88b86a114255a9e23484ece090da8480b6 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
@@ -1590,6 +1590,11 @@ cssstyle@^1.0.0:
   dependencies:
     cssom "0.3.x"
 
+csstype@^2.6.8:
+  version "2.6.8"
+  resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.8.tgz#0fb6fc2417ffd2816a418c9336da74d7f07db431"
+  integrity sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==
+
 currently-unhandled@^0.4.1:
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"