UNPKG

rahisi

Version:

UI library for prototyping ideas for reactive programming.

1,173 lines (1,063 loc) 96 kB
// Type defs modified from React as below // Type definitions for React 16.4 // Project: http://facebook.github.io/react/ // Definitions by: Asana <https://asana.com> // AssureSign <http://www.assuresign.com> // Microsoft <https://microsoft.com> // John Reilly <https://github.com/johnnyreilly> // Benoit Benezech <https://github.com/bbenezech> // Patricio Zavolinsky <https://github.com/pzavolinsky> // Digiguru <https://github.com/digiguru> // Eric Anderson <https://github.com/ericanderson> // Albert Kurniawan <https://github.com/morcerf> // Tanguy Krotoff <https://github.com/tkrotoff> // Dovydas Navickas <https://github.com/DovydasNavickas> // Stéphane Goetz <https://github.com/onigoetz> // Josh Rutherford <https://github.com/theruther4d> // Guilherme Hübner <https://github.com/guilhermehubner> // Ferdy Budhidharma <https://github.com/ferdaber> // Johann Rakotoharisoa <https://github.com/jrakotoharisoa> // Olivier Pascal <https://github.com/pascaloliv> // Martin Hochel <https://github.com/hotell> // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.6 import * as CSS from 'csstype'; // tslint:disable-next-line:export-just-namespace export = React; export as namespace React; declare namespace React { // // React Elements // ---------------------------------------------------------------------- interface Attributes { } interface ClassAttributes<T> { } interface ReactElement<P> { props: P; mount(parent: HTMLElement | SVGElement | DocumentFragment): HTMLElement | SVGElement | Text; render(parent: HTMLElement | SVGElement | DocumentFragment, watch: never, isSvg: never): HTMLElement | SVGElement | Text; } // string fallback for custom web-components interface DOMElement<P extends HTMLAttributes<T> | SVGAttributes<T>, T extends Element> extends ReactElement<P> { type: string; } // ReactHTML for ReactHTMLElement // tslint:disable-next-line:no-empty-interface // interface ReactHTMLElement<T extends HTMLElement> extends DetailedReactHTMLElement<AllHTMLAttributes<T>, T> { } interface DetailedReactHTMLElement<P extends HTMLAttributes<T>, T extends HTMLElement> extends DOMElement<P, T> { type: keyof ReactHTML; } // ReactSVG for ReactSVGElement interface ReactSVGElement extends DOMElement<SVGAttributes<SVGElement>, SVGElement> { type: keyof ReactSVG; } type DOMFactory<P extends DOMAttributes<T>, T extends Element> = (props?: ClassAttributes<T> & P | null, ...children: ReactNode[]) => DOMElement<P, T>; // tslint:disable-next-line:no-empty-interface // interface HTMLFactory<T extends HTMLElement> extends DetailedHTMLFactory<AllHTMLAttributes<T>, T> {} interface DetailedHTMLFactory<P extends HTMLAttributes<T>, T extends HTMLElement> extends DOMFactory<P, T> { (props?: ClassAttributes<T> & P | null, ...children: ReactNode[]): DetailedReactHTMLElement<P, T>; } interface SVGFactory extends DOMFactory<SVGAttributes<SVGElement>, SVGElement> { (props?: ClassAttributes<SVGElement> & SVGAttributes<SVGElement> | null, ...children: ReactNode[]): ReactSVGElement; } // // React Nodes // http://facebook.github.io/react/docs/glossary.html // ---------------------------------------------------------------------- type ReactText = string | number; type ReactChild = ReactElement<any> | ReactText; interface ReactNodeArray extends Array<ReactNode> { } type ReactFragment = {} | ReactNodeArray; type ReactNode = ReactChild | ReactFragment | string | number | boolean | null | undefined; // // Event System // ---------------------------------------------------------------------- interface RealEvent<T = Element> { readonly bubbles: boolean; cancelBubble: boolean; readonly cancelable: boolean; readonly composed: boolean; readonly currentTarget: EventTarget & T; readonly defaultPrevented: boolean; readonly eventPhase: number; readonly isTrusted: boolean; returnValue: boolean; readonly target: EventTarget | null; readonly timeStamp: number; readonly type: string; preventDefault(): void; stopImmediatePropagation(): void; stopPropagation(): void; } interface ClipboardEvent<T = Element> extends RealEvent<T> { clipboardData: DataTransfer; } interface CompositionEvent<T = Element> extends RealEvent<T> { data: string; } interface DragEvent<T = Element> extends MouseEvent<T> { dataTransfer: DataTransfer; } interface PointerEvent<T = Element> extends MouseEvent<T> { pointerId: number; pressure: number; tiltX: number; tiltY: number; width: number; height: number; pointerType: 'mouse' | 'pen' | 'touch'; isPrimary: boolean; } interface FocusEvent<T = Element> extends RealEvent<T> { relatedTarget: EventTarget; target: EventTarget & T; } // tslint:disable-next-line:no-empty-interface interface FormEvent<T = Element> extends RealEvent<T> { } interface InvalidEvent<T = Element> extends RealEvent<T> { target: EventTarget & T; } interface ChangeEvent<T = Element> extends RealEvent<T> { target: EventTarget & T; } interface KeyboardEvent<T = Element> extends RealEvent<T> { altKey: boolean; charCode: number; ctrlKey: boolean; /** * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method. */ getModifierState(key: string): boolean; /** * See the [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#named-key-attribute-values). for possible values */ key: string; keyCode: number; locale: string; location: number; metaKey: boolean; repeat: boolean; shiftKey: boolean; which: number; } interface MouseEvent<T = Element> extends RealEvent<T> { altKey: boolean; button: number; buttons: number; clientX: number; clientY: number; ctrlKey: boolean; /** * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method. */ getModifierState(key: string): boolean; metaKey: boolean; pageX: number; pageY: number; relatedTarget: EventTarget; screenX: number; screenY: number; shiftKey: boolean; } interface TouchEvent<T = Element> extends RealEvent<T> { altKey: boolean; changedTouches: TouchList; ctrlKey: boolean; /** * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method. */ getModifierState(key: string): boolean; metaKey: boolean; shiftKey: boolean; targetTouches: TouchList; touches: TouchList; } interface UIEvent<T = Element> extends RealEvent<T> { detail: number; view: AbstractView; } interface WheelEvent<T = Element> extends MouseEvent<T> { deltaMode: number; deltaX: number; deltaY: number; deltaZ: number; } interface AnimationEvent<T = Element> extends RealEvent<T> { animationName: string; elapsedTime: number; pseudoElement: string; } interface TransitionEvent<T = Element> extends RealEvent<T> { elapsedTime: number; propertyName: string; pseudoElement: string; } // // Event Handler Types // ---------------------------------------------------------------------- type EventHandler<E extends RealEvent<any>> = { bivarianceHack(event: E): void }["bivarianceHack"]; type ReactEventHandler<T = Element> = EventHandler<RealEvent<T>>; type ClipboardEventHandler<T = Element> = EventHandler<ClipboardEvent<T>>; type CompositionEventHandler<T = Element> = EventHandler<CompositionEvent<T>>; type DragEventHandler<T = Element> = EventHandler<DragEvent<T>>; type FocusEventHandler<T = Element> = EventHandler<FocusEvent<T>>; type FormEventHandler<T = Element> = EventHandler<FormEvent<T>>; type ChangeEventHandler<T = Element> = EventHandler<ChangeEvent<T>>; type KeyboardEventHandler<T = Element> = EventHandler<KeyboardEvent<T>>; type MouseEventHandler<T = Element> = EventHandler<MouseEvent<T>>; type TouchEventHandler<T = Element> = EventHandler<TouchEvent<T>>; type PointerEventHandler<T = Element> = EventHandler<PointerEvent<T>>; type UIEventHandler<T = Element> = EventHandler<UIEvent<T>>; type WheelEventHandler<T = Element> = EventHandler<WheelEvent<T>>; type AnimationEventHandler<T = Element> = EventHandler<AnimationEvent<T>>; type TransitionEventHandler<T = Element> = EventHandler<TransitionEvent<T>>; // interface HTMLProps<T> extends AllHTMLAttributes<T>, ClassAttributes<T> { // } type DetailedHTMLProps<E extends HTMLAttributes<T>, T> = ClassAttributes<T> & E; interface SVGProps<T> extends SVGAttributes<T>, ClassAttributes<T> { } interface DOMAttributes<T> { children?: ReactNode; // dangerouslySetInnerHTML?: { // __html: string | (() => string); // }; // Clipboard Events onCopy?: ClipboardEventHandler<T>; onCopyCapture?: ClipboardEventHandler<T>; onCut?: ClipboardEventHandler<T>; onCutCapture?: ClipboardEventHandler<T>; onPaste?: ClipboardEventHandler<T>; onPasteCapture?: ClipboardEventHandler<T>; // Composition Events onCompositionEnd?: CompositionEventHandler<T>; onCompositionEndCapture?: CompositionEventHandler<T>; onCompositionStart?: CompositionEventHandler<T>; onCompositionStartCapture?: CompositionEventHandler<T>; onCompositionUpdate?: CompositionEventHandler<T>; onCompositionUpdateCapture?: CompositionEventHandler<T>; // Focus Events onFocus?: FocusEventHandler<T>; onFocusCapture?: FocusEventHandler<T>; onBlur?: FocusEventHandler<T>; onBlurCapture?: FocusEventHandler<T>; // Form Events onChange?: FormEventHandler<T>; onChangeCapture?: FormEventHandler<T>; onInput?: FormEventHandler<T>; onInputCapture?: FormEventHandler<T>; onReset?: FormEventHandler<T>; onResetCapture?: FormEventHandler<T>; onSubmit?: FormEventHandler<T>; onSubmitCapture?: FormEventHandler<T>; onInvalid?: FormEventHandler<T>; onInvalidCapture?: FormEventHandler<T>; // Image Events onLoad?: ReactEventHandler<T>; onLoadCapture?: ReactEventHandler<T>; onError?: ReactEventHandler<T>; // also a Media Event onErrorCapture?: ReactEventHandler<T>; // also a Media Event // Keyboard Events onKeyDown?: KeyboardEventHandler<T>; onKeyDownCapture?: KeyboardEventHandler<T>; onKeyPress?: KeyboardEventHandler<T>; onKeyPressCapture?: KeyboardEventHandler<T>; onKeyUp?: KeyboardEventHandler<T>; onKeyUpCapture?: KeyboardEventHandler<T>; // Media Events onAbort?: ReactEventHandler<T>; onAbortCapture?: ReactEventHandler<T>; onCanPlay?: ReactEventHandler<T>; onCanPlayCapture?: ReactEventHandler<T>; onCanPlayThrough?: ReactEventHandler<T>; onCanPlayThroughCapture?: ReactEventHandler<T>; onDurationChange?: ReactEventHandler<T>; onDurationChangeCapture?: ReactEventHandler<T>; onEmptied?: ReactEventHandler<T>; onEmptiedCapture?: ReactEventHandler<T>; onEncrypted?: ReactEventHandler<T>; onEncryptedCapture?: ReactEventHandler<T>; onEnded?: ReactEventHandler<T>; onEndedCapture?: ReactEventHandler<T>; onLoadedData?: ReactEventHandler<T>; onLoadedDataCapture?: ReactEventHandler<T>; onLoadedMetadata?: ReactEventHandler<T>; onLoadedMetadataCapture?: ReactEventHandler<T>; onLoadStart?: ReactEventHandler<T>; onLoadStartCapture?: ReactEventHandler<T>; onPause?: ReactEventHandler<T>; onPauseCapture?: ReactEventHandler<T>; onPlay?: ReactEventHandler<T>; onPlayCapture?: ReactEventHandler<T>; onPlaying?: ReactEventHandler<T>; onPlayingCapture?: ReactEventHandler<T>; onProgress?: ReactEventHandler<T>; onProgressCapture?: ReactEventHandler<T>; onRateChange?: ReactEventHandler<T>; onRateChangeCapture?: ReactEventHandler<T>; onSeeked?: ReactEventHandler<T>; onSeekedCapture?: ReactEventHandler<T>; onSeeking?: ReactEventHandler<T>; onSeekingCapture?: ReactEventHandler<T>; onStalled?: ReactEventHandler<T>; onStalledCapture?: ReactEventHandler<T>; onSuspend?: ReactEventHandler<T>; onSuspendCapture?: ReactEventHandler<T>; onTimeUpdate?: ReactEventHandler<T>; onTimeUpdateCapture?: ReactEventHandler<T>; onVolumeChange?: ReactEventHandler<T>; onVolumeChangeCapture?: ReactEventHandler<T>; onWaiting?: ReactEventHandler<T>; onWaitingCapture?: ReactEventHandler<T>; // MouseEvents onClick?: MouseEventHandler<T>; onClickCapture?: MouseEventHandler<T>; onContextMenu?: MouseEventHandler<T>; onContextMenuCapture?: MouseEventHandler<T>; onDoubleClick?: MouseEventHandler<T>; onDoubleClickCapture?: MouseEventHandler<T>; onDrag?: DragEventHandler<T>; onDragCapture?: DragEventHandler<T>; onDragEnd?: DragEventHandler<T>; onDragEndCapture?: DragEventHandler<T>; onDragEnter?: DragEventHandler<T>; onDragEnterCapture?: DragEventHandler<T>; onDragExit?: DragEventHandler<T>; onDragExitCapture?: DragEventHandler<T>; onDragLeave?: DragEventHandler<T>; onDragLeaveCapture?: DragEventHandler<T>; onDragOver?: DragEventHandler<T>; onDragOverCapture?: DragEventHandler<T>; onDragStart?: DragEventHandler<T>; onDragStartCapture?: DragEventHandler<T>; onDrop?: DragEventHandler<T>; onDropCapture?: DragEventHandler<T>; onMouseDown?: MouseEventHandler<T>; onMouseDownCapture?: MouseEventHandler<T>; onMouseEnter?: MouseEventHandler<T>; onMouseLeave?: MouseEventHandler<T>; onMouseMove?: MouseEventHandler<T>; onMouseMoveCapture?: MouseEventHandler<T>; onMouseOut?: MouseEventHandler<T>; onMouseOutCapture?: MouseEventHandler<T>; onMouseOver?: MouseEventHandler<T>; onMouseOverCapture?: MouseEventHandler<T>; onMouseUp?: MouseEventHandler<T>; onMouseUpCapture?: MouseEventHandler<T>; // Selection Events onSelect?: ReactEventHandler<T>; onSelectCapture?: ReactEventHandler<T>; // Touch Events onTouchCancel?: TouchEventHandler<T>; onTouchCancelCapture?: TouchEventHandler<T>; onTouchEnd?: TouchEventHandler<T>; onTouchEndCapture?: TouchEventHandler<T>; onTouchMove?: TouchEventHandler<T>; onTouchMoveCapture?: TouchEventHandler<T>; onTouchStart?: TouchEventHandler<T>; onTouchStartCapture?: TouchEventHandler<T>; // Pointer Events onPointerDown?: PointerEventHandler<T>; onPointerDownCapture?: PointerEventHandler<T>; onPointerMove?: PointerEventHandler<T>; onPointerMoveCapture?: PointerEventHandler<T>; onPointerUp?: PointerEventHandler<T>; onPointerUpCapture?: PointerEventHandler<T>; onPointerCancel?: PointerEventHandler<T>; onPointerCancelCapture?: PointerEventHandler<T>; onPointerEnter?: PointerEventHandler<T>; onPointerEnterCapture?: PointerEventHandler<T>; onPointerLeave?: PointerEventHandler<T>; onPointerLeaveCapture?: PointerEventHandler<T>; onPointerOver?: PointerEventHandler<T>; onPointerOverCapture?: PointerEventHandler<T>; onPointerOut?: PointerEventHandler<T>; onPointerOutCapture?: PointerEventHandler<T>; onGotPointerCapture?: PointerEventHandler<T>; onGotPointerCaptureCapture?: PointerEventHandler<T>; onLostPointerCapture?: PointerEventHandler<T>; onLostPointerCaptureCapture?: PointerEventHandler<T>; // UI Events onScroll?: UIEventHandler<T>; onScrollCapture?: UIEventHandler<T>; // Wheel Events onWheel?: WheelEventHandler<T>; onWheelCapture?: WheelEventHandler<T>; // Animation Events onAnimationStart?: AnimationEventHandler<T>; onAnimationStartCapture?: AnimationEventHandler<T>; onAnimationEnd?: AnimationEventHandler<T>; onAnimationEndCapture?: AnimationEventHandler<T>; onAnimationIteration?: AnimationEventHandler<T>; onAnimationIterationCapture?: AnimationEventHandler<T>; // Transition Events onTransitionEnd?: TransitionEventHandler<T>; onTransitionEndCapture?: TransitionEventHandler<T>; } export interface CSSProperties extends CSS.Properties<string | number> { /** * The index signature was removed to enable closed typing for style * using CSSType. You're able to use type assertion or module augmentation * to add properties or an index signature of your own. * * For examples and more information, visit: * https://github.com/frenic/csstype#what-should-i-do-when-i-get-type-errors */ } interface HTMLAttributes<T> extends DOMAttributes<T> { // extension onMounted?: ((this: HTMLElement, ev: RealEvent<T>) => any); onUnmounted?: ((this: HTMLElement, ev: RealEvent<T>) => any); focus?: boolean | (() => boolean); // Standard HTML Attributes accessKey?: string | (() => string); className?: string | (() => string); contentEditable?: boolean | (() => boolean); contextMenu?: string | (() => string); dir?: string | (() => string); draggable?: boolean | (() => boolean); hidden?: boolean | (() => boolean); id?: string | (() => string); lang?: string | (() => string); placeholder?: string | (() => string); slot?: string | (() => string); spellCheck?: boolean | (() => boolean); style?: CSSProperties; tabIndex?: number | (() => number); title?: string | (() => string); // Unknown inputMode?: string | (() => string); is?: string | (() => string); radioGroup?: string | (() => string); // <command>, <menuitem> // WAI-ARIA role?: string | (() => string); // RDFa Attributes about?: string | (() => string); datatype?: string | (() => string); inlist?: any; prefix?: string | (() => string); property?: string | (() => string); resource?: string | (() => string); typeof?: string | (() => string); vocab?: string | (() => string); // Non-standard Attributes autoCapitalize?: string | (() => string); autoCorrect?: string | (() => string); autoSave?: string | (() => string); color?: string | (() => string); itemProp?: string | (() => string); itemScope?: boolean | (() => boolean); itemType?: string | (() => string); itemID?: string | (() => string); itemRef?: string | (() => string); results?: number | (() => number); security?: string | (() => string); unselectable?: boolean | (() => boolean); } // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/ interface HTMLAttributes<T> extends DOMAttributes<T> { /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */ 'aria-activedescendant'?: string | (() => string); /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */ 'aria-atomic'?: boolean | 'false' | 'true'; /** * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be * presented if they are made. */ 'aria-autocomplete'?: 'none' | 'inline' | 'list' | 'both'; /** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */ 'aria-busy'?: boolean | 'false' | 'true'; /** * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets. * @see aria-pressed @see aria-selected. */ 'aria-checked'?: boolean | 'false' | 'mixed' | 'true'; /** * Defines the total number of columns in a table, grid, or treegrid. * @see aria-colindex. */ 'aria-colcount'?: number | (() => number); /** * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid. * @see aria-colcount @see aria-colspan. */ 'aria-colindex'?: number | (() => number); /** * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid. * @see aria-colindex @see aria-rowspan. */ 'aria-colspan'?: number | (() => number); /** * Identifies the element (or elements) whose contents or presence are controlled by the current element. * @see aria-owns. */ 'aria-controls'?: string | (() => string); /** Indicates the element that represents the current item within a container or set of related elements. */ 'aria-current'?: boolean | 'false' | 'true' | 'page' | 'step' | 'location' | 'date' | 'time'; /** * Identifies the element (or elements) that describes the object. * @see aria-labelledby */ 'aria-describedby'?: string | (() => string); /** * Identifies the element that provides a detailed, extended description for the object. * @see aria-describedby. */ 'aria-details'?: string | (() => string); /** * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable. * @see aria-hidden @see aria-readonly. */ 'aria-disabled'?: boolean | 'false' | 'true'; /** * Indicates what functions can be performed when a dragged object is released on the drop target. * @deprecated in ARIA 1.1 */ 'aria-dropeffect'?: 'none' | 'copy' | 'execute' | 'link' | 'move' | 'popup'; /** * Identifies the element that provides an error message for the object. * @see aria-invalid @see aria-describedby. */ 'aria-errormessage'?: string | (() => string); /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */ 'aria-expanded'?: boolean | 'false' | 'true'; /** * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, * allows assistive technology to override the general default of reading in document source order. */ 'aria-flowto'?: string | (() => string); /** * Indicates an element's "grabbed" state in a drag-and-drop operation. * @deprecated in ARIA 1.1 */ 'aria-grabbed'?: boolean | 'false' | 'true'; /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */ 'aria-haspopup'?: boolean | 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'; /** * Indicates whether the element is exposed to an accessibility API. * @see aria-disabled. */ 'aria-hidden'?: boolean | 'false' | 'true'; /** * Indicates the entered value does not conform to the format expected by the application. * @see aria-errormessage. */ 'aria-invalid'?: boolean | 'false' | 'true' | 'grammar' | 'spelling'; /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */ 'aria-keyshortcuts'?: string | (() => string); /** * Defines a string value that labels the current element. * @see aria-labelledby. */ 'aria-label'?: string | (() => string); /** * Identifies the element (or elements) that labels the current element. * @see aria-describedby. */ 'aria-labelledby'?: string | (() => string); /** Defines the hierarchical level of an element within a structure. */ 'aria-level'?: number | (() => number); /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */ 'aria-live'?: 'off' | 'assertive' | 'polite'; /** Indicates whether an element is modal when displayed. */ 'aria-modal'?: boolean | 'false' | 'true'; /** Indicates whether a text box accepts multiple lines of input or only a single line. */ 'aria-multiline'?: boolean | 'false' | 'true'; /** Indicates that the user may select more than one item from the current selectable descendants. */ 'aria-multiselectable'?: boolean | 'false' | 'true'; /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */ 'aria-orientation'?: 'horizontal' | 'vertical'; /** * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship * between DOM elements where the DOM hierarchy cannot be used to represent the relationship. * @see aria-controls. */ 'aria-owns'?: string | (() => string); /** * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. * A hint could be a sample value or a brief description of the expected format. */ 'aria-placeholder'?: string | (() => string); /** * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. * @see aria-setsize. */ 'aria-posinset'?: number | (() => number); /** * Indicates the current "pressed" state of toggle buttons. * @see aria-checked @see aria-selected. */ 'aria-pressed'?: boolean | 'false' | 'mixed' | 'true'; /** * Indicates that the element is not editable, but is otherwise operable. * @see aria-disabled. */ 'aria-readonly'?: boolean | 'false' | 'true'; /** * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. * @see aria-atomic. */ 'aria-relevant'?: 'additions' | 'additions text' | 'all' | 'removals' | 'text'; /** Indicates that user input is required on the element before a form may be submitted. */ 'aria-required'?: boolean | 'false' | 'true'; /** Defines a human-readable, author-localized description for the role of an element. */ 'aria-roledescription'?: string | (() => string); /** * Defines the total number of rows in a table, grid, or treegrid. * @see aria-rowindex. */ 'aria-rowcount'?: number | (() => number); /** * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid. * @see aria-rowcount @see aria-rowspan. */ 'aria-rowindex'?: number | (() => number); /** * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid. * @see aria-rowindex @see aria-colspan. */ 'aria-rowspan'?: number | (() => number); /** * Indicates the current "selected" state of various widgets. * @see aria-checked @see aria-pressed. */ 'aria-selected'?: boolean | 'false' | 'true'; /** * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. * @see aria-posinset. */ 'aria-setsize'?: number | (() => number); /** Indicates if items in a table or grid are sorted in ascending or descending order. */ 'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other'; /** Defines the maximum allowed value for a range widget. */ 'aria-valuemax'?: number | (() => number); /** Defines the minimum allowed value for a range widget. */ 'aria-valuemin'?: number | (() => number); /** * Defines the current value for a range widget. * @see aria-valuetext. */ 'aria-valuenow'?: number | (() => number); /** Defines the human readable text alternative of aria-valuenow for a range widget. */ 'aria-valuetext'?: string | (() => string); } // used for type checking in factory interface AllHTMLAttributes<T> extends HTMLAttributes<T> { // Standard HTML Attributes accept?: string | (() => string); acceptCharset?: string | (() => string); action?: string | (() => string); allowFullScreen?: boolean | (() => boolean); allowTransparency?: boolean | (() => boolean); alt?: string | (() => string); as?: string | (() => string); async?: boolean | (() => boolean); autoComplete?: string | (() => string); autoFocus?: boolean | (() => boolean); autoPlay?: boolean | (() => boolean); capture?: boolean | string; cellPadding?: number | string | (() => number | string); cellSpacing?: number | string | (() => number | string); charSet?: string | (() => string); challenge?: string | (() => string); checked?: boolean | (() => boolean); cite?: string | (() => string); classID?: string | (() => string); cols?: number | (() => number); colSpan?: number | (() => number); content?: string | (() => string); controls?: boolean | (() => boolean); coords?: string | (() => string); crossOrigin?: string | (() => string); data?: string | (() => string); dateTime?: string | (() => string); default?: boolean | (() => boolean); defer?: boolean | (() => boolean); disabled?: boolean | (() => boolean); download?: any; encType?: string | (() => string); form?: string | (() => string); formAction?: string | (() => string); formEncType?: string | (() => string); formMethod?: string | (() => string); formNoValidate?: boolean | (() => boolean); formTarget?: string | (() => string); frameBorder?: number | string | (() => number | string); headers?: string | (() => string); height?: number | string | (() => number | string); high?: number | (() => number); href?: string | (() => string); hrefLang?: string | (() => string); htmlFor?: string | (() => string); httpEquiv?: string | (() => string); integrity?: string | (() => string); keyParams?: string | (() => string); keyType?: string | (() => string); kind?: string | (() => string); label?: string | (() => string); list?: string | (() => string); loop?: boolean | (() => boolean); low?: number | (() => number); manifest?: string | (() => string); marginHeight?: number | (() => number); marginWidth?: number | (() => number); max?: number | string | (() => number | string); maxLength?: number | (() => number); media?: string | (() => string); mediaGroup?: string | (() => string); method?: string | (() => string); min?: number | string | (() => number | string); minLength?: number | (() => number); multiple?: boolean | (() => boolean); muted?: boolean | (() => boolean); name?: string | (() => string); nonce?: string | (() => string); noValidate?: boolean | (() => boolean); open?: boolean | (() => boolean); optimum?: number | (() => number); pattern?: string | (() => string); placeholder?: string | (() => string); playsInline?: boolean | (() => boolean); poster?: string | (() => string); preload?: string | (() => string); readOnly?: boolean | (() => boolean); rel?: string | (() => string); required?: boolean | (() => boolean); reversed?: boolean | (() => boolean); rows?: number | (() => number); rowSpan?: number | (() => number); sandbox?: string | (() => string); scope?: string | (() => string); scoped?: boolean | (() => boolean); scrolling?: string | (() => string); seamless?: boolean | (() => boolean); selected?: boolean | (() => boolean); shape?: string | (() => string); size?: number | (() => number); sizes?: string | (() => string); span?: number | (() => number); src?: string | (() => string); srcDoc?: string | (() => string); srcLang?: string | (() => string); srcSet?: string | (() => string); start?: number | (() => number); step?: number | string | (() => number | string); summary?: string | (() => string); target?: string | (() => string); type?: string | (() => string); useMap?: string | (() => string); value?: string | string[] | number | (() => string | string[] | number); width?: number | string | (() => number | string); wmode?: string | (() => string); wrap?: string | (() => string); } interface AnchorHTMLAttributes<T> extends HTMLAttributes<T> { download?: any; href?: string | (() => string); hrefLang?: string | (() => string); media?: string | (() => string); rel?: string | (() => string); target?: string | (() => string); type?: string | (() => string); } // tslint:disable-next-line:no-empty-interface interface AudioHTMLAttributes<T> extends MediaHTMLAttributes<T> { } interface AreaHTMLAttributes<T> extends HTMLAttributes<T> { alt?: string | (() => string); coords?: string | (() => string); download?: any; href?: string | (() => string); hrefLang?: string | (() => string); media?: string | (() => string); rel?: string | (() => string); shape?: string | (() => string); target?: string | (() => string); } interface BaseHTMLAttributes<T> extends HTMLAttributes<T> { href?: string | (() => string); target?: string | (() => string); } interface BlockquoteHTMLAttributes<T> extends HTMLAttributes<T> { cite?: string | (() => string); } interface ButtonHTMLAttributes<T> extends HTMLAttributes<T> { autoFocus?: boolean | (() => boolean); disabled?: boolean | (() => boolean); form?: string | (() => string); formAction?: string | (() => string); formEncType?: string | (() => string); formMethod?: string | (() => string); formNoValidate?: boolean | (() => boolean); formTarget?: string | (() => string); name?: string | (() => string); type?: string | (() => string); value?: string | string[] | number | (() => string | string[] | number); } interface CanvasHTMLAttributes<T> extends HTMLAttributes<T> { height?: number | string | (() => number | string); width?: number | string | (() => number | string); } interface ColHTMLAttributes<T> extends HTMLAttributes<T> { span?: number | (() => number); width?: number | string | (() => number | string); } interface ColgroupHTMLAttributes<T> extends HTMLAttributes<T> { span?: number | (() => number); } interface DetailsHTMLAttributes<T> extends HTMLAttributes<T> { open?: boolean | (() => boolean); } interface DelHTMLAttributes<T> extends HTMLAttributes<T> { cite?: string | (() => string); dateTime?: string | (() => string); } interface DialogHTMLAttributes<T> extends HTMLAttributes<T> { open?: boolean | (() => boolean); } interface EmbedHTMLAttributes<T> extends HTMLAttributes<T> { height?: number | string | (() => number | string); src?: string | (() => string); type?: string | (() => string); width?: number | string | (() => number | string); } interface FieldsetHTMLAttributes<T> extends HTMLAttributes<T> { disabled?: boolean | (() => boolean); form?: string | (() => string); name?: string | (() => string); } interface FormHTMLAttributes<T> extends HTMLAttributes<T> { acceptCharset?: string | (() => string); action?: string | (() => string); autoComplete?: string | (() => string); encType?: string | (() => string); method?: string | (() => string); name?: string | (() => string); noValidate?: boolean | (() => boolean); target?: string | (() => string); } interface HtmlHTMLAttributes<T> extends HTMLAttributes<T> { manifest?: string | (() => string); } interface IframeHTMLAttributes<T> extends HTMLAttributes<T> { allowFullScreen?: boolean | (() => boolean); allowTransparency?: boolean | (() => boolean); frameBorder?: number | string | (() => number | string); height?: number | string | (() => number | string); marginHeight?: number | (() => number); marginWidth?: number | (() => number); name?: string | (() => string); sandbox?: string | (() => string); scrolling?: string | (() => string); seamless?: boolean | (() => boolean); src?: string | (() => string); srcDoc?: string | (() => string); width?: number | string | (() => number | string); } interface ImgHTMLAttributes<T> extends HTMLAttributes<T> { alt?: string | (() => string); crossOrigin?: "anonymous" | "use-credentials" | ""; height?: number | string | (() => number | string); sizes?: string | (() => string); src?: string | (() => string); srcSet?: string | (() => string); useMap?: string | (() => string); width?: number | string | (() => number | string); } interface InsHTMLAttributes<T> extends HTMLAttributes<T> { cite?: string | (() => string); dateTime?: string | (() => string); } interface InputHTMLAttributes<T> extends HTMLAttributes<T> { accept?: string | (() => string); alt?: string | (() => string); autoComplete?: string | (() => string); autoFocus?: boolean | (() => boolean); capture?: boolean | string; // https://www.w3.org/TR/html-media-capture/#the-capture-attribute checked?: boolean | (() => boolean); crossOrigin?: string | (() => string); disabled?: boolean | (() => boolean); form?: string | (() => string); formAction?: string | (() => string); formEncType?: string | (() => string); formMethod?: string | (() => string); formNoValidate?: boolean | (() => boolean); formTarget?: string | (() => string); height?: number | string | (() => number | string); list?: string | (() => string); max?: number | string | (() => number | string); maxLength?: number | (() => number); min?: number | string | (() => number | string); minLength?: number | (() => number); multiple?: boolean | (() => boolean); name?: string | (() => string); pattern?: string | (() => string); placeholder?: string | (() => string); readOnly?: boolean | (() => boolean); required?: boolean | (() => boolean); size?: number | (() => number); src?: string | (() => string); step?: number | string | (() => number | string); type?: string | (() => string); value?: string | string[] | number | (() => string | string[] | number); width?: number | string | (() => number | string); onChange?: ChangeEventHandler<T>; } interface KeygenHTMLAttributes<T> extends HTMLAttributes<T> { autoFocus?: boolean | (() => boolean); challenge?: string | (() => string); disabled?: boolean | (() => boolean); form?: string | (() => string); keyType?: string | (() => string); keyParams?: string | (() => string); name?: string | (() => string); } interface LabelHTMLAttributes<T> extends HTMLAttributes<T> { form?: string | (() => string); htmlFor?: string | (() => string); } interface LiHTMLAttributes<T> extends HTMLAttributes<T> { value?: string | string[] | number | (() => string | string[] | number); } interface LinkHTMLAttributes<T> extends HTMLAttributes<T> { as?: string | (() => string); crossOrigin?: string | (() => string); href?: string | (() => string); hrefLang?: string | (() => string); integrity?: string | (() => string); media?: string | (() => string); rel?: string | (() => string); sizes?: string | (() => string); type?: string | (() => string); } interface MapHTMLAttributes<T> extends HTMLAttributes<T> { name?: string | (() => string); } interface MenuHTMLAttributes<T> extends HTMLAttributes<T> { type?: string | (() => string); } interface MediaHTMLAttributes<T> extends HTMLAttributes<T> { autoPlay?: boolean | (() => boolean); controls?: boolean | (() => boolean); controlsList?: string | (() => string); crossOrigin?: string | (() => string); loop?: boolean | (() => boolean); mediaGroup?: string | (() => string); muted?: boolean | (() => boolean); playsinline?: boolean | (() => boolean); preload?: string | (() => string); src?: string | (() => string); } interface MetaHTMLAttributes<T> extends HTMLAttributes<T> { charSet?: string | (() => string); content?: string | (() => string); httpEquiv?: string | (() => string); name?: string | (() => string); } interface MeterHTMLAttributes<T> extends HTMLAttributes<T> { form?: string | (() => string); high?: number | (() => number); low?: number | (() => number); max?: number | string | (() => number | string); min?: number | string | (() => number | string); optimum?: number | (() => number); value?: string | string[] | number | (() => string | string[] | number); } interface QuoteHTMLAttributes<T> extends HTMLAttributes<T> { cite?: string | (() => string); } interface ObjectHTMLAttributes<T> extends HTMLAttributes<T> { classID?: string | (() => string); data?: string | (() => string); form?: string | (() => string); height?: number | string | (() => number | string); name?: string | (() => string); type?: string | (() => string); useMap?: string | (() => string); width?: number | string | (() => number | string); wmode?: string | (() => string); } interface OlHTMLAttributes<T> extends HTMLAttributes<T> { reversed?: boolean | (() => boolean); start?: number | (() => number); type?: '1' | 'a' | 'A' | 'i' | 'I'; } interface OptgroupHTMLAttributes<T> extends HTMLAttributes<T> { disabled?: boolean | (() => boolean); label?: string | (() => string); } interface OptionHTMLAttributes<T> extends HTMLAttributes<T> { disabled?: boolean | (() => boolean); label?: string | (() => string); selected?: boolean | (() => boolean); value?: string | string[] | number | (() => string | string[] | number); } interface OutputHTMLAttributes<T> extends HTMLAttributes<T> { form?: string | (() => string); htmlFor?: string | (() => string); name?: string | (() => string); } interface ParamHTMLAttributes<T> extends HTMLAttributes<T> { name?: string | (() => string); value?: string | string[] | number | (() => string | string[] | number); } interface ProgressHTMLAttributes<T> extends HTMLAttributes<T> { max?: number | string | (() => number | string); value?: string | string[] | number | (() => string | string[] | number); } interface ScriptHTMLAttributes<T> extends HTMLAttributes<T> { async?: boolean | (() => boolean); charSet?: string | (() => string); crossOrigin?: string | (() => string); defer?: boolean | (() => boolean); integrity?: string | (() => string); noModule?: boolean | (() => boolean); nonce?: string | (() => string); src?: string | (() => string); type?: string | (() => string); } interface SelectHTMLAttributes<T> extends HTMLAttributes<T> { autoComplete?: string | (() => string); autoFocus?: boolean | (() => boolean); disabled?: boolean | (() => boolean); form?: string | (() => string); multiple?: boolean | (() => boolean); name?: string | (() => string); required?: boolean | (() => boolean); size?: number | (() => number); value?: string | string[] | number | (() => string | string[] | number); onChange?: ChangeEventHandler<T>; } interface SourceHTMLAttributes<T> extends HTMLAttributes<T> { media?: string | (() => string); sizes?: string | (() => string); src?: string | (() => string); srcSet?: string | (() => string); type?: string | (() => string); } interface StyleHTMLAttributes<T> extends HTMLAttributes<T> { media?: string | (() => string); nonce?: string | (() => string); scoped?: boolean | (() => boolean); type?: string | (() => string); } interface TableHTMLAttributes<T> extends HTMLAttributes<T> { cellPadding?: number | string | (() => number | string); cellSpacing?: number | string | (() => number | string); summary?: string | (() => string); } interface TextareaHTMLAttributes<T> extends HTMLAttributes<T> { autoComplete?: string | (() => string); autoFocus?: boolean | (() => boolean); cols?: number | (() => number); dirName?: string | (() => string); disabled?: boolean | (() => boolean); form?: string | (() => string); maxLength?: number | (() => number); minLength?: number | (() => number); name?: string | (() => string); placeholder?: string | (() => string); readOnly?: boo