/* eslint-disable @typescript-eslint/no-unused-vars */ /** * Adapted from React TypeScript definition * @see https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts * https://github.com/DefinitelyTyped/DefinitelyTyped/commit/e05c7e9d4cf1034467ca7561d8dac71b0546b498 */ import type * as CSS from "csstype" export * from "./extra" export { styled } from "./styled" export type Booleanish = boolean | "true" | "false" type CrossOrigin = "anonymous" | "use-credentials" | "" | undefined export function className(value: ClassNames): string export { createElement as h, jsx as jsxs } export interface BasicClassList { (value: Element): void readonly size: number readonly value: string add(...tokens: string[]): void remove(...tokens: string[]): void toggle(token: string, force?: boolean): void contains(token: string): boolean } /** @internal */ declare const __defaultExport: { createElement: typeof createElement Fragment: typeof Fragment Component: typeof Component } export default __defaultExport export type Key = string | number | bigint type ClassName = string | { [key: string]: boolean } | false | null | undefined | ClassName[] export type ClassNames = ClassName | BasicClassList | Iterable export interface RefObject { readonly current: T | null } export type RefCallback = (instance: T) => void export type Ref = RefCallback | RefObject | null /** * @internal You shouldn't need to use this type since you never see these attributes * inside your component or have to validate them. */ interface Attributes { key?: Key | null | undefined } interface AttrWithRef extends Attributes { ref?: Ref | undefined } /** * This technically should include `DocumentFragment` as well, but a lot of web APIs * expect an `Element`. */ export type ReactElement = HTMLElement | SVGElement type DOMFactory

, T extends Element> = ( props?: (AttrWithRef & P) | null, ...children: ReactNode[] ) => T type HTMLFactory = DetailedHTMLFactory, T> interface DetailedHTMLFactory

, T extends HTMLElement> extends DOMFactory { (props?: (AttrWithRef & P) | null, ...children: ReactNode[]): T (...children: ReactNode[]): T } interface SVGFactory extends DOMFactory, SVGElement> { ( props?: (AttrWithRef & SVGAttributes) | null, ...children: ReactNode[] ): SVGElement (...children: ReactNode[]): SVGElement } // // React Nodes // http://facebook.github.io/react/docs/glossary.html // ---------------------------------------------------------------------- /** * @deprecated Inline the type instead to make the intent clear. */ type ReactText = string | number /** * @deprecated Inline the type instead to make the intent clear. */ type ReactChild = Node | ReactText type ReactChildren = ReactNodeArray | NodeList | HTMLCollection /** * @deprecated Use either `ReactNode[]` if you need an array or `Iterable` if its passed to a host component. */ interface ReactNodeArray extends Array {} export type ReactNode = | ReactElement | string | number | Iterable | ReactChildren | ShadowRootContainer | DocumentFragment | Text | Comment | boolean | null | undefined // // Top Level API // ---------------------------------------------------------------------- export type HTMLElementTagNames = keyof HTMLElementTagNameMap export type SVGElementTagNames = keyof ReactSVG // DOM Elements export function createFactory(type: K): HTMLFactory export function createFactory(type: SVGElementTagNames): SVGFactory export function createFactory(type: string): T // DOM Elements export function createElement( type: K, props?: (HTMLAttributes & AttrWithRef) | null, ...children: ReactNode[] ): T export function createElement( type: K, props?: (SVGAttributes & AttrWithRef) | null, ...children: ReactNode[] ): SVGElement export function createElement( type: string, props?: (AttrWithRef & DOMAttributes) | null, ...children: ReactNode[] ): T // Custom components export function createElement>( type: Type, props?: | (Attributes & PropOfComponent & { ref?: Ref> | undefined }) | null, ...children: ReactNode[] ): T export function createElement

>( type: Type, props?: (Attributes & P & { ref?: Ref> | undefined }) | null, ...children: ReactNode[] ): T export function createElement( type: string, props?: Attributes | null, ...children: ReactNode[] ): T // Locally scoped JSX types export namespace createElement { export { JSX } } // DOM Elements export function jsx( type: K, props?: PropsWithChildren & AttrWithRef> | null, key?: string ): T export function jsx( type: K, props?: PropsWithChildren & AttrWithRef> | null, key?: string ): SVGElement export function jsx( type: string, props?: PropsWithChildren & DOMAttributes> | null, key?: string ): T // Custom components export function jsx

( type: ComponentType, props?: PropsWithChildren | null, key?: string ): T export function jsx( type: string, props?: PropsWithChildren | null, key?: string ): T export function Fragment(props: { children?: ReactNode | undefined }): any // DocumentFragment export function StrictMode(props: { children?: ReactNode | undefined }): any // DocumentFragment declare const jsxDomType: unique symbol declare const enum JsxDomType { ShadowRoot = "ShadowRoot", } type ShadowRootContainer = ReturnType export function ShadowRoot( props: ShadowRootInit & { ref?: RefObject | ((value: ShadowRoot) => void) children?: ReactNode | undefined } ): { [jsxDomType]: JsxDomType attr: ShadowRootInit ref?: RefObject | ((value: ShadowRoot) => void) children: ReactElement | ReactElement[] } export interface FunctionComponent

{ (props: PropsWithChildren

, context?: any): T | null defaultProps?: Partial

displayName?: string } export { FunctionComponent as FC } export interface ComponentClass

{ new (props: P, context?: any): Component defaultProps?: Partial

| undefined displayName?: string | undefined } export class Component

{ constructor(props: PropsWithChildren

& { ref?: Ref }) readonly props: PropsWithChildren

render(): T | null } export { Component as PureComponent } export type PropsWithChildren

= P & { children?: ReactNode | undefined } export type ComponentType

