/* eslint-disable @typescript-eslint/no-empty-interface */ /* eslint-disable @typescript-eslint/naming-convention */ /* eslint-disable perfectionist/sort-interfaces */ /* eslint-disable perfectionist/sort-object-types */ /* eslint-disable max-lines */ // Credits of this file goes to the contributors of @types/react // (https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) // Type definitions for Lestin // Definitions by: Asana // AssureSign // Microsoft // John Reilly // Benoit Benezech // Patricio Zavolinsky // Eric Anderson // Dovydas Navickas // Josh Rutherford // Guilherme Hübner // Ferdy Budhidharma // Johann Rakotoharisoa // Olivier Pascal // Martin Hochel // Frank Li // Jessica Franco // Saransh Kataria // Kanitkorn Sujautra // Sebastian Silbermann // Kyle Scully // Cong Zhang // Dimitri Mitropoulos // JongChan Choi // Victor Magalhães // Dale Tan // Priyanshu Rav // Dmitry Semigradsky // Shahab Movahhedi // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped import type * as CSS from "csstype"; import type * as PropTypes from "prop-types"; import type { Falsy } from "./utilities/TypeScriptUtilities.js"; type NativeAnimationEvent = AnimationEvent; type NativeClipboardEvent = ClipboardEvent; type NativeCompositionEvent = CompositionEvent; type NativeDragEvent = DragEvent; type NativeFocusEvent = FocusEvent; type NativeKeyboardEvent = KeyboardEvent; type NativeMouseEvent = MouseEvent; type NativeTouchEvent = TouchEvent; type NativePointerEvent = PointerEvent; type NativeTransitionEvent = TransitionEvent; type NativeUIEvent = UIEvent; type NativeWheelEvent = WheelEvent; type Booleanish = boolean | "true" | "false"; export = Lestin; export as namespace Lestin; declare namespace Lestin { // // Lestin Elements // ---------------------------------------------------------------------- type ElementType

= | { [K in keyof JSX.IntrinsicElements]: P extends JSX.IntrinsicElements[K] ? K : never; }[keyof JSX.IntrinsicElements] | ComponentType

; type ComponentType

= ComponentClass

| FunctionComponent

; type JSXElementConstructor

= ((props: P) => LestinElement | null) | (new (props: P) => Component); type ComponentState = any; type Key = string | number; /** * @internal You shouldn't need to use this type since you never see these attributes * inside your component or have to validate them. */ // eslint-disable-next-line @typescript-eslint/no-unused-vars interface Attributes {} interface LestinElement extends HTMLElement {} interface LestinElement< P = any, T extends string | JSXElementConstructor = string | JSXElementConstructor, > extends HTMLElement {} interface LestinComponentElement< T extends keyof JSX.IntrinsicElements | JSXElementConstructor, P = Pick, Exclude, "key" | "ref">>, > extends LestinElement> {} // string fallback for custom web-components interface DOMElement< P extends HTMLAttributes | SVGAttributes, T extends Element, > extends LestinElement {} // LestinHTML for LestinHTMLElement interface LestinHTMLElement extends DetailedLestinHTMLElement< AllHTMLAttributes, T > {} interface DetailedLestinHTMLElement< P extends HTMLAttributes, T extends HTMLElement, > extends DOMElement {} // LestinSVG for LestinSVGElement interface LestinSVGElement extends DOMElement, SVGElement> { type: keyof LestinSVG; } type DOMFactory

, T extends Element> = ( props?: (Attributes & P) | null, ...children: LestinNode[] ) => DOMElement; interface HTMLFactory extends DetailedHTMLFactory, T> {} interface DetailedHTMLFactory

, T extends HTMLElement> extends DOMFactory< P, T > { (props?: (Attributes & P) | null, ...children: LestinNode[]): DetailedLestinHTMLElement; } interface SVGFactory extends DOMFactory, SVGElement> { ( props?: (Attributes & SVGAttributes) | null, ...children: LestinNode[] ): LestinSVGElement; } type LestinFragment = LestinNode[] /*Iterable*/; type LestinNode = LestinElement | string | number | LestinFragment | boolean | null | undefined; // // Top Level API // ---------------------------------------------------------------------- type RefType = { current: T | undefined }; function createRef(initialValue?: T): { current: T | undefined }; // const createRef = (): RefType => ({ current: null }); // DOM Elements // TODO: generalize this to everything in `keyof LestinHTML`, not just "input" function createElement( type: "input", props?: (InputHTMLAttributes & Attributes) | null, ): DetailedLestinHTMLElement, HTMLInputElement>; function createElement

, T extends HTMLElement>( type: keyof LestinHTML, props?: (Attributes & P) | null, ): DetailedLestinHTMLElement; function createElement

, T extends SVGElement>( type: keyof LestinSVG, props?: (Attributes & P) | null, ): LestinSVGElement; function createElement

, T extends Element>( type: string, props?: (Attributes & P) | null, ): DOMElement; function createElement

( type: (props?: (Lestin.Attributes & P) | null, children?: Lestin.LestinNode) => Lestin.LestinNode, props?: (Lestin.Attributes & P) | null, ): Lestin.LestinNode; function createElement

, T extends HTMLElement>( type: string, props?: (Lestin.HTMLAttributes & P) | null, ): Lestin.LestinNode; function createElement

, T extends Lestin.LestinNode>( type: keyof JSX.IntrinsicElements, props?: (Lestin.HTMLAttributes & P) | null, ): Lestin.LestinNode; function fragment(props: any, ...children: Lestin.LestinNode[]): Lestin.LestinNode[]; function appendChild(parent: HTMLElement, text: string): void; function appendChild(parent: HTMLElement, child: HTMLElement): void; function appendChild(parent: HTMLElement, childOrText: HTMLElement | string): void; // Custom components // function createElement

(type: ClassType, ComponentClass

>, props?: (Attributes> & P) | null, ...children: LestinNode[]): CElement>; // function createElement

, C extends ComponentClass

>(type: ClassType, props?: (Attributes & P) | null, ...children: LestinNode[]): CElement; function createElement

( type: FunctionComponent

| ComponentClass

| string, props?: (Attributes & P) | null, ): LestinElement

; // Sync with `LestinChildren` until `LestinChildren` is removed. const Children: { map( children: C | ReadonlyArray, fn: (child: C, index: number) => T, ): C extends null | undefined ? C : Array>; forEach(children: C | ReadonlyArray, fn: (child: C, index: number) => void): void; count(children: any): number; only(children: C): C extends any[] ? never : C; toArray(children: LestinNode | LestinNode[]): Array>; }; // // Component API // ---------------------------------------------------------------------- // Base component for plain JS classes // interface Component

