preact
Version:
Fast 3kb React-compatible Virtual DOM library.
1,096 lines (1,056 loc) • 44.8 kB
TypeScript
// Users who only use Preact for SSR might not specify "dom" in their lib in tsconfig.json
/// <reference lib="dom" />
import {
ClassAttributes,
Component,
ComponentChild,
ComponentType,
FunctionComponent,
PreactDOMAttributes,
VNode
} from './index';
type Defaultize<Props, Defaults> =
// Distribute over unions
Props extends any // Make any properties included in Default optional
? Partial<Pick<Props, Extract<keyof Props, keyof Defaults>>> & // Include the remaining properties from Props
Pick<Props, Exclude<keyof Props, keyof Defaults>>
: never;
export namespace JSXInternal {
export type LibraryManagedAttributes<Component, Props> = Component extends {
defaultProps: infer Defaults;
}
? Defaultize<Props, Defaults>
: Props;
export interface IntrinsicAttributes {
key?: any;
}
export type ElementType<P = any> =
| {
[K in keyof IntrinsicElements]: P extends IntrinsicElements[K]
? K
: never;
}[keyof IntrinsicElements]
| ComponentType<P>;
export interface Element extends VNode<any> {}
export type ElementClass = Component<any, any> | FunctionComponent<any>;
export interface ElementAttributesProperty {
props: any;
}
export interface ElementChildrenAttribute {
children: any;
}
export type DOMCSSProperties = {
[key in keyof Omit<
CSSStyleDeclaration,
| 'item'
| 'setProperty'
| 'removeProperty'
| 'getPropertyValue'
| 'getPropertyPriority'
>]?: string | number | null | undefined;
};
export type AllCSSProperties = {
[key: string]: string | number | null | undefined;
};
export interface CSSProperties extends AllCSSProperties, DOMCSSProperties {
cssText?: string | null;
}
export interface SignalLike<T> {
value: T;
peek(): T;
subscribe(fn: (value: T) => void): () => void;
}
export interface SVGAttributes<Target extends EventTarget = SVGElement>
extends HTMLAttributes<Target> {
accentHeight?: number | string | SignalLike<number | string>;
accumulate?: 'none' | 'sum' | SignalLike<'none' | 'sum'>;
additive?: 'replace' | 'sum' | SignalLike<'replace' | 'sum'>;
alignmentBaseline?:
| 'auto'
| 'baseline'
| 'before-edge'
| 'text-before-edge'
| 'middle'
| 'central'
| 'after-edge'
| 'text-after-edge'
| 'ideographic'
| 'alphabetic'
| 'hanging'
| 'mathematical'
| 'inherit'
| SignalLike<
| 'auto'
| 'baseline'
| 'before-edge'
| 'text-before-edge'
| 'middle'
| 'central'
| 'after-edge'
| 'text-after-edge'
| 'ideographic'
| 'alphabetic'
| 'hanging'
| 'mathematical'
| 'inherit'
>;
allowReorder?: 'no' | 'yes' | SignalLike<'no' | 'yes'>;
alphabetic?: number | string | SignalLike<number | string>;
amplitude?: number | string | SignalLike<number | string>;
arabicForm?:
| 'initial'
| 'medial'
| 'terminal'
| 'isolated'
| SignalLike<'initial' | 'medial' | 'terminal' | 'isolated'>;
ascent?: number | string | SignalLike<number | string>;
attributeName?: string | SignalLike<string>;
attributeType?: string | SignalLike<string>;
autoReverse?: number | string | SignalLike<number | string>;
azimuth?: number | string | SignalLike<number | string>;
baseFrequency?: number | string | SignalLike<number | string>;
baselineShift?: number | string | SignalLike<number | string>;
baseProfile?: number | string | SignalLike<number | string>;
bbox?: number | string | SignalLike<number | string>;
begin?: number | string | SignalLike<number | string>;
bias?: number | string | SignalLike<number | string>;
by?: number | string | SignalLike<number | string>;
calcMode?: number | string | SignalLike<number | string>;
capHeight?: number | string | SignalLike<number | string>;
clip?: number | string | SignalLike<number | string>;
clipPath?: string | SignalLike<string>;
clipPathUnits?: number | string | SignalLike<number | string>;
clipRule?: number | string | SignalLike<number | string>;
colorInterpolation?: number | string | SignalLike<number | string>;
colorInterpolationFilters?:
| 'auto'
| 'sRGB'
| 'linearRGB'
| 'inherit'
| SignalLike<'auto' | 'sRGB' | 'linearRGB' | 'inherit'>;
colorProfile?: number | string | SignalLike<number | string>;
colorRendering?: number | string | SignalLike<number | string>;
contentScriptType?: number | string | SignalLike<number | string>;
contentStyleType?: number | string | SignalLike<number | string>;
cursor?: number | string | SignalLike<number | string>;
cx?: number | string | SignalLike<number | string>;
cy?: number | string | SignalLike<number | string>;
d?: string | SignalLike<string>;
decelerate?: number | string | SignalLike<number | string>;
descent?: number | string | SignalLike<number | string>;
diffuseConstant?: number | string | SignalLike<number | string>;
direction?: number | string | SignalLike<number | string>;
display?: number | string | SignalLike<number | string>;
divisor?: number | string | SignalLike<number | string>;
dominantBaseline?: number | string | SignalLike<number | string>;
dur?: number | string | SignalLike<number | string>;
dx?: number | string | SignalLike<number | string>;
dy?: number | string | SignalLike<number | string>;
edgeMode?: number | string | SignalLike<number | string>;
elevation?: number | string | SignalLike<number | string>;
enableBackground?: number | string | SignalLike<number | string>;
end?: number | string | SignalLike<number | string>;
exponent?: number | string | SignalLike<number | string>;
externalResourcesRequired?: number | string | SignalLike<number | string>;
fill?: string | SignalLike<string>;
fillOpacity?: number | string | SignalLike<number | string>;
fillRule?:
| 'nonzero'
| 'evenodd'
| 'inherit'
| SignalLike<'nonzero' | 'evenodd' | 'inherit'>;
filter?: string | SignalLike<string>;
filterRes?: number | string | SignalLike<number | string>;
filterUnits?: number | string | SignalLike<number | string>;
floodColor?: number | string | SignalLike<number | string>;
floodOpacity?: number | string | SignalLike<number | string>;
focusable?: number | string | SignalLike<number | string>;
fontFamily?: string | SignalLike<string>;
fontSize?: number | string | SignalLike<number | string>;
fontSizeAdjust?: number | string | SignalLike<number | string>;
fontStretch?: number | string | SignalLike<number | string>;
fontStyle?: number | string | SignalLike<number | string>;
fontVariant?: number | string | SignalLike<number | string>;
fontWeight?: number | string | SignalLike<number | string>;
format?: number | string | SignalLike<number | string>;
from?: number | string | SignalLike<number | string>;
fx?: number | string | SignalLike<number | string>;
fy?: number | string | SignalLike<number | string>;
g1?: number | string | SignalLike<number | string>;
g2?: number | string | SignalLike<number | string>;
glyphName?: number | string | SignalLike<number | string>;
glyphOrientationHorizontal?: number | string | SignalLike<number | string>;
glyphOrientationVertical?: number | string | SignalLike<number | string>;
glyphRef?: number | string | SignalLike<number | string>;
gradientTransform?: string | SignalLike<string>;
gradientUnits?: string | SignalLike<string>;
hanging?: number | string | SignalLike<number | string>;
horizAdvX?: number | string | SignalLike<number | string>;
horizOriginX?: number | string | SignalLike<number | string>;
ideographic?: number | string | SignalLike<number | string>;
imageRendering?: number | string | SignalLike<number | string>;
in2?: number | string | SignalLike<number | string>;
in?: string | SignalLike<string>;
intercept?: number | string | SignalLike<number | string>;
k1?: number | string | SignalLike<number | string>;
k2?: number | string | SignalLike<number | string>;
k3?: number | string | SignalLike<number | string>;
k4?: number | string | SignalLike<number | string>;
k?: number | string | SignalLike<number | string>;
kernelMatrix?: number | string | SignalLike<number | string>;
kernelUnitLength?: number | string | SignalLike<number | string>;
kerning?: number | string | SignalLike<number | string>;
keyPoints?: number | string | SignalLike<number | string>;
keySplines?: number | string | SignalLike<number | string>;
keyTimes?: number | string | SignalLike<number | string>;
lengthAdjust?: number | string | SignalLike<number | string>;
letterSpacing?: number | string | SignalLike<number | string>;
lightingColor?: number | string | SignalLike<number | string>;
limitingConeAngle?: number | string | SignalLike<number | string>;
local?: number | string | SignalLike<number | string>;
markerEnd?: string | SignalLike<string>;
markerHeight?: number | string | SignalLike<number | string>;
markerMid?: string | SignalLike<string>;
markerStart?: string | SignalLike<string>;
markerUnits?: number | string | SignalLike<number | string>;
markerWidth?: number | string | SignalLike<number | string>;
mask?: string | SignalLike<string>;
maskContentUnits?: number | string | SignalLike<number | string>;
maskUnits?: number | string | SignalLike<number | string>;
mathematical?: number | string | SignalLike<number | string>;
mode?: number | string | SignalLike<number | string>;
numOctaves?: number | string | SignalLike<number | string>;
offset?: number | string | SignalLike<number | string>;
opacity?: number | string | SignalLike<number | string>;
operator?: number | string | SignalLike<number | string>;
order?: number | string | SignalLike<number | string>;
orient?: number | string | SignalLike<number | string>;
orientation?: number | string | SignalLike<number | string>;
origin?: number | string | SignalLike<number | string>;
overflow?: number | string | SignalLike<number | string>;
overlinePosition?: number | string | SignalLike<number | string>;
overlineThickness?: number | string | SignalLike<number | string>;
paintOrder?: number | string | SignalLike<number | string>;
panose1?: number | string | SignalLike<number | string>;
pathLength?: number | string | SignalLike<number | string>;
patternContentUnits?: string | SignalLike<string>;
patternTransform?: number | string | SignalLike<number | string>;
patternUnits?: string | SignalLike<string>;
pointerEvents?: number | string | SignalLike<number | string>;
points?: string | SignalLike<string>;
pointsAtX?: number | string | SignalLike<number | string>;
pointsAtY?: number | string | SignalLike<number | string>;
pointsAtZ?: number | string | SignalLike<number | string>;
preserveAlpha?: number | string | SignalLike<number | string>;
preserveAspectRatio?: string | SignalLike<string>;
primitiveUnits?: number | string | SignalLike<number | string>;
r?: number | string | SignalLike<number | string>;
radius?: number | string | SignalLike<number | string>;
refX?: number | string | SignalLike<number | string>;
refY?: number | string | SignalLike<number | string>;
renderingIntent?: number | string | SignalLike<number | string>;
repeatCount?: number | string | SignalLike<number | string>;
repeatDur?: number | string | SignalLike<number | string>;
requiredExtensions?: number | string | SignalLike<number | string>;
requiredFeatures?: number | string | SignalLike<number | string>;
restart?: number | string | SignalLike<number | string>;
result?: string | SignalLike<string>;
rotate?: number | string | SignalLike<number | string>;
rx?: number | string | SignalLike<number | string>;
ry?: number | string | SignalLike<number | string>;
scale?: number | string | SignalLike<number | string>;
seed?: number | string | SignalLike<number | string>;
shapeRendering?: number | string | SignalLike<number | string>;
slope?: number | string | SignalLike<number | string>;
spacing?: number | string | SignalLike<number | string>;
specularConstant?: number | string | SignalLike<number | string>;
specularExponent?: number | string | SignalLike<number | string>;
speed?: number | string | SignalLike<number | string>;
spreadMethod?: string | SignalLike<string>;
startOffset?: number | string | SignalLike<number | string>;
stdDeviation?: number | string | SignalLike<number | string>;
stemh?: number | string | SignalLike<number | string>;
stemv?: number | string | SignalLike<number | string>;
stitchTiles?: number | string | SignalLike<number | string>;
stopColor?: string | SignalLike<string>;
stopOpacity?: number | string | SignalLike<number | string>;
strikethroughPosition?: number | string | SignalLike<number | string>;
strikethroughThickness?: number | string | SignalLike<number | string>;
string?: number | string | SignalLike<number | string>;
stroke?: string | SignalLike<string>;
strokeDasharray?: string | number | SignalLike<number | string>;
strokeDashoffset?: string | number | SignalLike<number | string>;
strokeLinecap?:
| 'butt'
| 'round'
| 'square'
| 'inherit'
| SignalLike<'butt' | 'round' | 'square' | 'inherit'>;
strokeLinejoin?:
| 'miter'
| 'round'
| 'bevel'
| 'inherit'
| SignalLike<'miter' | 'round' | 'bevel' | 'inherit'>;
strokeMiterlimit?: string | number | SignalLike<number | string>;
strokeOpacity?: number | string | SignalLike<number | string>;
strokeWidth?: number | string | SignalLike<number | string>;
surfaceScale?: number | string | SignalLike<number | string>;
systemLanguage?: number | string | SignalLike<number | string>;
tableValues?: number | string | SignalLike<number | string>;
targetX?: number | string | SignalLike<number | string>;
targetY?: number | string | SignalLike<number | string>;
textAnchor?: string | SignalLike<string>;
textDecoration?: number | string | SignalLike<number | string>;
textLength?: number | string | SignalLike<number | string>;
textRendering?: number | string | SignalLike<number | string>;
to?: number | string | SignalLike<number | string>;
transform?: string | SignalLike<string>;
u1?: number | string | SignalLike<number | string>;
u2?: number | string | SignalLike<number | string>;
underlinePosition?: number | string | SignalLike<number | string>;
underlineThickness?: number | string | SignalLike<number | string>;
unicode?: number | string | SignalLike<number | string>;
unicodeBidi?: number | string | SignalLike<number | string>;
unicodeRange?: number | string | SignalLike<number | string>;
unitsPerEm?: number | string | SignalLike<number | string>;
vAlphabetic?: number | string | SignalLike<number | string>;
values?: string | SignalLike<string>;
vectorEffect?: number | string | SignalLike<number | string>;
version?: string | SignalLike<string>;
vertAdvY?: number | string | SignalLike<number | string>;
vertOriginX?: number | string | SignalLike<number | string>;
vertOriginY?: number | string | SignalLike<number | string>;
vHanging?: number | string | SignalLike<number | string>;
vIdeographic?: number | string | SignalLike<number | string>;
viewBox?: string | SignalLike<string>;
viewTarget?: number | string | SignalLike<number | string>;
visibility?: number | string | SignalLike<number | string>;
vMathematical?: number | string | SignalLike<number | string>;
widths?: number | string | SignalLike<number | string>;
wordSpacing?: number | string | SignalLike<number | string>;
writingMode?: number | string | SignalLike<number | string>;
x1?: number | string | SignalLike<number | string>;
x2?: number | string | SignalLike<number | string>;
x?: number | string | SignalLike<number | string>;
xChannelSelector?: string | SignalLike<string>;
xHeight?: number | string | SignalLike<number | string>;
xlinkActuate?: string | SignalLike<string>;
xlinkArcrole?: string | SignalLike<string>;
xlinkHref?: string | SignalLike<string>;
xlinkRole?: string | SignalLike<string>;
xlinkShow?: string | SignalLike<string>;
xlinkTitle?: string | SignalLike<string>;
xlinkType?: string | SignalLike<string>;
xmlBase?: string | SignalLike<string>;
xmlLang?: string | SignalLike<string>;
xmlns?: string | SignalLike<string>;
xmlnsXlink?: string | SignalLike<string>;
xmlSpace?: string | SignalLike<string>;
y1?: number | string | SignalLike<number | string>;
y2?: number | string | SignalLike<number | string>;
y?: number | string | SignalLike<number | string>;
yChannelSelector?: string | SignalLike<string>;
z?: number | string | SignalLike<number | string>;
zoomAndPan?: string | SignalLike<string>;
}
export interface PathAttributes {
d: string;
}
export type TargetedEvent<
Target extends EventTarget = EventTarget,
TypedEvent extends Event = Event
> = Omit<TypedEvent, 'currentTarget'> & {
readonly currentTarget: Target;
};
export type TargetedAnimationEvent<Target extends EventTarget> =
TargetedEvent<Target, AnimationEvent>;
export type TargetedClipboardEvent<Target extends EventTarget> =
TargetedEvent<Target, ClipboardEvent>;
export type TargetedCompositionEvent<Target extends EventTarget> =
TargetedEvent<Target, CompositionEvent>;
export type TargetedDragEvent<Target extends EventTarget> = TargetedEvent<
Target,
DragEvent
>;
export type TargetedFocusEvent<Target extends EventTarget> = TargetedEvent<
Target,
FocusEvent
>;
export type TargetedKeyboardEvent<Target extends EventTarget> = TargetedEvent<
Target,
KeyboardEvent
>;
export type TargetedMouseEvent<Target extends EventTarget> = TargetedEvent<
Target,
MouseEvent
>;
export type TargetedPointerEvent<Target extends EventTarget> = TargetedEvent<
Target,
PointerEvent
>;
export type TargetedTouchEvent<Target extends EventTarget> = TargetedEvent<
Target,
TouchEvent
>;
export type TargetedTransitionEvent<Target extends EventTarget> =
TargetedEvent<Target, TransitionEvent>;
export type TargetedUIEvent<Target extends EventTarget> = TargetedEvent<
Target,
UIEvent
>;
export type TargetedWheelEvent<Target extends EventTarget> = TargetedEvent<
Target,
WheelEvent
>;
export interface EventHandler<E extends TargetedEvent> {
/**
* The `this` keyword always points to the DOM element the event handler
* was invoked on. See: https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Event_handlers#Event_handlers_parameters_this_binding_and_the_return_value
*/
(this: never, event: E): void;
}
export type AnimationEventHandler<Target extends EventTarget> = EventHandler<
TargetedAnimationEvent<Target>
>;
export type ClipboardEventHandler<Target extends EventTarget> = EventHandler<
TargetedClipboardEvent<Target>
>;
export type CompositionEventHandler<Target extends EventTarget> =
EventHandler<TargetedCompositionEvent<Target>>;
export type DragEventHandler<Target extends EventTarget> = EventHandler<
TargetedDragEvent<Target>
>;
export type FocusEventHandler<Target extends EventTarget> = EventHandler<
TargetedFocusEvent<Target>
>;
export type GenericEventHandler<Target extends EventTarget> = EventHandler<
TargetedEvent<Target>
>;
export type KeyboardEventHandler<Target extends EventTarget> = EventHandler<
TargetedKeyboardEvent<Target>
>;
export type MouseEventHandler<Target extends EventTarget> = EventHandler<
TargetedMouseEvent<Target>
>;
export type PointerEventHandler<Target extends EventTarget> = EventHandler<
TargetedPointerEvent<Target>
>;
export type TouchEventHandler<Target extends EventTarget> = EventHandler<
TargetedTouchEvent<Target>
>;
export type TransitionEventHandler<Target extends EventTarget> = EventHandler<
TargetedTransitionEvent<Target>
>;
export type UIEventHandler<Target extends EventTarget> = EventHandler<
TargetedUIEvent<Target>
>;
export type WheelEventHandler<Target extends EventTarget> = EventHandler<
TargetedWheelEvent<Target>
>;
export interface DOMAttributes<Target extends EventTarget>
extends PreactDOMAttributes {
// Image Events
onLoad?: GenericEventHandler<Target>;
onLoadCapture?: GenericEventHandler<Target>;
onError?: GenericEventHandler<Target>;
onErrorCapture?: GenericEventHandler<Target>;
// Clipboard Events
onCopy?: ClipboardEventHandler<Target>;
onCopyCapture?: ClipboardEventHandler<Target>;
onCut?: ClipboardEventHandler<Target>;
onCutCapture?: ClipboardEventHandler<Target>;
onPaste?: ClipboardEventHandler<Target>;
onPasteCapture?: ClipboardEventHandler<Target>;
// Composition Events
onCompositionEnd?: CompositionEventHandler<Target>;
onCompositionEndCapture?: CompositionEventHandler<Target>;
onCompositionStart?: CompositionEventHandler<Target>;
onCompositionStartCapture?: CompositionEventHandler<Target>;
onCompositionUpdate?: CompositionEventHandler<Target>;
onCompositionUpdateCapture?: CompositionEventHandler<Target>;
// Details Events
onToggle?: GenericEventHandler<Target>;
// Focus Events
onFocus?: FocusEventHandler<Target>;
onFocusCapture?: FocusEventHandler<Target>;
onfocusin?: FocusEventHandler<Target>;
onfocusinCapture?: FocusEventHandler<Target>;
onfocusout?: FocusEventHandler<Target>;
onfocusoutCapture?: FocusEventHandler<Target>;
onBlur?: FocusEventHandler<Target>;
onBlurCapture?: FocusEventHandler<Target>;
// Form Events
onChange?: GenericEventHandler<Target>;
onChangeCapture?: GenericEventHandler<Target>;
onInput?: GenericEventHandler<Target>;
onInputCapture?: GenericEventHandler<Target>;
onBeforeInput?: GenericEventHandler<Target>;
onBeforeInputCapture?: GenericEventHandler<Target>;
onSearch?: GenericEventHandler<Target>;
onSearchCapture?: GenericEventHandler<Target>;
onSubmit?: GenericEventHandler<Target>;
onSubmitCapture?: GenericEventHandler<Target>;
onInvalid?: GenericEventHandler<Target>;
onInvalidCapture?: GenericEventHandler<Target>;
onReset?: GenericEventHandler<Target>;
onResetCapture?: GenericEventHandler<Target>;
onFormData?: GenericEventHandler<Target>;
onFormDataCapture?: GenericEventHandler<Target>;
// Keyboard Events
onKeyDown?: KeyboardEventHandler<Target>;
onKeyDownCapture?: KeyboardEventHandler<Target>;
onKeyPress?: KeyboardEventHandler<Target>;
onKeyPressCapture?: KeyboardEventHandler<Target>;
onKeyUp?: KeyboardEventHandler<Target>;
onKeyUpCapture?: KeyboardEventHandler<Target>;
// Media Events
onAbort?: GenericEventHandler<Target>;
onAbortCapture?: GenericEventHandler<Target>;
onCanPlay?: GenericEventHandler<Target>;
onCanPlayCapture?: GenericEventHandler<Target>;
onCanPlayThrough?: GenericEventHandler<Target>;
onCanPlayThroughCapture?: GenericEventHandler<Target>;
onDurationChange?: GenericEventHandler<Target>;
onDurationChangeCapture?: GenericEventHandler<Target>;
onEmptied?: GenericEventHandler<Target>;
onEmptiedCapture?: GenericEventHandler<Target>;
onEncrypted?: GenericEventHandler<Target>;
onEncryptedCapture?: GenericEventHandler<Target>;
onEnded?: GenericEventHandler<Target>;
onEndedCapture?: GenericEventHandler<Target>;
onLoadedData?: GenericEventHandler<Target>;
onLoadedDataCapture?: GenericEventHandler<Target>;
onLoadedMetadata?: GenericEventHandler<Target>;
onLoadedMetadataCapture?: GenericEventHandler<Target>;
onLoadStart?: GenericEventHandler<Target>;
onLoadStartCapture?: GenericEventHandler<Target>;
onPause?: GenericEventHandler<Target>;
onPauseCapture?: GenericEventHandler<Target>;
onPlay?: GenericEventHandler<Target>;
onPlayCapture?: GenericEventHandler<Target>;
onPlaying?: GenericEventHandler<Target>;
onPlayingCapture?: GenericEventHandler<Target>;
onProgress?: GenericEventHandler<Target>;
onProgressCapture?: GenericEventHandler<Target>;
onRateChange?: GenericEventHandler<Target>;
onRateChangeCapture?: GenericEventHandler<Target>;
onSeeked?: GenericEventHandler<Target>;
onSeekedCapture?: GenericEventHandler<Target>;
onSeeking?: GenericEventHandler<Target>;
onSeekingCapture?: GenericEventHandler<Target>;
onStalled?: GenericEventHandler<Target>;
onStalledCapture?: GenericEventHandler<Target>;
onSuspend?: GenericEventHandler<Target>;
onSuspendCapture?: GenericEventHandler<Target>;
onTimeUpdate?: GenericEventHandler<Target>;
onTimeUpdateCapture?: GenericEventHandler<Target>;
onVolumeChange?: GenericEventHandler<Target>;
onVolumeChangeCapture?: GenericEventHandler<Target>;
onWaiting?: GenericEventHandler<Target>;
onWaitingCapture?: GenericEventHandler<Target>;
// MouseEvents
onClick?: MouseEventHandler<Target>;
onClickCapture?: MouseEventHandler<Target>;
onContextMenu?: MouseEventHandler<Target>;
onContextMenuCapture?: MouseEventHandler<Target>;
onDblClick?: MouseEventHandler<Target>;
onDblClickCapture?: MouseEventHandler<Target>;
onDrag?: DragEventHandler<Target>;
onDragCapture?: DragEventHandler<Target>;
onDragEnd?: DragEventHandler<Target>;
onDragEndCapture?: DragEventHandler<Target>;
onDragEnter?: DragEventHandler<Target>;
onDragEnterCapture?: DragEventHandler<Target>;
onDragExit?: DragEventHandler<Target>;
onDragExitCapture?: DragEventHandler<Target>;
onDragLeave?: DragEventHandler<Target>;
onDragLeaveCapture?: DragEventHandler<Target>;
onDragOver?: DragEventHandler<Target>;
onDragOverCapture?: DragEventHandler<Target>;
onDragStart?: DragEventHandler<Target>;
onDragStartCapture?: DragEventHandler<Target>;
onDrop?: DragEventHandler<Target>;
onDropCapture?: DragEventHandler<Target>;
onMouseDown?: MouseEventHandler<Target>;
onMouseDownCapture?: MouseEventHandler<Target>;
onMouseEnter?: MouseEventHandler<Target>;
onMouseEnterCapture?: MouseEventHandler<Target>;
onMouseLeave?: MouseEventHandler<Target>;
onMouseLeaveCapture?: MouseEventHandler<Target>;
onMouseMove?: MouseEventHandler<Target>;
onMouseMoveCapture?: MouseEventHandler<Target>;
onMouseOut?: MouseEventHandler<Target>;
onMouseOutCapture?: MouseEventHandler<Target>;
onMouseOver?: MouseEventHandler<Target>;
onMouseOverCapture?: MouseEventHandler<Target>;
onMouseUp?: MouseEventHandler<Target>;
onMouseUpCapture?: MouseEventHandler<Target>;
// Selection Events
onSelect?: GenericEventHandler<Target>;
onSelectCapture?: GenericEventHandler<Target>;
// Touch Events
onTouchCancel?: TouchEventHandler<Target>;
onTouchCancelCapture?: TouchEventHandler<Target>;
onTouchEnd?: TouchEventHandler<Target>;
onTouchEndCapture?: TouchEventHandler<Target>;
onTouchMove?: TouchEventHandler<Target>;
onTouchMoveCapture?: TouchEventHandler<Target>;
onTouchStart?: TouchEventHandler<Target>;
onTouchStartCapture?: TouchEventHandler<Target>;
// Pointer Events
onPointerOver?: PointerEventHandler<Target>;
onPointerOverCapture?: PointerEventHandler<Target>;
onPointerEnter?: PointerEventHandler<Target>;
onPointerEnterCapture?: PointerEventHandler<Target>;
onPointerDown?: PointerEventHandler<Target>;
onPointerDownCapture?: PointerEventHandler<Target>;
onPointerMove?: PointerEventHandler<Target>;
onPointerMoveCapture?: PointerEventHandler<Target>;
onPointerUp?: PointerEventHandler<Target>;
onPointerUpCapture?: PointerEventHandler<Target>;
onPointerCancel?: PointerEventHandler<Target>;
onPointerCancelCapture?: PointerEventHandler<Target>;
onPointerOut?: PointerEventHandler<Target>;
onPointerOutCapture?: PointerEventHandler<Target>;
onPointerLeave?: PointerEventHandler<Target>;
onPointerLeaveCapture?: PointerEventHandler<Target>;
onGotPointerCapture?: PointerEventHandler<Target>;
onGotPointerCaptureCapture?: PointerEventHandler<Target>;
onLostPointerCapture?: PointerEventHandler<Target>;
onLostPointerCaptureCapture?: PointerEventHandler<Target>;
// UI Events
onScroll?: UIEventHandler<Target>;
onScrollCapture?: UIEventHandler<Target>;
// Wheel Events
onWheel?: WheelEventHandler<Target>;
onWheelCapture?: WheelEventHandler<Target>;
// Animation Events
onAnimationStart?: AnimationEventHandler<Target>;
onAnimationStartCapture?: AnimationEventHandler<Target>;
onAnimationEnd?: AnimationEventHandler<Target>;
onAnimationEndCapture?: AnimationEventHandler<Target>;
onAnimationIteration?: AnimationEventHandler<Target>;
onAnimationIterationCapture?: AnimationEventHandler<Target>;
// Transition Events
onTransitionEnd?: TransitionEventHandler<Target>;
onTransitionEndCapture?: TransitionEventHandler<Target>;
}
export interface HTMLAttributes<RefType extends EventTarget = EventTarget>
extends ClassAttributes<RefType>,
DOMAttributes<RefType> {
// Standard HTML Attributes
accept?: string | SignalLike<string>;
acceptCharset?: string | SignalLike<string>;
accessKey?: string | SignalLike<string>;
action?: string | SignalLike<string>;
allow?: string | SignalLike<string>;
allowFullScreen?: boolean | SignalLike<boolean>;
allowTransparency?: boolean | SignalLike<boolean>;
alt?: string | SignalLike<string>;
as?: string | SignalLike<string>;
async?: boolean | SignalLike<boolean>;
autocomplete?: string | SignalLike<string>;
autoComplete?: string | SignalLike<string>;
autocorrect?: string | SignalLike<string>;
autoCorrect?: string | SignalLike<string>;
autofocus?: boolean | SignalLike<boolean>;
autoFocus?: boolean | SignalLike<boolean>;
autoPlay?: boolean | SignalLike<boolean>;
capture?: boolean | string | SignalLike<string>;
cellPadding?: number | string | SignalLike<string>;
cellSpacing?: number | string | SignalLike<string>;
charSet?: string | SignalLike<string>;
challenge?: string | SignalLike<string>;
checked?: boolean | SignalLike<boolean>;
cite?: string | SignalLike<string>;
class?: string | undefined | SignalLike<string | undefined>;
className?: string | undefined | SignalLike<string | undefined>;
cols?: number | SignalLike<number>;
colSpan?: number | SignalLike<number>;
content?: string | SignalLike<string>;
contentEditable?: boolean | SignalLike<boolean>;
contextMenu?: string | SignalLike<string>;
controls?: boolean | SignalLike<boolean>;
controlsList?: string | SignalLike<string>;
coords?: string | SignalLike<string>;
crossOrigin?: string | SignalLike<string>;
data?: string | SignalLike<string>;
dateTime?: string | SignalLike<string>;
default?: boolean | SignalLike<boolean>;
defaultChecked?: boolean | SignalLike<boolean>;
defaultValue?: string | SignalLike<string>;
defer?: boolean | SignalLike<boolean>;
dir?: 'auto' | 'rtl' | 'ltr' | SignalLike<'auto' | 'rtl' | 'ltr'>;
disabled?: boolean | SignalLike<boolean>;
disableRemotePlayback?: boolean | SignalLike<boolean>;
download?: any;
decoding?:
| 'sync'
| 'async'
| 'auto'
| SignalLike<'sync' | 'async' | 'auto'>;
draggable?: boolean | SignalLike<boolean>;
encType?: string | SignalLike<string>;
enterkeyhint?:
| 'enter'
| 'done'
| 'go'
| 'next'
| 'previous'
| 'search'
| 'send'
| SignalLike<
'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'
>;
form?: string | SignalLike<string>;
formAction?: string | SignalLike<string>;
formEncType?: string | SignalLike<string>;
formMethod?: string | SignalLike<string>;
formNoValidate?: boolean | SignalLike<boolean>;
formTarget?: string | SignalLike<string>;
frameBorder?: number | string | SignalLike<number | string>;
headers?: string | SignalLike<string>;
height?: number | string | SignalLike<number | string>;
hidden?: boolean | SignalLike<boolean>;
high?: number | SignalLike<number>;
href?: string | SignalLike<string>;
hrefLang?: string | SignalLike<string>;
for?: string | SignalLike<string>;
htmlFor?: string | SignalLike<string>;
httpEquiv?: string | SignalLike<string>;
icon?: string | SignalLike<string>;
id?: string | SignalLike<string>;
inputMode?: string | SignalLike<string>;
integrity?: string | SignalLike<string>;
is?: string | SignalLike<string>;
keyParams?: string | SignalLike<string>;
keyType?: string | SignalLike<string>;
kind?: string | SignalLike<string>;
label?: string | SignalLike<string>;
lang?: string | SignalLike<string>;
list?: string | SignalLike<string>;
loading?: 'eager' | 'lazy' | SignalLike<'eager' | 'lazy'>;
loop?: boolean | SignalLike<boolean>;
low?: number | SignalLike<number>;
manifest?: string | SignalLike<string>;
marginHeight?: number | SignalLike<number>;
marginWidth?: number | SignalLike<number>;
max?: number | string | SignalLike<string>;
maxLength?: number | SignalLike<number>;
media?: string | SignalLike<string>;
mediaGroup?: string | SignalLike<string>;
method?: string | SignalLike<string>;
min?: number | string | SignalLike<string>;
minLength?: number | SignalLike<number>;
multiple?: boolean | SignalLike<boolean>;
muted?: boolean | SignalLike<boolean>;
name?: string | SignalLike<string>;
nomodule?: boolean | SignalLike<boolean>;
nonce?: string | SignalLike<string>;
noValidate?: boolean | SignalLike<boolean>;
open?: boolean | SignalLike<boolean>;
optimum?: number | SignalLike<number>;
part?: string | SignalLike<string>;
pattern?: string | SignalLike<string>;
ping?: string | SignalLike<string>;
placeholder?: string | SignalLike<string>;
playsInline?: boolean | SignalLike<boolean>;
poster?: string | SignalLike<string>;
preload?: string | SignalLike<string>;
radioGroup?: string | SignalLike<string>;
readonly?: boolean | SignalLike<boolean>;
readOnly?: boolean | SignalLike<boolean>;
referrerpolicy?:
| 'no-referrer'
| 'no-referrer-when-downgrade'
| 'origin'
| 'origin-when-cross-origin'
| 'same-origin'
| 'strict-origin'
| 'strict-origin-when-cross-origin'
| 'unsafe-url'
| SignalLike<
| 'no-referrer'
| 'no-referrer-when-downgrade'
| 'origin'
| 'origin-when-cross-origin'
| 'same-origin'
| 'strict-origin'
| 'strict-origin-when-cross-origin'
| 'unsafe-url'
>;
rel?: string | SignalLike<string>;
required?: boolean | SignalLike<boolean>;
reversed?: boolean | SignalLike<boolean>;
role?: string | SignalLike<string>;
rows?: number | SignalLike<number>;
rowSpan?: number | SignalLike<number>;
sandbox?: string | SignalLike<string>;
scope?: string | SignalLike<string>;
scoped?: boolean | SignalLike<boolean>;
scrolling?: string | SignalLike<string>;
seamless?: boolean | SignalLike<boolean>;
selected?: boolean | SignalLike<boolean>;
shape?: string | SignalLike<string>;
size?: number | SignalLike<number>;
sizes?: string | SignalLike<string>;
slot?: string | SignalLike<string>;
span?: number | SignalLike<number>;
spellcheck?: boolean | SignalLike<boolean>;
spellCheck?: boolean | SignalLike<boolean>;
src?: string | SignalLike<string>;
srcset?: string | SignalLike<string>;
srcDoc?: string | SignalLike<string>;
srcLang?: string | SignalLike<string>;
srcSet?: string | SignalLike<string>;
start?: number | SignalLike<number>;
step?: number | string | SignalLike<number | string>;
style?: string | CSSProperties | SignalLike<string | CSSProperties>;
summary?: string | SignalLike<string>;
tabIndex?: number | SignalLike<number>;
target?: string | SignalLike<string>;
title?: string | SignalLike<string>;
type?: string | SignalLike<string>;
useMap?: string | SignalLike<string>;
value?: string | string[] | number | SignalLike<string | string[] | number>;
volume?: string | number | SignalLike<string | number>;
width?: number | string | SignalLike<number | string>;
wmode?: string | SignalLike<string>;
wrap?: string | SignalLike<string>;
// Non-standard Attributes
autocapitalize?:
| 'off'
| 'none'
| 'on'
| 'sentences'
| 'words'
| 'characters'
| SignalLike<
'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'
>;
autoCapitalize?:
| 'off'
| 'none'
| 'on'
| 'sentences'
| 'words'
| 'characters'
| SignalLike<
'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'
>;
disablePictureInPicture?: boolean | SignalLike<boolean>;
results?: number | SignalLike<number>;
translate?: 'yes' | 'no' | SignalLike<'yes' | 'no'>;
// RDFa Attributes
about?: string | SignalLike<string>;
datatype?: string | SignalLike<string>;
inlist?: any;
prefix?: string | SignalLike<string>;
property?: string | SignalLike<string>;
resource?: string | SignalLike<string>;
typeof?: string | SignalLike<string>;
vocab?: string | SignalLike<string>;
// Microdata Attributes
itemProp?: string | SignalLike<string>;
itemScope?: boolean | SignalLike<boolean>;
itemType?: string | SignalLike<string>;
itemID?: string | SignalLike<string>;
itemRef?: string | SignalLike<string>;
}
export type DetailedHTMLProps<
HA extends HTMLAttributes<RefType>,
RefType extends EventTarget = EventTarget
> = HA;
export interface HTMLMarqueeElement extends HTMLElement {
behavior?:
| 'scroll'
| 'slide'
| 'alternate'
| SignalLike<'scroll' | 'slide' | 'alternate'>;
bgColor?: string | SignalLike<string>;
direction?:
| 'left'
| 'right'
| 'up'
| 'down'
| SignalLike<'left' | 'right' | 'up' | 'down'>;
height?: number | string | SignalLike<number | string>;
hspace?: number | string | SignalLike<number | string>;
loop?: number | string | SignalLike<number | string>;
scrollAmount?: number | string | SignalLike<number | string>;
scrollDelay?: number | string | SignalLike<number | string>;
trueSpeed?: boolean | SignalLike<boolean>;
vspace?: number | string | SignalLike<number | string>;
width?: number | string | SignalLike<number | string>;
}
export interface IntrinsicElements {
// HTML
a: HTMLAttributes<HTMLAnchorElement>;
abbr: HTMLAttributes<HTMLElement>;
address: HTMLAttributes<HTMLElement>;
area: HTMLAttributes<HTMLAreaElement>;
article: HTMLAttributes<HTMLElement>;
aside: HTMLAttributes<HTMLElement>;
audio: HTMLAttributes<HTMLAudioElement>;
b: HTMLAttributes<HTMLElement>;
base: HTMLAttributes<HTMLBaseElement>;
bdi: HTMLAttributes<HTMLElement>;
bdo: HTMLAttributes<HTMLElement>;
big: HTMLAttributes<HTMLElement>;
blockquote: HTMLAttributes<HTMLQuoteElement>;
body: HTMLAttributes<HTMLBodyElement>;
br: HTMLAttributes<HTMLBRElement>;
button: HTMLAttributes<HTMLButtonElement>;
canvas: HTMLAttributes<HTMLCanvasElement>;
caption: HTMLAttributes<HTMLTableCaptionElement>;
cite: HTMLAttributes<HTMLElement>;
code: HTMLAttributes<HTMLElement>;
col: HTMLAttributes<HTMLTableColElement>;
colgroup: HTMLAttributes<HTMLTableColElement>;
data: HTMLAttributes<HTMLDataElement>;
datalist: HTMLAttributes<HTMLDataListElement>;
dd: HTMLAttributes<HTMLElement>;
del: HTMLAttributes<HTMLModElement>;
details: HTMLAttributes<HTMLDetailsElement>;
dfn: HTMLAttributes<HTMLElement>;
dialog: HTMLAttributes<HTMLDialogElement>;
div: HTMLAttributes<HTMLDivElement>;
dl: HTMLAttributes<HTMLDListElement>;
dt: HTMLAttributes<HTMLElement>;
em: HTMLAttributes<HTMLElement>;
embed: HTMLAttributes<HTMLEmbedElement>;
fieldset: HTMLAttributes<HTMLFieldSetElement>;
figcaption: HTMLAttributes<HTMLElement>;
figure: HTMLAttributes<HTMLElement>;
footer: HTMLAttributes<HTMLElement>;
form: HTMLAttributes<HTMLFormElement>;
h1: HTMLAttributes<HTMLHeadingElement>;
h2: HTMLAttributes<HTMLHeadingElement>;
h3: HTMLAttributes<HTMLHeadingElement>;
h4: HTMLAttributes<HTMLHeadingElement>;
h5: HTMLAttributes<HTMLHeadingElement>;
h6: HTMLAttributes<HTMLHeadingElement>;
head: HTMLAttributes<HTMLHeadElement>;
header: HTMLAttributes<HTMLElement>;
hgroup: HTMLAttributes<HTMLElement>;
hr: HTMLAttributes<HTMLHRElement>;
html: HTMLAttributes<HTMLHtmlElement>;
i: HTMLAttributes<HTMLElement>;
iframe: HTMLAttributes<HTMLIFrameElement>;
img: HTMLAttributes<HTMLImageElement>;
input: HTMLAttributes<HTMLInputElement>;
ins: HTMLAttributes<HTMLModElement>;
kbd: HTMLAttributes<HTMLElement>;
keygen: HTMLAttributes<HTMLUnknownElement>;
label: HTMLAttributes<HTMLLabelElement>;
legend: HTMLAttributes<HTMLLegendElement>;
li: HTMLAttributes<HTMLLIElement>;
link: HTMLAttributes<HTMLLinkElement>;
main: HTMLAttributes<HTMLElement>;
map: HTMLAttributes<HTMLMapElement>;
mark: HTMLAttributes<HTMLElement>;
marquee: HTMLAttributes<HTMLMarqueeElement>;
menu: HTMLAttributes<HTMLMenuElement>;
menuitem: HTMLAttributes<HTMLUnknownElement>;
meta: HTMLAttributes<HTMLMetaElement>;
meter: HTMLAttributes<HTMLMeterElement>;
nav: HTMLAttributes<HTMLElement>;
noscript: HTMLAttributes<HTMLElement>;
object: HTMLAttributes<HTMLObjectElement>;
ol: HTMLAttributes<HTMLOListElement>;
optgroup: HTMLAttributes<HTMLOptGroupElement>;
option: HTMLAttributes<HTMLOptionElement>;
output: HTMLAttributes<HTMLOutputElement>;
p: HTMLAttributes<HTMLParagraphElement>;
param: HTMLAttributes<HTMLParamElement>;
picture: HTMLAttributes<HTMLPictureElement>;
pre: HTMLAttributes<HTMLPreElement>;
progress: HTMLAttributes<HTMLProgressElement>;
q: HTMLAttributes<HTMLQuoteElement>;
rp: HTMLAttributes<HTMLElement>;
rt: HTMLAttributes<HTMLElement>;
ruby: HTMLAttributes<HTMLElement>;
s: HTMLAttributes<HTMLElement>;
samp: HTMLAttributes<HTMLElement>;
script: HTMLAttributes<HTMLScriptElement>;
section: HTMLAttributes<HTMLElement>;
select: HTMLAttributes<HTMLSelectElement>;
slot: HTMLAttributes<HTMLSlotElement>;
small: HTMLAttributes<HTMLElement>;
source: HTMLAttributes<HTMLSourceElement>;
span: HTMLAttributes<HTMLSpanElement>;
strong: HTMLAttributes<HTMLElement>;
style: HTMLAttributes<HTMLStyleElement>;
sub: HTMLAttributes<HTMLElement>;
summary: HTMLAttributes<HTMLElement>;
sup: HTMLAttributes<HTMLElement>;
table: HTMLAttributes<HTMLTableElement>;
tbody: HTMLAttributes<HTMLTableSectionElement>;
td: HTMLAttributes<HTMLTableCellElement>;
textarea: HTMLAttributes<HTMLTextAreaElement>;
tfoot: HTMLAttributes<HTMLTableSectionElement>;
th: HTMLAttributes<HTMLTableCellElement>;
thead: HTMLAttributes<HTMLTableSectionElement>;
time: HTMLAttributes<HTMLTimeElement>;
title: HTMLAttributes<HTMLTitleElement>;
tr: HTMLAttributes<HTMLTableRowElement>;
track: HTMLAttributes<HTMLTrackElement>;
u: HTMLAttributes<HTMLElement>;
ul: HTMLAttributes<HTMLUListElement>;
var: HTMLAttributes<HTMLElement>;
video: HTMLAttributes<HTMLVideoElement>;
wbr: HTMLAttributes<HTMLElement>;
//SVG
svg: SVGAttributes<SVGSVGElement>;
animate: SVGAttributes<SVGAnimateElement>;
circle: SVGAttributes<SVGCircleElement>;
animateTransform: SVGAttributes<SVGAnimateElement>;
clipPath: SVGAttributes<SVGClipPathElement>;
defs: SVGAttributes<SVGDefsElement>;
desc: SVGAttributes<SVGDescElement>;
ellipse: SVGAttributes<SVGEllipseElement>;
feBlend: SVGAttributes<SVGFEBlendElement>;
feColorMatrix: SVGAttributes<SVGFEColorMatrixElement>;
feComponentTransfer: SVGAttributes<SVGFEComponentTransferElement>;
feComposite: SVGAttributes<SVGFECompositeElement>;
feConvolveMatrix: SVGAttributes<SVGFEConvolveMatrixElement>;
feDiffuseLighting: SVGAttributes<SVGFEDiffuseLightingElement>;
feDisplacementMap: SVGAttributes<SVGFEDisplacementMapElement>;
feDropShadow: SVGAttributes<SVGFEDropShadowElement>;
feFlood: SVGAttributes<SVGFEFloodElement>;
feFuncA: SVGAttributes<SVGFEFuncAElement>;
feFuncB: SVGAttributes<SVGFEFuncBElement>;
feFuncG: SVGAttributes<SVGFEFuncGElement>;
feFuncR: SVGAttributes<SVGFEFuncRElement>;
feGaussianBlur: SVGAttributes<SVGFEGaussianBlurElement>;
feImage: SVGAttributes<SVGFEImageElement>;
feMerge: SVGAttributes<SVGFEMergeElement>;
feMergeNode: SVGAttributes<SVGFEMergeNodeElement>;
feMorphology: SVGAttributes<SVGFEMorphologyElement>;
feOffset: SVGAttributes<SVGFEOffsetElement>;
feSpecularLighting: SVGAttributes<SVGFESpecularLightingElement>;
feTile: SVGAttributes<SVGFETileElement>;
feTurbulence: SVGAttributes<SVGFETurbulenceElement>;
filter: SVGAttributes<SVGFilterElement>;
foreignObject: SVGAttributes<SVGForeignObjectElement>;
g: SVGAttributes<SVGGElement>;
image: SVGAttributes<SVGImageElement>;
line: SVGAttributes<SVGLineElement>;
linearGradient: SVGAttributes<SVGLinearGradientElement>;
marker: SVGAttributes<SVGMarkerElement>;
mask: SVGAttributes<SVGMaskElement>;
path: SVGAttributes<SVGPathElement>;
pattern: SVGAttributes<SVGPatternElement>;
polygon: SVGAttributes<SVGPolygonElement>;
polyline: SVGAttributes<SVGPolylineElement>;
radialGradient: SVGAttributes<SVGRadialGradientElement>;
rect: SVGAttributes<SVGRectElement>;
stop: SVGAttributes<SVGStopElement>;
symbol: SVGAttributes<SVGSymbolElement>;
text: SVGAttributes<SVGTextElement>;
textPath: SVGAttributes<SVGTextPathElement>;
tspan: SVGAttributes<SVGTSpanElement>;
use: SVGAttributes<SVGUseElement>;
}
}