summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/rare-news-confess.md5
-rw-r--r--packages/astro/astro-jsx.d.ts1330
2 files changed, 858 insertions, 477 deletions
diff --git a/.changeset/rare-news-confess.md b/.changeset/rare-news-confess.md
new file mode 100644
index 000000000..d28a7511d
--- /dev/null
+++ b/.changeset/rare-news-confess.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Update JSX definitions with element specific types and added some missing attributes
diff --git a/packages/astro/astro-jsx.d.ts b/packages/astro/astro-jsx.d.ts
index c9cfd9e17..81d3d1f92 100644
--- a/packages/astro/astro-jsx.d.ts
+++ b/packages/astro/astro-jsx.d.ts
@@ -1,10 +1,10 @@
/// <reference lib="dom" />
/* eslint @typescript-eslint/no-unused-vars: off */
/**
- * Adapted from jsx-dom
- * @see https://github.com/proteriax/jsx-dom/blob/be06937ba16908d87bf8aa4372a3583133e02b8a/index.d.ts
+ * Adapted from babel-plugin-react-html-attrs's TypeScript definition from DefinitelyTyped.
+ * @see https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/babel-plugin-react-html-attrs/index.d.ts
*
- * which was adapted from
+ * and
*
* Adapted from React’s TypeScript definition from DefinitelyTyped.
* @see https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts
@@ -36,164 +36,141 @@ declare namespace astroHTML.JSX {
type AstroComponent = import('astro').AstroComponentFactory;
type Element = HTMLElement | AstroComponent;
- //
- // Event Handler Types
- // ----------------------------------------------------------------------
- type EventHandler<E extends Event = Event, T extends EventTarget = HTMLElement> = (
- event: E & { currentTarget: EventTarget & T }
- ) => any;
-
- type ClipboardEventHandler<T extends EventTarget> = EventHandler<ClipboardEvent, T>;
- type CompositionEventHandler<T extends EventTarget> = EventHandler<CompositionEvent, T>;
- type DragEventHandler<T extends EventTarget> = EventHandler<DragEvent, T>;
- type FocusEventHandler<T extends EventTarget> = EventHandler<FocusEvent, T>;
- type FormEventHandler<T extends EventTarget> = EventHandler<Event, T>;
- type ChangeEventHandler<T extends EventTarget> = EventHandler<Event, T>;
- type KeyboardEventHandler<T extends EventTarget> = EventHandler<KeyboardEvent, T>;
- type MouseEventHandler<T extends EventTarget> = EventHandler<MouseEvent, T>;
- type TouchEventHandler<T extends EventTarget> = EventHandler<TouchEvent, T>;
- type PointerEventHandler<T extends EventTarget> = EventHandler<PointerEvent, T>;
- type UIEventHandler<T extends EventTarget> = EventHandler<UIEvent, T>;
- type WheelEventHandler<T extends EventTarget> = EventHandler<WheelEvent, T>;
- type AnimationEventHandler<T extends EventTarget> = EventHandler<AnimationEvent, T>;
- type TransitionEventHandler<T extends EventTarget> = EventHandler<TransitionEvent, T>;
- type MessageEventHandler<T extends EventTarget> = EventHandler<MessageEvent, T>;
-
- interface DOMAttributes<T extends EventTarget> {
+ interface DOMAttributes {
children?: Children;
// Clipboard Events
- oncopy?: ClipboardEventHandler<T> | string | undefined | null;
- oncut?: ClipboardEventHandler<T> | string | undefined | null;
- onpaste?: ClipboardEventHandler<T> | string | undefined | null;
+ oncopy?: string | undefined | null;
+ oncut?: string | undefined | null;
+ onpaste?: string | undefined | null;
// Composition Events
- oncompositionend?: CompositionEventHandler<T> | string | undefined | null;
- oncompositionstart?: CompositionEventHandler<T> | string | undefined | null;
- oncompositionupdate?: CompositionEventHandler<T> | string | undefined | null;
+ oncompositionend?: string | undefined | null;
+ oncompositionstart?: string | undefined | null;
+ oncompositionupdate?: string | undefined | null;
// Focus Events
- onfocus?: FocusEventHandler<T> | string | undefined | null;
- onfocusin?: FocusEventHandler<T> | string | undefined | null;
- onfocusout?: FocusEventHandler<T> | string | undefined | null;
- onblur?: FocusEventHandler<T> | string | undefined | null;
+ onfocus?: string | undefined | null;
+ onfocusin?: string | undefined | null;
+ onfocusout?: string | undefined | null;
+ onblur?: string | undefined | null;
// Form Events
- onchange?: FormEventHandler<T> | string | undefined | null;
- oninput?: FormEventHandler<T> | string | undefined | null;
- onreset?: FormEventHandler<T> | string | undefined | null;
- onsubmit?: EventHandler<SubmitEvent, T> | string | undefined | null;
- oninvalid?: EventHandler<Event, T> | string | undefined | null;
- onbeforeinput?: EventHandler<InputEvent, T> | string | undefined | null;
+ onchange?: string | undefined | null;
+ oninput?: string | undefined | null;
+ onreset?: string | undefined | null;
+ onsubmit?: string | undefined | null;
+ oninvalid?: string | undefined | null;
+ onbeforeinput?: string | undefined | null;
// Image Events
- onload?: EventHandler | string | undefined | null;
- onerror?: EventHandler | string | undefined | null; // also a Media Event
+ onload?: string | undefined | null;
+ onerror?: string | undefined | null; // also a Media Event
// Detail Events
- ontoggle?: EventHandler<Event, T> | string | undefined | null;
+ ontoggle?: string | undefined | null;
// Keyboard Events
- onkeydown?: KeyboardEventHandler<T> | string | undefined | null;
- onkeypress?: KeyboardEventHandler<T> | string | undefined | null;
- onkeyup?: KeyboardEventHandler<T> | string | undefined | null;
+ onkeydown?: string | undefined | null;
+ onkeypress?: string | undefined | null;
+ onkeyup?: string | undefined | null;
// Media Events
- onabort?: EventHandler<Event, T> | string | undefined | null;
- oncanplay?: EventHandler<Event, T> | string | undefined | null;
- oncanplaythrough?: EventHandler<Event, T> | string | undefined | null;
- oncuechange?: EventHandler<Event, T> | string | undefined | null;
- ondurationchange?: EventHandler<Event, T> | string | undefined | null;
- onemptied?: EventHandler<Event, T> | string | undefined | null;
- onencrypted?: EventHandler<Event, T> | string | undefined | null;
- onended?: EventHandler<Event, T> | string | undefined | null;
- onloadeddata?: EventHandler<Event, T> | string | undefined | null;
- onloadedmetadata?: EventHandler<Event, T> | string | undefined | null;
- onloadstart?: EventHandler<Event, T> | string | undefined | null;
- onpause?: EventHandler<Event, T> | string | undefined | null;
- onplay?: EventHandler<Event, T> | string | undefined | null;
- onplaying?: EventHandler<Event, T> | string | undefined | null;
- onprogress?: EventHandler<Event, T> | string | undefined | null;
- onratechange?: EventHandler<Event, T> | string | undefined | null;
- onseeked?: EventHandler<Event, T> | string | undefined | null;
- onseeking?: EventHandler<Event, T> | string | undefined | null;
- onstalled?: EventHandler<Event, T> | string | undefined | null;
- onsuspend?: EventHandler<Event, T> | string | undefined | null;
- ontimeupdate?: EventHandler<Event, T> | string | undefined | null;
- onvolumechange?: EventHandler<Event, T> | string | undefined | null;
- onwaiting?: EventHandler<Event, T> | string | undefined | null;
+ onabort?: string | undefined | null;
+ oncanplay?: string | undefined | null;
+ oncanplaythrough?: string | undefined | null;
+ oncuechange?: string | undefined | null;
+ ondurationchange?: string | undefined | null;
+ onemptied?: string | undefined | null;
+ onencrypted?: string | undefined | null;
+ onended?: string | undefined | null;
+ onloadeddata?: string | undefined | null;
+ onloadedmetadata?: string | undefined | null;
+ onloadstart?: string | undefined | null;
+ onpause?: string | undefined | null;
+ onplay?: string | undefined | null;
+ onplaying?: string | undefined | null;
+ onprogress?: string | undefined | null;
+ onratechange?: string | undefined | null;
+ onseeked?: string | undefined | null;
+ onseeking?: string | undefined | null;
+ onstalled?: string | undefined | null;
+ onsuspend?: string | undefined | null;
+ ontimeupdate?: string | undefined | null;
+ onvolumechange?: string | undefined | null;
+ onwaiting?: string | undefined | null;
// MouseEvents
- onauxclick?: MouseEventHandler<T> | string | undefined | null;
- onclick?: MouseEventHandler<T> | string | undefined | null;
- oncontextmenu?: MouseEventHandler<T> | string | undefined | null;
- ondblclick?: MouseEventHandler<T> | string | undefined | null;
- ondrag?: DragEventHandler<T> | string | undefined | null;
- ondragend?: DragEventHandler<T> | string | undefined | null;
- ondragenter?: DragEventHandler<T> | string | undefined | null;
- ondragexit?: DragEventHandler<T> | string | undefined | null;
- ondragleave?: DragEventHandler<T> | string | undefined | null;
- ondragover?: DragEventHandler<T> | string | undefined | null;
- ondragstart?: DragEventHandler<T> | string | undefined | null;
- ondrop?: DragEventHandler<T> | string | undefined | null;
- onmousedown?: MouseEventHandler<T> | string | undefined | null;
- onmouseenter?: MouseEventHandler<T> | string | undefined | null;
- onmouseleave?: MouseEventHandler<T> | string | undefined | null;
- onmousemove?: MouseEventHandler<T> | string | undefined | null;
- onmouseout?: MouseEventHandler<T> | string | undefined | null;
- onmouseover?: MouseEventHandler<T> | string | undefined | null;
- onmouseup?: MouseEventHandler<T> | string | undefined | null;
+ onauxclick?: string | undefined | null;
+ onclick?: string | undefined | null;
+ oncontextmenu?: string | undefined | null;
+ ondblclick?: string | undefined | null;
+ ondrag?: string | undefined | null;
+ ondragend?: string | undefined | null;
+ ondragenter?: string | undefined | null;
+ ondragexit?: string | undefined | null;
+ ondragleave?: string | undefined | null;
+ ondragover?: string | undefined | null;
+ ondragstart?: string | undefined | null;
+ ondrop?: string | undefined | null;
+ onmousedown?: string | undefined | null;
+ onmouseenter?: string | undefined | null;
+ onmouseleave?: string | undefined | null;
+ onmousemove?: string | undefined | null;
+ onmouseout?: string | undefined | null;
+ onmouseover?: string | undefined | null;
+ onmouseup?: string | undefined | null;
// Selection Events
- onselect?: EventHandler<Event, T> | string | undefined | null;
- onselectionchange?: EventHandler<Event, T> | string | undefined | null;
- onselectstart?: EventHandler<Event, T> | string | undefined | null;
+ onselect?: string | undefined | null;
+ onselectionchange?: string | undefined | null;
+ onselectstart?: string | undefined | null;
// Touch Events
- ontouchcancel?: TouchEventHandler<T> | string | undefined | null;
- ontouchend?: TouchEventHandler<T> | string | undefined | null;
- ontouchmove?: TouchEventHandler<T> | string | undefined | null;
- ontouchstart?: TouchEventHandler<T> | string | undefined | null;
+ ontouchcancel?: string | undefined | null;
+ ontouchend?: string | undefined | null;
+ ontouchmove?: string | undefined | null;
+ ontouchstart?: string | undefined | null;
// Pointer Events
- ongotpointercapture?: PointerEventHandler<T> | string | undefined | null;
- onpointercancel?: PointerEventHandler<T> | string | undefined | null;
- onpointerdown?: PointerEventHandler<T> | string | undefined | null;
- onpointerenter?: PointerEventHandler<T> | string | undefined | null;
- onpointerleave?: PointerEventHandler<T> | string | undefined | null;
- onpointermove?: PointerEventHandler<T> | string | undefined | null;
- onpointerout?: PointerEventHandler<T> | string | undefined | null;
- onpointerover?: PointerEventHandler<T> | string | undefined | null;
- onpointerup?: PointerEventHandler<T> | string | undefined | null;
- onlostpointercapture?: PointerEventHandler<T> | string | undefined | null;
+ ongotpointercapture?: string | undefined | null;
+ onpointercancel?: string | undefined | null;
+ onpointerdown?: string | undefined | null;
+ onpointerenter?: string | undefined | null;
+ onpointerleave?: string | undefined | null;
+ onpointermove?: string | undefined | null;
+ onpointerout?: string | undefined | null;
+ onpointerover?: string | undefined | null;
+ onpointerup?: string | undefined | null;
+ onlostpointercapture?: string | undefined | null;
// UI Events
- onscroll?: UIEventHandler<T> | string | undefined | null;
- onresize?: UIEventHandler<T> | string | undefined | null;
+ onscroll?: string | undefined | null;
+ onresize?: string | undefined | null;
// Wheel Events
- onwheel?: WheelEventHandler<T> | string | undefined | null;
+ onwheel?: string | undefined | null;
// Animation Events
- onanimationstart?: AnimationEventHandler<T> | string | undefined | null;
- onanimationend?: AnimationEventHandler<T> | string | undefined | null;
- onanimationiteration?: AnimationEventHandler<T> | string | undefined | null;
+ onanimationstart?: string | undefined | null;
+ onanimationend?: string | undefined | null;
+ onanimationiteration?: string | undefined | null;
// Transition Events
- ontransitionstart?: TransitionEventHandler<T> | string | undefined | null;
- ontransitionrun?: TransitionEventHandler<T> | string | undefined | null;
- ontransitionend?: TransitionEventHandler<T> | string | undefined | null;
- ontransitioncancel?: TransitionEventHandler<T> | string | undefined | null;
+ ontransitionstart?: string | undefined | null;
+ ontransitionrun?: string | undefined | null;
+ ontransitionend?: string | undefined | null;
+ ontransitioncancel?: string | undefined | null;
// Message Events
- onmessage?: MessageEventHandler<T> | string | undefined | null;
- onmessageerror?: MessageEventHandler<T> | string | undefined | null;
+ onmessage?: string | undefined | null;
+ onmessageerror?: string | undefined | null;
// Global Events
- oncancel?: EventHandler<Event, T> | string | undefined | null;
- onclose?: EventHandler<Event, T> | string | undefined | null;
- onfullscreenchange?: EventHandler<Event, T> | string | undefined | null;
- onfullscreenerror?: EventHandler<Event, T> | string | undefined | null;
+ oncancel?: string | undefined | null;
+ onclose?: string | undefined | null;
+ onfullscreenchange?: string | undefined | null;
+ onfullscreenerror?: string | undefined | null;
}
// All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/
@@ -218,17 +195,17 @@ declare namespace astroHTML.JSX {
* Defines the total number of columns in a table, grid, or treegrid.
* @see aria-colindex.
*/
- 'aria-colcount'?: number | undefined | null;
+ 'aria-colcount'?: number | string | undefined | null;
/**
* 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 | undefined | null;
+ 'aria-colindex'?: number | string | undefined | null;
/**
* 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 | undefined | null;
+ 'aria-colspan'?: number | string | undefined | null;
/**
* Identifies the element (or elements) whose contents or presence are controlled by the current element.
* @see aria-owns.
@@ -318,7 +295,7 @@ declare namespace astroHTML.JSX {
*/
'aria-labelledby'?: string | undefined | null;
/** Defines the hierarchical level of an element within a structure. */
- 'aria-level'?: number | undefined | null;
+ 'aria-level'?: number | string | undefined | null;
/** 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' | undefined | null;
/** Indicates whether an element is modal when displayed. */
@@ -344,7 +321,7 @@ declare namespace astroHTML.JSX {
* 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 | undefined | null;
+ 'aria-posinset'?: number | string | undefined | null;
/**
* Indicates the current "pressed" state of toggle buttons.
* @see aria-checked @see aria-selected.
@@ -380,17 +357,17 @@ declare namespace astroHTML.JSX {
* Defines the total number of rows in a table, grid, or treegrid.
* @see aria-rowindex.
*/
- 'aria-rowcount'?: number | undefined | null;
+ 'aria-rowcount'?: number | string | undefined | null;
/**
* 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 | undefined | null;
+ 'aria-rowindex'?: number | string | undefined | null;
/**
* 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 | undefined | null;
+ 'aria-rowspan'?: number | string | undefined | null;
/**
* Indicates the current "selected" state of various widgets.
* @see aria-checked @see aria-pressed.
@@ -400,86 +377,103 @@ declare namespace astroHTML.JSX {
* 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 | undefined | null;
+ 'aria-setsize'?: number | string | undefined | null;
/** Indicates if items in a table or grid are sorted in ascending or descending order. */
'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other' | undefined | null;
/** Defines the maximum allowed value for a range widget. */
- 'aria-valuemax'?: number | undefined | null;
+ 'aria-valuemax'?: number | string | undefined | null;
/** Defines the minimum allowed value for a range widget. */
- 'aria-valuemin'?: number | undefined | null;
+ 'aria-valuemin'?: number | string | undefined | null;
/**
* Defines the current value for a range widget.
* @see aria-valuetext.
*/
- 'aria-valuenow'?: number | undefined | null;
+ 'aria-valuenow'?: number | string | undefined | null;
/** Defines the human readable text alternative of aria-valuenow for a range widget. */
'aria-valuetext'?: string | undefined | null;
}
- interface HTMLAttributes<T extends EventTarget>
- extends AriaAttributes,
- DOMAttributes<T>,
- AstroBuiltinAttributes {
+ // All the WAI-ARIA 1.1 role attribute values from https://www.w3.org/TR/wai-aria-1.1/#role_definitions
+ type AriaRole =
+ | 'alert'
+ | 'alertdialog'
+ | 'application'
+ | 'article'
+ | 'banner'
+ | 'button'
+ | 'cell'
+ | 'checkbox'
+ | 'columnheader'
+ | 'combobox'
+ | 'complementary'
+ | 'contentinfo'
+ | 'definition'
+ | 'dialog'
+ | 'directory'
+ | 'document'
+ | 'feed'
+ | 'figure'
+ | 'form'
+ | 'grid'
+ | 'gridcell'
+ | 'group'
+ | 'heading'
+ | 'img'
+ | 'link'
+ | 'list'
+ | 'listbox'
+ | 'listitem'
+ | 'log'
+ | 'main'
+ | 'marquee'
+ | 'math'
+ | 'menu'
+ | 'menubar'
+ | 'menuitem'
+ | 'menuitemcheckbox'
+ | 'menuitemradio'
+ | 'navigation'
+ | 'none'
+ | 'note'
+ | 'option'
+ | 'presentation'
+ | 'progressbar'
+ | 'radio'
+ | 'radiogroup'
+ | 'region'
+ | 'row'
+ | 'rowgroup'
+ | 'rowheader'
+ | 'scrollbar'
+ | 'search'
+ | 'searchbox'
+ | 'separator'
+ | 'slider'
+ | 'spinbutton'
+ | 'status'
+ | 'switch'
+ | 'tab'
+ | 'table'
+ | 'tablist'
+ | 'tabpanel'
+ | 'term'
+ | 'textbox'
+ | 'timer'
+ | 'toolbar'
+ | 'tooltip'
+ | 'tree'
+ | 'treegrid'
+ | 'treeitem';
+
+ interface HTMLAttributes extends AriaAttributes, DOMAttributes, AstroBuiltinAttributes {
// Standard HTML Attributes
- class?: string | undefined | null;
- dataset?: object | undefined | null; // eslint-disable-line
- accept?: string | undefined | null;
- acceptcharset?: string | undefined | null;
accesskey?: string | undefined | null;
- action?: string | undefined | null;
- allow?: string | undefined | null;
- allowfullscreen?: boolean | undefined | null;
- allowtransparency?: boolean | undefined | null;
- allowpaymentrequest?: boolean | undefined | null;
- alt?: string | undefined | null;
- as?: string | undefined | null;
- async?: boolean | undefined | null;
- autocomplete?: string | undefined | null;
- autofocus?: boolean | undefined | null;
- autoplay?: boolean | undefined | null;
- capture?: 'environment' | 'user' | boolean | undefined | null;
- cellpadding?: number | string | undefined | null;
- cellspacing?: number | string | undefined | null;
- charset?: string | undefined | null;
- challenge?: string | undefined | null;
- checked?: boolean | undefined | null;
- cite?: string | undefined | null;
- classid?: string | undefined | null;
- cols?: number | undefined | null;
- colspan?: number | undefined | null;
- content?: string | URL | undefined | null;
- contenteditable?: 'true' | 'false' | boolean | undefined | null;
-
- // Doesn't work when used as HTML attribute
- /**
- * Elements with the contenteditable attribute support innerHTML and textContent bindings.
- */
- innerHTML?: string | undefined | null;
- // Doesn't work when used as HTML attribute
- /**
- * Elements with the contenteditable attribute support innerHTML and textContent bindings.
- */
-
- textContent?: string | undefined | null;
-
- contextmenu?: string | undefined | null;
- controls?: boolean | undefined | null;
- coords?: string | undefined | null;
- crossorigin?: string | boolean | undefined | null;
- currenttime?: number | undefined | null;
- decoding?: 'async' | 'sync' | 'auto' | undefined | null;
- data?: string | undefined | null;
- datetime?: string | undefined | null;
- default?: boolean | undefined | null;
- defaultmuted?: boolean | undefined | null;
- defaultplaybackrate?: number | undefined | null;
- defer?: boolean | undefined | null;
+ autocapitalize?: string | undefined | null;
+ autofocus?: boolean | string | undefined | null;
+ class?: string | undefined | null;
+ contenteditable?: 'true' | 'false' | boolean | 'inherit' | string | undefined | null;
dir?: string | undefined | null;
- dirname?: string | undefined | null;
- disabled?: boolean | undefined | null;
- download?: any | undefined | null;
- draggable?: boolean | 'true' | 'false' | undefined | null;
- enctype?: string | undefined | null;
+ draggable?: 'true' | 'false' | boolean | undefined | null;
enterkeyhint?:
| 'enter'
| 'done'
@@ -490,127 +484,516 @@ declare namespace astroHTML.JSX {
| 'send'
| undefined
| null;
- for?: string | undefined | null;
+ hidden?: boolean | string | undefined | null;
+ id?: string | undefined | null;
+ inert?: boolean | string | undefined | null;
+ inputmode?:
+ | 'none'
+ | 'text'
+ | 'tel'
+ | 'url'
+ | 'email'
+ | 'numeric'
+ | 'decimal'
+ | 'search'
+ | undefined
+ | null;
+ is?: string | undefined | null;
+ itemid?: string | undefined | null;
+ itemprop?: string | undefined | null;
+ itemref?: string | undefined | null;
+ itemscope?: boolean | string | undefined | null;
+ itemtype?: string | undefined | null;
+ lang?: string | undefined | null;
+ slot?: string | undefined | null;
+ spellcheck?: 'true' | 'false' | boolean | undefined | null;
+ style?: string | undefined | null;
+ tabindex?: number | string | undefined | null;
+ title?: string | undefined | null;
+ translate?: 'yes' | 'no' | undefined | null;
+
+ // <command>, <menuitem>
+ radiogroup?: string | undefined | null;
+
+ // WAI-ARIA
+ role?: AriaRole | undefined | null;
+
+ // RDFa Attributes
+ about?: string | undefined | null;
+ datatype?: string | undefined | null;
+ inlist?: any;
+ prefix?: string | undefined | null;
+ property?: string | undefined | null;
+ resource?: string | undefined | null;
+ typeof?: string | undefined | null;
+ vocab?: string | undefined | null;
+
+ // Non-standard Attributes
+ contextmenu?: string | undefined | null; // Obsolete
+ autosave?: string | undefined | null; // Apple exclusive
+ color?: string | undefined | null;
+ results?: number | string | undefined | null;
+ security?: string | undefined | null;
+ unselectable?: 'on' | 'off' | undefined | null; // Internet Explorer
+ }
+
+ type HTMLAttributeReferrerPolicy =
+ | ''
+ | 'no-referrer'
+ | 'no-referrer-when-downgrade'
+ | 'origin'
+ | 'origin-when-cross-origin'
+ | 'same-origin'
+ | 'strict-origin'
+ | 'strict-origin-when-cross-origin'
+ | 'unsafe-url';
+
+ type HTMLAttributeAnchorTarget = '_self' | '_blank' | '_parent' | '_top';
+
+ interface AnchorHTMLAttributes extends HTMLAttributes {
+ download?: string | boolean | undefined | null;
+ href?: string | URL | undefined | null;
+ hreflang?: string | undefined | null;
+ media?: string | undefined | null;
+ ping?: string | undefined | null;
+ rel?: string | undefined | null;
+ target?: HTMLAttributeAnchorTarget | undefined | null;
+ type?: string | undefined | null;
+ referrerpolicy?: HTMLAttributeReferrerPolicy | undefined | null;
+ }
+
+ interface AudioHTMLAttributes extends MediaHTMLAttributes {}
+
+ interface AreaHTMLAttributes extends HTMLAttributes {
+ alt?: string | undefined | null;
+ coords?: string | undefined | null;
+ download?: any;
+ href?: string | undefined | null;
+ hreflang?: string | undefined | null;
+ media?: string | undefined | null;
+ referrerpolicy?: HTMLAttributeReferrerPolicy | undefined | null;
+ rel?: string | undefined | null;
+ shape?: string | undefined | null;
+ target?: string | undefined | null;
+ }
+
+ interface BaseHTMLAttributes extends HTMLAttributes {
+ href?: string | undefined | null;
+ target?: string | undefined | null;
+ }
+
+ interface BlockquoteHTMLAttributes extends HTMLAttributes {
+ cite?: string | undefined | null;
+ }
+
+ interface ButtonHTMLAttributes extends HTMLAttributes {
+ disabled?: boolean | string | undefined | null;
form?: string | undefined | null;
formaction?: string | undefined | null;
formenctype?: string | undefined | null;
formmethod?: string | undefined | null;
- formnovalidate?: boolean | undefined | null;
+ formnovalidate?: boolean | string | undefined | null;
formtarget?: string | undefined | null;
+ name?: string | undefined | null;
+ type?: 'submit' | 'reset' | 'button' | undefined | null;
+ value?: string | string[] | number | undefined | null;
+ }
+
+ interface CanvasHTMLAttributes extends HTMLAttributes {
+ height?: number | string | undefined | null;
+ width?: number | string | undefined | null;
+ }
+
+ interface ColHTMLAttributes extends HTMLAttributes {
+ span?: number | string | undefined | null;
+ width?: number | string | undefined | null;
+ }
+
+ interface ColgroupHTMLAttributes extends HTMLAttributes {
+ span?: number | string | undefined | null;
+ }
+
+ interface DataHTMLAttributes extends HTMLAttributes {
+ value?: string | string[] | number | undefined | null;
+ }
+
+ interface DetailsHTMLAttributes extends HTMLAttributes {
+ open?: boolean | string | undefined | null;
+ }
+
+ interface DelHTMLAttributes extends HTMLAttributes {
+ cite?: string | undefined | null;
+ datetime?: string | undefined | null;
+ }
+
+ interface DialogHTMLAttributes extends HTMLAttributes {
+ open?: boolean | string | undefined | null;
+ }
+
+ interface EmbedHTMLAttributes extends HTMLAttributes {
+ height?: number | string | undefined | null;
+ src?: string | undefined | null;
+ type?: string | undefined | null;
+ width?: number | string | undefined | null;
+ }
+
+ interface FieldsetHTMLAttributes extends HTMLAttributes {
+ disabled?: boolean | string | undefined | null;
+ form?: string | undefined | null;
+ name?: string | undefined | null;
+ }
+
+ interface FormHTMLAttributes extends HTMLAttributes {
+ 'accept-charset'?: string | undefined | null;
+ action?: string | undefined | null;
+ autocomplete?: string | undefined | null;
+ autocorrect?: string | undefined | null;
+ enctype?: string | undefined | null;
+ method?: string | undefined | null;
+ name?: string | undefined | null;
+ novalidate?: boolean | string | undefined | null;
+ target?: string | undefined | null;
+ }
+
+ interface HtmlHTMLAttributes extends HTMLAttributes {
+ manifest?: string | undefined | null;
+ }
+
+ interface IframeHTMLAttributes extends HTMLAttributes {
+ allow?: string | undefined | null;
+ allowfullscreen?: boolean | string | undefined | null;
+ allowtransparency?: boolean | string | undefined | null;
+ /** @deprecated */
frameborder?: number | string | undefined | null;
- headers?: string | undefined | null;
height?: number | string | undefined | null;
- hidden?: boolean | undefined | null;
- high?: number | undefined | null;
- href?: string | URL | undefined | null;
- hreflang?: string | undefined | null;
- htmlfor?: string | undefined | null;
- httpequiv?: string | undefined | null;
- id?: string | undefined | null;
- inputmode?: string | undefined | null;
- integrity?: string | undefined | null;
- is?: string | undefined | null;
- ismap?: boolean | undefined | null;
- keyparams?: string | undefined | null;
- keytype?: string | undefined | null;
- kind?: string | undefined | null;
- label?: string | undefined | null;
- lang?: string | undefined | null;
+ /** @deprecated */
+ marginheight?: number | string | undefined | null;
+ /** @deprecated */
+ marginwidth?: number | string | undefined | null;
+ name?: string | undefined | null;
+ referrerpolicy?: HTMLAttributeReferrerPolicy | undefined | null;
+ sandbox?: string | undefined | null;
+ /** @deprecated */
+ scrolling?: string | undefined | null;
+ seamless?: boolean | string | undefined | null;
+ src?: string | undefined | null;
+ srcdoc?: string | undefined | null;
+ width?: number | string | undefined | null;
+ }
+
+ interface ImgHTMLAttributes extends HTMLAttributes {
+ alt?: string | undefined | null;
+ crossorigin?: 'anonymous' | 'use-credentials' | '' | undefined | null;
+ decoding?: 'async' | 'auto' | 'sync' | undefined | null;
+ height?: number | string | undefined | null;
+ loading?: 'eager' | 'lazy' | undefined | null;
+ referrerpolicy?: HTMLAttributeReferrerPolicy | undefined | null;
+ sizes?: string | undefined | null;
+ src?: string | undefined | null;
+ srcset?: string | undefined | null;
+ usemap?: string | undefined | null;
+ width?: number | string | undefined | null;
+ }
+
+ interface InsHTMLAttributes extends HTMLAttributes {
+ cite?: string | undefined | null;
+ datetime?: string | undefined | null;
+ }
+
+ type HTMLInputTypeAttribute =
+ | 'button'
+ | 'checkbox'
+ | 'color'
+ | 'date'
+ | 'datetime-local'
+ | 'email'
+ | 'file'
+ | 'hidden'
+ | 'image'
+ | 'month'
+ | 'number'
+ | 'password'
+ | 'radio'
+ | 'range'
+ | 'reset'
+ | 'search'
+ | 'submit'
+ | 'tel'
+ | 'text'
+ | 'time'
+ | 'url'
+ | 'week';
+
+ interface InputHTMLAttributes extends HTMLAttributes {
+ accept?: string | undefined | null;
+ alt?: string | undefined | null;
+ autocomplete?: string | undefined | null;
+ autocorrect?: string | undefined | null;
+ capture?: boolean | string | undefined | null;
+ checked?: boolean | string | undefined | null;
+ crossorigin?: string | undefined | null;
+ dirname?: string | undefined | null;
+ disabled?: boolean | string | undefined | null;
+ form?: string | undefined | null;
+ formaction?: string | undefined | null;
+ formenctype?: string | undefined | null;
+ formmethod?: string | undefined | null;
+ formnovalidate?: boolean | string | undefined | null;
+ formtarget?: string | undefined | null;
+ height?: number | string | undefined | null;
list?: string | undefined | null;
- loading?: string | undefined | null;
- loop?: boolean | undefined | null;
- low?: number | undefined | null;
- manifest?: string | undefined | null;
- marginheight?: number | undefined | null;
- marginwidth?: number | undefined | null;
max?: number | string | undefined | null;
- maxlength?: number | undefined | null;
- media?: string | undefined | null;
- mediagroup?: string | undefined | null;
- method?: string | undefined | null;
+ maxlength?: number | string | undefined | null;
min?: number | string | undefined | null;
- minlength?: number | undefined | null;
- multiple?: boolean | undefined | null;
- muted?: boolean | undefined | null;
+ minlength?: number | string | undefined | null;
+ multiple?: boolean | string | undefined | null;
name?: string | undefined | null;
- nonce?: string | undefined | null;
- novalidate?: boolean | undefined | null;
- open?: boolean | undefined | null;
- optimum?: number | undefined | null;
- part?: string | undefined | null;
pattern?: string | undefined | null;
placeholder?: string | undefined | null;
- playsinline?: boolean | undefined | null;
- poster?: string | undefined | null;
- preload?: string | undefined | null;
- radiogroup?: string | undefined | null;
- readonly?: boolean | undefined | null;
- referrerpolicy?: string | undefined | null;
+ readonly?: boolean | string | undefined | null;
+ required?: boolean | string | undefined | null;
+ size?: number | string | undefined | null;
+ src?: string | undefined | null;
+ step?: number | string | undefined | null;
+ type?: HTMLInputTypeAttribute | string | undefined | null;
+ value?: string | string[] | number | undefined | null;
+ width?: number | string | undefined | null;
+ }
+
+ interface KeygenHTMLAttributes extends HTMLAttributes {
+ challenge?: string | undefined | null;
+ disabled?: boolean | string | undefined | null;
+ form?: string | undefined | null;
+ keytype?: string | undefined | null;
+ keyparams?: string | undefined | null;
+ name?: string | undefined | null;
+ }
+
+ interface LabelHTMLAttributes extends HTMLAttributes {
+ form?: string | undefined | null;
+ for?: string | undefined | null;
+ }
+
+ interface LiHTMLAttributes extends HTMLAttributes {
+ value?: string | number | undefined | null;
+ }
+
+ interface LinkHTMLAttributes extends HTMLAttributes {
+ as?: string | undefined | null;
+ crossorigin?: boolean | string | undefined | null;
+ href?: string | URL | undefined | null;
+ hreflang?: string | undefined | null;
+ integrity?: string | undefined | null;
+ media?: string | undefined | null;
+ imageSrcSet?: string | undefined | null;
+ imageSizes?: string | undefined | null;
+ referrerPolicy?: HTMLAttributeReferrerPolicy | undefined | null;
rel?: string | undefined | null;
- required?: boolean | undefined | null;
- reversed?: boolean | undefined | null;
- role?: string | undefined | null;
- rows?: number | undefined | null;
- rowspan?: number | undefined | null;
- sandbox?: string | undefined | null;
- scope?: string | undefined | null;
- scoped?: boolean | undefined | null;
- scrolling?: string | undefined | null;
- seamless?: boolean | undefined | null;
- selected?: boolean | undefined | null;
- shape?: string | undefined | null;
- size?: number | undefined | null;
sizes?: string | undefined | null;
- slot?: string | undefined | null;
- span?: number | undefined | null;
- spellcheck?: boolean | 'true' | 'false' | undefined | null;
+ type?: string | undefined | null;
+ charset?: string | undefined | null;
+ }
+
+ interface MapHTMLAttributes extends HTMLAttributes {
+ name?: string | undefined | null;
+ }
+
+ interface MenuHTMLAttributes extends HTMLAttributes {
+ type?: string | undefined | null;
+ }
+
+ interface MediaHTMLAttributes extends HTMLAttributes {
+ autoplay?: boolean | string | undefined | null;
+ controls?: boolean | string | undefined | null;
+ controlslist?: string | undefined | null;
+ crossorigin?: string | undefined | null;
+ loop?: boolean | string | undefined | null;
+ mediagroup?: string | undefined | null;
+ muted?: boolean | string | undefined | null;
+ playsinline?: boolean | string | undefined | null;
+ preload?: string | undefined | null;
src?: string | undefined | null;
- srcdoc?: string | undefined | null;
- srclang?: string | undefined | null;
- srcset?: string | undefined | null;
- start?: number | undefined | null;
- step?: number | string | undefined | null;
- style?: string | undefined | null;
- summary?: string | undefined | null;
- tabindex?: number | undefined | null;
- target?: string | undefined | null;
- title?: string | undefined | null;
- translate?: 'yes' | 'no' | '' | undefined | null;
+ }
+
+ interface MetaHTMLAttributes extends HTMLAttributes {
+ charset?: string | undefined | null;
+ content?: string | URL | undefined | null;
+ 'http-equiv'?: string | undefined | null;
+ name?: string | undefined | null;
+ }
+
+ interface MeterHTMLAttributes extends HTMLAttributes {
+ form?: string | undefined | null;
+ high?: number | string | undefined | null;
+ low?: number | string | undefined | null;
+ max?: number | string | undefined | null;
+ min?: number | string | undefined | null;
+ optimum?: number | string | undefined | null;
+ value?: string | string[] | number | undefined | null;
+ }
+
+ interface QuoteHTMLAttributes extends HTMLAttributes {
+ cite?: string | undefined | null;
+ }
+
+ interface ObjectHTMLAttributes extends HTMLAttributes {
+ classid?: string | undefined | null;
+ data?: string | undefined | null;
+ form?: string | undefined | null;
+ height?: number | string | undefined | null;
+ name?: string | undefined | null;
type?: string | undefined | null;
usemap?: string | undefined | null;
- value?: any | undefined | null;
- /**
- * a value between 0 and 1
- */
- volume?: number | undefined | null;
width?: number | string | undefined | null;
wmode?: string | undefined | null;
- wrap?: string | undefined | null;
+ }
- // RDFa Attributes
- about?: string | undefined | null;
- datatype?: string | undefined | null;
- inlist?: any | undefined | null;
- prefix?: string | undefined | null;
- property?: string | undefined | null;
- resource?: string | undefined | null;
- typeof?: string | undefined | null;
- vocab?: string | undefined | null;
+ interface OlHTMLAttributes extends HTMLAttributes {
+ reversed?: boolean | string | undefined | null;
+ start?: number | string | undefined | null;
+ type?: '1' | 'a' | 'A' | 'i' | 'I' | undefined | null;
+ }
- // Non-standard Attributes
- autocapitalize?: string | undefined | null;
+ interface OptgroupHTMLAttributes extends HTMLAttributes {
+ disabled?: boolean | string | undefined | null;
+ label?: string | undefined | null;
+ }
+
+ interface OptionHTMLAttributes extends HTMLAttributes {
+ disabled?: boolean | string | undefined | null;
+ label?: string | undefined | null;
+ selected?: boolean | string | undefined | null;
+ value?: string | string[] | number | undefined | null;
+ }
+
+ interface OutputHTMLAttributes extends HTMLAttributes {
+ form?: string | undefined | null;
+ for?: string | undefined | null;
+ name?: string | undefined | null;
+ }
+
+ interface ParamHTMLAttributes extends HTMLAttributes {
+ name?: string | undefined | null;
+ value?: string | string[] | number | undefined | null;
+ }
+
+ interface ProgressHTMLAttributes extends HTMLAttributes {
+ max?: number | string | undefined | null;
+ value?: string | string[] | number | undefined | null;
+ }
+
+ interface SlotHTMLAttributes extends HTMLAttributes {
+ name?: string | undefined | null;
+ }
+
+ interface ScriptHTMLAttributes extends HTMLAttributes {
+ async?: boolean | string | undefined | null;
+ charset?: string | undefined | null;
+ crossorigin?: string | undefined | null;
+ defer?: boolean | string | undefined | null;
+ integrity?: string | undefined | null;
+ nomodule?: boolean | string | undefined | null;
+ nonce?: string | undefined | null;
+ src?: string | undefined | null;
+ type?: string | undefined | null;
+ }
+
+ interface SelectHTMLAttributes extends HTMLAttributes {
+ autocomplete?: string | undefined | null;
autocorrect?: string | undefined | null;
- autosave?: string | undefined | null;
- color?: string | undefined | null;
- controlslist?: 'nodownload' | 'nofullscreen' | 'noplaybackrate' | 'noremoteplayback';
- itemprop?: string | undefined | null;
- itemscope?: boolean | undefined | null;
- itemtype?: string | undefined | null;
- itemid?: string | undefined | null;
- itemref?: string | undefined | null;
- results?: number | undefined | null;
- security?: string | undefined | null;
- unselectable?: boolean | undefined | null;
+ disabled?: boolean | string | undefined | null;
+ form?: string | undefined | null;
+ multiple?: boolean | string | undefined | null;
+ name?: string | undefined | null;
+ required?: boolean | string | undefined | null;
+ size?: number | string | undefined | null;
+ value?: string | string[] | number | undefined | null;
+ }
+
+ interface SourceHTMLAttributes extends HTMLAttributes {
+ height?: number | string | undefined | null;
+ media?: string | undefined | null;
+ sizes?: string | undefined | null;
+ src?: string | undefined | null;
+ srcset?: string | undefined | null;
+ type?: string | undefined | null;
+ width?: number | string | undefined | null;
+ }
+
+ interface StyleHTMLAttributes extends HTMLAttributes {
+ media?: string | undefined | null;
+ nonce?: string | undefined | null;
+ scoped?: boolean | string | undefined | null;
+ type?: string | undefined | null;
+ }
+
+ interface TableHTMLAttributes extends HTMLAttributes {
+ align?: 'left' | 'center' | 'right' | undefined | null;
+ bgcolor?: string | undefined | null;
+ border?: number | undefined | null;
+ cellpadding?: number | string | undefined | null;
+ cellspacing?: number | string | undefined | null;
+ frame?: boolean | undefined | null;
+ rules?: 'none' | 'groups' | 'rows' | 'columns' | 'all' | undefined | null;
+ summary?: string | undefined | null;
+ width?: number | string | undefined | null;
+ }
+
+ interface TextareaHTMLAttributes extends HTMLAttributes {
+ autocomplete?: string | undefined | null;
+ autocorrect?: string | undefined | null;
+ cols?: number | string | undefined | null;
+ dirname?: string | undefined | null;
+ disabled?: boolean | string | undefined | null;
+ form?: string | undefined | null;
+ maxlength?: number | string | undefined | null;
+ minlength?: number | string | undefined | null;
+ name?: string | undefined | null;
+ placeholder?: string | undefined | null;
+ readonly?: boolean | string | undefined | null;
+ required?: boolean | string | undefined | null;
+ rows?: number | string | undefined | null;
+ value?: string | string[] | number | undefined | null;
+ wrap?: string | undefined | null;
+ }
+
+ interface TdHTMLAttributes extends HTMLAttributes {
+ align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined | null;
+ colspan?: number | string | undefined | null;
+ headers?: string | undefined | null;
+ rowspan?: number | string | undefined | null;
+ scope?: string | undefined | null;
+ abbr?: string | undefined | null;
+ valign?: 'top' | 'middle' | 'bottom' | 'baseline' | undefined | null;
+ }
+
+ interface ThHTMLAttributes extends HTMLAttributes {
+ align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined | null;
+ colspan?: number | string | undefined | null;
+ headers?: string | undefined | null;
+ rowspan?: number | string | undefined | null;
+ scope?: string | undefined | null;
+ abbr?: string | undefined | null;
+ }
+
+ interface TimeHTMLAttributes extends HTMLAttributes {
+ datetime?: string | undefined | null;
+ }
+
+ interface TrackHTMLAttributes extends HTMLAttributes {
+ default?: boolean | string | undefined | null;
+ kind?: string | undefined | null;
+ label?: string | undefined | null;
+ src?: string | undefined | null;
+ srclang?: string | undefined | null;
+ }
+
+ interface VideoHTMLAttributes extends MediaHTMLAttributes {
+ height?: number | string | undefined | null;
+ playsinline?: boolean | string | undefined | null;
+ poster?: string | undefined | null;
+ width?: number | string | undefined | null;
+ disablepictureinpicture?: boolean | string | undefined | null;
}
// this list is "complete" in that it contains every SVG attribute
@@ -621,12 +1004,8 @@ declare namespace astroHTML.JSX {
// - "number | string"
// - "string"
// - union of string literals
- interface SVGAttributes<T extends EventTarget>
- extends AriaAttributes,
- DOMAttributes<T>,
- AstroBuiltinAttributes {
+ interface SVGAttributes extends AriaAttributes, DOMAttributes, AstroBuiltinAttributes {
// Attributes which also defined in HTMLAttributes
- className?: string | undefined | null;
class?: string | undefined | null;
color?: string | undefined | null;
height?: number | string | undefined | null;
@@ -643,8 +1022,8 @@ declare namespace astroHTML.JSX {
width?: number | string | undefined | null;
// Other HTML properties supported by SVG elements in browsers
- role?: string | undefined | null;
- tabindex?: number | undefined | null;
+ role?: AriaRole | undefined | null;
+ tabindex?: number | string | undefined | null;
crossorigin?: 'anonymous' | 'use-credentials' | '' | undefined | null;
// SVG Specific attributes
@@ -906,184 +1285,181 @@ declare namespace astroHTML.JSX {
zoomAndPan?: string | undefined | null;
}
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
- interface HTMLProps<T extends EventTarget> extends HTMLAttributes<T> {}
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
- interface SVGProps<T extends EventTarget> extends SVGAttributes<T> {}
-
interface IntrinsicElements {
// HTML
- a: HTMLProps<HTMLAnchorElement>;
- abbr: HTMLProps<HTMLElement>;
- address: HTMLProps<HTMLElement>;
- area: HTMLProps<HTMLAreaElement>;
- article: HTMLProps<HTMLElement>;
- aside: HTMLProps<HTMLElement>;
- audio: HTMLProps<HTMLAudioElement>;
- b: HTMLProps<HTMLElement>;
- base: HTMLProps<HTMLBaseElement>;
- bdi: HTMLProps<HTMLElement>;
- bdo: HTMLProps<HTMLElement>;
- big: HTMLProps<HTMLElement>;
- blockquote: HTMLProps<HTMLElement>;
- body: HTMLProps<HTMLBodyElement>;
- br: HTMLProps<HTMLBRElement>;
- button: HTMLProps<HTMLButtonElement>;
- canvas: HTMLProps<HTMLCanvasElement>;
- caption: HTMLProps<HTMLElement>;
- cite: HTMLProps<HTMLElement>;
- code: HTMLProps<HTMLElement>;
- col: HTMLProps<HTMLTableColElement>;
- colgroup: HTMLProps<HTMLTableColElement>;
- data: HTMLProps<HTMLElement>;
- datalist: HTMLProps<HTMLDataListElement>;
- dd: HTMLProps<HTMLElement>;
- del: HTMLProps<HTMLElement>;
- details: HTMLProps<HTMLElement>;
- dfn: HTMLProps<HTMLElement>;
- dialog: HTMLProps<HTMLElement>;
- div: HTMLProps<HTMLDivElement>;
- dl: HTMLProps<HTMLDListElement>;
- dt: HTMLProps<HTMLElement>;
- em: HTMLProps<HTMLElement>;
- embed: HTMLProps<HTMLEmbedElement>;
- fieldset: HTMLProps<HTMLFieldSetElement>;
- figcaption: HTMLProps<HTMLElement>;
- figure: HTMLProps<HTMLElement>;
- footer: HTMLProps<HTMLElement>;
- form: HTMLProps<HTMLFormElement>;
- h1: HTMLProps<HTMLHeadingElement>;
- h2: HTMLProps<HTMLHeadingElement>;
- h3: HTMLProps<HTMLHeadingElement>;
- h4: HTMLProps<HTMLHeadingElement>;
- h5: HTMLProps<HTMLHeadingElement>;
- h6: HTMLProps<HTMLHeadingElement>;
- head: HTMLProps<HTMLHeadElement>;
- header: HTMLProps<HTMLElement>;
- hgroup: HTMLProps<HTMLElement>;
- hr: HTMLProps<HTMLHRElement>;
- html: HTMLProps<HTMLHtmlElement>;
- i: HTMLProps<HTMLElement>;
- iframe: HTMLProps<HTMLIFrameElement>;
- img: HTMLProps<HTMLImageElement>;
- input: HTMLProps<HTMLInputElement>;
- ins: HTMLProps<HTMLModElement>;
- kbd: HTMLProps<HTMLElement>;
- keygen: HTMLProps<HTMLElement>;
- label: HTMLProps<HTMLLabelElement>;
- legend: HTMLProps<HTMLLegendElement>;
- li: HTMLProps<HTMLLIElement>;
- link: HTMLProps<HTMLLinkElement>;
- main: HTMLProps<HTMLElement>;
- map: HTMLProps<HTMLMapElement>;
- mark: HTMLProps<HTMLElement>;
- menu: HTMLProps<HTMLElement>;
- menuitem: HTMLProps<HTMLElement>;
- meta: HTMLProps<HTMLMetaElement>;
- meter: HTMLProps<HTMLElement>;
- nav: HTMLProps<HTMLElement>;
- noindex: HTMLProps<HTMLElement>;
- noscript: HTMLProps<HTMLElement>;
- object: HTMLProps<HTMLObjectElement>;
- ol: HTMLProps<HTMLOListElement>;
- optgroup: HTMLProps<HTMLOptGroupElement>;
- option: HTMLProps<HTMLOptionElement>;
- output: HTMLProps<HTMLElement>;
- p: HTMLProps<HTMLParagraphElement>;
- param: HTMLProps<HTMLParamElement>;
- picture: HTMLProps<HTMLElement>;
- pre: HTMLProps<HTMLPreElement>;
- progress: HTMLProps<HTMLProgressElement>;
- q: HTMLProps<HTMLQuoteElement>;
- rp: HTMLProps<HTMLElement>;
- rt: HTMLProps<HTMLElement>;
- ruby: HTMLProps<HTMLElement>;
- s: HTMLProps<HTMLElement>;
- samp: HTMLProps<HTMLElement>;
- script: HTMLProps<HTMLElement> & AstroScriptAttributes;
- section: HTMLProps<HTMLElement>;
- select: HTMLProps<HTMLSelectElement>;
- small: HTMLProps<HTMLElement>;
- source: HTMLProps<HTMLSourceElement>;
- span: HTMLProps<HTMLSpanElement>;
- strong: HTMLProps<HTMLElement>;
- style: HTMLProps<HTMLStyleElement> & AstroStyleAttributes;
- sub: HTMLProps<HTMLElement>;
- summary: HTMLProps<HTMLElement>;
- sup: HTMLProps<HTMLElement>;
- table: HTMLProps<HTMLTableElement>;
- tbody: HTMLProps<HTMLTableSectionElement>;
- td: HTMLProps<HTMLTableCellElement>;
- textarea: HTMLProps<HTMLTextAreaElement>;
- tfoot: HTMLProps<HTMLTableSectionElement>;
- th: HTMLProps<HTMLTableCellElement>;
- thead: HTMLProps<HTMLTableSectionElement>;
- time: HTMLProps<HTMLElement>;
- title: HTMLProps<HTMLTitleElement>;
- tr: HTMLProps<HTMLTableRowElement>;
- track: HTMLProps<HTMLTrackElement>;
- u: HTMLProps<HTMLElement>;
- ul: HTMLProps<HTMLUListElement>;
- var: HTMLProps<HTMLElement>;
- video: HTMLProps<HTMLVideoElement>;
- wbr: HTMLProps<HTMLElement>;
-
- svg: SVGProps<SVGSVGElement>;
-
- animate: SVGProps<SVGAnimateElement>;
- circle: SVGProps<SVGCircleElement>;
- clipPath: SVGProps<SVGClipPathElement>;
- defs: SVGProps<SVGDefsElement>;
- desc: SVGProps<SVGDescElement>;
- ellipse: SVGProps<SVGEllipseElement>;
- feBlend: SVGProps<SVGFEBlendElement>;
- feColorMatrix: SVGProps<SVGFEColorMatrixElement>;
- feComponentTransfer: SVGProps<SVGFEComponentTransferElement>;
- feComposite: SVGProps<SVGFECompositeElement>;
- feConvolveMatrix: SVGProps<SVGFEConvolveMatrixElement>;
- feDiffuseLighting: SVGProps<SVGFEDiffuseLightingElement>;
- feDisplacementMap: SVGProps<SVGFEDisplacementMapElement>;
- feDistantLight: SVGProps<SVGFEDistantLightElement>;
- feFlood: SVGProps<SVGFEFloodElement>;
- feFuncA: SVGProps<SVGFEFuncAElement>;
- feFuncB: SVGProps<SVGFEFuncBElement>;
- feFuncG: SVGProps<SVGFEFuncGElement>;
- feFuncR: SVGProps<SVGFEFuncRElement>;
- feGaussianBlur: SVGProps<SVGFEGaussianBlurElement>;
- feImage: SVGProps<SVGFEImageElement>;
- feMerge: SVGProps<SVGFEMergeElement>;
- feMergeNode: SVGProps<SVGFEMergeNodeElement>;
- feMorphology: SVGProps<SVGFEMorphologyElement>;
- feOffset: SVGProps<SVGFEOffsetElement>;
- fePointLight: SVGProps<SVGFEPointLightElement>;
- feSpecularLighting: SVGProps<SVGFESpecularLightingElement>;
- feSpotLight: SVGProps<SVGFESpotLightElement>;
- feTile: SVGProps<SVGFETileElement>;
- feTurbulence: SVGProps<SVGFETurbulenceElement>;
- filter: SVGProps<SVGFilterElement>;
- foreignObject: SVGProps<SVGForeignObjectElement>;
- g: SVGProps<SVGGElement>;
- image: SVGProps<SVGImageElement>;
- line: SVGProps<SVGLineElement>;
- linearGradient: SVGProps<SVGLinearGradientElement>;
- marker: SVGProps<SVGMarkerElement>;
- mask: SVGProps<SVGMaskElement>;
- metadata: SVGProps<SVGMetadataElement>;
- path: SVGProps<SVGPathElement>;
- pattern: SVGProps<SVGPatternElement>;
- polygon: SVGProps<SVGPolygonElement>;
- polyline: SVGProps<SVGPolylineElement>;
- radialGradient: SVGProps<SVGRadialGradientElement>;
- rect: SVGProps<SVGRectElement>;
- stop: SVGProps<SVGStopElement>;
- switch: SVGProps<SVGSwitchElement>;
- symbol: SVGProps<SVGSymbolElement>;
- text: SVGProps<SVGTextElement>;
- textPath: SVGProps<SVGTextPathElement>;
- tspan: SVGProps<SVGTSpanElement>;
- use: SVGProps<SVGUseElement>;
- view: SVGProps<SVGViewElement>;
+ 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;
+ data: DataHTMLAttributes;
+ datalist: HTMLAttributes;
+ dd: HTMLAttributes;
+ del: DelHTMLAttributes;
+ details: DetailsHTMLAttributes;
+ dfn: HTMLAttributes;
+ dialog: DialogHTMLAttributes;
+ 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;
+ noindex: HTMLAttributes; // https://en.wikipedia.org/wiki/Noindex#%3Cnoindex%3E_tag
+ 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;
+ slot: SlotHTMLAttributes;
+ script: ScriptHTMLAttributes & AstroScriptAttributes;
+ section: HTMLAttributes;
+ select: SelectHTMLAttributes;
+ small: HTMLAttributes;
+ source: SourceHTMLAttributes;
+ span: HTMLAttributes;
+ strong: HTMLAttributes;
+ style: StyleHTMLAttributes & AstroStyleAttributes;
+ sub: HTMLAttributes;
+ summary: HTMLAttributes;
+ sup: HTMLAttributes;
+ table: TableHTMLAttributes;
+ 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;
+
+ // SVG
+ svg: SVGAttributes;
+ animate: 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;
+ 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;
+ 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;
+ // Allow for arbitrary elements
[name: string]: { [name: string]: any };
}
}