preact
Version:
Fast 3kb React-compatible Virtual DOM library.
2,716 lines (2,566 loc) • 111 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,
ComponentType,
FunctionComponent,
PreactDOMAttributes,
VNode
} from 'preact';
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;
type Booleanish = boolean | 'true' | 'false';
// Remove when bumping TS minimum to >5.2
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent) */
interface ToggleEvent extends Event {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent/newState) */
readonly newState: string;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent/oldState) */
readonly oldState: string;
}
declare var ToggleEvent: {
prototype: ToggleEvent;
new (type: string, eventInitDict?: ToggleEventInit): ToggleEvent;
};
interface ToggleEventInit extends EventInit {
newState?: string;
oldState?: string;
}
// End TS >5.2
/** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/CommandEvent) */
interface CommandEvent extends Event {
/** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/CommandEvent/source) */
readonly source: Element | null;
/** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/CommandEvent/command) */
readonly command: string;
}
declare var CommandEvent: {
prototype: CommandEvent;
new (type: string, eventInitDict?: CommandEventInit): CommandEvent;
};
interface CommandEventInit extends EventInit {
source: Element | null;
command: string;
}
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 type Signalish<T> = T | SignalLike<T>;
export type UnpackSignal<T> = T extends SignalLike<infer V> ? V : T;
export interface SVGAttributes<Target extends EventTarget = SVGElement>
extends HTMLAttributes<Target> {
accentHeight?: Signalish<number | string | undefined>;
accumulate?: Signalish<'none' | 'sum' | undefined>;
additive?: Signalish<'replace' | 'sum' | undefined>;
alignmentBaseline?: Signalish<
| 'auto'
| 'baseline'
| 'before-edge'
| 'text-before-edge'
| 'middle'
| 'central'
| 'after-edge'
| 'text-after-edge'
| 'ideographic'
| 'alphabetic'
| 'hanging'
| 'mathematical'
| 'inherit'
| undefined
>;
'alignment-baseline'?: Signalish<
| 'auto'
| 'baseline'
| 'before-edge'
| 'text-before-edge'
| 'middle'
| 'central'
| 'after-edge'
| 'text-after-edge'
| 'ideographic'
| 'alphabetic'
| 'hanging'
| 'mathematical'
| 'inherit'
| undefined
>;
allowReorder?: Signalish<'no' | 'yes' | undefined>;
'allow-reorder'?: Signalish<'no' | 'yes' | undefined>;
alphabetic?: Signalish<number | string | undefined>;
amplitude?: Signalish<number | string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/arabic-form */
arabicForm?: Signalish<
'initial' | 'medial' | 'terminal' | 'isolated' | undefined
>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/arabic-form */
'arabic-form'?: Signalish<
'initial' | 'medial' | 'terminal' | 'isolated' | undefined
>;
ascent?: Signalish<number | string | undefined>;
attributeName?: Signalish<string | undefined>;
attributeType?: Signalish<string | undefined>;
azimuth?: Signalish<number | string | undefined>;
baseFrequency?: Signalish<number | string | undefined>;
baselineShift?: Signalish<number | string | undefined>;
'baseline-shift'?: Signalish<number | string | undefined>;
baseProfile?: Signalish<number | string | undefined>;
bbox?: Signalish<number | string | undefined>;
begin?: Signalish<number | string | undefined>;
bias?: Signalish<number | string | undefined>;
by?: Signalish<number | string | undefined>;
calcMode?: Signalish<number | string | undefined>;
capHeight?: Signalish<number | string | undefined>;
'cap-height'?: Signalish<number | string | undefined>;
clip?: Signalish<number | string | undefined>;
clipPath?: Signalish<string | undefined>;
'clip-path'?: Signalish<string | undefined>;
clipPathUnits?: Signalish<number | string | undefined>;
clipRule?: Signalish<number | string | undefined>;
'clip-rule'?: Signalish<number | string | undefined>;
colorInterpolation?: Signalish<number | string | undefined>;
'color-interpolation'?: Signalish<number | string | undefined>;
colorInterpolationFilters?: Signalish<
'auto' | 'sRGB' | 'linearRGB' | 'inherit' | undefined
>;
'color-interpolation-filters'?: Signalish<
'auto' | 'sRGB' | 'linearRGB' | 'inherit' | undefined
>;
colorProfile?: Signalish<number | string | undefined>;
'color-profile'?: Signalish<number | string | undefined>;
colorRendering?: Signalish<number | string | undefined>;
'color-rendering'?: Signalish<number | string | undefined>;
contentScriptType?: Signalish<number | string | undefined>;
'content-script-type'?: Signalish<number | string | undefined>;
contentStyleType?: Signalish<number | string | undefined>;
'content-style-type'?: Signalish<number | string | undefined>;
cursor?: Signalish<number | string | undefined>;
cx?: Signalish<number | string | undefined>;
cy?: Signalish<number | string | undefined>;
d?: Signalish<string | undefined>;
decelerate?: Signalish<number | string | undefined>;
descent?: Signalish<number | string | undefined>;
diffuseConstant?: Signalish<number | string | undefined>;
direction?: Signalish<number | string | undefined>;
display?: Signalish<number | string | undefined>;
divisor?: Signalish<number | string | undefined>;
dominantBaseline?: Signalish<number | string | undefined>;
'dominant-baseline'?: Signalish<number | string | undefined>;
dur?: Signalish<number | string | undefined>;
dx?: Signalish<number | string | undefined>;
dy?: Signalish<number | string | undefined>;
edgeMode?: Signalish<number | string | undefined>;
elevation?: Signalish<number | string | undefined>;
enableBackground?: Signalish<number | string | undefined>;
'enable-background'?: Signalish<number | string | undefined>;
end?: Signalish<number | string | undefined>;
exponent?: Signalish<number | string | undefined>;
externalResourcesRequired?: Signalish<number | string | undefined>;
fill?: Signalish<string | undefined>;
fillOpacity?: Signalish<number | string | undefined>;
'fill-opacity'?: Signalish<number | string | undefined>;
fillRule?: Signalish<'nonzero' | 'evenodd' | 'inherit' | undefined>;
'fill-rule'?: Signalish<'nonzero' | 'evenodd' | 'inherit' | undefined>;
filter?: Signalish<string | undefined>;
filterRes?: Signalish<number | string | undefined>;
filterUnits?: Signalish<number | string | undefined>;
floodColor?: Signalish<number | string | undefined>;
'flood-color'?: Signalish<number | string | undefined>;
floodOpacity?: Signalish<number | string | undefined>;
'flood-opacity'?: Signalish<number | string | undefined>;
focusable?: Signalish<number | string | undefined>;
fontFamily?: Signalish<string | undefined>;
'font-family'?: Signalish<string | undefined>;
fontSize?: Signalish<number | string | undefined>;
'font-size'?: Signalish<number | string | undefined>;
fontSizeAdjust?: Signalish<number | string | undefined>;
'font-size-adjust'?: Signalish<number | string | undefined>;
fontStretch?: Signalish<number | string | undefined>;
'font-stretch'?: Signalish<number | string | undefined>;
fontStyle?: Signalish<number | string | undefined>;
'font-style'?: Signalish<number | string | undefined>;
fontVariant?: Signalish<number | string | undefined>;
'font-variant'?: Signalish<number | string | undefined>;
fontWeight?: Signalish<number | string | undefined>;
'font-weight'?: Signalish<number | string | undefined>;
format?: Signalish<number | string | undefined>;
from?: Signalish<number | string | undefined>;
fx?: Signalish<number | string | undefined>;
fy?: Signalish<number | string | undefined>;
g1?: Signalish<number | string | undefined>;
g2?: Signalish<number | string | undefined>;
glyphName?: Signalish<number | string | undefined>;
'glyph-name'?: Signalish<number | string | undefined>;
glyphOrientationHorizontal?: Signalish<number | string | undefined>;
'glyph-orientation-horizontal'?: Signalish<number | string | undefined>;
glyphOrientationVertical?: Signalish<number | string | undefined>;
'glyph-orientation-vertical'?: Signalish<number | string | undefined>;
glyphRef?: Signalish<number | string | undefined>;
gradientTransform?: Signalish<string | undefined>;
gradientUnits?: Signalish<string | undefined>;
hanging?: Signalish<number | string | undefined>;
height?: Signalish<number | string | undefined>;
horizAdvX?: Signalish<number | string | undefined>;
'horiz-adv-x'?: Signalish<number | string | undefined>;
horizOriginX?: Signalish<number | string | undefined>;
'horiz-origin-x'?: Signalish<number | string | undefined>;
href?: Signalish<string | undefined>;
hreflang?: Signalish<string | undefined>;
hrefLang?: Signalish<string | undefined>;
ideographic?: Signalish<number | string | undefined>;
imageRendering?: Signalish<number | string | undefined>;
'image-rendering'?: Signalish<number | string | undefined>;
in2?: Signalish<number | string | undefined>;
in?: Signalish<string | undefined>;
intercept?: Signalish<number | string | undefined>;
k1?: Signalish<number | string | undefined>;
k2?: Signalish<number | string | undefined>;
k3?: Signalish<number | string | undefined>;
k4?: Signalish<number | string | undefined>;
k?: Signalish<number | string | undefined>;
kernelMatrix?: Signalish<number | string | undefined>;
kernelUnitLength?: Signalish<number | string | undefined>;
kerning?: Signalish<number | string | undefined>;
keyPoints?: Signalish<number | string | undefined>;
keySplines?: Signalish<number | string | undefined>;
keyTimes?: Signalish<number | string | undefined>;
lengthAdjust?: Signalish<number | string | undefined>;
letterSpacing?: Signalish<number | string | undefined>;
'letter-spacing'?: Signalish<number | string | undefined>;
lightingColor?: Signalish<number | string | undefined>;
'lighting-color'?: Signalish<number | string | undefined>;
limitingConeAngle?: Signalish<number | string | undefined>;
local?: Signalish<number | string | undefined>;
markerEnd?: Signalish<string | undefined>;
'marker-end'?: Signalish<string | undefined>;
markerHeight?: Signalish<number | string | undefined>;
markerMid?: Signalish<string | undefined>;
'marker-mid'?: Signalish<string | undefined>;
markerStart?: Signalish<string | undefined>;
'marker-start'?: Signalish<string | undefined>;
markerUnits?: Signalish<number | string | undefined>;
markerWidth?: Signalish<number | string | undefined>;
mask?: Signalish<string | undefined>;
maskContentUnits?: Signalish<number | string | undefined>;
maskUnits?: Signalish<number | string | undefined>;
mathematical?: Signalish<number | string | undefined>;
mode?: Signalish<number | string | undefined>;
numOctaves?: Signalish<number | string | undefined>;
offset?: Signalish<number | string | undefined>;
opacity?: Signalish<number | string | undefined>;
operator?: Signalish<number | string | undefined>;
order?: Signalish<number | string | undefined>;
orient?: Signalish<number | string | undefined>;
orientation?: Signalish<number | string | undefined>;
origin?: Signalish<number | string | undefined>;
overflow?: Signalish<number | string | undefined>;
overlinePosition?: Signalish<number | string | undefined>;
'overline-position'?: Signalish<number | string | undefined>;
overlineThickness?: Signalish<number | string | undefined>;
'overline-thickness'?: Signalish<number | string | undefined>;
paintOrder?: Signalish<number | string | undefined>;
'paint-order'?: Signalish<number | string | undefined>;
panose1?: Signalish<number | string | undefined>;
'panose-1'?: Signalish<number | string | undefined>;
pathLength?: Signalish<number | string | undefined>;
patternContentUnits?: Signalish<string | undefined>;
patternTransform?: Signalish<number | string | undefined>;
patternUnits?: Signalish<string | undefined>;
pointerEvents?: Signalish<number | string | undefined>;
'pointer-events'?: Signalish<number | string | undefined>;
points?: Signalish<string | undefined>;
pointsAtX?: Signalish<number | string | undefined>;
pointsAtY?: Signalish<number | string | undefined>;
pointsAtZ?: Signalish<number | string | undefined>;
preserveAlpha?: Signalish<number | string | undefined>;
preserveAspectRatio?: Signalish<string | undefined>;
primitiveUnits?: Signalish<number | string | undefined>;
r?: Signalish<number | string | undefined>;
radius?: Signalish<number | string | undefined>;
refX?: Signalish<number | string | undefined>;
refY?: Signalish<number | string | undefined>;
renderingIntent?: Signalish<number | string | undefined>;
'rendering-intent'?: Signalish<number | string | undefined>;
repeatCount?: Signalish<number | string | undefined>;
'repeat-count'?: Signalish<number | string | undefined>;
repeatDur?: Signalish<number | string | undefined>;
'repeat-dur'?: Signalish<number | string | undefined>;
requiredExtensions?: Signalish<number | string | undefined>;
requiredFeatures?: Signalish<number | string | undefined>;
restart?: Signalish<number | string | undefined>;
result?: Signalish<string | undefined>;
rotate?: Signalish<number | string | undefined>;
rx?: Signalish<number | string | undefined>;
ry?: Signalish<number | string | undefined>;
scale?: Signalish<number | string | undefined>;
seed?: Signalish<number | string | undefined>;
shapeRendering?: Signalish<number | string | undefined>;
'shape-rendering'?: Signalish<number | string | undefined>;
slope?: Signalish<number | string | undefined>;
spacing?: Signalish<number | string | undefined>;
specularConstant?: Signalish<number | string | undefined>;
specularExponent?: Signalish<number | string | undefined>;
speed?: Signalish<number | string | undefined>;
spreadMethod?: Signalish<string | undefined>;
startOffset?: Signalish<number | string | undefined>;
stdDeviation?: Signalish<number | string | undefined>;
stemh?: Signalish<number | string | undefined>;
stemv?: Signalish<number | string | undefined>;
stitchTiles?: Signalish<number | string | undefined>;
stopColor?: Signalish<string | undefined>;
'stop-color'?: Signalish<string | undefined>;
stopOpacity?: Signalish<number | string | undefined>;
'stop-opacity'?: Signalish<number | string | undefined>;
strikethroughPosition?: Signalish<number | string | undefined>;
'strikethrough-position'?: Signalish<number | string | undefined>;
strikethroughThickness?: Signalish<number | string | undefined>;
'strikethrough-thickness'?: Signalish<number | string | undefined>;
string?: Signalish<number | string | undefined>;
stroke?: Signalish<string | undefined>;
strokeDasharray?: Signalish<string | number | undefined>;
'stroke-dasharray'?: Signalish<string | number | undefined>;
strokeDashoffset?: Signalish<string | number | undefined>;
'stroke-dashoffset'?: Signalish<string | number | undefined>;
strokeLinecap?: Signalish<
'butt' | 'round' | 'square' | 'inherit' | undefined
>;
'stroke-linecap'?: Signalish<
'butt' | 'round' | 'square' | 'inherit' | undefined
>;
strokeLinejoin?: Signalish<
'miter' | 'round' | 'bevel' | 'inherit' | undefined
>;
'stroke-linejoin'?: Signalish<
'miter' | 'round' | 'bevel' | 'inherit' | undefined
>;
strokeMiterlimit?: Signalish<string | number | undefined>;
'stroke-miterlimit'?: Signalish<string | number | undefined>;
strokeOpacity?: Signalish<number | string | undefined>;
'stroke-opacity'?: Signalish<number | string | undefined>;
strokeWidth?: Signalish<number | string | undefined>;
'stroke-width'?: Signalish<number | string | undefined>;
surfaceScale?: Signalish<number | string | undefined>;
systemLanguage?: Signalish<number | string | undefined>;
tableValues?: Signalish<number | string | undefined>;
targetX?: Signalish<number | string | undefined>;
targetY?: Signalish<number | string | undefined>;
textAnchor?: Signalish<string | undefined>;
'text-anchor'?: Signalish<string | undefined>;
textDecoration?: Signalish<number | string | undefined>;
'text-decoration'?: Signalish<number | string | undefined>;
textLength?: Signalish<number | string | undefined>;
textRendering?: Signalish<number | string | undefined>;
'text-rendering'?: Signalish<number | string | undefined>;
to?: Signalish<number | string | undefined>;
transform?: Signalish<string | undefined>;
transformOrigin?: Signalish<string | undefined>;
'transform-origin'?: Signalish<string | undefined>;
type?: Signalish<string | undefined>;
u1?: Signalish<number | string | undefined>;
u2?: Signalish<number | string | undefined>;
underlinePosition?: Signalish<number | string | undefined>;
'underline-position'?: Signalish<number | string | undefined>;
underlineThickness?: Signalish<number | string | undefined>;
'underline-thickness'?: Signalish<number | string | undefined>;
unicode?: Signalish<number | string | undefined>;
unicodeBidi?: Signalish<number | string | undefined>;
'unicode-bidi'?: Signalish<number | string | undefined>;
unicodeRange?: Signalish<number | string | undefined>;
'unicode-range'?: Signalish<number | string | undefined>;
unitsPerEm?: Signalish<number | string | undefined>;
'units-per-em'?: Signalish<number | string | undefined>;
vAlphabetic?: Signalish<number | string | undefined>;
'v-alphabetic'?: Signalish<number | string | undefined>;
values?: Signalish<string | undefined>;
vectorEffect?: Signalish<number | string | undefined>;
'vector-effect'?: Signalish<number | string | undefined>;
version?: Signalish<string | undefined>;
vertAdvY?: Signalish<number | string | undefined>;
'vert-adv-y'?: Signalish<number | string | undefined>;
vertOriginX?: Signalish<number | string | undefined>;
'vert-origin-x'?: Signalish<number | string | undefined>;
vertOriginY?: Signalish<number | string | undefined>;
'vert-origin-y'?: Signalish<number | string | undefined>;
vHanging?: Signalish<number | string | undefined>;
'v-hanging'?: Signalish<number | string | undefined>;
vIdeographic?: Signalish<number | string | undefined>;
'v-ideographic'?: Signalish<number | string | undefined>;
viewBox?: Signalish<string | undefined>;
viewTarget?: Signalish<number | string | undefined>;
visibility?: Signalish<number | string | undefined>;
vMathematical?: Signalish<number | string | undefined>;
'v-mathematical'?: Signalish<number | string | undefined>;
width?: Signalish<number | string | undefined>;
wordSpacing?: Signalish<number | string | undefined>;
'word-spacing'?: Signalish<number | string | undefined>;
writingMode?: Signalish<number | string | undefined>;
'writing-mode'?: Signalish<number | string | undefined>;
x1?: Signalish<number | string | undefined>;
x2?: Signalish<number | string | undefined>;
x?: Signalish<number | string | undefined>;
xChannelSelector?: Signalish<string | undefined>;
xHeight?: Signalish<number | string | undefined>;
'x-height'?: Signalish<number | string | undefined>;
xlinkActuate?: Signalish<string | undefined>;
'xlink:actuate'?: Signalish<SVGAttributes['xlinkActuate']>;
xlinkArcrole?: Signalish<string | undefined>;
'xlink:arcrole'?: Signalish<string | undefined>;
xlinkHref?: Signalish<string | undefined>;
'xlink:href'?: Signalish<string | undefined>;
xlinkRole?: Signalish<string | undefined>;
'xlink:role'?: Signalish<string | undefined>;
xlinkShow?: Signalish<string | undefined>;
'xlink:show'?: Signalish<string | undefined>;
xlinkTitle?: Signalish<string | undefined>;
'xlink:title'?: Signalish<string | undefined>;
xlinkType?: Signalish<string | undefined>;
'xlink:type'?: Signalish<string | undefined>;
xmlBase?: Signalish<string | undefined>;
'xml:base'?: Signalish<string | undefined>;
xmlLang?: Signalish<string | undefined>;
'xml:lang'?: Signalish<string | undefined>;
xmlns?: Signalish<string | undefined>;
xmlnsXlink?: Signalish<string | undefined>;
xmlSpace?: Signalish<string | undefined>;
'xml:space'?: Signalish<string | undefined>;
y1?: Signalish<number | string | undefined>;
y2?: Signalish<number | string | undefined>;
y?: Signalish<number | string | undefined>;
yChannelSelector?: Signalish<string | undefined>;
z?: Signalish<number | string | undefined>;
zoomAndPan?: Signalish<string | undefined>;
}
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 TargetedCommandEvent<Target extends EventTarget> = TargetedEvent<
Target,
CommandEvent
>;
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 TargetedInputEvent<Target extends EventTarget> = TargetedEvent<
Target,
InputEvent
>;
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 TargetedSubmitEvent<Target extends EventTarget> = TargetedEvent<
Target,
SubmitEvent
>;
export type TargetedTouchEvent<Target extends EventTarget> = TargetedEvent<
Target,
TouchEvent
>;
export type TargetedToggleEvent<Target extends EventTarget> = TargetedEvent<
Target,
ToggleEvent
>;
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 type TargetedPictureInPictureEvent<Target extends EventTarget> =
TargetedEvent<Target, PictureInPictureEvent>;
export type EventHandler<E extends TargetedEvent> = {
bivarianceHack(event: E): void;
}['bivarianceHack'];
export type AnimationEventHandler<Target extends EventTarget> = EventHandler<
TargetedAnimationEvent<Target>
>;
export type ClipboardEventHandler<Target extends EventTarget> = EventHandler<
TargetedClipboardEvent<Target>
>;
export type CommandEventHandler<Target extends EventTarget> = EventHandler<
TargetedCommandEvent<Target>
>;
export type CompositionEventHandler<Target extends EventTarget> =
EventHandler<TargetedCompositionEvent<Target>>;
export type DragEventHandler<Target extends EventTarget> = EventHandler<
TargetedDragEvent<Target>
>;
export type ToggleEventHandler<Target extends EventTarget> = EventHandler<
TargetedToggleEvent<Target>
>;
export type FocusEventHandler<Target extends EventTarget> = EventHandler<
TargetedFocusEvent<Target>
>;
export type GenericEventHandler<Target extends EventTarget> = EventHandler<
TargetedEvent<Target>
>;
export type InputEventHandler<Target extends EventTarget> = EventHandler<
TargetedInputEvent<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 SubmitEventHandler<Target extends EventTarget> = EventHandler<
TargetedSubmitEvent<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 type PictureInPictureEventHandler<Target extends EventTarget> =
EventHandler<TargetedPictureInPictureEvent<Target>>;
export interface DOMAttributes<Target extends EventTarget>
extends PreactDOMAttributes {
// Image Events
onLoad?: GenericEventHandler<Target> | undefined;
onLoadCapture?: GenericEventHandler<Target> | undefined;
onError?: GenericEventHandler<Target> | undefined;
onErrorCapture?: GenericEventHandler<Target> | undefined;
// Clipboard Events
onCopy?: ClipboardEventHandler<Target> | undefined;
onCopyCapture?: ClipboardEventHandler<Target> | undefined;
onCut?: ClipboardEventHandler<Target> | undefined;
onCutCapture?: ClipboardEventHandler<Target> | undefined;
onPaste?: ClipboardEventHandler<Target> | undefined;
onPasteCapture?: ClipboardEventHandler<Target> | undefined;
// Composition Events
onCompositionEnd?: CompositionEventHandler<Target> | undefined;
onCompositionEndCapture?: CompositionEventHandler<Target> | undefined;
onCompositionStart?: CompositionEventHandler<Target> | undefined;
onCompositionStartCapture?: CompositionEventHandler<Target> | undefined;
onCompositionUpdate?: CompositionEventHandler<Target> | undefined;
onCompositionUpdateCapture?: CompositionEventHandler<Target> | undefined;
// Popover Events
onBeforeToggle?: ToggleEventHandler<Target> | undefined;
onToggle?: ToggleEventHandler<Target> | undefined;
// Dialog Events
onClose?: GenericEventHandler<Target> | undefined;
onCancel?: GenericEventHandler<Target> | undefined;
// Focus Events
onFocus?: FocusEventHandler<Target> | undefined;
onFocusCapture?: FocusEventHandler<Target> | undefined;
onFocusIn?: FocusEventHandler<Target> | undefined;
onFocusInCapture?: FocusEventHandler<Target> | undefined;
onFocusOut?: FocusEventHandler<Target> | undefined;
onFocusOutCapture?: FocusEventHandler<Target> | undefined;
onBlur?: FocusEventHandler<Target> | undefined;
onBlurCapture?: FocusEventHandler<Target> | undefined;
// Form Events
onChange?: GenericEventHandler<Target> | undefined;
onChangeCapture?: GenericEventHandler<Target> | undefined;
onInput?: InputEventHandler<Target> | undefined;
onInputCapture?: InputEventHandler<Target> | undefined;
onBeforeInput?: InputEventHandler<Target> | undefined;
onBeforeInputCapture?: InputEventHandler<Target> | undefined;
onSearch?: GenericEventHandler<Target> | undefined;
onSearchCapture?: GenericEventHandler<Target> | undefined;
onSubmit?: SubmitEventHandler<Target> | undefined;
onSubmitCapture?: SubmitEventHandler<Target> | undefined;
onInvalid?: GenericEventHandler<Target> | undefined;
onInvalidCapture?: GenericEventHandler<Target> | undefined;
onReset?: GenericEventHandler<Target> | undefined;
onResetCapture?: GenericEventHandler<Target> | undefined;
onFormData?: GenericEventHandler<Target> | undefined;
onFormDataCapture?: GenericEventHandler<Target> | undefined;
// Keyboard Events
onKeyDown?: KeyboardEventHandler<Target> | undefined;
onKeyDownCapture?: KeyboardEventHandler<Target> | undefined;
onKeyPress?: KeyboardEventHandler<Target> | undefined;
onKeyPressCapture?: KeyboardEventHandler<Target> | undefined;
onKeyUp?: KeyboardEventHandler<Target> | undefined;
onKeyUpCapture?: KeyboardEventHandler<Target> | undefined;
// Media Events
onAbort?: GenericEventHandler<Target> | undefined;
onAbortCapture?: GenericEventHandler<Target> | undefined;
onCanPlay?: GenericEventHandler<Target> | undefined;
onCanPlayCapture?: GenericEventHandler<Target> | undefined;
onCanPlayThrough?: GenericEventHandler<Target> | undefined;
onCanPlayThroughCapture?: GenericEventHandler<Target> | undefined;
onDurationChange?: GenericEventHandler<Target> | undefined;
onDurationChangeCapture?: GenericEventHandler<Target> | undefined;
onEmptied?: GenericEventHandler<Target> | undefined;
onEmptiedCapture?: GenericEventHandler<Target> | undefined;
onEncrypted?: GenericEventHandler<Target> | undefined;
onEncryptedCapture?: GenericEventHandler<Target> | undefined;
onEnded?: GenericEventHandler<Target> | undefined;
onEndedCapture?: GenericEventHandler<Target> | undefined;
onLoadedData?: GenericEventHandler<Target> | undefined;
onLoadedDataCapture?: GenericEventHandler<Target> | undefined;
onLoadedMetadata?: GenericEventHandler<Target> | undefined;
onLoadedMetadataCapture?: GenericEventHandler<Target> | undefined;
onLoadStart?: GenericEventHandler<Target> | undefined;
onLoadStartCapture?: GenericEventHandler<Target> | undefined;
onPause?: GenericEventHandler<Target> | undefined;
onPauseCapture?: GenericEventHandler<Target> | undefined;
onPlay?: GenericEventHandler<Target> | undefined;
onPlayCapture?: GenericEventHandler<Target> | undefined;
onPlaying?: GenericEventHandler<Target> | undefined;
onPlayingCapture?: GenericEventHandler<Target> | undefined;
onProgress?: GenericEventHandler<Target> | undefined;
onProgressCapture?: GenericEventHandler<Target> | undefined;
onRateChange?: GenericEventHandler<Target> | undefined;
onRateChangeCapture?: GenericEventHandler<Target> | undefined;
onSeeked?: GenericEventHandler<Target> | undefined;
onSeekedCapture?: GenericEventHandler<Target> | undefined;
onSeeking?: GenericEventHandler<Target> | undefined;
onSeekingCapture?: GenericEventHandler<Target> | undefined;
onStalled?: GenericEventHandler<Target> | undefined;
onStalledCapture?: GenericEventHandler<Target> | undefined;
onSuspend?: GenericEventHandler<Target> | undefined;
onSuspendCapture?: GenericEventHandler<Target> | undefined;
onTimeUpdate?: GenericEventHandler<Target> | undefined;
onTimeUpdateCapture?: GenericEventHandler<Target> | undefined;
onVolumeChange?: GenericEventHandler<Target> | undefined;
onVolumeChangeCapture?: GenericEventHandler<Target> | undefined;
onWaiting?: GenericEventHandler<Target> | undefined;
onWaitingCapture?: GenericEventHandler<Target> | undefined;
// MouseEvents
onClick?: MouseEventHandler<Target> | undefined;
onClickCapture?: MouseEventHandler<Target> | undefined;
onContextMenu?: MouseEventHandler<Target> | undefined;
onContextMenuCapture?: MouseEventHandler<Target> | undefined;
onDblClick?: MouseEventHandler<Target> | undefined;
onDblClickCapture?: MouseEventHandler<Target> | undefined;
onDrag?: DragEventHandler<Target> | undefined;
onDragCapture?: DragEventHandler<Target> | undefined;
onDragEnd?: DragEventHandler<Target> | undefined;
onDragEndCapture?: DragEventHandler<Target> | undefined;
onDragEnter?: DragEventHandler<Target> | undefined;
onDragEnterCapture?: DragEventHandler<Target> | undefined;
onDragExit?: DragEventHandler<Target> | undefined;
onDragExitCapture?: DragEventHandler<Target> | undefined;
onDragLeave?: DragEventHandler<Target> | undefined;
onDragLeaveCapture?: DragEventHandler<Target> | undefined;
onDragOver?: DragEventHandler<Target> | undefined;
onDragOverCapture?: DragEventHandler<Target> | undefined;
onDragStart?: DragEventHandler<Target> | undefined;
onDragStartCapture?: DragEventHandler<Target> | undefined;
onDrop?: DragEventHandler<Target> | undefined;
onDropCapture?: DragEventHandler<Target> | undefined;
onMouseDown?: MouseEventHandler<Target> | undefined;
onMouseDownCapture?: MouseEventHandler<Target> | undefined;
onMouseEnter?: MouseEventHandler<Target> | undefined;
onMouseEnterCapture?: MouseEventHandler<Target> | undefined;
onMouseLeave?: MouseEventHandler<Target> | undefined;
onMouseLeaveCapture?: MouseEventHandler<Target> | undefined;
onMouseMove?: MouseEventHandler<Target> | undefined;
onMouseMoveCapture?: MouseEventHandler<Target> | undefined;
onMouseOut?: MouseEventHandler<Target> | undefined;
onMouseOutCapture?: MouseEventHandler<Target> | undefined;
onMouseOver?: MouseEventHandler<Target> | undefined;
onMouseOverCapture?: MouseEventHandler<Target> | undefined;
onMouseUp?: MouseEventHandler<Target> | undefined;
onMouseUpCapture?: MouseEventHandler<Target> | undefined;
// TODO: Spec for `auxclick` events was changed to make it a PointerEvent but only
// Chrome has support for it yet. When more browsers align we should change this.
// https://developer.mozilla.org/en-US/docs/Web/API/Element/auxclick_event#browser_compatibility
onAuxClick?: MouseEventHandler<Target> | undefined;
onAuxClickCapture?: MouseEventHandler<Target> | undefined;
// Selection Events
onSelect?: GenericEventHandler<Target> | undefined;
onSelectCapture?: GenericEventHandler<Target> | undefined;
// Touch Events
onTouchCancel?: TouchEventHandler<Target> | undefined;
onTouchCancelCapture?: TouchEventHandler<Target> | undefined;
onTouchEnd?: TouchEventHandler<Target> | undefined;
onTouchEndCapture?: TouchEventHandler<Target> | undefined;
onTouchMove?: TouchEventHandler<Target> | undefined;
onTouchMoveCapture?: TouchEventHandler<Target> | undefined;
onTouchStart?: TouchEventHandler<Target> | undefined;
onTouchStartCapture?: TouchEventHandler<Target> | undefined;
// Pointer Events
onPointerOver?: PointerEventHandler<Target> | undefined;
onPointerOverCapture?: PointerEventHandler<Target> | undefined;
onPointerEnter?: PointerEventHandler<Target> | undefined;
onPointerEnterCapture?: PointerEventHandler<Target> | undefined;
onPointerDown?: PointerEventHandler<Target> | undefined;
onPointerDownCapture?: PointerEventHandler<Target> | undefined;
onPointerMove?: PointerEventHandler<Target> | undefined;
onPointerMoveCapture?: PointerEventHandler<Target> | undefined;
onPointerUp?: PointerEventHandler<Target> | undefined;
onPointerUpCapture?: PointerEventHandler<Target> | undefined;
onPointerCancel?: PointerEventHandler<Target> | undefined;
onPointerCancelCapture?: PointerEventHandler<Target> | undefined;
onPointerOut?: PointerEventHandler<Target> | undefined;
onPointerOutCapture?: PointerEventHandler<Target> | undefined;
onPointerLeave?: PointerEventHandler<Target> | undefined;
onPointerLeaveCapture?: PointerEventHandler<Target> | undefined;
onGotPointerCapture?: PointerEventHandler<Target> | undefined;
onGotPointerCaptureCapture?: PointerEventHandler<Target> | undefined;
onLostPointerCapture?: PointerEventHandler<Target> | undefined;
onLostPointerCaptureCapture?: PointerEventHandler<Target> | undefined;
// UI Events
onScroll?: UIEventHandler<Target> | undefined;
onScrollEnd?: UIEventHandler<Target> | undefined;
onScrollCapture?: UIEventHandler<Target> | undefined;
// Wheel Events
onWheel?: WheelEventHandler<Target> | undefined;
onWheelCapture?: WheelEventHandler<Target> | undefined;
// Animation Events
onAnimationStart?: AnimationEventHandler<Target> | undefined;
onAnimationStartCapture?: AnimationEventHandler<Target> | undefined;
onAnimationEnd?: AnimationEventHandler<Target> | undefined;
onAnimationEndCapture?: AnimationEventHandler<Target> | undefined;
onAnimationIteration?: AnimationEventHandler<Target> | undefined;
onAnimationIterationCapture?: AnimationEventHandler<Target> | undefined;
// Transition Events
onTransitionCancel?: TransitionEventHandler<Target>;
onTransitionCancelCapture?: TransitionEventHandler<Target>;
onTransitionEnd?: TransitionEventHandler<Target>;
onTransitionEndCapture?: TransitionEventHandler<Target>;
onTransitionRun?: TransitionEventHandler<Target>;
onTransitionRunCapture?: TransitionEventHandler<Target>;
onTransitionStart?: TransitionEventHandler<Target>;
onTransitionStartCapture?: TransitionEventHandler<Target>;
// PictureInPicture Events
onEnterPictureInPicture?: PictureInPictureEventHandler<Target>;
onEnterPictureInPictureCapture?: PictureInPictureEventHandler<Target>;
onLeavePictureInPicture?: PictureInPictureEventHandler<Target>;
onLeavePictureInPictureCapture?: PictureInPictureEventHandler<Target>;
onResize?: PictureInPictureEventHandler<Target>;
onResizeCapture?: PictureInPictureEventHandler<Target>;
onCommand?: CommandEventHandler<Target>;
}
// All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/
export interface AriaAttributes {
/** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */
'aria-activedescendant'?: Signalish<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'?: Signalish<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'?: Signalish<
'none' | 'inline' | 'list' | 'both' | undefined
>;
/**
* Defines a string value that labels the current element, which is intended to be converted into Braille.
* @see aria-label.
*/
'aria-braillelabel'?: Signalish<string | undefined>;
/**
* Defines a human-readable, author-localized abbreviated description for the role of an element, which is intended to be converted into Braille.
* @see aria-roledescription.
*/
'aria-brailleroledescription'?: Signalish<string | undefined>;
/** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */
'aria-busy'?: Signalish<Booleanish | undefined>;
/**
* Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
* @see aria-pressed
* @see aria-selected.
*/
'aria-checked'?: Signalish<Booleanish | 'mixed' | undefined>;
/**
* Defines the total number of columns in a table, grid, or treegrid.
* @see aria-colindex.
*/
'aria-colcount'?: Signalish<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'?: Signalish<number | undefined>;
/**
* Defines a human readable text alternative of aria-colindex.
* @see aria-rowindextext.
*/
'aria-colindextext'?: Signalish<string | undefined>;
/**
* Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
* @see aria-colindex
* @see aria-rowspan.
*/
'aria-colspan'?: Signalish<number | undefined>;
/**
* Identifies the element (or elements) whose contents or presence are controlled by the current element.
* @see aria-owns.
*/
'aria-controls'?: Signalish<string | undefined>;
/** Indicates the element that represents the current item within a container or set of related elements. */
'aria-current'?: Signalish<
Booleanish | 'page' | 'step' | 'location' | 'date' | 'time' | undefined
>;
/**
* Identifies the element (or elements) that describes the object.
* @see aria-labelledby
*/
'aria-describedby'?: Signalish<string | undefined>;
/**
* Defines a string value that describes or annotates the current element.
* @see related aria-describedby.
*/
'aria-description'?: Signalish<string | undefined>;
/**
* Identifies the element that provides a detailed, extended description for the object.
* @see aria-describedby.
*/
'aria-details'?: Signalish<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'?: Signalish<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'?: Signalish<
'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'?: Signalish<string | undefined>;
/** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */
'aria-expanded'?: Signalish<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'?: Signalish<string | undefined>;
/**
* Indicates an element's "grabbed" state in a drag-and-drop operation.
* @deprecated in ARIA 1.1
*/
'aria-grabbed'?: Signalish<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'?: Signalish<
Booleanish | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog' | undefined
>;
/**
* Indicates whether the element is exposed to an accessibility API.
* @see aria-disabled.
*/
'aria-hidden'?: Signalish<Booleanish | undefined>;
/**
* Indicates the entered value does not conform to the format expected by the application.
* @see aria-errormessage.
*/
'aria-invalid'?: Signalish<Booleanish | 'grammar' | 'spelling' | undefined>;
/** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */
'aria-keyshortcuts'?: Signalish<string | undefined>;
/**
* Defines a string value that labels the current element.
* @see aria-labelledby.
*/
'aria-label'?: Signalish<string | undefined>;
/**
* Identifies the element (or elements) that labels the current element.
* @see aria-describedby.
*/
'aria-labelledby'?: Signalish<string | undefined>;
/** Defines the hierarchical level of an element within a structure. */
'aria-level'?: Signalish<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'?: Signalish<'off' | 'assertive' | 'polite' | undefined>;
/** Indicates whether an element is modal when displayed. */
'aria-modal'?: Signalish<Booleanish | undefined>;
/** Indicates whether a text box accepts multiple lines of input or only a single line. */
'aria-multiline'?: Signalish<Booleanish | undefined>;
/** Indicates that the user may select more than one item from the current selectable descendants. */
'aria-multiselectable'?: Signalish<Booleanish | undefined>;
/** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */
'aria-orientation'?: Signalish<'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'?: Signalish<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'?: Signalish<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'?: Signalish<number | undefined>;
/**
* Indicates the current "pressed" state of toggle buttons.
* @see aria-checked
* @see aria-selected.
*/
'aria-pressed'?: Signalish<Booleanish | 'mixed' | undefined>;
/**
* Indicates that the element is not editable, but is otherwise operable.
* @see aria-disabled.
*/
'aria-readonly'?: Signalish<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'?: Signalish<
| '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'?: Signalish<Booleanish | undefined>;
/** Defines a human-readable, author-localized description for the role of an element. */
'aria-roledescription'?: Signalish<string | undefined>;
/**
* Defines the total number of rows in a table, grid, or treegrid.
* @see aria-rowindex.
*/
'aria-rowcount'?: Signalish<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'?: Signalish<number | undefined>;
/**
* Defines a human readable text alternative of aria-rowindex.
* @see aria-colindextext.
*/
'aria-rowindextext'?: Signalish<string | undefined>;
/**
* Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
* @see aria-rowindex
* @see aria-colspan.
*/
'aria-rowspan'?: Signalish<number | undefined>;
/**
* Indicates the current "selected" state of various widgets.
* @see aria-checked
* @see aria-pressed.
*/
'aria-selected'?: Signalish<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'?: Signalish<number | undefined>;
/** Indicates if items in a table or grid are sorted in ascending or descending order. */
'aria-sort'?: Signalish<
'none' | 'ascending' | 'descending' | 'other' | undefined
>;
/** Defines the maximum allowed value for a range widget. */
'aria-valuemax'?: Signalish<number | undefined>;
/** Defines the minimum allowed value for a range widget. */
'aria-valuemin'?: Signalish<number | undefined>;
/**
* Defines the current value for a range widget.
* @see aria-valuetext.
*/
'aria-valuenow'?: Signalish<number | undefined>;
/** Defines the human readable text alternative of aria-valuenow for a range widget. */
'aria-valuetext'?: Signalish<string | undefined>;
}
// All the WAI-ARIA 1.2 role attribute values from https://www.w3.org/TR/wai-aria-1.2/#role_definitions
export type WAIAriaRole =
| 'alert'
| 'alertdialog'
| 'application'
| 'article'
| 'banner'
| 'blockquote'
| 'button'
| 'caption'
| 'cell'
| 'checkbox'
| 'code'
| 'columnheader'
| 'combobox'
| 'command'
| 'complementary'
| 'composite'
| 'contentinfo'
| 'definition'
| 'deletion'
| 'dialog'
| 'directory'
| 'document'
| 'emphasis'
| 'feed'
| 'figure'
| 'form'
| 'grid'
| 'gridcell'
| 'group'
| 'heading'
| 'img'
| 'input'
| 'insertion'
| 'landmark'
| 'link'
| 'list'
| 'listbox'
| 'listitem'
| 'log'
| 'main'
| 'marquee'
| 'math'
| 'meter'
| 'menu'
| 'menubar'
| 'menuitem'
| 'menuitemcheckbox'
| 'menuitemradio'
| 'navigation'
| 'none'
| 'note'
| 'option'
| 'paragraph'
| 'presentation'
| 'progressbar'
| 'radio'
| 'radiogroup'
| 'range'
| 'region'
| 'roletype'
| 'row'
| 'rowgroup'
| 'rowheader'
| 'scrollbar'
| 'search'
| 'searchbox'
| 'section'
| 'sectionhead'
| 'select'
| 'separator'
| 'slider'
| 'spinbutton'
| 'status'
| 'strong'
| 'structure'
| 'subscript'
| 'superscript'
| 'switch'
| 'tab'
| 'table'
| 'tablist'
| 'tabpanel'
| 'term'
| 'textbox'
| 'time'
| 'timer'
| 'toolbar'
| 'tooltip'
| 'tree'
| 'treegrid'
| 'treeitem'
| 'widget'
| 'window'
| 'none presentation';
// All the Digital Publishing WAI-ARIA 1.0 role attribute values from https://www.w3.org/TR/dpub-aria-1.0/#role_definitions
export type DPubAriaRole =
| 'doc-abstract'
| 'doc-acknowledgments'
| 'doc-afterword'
| 'doc-appendix'
| 'doc-backlink'
| 'doc-biblioentry'
| 'doc-bibliography'
| 'doc-biblioref'
| 'doc-chapter'
| 'doc-colophon'
| 'doc-conclusion'
| 'doc-cover'
| 'doc-credit'
| 'doc-credits'
| 'doc-dedication'
| 'doc-endnote'
| 'doc-endnotes'
| 'doc-epigraph'
| 'doc-epilogue'
| 'doc-errata'
| 'doc-example'
| 'doc-footnote'
| 'doc-foreword'
| 'doc-glossary'
| 'doc-glossref'
| 'doc-index'
| 'doc-introduction'
| 'doc-noteref'
| 'doc-notice'
| 'doc-pagebreak'
| 'doc-pagelist'
| 'doc-part'
| 'doc-preface'
| 'doc-prologue'
| 'doc-pullquote'
| 'doc-qna'
| 'doc-subtitle'
| 'doc-tip'
| 'doc-toc';
export type AriaRole = WAIAriaRole | DPubAriaRole;
export interface AllHTMLAttributes<RefType extends EventTarget = EventTarget>
extends ClassAttributes<RefType>,
DOMAttributes<RefType>,
AriaAttributes {
// Standard HTML Attributes
accept?: Signalish<string | undefined>;
acceptCharset?: Signalish<string | undefined>;
'accept-charset'?: Signalish<AllHTMLAttributes['acceptCharset']>;
accessKey?: Signalish<string | undefined>;
accesskey?: Signalish<AllHTMLAttributes['accessKey']>;
action?: Signalish<string | undefined>;
allow?: Signalish<string | undefined>;
allowFullScreen?: Signalish<boolean | undefined>;
allowTransparency?: Signalish<boolean | undefined>;
alt?: Signalish<string | undefined>;
as?: Signalish<string | undefined>;
async?: Signalish<boolean | undefined>;
autocomplete?: Signalish<string | undefined>;
autoComplete?: Signalish<string | undefined>;
autocorrect?: Signalish<string | undefined>;
autoCorrect?: Signalish<string | undefined>;
autofocus?: Signalish<boolean | undefined>;
autoFocus?: Signalish<boolean | undefined>;
autoPlay?: Signalish<boolean | undefined>;
autoplay?: Signalish<boolean | undefined>;
capture?: Signalish<boolean | string | undefined>;
cellPadding?: Signalish<number | string | undefined>;
cellSpacing?: Signalish<number | string | undefined>;
charSet?: Signalish<string | undefined>;
charset?: Signalish<string | undefined>;
challenge?: Signalish<string | undefined>;
checked?: Signalish<boolean | undefined>;
cite?: Signalish<string | undefined>;
class?: Signalish<string | undefined>;
className?: Signalish<string | undefined>;
cols?: Signalish<number | undefined>;
colSpan?: Signalish<number | undefined>;
colspan?: Signalish<number | undefined>;
content?: Signalish<string | undefined>;
contentEditable?: Signalish<
Booleanish | '' | 'plaintext-only' | 'inherit' | undefined
>;
contenteditable?: Signalish<AllHTMLAttributes['contentEditable']>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/contextmenu */
contextMenu?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/contextmenu */
contextmenu?: Signalish<string | undefined>;
controls?: Signalish<boolean | undefined>;
controlslist?: Signalish<
'nodownload' | 'nofullscreen' | 'noremoteplayback' | undefined
>;
controlsList?: Signalish<
'nodownload' | 'nofullscreen' | 'noremoteplayback' | undefined
>;
coords?: Signalish<string | undefined>;
crossOrigin?: Signalish<string | undefined>;
crossorigin?: Signalish<string | undefined>;
currentTime?: Signalish<number | undefined>;
data?: Signalish<string | undefined>;
dateTime?: Signalish<string | undefined>;
datetime?: Signalish<string | undefined>;
default?: Signalish<boolean | undefined>;
defaultChecked?: Signalish<boolean | undefined>;
defaultMuted?: Signalish<boolean | undefined>;
defaultPlaybackRate?: Signalish<number | undefined>;
defaultValue?: Signalish<string | undefined>;
defer?: Signalish<boolean | undefined>;
dir?: Signalish<'auto' | 'rtl' | 'ltr' | undefined>;
disabled?: Signalish<boolean | undefined>;
disableremoteplayback?: Signalish<boolean | undefined>;
disableRemotePlayback?: Signalish<boolean | undefined>;
download?: Signalish<any | undefined>;
decoding?: Signalish<'sync' | 'async' | 'auto' | undefined>;
draggable?: Signalish<boolean | undefined>;
encType?: Signalish<string | undefined>;
enctype?: Signalish<string | undefined>;
enterkeyhint?: Signalish<
| 'enter'
| 'done'
| 'go'
| 'next'
| 'previous'
| 'search'
| 'send'
| undefined
>;
elementTiming?: Signalish<string | undefined>;
elementtiming?: Signalish<AllHTMLAttributes['elementTiming']>;
exportparts?: Signalish<string | undefined>;
for?: Signalish<string | undefined>;
form?: Signalish<string | undefined>;
formAction?: Signalish<string | undefined>;
formaction?: Signalish<string | undefined>;
formEncType?: Signalish<string | undefined>;
formenctype?: Signalish<string | undefined>;
formMethod?: Signalish<string | undefined>;
formmethod?: Signalish<string | undefined>;
formNoValidate?: Signalish<boolean | undefined>;
formnovalidate?: Signalish<boolean | undefined>;
formTarget?: Signalish<string | undefined>;
formtarget?: Signalish<string | undefined>;
frameBorder?: Signalish<number | string | undefined>;
frameborder?: Signalish<number | string | undefined>;
headers?: Signalish<string | undefined>;
height?: Signalish<number | string | undefined>;
hidden?: Signalish<boolean | 'hidden' | 'until-found' | undefined>;
high?: Signalish<number | undefined>;
href?: Signalish<string | undefined>;
hrefLang?: Signalish<string | undefined>;
hreflang?: Signalish<string | undefined>;
htmlFor?: Signalish<string | undefined>;
httpEquiv?: Signalish<string | undefined>;
'http-equiv'?: Signalish<string | undefined>;
icon?: Signalish<string | undefined>;
id?: Signalish<string | undefined>;
indeterminate?: Signalish<boolean | undefined>;
inert?: Signalish<boolean | undefined>;
inputMode?: Signalish<string | undefined>;
inputmode?: Signalish<string | undefined>;
integrity?: Signalish<string | undefined>;
is?: Signalish<string | undefined>;
keyParams?: Signalish<string | undefined>;
keyType?: Signalish<string | undefined>;
kind?: Signalish<string | undefined>;
label?: Signalish<string | undefined>;
lang?: Signalish<string | undefined>;
list?: Signalish<string | undefined>;
loading?: Signalish<'eager' | 'lazy' | undefined>;
loop?: Signalish<boolean | undefined>;
low?: Signalish<number | undefined>;
manifest?: Signalish<string | undefined>;
marginHeight?: Signalish<number | undefined>;
marginWidth?: Signalish<number | undefined>;
max?: Signalish<number | string | undefined>;
maxLength?: Signalish<number | undefined>;
maxlength?: Signalish<number | undefined>;
media?: Signalish<string | undefined>;
mediaGroup?: Signalish<string | undefined>;
method?: Signalish<string | undefined>;
min?: Signalish<number | string | undefined>;
minLength?: Signalish<number | undefined>;
minlength?: Signalish<number | undefined>;
multiple?: Signalish<boolean | undefined>;
muted?: Signalish<boolean | undefined>;
name?: Signalish<string | undefined>;
nomodule?: Signalish<boolean | undefined>;
nonce?: Signalish<string | undefined>;
noValidate?: Signalish<boolean | undefined>;
novalidate?: Signalish<boolean | undefined>;
open?: Signalish<boolean | undefined>;
optimum?: Signalish<number | undefined>;
part?: Signalish<string | undefined>;
pattern?: Signalish<string | undefined>;
ping?: Signalish<string | undefined>;
placeholder?: Signalish<string | undefined>;
playsInline?: Signalish<boolean | undefined>;
playsinline?: Signalish<boolean | undefined>;
playbackRate?: Signalish<number | undefined>;
popover?: Signalish<'auto' | 'hint' | 'manual' | boolean | undefined>;
popovertarget?: Signalish<string | undefined>;
popoverTarget?: Signalish<string | undefined>;
popovertargetaction?: Signalish<'hide' | 'show' | 'toggle' | undefined>;
popoverTargetAction?: Signalish<'hide' | 'show' | 'toggle' | undefined>;
poster?: Signalish<string | undefined>;
preload?: Signalish<'auto' | 'metadata' | 'none' | undefined>;
preservesPitch?: Signalish<boolean | undefined>;
radioGroup?: Signalish<string | undefined>;
readonly?: Signalish<boolean | undefined>;
readOnly?: Signalish<boolean | undefined>;
referrerpolicy?: Signalish<
| 'no-referrer'
| 'no-referrer-when-downgrade'
| 'origin'
| 'origin-when-cross-origin'
| 'same-origin'
| 'strict-origin'
| 'strict-origin-when-cross-origin'
| 'unsafe-url'
| undefined
>;
rel?: Signalish<string | undefined>;
required?: Signalish<boolean | undefined>;
reversed?: Signalish<boolean | undefined>;
role?: Signalish<AriaRole | undefined>;
rows?: Signalish<number | undefined>;
rowSpan?: Signalish<number | undefined>;
rowspan?: Signalish<number | undefined>;
sandbox?: Signalish<string | undefined>;
scope?: Signalish<string | undefined>;
scoped?: Signalish<boolean | undefined>;
scrolling?: Signalish<string | undefined>;
seamless?: Signalish<boolean | undefined>;
selected?: Signalish<boolean | undefined>;
shape?: Signalish<string | undefined>;
size?: Signalish<number | undefined>;
sizes?: Signalish<string | undefined>;
slot?: Signalish<string | undefined>;
span?: Signalish<number | undefined>;
spellcheck?: Signalish<boolean | undefined>;
src?: Signalish<string | undefined>;
srcDoc?: Signalish<string | undefined>;
srcdoc?: Signalish<string | undefined>;
srcLang?: Signalish<string | undefined>;
srclang?: Signalish<string | undefined>;
srcSet?: Signalish<string | undefined>;
srcset?: Signalish<string | undefined>;
srcObject?: Signalish<MediaStream | MediaSource | Blob | File | null>;
start?: Signalish<number | undefined>;
step?: Signalish<number | string | undefined>;
style?: Signalish<string | CSSProperties | undefined>;
summary?: Signalish<string | undefined>;
tabIndex?: Signalish<number | undefined>;
tabindex?: Signalish<number | undefined>;
target?: Signalish<string | undefined>;
title?: Signalish<string | undefined>;
type?: Signalish<string | undefined>;
useMap?: Signalish<string | undefined>;
usemap?: Signalish<string | undefined>;
value?: Signalish<string | string[] | number | undefined>;
volume?: Signalish<string | number | undefined>;
width?: Signalish<number | string | undefined>;
wmode?: Signalish<string | undefined>;
wrap?: Signalish<string | undefined>;
// Non-standard Attributes
autocapitalize?: Signalish<
'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters' | undefined
>;
autoCapitalize?: Signalish<
'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters' | undefined
>;
disablePictureInPicture?: Signalish<boolean | undefined>;
results?: Signalish<number | undefined>;
translate?: Signalish<boolean | undefined>;
// RDFa Attributes
about?: Signalish<string | undefined>;
datatype?: Signalish<string | undefined>;
inlist?: Signalish<any>;
prefix?: Signalish<string | undefined>;
property?: Signalish<string | undefined>;
resource?: Signalish<string | undefined>;
typeof?: Signalish<string | undefined>;
vocab?: Signalish<string | undefined>;
// Microdata Attributes
itemProp?: Signalish<string | undefined>;
itemprop?: Signalish<string | undefined>;
itemScope?: Signalish<boolean | undefined>;
itemscope?: Signalish<boolean | undefined>;
itemType?: Signalish<string | undefined>;
itemtype?: Signalish<string | undefined>;
itemID?: Signalish<string | undefined>;
itemid?: Signalish<string | undefined>;
itemRef?: Signalish<string | undefined>;
itemref?: Signalish<string | undefined>;
}
export interface HTMLAttributes<RefType extends EventTarget = EventTarget>
extends ClassAttributes<RefType>,
DOMAttributes<RefType>,
AriaAttributes {
// Standard HTML Attributes
accesskey?: Signalish<string | undefined>;
accessKey?: Signalish<string | undefined>;
autocapitalize?: Signalish<
'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters' | undefined
>;
autoCapitalize?: Signalish<
'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters' | undefined
>;
autocorrect?: Signalish<string | undefined>;
autoCorrect?: Signalish<string | undefined>;
autofocus?: Signalish<boolean | undefined>;
autoFocus?: Signalish<boolean | undefined>;
class?: Signalish<string | undefined>;
className?: Signalish<string | undefined>;
contenteditable?: Signalish<
Booleanish | '' | 'plaintext-only' | 'inherit' | undefined
>;
contentEditable?: Signalish<
Booleanish | '' | 'plaintext-only' | 'inherit' | undefined
>;
dir?: Signalish<'auto' | 'rtl' | 'ltr' | undefined>;
draggable?: Signalish<boolean | undefined>;
enterkeyhint?: Signalish<
| 'enter'
| 'done'
| 'go'
| 'next'
| 'previous'
| 'search'
| 'send'
| undefined
>;
exportparts?: Signalish<string | undefined>;
hidden?: Signalish<boolean | 'hidden' | 'until-found' | undefined>;
id?: Signalish<string | undefined>;
inert?: Signalish<boolean | undefined>;
inputmode?: Signalish<string | undefined>;
inputMode?: Signalish<string | undefined>;
is?: Signalish<string | undefined>;
lang?: Signalish<string | undefined>;
nonce?: Signalish<string | undefined>;
part?: Signalish<string | undefined>;
popover?: Signalish<'auto' | 'hint' | 'manual' | boolean | undefined>;
slot?: Signalish<string | undefined>;
spellcheck?: Signalish<boolean | undefined>;
style?: Signalish<string | CSSProperties | undefined>;
tabindex?: Signalish<number | undefined>;
tabIndex?: Signalish<number | undefined>;
title?: Signalish<string | undefined>;
translate?: Signalish<boolean | undefined>;
// WAI-ARIA Attributes
role?: Signalish<AriaRole | undefined>;
// Non-standard Attributes
disablePictureInPicture?: Signalish<boolean | undefined>;
elementtiming?: Signalish<string | undefined>;
elementTiming?: Signalish<string | undefined>;
results?: Signalish<number | undefined>;
// RDFa Attributes
about?: Signalish<string | undefined>;
datatype?: Signalish<string | undefined>;
inlist?: Signalish<any>;
prefix?: Signalish<string | undefined>;
property?: Signalish<string | undefined>;
resource?: Signalish<string | undefined>;
typeof?: Signalish<string | undefined>;
vocab?: Signalish<string | undefined>;
// Microdata Attributes
itemid?: Signalish<string | undefined>;
itemID?: Signalish<string | undefined>;
itemprop?: Signalish<string | undefined>;
itemProp?: Signalish<string | undefined>;
itemref?: Signalish<string | undefined>;
itemRef?: Signalish<string | undefined>;
itemscope?: Signalish<boolean | undefined>;
itemScope?: Signalish<boolean | undefined>;
itemtype?: Signalish<string | undefined>;
itemType?: Signalish<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<T extends EventTarget = HTMLAnchorElement>
extends HTMLAttributes<T> {
download?: Signalish<any>;
href?: Signalish<string | undefined>;
hreflang?: Signalish<string | undefined>;
hrefLang?: Signalish<string | undefined>;
media?: Signalish<string | undefined>;
ping?: Signalish<string | undefined>;
rel?: Signalish<string | undefined>;
target?: Signalish<HTMLAttributeAnchorTarget | undefined>;
type?: Signalish<string | undefined>;
referrerpolicy?: Signalish<HTMLAttributeReferrerPolicy | undefined>;
referrerPolicy?: Signalish<HTMLAttributeReferrerPolicy | undefined>;
}
interface AreaHTMLAttributes<T extends EventTarget = HTMLAreaElement>
extends HTMLAttributes<T> {
alt?: Signalish<string | undefined>;
coords?: Signalish<string | undefined>;
download?: Signalish<any>;
href?: Signalish<string | undefined>;
hreflang?: Signalish<string | undefined>;
hrefLang?: Signalish<string | undefined>;
media?: Signalish<string | undefined>;
referrerpolicy?: Signalish<HTMLAttributeReferrerPolicy | undefined>;
referrerPolicy?: Signalish<HTMLAttributeReferrerPolicy | undefined>;
rel?: Signalish<string | undefined>;
shape?: Signalish<string | undefined>;
target?: Signalish<HTMLAttributeAnchorTarget | undefined>;
}
interface AudioHTMLAttributes<T extends EventTarget = HTMLAudioElement>
extends MediaHTMLAttributes<T> {}
interface BaseHTMLAttributes<T extends EventTarget = HTMLBaseElement>
extends HTMLAttributes<T> {
href?: Signalish<string | undefined>;
target?: Signalish<HTMLAttributeAnchorTarget | undefined>;
}
interface BlockquoteHTMLAttributes<T extends EventTarget = HTMLQuoteElement>
extends HTMLAttributes<T> {
cite?: Signalish<string | undefined>;
}
interface ButtonHTMLAttributes<T extends EventTarget = HTMLButtonElement>
extends HTMLAttributes<T> {
command?: Signalish<string | undefined>;
commandfor?: Signalish<string | undefined>;
commandFor?: Signalish<string | undefined>;
disabled?: Signalish<boolean | undefined>;
form?: Signalish<string | undefined>;
formaction?: Signalish<string | undefined>;
formAction?: Signalish<string | undefined>;
formenctype?: Signalish<string | undefined>;
formEncType?: Signalish<string | undefined>;
formmethod?: Signalish<string | undefined>;
formMethod?: Signalish<string | undefined>;
formnovalidate?: Signalish<boolean | undefined>;
formNoValidate?: Signalish<boolean | undefined>;
formtarget?: Signalish<string | undefined>;
formTarget?: Signalish<string | undefined>;
name?: Signalish<string | undefined>;
popovertarget?: Signalish<string | undefined>;
popoverTarget?: Signalish<string | undefined>;
popovertargetaction?: Signalish<'hide' | 'show' | 'toggle' | undefined>;
popoverTargetAction?: Signalish<'hide' | 'show' | 'toggle' | undefined>;
type?: Signalish<'submit' | 'reset' | 'button' | undefined>;
value?: Signalish<string | number | undefined>;
}
interface CanvasHTMLAttributes<T extends EventTarget = HTMLCanvasElement>
extends HTMLAttributes<T> {
height?: Signalish<number | string | undefined>;
width?: Signalish<number | string | undefined>;
}
interface ColHTMLAttributes<T extends EventTarget = HTMLTableColElement>
extends HTMLAttributes<T> {
span?: Signalish<number | undefined>;
width?: Signalish<number | string | undefined>;
}
interface ColgroupHTMLAttributes<T extends EventTarget = HTMLTableColElement>
extends HTMLAttributes<T> {
span?: Signalish<number | undefined>;
}
interface DataHTMLAttributes<T extends EventTarget = HTMLDataElement>
extends HTMLAttributes<T> {
value?: Signalish<string | number | undefined>;
}
interface DelHTMLAttributes<T extends EventTarget = HTMLModElement>
extends HTMLAttributes<T> {
cite?: Signalish<string | undefined>;
datetime?: Signalish<string | undefined>;
dateTime?: Signalish<string | undefined>;
}
interface DetailsHTMLAttributes<T extends EventTarget = HTMLDetailsElement>
extends HTMLAttributes<T> {
open?: Signalish<boolean | undefined>;
}
interface DialogHTMLAttributes<T extends EventTarget = HTMLDialogElement>
extends HTMLAttributes<T> {
onCancel?: GenericEventHandler<T> | undefined;
onClose?: GenericEventHandler<T> | undefined;
open?: Signalish<boolean | undefined>;
closedby?: Signalish<'none' | 'closerequest' | 'any' | undefined>;
closedBy?: Signalish<'none' | 'closerequest' | 'any' | undefined>;
}
interface EmbedHTMLAttributes<T extends EventTarget = HTMLEmbedElement>
extends HTMLAttributes<T> {
height?: Signalish<number | string | undefined>;
src?: Signalish<string | undefined>;
type?: Signalish<string | undefined>;
width?: Signalish<number | string | undefined>;
}
interface FieldsetHTMLAttributes<T extends EventTarget = HTMLFieldSetElement>
extends HTMLAttributes<T> {
disabled?: Signalish<boolean | undefined>;
form?: Signalish<string | undefined>;
name?: Signalish<string | undefined>;
}
interface FormHTMLAttributes<T extends EventTarget = HTMLFormElement>
extends HTMLAttributes<T> {
'accept-charset'?: Signalish<string | undefined>;
acceptCharset?: Signalish<string | undefined>;
action?: Signalish<string | undefined>;
autocomplete?: Signalish<string | undefined>;
autoComplete?: Signalish<string | undefined>;
enctype?: Signalish<string | undefined>;
encType?: Signalish<string | undefined>;
method?: Signalish<string | undefined>;
name?: Signalish<string | undefined>;
novalidate?: Signalish<boolean | undefined>;
noValidate?: Signalish<boolean | undefined>;
rel?: Signalish<string | undefined>;
target?: Signalish<string | undefined>;
}
interface IframeHTMLAttributes<T extends EventTarget = HTMLIFrameElement>
extends HTMLAttributes<T> {
allow?: Signalish<string | undefined>;
allowFullScreen?: Signalish<boolean | undefined>;
allowTransparency?: Signalish<boolean | undefined>;
/** @deprecated */
frameborder?: Signalish<number | string | undefined>;
/** @deprecated */
frameBorder?: Signalish<number | string | undefined>;
height?: Signalish<number | string | undefined>;
loading?: Signalish<'eager' | 'lazy' | undefined>;
/** @deprecated */
marginHeight?: Signalish<number | undefined>;
/** @deprecated */
marginWidth?: Signalish<number | undefined>;
name?: Signalish<string | undefined>;
referrerpolicy?: Signalish<HTMLAttributeReferrerPolicy | undefined>;
referrerPolicy?: Signalish<HTMLAttributeReferrerPolicy | undefined>;
sandbox?: Signalish<string | undefined>;
/** @deprecated */
scrolling?: Signalish<string | undefined>;
seamless?: Signalish<boolean | undefined>;
src?: Signalish<string | undefined>;
srcdoc?: Signalish<string | undefined>;
srcDoc?: Signalish<string | undefined>;
width?: Signalish<number | string | undefined>;
}
type HTMLAttributeCrossOrigin = 'anonymous' | 'use-credentials';
interface ImgHTMLAttributes<T extends EventTarget = HTMLImageElement>
extends HTMLAttributes<T> {
alt?: Signalish<string | undefined>;
crossorigin?: Signalish<HTMLAttributeCrossOrigin>;
crossOrigin?: Signalish<HTMLAttributeCrossOrigin>;
decoding?: Signalish<'async' | 'auto' | 'sync' | undefined>;
fetchpriority?: Signalish<'high' | 'auto' | 'low' | undefined>;
fetchPriority?: Signalish<'high' | 'auto' | 'low' | undefined>;
height?: Signalish<number | string | undefined>;
loading?: Signalish<'eager' | 'lazy' | undefined>;
referrerpolicy?: Signalish<HTMLAttributeReferrerPolicy | undefined>;
referrerPolicy?: Signalish<HTMLAttributeReferrerPolicy | undefined>;
sizes?: Signalish<string | undefined>;
src?: Signalish<string | undefined>;
srcset?: Signalish<string | undefined>;
srcSet?: Signalish<string | undefined>;
usemap?: Signalish<string | undefined>;
useMap?: Signalish<string | undefined>;
width?: Signalish<number | 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<T extends EventTarget = HTMLInputElement>
extends HTMLAttributes<T> {
accept?: Signalish<string | undefined>;
alt?: Signalish<string | undefined>;
autocomplete?: Signalish<string | undefined>;
autoComplete?: Signalish<string | undefined>;
capture?: Signalish<'user' | 'environment' | undefined>; // https://www.w3.org/TR/html-media-capture/#the-capture-attribute
checked?: Signalish<boolean | undefined>;
defaultChecked?: Signalish<boolean | undefined>;
defaultValue?: Signalish<string | number | undefined>;
disabled?: Signalish<boolean | undefined>;
enterKeyHint?: Signalish<
| 'enter'
| 'done'
| 'go'
| 'next'
| 'previous'
| 'search'
| 'send'
| undefined
>;
form?: Signalish<string | undefined>;
formaction?: Signalish<string | undefined>;
formAction?: Signalish<string | undefined>;
formenctype?: Signalish<string | undefined>;
formEncType?: Signalish<string | undefined>;
formmethod?: Signalish<string | undefined>;
formMethod?: Signalish<string | undefined>;
formnovalidate?: Signalish<boolean | undefined>;
formNoValidate?: Signalish<boolean | undefined>;
formtarget?: Signalish<string | undefined>;
formTarget?: Signalish<string | undefined>;
height?: Signalish<number | string | undefined>;
indeterminate?: Signalish<boolean | undefined>;
list?: Signalish<string | undefined>;
max?: Signalish<number | string | undefined>;
maxlength?: Signalish<number | undefined>;
maxLength?: Signalish<number | undefined>;
min?: Signalish<number | string | undefined>;
minlength?: Signalish<number | undefined>;
minLength?: Signalish<number | undefined>;
multiple?: Signalish<boolean | undefined>;
name?: Signalish<string | undefined>;
pattern?: Signalish<string | undefined>;
placeholder?: Signalish<string | undefined>;
readonly?: Signalish<boolean | undefined>;
readOnly?: Signalish<boolean | undefined>;
required?: Signalish<boolean | undefined>;
size?: Signalish<number | undefined>;
src?: Signalish<string | undefined>;
step?: Signalish<number | string | undefined>;
type?: HTMLInputTypeAttribute | undefined;
value?: Signalish<string | number | undefined>;
width?: Signalish<number | string | undefined>;
onChange?: GenericEventHandler<T> | undefined;
}
interface InsHTMLAttributes<T extends EventTarget = HTMLModElement>
extends HTMLAttributes<T> {
cite?: Signalish<string | undefined>;
datetime?: Signalish<string | undefined>;
dateTime?: Signalish<string | undefined>;
}
interface KeygenHTMLAttributes<T extends EventTarget = HTMLUnknownElement>
extends HTMLAttributes<T> {
challenge?: Signalish<string | undefined>;
disabled?: Signalish<boolean | undefined>;
form?: Signalish<string | undefined>;
keyType?: Signalish<string | undefined>;
keyParams?: Signalish<string | undefined>;
name?: Signalish<string | undefined>;
}
interface LabelHTMLAttributes<T extends EventTarget = HTMLLabelElement>
extends HTMLAttributes<T> {
for?: Signalish<string | undefined>;
form?: Signalish<string | undefined>;
htmlFor?: Signalish<string | undefined>;
}
interface LiHTMLAttributes<T extends EventTarget = HTMLLIElement>
extends HTMLAttributes<T> {
value?: Signalish<string | number | undefined>;
}
interface LinkHTMLAttributes<T extends EventTarget = HTMLLinkElement>
extends HTMLAttributes<T> {
as?: Signalish<string | undefined>;
crossorigin?: Signalish<HTMLAttributeCrossOrigin>;
crossOrigin?: Signalish<HTMLAttributeCrossOrigin>;
fetchpriority?: Signalish<'high' | 'low' | 'auto' | undefined>;
fetchPriority?: Signalish<'high' | 'low' | 'auto' | undefined>;
href?: Signalish<string | undefined>;
hreflang?: Signalish<string | undefined>;
hrefLang?: Signalish<string | undefined>;
integrity?: Signalish<string | undefined>;
media?: Signalish<string | undefined>;
imageSrcSet?: Signalish<string | undefined>;
referrerpolicy?: Signalish<HTMLAttributeReferrerPolicy | undefined>;
referrerPolicy?: Signalish<HTMLAttributeReferrerPolicy | undefined>;
rel?: Signalish<string | undefined>;
sizes?: Signalish<string | undefined>;
type?: Signalish<string | undefined>;
charset?: Signalish<string | undefined>;
charSet?: Signalish<string | undefined>;
}
interface MapHTMLAttributes<T extends EventTarget = HTMLMapElement>
extends HTMLAttributes<T> {
name?: Signalish<string | undefined>;
}
interface MarqueeHTMLAttributes<T extends EventTarget = HTMLMarqueeElement>
extends HTMLAttributes<T> {
behavior?: Signalish<'scroll' | 'slide' | 'alternate' | undefined>;
bgColor?: Signalish<string | undefined>;
direction?: Signalish<'left' | 'right' | 'up' | 'down' | undefined>;
height?: Signalish<number | string | undefined>;
hspace?: Signalish<number | string | undefined>;
loop?: Signalish<number | string | undefined>;
scrollAmount?: Signalish<number | string | undefined>;
scrollDelay?: Signalish<number | string | undefined>;
trueSpeed?: Signalish<boolean | undefined>;
vspace?: Signalish<number | string | undefined>;
width?: Signalish<number | string | undefined>;
}
interface MediaHTMLAttributes<T extends EventTarget = HTMLMediaElement>
extends HTMLAttributes<T> {
autoplay?: Signalish<boolean | undefined>;
autoPlay?: Signalish<boolean | undefined>;
controls?: Signalish<boolean | undefined>;
controlslist?: Signalish<
'nodownload' | 'nofullscreen' | 'noremoteplayback' | undefined
>;
controlsList?: Signalish<
'nodownload' | 'nofullscreen' | 'noremoteplayback' | undefined
>;
crossorigin?: Signalish<HTMLAttributeCrossOrigin>;
crossOrigin?: Signalish<HTMLAttributeCrossOrigin>;
currentTime?: Signalish<number | undefined>;
defaultMuted?: Signalish<boolean | undefined>;
defaultPlaybackRate?: Signalish<number | undefined>;
disableremoteplayback?: Signalish<boolean | undefined>;
disableRemotePlayback?: Signalish<boolean | undefined>;
loop?: Signalish<boolean | undefined>;
mediaGroup?: Signalish<string | undefined>;
muted?: Signalish<boolean | undefined>;
playbackRate?: Signalish<number | undefined>;
preload?: Signalish<'auto' | 'metadata' | 'none' | undefined>;
preservesPitch?: Signalish<boolean | undefined>;
src?: Signalish<string | undefined>;
srcObject?: Signalish<MediaStream | MediaSource | Blob | File | null>;
volume?: Signalish<string | number | undefined>;
}
interface MenuHTMLAttributes<T extends EventTarget = HTMLMenuElement>
extends HTMLAttributes<T> {
type?: Signalish<string | undefined>;
}
interface MetaHTMLAttributes<T extends EventTarget = HTMLMetaElement>
extends HTMLAttributes<T> {
charset?: Signalish<string | undefined>;
charSet?: Signalish<string | undefined>;
content?: Signalish<string | undefined>;
'http-equiv'?: Signalish<string | undefined>;
httpEquiv?: Signalish<string | undefined>;
name?: Signalish<string | undefined>;
media?: Signalish<string | undefined>;
}
interface MeterHTMLAttributes<T extends EventTarget = HTMLMeterElement>
extends HTMLAttributes<T> {
form?: Signalish<string | undefined>;
high?: Signalish<number | undefined>;
low?: Signalish<number | undefined>;
max?: Signalish<number | string | undefined>;
min?: Signalish<number | string | undefined>;
optimum?: Signalish<number | undefined>;
value?: Signalish<string | number | undefined>;
}
interface ObjectHTMLAttributes<T extends EventTarget = HTMLObjectElement>
extends HTMLAttributes<T> {
classID?: Signalish<string | undefined>;
data?: Signalish<string | undefined>;
form?: Signalish<string | undefined>;
height?: Signalish<number | string | undefined>;
name?: Signalish<string | undefined>;
type?: Signalish<string | undefined>;
usemap?: Signalish<string | undefined>;
useMap?: Signalish<string | undefined>;
width?: Signalish<number | string | undefined>;
wmode?: Signalish<string | undefined>;
}
interface OlHTMLAttributes<T extends EventTarget = HTMLOListElement>
extends HTMLAttributes<T> {
reversed?: Signalish<boolean | undefined>;
start?: Signalish<number | undefined>;
type?: Signalish<'1' | 'a' | 'A' | 'i' | 'I' | undefined>;
}
interface OptgroupHTMLAttributes<T extends EventTarget = HTMLOptGroupElement>
extends HTMLAttributes<T> {
disabled?: Signalish<boolean | undefined>;
label?: Signalish<string | undefined>;
}
interface OptionHTMLAttributes<T extends EventTarget = HTMLOptionElement>
extends HTMLAttributes<T> {
disabled?: Signalish<boolean | undefined>;
label?: Signalish<string | undefined>;
selected?: Signalish<boolean | undefined>;
value?: Signalish<string | number | undefined>;
}
interface OutputHTMLAttributes<T extends EventTarget = HTMLOutputElement>
extends HTMLAttributes<T> {
for?: Signalish<string | undefined>;
form?: Signalish<string | undefined>;
htmlFor?: Signalish<string | undefined>;
name?: Signalish<string | undefined>;
}
interface ParamHTMLAttributes<T extends EventTarget = HTMLParamElement>
extends HTMLAttributes<T> {
name?: Signalish<string | undefined>;
value?: Signalish<string | number | undefined>;
}
interface ProgressHTMLAttributes<T extends EventTarget = HTMLProgressElement>
extends HTMLAttributes<T> {
max?: Signalish<number | string | undefined>;
value?: Signalish<string | number | undefined>;
}
interface QuoteHTMLAttributes<T extends EventTarget = HTMLQuoteElement>
extends HTMLAttributes<T> {
cite?: Signalish<string | undefined>;
}
interface ScriptHTMLAttributes<T extends EventTarget = HTMLScriptElement>
extends HTMLAttributes<T> {
async?: Signalish<boolean | undefined>;
/** @deprecated */
charset?: Signalish<string | undefined>;
/** @deprecated */
charSet?: Signalish<string | undefined>;
crossorigin?: Signalish<HTMLAttributeCrossOrigin>;
crossOrigin?: Signalish<HTMLAttributeCrossOrigin>;
defer?: Signalish<boolean | undefined>;
integrity?: Signalish<string | undefined>;
nomodule?: Signalish<boolean | undefined>;
noModule?: Signalish<boolean | undefined>;
referrerpolicy?: Signalish<HTMLAttributeReferrerPolicy | undefined>;
referrerPolicy?: Signalish<HTMLAttributeReferrerPolicy | undefined>;
src?: Signalish<string | undefined>;
type?: Signalish<string | undefined>;
}
interface SelectHTMLAttributes<T extends EventTarget = HTMLSelectElement>
extends HTMLAttributes<T> {
autocomplete?: Signalish<string | undefined>;
autoComplete?: Signalish<string | undefined>;
defaultValue?: Signalish<string | number | undefined>;
disabled?: Signalish<boolean | undefined>;
form?: Signalish<string | undefined>;
multiple?: Signalish<boolean | undefined>;
name?: Signalish<string | undefined>;
required?: Signalish<boolean | undefined>;
size?: Signalish<number | undefined>;
value?: Signalish<string | number | undefined>;
onChange?: GenericEventHandler<T> | undefined;
}
interface SlotHTMLAttributes<T extends EventTarget = HTMLSlotElement>
extends HTMLAttributes<T> {
name?: Signalish<string | undefined>;
}
interface SourceHTMLAttributes<T extends EventTarget = HTMLSourceElement>
extends HTMLAttributes<T> {
height?: Signalish<number | string | undefined>;
media?: Signalish<string | undefined>;
sizes?: Signalish<string | undefined>;
src?: Signalish<string | undefined>;
srcset?: Signalish<string | undefined>;
srcSet?: Signalish<string | undefined>;
type?: Signalish<string | undefined>;
width?: Signalish<number | string | undefined>;
}
interface StyleHTMLAttributes<T extends EventTarget = HTMLStyleElement>
extends HTMLAttributes<T> {
media?: Signalish<string | undefined>;
scoped?: Signalish<boolean | undefined>;
type?: Signalish<string | undefined>;
}
interface TableHTMLAttributes<T extends EventTarget = HTMLTableElement>
extends HTMLAttributes<T> {
cellPadding?: Signalish<string | undefined>;
cellSpacing?: Signalish<string | undefined>;
summary?: Signalish<string | undefined>;
width?: Signalish<number | string | undefined>;
}
interface TdHTMLAttributes<T extends EventTarget = HTMLTableCellElement>
extends HTMLAttributes<T> {
align?: Signalish<
'left' | 'center' | 'right' | 'justify' | 'char' | undefined
>;
colspan?: Signalish<number | undefined>;
colSpan?: Signalish<number | undefined>;
headers?: Signalish<string | undefined>;
rowspan?: Signalish<number | undefined>;
rowSpan?: Signalish<number | undefined>;
scope?: Signalish<string | undefined>;
abbr?: Signalish<string | undefined>;
height?: Signalish<number | string | undefined>;
width?: Signalish<number | string | undefined>;
valign?: Signalish<'top' | 'middle' | 'bottom' | 'baseline' | undefined>;
}
interface TextareaHTMLAttributes<T extends EventTarget = HTMLTextAreaElement>
extends HTMLAttributes<T> {
autocomplete?: Signalish<string | undefined>;
autoComplete?: Signalish<string | undefined>;
cols?: Signalish<number | undefined>;
defaultValue?: Signalish<string | number | undefined>;
dirName?: Signalish<string | undefined>;
disabled?: Signalish<boolean | undefined>;
form?: Signalish<string | undefined>;
maxlength?: Signalish<number | undefined>;
maxLength?: Signalish<number | undefined>;
minlength?: Signalish<number | undefined>;
minLength?: Signalish<number | undefined>;
name?: Signalish<string | undefined>;
placeholder?: Signalish<string | undefined>;
readOnly?: Signalish<boolean | undefined>;
required?: Signalish<boolean | undefined>;
rows?: Signalish<number | undefined>;
value?: Signalish<string | number | undefined>;
wrap?: Signalish<string | undefined>;
onChange?: GenericEventHandler<T> | undefined;
}
interface ThHTMLAttributes<T extends EventTarget = HTMLTableCellElement>
extends HTMLAttributes<T> {
align?: Signalish<
'left' | 'center' | 'right' | 'justify' | 'char' | undefined
>;
colspan?: Signalish<number | undefined>;
colSpan?: Signalish<number | undefined>;
headers?: Signalish<string | undefined>;
rowspan?: Signalish<number | undefined>;
rowSpan?: Signalish<number | undefined>;
scope?: Signalish<string | undefined>;
abbr?: Signalish<string | undefined>;
}
interface TimeHTMLAttributes<T extends EventTarget = HTMLTimeElement>
extends HTMLAttributes<T> {
datetime?: Signalish<string | undefined>;
dateTime?: Signalish<string | undefined>;
}
interface TrackHTMLAttributes<T extends EventTarget = HTMLTrackElement>
extends MediaHTMLAttributes<T> {
default?: Signalish<boolean | undefined>;
kind?: Signalish<string | undefined>;
label?: Signalish<string | undefined>;
srclang?: Signalish<string | undefined>;
srcLang?: Signalish<string | undefined>;
}
interface VideoHTMLAttributes<T extends EventTarget = HTMLVideoElement>
extends MediaHTMLAttributes<T> {
disablePictureInPicture?: Signalish<boolean | undefined>;
height?: Signalish<number | string | undefined>;
playsinline?: Signalish<boolean | undefined>;
playsInline?: Signalish<boolean | undefined>;
poster?: Signalish<string | undefined>;
width?: Signalish<number | string | undefined>;
}
export type DetailedHTMLProps<
HA extends HTMLAttributes<RefType>,
RefType extends EventTarget = EventTarget
> = HA;
export interface MathMLAttributes<Target extends EventTarget = MathMLElement>
extends HTMLAttributes<Target> {
dir?: Signalish<'ltr' | 'rtl' | undefined>;
displaystyle?: Signalish<boolean | undefined>;
/** @deprecated This feature is non-standard. See https://developer.mozilla.org/en-US/docs/Web/MathML/Global_attributes/href */
href?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Global_attributes/mathbackground */
mathbackground?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Global_attributes/mathcolor */
mathcolor?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Global_attributes/mathsize */
mathsize?: Signalish<string | undefined>;
nonce?: Signalish<string | undefined>;
scriptlevel?: Signalish<string | undefined>;
}
export interface AnnotationMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
encoding?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/semantics#src */
src?: Signalish<string | undefined>;
}
export interface AnnotationXmlMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
encoding?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/semantics#src */
src?: Signalish<string | undefined>;
}
export interface MActionMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/maction#actiontype */
actiontype?: Signalish<'statusline' | 'toggle' | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/maction#selection */
selection?: Signalish<string | undefined>;
}
export interface MathMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
display?: Signalish<'block' | 'inline' | undefined>;
}
export interface MEncloseMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
notation?: Signalish<string | undefined>;
}
export interface MErrorMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {}
export interface MFencedMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
close?: Signalish<string | undefined>;
open?: Signalish<string | undefined>;
separators?: Signalish<string | undefined>;
}
export interface MFracMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mfrac#denomalign */
denomalign?: Signalish<'center' | 'left' | 'right' | undefined>;
linethickness?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mfrac#numalign */
numalign?: Signalish<'center' | 'left' | 'right' | undefined>;
}
export interface MiMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
/** The only value allowed in the current specification is normal (case insensitive)
* See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mi#mathvariant */
mathvariant?: Signalish<
| 'normal'
| 'bold'
| 'italic'
| 'bold-italic'
| 'double-struck'
| 'bold-fraktur'
| 'script'
| 'bold-script'
| 'fraktur'
| 'sans-serif'
| 'bold-sans-serif'
| 'sans-serif-italic'
| 'sans-serif-bold-italic'
| 'monospace'
| 'initial'
| 'tailed'
| 'looped'
| 'stretched'
| undefined
>;
}
export interface MmultiScriptsMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mmultiscripts#subscriptshift */
subscriptshift?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mmultiscripts#superscriptshift */
superscriptshift?: Signalish<string | undefined>;
}
export interface MNMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {}
export interface MOMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mo#accent */
accent?: Signalish<boolean | undefined>;
fence?: Signalish<boolean | undefined>;
largeop?: Signalish<boolean | undefined>;
lspace?: Signalish<string | undefined>;
maxsize?: Signalish<string | undefined>;
minsize?: Signalish<string | undefined>;
movablelimits?: Signalish<boolean | undefined>;
rspace?: Signalish<string | undefined>;
separator?: Signalish<boolean | undefined>;
stretchy?: Signalish<boolean | undefined>;
symmetric?: Signalish<boolean | undefined>;
}
export interface MOverMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
accent?: Signalish<boolean | undefined>;
}
export interface MPaddedMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
depth?: Signalish<string | undefined>;
height?: Signalish<string | undefined>;
lspace?: Signalish<string | undefined>;
voffset?: Signalish<string | undefined>;
width?: Signalish<string | undefined>;
}
export interface MPhantomMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {}
export interface MPrescriptsMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {}
export interface MRootMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {}
export interface MRowMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {}
export interface MSMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/ms#browser_compatibility */
lquote?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/ms#browser_compatibility */
rquote?: Signalish<string | undefined>;
}
export interface MSpaceMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
depth?: Signalish<string | undefined>;
height?: Signalish<string | undefined>;
width?: Signalish<string | undefined>;
}
export interface MSqrtMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {}
export interface MStyleMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mstyle#background */
background?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mstyle#color */
color?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mstyle#fontsize */
fontsize?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mstyle#fontstyle */
fontstyle?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mstyle#fontweight */
fontweight?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mstyle#scriptminsize */
scriptminsize?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mstyle#scriptsizemultiplier */
scriptsizemultiplier?: Signalish<string | undefined>;
}
export interface MSubMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/msub#subscriptshift */
subscriptshift?: Signalish<string | undefined>;
}
export interface MSubsupMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/msubsup#subscriptshift */
subscriptshift?: Signalish<string | undefined>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/msubsup#superscriptshift */
superscriptshift?: Signalish<string | undefined>;
}
export interface MSupMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/msup#superscriptshift */
superscriptshift?: Signalish<string | undefined>;
}
export interface MTableMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtable#align */
align?: Signalish<
'axis' | 'baseline' | 'bottom' | 'center' | 'top' | undefined
>;
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtable#columnalign */
columnalign?: Signalish<'center' | 'left' | 'right' | undefined>;
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtable#columnlines */
columnlines?: Signalish<'dashed' | 'none' | 'solid' | undefined>;
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtable#columnspacing */
columnspacing?: Signalish<string | undefined>;
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtable#frame */
frame?: Signalish<'dashed' | 'none' | 'solid' | undefined>;
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtable#framespacing */
framespacing?: Signalish<string | undefined>;
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtable#rowalign */
rowalign?: Signalish<
'axis' | 'baseline' | 'bottom' | 'center' | 'top' | undefined
>;
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtable#rowlines */
rowlines?: Signalish<'dashed' | 'none' | 'solid' | undefined>;
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtable#rowspacing */
rowspacing?: Signalish<string | undefined>;
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtable#width */
width?: Signalish<string | undefined>;
}
export interface MTdMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
columnspan?: Signalish<number | undefined>;
rowspan?: Signalish<number | undefined>;
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtd#columnalign */
columnalign?: Signalish<'center' | 'left' | 'right' | undefined>;
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtd#rowalign */
rowalign?: Signalish<
'axis' | 'baseline' | 'bottom' | 'center' | 'top' | undefined
>;
}
export interface MTextMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {}
export interface MTrMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtr#columnalign */
columnalign?: Signalish<'center' | 'left' | 'right' | undefined>;
/** Non-standard attribute See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtr#rowalign */
rowalign?: Signalish<
'axis' | 'baseline' | 'bottom' | 'center' | 'top' | undefined
>;
}
export interface MUnderMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
accentunder?: Signalish<boolean | undefined>;
}
export interface MUnderoverMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {
accent?: Signalish<boolean | undefined>;
accentunder?: Signalish<boolean | undefined>;
}
export interface SemanticsMathMLAttributes<T extends EventTarget>
extends MathMLAttributes<T> {}
export interface IntrinsicSVGElements {
svg: SVGAttributes<SVGSVGElement>;
animate: SVGAttributes<SVGAnimateElement>;
circle: SVGAttributes<SVGCircleElement>;
animateMotion: SVGAttributes<SVGAnimateMotionElement>;
animateTransform: SVGAttributes<SVGAnimateTransformElement>;
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>;
feDistantLight: SVGAttributes<SVGFEDistantLightElement>;
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>;
fePointLight: SVGAttributes<SVGFEPointLightElement>;
feSpecularLighting: SVGAttributes<SVGFESpecularLightingElement>;
feSpotLight: SVGAttributes<SVGFESpotLightElement>;
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>;
metadata: SVGAttributes<SVGMetadataElement>;
mpath: SVGAttributes<SVGMPathElement>;
path: SVGAttributes<SVGPathElement>;
pattern: SVGAttributes<SVGPatternElement>;
polygon: SVGAttributes<SVGPolygonElement>;
polyline: SVGAttributes<SVGPolylineElement>;
radialGradient: SVGAttributes<SVGRadialGradientElement>;
rect: SVGAttributes<SVGRectElement>;
set: SVGAttributes<SVGSetElement>;
stop: SVGAttributes<SVGStopElement>;
switch: SVGAttributes<SVGSwitchElement>;
symbol: SVGAttributes<SVGSymbolElement>;
text: SVGAttributes<SVGTextElement>;
textPath: SVGAttributes<SVGTextPathElement>;
tspan: SVGAttributes<SVGTSpanElement>;
use: SVGAttributes<SVGUseElement>;
view: SVGAttributes<SVGViewElement>;
}
export interface IntrinsicMathMLElements {
annotation: AnnotationMathMLAttributes<MathMLElement>;
'annotation-xml': AnnotationXmlMathMLAttributes<MathMLElement>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/maction */
maction: MActionMathMLAttributes<MathMLElement>;
math: MathMathMLAttributes<MathMLElement>;
/** This feature is non-standard. See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/menclose */
menclose: MEncloseMathMLAttributes<MathMLElement>;
merror: MErrorMathMLAttributes<MathMLElement>;
/** @deprecated See https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mfenced */
mfenced: MFencedMathMLAttributes<MathMLElement>;
mfrac: MFracMathMLAttributes<MathMLElement>;
mi: MiMathMLAttributes<MathMLElement>;
mmultiscripts: MmultiScriptsMathMLAttributes<MathMLElement>;
mn: MNMathMLAttributes<MathMLElement>;
mo: MOMathMLAttributes<MathMLElement>;
mover: MOverMathMLAttributes<MathMLElement>;
mpadded: MPaddedMathMLAttributes<MathMLElement>;
mphantom: MPhantomMathMLAttributes<MathMLElement>;
mprescripts: MPrescriptsMathMLAttributes<MathMLElement>;
mroot: MRootMathMLAttributes<MathMLElement>;
mrow: MRowMathMLAttributes<MathMLElement>;
ms: MSMathMLAttributes<MathMLElement>;
mspace: MSpaceMathMLAttributes<MathMLElement>;
msqrt: MSqrtMathMLAttributes<MathMLElement>;
mstyle: MStyleMathMLAttributes<MathMLElement>;
msub: MSubMathMLAttributes<MathMLElement>;
msubsup: MSubsupMathMLAttributes<MathMLElement>;
msup: MSupMathMLAttributes<MathMLElement>;
mtable: MTableMathMLAttributes<MathMLElement>;
mtd: MTdMathMLAttributes<MathMLElement>;
mtext: MTextMathMLAttributes<MathMLElement>;
mtr: MTrMathMLAttributes<MathMLElement>;
munder: MUnderMathMLAttributes<MathMLElement>;
munderover: MUnderMathMLAttributes<MathMLElement>;
semantics: SemanticsMathMLAttributes<MathMLElement>;
}
export interface IntrinsicElements
extends IntrinsicSVGElements,
IntrinsicMathMLElements {
a: AnchorHTMLAttributes<HTMLAnchorElement>;
abbr: HTMLAttributes<HTMLElement>;
address: HTMLAttributes<HTMLElement>;
area: AreaHTMLAttributes<HTMLAreaElement>;
article: HTMLAttributes<HTMLElement>;
aside: HTMLAttributes<HTMLElement>;
audio: AudioHTMLAttributes<HTMLAudioElement>;
b: HTMLAttributes<HTMLElement>;
base: BaseHTMLAttributes<HTMLBaseElement>;
bdi: HTMLAttributes<HTMLElement>;
bdo: HTMLAttributes<HTMLElement>;
big: HTMLAttributes<HTMLElement>;
blockquote: BlockquoteHTMLAttributes<HTMLQuoteElement>;
body: HTMLAttributes<HTMLBodyElement>;
br: HTMLAttributes<HTMLBRElement>;
button: ButtonHTMLAttributes<HTMLButtonElement>;
canvas: CanvasHTMLAttributes<HTMLCanvasElement>;
caption: HTMLAttributes<HTMLTableCaptionElement>;
cite: HTMLAttributes<HTMLElement>;
code: HTMLAttributes<HTMLElement>;
col: ColHTMLAttributes<HTMLTableColElement>;
colgroup: ColgroupHTMLAttributes<HTMLTableColElement>;
data: DataHTMLAttributes<HTMLDataElement>;
datalist: HTMLAttributes<HTMLDataListElement>;
dd: HTMLAttributes<HTMLElement>;
del: DelHTMLAttributes<HTMLModElement>;
details: DetailsHTMLAttributes<HTMLDetailsElement>;
dfn: HTMLAttributes<HTMLElement>;
dialog: DialogHTMLAttributes<HTMLDialogElement>;
div: HTMLAttributes<HTMLDivElement>;
dl: HTMLAttributes<HTMLDListElement>;
dt: HTMLAttributes<HTMLElement>;
em: HTMLAttributes<HTMLElement>;
embed: EmbedHTMLAttributes<HTMLEmbedElement>;
fieldset: FieldsetHTMLAttributes<HTMLFieldSetElement>;
figcaption: HTMLAttributes<HTMLElement>;
figure: HTMLAttributes<HTMLElement>;
footer: HTMLAttributes<HTMLElement>;
form: FormHTMLAttributes<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: IframeHTMLAttributes<HTMLIFrameElement>;
img: ImgHTMLAttributes<HTMLImageElement>;
input: InputHTMLAttributes<HTMLInputElement>;
ins: InsHTMLAttributes<HTMLModElement>;
kbd: HTMLAttributes<HTMLElement>;
keygen: KeygenHTMLAttributes<HTMLUnknownElement>;
label: LabelHTMLAttributes<HTMLLabelElement>;
legend: HTMLAttributes<HTMLLegendElement>;
li: LiHTMLAttributes<HTMLLIElement>;
link: LinkHTMLAttributes<HTMLLinkElement>;
main: HTMLAttributes<HTMLElement>;
map: MapHTMLAttributes<HTMLMapElement>;
mark: HTMLAttributes<HTMLElement>;
marquee: MarqueeHTMLAttributes<HTMLMarqueeElement>;
menu: MenuHTMLAttributes<HTMLMenuElement>;
menuitem: HTMLAttributes<HTMLUnknownElement>;
meta: MetaHTMLAttributes<HTMLMetaElement>;
meter: MeterHTMLAttributes<HTMLMeterElement>;
nav: HTMLAttributes<HTMLElement>;
noscript: HTMLAttributes<HTMLElement>;
object: ObjectHTMLAttributes<HTMLObjectElement>;
ol: OlHTMLAttributes<HTMLOListElement>;
optgroup: OptgroupHTMLAttributes<HTMLOptGroupElement>;
option: OptionHTMLAttributes<HTMLOptionElement>;
output: OutputHTMLAttributes<HTMLOutputElement>;
p: HTMLAttributes<HTMLParagraphElement>;
param: ParamHTMLAttributes<HTMLParamElement>;
picture: HTMLAttributes<HTMLPictureElement>;
pre: HTMLAttributes<HTMLPreElement>;
progress: ProgressHTMLAttributes<HTMLProgressElement>;
q: QuoteHTMLAttributes<HTMLQuoteElement>;
rp: HTMLAttributes<HTMLElement>;
rt: HTMLAttributes<HTMLElement>;
ruby: HTMLAttributes<HTMLElement>;
s: HTMLAttributes<HTMLElement>;
samp: HTMLAttributes<HTMLElement>;
script: ScriptHTMLAttributes<HTMLScriptElement>;
search: HTMLAttributes<HTMLElement>;
section: HTMLAttributes<HTMLElement>;
select: SelectHTMLAttributes<HTMLSelectElement>;
slot: SlotHTMLAttributes<HTMLSlotElement>;
small: HTMLAttributes<HTMLElement>;
source: SourceHTMLAttributes<HTMLSourceElement>;
span: HTMLAttributes<HTMLSpanElement>;
strong: HTMLAttributes<HTMLElement>;
style: StyleHTMLAttributes<HTMLStyleElement>;
sub: HTMLAttributes<HTMLElement>;
summary: HTMLAttributes<HTMLElement>;
sup: HTMLAttributes<HTMLElement>;
table: TableHTMLAttributes<HTMLTableElement>;
tbody: HTMLAttributes<HTMLTableSectionElement>;
td: TdHTMLAttributes<HTMLTableCellElement>;
template: HTMLAttributes<HTMLTemplateElement>;
textarea: TextareaHTMLAttributes<HTMLTextAreaElement>;
tfoot: HTMLAttributes<HTMLTableSectionElement>;
th: ThHTMLAttributes<HTMLTableCellElement>;
thead: HTMLAttributes<HTMLTableSectionElement>;
time: TimeHTMLAttributes<HTMLTimeElement>;
title: HTMLAttributes<HTMLTitleElement>;
tr: HTMLAttributes<HTMLTableRowElement>;
track: TrackHTMLAttributes<HTMLTrackElement>;
u: HTMLAttributes<HTMLElement>;
ul: HTMLAttributes<HTMLUListElement>;
var: HTMLAttributes<HTMLElement>;
video: VideoHTMLAttributes<HTMLVideoElement>;
wbr: HTMLAttributes<HTMLElement>;
}
}