= | ComponentClass | FunctionComponent type PropOfComponent = T extends ComponentType ? P : never // // React Hooks // ---------------------------------------------------------------------- // based on the code in https://github.com/facebook/react/pull/13968 type DependencyList = ReadonlyArray export interface MutableRefObject { current: T } export function createRef(): RefObject /** * React compatibility-only API. */ export function forwardRef( render: (props: P, ref: Ref) => ReactNode ): FunctionComponent

}> /** * `useRef` returns a mutable ref object whose `.current` property is initialized to the passed argument * (`initialValue`). The returned object will persist for the full lifetime of the component. * * Note that `useRef()` is useful for more than the `ref` attribute. It’s handy for keeping any mutable * value around similar to how you’d use instance fields in classes. * * @version 16.8.0 * @see https://react.dev/reference/react/useRef */ export function useRef(initialValue: T): MutableRefObject // convenience overload for refs given as a ref prop as they typically start with a null value /** * `useRef` returns a mutable ref object whose `.current` property is initialized to the passed argument * (`initialValue`). The returned object will persist for the full lifetime of the component. * * Note that `useRef()` is useful for more than the `ref` attribute. It’s handy for keeping any mutable * value around similar to how you’d use instance fields in classes. * * Usage note: if you need the result of useRef to be directly mutable, include `| null` in the type * of the generic argument. * * @version 16.8.0 * @see https://react.dev/reference/react/useRef */ export function useRef(initialValue: T | null): RefObject // convenience overload for potentially undefined initialValue / call with 0 arguments // has a default to stop it from defaulting to {} instead /** * `useRef` returns a mutable ref object whose `.current` property is initialized to the passed argument * (`initialValue`). The returned object will persist for the full lifetime of the component. * * Note that `useRef()` is useful for more than the `ref` attribute. It’s handy for keeping any mutable * value around similar to how you’d use instance fields in classes. * * @version 16.8.0 * @see https://react.dev/reference/react/useRef */ export function useRef(): MutableRefObject export function useImperativeHandle(ref: Ref, init: () => T, deps?: DependencyList): void // I made 'inputs' required here and in useMemo as there's no point to memoizing without the memoization key // useCallback(X) is identical to just using X, useMemo(() => Y) is identical to just using Y. /** * `useCallback` will return a memoized version of the callback that only changes if one of the `inputs` * has changed. * * @version 16.8.0 * @see https://react.dev/reference/react/useCallback */ export function useCallback any>( callback: T, deps: DependencyList ): T /** * `useMemo` will only recompute the memoized value when one of the `deps` has changed. * * Usage note: if calling `useMemo` with a referentially stable function, also give it as the input in * the second argument. * * ```ts * function expensive () { ... } * * function Component () { * const expensiveResult = useMemo(expensive, [expensive]) * return ... * } * ``` * * @version 16.8.0 * @see https://react.dev/reference/react/useMemo */ // allow undefined, but don't make it optional as that is very likely a mistake export function useMemo(factory: () => T, deps: DependencyList | undefined): T interface CurrentTarget { currentTarget: EventTarget & T } type FormEvent = Event type ChangeEvent = Event // // Event Handler Types // ---------------------------------------------------------------------- type EventHandler = (this: T, event: E & CurrentTarget) => void export type ReactEventHandler = EventHandler export type ClipboardEventHandler = EventHandler export type CompositionEventHandler = EventHandler export type DragEventHandler = EventHandler export type FocusEventHandler = EventHandler export type FormEventHandler = EventHandler export type ChangeEventHandler = EventHandler export type KeyboardEventHandler = EventHandler export type MouseEventHandler = EventHandler export type TouchEventHandler = EventHandler export type PointerEventHandler = EventHandler export type UIEventHandler = EventHandler export type WheelEventHandler = EventHandler export type AnimationEventHandler = EventHandler export type TransitionEventHandler = EventHandler export type DetailedHTMLProps, T> = AttrWithRef & E export interface SVGProps extends SVGAttributes, AttrWithRef {} interface SVGLineElementAttributes extends SVGProps {} interface SVGTextElementAttributes extends SVGProps {} interface EventHandlers { // Clipboard Events copy?: ClipboardEventHandler | undefined cut?: ClipboardEventHandler | undefined paste?: ClipboardEventHandler | undefined // Composition Events compositionend?: CompositionEventHandler | undefined compositionstart?: CompositionEventHandler | undefined compositionupdate?: CompositionEventHandler | undefined // Focus Events focus?: FocusEventHandler | undefined blur?: FocusEventHandler | undefined // Form Events change?: FormEventHandler | undefined beforeinput?: FormEventHandler | undefined input?: FormEventHandler | undefined reset?: FormEventHandler | undefined submit?: FormEventHandler | undefined invalid?: FormEventHandler | undefined // Image Events load?: ReactEventHandler | undefined error?: ReactEventHandler | undefined // also a Media Event // Keyboard Events keydown?: KeyboardEventHandler | undefined keypress?: KeyboardEventHandler | undefined keyup?: KeyboardEventHandler | undefined // Media Events abort?: ReactEventHandler | undefined canplay?: ReactEventHandler | undefined canplaythrough?: ReactEventHandler | undefined durationchange?: ReactEventHandler | undefined emptied?: ReactEventHandler | undefined encrypted?: ReactEventHandler | undefined ended?: ReactEventHandler | undefined loadeddata?: ReactEventHandler | undefined loadedmetadata?: ReactEventHandler | undefined loadstart?: ReactEventHandler | undefined pause?: ReactEventHandler | undefined play?: ReactEventHandler | undefined playing?: ReactEventHandler | undefined progress?: ReactEventHandler | undefined ratechange?: ReactEventHandler | undefined seeked?: ReactEventHandler | undefined seeking?: ReactEventHandler | undefined stalled?: ReactEventHandler | undefined suspend?: ReactEventHandler | undefined timeupdate?: ReactEventHandler | undefined volumechange?: ReactEventHandler | undefined waiting?: ReactEventHandler | undefined // MouseEvents auxclick?: MouseEventHandler | undefined click?: MouseEventHandler | undefined contextmenu?: MouseEventHandler | undefined doubleclick?: MouseEventHandler | undefined drag?: DragEventHandler | undefined dragend?: DragEventHandler | undefined dragenter?: DragEventHandler | undefined dragexit?: DragEventHandler | undefined dragleave?: DragEventHandler | undefined dragover?: DragEventHandler | undefined dragstart?: DragEventHandler | undefined drop?: DragEventHandler | undefined mousedown?: MouseEventHandler | undefined mouseenter?: MouseEventHandler | undefined mouseleave?: MouseEventHandler | undefined mousemove?: MouseEventHandler | undefined mouseout?: MouseEventHandler | undefined mouseover?: MouseEventHandler | undefined mouseup?: MouseEventHandler | undefined // Selection Events select?: ReactEventHandler | undefined // Touch Events touchcancel?: TouchEventHandler | undefined touchend?: TouchEventHandler | undefined touchmove?: TouchEventHandler | undefined touchstart?: TouchEventHandler | undefined // Pointer Events pointerdown?: PointerEventHandler | undefined pointermove?: PointerEventHandler | undefined pointerup?: PointerEventHandler | undefined pointercancel?: PointerEventHandler | undefined pointerenter?: PointerEventHandler | undefined pointerleave?: PointerEventHandler | undefined pointerover?: PointerEventHandler | undefined pointerout?: PointerEventHandler | undefined // UI Events scroll?: UIEventHandler | undefined // Wheel Events wheel?: WheelEventHandler | undefined // Animation Events animationstart?: AnimationEventHandler | undefined animationend?: AnimationEventHandler | undefined animationiteration?: AnimationEventHandler | undefined // Transition Events transitionend?: TransitionEventHandler | undefined // Custom events [K: string]: EventHandler | undefined } export interface DOMAttributes { children?: ReactNode | undefined dangerouslySetInnerHTML?: { __html: string } | undefined on?: EventHandlers | undefined onCapture?: EventHandlers | undefined // Clipboard Events onCopy?: ClipboardEventHandler | undefined onCopyCapture?: ClipboardEventHandler | undefined onCut?: ClipboardEventHandler | undefined onCutCapture?: ClipboardEventHandler | undefined onPaste?: ClipboardEventHandler | undefined onPasteCapture?: ClipboardEventHandler | undefined // Composition Events onCompositionEnd?: CompositionEventHandler | undefined onCompositionEndCapture?: CompositionEventHandler | undefined onCompositionStart?: CompositionEventHandler | undefined onCompositionStartCapture?: CompositionEventHandler | undefined onCompositionUpdate?: CompositionEventHandler | undefined onCompositionUpdateCapture?: CompositionEventHandler | undefined // Focus Events onFocus?: FocusEventHandler | undefined onFocusCapture?: FocusEventHandler | undefined onBlur?: FocusEventHandler | undefined onBlurCapture?: FocusEventHandler | undefined // Form Events onChange?: FormEventHandler | undefined onChangeCapture?: FormEventHandler | undefined onBeforeInput?: FormEventHandler | undefined onBeforeInputCapture?: FormEventHandler | undefined onInput?: FormEventHandler | undefined onInputCapture?: FormEventHandler | undefined onReset?: FormEventHandler | undefined onResetCapture?: FormEventHandler | undefined onSubmit?: FormEventHandler | undefined onSubmitCapture?: FormEventHandler | undefined onInvalid?: FormEventHandler | undefined onInvalidCapture?: FormEventHandler | undefined // Image Events onLoad?: ReactEventHandler | undefined onLoadCapture?: ReactEventHandler | undefined onError?: ReactEventHandler | undefined // also a Media Event onErrorCapture?: ReactEventHandler | undefined // also a Media Event // Keyboard Events onKeyDown?: KeyboardEventHandler | undefined onKeyDownCapture?: KeyboardEventHandler | undefined /** @deprecated */ onKeyPress?: KeyboardEventHandler | undefined /** @deprecated */ onKeyPressCapture?: KeyboardEventHandler | undefined onKeyUp?: KeyboardEventHandler | undefined onKeyUpCapture?: KeyboardEventHandler | undefined // Media Events onAbort?: ReactEventHandler | undefined onAbortCapture?: ReactEventHandler | undefined onCanPlay?: ReactEventHandler | undefined onCanPlayCapture?: ReactEventHandler | undefined onCanPlayThrough?: ReactEventHandler | undefined onCanPlayThroughCapture?: ReactEventHandler | undefined onDurationChange?: ReactEventHandler | undefined onDurationChangeCapture?: ReactEventHandler | undefined onEmptied?: ReactEventHandler | undefined onEmptiedCapture?: ReactEventHandler | undefined onEncrypted?: ReactEventHandler | undefined onEncryptedCapture?: ReactEventHandler | undefined onEnded?: ReactEventHandler | undefined onEndedCapture?: ReactEventHandler | undefined onLoadedData?: ReactEventHandler | undefined onLoadedDataCapture?: ReactEventHandler | undefined onLoadedMetadata?: ReactEventHandler | undefined onLoadedMetadataCapture?: ReactEventHandler | undefined onLoadStart?: ReactEventHandler | undefined onLoadStartCapture?: ReactEventHandler | undefined onPause?: ReactEventHandler | undefined onPauseCapture?: ReactEventHandler | undefined onPlay?: ReactEventHandler | undefined onPlayCapture?: ReactEventHandler | undefined onPlaying?: ReactEventHandler | undefined onPlayingCapture?: ReactEventHandler | undefined onProgress?: ReactEventHandler | undefined onProgressCapture?: ReactEventHandler | undefined onRateChange?: ReactEventHandler | undefined onRateChangeCapture?: ReactEventHandler | undefined onResize?: ReactEventHandler | undefined onResizeCapture?: ReactEventHandler | undefined onSeeked?: ReactEventHandler | undefined onSeekedCapture?: ReactEventHandler | undefined onSeeking?: ReactEventHandler | undefined onSeekingCapture?: ReactEventHandler | undefined onStalled?: ReactEventHandler | undefined onStalledCapture?: ReactEventHandler | undefined onSuspend?: ReactEventHandler | undefined onSuspendCapture?: ReactEventHandler | undefined onTimeUpdate?: ReactEventHandler | undefined onTimeUpdateCapture?: ReactEventHandler | undefined onVolumeChange?: ReactEventHandler | undefined onVolumeChangeCapture?: ReactEventHandler | undefined onWaiting?: ReactEventHandler | undefined onWaitingCapture?: ReactEventHandler | undefined // MouseEvents onAuxClick?: MouseEventHandler | undefined onAuxClickCapture?: MouseEventHandler | undefined onClick?: MouseEventHandler | undefined onClickCapture?: MouseEventHandler | undefined onContextMenu?: MouseEventHandler | undefined onContextMenuCapture?: MouseEventHandler | undefined onDblClick?: MouseEventHandler | undefined onDblClickCapture?: MouseEventHandler | undefined onDoubleClick?: MouseEventHandler | undefined onDoubleClickCapture?: MouseEventHandler | undefined onDrag?: DragEventHandler | undefined onDragCapture?: DragEventHandler | undefined onDragEnd?: DragEventHandler | undefined onDragEndCapture?: DragEventHandler | undefined onDragEnter?: DragEventHandler | undefined onDragEnterCapture?: DragEventHandler | undefined onDragExit?: DragEventHandler | undefined onDragExitCapture?: DragEventHandler | undefined onDragLeave?: DragEventHandler | undefined onDragLeaveCapture?: DragEventHandler | undefined onDragOver?: DragEventHandler | undefined onDragOverCapture?: DragEventHandler | undefined onDragStart?: DragEventHandler | undefined onDragStartCapture?: DragEventHandler | undefined onDrop?: DragEventHandler | undefined onDropCapture?: DragEventHandler | undefined onMouseDown?: MouseEventHandler | undefined onMouseDownCapture?: MouseEventHandler | undefined onMouseEnter?: MouseEventHandler | undefined onMouseLeave?: MouseEventHandler | undefined onMouseMove?: MouseEventHandler | undefined onMouseMoveCapture?: MouseEventHandler | undefined onMouseOut?: MouseEventHandler | undefined onMouseOutCapture?: MouseEventHandler | undefined onMouseOver?: MouseEventHandler | undefined onMouseOverCapture?: MouseEventHandler | undefined onMouseUp?: MouseEventHandler | undefined onMouseUpCapture?: MouseEventHandler | undefined // Selection Events onSelect?: ReactEventHandler | undefined onSelectCapture?: ReactEventHandler | undefined // Touch Events onTouchCancel?: TouchEventHandler | undefined onTouchCancelCapture?: TouchEventHandler | undefined onTouchEnd?: TouchEventHandler | undefined onTouchEndCapture?: TouchEventHandler | undefined onTouchMove?: TouchEventHandler | undefined onTouchMoveCapture?: TouchEventHandler | undefined onTouchStart?: TouchEventHandler | undefined onTouchStartCapture?: TouchEventHandler | undefined // Pointer Events onPointerDown?: PointerEventHandler | undefined onPointerDownCapture?: PointerEventHandler | undefined onPointerMove?: PointerEventHandler | undefined onPointerMoveCapture?: PointerEventHandler | undefined onPointerUp?: PointerEventHandler | undefined onPointerUpCapture?: PointerEventHandler | undefined onPointerCancel?: PointerEventHandler | undefined onPointerCancelCapture?: PointerEventHandler | undefined onPointerEnter?: PointerEventHandler | undefined onPointerEnterCapture?: PointerEventHandler | undefined onPointerLeave?: PointerEventHandler | undefined onPointerLeaveCapture?: PointerEventHandler | undefined onPointerOver?: PointerEventHandler | undefined onPointerOverCapture?: PointerEventHandler | undefined onPointerOut?: PointerEventHandler | undefined onPointerOutCapture?: PointerEventHandler | undefined onGotPointerCapture?: PointerEventHandler | undefined onGotPointerCaptureCapture?: PointerEventHandler | undefined onLostPointerCapture?: PointerEventHandler | undefined onLostPointerCaptureCapture?: PointerEventHandler | undefined // UI Events onScroll?: UIEventHandler | undefined onScrollCapture?: UIEventHandler | undefined // Wheel Events onWheel?: WheelEventHandler | undefined onWheelCapture?: WheelEventHandler | undefined // Animation Events onAnimationStart?: AnimationEventHandler | undefined onAnimationStartCapture?: AnimationEventHandler | undefined onAnimationEnd?: AnimationEventHandler | undefined onAnimationEndCapture?: AnimationEventHandler | undefined onAnimationIteration?: AnimationEventHandler | undefined onAnimationIterationCapture?: AnimationEventHandler | undefined // Transition Events onTransitionEnd?: TransitionEventHandler | undefined onTransitionEndCapture?: TransitionEventHandler | undefined } export interface CSSProperties extends CSS.Properties { /** * 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 */ } // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/ export interface AriaAttributes { /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */ "aria-activedescendant"?: string | undefined /** 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"?: Booleanish | undefined /** * 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" | undefined /** * Defines a string value that labels the current element, which is intended to be converted into Braille. * @see aria-label. */ "aria-braillelabel"?: string | undefined /** * Defines a human-readable, author-localized abbreviated description for the role of an element, which is intended to be converted into Braille. * @see aria-roledescription. */ "aria-brailleroledescription"?: string | undefined /** 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"?: Booleanish | undefined /** * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets. * @see aria-pressed @see aria-selected. */ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined /** * Defines the total number of columns in a table, grid, or treegrid. * @see aria-colindex. */ "aria-colcount"?: number | undefined /** * 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 /** * Defines a human readable text alternative of aria-colindex. * @see aria-rowindextext. */ "aria-colindextext"?: string | undefined /** * 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 /** * Identifies the element (or elements) whose contents or presence are controlled by the current element. * @see aria-owns. */ "aria-controls"?: string | undefined /** Indicates the element that represents the current item within a container or set of related elements. */ "aria-current"?: Booleanish | "page" | "step" | "location" | "date" | "time" | undefined /** * Identifies the element (or elements) that describes the object. * @see aria-labelledby */ "aria-describedby"?: string | undefined /** * Defines a string value that describes or annotates the current element. * @see related aria-describedby. */ "aria-description"?: string | undefined /** * Identifies the element that provides a detailed, extended description for the object. * @see aria-describedby. */ "aria-details"?: string | undefined /** * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable. * @see aria-hidden @see aria-readonly. */ "aria-disabled"?: Booleanish | undefined /** * 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" | undefined /** * Identifies the element that provides an error message for the object. * @see aria-invalid @see aria-describedby. */ "aria-errormessage"?: string | undefined /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */ "aria-expanded"?: Booleanish | undefined /** * 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 | undefined /** * Indicates an element's "grabbed" state in a drag-and-drop operation. * @deprecated in ARIA 1.1 */ "aria-grabbed"?: Booleanish | undefined /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */ "aria-haspopup"?: Booleanish | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined /** * Indicates whether the element is exposed to an accessibility API. * @see aria-disabled. */ "aria-hidden"?: Booleanish | undefined /** * Indicates the entered value does not conform to the format expected by the application. * @see aria-errormessage. */ "aria-invalid"?: Booleanish | "grammar" | "spelling" | undefined /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */ "aria-keyshortcuts"?: string | undefined /** * Defines a string value that labels the current element. * @see aria-labelledby. */ "aria-label"?: string | undefined /** * Identifies the element (or elements) that labels the current element. * @see aria-describedby. */ "aria-labelledby"?: string | undefined /** Defines the hierarchical level of an element within a structure. */ "aria-level"?: number | undefined /** 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 /** Indicates whether an element is modal when displayed. */ "aria-modal"?: Booleanish | undefined /** Indicates whether a text box accepts multiple lines of input or only a single line. */ "aria-multiline"?: Booleanish | undefined /** Indicates that the user may select more than one item from the current selectable descendants. */ "aria-multiselectable"?: Booleanish | undefined /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */ "aria-orientation"?: "horizontal" | "vertical" | undefined /** * 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 | undefined /** * 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 | undefined /** * 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 /** * Indicates the current "pressed" state of toggle buttons. * @see aria-checked @see aria-selected. */ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined /** * Indicates that the element is not editable, but is otherwise operable. * @see aria-disabled. */ "aria-readonly"?: Booleanish | undefined /** * 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 removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined /** Indicates that user input is required on the element before a form may be submitted. */ "aria-required"?: Booleanish | undefined /** Defines a human-readable, author-localized description for the role of an element. */ "aria-roledescription"?: string | undefined /** * Defines the total number of rows in a table, grid, or treegrid. * @see aria-rowindex. */ "aria-rowcount"?: number | undefined /** * 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 /** * Defines a human readable text alternative of aria-rowindex. * @see aria-colindextext. */ "aria-rowindextext"?: string | undefined /** * 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 /** * Indicates the current "selected" state of various widgets. * @see aria-checked @see aria-pressed. */ "aria-selected"?: Booleanish | undefined /** * 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 /** Indicates if items in a table or grid are sorted in ascending or descending order. */ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined /** Defines the maximum allowed value for a range widget. */ "aria-valuemax"?: number | undefined /** Defines the minimum allowed value for a range widget. */ "aria-valuemin"?: number | undefined /** * Defines the current value for a range widget. * @see aria-valuetext. */ "aria-valuenow"?: number | undefined /** Defines the human readable text alternative of aria-valuenow for a range widget. */ "aria-valuetext"?: string | undefined } // 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" | (string & {}) export type StyleInput = string | CSSProperties | (string | CSSProperties)[] export interface HTMLAttributes extends AriaAttributes, DOMAttributes { // Extension namespaceURI?: string | undefined class?: ClassNames | undefined innerHTML?: string | undefined innerText?: string | undefined textContent?: string | undefined dataset?: { [key: string]: string } | undefined // Standard HTML Attributes accessKey?: string | undefined autoFocus?: boolean | undefined className?: ClassNames | undefined contentEditable?: Booleanish | "inherit" | "plaintext-only" | undefined contextMenu?: string | undefined dir?: string | undefined draggable?: Booleanish | undefined hidden?: boolean | undefined id?: string | undefined lang?: string | undefined nonce?: string | undefined placeholder?: string | undefined slot?: string | undefined spellCheck?: Booleanish | undefined style?: StyleInput | undefined tabIndex?: number | undefined title?: string | undefined translate?: "yes" | "no" | undefined // Unknown radioGroup?: string | undefined // , // WAI-ARIA role?: AriaRole | undefined // RDFa Attributes about?: string | undefined content?: string | undefined datatype?: string | undefined inlist?: any | undefined prefix?: string | undefined property?: string | undefined rel?: string | undefined resource?: string | undefined rev?: string | undefined typeof?: string | undefined vocab?: string | undefined // Non-standard Attributes autoCapitalize?: string | undefined autoCorrect?: string | undefined autoSave?: string | undefined color?: string | undefined itemProp?: string | undefined itemScope?: boolean | undefined itemType?: string | undefined itemID?: string | undefined itemRef?: string | undefined results?: number | undefined security?: string | undefined unselectable?: "on" | "off" | undefined // 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" | undefined /** * 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 | undefined } export interface AllHTMLAttributes extends HTMLAttributes { // Standard HTML Attributes accept?: string | undefined acceptCharset?: string | undefined action?: string | undefined allowFullScreen?: boolean | undefined allowTransparency?: boolean | undefined alt?: string | undefined as?: string | undefined async?: boolean | undefined autoComplete?: string | undefined autoFocus?: boolean | undefined autoPlay?: boolean | undefined capture?: boolean | "user" | "environment" | undefined cellPadding?: number | string | undefined cellSpacing?: number | string | undefined charSet?: string | undefined challenge?: string | undefined checked?: boolean | undefined cite?: string | undefined classID?: string | undefined cols?: number | undefined colSpan?: number | undefined content?: string | undefined controls?: boolean | undefined coords?: string | undefined crossOrigin?: CrossOrigin data?: string | undefined dateTime?: string | undefined default?: boolean | undefined defer?: boolean | undefined disabled?: boolean | undefined download?: any encType?: string | undefined form?: string | undefined formAction?: string | undefined formEncType?: string | undefined formMethod?: string | undefined formNoValidate?: boolean | undefined formTarget?: string | undefined frameBorder?: number | string | undefined headers?: string | undefined height?: number | string | undefined high?: number | undefined href?: string | undefined hrefLang?: string | undefined htmlFor?: string | undefined httpEquiv?: string | undefined integrity?: string | undefined keyParams?: string | undefined keyType?: string | undefined kind?: string | undefined label?: string | undefined list?: string | undefined loop?: boolean | undefined low?: number | undefined manifest?: string | undefined marginHeight?: number | undefined marginWidth?: number | undefined max?: number | string | undefined maxLength?: number | undefined media?: string | undefined mediaGroup?: string | undefined method?: string | undefined min?: number | string | undefined minLength?: number | undefined multiple?: boolean | undefined muted?: boolean | undefined name?: string | undefined noValidate?: boolean | undefined open?: boolean | undefined optimum?: number | undefined pattern?: string | undefined placeholder?: string | undefined playsInline?: boolean | undefined poster?: string | undefined preload?: string | undefined readOnly?: boolean | undefined required?: boolean | undefined reversed?: boolean | undefined rows?: number | undefined rowSpan?: number | undefined sandbox?: string | undefined scope?: string | undefined scoped?: boolean | undefined scrolling?: string | undefined seamless?: boolean | undefined selected?: boolean | undefined shape?: string | undefined size?: number | undefined sizes?: string | undefined span?: number | undefined src?: string | undefined srcDoc?: string | undefined srcLang?: string | undefined srcSet?: string | undefined start?: number | undefined step?: number | string | undefined summary?: string | undefined target?: string | undefined type?: string | undefined useMap?: string | undefined value?: string | number | undefined width?: number | string | undefined wmode?: string | undefined wrap?: string | undefined } export type HTMLAttributeReferrerPolicy = | "" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" export type HTMLAttributeAnchorTarget = "_self" | "_blank" | "_parent" | "_top" | (string & {}) interface AnchorHTMLAttributes extends HTMLAttributes { download?: any | undefined href?: string | undefined hrefLang?: string | undefined media?: string | undefined ping?: string | undefined target?: HTMLAttributeAnchorTarget | undefined type?: string | undefined referrerPolicy?: HTMLAttributeReferrerPolicy | undefined } interface AudioHTMLAttributes extends MediaHTMLAttributes {} interface AreaHTMLAttributes extends HTMLAttributes { alt?: string | undefined coords?: string | undefined download?: any | undefined href?: string | undefined hrefLang?: string | undefined media?: string | undefined referrerPolicy?: HTMLAttributeReferrerPolicy | undefined shape?: string | undefined target?: string | undefined } interface BaseHTMLAttributes extends HTMLAttributes { href?: string | undefined target?: string | undefined } interface BlockquoteHTMLAttributes extends HTMLAttributes { cite?: string | undefined } interface ButtonHTMLAttributes extends HTMLAttributes { disabled?: boolean | undefined form?: string | undefined formAction?: string | undefined formEncType?: string | undefined formMethod?: string | undefined formNoValidate?: boolean | undefined formTarget?: string | undefined name?: string | undefined type?: "submit" | "reset" | "button" | undefined value?: string | number | undefined } interface CanvasHTMLAttributes extends HTMLAttributes { height?: number | string | undefined width?: number | string | undefined } interface ColHTMLAttributes extends HTMLAttributes { span?: number | undefined width?: number | string | undefined } interface ColgroupHTMLAttributes extends HTMLAttributes { span?: number | undefined } interface DataHTMLAttributes extends HTMLAttributes { value?: string | number | undefined } interface DetailsHTMLAttributes extends HTMLAttributes { open?: boolean | undefined onToggle?: ReactEventHandler | undefined } interface DelHTMLAttributes extends HTMLAttributes { cite?: string | undefined dateTime?: string | undefined } interface DialogHTMLAttributes extends HTMLAttributes { onCancel?: ReactEventHandler | undefined onClose?: ReactEventHandler | undefined open?: boolean | undefined } interface EmbedHTMLAttributes extends HTMLAttributes { height?: number | string | undefined src?: string | undefined type?: string | undefined width?: number | string | undefined } interface FieldsetHTMLAttributes extends HTMLAttributes { disabled?: boolean | undefined form?: string | undefined name?: string | undefined } interface FormHTMLAttributes extends HTMLAttributes { acceptCharset?: string | undefined action?: string | undefined autoComplete?: string | undefined encType?: string | undefined method?: string | undefined name?: string | undefined noValidate?: boolean | undefined target?: string | undefined } interface HtmlHTMLAttributes extends HTMLAttributes { manifest?: string | undefined } interface IframeHTMLAttributes extends HTMLAttributes { allow?: string | undefined allowFullScreen?: boolean | undefined allowTransparency?: boolean | undefined /** @deprecated */ frameBorder?: number | string | undefined height?: number | string | undefined loading?: "eager" | "lazy" | undefined /** @deprecated */ marginHeight?: number | undefined /** @deprecated */ marginWidth?: number | undefined name?: string | undefined referrerPolicy?: HTMLAttributeReferrerPolicy | undefined sandbox?: string | undefined /** @deprecated */ scrolling?: string | undefined seamless?: boolean | undefined src?: string | undefined srcDoc?: string | undefined width?: number | string | undefined } interface ImgHTMLAttributes extends HTMLAttributes { alt?: string | undefined crossOrigin?: CrossOrigin decoding?: "async" | "auto" | "sync" | undefined height?: number | string | undefined loading?: "eager" | "lazy" | undefined referrerPolicy?: HTMLAttributeReferrerPolicy | undefined sizes?: string | undefined src?: string | undefined srcSet?: string | undefined useMap?: string | undefined width?: number | string | undefined } interface InsHTMLAttributes extends HTMLAttributes { cite?: string | undefined dateTime?: string | undefined } 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" | (string & {}) interface InputHTMLAttributes extends HTMLAttributes { accept?: string | undefined alt?: string | undefined autoComplete?: string | undefined autoFocus?: boolean | undefined capture?: boolean | "user" | "environment" | undefined // https://www.w3.org/TR/html-media-capture/#the-capture-attribute checked?: boolean | undefined disabled?: boolean | undefined enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined form?: string | undefined formAction?: string | undefined formEncType?: string | undefined formMethod?: string | undefined formNoValidate?: boolean | undefined formTarget?: string | undefined height?: number | string | undefined list?: string | undefined max?: number | string | undefined maxLength?: number | undefined min?: number | string | undefined minLength?: number | undefined multiple?: boolean | undefined name?: string | undefined pattern?: string | undefined placeholder?: string | undefined readOnly?: boolean | undefined required?: boolean | undefined size?: number | undefined src?: string | undefined step?: number | string | undefined type?: HTMLInputTypeAttribute | undefined value?: string | readonly string[] | number | undefined width?: number | string | undefined onChange?: ChangeEventHandler | undefined } interface KeygenHTMLAttributes extends HTMLAttributes { challenge?: string | undefined disabled?: boolean | undefined form?: string | undefined keyType?: string | undefined keyParams?: string | undefined name?: string | undefined } interface LabelHTMLAttributes extends HTMLAttributes { form?: string | undefined htmlFor?: string | undefined } interface LiHTMLAttributes extends HTMLAttributes { value?: number | undefined } interface LinkHTMLAttributes extends HTMLAttributes { as?: string | undefined crossOrigin?: CrossOrigin disabled?: boolean fetchPriority?: "high" | "low" | "auto" href?: string | undefined hrefLang?: string | undefined integrity?: string | undefined media?: string | undefined imageSrcSet?: string | undefined imageSizes?: string | undefined referrerPolicy?: HTMLAttributeReferrerPolicy | undefined sizes?: string | undefined type?: string | undefined charSet?: string | undefined } interface MapHTMLAttributes extends HTMLAttributes { name?: string | undefined } interface MenuHTMLAttributes extends HTMLAttributes { type?: string | undefined } interface MediaHTMLAttributes extends HTMLAttributes { autoPlay?: boolean | undefined controls?: boolean | undefined controlsList?: string | undefined loop?: boolean | undefined mediaGroup?: string | undefined muted?: boolean | undefined playsInline?: boolean | undefined preload?: string | undefined src?: string | undefined } interface MetaHTMLAttributes extends HTMLAttributes { charSet?: string | undefined content?: string | undefined httpEquiv?: string | undefined name?: string | undefined media?: string | undefined } interface MeterHTMLAttributes extends HTMLAttributes { form?: string | undefined high?: number | undefined low?: number | undefined max?: number | string | undefined min?: number | string | undefined optimum?: number | undefined value?: number | undefined } interface QuoteHTMLAttributes extends HTMLAttributes { cite?: string | undefined } interface ObjectHTMLAttributes extends HTMLAttributes { classID?: string | undefined data?: string | undefined form?: string | undefined height?: number | string | undefined name?: string | undefined type?: string | undefined useMap?: string | undefined width?: number | string | undefined wmode?: string | undefined } interface OlHTMLAttributes extends HTMLAttributes { reversed?: boolean | undefined start?: number | undefined type?: "1" | "a" | "A" | "i" | "I" | undefined } interface OptgroupHTMLAttributes extends HTMLAttributes { disabled?: boolean | undefined label?: string | undefined } interface OptionHTMLAttributes extends HTMLAttributes { disabled?: boolean | undefined label?: string | undefined selected?: boolean | undefined value?: string | number | undefined } interface OutputHTMLAttributes extends HTMLAttributes { form?: string | undefined htmlFor?: string | undefined name?: string | undefined } interface ParamHTMLAttributes extends HTMLAttributes { name?: string | undefined value?: string | readonly string[] | number | undefined } interface ProgressHTMLAttributes extends HTMLAttributes { max?: number | string | undefined value?: number | undefined } interface ScriptHTMLAttributes extends HTMLAttributes { async?: boolean | undefined /** @deprecated */ charSet?: string | undefined crossOrigin?: CrossOrigin defer?: boolean | undefined integrity?: string | undefined noModule?: boolean | undefined referrerPolicy?: HTMLAttributeReferrerPolicy | undefined src?: string | undefined type?: string | undefined } interface SelectHTMLAttributes extends HTMLAttributes { autoComplete?: string | undefined disabled?: boolean | undefined form?: string | undefined multiple?: boolean | undefined name?: string | undefined required?: boolean | undefined size?: number | undefined value?: string | readonly string[] | number | undefined onChange?: ChangeEventHandler | undefined } interface SlotHTMLAttributes extends HTMLAttributes { name?: string | undefined } interface SourceHTMLAttributes extends HTMLAttributes { height?: number | string | undefined media?: string | undefined sizes?: string | undefined src?: string | undefined srcSet?: string | undefined type?: string | undefined width?: number | string | undefined } interface StyleHTMLAttributes extends HTMLAttributes { media?: string | undefined scoped?: boolean | undefined type?: string | undefined } interface TableHTMLAttributes extends HTMLAttributes { align?: "left" | "center" | "right" | undefined bgcolor?: string | undefined border?: number | undefined cellPadding?: number | string | undefined cellSpacing?: number | string | undefined frame?: boolean | undefined rules?: "none" | "groups" | "rows" | "columns" | "all" | undefined summary?: string | undefined width?: number | string | undefined } interface TextareaHTMLAttributes extends HTMLAttributes { autoComplete?: string | undefined cols?: number | undefined dirName?: string | undefined disabled?: boolean | undefined form?: string | undefined maxLength?: number | undefined minLength?: number | undefined name?: string | undefined placeholder?: string | undefined readOnly?: boolean | undefined required?: boolean | undefined rows?: number | undefined value?: string | number | undefined wrap?: string | undefined onChange?: ChangeEventHandler | undefined } interface TdHTMLAttributes extends HTMLAttributes { align?: "left" | "center" | "right" | "justify" | "char" | undefined colSpan?: number | undefined headers?: string | undefined rowSpan?: number | undefined scope?: string | undefined abbr?: string | undefined height?: number | string | undefined width?: number | string | undefined valign?: "top" | "middle" | "bottom" | "baseline" | undefined } interface ThHTMLAttributes extends HTMLAttributes { align?: "left" | "center" | "right" | "justify" | "char" | undefined colSpan?: number | undefined headers?: string | undefined rowSpan?: number | undefined scope?: string | undefined abbr?: string | undefined } interface TimeHTMLAttributes extends HTMLAttributes { dateTime?: string | undefined } interface TrackHTMLAttributes extends HTMLAttributes { default?: boolean | undefined kind?: string | undefined label?: string | undefined src?: string | undefined srcLang?: string | undefined } interface VideoHTMLAttributes extends MediaHTMLAttributes { height?: number | string | undefined playsInline?: boolean | undefined poster?: string | undefined width?: number | string | undefined disablePictureInPicture?: boolean | undefined disableRemotePlayback?: boolean | undefined } // this list is "complete" in that it contains every SVG attribute // that React supports, but the types can be improved. // Full list here: https://facebook.github.io/react/docs/dom-elements.html // // The three broad type categories are (in order of restrictiveness): // - "number | string" // - "string" // - union of string literals export interface SVGAttributes extends AriaAttributes, DOMAttributes { // React-specific Attributes, noop in jsx-dom suppressHydrationWarning?: boolean | undefined // Attributes which also defined in HTMLAttributes // See comment in SVGDOMPropertyConfig.js class?: ClassNames | undefined className?: ClassNames | undefined color?: string | undefined height?: number | string | undefined id?: string | undefined lang?: string | undefined max?: number | string | undefined media?: string | undefined method?: string | undefined min?: number | string | undefined name?: string | undefined slot?: string | undefined style?: string | CSSProperties | undefined target?: string | undefined type?: string | undefined width?: number | string | undefined // Other HTML properties supported by SVG elements in browsers role?: AriaRole | undefined tabIndex?: number | undefined crossOrigin?: CrossOrigin // SVG Specific attributes accentHeight?: number | string | undefined accumulate?: "none" | "sum" | undefined additive?: "replace" | "sum" | undefined alignmentBaseline?: | "auto" | "baseline" | "before-edge" | "text-before-edge" | "middle" | "central" | "after-edge" | "text-after-edge" | "ideographic" | "alphabetic" | "hanging" | "mathematical" | "inherit" | undefined allowReorder?: "no" | "yes" | undefined alphabetic?: number | string | undefined amplitude?: number | string | undefined arabicForm?: "initial" | "medial" | "terminal" | "isolated" | undefined ascent?: number | string | undefined attributeName?: string | undefined attributeType?: string | undefined autoReverse?: Booleanish | undefined azimuth?: number | string | undefined baseFrequency?: number | string | undefined baselineShift?: number | string | undefined baseProfile?: number | string | undefined bbox?: number | string | undefined begin?: number | string | undefined bias?: number | string | undefined by?: number | string | undefined calcMode?: number | string | undefined capHeight?: number | string | undefined clip?: number | string | undefined clipPath?: string | undefined clipPathUnits?: number | string | undefined clipRule?: number | string | undefined colorInterpolation?: number | string | undefined colorInterpolationFilters?: "auto" | "sRGB" | "linearRGB" | "inherit" | undefined colorProfile?: number | string | undefined colorRendering?: number | string | undefined contentScriptType?: number | string | undefined contentStyleType?: number | string | undefined cursor?: number | string | undefined cx?: number | string | undefined cy?: number | string | undefined d?: string | undefined decelerate?: number | string | undefined descent?: number | string | undefined diffuseConstant?: number | string | undefined direction?: number | string | undefined display?: number | string | undefined divisor?: number | string | undefined dominantBaseline?: number | string | undefined dur?: number | string | undefined dx?: number | string | undefined dy?: number | string | undefined edgeMode?: number | string | undefined elevation?: number | string | undefined enableBackground?: number | string | undefined end?: number | string | undefined exponent?: number | string | undefined externalResourcesRequired?: Booleanish | undefined fill?: string | undefined fillOpacity?: number | string | undefined fillRule?: "nonzero" | "evenodd" | "inherit" | undefined filter?: string | undefined filterRes?: number | string | undefined filterUnits?: number | string | undefined floodColor?: number | string | undefined floodOpacity?: number | string | undefined focusable?: Booleanish | "auto" | undefined fontFamily?: string | undefined fontSize?: number | string | undefined fontSizeAdjust?: number | string | undefined fontStretch?: number | string | undefined fontStyle?: number | string | undefined fontVariant?: number | string | undefined fontWeight?: number | string | undefined format?: number | string | undefined fr?: number | string | undefined from?: number | string | undefined fx?: number | string | undefined fy?: number | string | undefined g1?: number | string | undefined g2?: number | string | undefined glyphName?: number | string | undefined glyphOrientationHorizontal?: number | string | undefined glyphOrientationVertical?: number | string | undefined glyphRef?: number | string | undefined gradientTransform?: string | undefined gradientUnits?: string | undefined hanging?: number | string | undefined horizAdvX?: number | string | undefined horizOriginX?: number | string | undefined href?: string | undefined ideographic?: number | string | undefined imageRendering?: number | string | undefined in2?: number | string | undefined in?: string | undefined intercept?: number | string | undefined k1?: number | string | undefined k2?: number | string | undefined k3?: number | string | undefined k4?: number | string | undefined k?: number | string | undefined kernelMatrix?: number | string | undefined kernelUnitLength?: number | string | undefined kerning?: number | string | undefined keyPoints?: number | string | undefined keySplines?: number | string | undefined keyTimes?: number | string | undefined lengthAdjust?: number | string | undefined letterSpacing?: number | string | undefined lightingColor?: number | string | undefined limitingConeAngle?: number | string | undefined local?: number | string | undefined markerEnd?: string | undefined markerHeight?: number | string | undefined markerMid?: string | undefined markerStart?: string | undefined markerUnits?: number | string | undefined markerWidth?: number | string | undefined mask?: string | undefined maskContentUnits?: number | string | undefined maskUnits?: number | string | undefined mathematical?: number | string | undefined mode?: number | string | undefined numOctaves?: number | string | undefined offset?: number | string | undefined opacity?: number | string | undefined operator?: number | string | undefined order?: number | string | undefined orient?: number | string | undefined orientation?: number | string | undefined origin?: number | string | undefined overflow?: number | string | undefined overlinePosition?: number | string | undefined overlineThickness?: number | string | undefined paintOrder?: number | string | undefined panose1?: number | string | undefined path?: string | undefined pathLength?: number | string | undefined patternContentUnits?: string | undefined patternTransform?: number | string | undefined patternUnits?: string | undefined pointerEvents?: number | string | undefined points?: string | undefined pointsAtX?: number | string | undefined pointsAtY?: number | string | undefined pointsAtZ?: number | string | undefined preserveAlpha?: Booleanish | undefined preserveAspectRatio?: string | undefined primitiveUnits?: number | string | undefined r?: number | string | undefined radius?: number | string | undefined refX?: number | string | undefined refY?: number | string | undefined renderingIntent?: number | string | undefined repeatCount?: number | string | undefined repeatDur?: number | string | undefined requiredExtensions?: number | string | undefined requiredFeatures?: number | string | undefined restart?: number | string | undefined result?: string | undefined rotate?: number | string | undefined rx?: number | string | undefined ry?: number | string | undefined scale?: number | string | undefined seed?: number | string | undefined shapeRendering?: number | string | undefined slope?: number | string | undefined spacing?: number | string | undefined specularConstant?: number | string | undefined specularExponent?: number | string | undefined speed?: number | string | undefined spreadMethod?: string | undefined startOffset?: number | string | undefined stdDeviation?: number | string | undefined stemh?: number | string | undefined stemv?: number | string | undefined stitchTiles?: number | string | undefined stopColor?: string | undefined stopOpacity?: number | string | undefined strikethroughPosition?: number | string | undefined strikethroughThickness?: number | string | undefined string?: number | string | undefined stroke?: string | undefined strokeDasharray?: string | number | undefined strokeDashoffset?: string | number | undefined strokeLinecap?: "butt" | "round" | "square" | "inherit" | undefined strokeLinejoin?: "miter" | "round" | "bevel" | "inherit" | undefined strokeMiterlimit?: number | string | undefined strokeOpacity?: number | string | undefined strokeWidth?: number | string | undefined surfaceScale?: number | string | undefined systemLanguage?: number | string | undefined tableValues?: number | string | undefined targetX?: number | string | undefined targetY?: number | string | undefined textAnchor?: string | undefined textDecoration?: number | string | undefined textLength?: number | string | undefined textRendering?: number | string | undefined to?: number | string | undefined transform?: string | undefined u1?: number | string | undefined u2?: number | string | undefined underlinePosition?: number | string | undefined underlineThickness?: number | string | undefined unicode?: number | string | undefined unicodeBidi?: number | string | undefined unicodeRange?: number | string | undefined unitsPerEm?: number | string | undefined vAlphabetic?: number | string | undefined values?: string | undefined vectorEffect?: number | string | undefined version?: string | undefined vertAdvY?: number | string | undefined vertOriginX?: number | string | undefined vertOriginY?: number | string | undefined vHanging?: number | string | undefined vIdeographic?: number | string | undefined viewBox?: string | undefined viewTarget?: number | string | undefined visibility?: number | string | undefined vMathematical?: number | string | undefined widths?: number | string | undefined wordSpacing?: number | string | undefined writingMode?: number | string | undefined x1?: number | string | undefined x2?: number | string | undefined x?: number | string | undefined xChannelSelector?: string | undefined xHeight?: number | string | undefined xlinkActuate?: string | undefined xlinkArcrole?: string | undefined xlinkHref?: string | undefined xlinkRole?: string | undefined xlinkShow?: string | undefined xlinkTitle?: string | undefined xlinkType?: string | undefined xmlBase?: string | undefined xmlLang?: string | undefined xmlns?: string | undefined xmlnsXlink?: string | undefined xmlSpace?: string | undefined y1?: number | string | undefined y2?: number | string | undefined y?: number | string | undefined yChannelSelector?: string | undefined z?: number | string | undefined zoomAndPan?: string | undefined } interface WebViewHTMLAttributes extends HTMLAttributes { allowFullScreen?: boolean | undefined allowpopups?: boolean | undefined autosize?: boolean | undefined blinkfeatures?: string | undefined disableblinkfeatures?: string | undefined disableguestresize?: boolean | undefined disablewebsecurity?: boolean | undefined guestinstance?: string | undefined httpreferrer?: string | undefined nodeintegration?: boolean | undefined partition?: string | undefined plugins?: boolean | undefined preload?: string | undefined src?: string | undefined useragent?: string | undefined webpreferences?: string | undefined } // // DOM // ---------------------------------------------------------------------- type ReactHTML = HTMLElementTagNameMap type HTMLWebViewElement = HTMLElement interface ReactSVG { animate: SVGFactory circle: SVGFactory clipPath: SVGFactory defs: SVGFactory desc: SVGFactory ellipse: SVGFactory feBlend: SVGFactory feColorMatrix: SVGFactory feComponentTransfer: SVGFactory feComposite: SVGFactory feConvolveMatrix: SVGFactory feDiffuseLighting: SVGFactory feDisplacementMap: SVGFactory feDistantLight: SVGFactory feDropShadow: SVGFactory feFlood: SVGFactory feFuncA: SVGFactory feFuncB: SVGFactory feFuncG: SVGFactory feFuncR: SVGFactory feGaussianBlur: SVGFactory feImage: SVGFactory feMerge: SVGFactory feMergeNode: SVGFactory feMorphology: SVGFactory feOffset: SVGFactory fePointLight: SVGFactory feSpecularLighting: SVGFactory feSpotLight: SVGFactory feTile: SVGFactory feTurbulence: SVGFactory filter: SVGFactory foreignObject: SVGFactory g: SVGFactory image: SVGFactory line: SVGFactory linearGradient: SVGFactory marker: SVGFactory mask: SVGFactory metadata: SVGFactory path: SVGFactory pattern: SVGFactory polygon: SVGFactory polyline: SVGFactory radialGradient: SVGFactory rect: SVGFactory stop: SVGFactory svg: SVGFactory switch: SVGFactory symbol: SVGFactory text: SVGFactory textPath: SVGFactory tspan: SVGFactory use: SVGFactory view: SVGFactory } type JSXElementConstructor