{} class Component

{ render(): LestinNode; componentWillMount?(): void; componentDidMount?(): void; componentWillUnmount?(): void; getChildContext?(): object; componentWillReceiveProps?(nextProps: Readonly

, nextContext: any): void; shouldComponentUpdate?(nextProps: Readonly

, nextState: Readonly, nextContext: any): boolean; componentWillUpdate?(nextProps: Readonly

, nextState: Readonly, nextContext: any): boolean; getSnapshotBeforeUpdate?(oldProps: Readonly

, oldState: Readonly): any; componentDidUpdate?(previousProps: Readonly

, previousState: Readonly, snapshot: any): void; componentDidCatch?(error: any, errorInfo: any): void; } // // Class Interfaces // ---------------------------------------------------------------------- // eslint-disable-next-line @typescript-eslint/no-unused-vars interface FunctionComponent

{} // eslint-disable-next-line @typescript-eslint/no-unused-vars interface ComponentClass

{} /** * We use an intersection type to infer multiple type parameters from * a single argument, which is useful for many top-level API defs. * See https://github.com/Microsoft/TypeScript/issues/7234 for more info. */ // TODO REMOVE // type ClassType, C extends ComponentClass

> = C & (new (props: P, context?: any) => T); // // Component Specs and Lifecycle // ---------------------------------------------------------------------- type BaseProps

= P & { children?: LestinNode | undefined }; type PropsWithChildren

= BaseProps

; /** * NOTE: prefer ComponentPropsWithRef, if the ref is forwarded, * or ComponentPropsWithoutRef when refs are not supported. */ type ComponentProps> = T extends JSXElementConstructor ? P : T extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[T] : {}; // // Event System // ---------------------------------------------------------------------- // TODO: change any to unknown when moving to TS v3 interface BaseSyntheticEvent { nativeEvent: E; currentTarget: C; target: T; bubbles: boolean; cancelable: boolean; defaultPrevented: boolean; eventPhase: number; isTrusted: boolean; preventDefault(): void; isDefaultPrevented(): boolean; stopPropagation(): void; isPropagationStopped(): boolean; persist(): void; timeStamp: number; type: string; } /** * currentTarget - a reference to the element on which the event listener is registered. * * target - a reference to the element from which the event was originally dispatched. * This might be a child element to the element on which the event listener is registered. * If you thought this should be `EventTarget & T`, see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/11508#issuecomment-256045682 */ interface SyntheticEvent extends BaseSyntheticEvent< E, EventTarget & T, EventTarget > {} interface ClipboardEvent extends SyntheticEvent { clipboardData: DataTransfer; } interface CompositionEvent extends SyntheticEvent { data: string; } interface DragEvent extends MouseEvent { dataTransfer: DataTransfer; } interface PointerEvent extends MouseEvent { pointerId: number; pressure: number; tangentialPressure: number; tiltX: number; tiltY: number; twist: number; width: number; height: number; pointerType: "mouse" | "pen" | "touch"; isPrimary: boolean; } interface FocusEvent extends SyntheticEvent< Target, NativeFocusEvent > { relatedTarget: (EventTarget & RelatedTarget) | null; target: EventTarget & Target; } interface FormEvent extends SyntheticEvent {} interface InvalidEvent extends SyntheticEvent { target: EventTarget & T; } interface ChangeEvent extends SyntheticEvent { target: EventTarget & T; } interface KeyboardEvent extends UIEvent { altKey: boolean; /** @deprecated */ charCode: number; ctrlKey: boolean; code: string; /** * 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; /** @deprecated */ keyCode: number; locale: string; location: number; metaKey: boolean; repeat: boolean; shiftKey: boolean; /** @deprecated */ which: number; } interface MouseEvent extends UIEvent { 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; movementX: number; movementY: number; pageX: number; pageY: number; relatedTarget: EventTarget | null; screenX: number; screenY: number; shiftKey: boolean; } interface TouchEvent extends UIEvent { 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 extends SyntheticEvent { detail: number; view: AbstractView; } interface WheelEvent extends MouseEvent { deltaMode: number; deltaX: number; deltaY: number; deltaZ: number; } interface AnimationEvent extends SyntheticEvent { animationName: string; elapsedTime: number; pseudoElement: string; } interface TransitionEvent extends SyntheticEvent { elapsedTime: number; propertyName: string; pseudoElement: string; } // // Event Handler Types // ---------------------------------------------------------------------- type EventHandler> = { bivarianceHack(event: E): void }["bivarianceHack"]; type LestinEventHandler = EventHandler>; type ClipboardEventHandler = EventHandler>; type CompositionEventHandler = EventHandler>; type DragEventHandler = EventHandler>; type FocusEventHandler = EventHandler>; type FormEventHandler = EventHandler>; type ChangeEventHandler = EventHandler>; type KeyboardEventHandler = EventHandler>; type MouseEventHandler = EventHandler>; type TouchEventHandler = EventHandler>; type PointerEventHandler = EventHandler>; type UIEventHandler = EventHandler>; type WheelEventHandler = EventHandler>; type AnimationEventHandler = EventHandler>; type TransitionEventHandler = EventHandler>; // SoAoU: single, or array, or undefined // type SoAoU

= P | P[] | undefined; // SoAoU: single, or array, or undefined, or array of and undefined type SoAoU