= ((props: P) => ReactNode) | (new (props: P) => Component) export namespace JSX { // We don't just alias React.ElementType because React.ElementType // historically does more than we need it to. // E.g. it also contains .propTypes and so TS also verifies the declared // props type does match the declared .propTypes. // But if libraries declared their .propTypes but not props type, // or they mismatch, you won't be able to use the class component // as a JSX.ElementType. // We could fix this everywhere but we're ultimately not interested in // .propTypes assignability so we might as well drop it entirely here to // reduce the work of the type-checker. // TODO: Check impact of making React.ElementType

= React.JSXElementConstructor

type ElementType = string | JSXElementConstructor type Element = ReactElement interface ElementAttributesProperty { props: {} } interface ElementChildrenAttribute { children: {} } interface IntrinsicAttributes extends Attributes {} interface IntrinsicClassAttributes extends AttrWithRef {} interface IntrinsicElements { // HTML a: DetailedHTMLProps, HTMLAnchorElement> abbr: DetailedHTMLProps, HTMLElement> address: DetailedHTMLProps, HTMLElement> area: DetailedHTMLProps, HTMLAreaElement> article: DetailedHTMLProps, HTMLElement> aside: DetailedHTMLProps, HTMLElement> audio: DetailedHTMLProps, HTMLAudioElement> b: DetailedHTMLProps, HTMLElement> base: DetailedHTMLProps, HTMLBaseElement> bdi: DetailedHTMLProps, HTMLElement> bdo: DetailedHTMLProps, HTMLElement> big: DetailedHTMLProps, HTMLElement> blockquote: DetailedHTMLProps, HTMLQuoteElement> body: DetailedHTMLProps, HTMLBodyElement> br: DetailedHTMLProps, HTMLBRElement> button: DetailedHTMLProps, HTMLButtonElement> canvas: DetailedHTMLProps, HTMLCanvasElement> caption: DetailedHTMLProps, HTMLElement> center: DetailedHTMLProps, HTMLElement> cite: DetailedHTMLProps, HTMLElement> code: DetailedHTMLProps, HTMLElement> col: DetailedHTMLProps, HTMLTableColElement> colgroup: DetailedHTMLProps, HTMLTableColElement> data: DetailedHTMLProps, HTMLDataElement> datalist: DetailedHTMLProps, HTMLDataListElement> dd: DetailedHTMLProps, HTMLElement> del: DetailedHTMLProps, HTMLModElement> details: DetailedHTMLProps, HTMLDetailsElement> dfn: DetailedHTMLProps, HTMLElement> dialog: DetailedHTMLProps, HTMLDialogElement> div: DetailedHTMLProps, HTMLDivElement> dl: DetailedHTMLProps, HTMLDListElement> dt: DetailedHTMLProps, HTMLElement> em: DetailedHTMLProps, HTMLElement> embed: DetailedHTMLProps, HTMLEmbedElement> fieldset: DetailedHTMLProps, HTMLFieldSetElement> figcaption: DetailedHTMLProps, HTMLElement> figure: DetailedHTMLProps, HTMLElement> footer: DetailedHTMLProps, HTMLElement> form: DetailedHTMLProps, HTMLFormElement> h1: DetailedHTMLProps, HTMLHeadingElement> h2: DetailedHTMLProps, HTMLHeadingElement> h3: DetailedHTMLProps, HTMLHeadingElement> h4: DetailedHTMLProps, HTMLHeadingElement> h5: DetailedHTMLProps, HTMLHeadingElement> h6: DetailedHTMLProps, HTMLHeadingElement> head: DetailedHTMLProps, HTMLHeadElement> header: DetailedHTMLProps, HTMLElement> hgroup: DetailedHTMLProps, HTMLElement> hr: DetailedHTMLProps, HTMLHRElement> html: DetailedHTMLProps, HTMLHtmlElement> i: DetailedHTMLProps, HTMLElement> iframe: DetailedHTMLProps, HTMLIFrameElement> img: DetailedHTMLProps, HTMLImageElement> input: DetailedHTMLProps, HTMLInputElement> ins: DetailedHTMLProps, HTMLModElement> kbd: DetailedHTMLProps, HTMLElement> keygen: DetailedHTMLProps, HTMLElement> label: DetailedHTMLProps, HTMLLabelElement> legend: DetailedHTMLProps, HTMLLegendElement> li: DetailedHTMLProps, HTMLLIElement> link: DetailedHTMLProps, HTMLLinkElement> main: DetailedHTMLProps, HTMLElement> map: DetailedHTMLProps, HTMLMapElement> mark: DetailedHTMLProps, HTMLElement> menu: DetailedHTMLProps, HTMLElement> menuitem: DetailedHTMLProps, HTMLElement> meta: DetailedHTMLProps, HTMLMetaElement> meter: DetailedHTMLProps, HTMLMeterElement> nav: DetailedHTMLProps, HTMLElement> noindex: DetailedHTMLProps, HTMLElement> noscript: DetailedHTMLProps, HTMLElement> object: DetailedHTMLProps, HTMLObjectElement> ol: DetailedHTMLProps, HTMLOListElement> optgroup: DetailedHTMLProps, HTMLOptGroupElement> option: DetailedHTMLProps, HTMLOptionElement> output: DetailedHTMLProps, HTMLOutputElement> p: DetailedHTMLProps, HTMLParagraphElement> param: DetailedHTMLProps, HTMLParamElement> picture: DetailedHTMLProps, HTMLElement> pre: DetailedHTMLProps, HTMLPreElement> progress: DetailedHTMLProps, HTMLProgressElement> q: DetailedHTMLProps, HTMLQuoteElement> rp: DetailedHTMLProps, HTMLElement> rt: DetailedHTMLProps, HTMLElement> ruby: DetailedHTMLProps, HTMLElement> s: DetailedHTMLProps, HTMLElement> samp: DetailedHTMLProps, HTMLElement> search: DetailedHTMLProps, HTMLElement> script: DetailedHTMLProps, HTMLScriptElement> section: DetailedHTMLProps, HTMLElement> select: DetailedHTMLProps, HTMLSelectElement> slot: DetailedHTMLProps, HTMLSlotElement> small: DetailedHTMLProps, HTMLElement> source: DetailedHTMLProps, HTMLSourceElement> span: DetailedHTMLProps, HTMLSpanElement> strong: DetailedHTMLProps, HTMLElement> style: DetailedHTMLProps, HTMLStyleElement> sub: DetailedHTMLProps, HTMLElement> summary: DetailedHTMLProps, HTMLElement> sup: DetailedHTMLProps, HTMLElement> table: DetailedHTMLProps, HTMLTableElement> template: DetailedHTMLProps, HTMLTemplateElement> tbody: DetailedHTMLProps, HTMLTableSectionElement> td: DetailedHTMLProps, HTMLTableDataCellElement> textarea: DetailedHTMLProps, HTMLTextAreaElement> tfoot: DetailedHTMLProps, HTMLTableSectionElement> th: DetailedHTMLProps, HTMLTableHeaderCellElement> thead: DetailedHTMLProps, HTMLTableSectionElement> time: DetailedHTMLProps, HTMLTimeElement> title: DetailedHTMLProps, HTMLTitleElement> tr: DetailedHTMLProps, HTMLTableRowElement> track: DetailedHTMLProps, HTMLTrackElement> u: DetailedHTMLProps, HTMLElement> ul: DetailedHTMLProps, HTMLUListElement> var: DetailedHTMLProps, HTMLElement> video: DetailedHTMLProps, HTMLVideoElement> wbr: DetailedHTMLProps, HTMLElement> webview: DetailedHTMLProps, HTMLWebViewElement> // SVG svg: SVGProps animate: SVGProps // TODO: It is SVGAnimateElement but is not in TypeScript's lib.dom.d.ts for now. animateMotion: SVGProps animateTransform: SVGProps // TODO: It is SVGAnimateTransformElement but is not in TypeScript's lib.dom.d.ts for now. circle: SVGProps clipPath: SVGProps defs: SVGProps desc: SVGProps ellipse: SVGProps feBlend: SVGProps feColorMatrix: SVGProps feComponentTransfer: SVGProps feComposite: SVGProps feConvolveMatrix: SVGProps feDiffuseLighting: SVGProps feDisplacementMap: SVGProps feDistantLight: SVGProps feDropShadow: SVGProps feFlood: SVGProps feFuncA: SVGProps feFuncB: SVGProps feFuncG: SVGProps feFuncR: SVGProps feGaussianBlur: SVGProps feImage: SVGProps feMerge: SVGProps feMergeNode: SVGProps feMorphology: SVGProps feOffset: SVGProps fePointLight: SVGProps feSpecularLighting: SVGProps feSpotLight: SVGProps feTile: SVGProps feTurbulence: SVGProps filter: SVGProps foreignObject: SVGProps g: SVGProps image: SVGProps line: SVGLineElementAttributes linearGradient: SVGProps marker: SVGProps mask: SVGProps metadata: SVGProps mpath: SVGProps path: SVGProps pattern: SVGProps polygon: SVGProps polyline: SVGProps radialGradient: SVGProps rect: SVGProps stop: SVGProps switch: SVGProps symbol: SVGProps text: SVGTextElementAttributes textPath: SVGProps tspan: SVGProps use: SVGProps view: SVGProps } }