= P | (P | undefined | null | false)[] | undefined | null | false; // // Props / DOM Attributes // ---------------------------------------------------------------------- interface HTMLProps extends AllHTMLAttributes, Attributes {} type DetailedHTMLProps, T> = Attributes & E; interface SVGProps extends SVGAttributes, Attributes {} interface DOMAttributes { children?: LestinNode | undefined; innerHTML?: string | undefined; innerText?: string | undefined; textContent?: string | undefined; // Clipboard Events onCopy?: SoAoU>; onCopyCapture?: SoAoU>; onCut?: SoAoU>; onCutCapture?: SoAoU>; onPaste?: SoAoU>; onPasteCapture?: SoAoU>; // Composition Events onCompositionEnd?: SoAoU>; onCompositionEndCapture?: SoAoU>; onCompositionStart?: SoAoU>; onCompositionStartCapture?: SoAoU>; onCompositionUpdate?: SoAoU>; onCompositionUpdateCapture?: SoAoU>; // Focus Events onFocus?: SoAoU>; onFocusCapture?: SoAoU>; onBlur?: SoAoU>; onBlurCapture?: SoAoU>; // Form Events onChange?: SoAoU>; onChangeCapture?: SoAoU>; onBeforeInput?: SoAoU>; onBeforeInputCapture?: SoAoU>; onInput?: SoAoU>; onInputCapture?: SoAoU>; onReset?: SoAoU>; onResetCapture?: SoAoU>; onSubmit?: SoAoU>; onSubmitCapture?: SoAoU>; onInvalid?: SoAoU>; onInvalidCapture?: SoAoU>; // Image Events onLoad?: SoAoU>; onLoadCapture?: SoAoU>; onError?: SoAoU>; // also a Media Event onErrorCapture?: SoAoU>; // also a Media Event // Keyboard Events onKeyDown?: SoAoU>; onKeyDownCapture?: SoAoU>; /** @deprecated */ onKeyPress?: SoAoU>; /** @deprecated */ onKeyPressCapture?: SoAoU>; onKeyUp?: SoAoU>; onKeyUpCapture?: SoAoU>; // Media Events onAbort?: SoAoU>; onAbortCapture?: SoAoU>; onCanPlay?: SoAoU>; onCanPlayCapture?: SoAoU>; onCanPlayThrough?: SoAoU>; onCanPlayThroughCapture?: SoAoU>; onDurationChange?: SoAoU>; onDurationChangeCapture?: SoAoU>; onEmptied?: SoAoU>; onEmptiedCapture?: SoAoU>; onEncrypted?: SoAoU>; onEncryptedCapture?: SoAoU>; onEnded?: SoAoU>; onEndedCapture?: SoAoU>; onLoadedData?: SoAoU>; onLoadedDataCapture?: SoAoU>; onLoadedMetadata?: SoAoU>; onLoadedMetadataCapture?: SoAoU>; onLoadStart?: SoAoU>; onLoadStartCapture?: SoAoU>; onPause?: SoAoU>; onPauseCapture?: SoAoU>; onPlay?: SoAoU>; onPlayCapture?: SoAoU>; onPlaying?: SoAoU>; onPlayingCapture?: SoAoU>; onProgress?: SoAoU>; onProgressCapture?: SoAoU>; onRateChange?: SoAoU>; onRateChangeCapture?: SoAoU>; onSeeked?: SoAoU>; onSeekedCapture?: SoAoU>; onSeeking?: SoAoU>; onSeekingCapture?: SoAoU>; onStalled?: SoAoU>; onStalledCapture?: SoAoU>; onSuspend?: SoAoU>; onSuspendCapture?: SoAoU>; onTimeUpdate?: SoAoU>; onTimeUpdateCapture?: SoAoU>; onVolumeChange?: SoAoU>; onVolumeChangeCapture?: SoAoU>; onWaiting?: SoAoU>; onWaitingCapture?: SoAoU>; // MouseEvents onAuxClick?: SoAoU>; onAuxClickCapture?: SoAoU>; onClick?: SoAoU>; onClickCapture?: SoAoU>; onContextMenu?: SoAoU>; onContextMenuCapture?: SoAoU>; onDoubleClick?: SoAoU>; onDoubleClickCapture?: SoAoU>; onDrag?: SoAoU>; onDragCapture?: SoAoU>; onDragEnd?: SoAoU>; onDragEndCapture?: SoAoU>; onDragEnter?: SoAoU>; onDragEnterCapture?: SoAoU>; onDragExit?: SoAoU>; onDragExitCapture?: SoAoU>; onDragLeave?: SoAoU>; onDragLeaveCapture?: SoAoU>; onDragOver?: SoAoU>; onDragOverCapture?: SoAoU>; onDragStart?: SoAoU>; onDragStartCapture?: SoAoU>; onDrop?: SoAoU>; onDropCapture?: SoAoU>; onMouseDown?: SoAoU>; onMouseDownCapture?: SoAoU>; onMouseEnter?: SoAoU>; onMouseLeave?: SoAoU>; onMouseMove?: SoAoU>; onMouseMoveCapture?: SoAoU>; onMouseOut?: SoAoU>; onMouseOutCapture?: SoAoU>; onMouseOver?: SoAoU>; onMouseOverCapture?: SoAoU>; onMouseUp?: SoAoU>; onMouseUpCapture?: SoAoU>; // Selection Events onSelect?: SoAoU>; onSelectCapture?: SoAoU>; // Touch Events onTouchCancel?: SoAoU>; onTouchCancelCapture?: SoAoU>; onTouchEnd?: SoAoU>; onTouchEndCapture?: SoAoU>; onTouchMove?: SoAoU>; onTouchMoveCapture?: SoAoU>; onTouchStart?: SoAoU>; onTouchStartCapture?: SoAoU>; // Pointer Events onPointerDown?: SoAoU>; onPointerDownCapture?: SoAoU>; onPointerMove?: SoAoU>; onPointerMoveCapture?: SoAoU>; onPointerUp?: SoAoU>; onPointerUpCapture?: SoAoU>; onPointerCancel?: SoAoU>; onPointerCancelCapture?: SoAoU>; onPointerEnter?: SoAoU>; onPointerEnterCapture?: SoAoU>; onPointerLeave?: SoAoU>; onPointerLeaveCapture?: SoAoU>; onPointerOver?: SoAoU>; onPointerOverCapture?: SoAoU>; onPointerOut?: SoAoU>; onPointerOutCapture?: SoAoU>; onGotPointerCapture?: SoAoU>; onGotPointerCaptureCapture?: SoAoU>; onLostPointerCapture?: SoAoU>; onLostPointerCaptureCapture?: SoAoU>; // UI Events onScroll?: SoAoU>; onScrollCapture?: SoAoU>; // Wheel Events onWheel?: SoAoU>; onWheelCapture?: SoAoU>; // Animation Events onAnimationStart?: SoAoU>; onAnimationStartCapture?: SoAoU>; onAnimationEnd?: SoAoU>; onAnimationEndCapture?: SoAoU>; onAnimationIteration?: SoAoU>; onAnimationIterationCapture?: SoAoU>; // Transition Events onTransitionEnd?: SoAoU>; onTransitionEndCapture?: SoAoU>; /* # Undefined Events: (https://developer.mozilla.org/en-US/docs/Web/Events#event_listing) animationcancel auxclick dblclick focusin focusout fullscreenchange fullscreenerror gesturechange gestureend gesturestart scrollend securitypolicyviolation transitioncancel transitionrun transitionstart / afterscriptexecute / beforematch / beforescriptexecute / beforexrselect / contentvisibilityautostatechange / DOMActivate / DOMMouseScroll / mousewheel / MozMousePixelScroll / webkitmouseforcechanged / webkitmouseforcedown / webkitmouseforceup / webkitmouseforcewillbegin */ } 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/ 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; /** 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 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"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined; /** * Identifies the element (or elements) that describes the object. * @see aria-labelledby */ "aria-describedby"?: 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"?: boolean | "false" | "true" | "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"?: boolean | "false" | "true" | "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 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 & {}); type ClassNameOrNested = string | Falsy | ClassNameOrNested[]; interface HTMLAttributes extends AriaAttributes, DOMAttributes { // Lestin-specific Attributes assign?: (element: T) => void; ref?: RefType; defaultChecked?: boolean | "defaultChecked" | undefined; defaultValue?: string | number | ReadonlyArray | undefined; suppressContentEditableWarning?: boolean | "suppressContentEditableWarning" | undefined; suppressHydrationWarning?: boolean | "suppressHydrationWarning" | undefined; // Standard HTML Attributes accessKey?: string | undefined; class?: ClassNameOrNested | undefined; className?: ClassNameOrNested | undefined; contentEditable?: Booleanish | "inherit" | undefined; contextMenu?: string | undefined; dir?: string | undefined; draggable?: Booleanish | undefined; hidden?: boolean | "hidden" | undefined; id?: string | undefined; lang?: string | undefined; placeholder?: string | undefined; slot?: string | undefined; spellCheck?: Booleanish | undefined; style?: CSSProperties | string | 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; datatype?: string | undefined; inlist?: any; prefix?: string | undefined; property?: string | undefined; resource?: 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 | "itemScope" | 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; } interface AllHTMLAttributes extends HTMLAttributes { // Standard HTML Attributes accept?: string | undefined; acceptCharset?: string | undefined; action?: string | undefined; allowFullScreen?: boolean | "allowFullScreen" | undefined; allowTransparency?: boolean | "allowTransparency" | undefined; alt?: string | undefined; as?: string | undefined; async?: boolean | "async" | undefined; autoComplete?: string | undefined; autoFocus?: boolean | "autoFocus" | undefined; autoPlay?: boolean | "autoPlay" | undefined; capture?: boolean | "user" | "environment" | undefined; cellPadding?: number | string | undefined; cellSpacing?: number | string | undefined; charSet?: string | undefined; challenge?: string | undefined; checked?: boolean | "checked" | undefined; cite?: string | undefined; classID?: string | undefined; cols?: number | undefined; colSpan?: number | undefined; content?: string | undefined; controls?: boolean | "controls" | undefined; coords?: string | undefined; crossOrigin?: string | undefined; data?: string | undefined; dateTime?: string | undefined; default?: boolean | "default" | undefined; defer?: boolean | "defer" | undefined; disabled?: boolean | "disabled" | undefined; download?: any; encType?: string | undefined; form?: string | undefined; formAction?: string | undefined; formEncType?: string | undefined; formMethod?: string | undefined; formNoValidate?: boolean | "formNoValidate" | 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; for?: 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 | "loop" | 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 | "multiple" | undefined; muted?: boolean | "muted" | undefined; name?: string | undefined; nonce?: string | undefined; noValidate?: boolean | "noValidate" | undefined; open?: boolean | "open" | undefined; optimum?: number | undefined; pattern?: string | undefined; placeholder?: string | undefined; playsInline?: boolean | "playsInline" | undefined; poster?: string | undefined; preload?: string | undefined; readOnly?: boolean | "readOnly" | undefined; rel?: string | undefined; required?: boolean | "required" | undefined; reversed?: boolean | "reversed" | undefined; rows?: number | undefined; rowSpan?: number | undefined; sandbox?: string | undefined; scope?: string | undefined; scoped?: boolean | "scoped" | undefined; scrolling?: string | undefined; seamless?: boolean | "seamless" | undefined; selected?: boolean | "selected" | 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 | ReadonlyArray | number | undefined; width?: number | string | undefined; wmode?: string | undefined; wrap?: string | undefined; } type HTMLAttributeReferrerPolicy = | "" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url"; type HTMLAttributeAnchorTarget = "_self" | "_blank" | "_parent" | "_top" | (string & {}); interface AnchorHTMLAttributes extends HTMLAttributes { download?: any; href?: string | undefined; hrefLang?: string | undefined; media?: string | undefined; ping?: string | undefined; rel?: 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; href?: string | undefined; hrefLang?: string | undefined; media?: string | undefined; referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; rel?: string | 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 { autoFocus?: boolean | "autoFocus" | undefined; disabled?: boolean | "disabled" | undefined; form?: string | undefined; formAction?: string | undefined; formEncType?: string | undefined; formMethod?: string | undefined; formNoValidate?: boolean | "formNoValidate" | undefined; formTarget?: string | undefined; name?: string | undefined; type?: "submit" | "reset" | "button" | undefined; value?: string | ReadonlyArray | 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 | ReadonlyArray | number | undefined; } interface DetailsHTMLAttributes extends HTMLAttributes { open?: boolean | "open" | undefined; onToggle?: SoAoU>; } interface DelHTMLAttributes extends HTMLAttributes { cite?: string | undefined; dateTime?: string | undefined; } interface DialogHTMLAttributes extends HTMLAttributes { onCancel?: SoAoU>; onClose?: SoAoU>; open?: boolean | "open" | 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 | "disabled" | 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 | "noValidate" | undefined; target?: string | undefined; } interface HtmlHTMLAttributes extends HTMLAttributes { manifest?: string | undefined; } interface IframeHTMLAttributes extends HTMLAttributes { allow?: string | undefined; allowFullScreen?: boolean | "allowFullScreen" | undefined; allowTransparency?: boolean | "allowTransparency" | 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 | "seamless" | undefined; src?: string | undefined; srcDoc?: string | undefined; width?: number | string | undefined; } interface ImgHTMLAttributes extends HTMLAttributes { alt?: string | undefined; crossOrigin?: "anonymous" | "use-credentials" | "" | undefined; 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 | "autoFocus" | undefined; capture?: boolean | "user" | "environment" | undefined; // https://www.w3.org/TR/html-media-capture/#the-capture-attribute checked?: boolean | "checked" | undefined; crossOrigin?: string | undefined; disabled?: boolean | "disabled" | undefined; enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined; form?: string | undefined; formAction?: string | undefined; formEncType?: string | undefined; formMethod?: string | undefined; formNoValidate?: boolean | "formNoValidate" | 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 | "multiple" | undefined; name?: string | undefined; pattern?: string | undefined; placeholder?: string | undefined; readOnly?: boolean | "readOnly" | undefined; required?: boolean | "required" | undefined; size?: number | undefined; src?: string | undefined; step?: number | string | undefined; type?: HTMLInputTypeAttribute | undefined; value?: string | ReadonlyArray | number | undefined; width?: number | string | undefined; onChange?: SoAoU>; } interface KeygenHTMLAttributes extends HTMLAttributes { autoFocus?: boolean | "autoFocus" | undefined; challenge?: string | undefined; disabled?: boolean | "disabled" | undefined; form?: string | undefined; keyType?: string | undefined; keyParams?: string | undefined; name?: string | undefined; } interface LabelHTMLAttributes extends HTMLAttributes { form?: string | undefined; htmlFor?: string | undefined; for?: string | undefined; } interface LiHTMLAttributes extends HTMLAttributes { value?: string | ReadonlyArray | number | undefined; } interface LinkHTMLAttributes extends HTMLAttributes { as?: string | undefined; crossOrigin?: string | undefined; href?: string | undefined; hrefLang?: string | undefined; integrity?: string | undefined; media?: string | undefined; imageSrcSet?: string | undefined; imageSizes?: string | undefined; referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; rel?: string | 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 | "autoPlay" | undefined; controls?: boolean | "controls" | undefined; controlsList?: string | undefined; crossOrigin?: string | undefined; loop?: boolean | "loop" | undefined; mediaGroup?: string | undefined; muted?: boolean | "muted" | undefined; playsInline?: boolean | "playsInline" | 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?: string | ReadonlyArray | 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 | "reversed" | undefined; start?: number | undefined; type?: "1" | "a" | "A" | "i" | "I" | undefined; } interface OptgroupHTMLAttributes extends HTMLAttributes { disabled?: boolean | "disabled" | undefined; label?: string | undefined; } interface OptionHTMLAttributes extends HTMLAttributes { disabled?: boolean | "disabled" | undefined; label?: string | undefined; selected?: boolean | "selected" | undefined; value?: string | ReadonlyArray | number | undefined; } interface OutputHTMLAttributes extends HTMLAttributes { form?: string | undefined; htmlFor?: string | undefined; for?: string | undefined; name?: string | undefined; } interface ParamHTMLAttributes extends HTMLAttributes { name?: string | undefined; value?: string | ReadonlyArray | number | undefined; } interface ProgressHTMLAttributes extends HTMLAttributes { max?: number | string | undefined; value?: string | ReadonlyArray | number | undefined; } interface SlotHTMLAttributes extends HTMLAttributes { name?: string | undefined; } interface ScriptHTMLAttributes extends HTMLAttributes { async?: boolean | "async" | undefined; /** @deprecated */ charSet?: string | undefined; crossOrigin?: string | undefined; defer?: boolean | "defer" | undefined; integrity?: string | undefined; noModule?: boolean | "noModule" | undefined; nonce?: string | undefined; referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; src?: string | undefined; type?: string | undefined; } interface SelectHTMLAttributes extends HTMLAttributes { autoComplete?: string | undefined; autoFocus?: boolean | "autoFocus" | undefined; disabled?: boolean | "disabled" | undefined; form?: string | undefined; multiple?: boolean | "multiple" | undefined; name?: string | undefined; required?: boolean | "required" | undefined; size?: number | undefined; value?: string | ReadonlyArray | number | undefined; onChange?: SoAoU>; } 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; nonce?: string | undefined; scoped?: boolean | "scoped" | 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 | "frame" | undefined; rules?: "none" | "groups" | "rows" | "columns" | "all" | undefined; summary?: string | undefined; width?: number | string | undefined; } interface TextareaHTMLAttributes extends HTMLAttributes { autoComplete?: string | undefined; autoFocus?: boolean | "autoFocus" | undefined; cols?: number | undefined; dirName?: string | undefined; disabled?: boolean | "disabled" | undefined; form?: string | undefined; maxLength?: number | undefined; minLength?: number | undefined; name?: string | undefined; placeholder?: string | undefined; readOnly?: boolean | "readOnly" | undefined; required?: boolean | "required" | undefined; rows?: number | undefined; value?: string | ReadonlyArray | number | undefined; wrap?: string | undefined; onChange?: SoAoU>; } 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 | "default" | undefined; kind?: string | undefined; label?: string | undefined; src?: string | undefined; srcLang?: string | undefined; } interface VideoHTMLAttributes extends MediaHTMLAttributes { height?: number | string | undefined; playsInline?: boolean | "playsInline" | undefined; poster?: string | undefined; width?: number | string | undefined; disablePictureInPicture?: boolean | "disablePictureInPicture" | undefined; disableRemotePlayback?: boolean | "disableRemotePlayback" | undefined; } // this list is "complete" in that it contains every SVG attribute // that Lestin 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 interface SVGAttributes extends AriaAttributes, DOMAttributes { // Attributes which also defined in HTMLAttributes // See comment in SVGDOMPropertyConfig.js class?: ClassNameOrNested | undefined; className?: ClassNameOrNested | 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; style?: CSSProperties | string | 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?: "anonymous" | "use-credentials" | "" | undefined; // 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 | "allowFullScreen" | undefined; allowpopups?: boolean | "allowpopups" | undefined; autoFocus?: boolean | "autoFocus" | undefined; autosize?: boolean | "autosize" | undefined; blinkfeatures?: string | undefined; disableblinkfeatures?: string | undefined; disableguestresize?: boolean | "disableguestresize" | undefined; disablewebsecurity?: boolean | "disablewebsecurity" | undefined; guestinstance?: string | undefined; httpreferrer?: string | undefined; nodeintegration?: boolean | "nodeintegration" | undefined; partition?: string | undefined; plugins?: boolean | "plugins" | undefined; preload?: string | undefined; src?: string | undefined; useragent?: string | undefined; webpreferences?: string | undefined; } // // Lestin.DOM // ---------------------------------------------------------------------- interface LestinHTML { a: DetailedHTMLFactory, HTMLAnchorElement>; abbr: DetailedHTMLFactory, HTMLElement>; address: DetailedHTMLFactory, HTMLElement>; area: DetailedHTMLFactory, HTMLAreaElement>; article: DetailedHTMLFactory, HTMLElement>; aside: DetailedHTMLFactory, HTMLElement>; audio: DetailedHTMLFactory, HTMLAudioElement>; b: DetailedHTMLFactory, HTMLElement>; base: DetailedHTMLFactory, HTMLBaseElement>; bdi: DetailedHTMLFactory, HTMLElement>; bdo: DetailedHTMLFactory, HTMLElement>; big: DetailedHTMLFactory, HTMLElement>; blockquote: DetailedHTMLFactory, HTMLQuoteElement>; body: DetailedHTMLFactory, HTMLBodyElement>; br: DetailedHTMLFactory, HTMLBRElement>; button: DetailedHTMLFactory, HTMLButtonElement>; canvas: DetailedHTMLFactory, HTMLCanvasElement>; caption: DetailedHTMLFactory, HTMLElement>; cite: DetailedHTMLFactory, HTMLElement>; code: DetailedHTMLFactory, HTMLElement>; col: DetailedHTMLFactory, HTMLTableColElement>; colgroup: DetailedHTMLFactory, HTMLTableColElement>; data: DetailedHTMLFactory, HTMLDataElement>; datalist: DetailedHTMLFactory, HTMLDataListElement>; dd: DetailedHTMLFactory, HTMLElement>; del: DetailedHTMLFactory, HTMLModElement>; details: DetailedHTMLFactory, HTMLDetailsElement>; dfn: DetailedHTMLFactory, HTMLElement>; dialog: DetailedHTMLFactory, HTMLDialogElement>; div: DetailedHTMLFactory, HTMLDivElement>; dl: DetailedHTMLFactory, HTMLDListElement>; dt: DetailedHTMLFactory, HTMLElement>; em: DetailedHTMLFactory, HTMLElement>; embed: DetailedHTMLFactory, HTMLEmbedElement>; fieldset: DetailedHTMLFactory, HTMLFieldSetElement>; figcaption: DetailedHTMLFactory, HTMLElement>; figure: DetailedHTMLFactory, HTMLElement>; footer: DetailedHTMLFactory, HTMLElement>; form: DetailedHTMLFactory, HTMLFormElement>; h1: DetailedHTMLFactory, HTMLHeadingElement>; h2: DetailedHTMLFactory, HTMLHeadingElement>; h3: DetailedHTMLFactory, HTMLHeadingElement>; h4: DetailedHTMLFactory, HTMLHeadingElement>; h5: DetailedHTMLFactory, HTMLHeadingElement>; h6: DetailedHTMLFactory, HTMLHeadingElement>; head: DetailedHTMLFactory, HTMLHeadElement>; header: DetailedHTMLFactory, HTMLElement>; hgroup: DetailedHTMLFactory, HTMLElement>; hr: DetailedHTMLFactory, HTMLHRElement>; html: DetailedHTMLFactory, HTMLHtmlElement>; i: DetailedHTMLFactory, HTMLElement>; iframe: DetailedHTMLFactory, HTMLIFrameElement>; img: DetailedHTMLFactory, HTMLImageElement>; input: DetailedHTMLFactory, HTMLInputElement>; ins: DetailedHTMLFactory, HTMLModElement>; kbd: DetailedHTMLFactory, HTMLElement>; keygen: DetailedHTMLFactory, HTMLElement>; label: DetailedHTMLFactory, HTMLLabelElement>; legend: DetailedHTMLFactory, HTMLLegendElement>; li: DetailedHTMLFactory, HTMLLIElement>; link: DetailedHTMLFactory, HTMLLinkElement>; main: DetailedHTMLFactory, HTMLElement>; map: DetailedHTMLFactory, HTMLMapElement>; mark: DetailedHTMLFactory, HTMLElement>; menu: DetailedHTMLFactory, HTMLElement>; menuitem: DetailedHTMLFactory, HTMLElement>; meta: DetailedHTMLFactory, HTMLMetaElement>; meter: DetailedHTMLFactory, HTMLMeterElement>; nav: DetailedHTMLFactory, HTMLElement>; noscript: DetailedHTMLFactory, HTMLElement>; object: DetailedHTMLFactory, HTMLObjectElement>; ol: DetailedHTMLFactory, HTMLOListElement>; optgroup: DetailedHTMLFactory, HTMLOptGroupElement>; option: DetailedHTMLFactory, HTMLOptionElement>; output: DetailedHTMLFactory, HTMLOutputElement>; p: DetailedHTMLFactory, HTMLParagraphElement>; param: DetailedHTMLFactory, HTMLParamElement>; picture: DetailedHTMLFactory, HTMLElement>; pre: DetailedHTMLFactory, HTMLPreElement>; progress: DetailedHTMLFactory, HTMLProgressElement>; q: DetailedHTMLFactory, HTMLQuoteElement>; rp: DetailedHTMLFactory, HTMLElement>; rt: DetailedHTMLFactory, HTMLElement>; ruby: DetailedHTMLFactory, HTMLElement>; s: DetailedHTMLFactory, HTMLElement>; samp: DetailedHTMLFactory, HTMLElement>; slot: DetailedHTMLFactory, HTMLSlotElement>; script: DetailedHTMLFactory, HTMLScriptElement>; section: DetailedHTMLFactory, HTMLElement>; select: DetailedHTMLFactory, HTMLSelectElement>; small: DetailedHTMLFactory, HTMLElement>; source: DetailedHTMLFactory, HTMLSourceElement>; span: DetailedHTMLFactory, HTMLSpanElement>; strong: DetailedHTMLFactory, HTMLElement>; style: DetailedHTMLFactory, HTMLStyleElement>; sub: DetailedHTMLFactory, HTMLElement>; summary: DetailedHTMLFactory, HTMLElement>; sup: DetailedHTMLFactory, HTMLElement>; table: DetailedHTMLFactory, HTMLTableElement>; template: DetailedHTMLFactory, HTMLTemplateElement>; tbody: DetailedHTMLFactory, HTMLTableSectionElement>; td: DetailedHTMLFactory, HTMLTableDataCellElement>; textarea: DetailedHTMLFactory, HTMLTextAreaElement>; tfoot: DetailedHTMLFactory, HTMLTableSectionElement>; th: DetailedHTMLFactory, HTMLTableHeaderCellElement>; thead: DetailedHTMLFactory, HTMLTableSectionElement>; time: DetailedHTMLFactory, HTMLTimeElement>; title: DetailedHTMLFactory, HTMLTitleElement>; tr: DetailedHTMLFactory, HTMLTableRowElement>; track: DetailedHTMLFactory, HTMLTrackElement>; u: DetailedHTMLFactory, HTMLElement>; ul: DetailedHTMLFactory, HTMLUListElement>; var: DetailedHTMLFactory, HTMLElement>; video: DetailedHTMLFactory, HTMLVideoElement>; wbr: DetailedHTMLFactory, HTMLElement>; // webview: DetailedHTMLFactory, HTMLWebViewElement>; } interface LestinSVG { 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; } interface LestinDOM extends LestinHTML, LestinSVG {} // // Lestin.PropTypes // ---------------------------------------------------------------------- interface LestinPropTypes { any: typeof PropTypes.any; array: typeof PropTypes.array; bool: typeof PropTypes.bool; func: typeof PropTypes.func; number: typeof PropTypes.number; object: typeof PropTypes.object; string: typeof PropTypes.string; node: typeof PropTypes.node; element: typeof PropTypes.element; instanceOf: typeof PropTypes.instanceOf; oneOf: typeof PropTypes.oneOf; oneOfType: typeof PropTypes.oneOfType; arrayOf: typeof PropTypes.arrayOf; objectOf: typeof PropTypes.objectOf; shape: typeof PropTypes.shape; exact: typeof PropTypes.exact; } // // Lestin.Children // ---------------------------------------------------------------------- /** * @deprecated - Use `typeof Lestin.Children` instead. */ // Sync with type of `const Children`. interface LestinChildren { map( children: C | ReadonlyArray, fn: (child: C, index: number) => T, ): C extends null | undefined ? C : Array>; forEach(children: C | ReadonlyArray, fn: (child: C, index: number) => void): void; count(children: any): number; only(children: C): C extends any[] ? never : C; toArray(children: LestinNode | LestinNode[]): Array>; } // // Browser Interfaces // https://github.com/nikeee/2048-typescript/blob/master/2048/js/touch.d.ts // ---------------------------------------------------------------------- interface AbstractView { styleMedia: StyleMedia; document: Document; } interface Touch { identifier: number; target: EventTarget; screenX: number; screenY: number; clientX: number; clientY: number; pageX: number; pageY: number; } interface TouchList { [index: number]: Touch; length: number; item(index: number): Touch; identifiedTouch(identifier: number): Touch; } } declare global { namespace JSX { interface Element extends Lestin.LestinElement {} interface ElementAttributesProperty { props: {}; } interface ElementChildrenAttribute { children: {}; } interface IntrinsicAttributes extends Lestin.Attributes {} interface IntrinsicElements { // HTML a: Lestin.DetailedHTMLProps, HTMLAnchorElement>; abbr: Lestin.DetailedHTMLProps, HTMLElement>; address: Lestin.DetailedHTMLProps, HTMLElement>; area: Lestin.DetailedHTMLProps, HTMLAreaElement>; article: Lestin.DetailedHTMLProps, HTMLElement>; aside: Lestin.DetailedHTMLProps, HTMLElement>; audio: Lestin.DetailedHTMLProps, HTMLAudioElement>; b: Lestin.DetailedHTMLProps, HTMLElement>; base: Lestin.DetailedHTMLProps, HTMLBaseElement>; bdi: Lestin.DetailedHTMLProps, HTMLElement>; bdo: Lestin.DetailedHTMLProps, HTMLElement>; big: Lestin.DetailedHTMLProps, HTMLElement>; blockquote: Lestin.DetailedHTMLProps< Lestin.BlockquoteHTMLAttributes, HTMLQuoteElement >; body: Lestin.DetailedHTMLProps, HTMLBodyElement>; br: Lestin.DetailedHTMLProps, HTMLBRElement>; button: Lestin.DetailedHTMLProps< Lestin.ButtonHTMLAttributes, HTMLButtonElement >; canvas: Lestin.DetailedHTMLProps< Lestin.CanvasHTMLAttributes, HTMLCanvasElement >; caption: Lestin.DetailedHTMLProps, HTMLElement>; cite: Lestin.DetailedHTMLProps, HTMLElement>; code: Lestin.DetailedHTMLProps, HTMLElement>; col: Lestin.DetailedHTMLProps, HTMLTableColElement>; colgroup: Lestin.DetailedHTMLProps< Lestin.ColgroupHTMLAttributes, HTMLTableColElement >; data: Lestin.DetailedHTMLProps, HTMLDataElement>; datalist: Lestin.DetailedHTMLProps< Lestin.HTMLAttributes, HTMLDataListElement >; dd: Lestin.DetailedHTMLProps, HTMLElement>; del: Lestin.DetailedHTMLProps, HTMLModElement>; details: Lestin.DetailedHTMLProps< Lestin.DetailsHTMLAttributes, HTMLDetailsElement >; dfn: Lestin.DetailedHTMLProps, HTMLElement>; dialog: Lestin.DetailedHTMLProps< Lestin.DialogHTMLAttributes, HTMLDialogElement >; div: Lestin.DetailedHTMLProps, HTMLDivElement>; dl: Lestin.DetailedHTMLProps, HTMLDListElement>; dt: Lestin.DetailedHTMLProps, HTMLElement>; em: Lestin.DetailedHTMLProps, HTMLElement>; embed: Lestin.DetailedHTMLProps, HTMLEmbedElement>; fieldset: Lestin.DetailedHTMLProps< Lestin.FieldsetHTMLAttributes, HTMLFieldSetElement >; figcaption: Lestin.DetailedHTMLProps, HTMLElement>; figure: Lestin.DetailedHTMLProps, HTMLElement>; footer: Lestin.DetailedHTMLProps, HTMLElement>; form: Lestin.DetailedHTMLProps, HTMLFormElement>; h1: Lestin.DetailedHTMLProps, HTMLHeadingElement>; h2: Lestin.DetailedHTMLProps, HTMLHeadingElement>; h3: Lestin.DetailedHTMLProps, HTMLHeadingElement>; h4: Lestin.DetailedHTMLProps, HTMLHeadingElement>; h5: Lestin.DetailedHTMLProps, HTMLHeadingElement>; h6: Lestin.DetailedHTMLProps, HTMLHeadingElement>; head: Lestin.DetailedHTMLProps, HTMLHeadElement>; header: Lestin.DetailedHTMLProps, HTMLElement>; hgroup: Lestin.DetailedHTMLProps, HTMLElement>; hr: Lestin.DetailedHTMLProps, HTMLHRElement>; html: Lestin.DetailedHTMLProps, HTMLHtmlElement>; i: Lestin.DetailedHTMLProps, HTMLElement>; iframe: Lestin.DetailedHTMLProps< Lestin.IframeHTMLAttributes, HTMLIFrameElement >; img: Lestin.DetailedHTMLProps, HTMLImageElement>; input: Lestin.DetailedHTMLProps, HTMLInputElement>; ins: Lestin.DetailedHTMLProps, HTMLModElement>; kbd: Lestin.DetailedHTMLProps, HTMLElement>; keygen: Lestin.DetailedHTMLProps, HTMLElement>; label: Lestin.DetailedHTMLProps, HTMLLabelElement>; legend: Lestin.DetailedHTMLProps, HTMLLegendElement>; li: Lestin.DetailedHTMLProps, HTMLLIElement>; link: Lestin.DetailedHTMLProps, HTMLLinkElement>; main: Lestin.DetailedHTMLProps, HTMLElement>; map: Lestin.DetailedHTMLProps, HTMLMapElement>; mark: Lestin.DetailedHTMLProps, HTMLElement>; menu: Lestin.DetailedHTMLProps, HTMLElement>; menuitem: Lestin.DetailedHTMLProps, HTMLElement>; meta: Lestin.DetailedHTMLProps, HTMLMetaElement>; meter: Lestin.DetailedHTMLProps, HTMLMeterElement>; nav: Lestin.DetailedHTMLProps, HTMLElement>; noindex: Lestin.DetailedHTMLProps, HTMLElement>; noscript: Lestin.DetailedHTMLProps, HTMLElement>; object: Lestin.DetailedHTMLProps< Lestin.ObjectHTMLAttributes, HTMLObjectElement >; ol: Lestin.DetailedHTMLProps, HTMLOListElement>; optgroup: Lestin.DetailedHTMLProps< Lestin.OptgroupHTMLAttributes, HTMLOptGroupElement >; option: Lestin.DetailedHTMLProps< Lestin.OptionHTMLAttributes, HTMLOptionElement >; output: Lestin.DetailedHTMLProps< Lestin.OutputHTMLAttributes, HTMLOutputElement >; p: Lestin.DetailedHTMLProps, HTMLParagraphElement>; param: Lestin.DetailedHTMLProps, HTMLParamElement>; picture: Lestin.DetailedHTMLProps, HTMLElement>; pre: Lestin.DetailedHTMLProps, HTMLPreElement>; progress: Lestin.DetailedHTMLProps< Lestin.ProgressHTMLAttributes, HTMLProgressElement >; q: Lestin.DetailedHTMLProps, HTMLQuoteElement>; rp: Lestin.DetailedHTMLProps, HTMLElement>; rt: Lestin.DetailedHTMLProps, HTMLElement>; ruby: Lestin.DetailedHTMLProps, HTMLElement>; s: Lestin.DetailedHTMLProps, HTMLElement>; samp: Lestin.DetailedHTMLProps, HTMLElement>; slot: Lestin.DetailedHTMLProps, HTMLSlotElement>; script: Lestin.DetailedHTMLProps< Lestin.ScriptHTMLAttributes, HTMLScriptElement >; section: Lestin.DetailedHTMLProps, HTMLElement>; select: Lestin.DetailedHTMLProps< Lestin.SelectHTMLAttributes, HTMLSelectElement >; small: Lestin.DetailedHTMLProps, HTMLElement>; source: Lestin.DetailedHTMLProps< Lestin.SourceHTMLAttributes, HTMLSourceElement >; span: Lestin.DetailedHTMLProps, HTMLSpanElement>; strong: Lestin.DetailedHTMLProps, HTMLElement>; style: Lestin.DetailedHTMLProps, HTMLStyleElement>; sub: Lestin.DetailedHTMLProps, HTMLElement>; summary: Lestin.DetailedHTMLProps, HTMLElement>; sup: Lestin.DetailedHTMLProps, HTMLElement>; table: Lestin.DetailedHTMLProps, HTMLTableElement>; template: Lestin.DetailedHTMLProps< Lestin.HTMLAttributes, HTMLTemplateElement >; tbody: Lestin.DetailedHTMLProps< Lestin.HTMLAttributes, HTMLTableSectionElement >; td: Lestin.DetailedHTMLProps< Lestin.TdHTMLAttributes, HTMLTableDataCellElement >; textarea: Lestin.DetailedHTMLProps< Lestin.TextareaHTMLAttributes, HTMLTextAreaElement >; tfoot: Lestin.DetailedHTMLProps< Lestin.HTMLAttributes, HTMLTableSectionElement >; th: Lestin.DetailedHTMLProps< Lestin.ThHTMLAttributes, HTMLTableHeaderCellElement >; thead: Lestin.DetailedHTMLProps< Lestin.HTMLAttributes, HTMLTableSectionElement >; time: Lestin.DetailedHTMLProps, HTMLTimeElement>; title: Lestin.DetailedHTMLProps, HTMLTitleElement>; tr: Lestin.DetailedHTMLProps, HTMLTableRowElement>; track: Lestin.DetailedHTMLProps, HTMLTrackElement>; u: Lestin.DetailedHTMLProps, HTMLElement>; ul: Lestin.DetailedHTMLProps, HTMLUListElement>; var: Lestin.DetailedHTMLProps, HTMLElement>; video: Lestin.DetailedHTMLProps, HTMLVideoElement>; wbr: Lestin.DetailedHTMLProps, HTMLElement>; // webview: Lestin.DetailedHTMLProps, HTMLWebViewElement>; // SVG svg: Lestin.SVGProps; animate: Lestin.SVGProps; // TODO: It is SVGAnimateElement but is not in TypeScript's lib.dom.d.ts for now. animateMotion: Lestin.SVGProps; animateTransform: Lestin.SVGProps; // TODO: It is SVGAnimateTransformElement but is not in TypeScript's lib.dom.d.ts for now. circle: Lestin.SVGProps; clipPath: Lestin.SVGProps; defs: Lestin.SVGProps; desc: Lestin.SVGProps; ellipse: Lestin.SVGProps; feBlend: Lestin.SVGProps; feColorMatrix: Lestin.SVGProps; feComponentTransfer: Lestin.SVGProps; feComposite: Lestin.SVGProps; feConvolveMatrix: Lestin.SVGProps; feDiffuseLighting: Lestin.SVGProps; feDisplacementMap: Lestin.SVGProps; feDistantLight: Lestin.SVGProps; feDropShadow: Lestin.SVGProps; feFlood: Lestin.SVGProps; feFuncA: Lestin.SVGProps; feFuncB: Lestin.SVGProps; feFuncG: Lestin.SVGProps; feFuncR: Lestin.SVGProps; feGaussianBlur: Lestin.SVGProps; feImage: Lestin.SVGProps; feMerge: Lestin.SVGProps; feMergeNode: Lestin.SVGProps; feMorphology: Lestin.SVGProps; feOffset: Lestin.SVGProps; fePointLight: Lestin.SVGProps; feSpecularLighting: Lestin.SVGProps; feSpotLight: Lestin.SVGProps; feTile: Lestin.SVGProps; feTurbulence: Lestin.SVGProps; filter: Lestin.SVGProps; foreignObject: Lestin.SVGProps; g: Lestin.SVGProps; image: Lestin.SVGProps; line: Lestin.SVGProps; linearGradient: Lestin.SVGProps; marker: Lestin.SVGProps; mask: Lestin.SVGProps; metadata: Lestin.SVGProps; mpath: Lestin.SVGProps; path: Lestin.SVGProps; pattern: Lestin.SVGProps; polygon: Lestin.SVGProps; polyline: Lestin.SVGProps; radialGradient: Lestin.SVGProps; rect: Lestin.SVGProps; stop: Lestin.SVGProps; switch: Lestin.SVGProps; symbol: Lestin.SVGProps; text: Lestin.SVGProps; textPath: Lestin.SVGProps; tspan: Lestin.SVGProps; use: Lestin.SVGProps; view: Lestin.SVGProps; } } }