UNPKG

vite-plugin-vanjs

Version:

An async first mini meta-framework for VanJS powered by Vite

1,392 lines (1,375 loc) 92 kB
// deno-lint-ignore-file no-empty-interface ban-types import * as csstype from "csstype"; import type { Primitive, PropValueOrDerived, State, StateView, } from "vanjs-core"; import { Element as VElement } from "mini-van-plate/van-plate"; /** * Based on JSX types for Surplus and Inferno and adapted for `dom-expressions`. * * https://github.com/adamhaile/surplus/blob/master/index.d.ts * https://github.com/infernojs/inferno/blob/master/packages/inferno/src/core/types.ts */ type DOMElement = globalThis.Element; type PrimitiveChild = Primitive | State<Primitive | null | undefined>; type VanElement = SVGElement | HTMLElement | DOMElement | Node | VElement; export type VanNode = | VanElement | PrimitiveChild | VanNode[] | (() => VanNode) | null | undefined; export type { Fragment } from "./fragment.d.ts"; export as namespace JSX; export = JSX; // trick TypeScript into thinking this is real React declare global { const React: {}; } declare namespace JSX { type FunctionMaybe<T = unknown> = (() => T) | StateView<T> | T | undefined; type Element = | State<Primitive | null | undefined> | Node | DOMElement | HTMLElement | ArrayElement | FunctionElement | (string & {}) | Primitive | null | undefined; type ComponentProps<K> = Omit<IntrinsicElements[K], "children">; type Component< K extends keyof IntrinsicElements, O extends (Record<string, PropValueOrDerived> | undefined) = undefined, > = ( props?: & (O extends object ? ComponentProps<K> & Partial<O> : ComponentProps<K>) & { children?: Element; }, ) => HTMLElementTagNameMap[T]; interface ArrayElement extends Array<Element> {} interface FunctionElement { (): Element; } interface ElementClass { // empty, libs can define requirements downstream } interface ElementAttributesProperty { // empty, libs can define requirements downstream } interface ElementChildrenAttribute { children: {}; } interface EventHandler<T, E extends Event> { ( e: E & { currentTarget: T; target: DOMElement; }, ): void; } interface BoundEventHandler<T, E extends Event> { 0: ( data: unknown, e: E & { currentTarget: T; target: DOMElement; }, ) => void; 1: unknown; } type EventHandlerUnion<T, E extends Event> = | EventHandler<T, E> | BoundEventHandler<T, E>; interface EventHandlerWithOptions<T, E extends Event> extends AddEventListenerOptions { handleEvent: ( e: E & { currentTarget: T; target: Element; }, ) => void; } type EventHandlerWithOptionsUnion<T, E extends Event> = | EventHandler<T, E> | EventHandlerWithOptions<T, E>; const SERIALIZABLE: unique symbol; interface SerializableAttributeValue { toString(): string; [SERIALIZABLE]: never; } interface IntrinsicAttributes { // ref?: unknown | ((e: unknown) => void); // ref?: State<T>; // ref?: Element; // ref?: State<Element> & State<{ current?: Element }>; ref?: State<{ current?: Element }>; } interface CustomAttributes<T> { // ref?: State<T> | T | ((el: T) => void); // ref?: State<T>; // ref?: T; // ref?: { current: State<T> }; // ref?: State<T> & State<{ current: T }>; ref?: State<{ current: T }>; } interface ExplicitProperties {} interface ExplicitAttributes {} interface ExplicitBoolAttributes {} interface CustomEvents {} /** @deprecated Replaced by CustomEvents */ interface CustomCaptureEvents {} interface DOMAttributes<T> extends CustomAttributes<T>, CustomEventHandlersCamelCase<T>, CustomEventHandlersLowerCase<T> { children?: Element; innerHTML?: string; innerText?: string | number; textContent?: string | number; // camel case events onCopy?: EventHandlerUnion<T, ClipboardEvent>; onCut?: EventHandlerUnion<T, ClipboardEvent>; onPaste?: EventHandlerUnion<T, ClipboardEvent>; onCompositionEnd?: EventHandlerUnion<T, CompositionEvent>; onCompositionStart?: EventHandlerUnion<T, CompositionEvent>; onCompositionUpdate?: EventHandlerUnion<T, CompositionEvent>; onFocusOut?: EventHandlerUnion<T, FocusEvent>; onFocusIn?: EventHandlerUnion<T, FocusEvent>; onEncrypted?: EventHandlerUnion<T, Event>; onDragExit?: EventHandlerUnion<T, DragEvent>; // lower case events oncopy?: EventHandlerUnion<T, ClipboardEvent>; oncut?: EventHandlerUnion<T, ClipboardEvent>; onpaste?: EventHandlerUnion<T, ClipboardEvent>; oncompositionend?: EventHandlerUnion<T, CompositionEvent>; oncompositionstart?: EventHandlerUnion<T, CompositionEvent>; oncompositionupdate?: EventHandlerUnion<T, CompositionEvent>; onfocusout?: EventHandlerUnion<T, FocusEvent>; onfocusin?: EventHandlerUnion<T, FocusEvent>; onencrypted?: EventHandlerUnion<T, Event>; ondragexit?: EventHandlerUnion<T, DragEvent>; } interface CustomEventHandlersCamelCase<T> { onAbort?: EventHandlerUnion<T, Event>; onAnimationEnd?: EventHandlerUnion<T, AnimationEvent>; onAnimationIteration?: EventHandlerUnion<T, AnimationEvent>; onAnimationStart?: EventHandlerUnion<T, AnimationEvent>; onAuxClick?: EventHandlerUnion<T, MouseEvent>; onBeforeInput?: EventHandlerUnion<T, InputEvent>; onBeforeToggle?: EventHandlerUnion<T, ToggleEvent>; onBlur?: EventHandlerUnion<T, FocusEvent>; onCanPlay?: EventHandlerUnion<T, Event>; onCanPlayThrough?: EventHandlerUnion<T, Event>; onChange?: EventHandlerUnion<T, Event>; onClick?: EventHandlerUnion<T, MouseEvent>; onContextMenu?: EventHandlerUnion<T, MouseEvent>; onDblClick?: EventHandlerUnion<T, MouseEvent>; onDrag?: EventHandlerUnion<T, DragEvent>; onDragEnd?: EventHandlerUnion<T, DragEvent>; onDragEnter?: EventHandlerUnion<T, DragEvent>; onDragLeave?: EventHandlerUnion<T, DragEvent>; onDragOver?: EventHandlerUnion<T, DragEvent>; onDragStart?: EventHandlerUnion<T, DragEvent>; onDrop?: EventHandlerUnion<T, DragEvent>; onDurationChange?: EventHandlerUnion<T, Event>; onEmptied?: EventHandlerUnion<T, Event>; onEnded?: EventHandlerUnion<T, Event>; onError?: EventHandlerUnion<T, Event>; onFocus?: EventHandlerUnion<T, FocusEvent>; onGotPointerCapture?: EventHandlerUnion<T, PointerEvent>; onInput?: EventHandlerUnion<T, InputEvent>; onInvalid?: EventHandlerUnion<T, Event>; onKeyDown?: EventHandlerUnion<T, KeyboardEvent>; onKeyPress?: EventHandlerUnion<T, KeyboardEvent>; onKeyUp?: EventHandlerUnion<T, KeyboardEvent>; onLoad?: EventHandlerUnion<T, Event>; onLoadedData?: EventHandlerUnion<T, Event>; onLoadedMetadata?: EventHandlerUnion<T, Event>; onLoadStart?: EventHandlerUnion<T, Event>; onLostPointerCapture?: EventHandlerUnion<T, PointerEvent>; onMouseDown?: EventHandlerUnion<T, MouseEvent>; onMouseEnter?: EventHandlerUnion<T, MouseEvent>; onMouseLeave?: EventHandlerUnion<T, MouseEvent>; onMouseMove?: EventHandlerUnion<T, MouseEvent>; onMouseOut?: EventHandlerUnion<T, MouseEvent>; onMouseOver?: EventHandlerUnion<T, MouseEvent>; onMouseUp?: EventHandlerUnion<T, MouseEvent>; onPause?: EventHandlerUnion<T, Event>; onPlay?: EventHandlerUnion<T, Event>; onPlaying?: EventHandlerUnion<T, Event>; onPointerCancel?: EventHandlerUnion<T, PointerEvent>; onPointerDown?: EventHandlerUnion<T, PointerEvent>; onPointerEnter?: EventHandlerUnion<T, PointerEvent>; onPointerLeave?: EventHandlerUnion<T, PointerEvent>; onPointerMove?: EventHandlerUnion<T, PointerEvent>; onPointerOut?: EventHandlerUnion<T, PointerEvent>; onPointerOver?: EventHandlerUnion<T, PointerEvent>; onPointerUp?: EventHandlerUnion<T, PointerEvent>; onProgress?: EventHandlerUnion<T, Event>; onRateChange?: EventHandlerUnion<T, Event>; onReset?: EventHandlerUnion<T, Event>; onScroll?: EventHandlerUnion<T, Event>; onScrollEnd?: EventHandlerUnion<T, Event>; onSeeked?: EventHandlerUnion<T, Event>; onSeeking?: EventHandlerUnion<T, Event>; onSelect?: EventHandlerUnion<T, UIEvent>; onStalled?: EventHandlerUnion<T, Event>; onSubmit?: EventHandlerUnion<T, SubmitEvent>; onSuspend?: EventHandlerUnion<T, Event>; onTimeUpdate?: EventHandlerUnion<T, Event>; onToggle?: EventHandlerUnion<T, ToggleEvent>; onTouchCancel?: EventHandlerUnion<T, TouchEvent>; onTouchEnd?: EventHandlerUnion<T, TouchEvent>; onTouchMove?: EventHandlerUnion<T, TouchEvent>; onTouchStart?: EventHandlerUnion<T, TouchEvent>; onTransitionStart?: EventHandlerUnion<T, TransitionEvent>; onTransitionEnd?: EventHandlerUnion<T, TransitionEvent>; onTransitionRun?: EventHandlerUnion<T, TransitionEvent>; onTransitionCancel?: EventHandlerUnion<T, TransitionEvent>; onVolumeChange?: EventHandlerUnion<T, Event>; onWaiting?: EventHandlerUnion<T, Event>; onWheel?: EventHandlerUnion<T, WheelEvent>; } /** @type {GlobalEventHandlers} */ interface CustomEventHandlersLowerCase<T> { onabort?: EventHandlerUnion<T, Event>; onanimationend?: EventHandlerUnion<T, AnimationEvent>; onanimationiteration?: EventHandlerUnion<T, AnimationEvent>; onanimationstart?: EventHandlerUnion<T, AnimationEvent>; onauxclick?: EventHandlerUnion<T, MouseEvent>; onbeforeinput?: EventHandlerUnion<T, InputEvent>; onbeforetoggle?: EventHandlerUnion<T, ToggleEvent>; onblur?: EventHandlerUnion<T, FocusEvent>; oncanplay?: EventHandlerUnion<T, Event>; oncanplaythrough?: EventHandlerUnion<T, Event>; onchange?: EventHandlerUnion<T, Event>; onclick?: EventHandlerUnion<T, MouseEvent>; oncontextmenu?: EventHandlerUnion<T, MouseEvent>; ondblclick?: EventHandlerUnion<T, MouseEvent>; ondrag?: EventHandlerUnion<T, DragEvent>; ondragend?: EventHandlerUnion<T, DragEvent>; ondragenter?: EventHandlerUnion<T, DragEvent>; ondragleave?: EventHandlerUnion<T, DragEvent>; ondragover?: EventHandlerUnion<T, DragEvent>; ondragstart?: EventHandlerUnion<T, DragEvent>; ondrop?: EventHandlerUnion<T, DragEvent>; ondurationchange?: EventHandlerUnion<T, Event>; onemptied?: EventHandlerUnion<T, Event>; onended?: EventHandlerUnion<T, Event>; onerror?: EventHandlerUnion<T, Event>; onfocus?: EventHandlerUnion<T, FocusEvent>; ongotpointercapture?: EventHandlerUnion<T, PointerEvent>; oninput?: EventHandlerUnion<T, InputEvent>; oninvalid?: EventHandlerUnion<T, Event>; onkeydown?: EventHandlerUnion<T, KeyboardEvent>; onkeypress?: EventHandlerUnion<T, KeyboardEvent>; onkeyup?: EventHandlerUnion<T, KeyboardEvent>; onload?: EventHandlerUnion<T, Event>; onloadeddata?: EventHandlerUnion<T, Event>; onloadedmetadata?: EventHandlerUnion<T, Event>; onloadstart?: EventHandlerUnion<T, Event>; onlostpointercapture?: EventHandlerUnion<T, PointerEvent>; onmousedown?: EventHandlerUnion<T, MouseEvent>; onmouseenter?: EventHandlerUnion<T, MouseEvent>; onmouseleave?: EventHandlerUnion<T, MouseEvent>; onmousemove?: EventHandlerUnion<T, MouseEvent>; onmouseout?: EventHandlerUnion<T, MouseEvent>; onmouseover?: EventHandlerUnion<T, MouseEvent>; onmouseup?: EventHandlerUnion<T, MouseEvent>; onpause?: EventHandlerUnion<T, Event>; onplay?: EventHandlerUnion<T, Event>; onplaying?: EventHandlerUnion<T, Event>; onpointercancel?: EventHandlerUnion<T, PointerEvent>; onpointerdown?: EventHandlerUnion<T, PointerEvent>; onpointerenter?: EventHandlerUnion<T, PointerEvent>; onpointerleave?: EventHandlerUnion<T, PointerEvent>; onpointermove?: EventHandlerUnion<T, PointerEvent>; onpointerout?: EventHandlerUnion<T, PointerEvent>; onpointerover?: EventHandlerUnion<T, PointerEvent>; onpointerup?: EventHandlerUnion<T, PointerEvent>; onprogress?: EventHandlerUnion<T, Event>; onratechange?: EventHandlerUnion<T, Event>; onreset?: EventHandlerUnion<T, Event>; onscroll?: EventHandlerUnion<T, Event>; onscrollend?: EventHandlerUnion<T, Event>; onseeked?: EventHandlerUnion<T, Event>; onseeking?: EventHandlerUnion<T, Event>; onselect?: EventHandlerUnion<T, UIEvent>; onstalled?: EventHandlerUnion<T, Event>; onsubmit?: EventHandlerUnion<T, SubmitEvent>; onsuspend?: EventHandlerUnion<T, Event>; ontimeupdate?: EventHandlerUnion<T, Event>; ontoggle?: EventHandlerUnion<T, ToggleEvent>; ontouchcancel?: EventHandlerUnion<T, TouchEvent>; ontouchend?: EventHandlerUnion<T, TouchEvent>; ontouchmove?: EventHandlerUnion<T, TouchEvent>; ontouchstart?: EventHandlerUnion<T, TouchEvent>; ontransitionstart?: EventHandlerUnion<T, TransitionEvent>; ontransitionend?: EventHandlerUnion<T, TransitionEvent>; ontransitionrun?: EventHandlerUnion<T, TransitionEvent>; ontransitioncancel?: EventHandlerUnion<T, TransitionEvent>; onvolumechange?: EventHandlerUnion<T, Event>; onwaiting?: EventHandlerUnion<T, Event>; onwheel?: EventHandlerUnion<T, WheelEvent>; } interface CSSProperties extends csstype.PropertiesHyphen { // Override [key: `-${string}`]: | State<string | number | undefined> | string | number | undefined; } type HTMLAutocapitalize = | "off" | "none" | "on" | "sentences" | "words" | "characters"; type HTMLDir = "ltr" | "rtl" | "auto"; type HTMLFormEncType = | "application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain"; type HTMLFormMethod = "post" | "get" | "dialog"; type HTMLCrossorigin = "anonymous" | "use-credentials" | ""; type HTMLReferrerPolicy = | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url"; type HTMLIframeSandbox = | "allow-downloads-without-user-activation" | "allow-downloads" | "allow-forms" | "allow-modals" | "allow-orientation-lock" | "allow-pointer-lock" | "allow-popups" | "allow-popups-to-escape-sandbox" | "allow-presentation" | "allow-same-origin" | "allow-scripts" | "allow-storage-access-by-user-activation" | "allow-top-navigation" | "allow-top-navigation-by-user-activation"; type HTMLLinkAs = | "audio" | "document" | "embed" | "fetch" | "font" | "image" | "object" | "script" | "style" | "track" | "video" | "worker"; // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/ interface AriaAttributes { /** * Identifies the currently active element when DOM focus is on a composite widget, textbox, * group, or application. */ "aria-activedescendant"?: FunctionMaybe<string>; /** * Indicates whether assistive technologies will present all, or only parts of, the changed * region based on the change notifications defined by the aria-relevant attribute. */ "aria-atomic"?: FunctionMaybe<boolean | "false" | "true">; /** * Indicates whether inputting text could trigger display of one or more predictions of the * user's intended value for an input and specifies how predictions would be presented if they * are made. */ "aria-autocomplete"?: FunctionMaybe<"none" | "inline" | "list" | "both">; /** * Indicates an element is being modified and that assistive technologies MAY want to wait until * the modifications are complete before exposing them to the user. */ "aria-busy"?: FunctionMaybe<boolean | "false" | "true">; /** * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets. * * @see aria-pressed @see aria-selected. */ "aria-checked"?: FunctionMaybe<boolean | "false" | "mixed" | "true">; /** * Defines the total number of columns in a table, grid, or treegrid. * * @see aria-colindex. */ "aria-colcount"?: FunctionMaybe<number | string>; /** * 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"?: FunctionMaybe<number | string>; /** * 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"?: FunctionMaybe<number | string>; /** * Identifies the element (or elements) whose contents or presence are controlled by the current * element. * * @see aria-owns. */ "aria-controls"?: FunctionMaybe<string>; /** * Indicates the element that represents the current item within a container or set of related * elements. */ "aria-current"?: FunctionMaybe< | boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined >; /** * Identifies the element (or elements) that describes the object. * * @see aria-labelledby */ "aria-describedby"?: FunctionMaybe<string>; /** * Identifies the element that provides a detailed, extended description for the object. * * @see aria-describedby. */ "aria-details"?: FunctionMaybe<string>; /** * Indicates that the element is perceivable but disabled, so it is not editable or otherwise * operable. * * @see aria-hidden @see aria-readonly. */ "aria-disabled"?: FunctionMaybe<boolean | "false" | "true">; /** * Indicates what functions can be performed when a dragged object is released on the drop * target. * * @deprecated In ARIA 1.1 */ "aria-dropeffect"?: FunctionMaybe< "none" | "copy" | "execute" | "link" | "move" | "popup" >; /** * Identifies the element that provides an error message for the object. * * @see aria-invalid @see aria-describedby. */ "aria-errormessage"?: FunctionMaybe<string>; /** * Indicates whether the element, or another grouping element it controls, is currently expanded * or collapsed. */ "aria-expanded"?: FunctionMaybe<boolean | "false" | "true">; /** * Identifies the next element (or elements) in an alternate reading order of content which, at * the user's discretion, allows assistive technology to override the general default of reading * in document source order. */ "aria-flowto"?: FunctionMaybe<string>; /** * Indicates an element's "grabbed" state in a drag-and-drop operation. * * @deprecated In ARIA 1.1 */ "aria-grabbed"?: FunctionMaybe<boolean | "false" | "true">; /** * Indicates the availability and type of interactive popup element, such as menu or dialog, * that can be triggered by an element. */ "aria-haspopup"?: FunctionMaybe< | boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" >; /** * Indicates whether the element is exposed to an accessibility API. * * @see aria-disabled. */ "aria-hidden"?: FunctionMaybe<boolean | "false" | "true">; /** * Indicates the entered value does not conform to the format expected by the application. * * @see aria-errormessage. */ "aria-invalid"?: FunctionMaybe< boolean | "false" | "true" | "grammar" | "spelling" >; /** * Indicates keyboard shortcuts that an author has implemented to activate or give focus to an * element. */ "aria-keyshortcuts"?: FunctionMaybe<string>; /** * Defines a string value that labels the current element. * * @see aria-labelledby. */ "aria-label"?: FunctionMaybe<string>; /** * Identifies the element (or elements) that labels the current element. * * @see aria-describedby. */ "aria-labelledby"?: FunctionMaybe<string>; /** Defines the hierarchical level of an element within a structure. */ "aria-level"?: FunctionMaybe<number | string>; /** * 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"?: FunctionMaybe<"off" | "assertive" | "polite">; /** Indicates whether an element is modal when displayed. */ "aria-modal"?: FunctionMaybe<boolean | "false" | "true">; /** Indicates whether a text box accepts multiple lines of input or only a single line. */ "aria-multiline"?: FunctionMaybe<boolean | "false" | "true">; /** * Indicates that the user may select more than one item from the current selectable * descendants. */ "aria-multiselectable"?: FunctionMaybe<boolean | "false" | "true">; /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */ "aria-orientation"?: FunctionMaybe<"horizontal" | "vertical">; /** * Identifies an element (or elements) in order to define a visual, functional, or contextual * parent/child relationship between DOM elements where the DOM hierarchy cannot be used to * represent the relationship. * * @see aria-controls. */ "aria-owns"?: FunctionMaybe<string>; /** * Defines a short hint (a word or short phrase) intended to aid the user with data entry when * the control has no value. A hint could be a sample value or a brief description of the * expected format. */ "aria-placeholder"?: FunctionMaybe<string>; /** * Defines an element's number or position in the current set of listitems or treeitems. Not * required if all elements in the set are present in the DOM. * * @see aria-setsize. */ "aria-posinset"?: FunctionMaybe<number | string>; /** * Indicates the current "pressed" state of toggle buttons. * * @see aria-checked @see aria-selected. */ "aria-pressed"?: FunctionMaybe<boolean | "false" | "mixed" | "true">; /** * Indicates that the element is not editable, but is otherwise operable. * * @see aria-disabled. */ "aria-readonly"?: FunctionMaybe<boolean | "false" | "true">; /** * Indicates what notifications the user agent will trigger when the accessibility tree within a * live region is modified. * * @see aria-atomic. */ "aria-relevant"?: FunctionMaybe< | "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" >; /** Indicates that user input is required on the element before a form may be submitted. */ "aria-required"?: FunctionMaybe<boolean | "false" | "true">; /** Defines a human-readable, author-localized description for the role of an element. */ "aria-roledescription"?: FunctionMaybe<string>; /** * Defines the total number of rows in a table, grid, or treegrid. * * @see aria-rowindex. */ "aria-rowcount"?: FunctionMaybe<number | string>; /** * 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"?: FunctionMaybe<number | string>; /** * 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"?: FunctionMaybe<number | string>; /** * Indicates the current "selected" state of various widgets. * * @see aria-checked @see aria-pressed. */ "aria-selected"?: FunctionMaybe<boolean | "false" | "true">; /** * Defines the number of items in the current set of listitems or treeitems. Not required if all * elements in the set are present in the DOM. * * @see aria-posinset. */ "aria-setsize"?: FunctionMaybe<number | string>; /** Indicates if items in a table or grid are sorted in ascending or descending order. */ "aria-sort"?: FunctionMaybe<"none" | "ascending" | "descending" | "other">; /** Defines the maximum allowed value for a range widget. */ "aria-valuemax"?: FunctionMaybe<number | string>; /** Defines the minimum allowed value for a range widget. */ "aria-valuemin"?: FunctionMaybe<number | string>; /** * Defines the current value for a range widget. * * @see aria-valuetext. */ "aria-valuenow"?: FunctionMaybe<number | string>; /** Defines the human readable text alternative of aria-valuenow for a range widget. */ "aria-valuetext"?: FunctionMaybe<string>; role?: FunctionMaybe< | "alert" | "alertdialog" | "application" | "article" | "banner" | "button" | "cell" | "checkbox" | "columnheader" | "combobox" | "complementary" | "contentinfo" | "definition" | "dialog" | "directory" | "document" | "feed" | "figure" | "form" | "grid" | "gridcell" | "group" | "heading" | "img" | "link" | "list" | "listbox" | "listitem" | "log" | "main" | "marquee" | "math" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "meter" | "navigation" | "none" | "note" | "option" | "presentation" | "progressbar" | "radio" | "radiogroup" | "region" | "row" | "rowgroup" | "rowheader" | "scrollbar" | "search" | "searchbox" | "separator" | "slider" | "spinbutton" | "status" | "switch" | "tab" | "table" | "tablist" | "tabpanel" | "term" | "textbox" | "timer" | "toolbar" | "tooltip" | "tree" | "treegrid" | "treeitem" >; } interface HTMLAttributes<T> extends AriaAttributes, DOMAttributes<T> { accessKey?: FunctionMaybe<string>; class?: FunctionMaybe<string> | undefined; contenteditable?: FunctionMaybe<boolean | "plaintext-only" | "inherit">; contextmenu?: FunctionMaybe<string>; dir?: FunctionMaybe<HTMLDir>; draggable?: FunctionMaybe<boolean>; hidden?: FunctionMaybe<boolean>; id?: FunctionMaybe<string>; is?: FunctionMaybe<string>; inert?: FunctionMaybe<boolean>; lang?: FunctionMaybe<string>; spellcheck?: FunctionMaybe<boolean>; style?: FunctionMaybe<CSSProperties | string>; tabindex?: FunctionMaybe<number | string>; title?: FunctionMaybe<string>; translate?: FunctionMaybe<"yes" | "no">; about?: FunctionMaybe<string>; datatype?: FunctionMaybe<string>; inlist?: FunctionMaybe<unknown>; popover?: FunctionMaybe<boolean | "manual" | "auto">; prefix?: FunctionMaybe<string>; property?: FunctionMaybe<string>; resource?: FunctionMaybe<string>; typeof?: FunctionMaybe<string>; vocab?: FunctionMaybe<string>; autocapitalize?: FunctionMaybe<HTMLAutocapitalize>; slot?: FunctionMaybe<string>; color?: FunctionMaybe<string>; itemprop?: FunctionMaybe<string>; itemscope?: FunctionMaybe<boolean>; itemtype?: FunctionMaybe<string>; itemid?: FunctionMaybe<string>; itemref?: FunctionMaybe<string>; part?: FunctionMaybe<string>; exportparts?: FunctionMaybe<string>; inputmode?: FunctionMaybe< | "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" >; contentEditable?: FunctionMaybe<boolean | "plaintext-only" | "inherit">; contextMenu?: FunctionMaybe<string>; tabIndex?: FunctionMaybe<number | string>; autoCapitalize?: FunctionMaybe<HTMLAutocapitalize>; itemProp?: FunctionMaybe<string>; itemScope?: FunctionMaybe<boolean>; itemType?: FunctionMaybe<string>; itemId?: FunctionMaybe<string>; itemRef?: FunctionMaybe<string>; exportParts?: FunctionMaybe<string>; inputMode?: FunctionMaybe< | "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" >; } interface AnchorHTMLAttributes<T> extends HTMLAttributes<T> { download?: FunctionMaybe<unknown>; href?: FunctionMaybe<string>; hreflang?: FunctionMaybe<string>; media?: FunctionMaybe<string>; ping?: FunctionMaybe<string>; referrerpolicy?: FunctionMaybe<HTMLReferrerPolicy>; rel?: FunctionMaybe<string>; target?: FunctionMaybe<string>; type?: FunctionMaybe<string>; referrerPolicy?: FunctionMaybe<HTMLReferrerPolicy>; } interface AudioHTMLAttributes<T> extends MediaHTMLAttributes<T> {} interface AreaHTMLAttributes<T> extends HTMLAttributes<T> { alt?: FunctionMaybe<string>; coords?: FunctionMaybe<string>; download?: FunctionMaybe<unknown>; href?: FunctionMaybe<string>; hreflang?: FunctionMaybe<string>; ping?: FunctionMaybe<string>; referrerpolicy?: FunctionMaybe<HTMLReferrerPolicy>; rel?: FunctionMaybe<string>; shape?: FunctionMaybe<"rect" | "circle" | "poly" | "default">; target?: FunctionMaybe<string>; referrerPolicy?: FunctionMaybe<HTMLReferrerPolicy>; } interface BaseHTMLAttributes<T> extends HTMLAttributes<T> { href?: FunctionMaybe<string>; target?: FunctionMaybe<string>; } interface BlockquoteHTMLAttributes<T> extends HTMLAttributes<T> { cite?: FunctionMaybe<string>; } interface ButtonHTMLAttributes<T> extends HTMLAttributes<T> { autofocus?: FunctionMaybe<boolean>; disabled?: FunctionMaybe<boolean>; form?: FunctionMaybe<string>; formaction?: FunctionMaybe<string | SerializableAttributeValue>; formenctype?: FunctionMaybe<HTMLFormEncType>; formmethod?: FunctionMaybe<HTMLFormMethod>; formnovalidate?: FunctionMaybe<boolean>; formtarget?: FunctionMaybe<string>; popovertarget?: FunctionMaybe<string>; popovertargetaction?: FunctionMaybe<"hide" | "show" | "toggle">; name?: FunctionMaybe<string>; type?: FunctionMaybe<"submit" | "reset" | "button">; value?: FunctionMaybe<string>; formAction?: FunctionMaybe<string | SerializableAttributeValue>; formEnctype?: FunctionMaybe<HTMLFormEncType>; formMethod?: FunctionMaybe<HTMLFormMethod>; formNoValidate?: FunctionMaybe<boolean>; formTarget?: FunctionMaybe<string>; popoverTarget?: FunctionMaybe<string>; popoverTargetAction?: FunctionMaybe<"hide" | "show" | "toggle">; } interface CanvasHTMLAttributes<T> extends HTMLAttributes<T> { width?: FunctionMaybe<number | string>; height?: FunctionMaybe<number | string>; } interface ColHTMLAttributes<T> extends HTMLAttributes<T> { span?: FunctionMaybe<number | string>; width?: FunctionMaybe<number | string>; } interface ColgroupHTMLAttributes<T> extends HTMLAttributes<T> { span?: FunctionMaybe<number | string>; } interface DataHTMLAttributes<T> extends HTMLAttributes<T> { value?: FunctionMaybe<string | string[] | number>; } interface DetailsHtmlAttributes<T> extends HTMLAttributes<T> { open?: FunctionMaybe<boolean>; onToggle?: EventHandlerUnion<T, Event>; ontoggle?: EventHandlerUnion<T, Event>; } interface DialogHtmlAttributes<T> extends HTMLAttributes<T> { open?: FunctionMaybe<boolean>; } interface EmbedHTMLAttributes<T> extends HTMLAttributes<T> { height?: FunctionMaybe<number | string>; src?: FunctionMaybe<string>; type?: FunctionMaybe<string>; width?: FunctionMaybe<number | string>; } interface FieldsetHTMLAttributes<T> extends HTMLAttributes<T> { disabled?: FunctionMaybe<boolean>; form?: FunctionMaybe<string>; name?: FunctionMaybe<string>; } interface FormHTMLAttributes<T> extends HTMLAttributes<T> { "accept-charset"?: FunctionMaybe<string>; action?: FunctionMaybe<string | SerializableAttributeValue>; autocomplete?: FunctionMaybe<string>; encoding?: FunctionMaybe<HTMLFormEncType>; enctype?: FunctionMaybe<HTMLFormEncType>; method?: FunctionMaybe<HTMLFormMethod>; name?: FunctionMaybe<string>; novalidate?: FunctionMaybe<boolean>; target?: FunctionMaybe<string>; noValidate?: FunctionMaybe<boolean>; } interface IframeHTMLAttributes<T> extends HTMLAttributes<T> { allow?: FunctionMaybe<string>; allowfullscreen?: FunctionMaybe<boolean>; height?: FunctionMaybe<number | string>; name?: FunctionMaybe<string>; referrerpolicy?: FunctionMaybe<HTMLReferrerPolicy>; sandbox?: HTMLIframeSandbox | string; src?: FunctionMaybe<string>; srcdoc?: FunctionMaybe<string>; width?: FunctionMaybe<number | string>; loading?: FunctionMaybe<"eager" | "lazy">; referrerPolicy?: FunctionMaybe<HTMLReferrerPolicy>; } interface ImgHTMLAttributes<T> extends HTMLAttributes<T> { alt?: FunctionMaybe<string>; crossorigin?: FunctionMaybe<HTMLCrossorigin>; decoding?: FunctionMaybe<"sync" | "async" | "auto">; height?: FunctionMaybe<number | string>; ismap?: FunctionMaybe<boolean>; isMap?: FunctionMaybe<boolean>; loading?: FunctionMaybe<"eager" | "lazy">; referrerpolicy?: FunctionMaybe<HTMLReferrerPolicy>; referrerPolicy?: FunctionMaybe<HTMLReferrerPolicy>; sizes?: FunctionMaybe<string>; src?: FunctionMaybe<string>; srcset?: FunctionMaybe<string>; srcSet?: FunctionMaybe<string>; usemap?: FunctionMaybe<string>; useMap?: FunctionMaybe<string>; width?: FunctionMaybe<number | string>; crossOrigin?: FunctionMaybe<HTMLCrossorigin>; } interface InputHTMLAttributes<T> extends HTMLAttributes<T> { accept?: FunctionMaybe<string>; alt?: FunctionMaybe<string>; autocomplete?: FunctionMaybe<string>; autofocus?: FunctionMaybe<boolean>; capture?: FunctionMaybe<boolean | string>; checked?: FunctionMaybe<boolean>; crossorigin?: FunctionMaybe<HTMLCrossorigin>; disabled?: FunctionMaybe<boolean>; form?: FunctionMaybe<string>; formaction?: FunctionMaybe<string | SerializableAttributeValue>; formenctype?: FunctionMaybe<HTMLFormEncType>; formmethod?: FunctionMaybe<HTMLFormMethod>; formnovalidate?: FunctionMaybe<boolean>; formtarget?: FunctionMaybe<string>; height?: FunctionMaybe<number | string>; list?: FunctionMaybe<string>; max?: FunctionMaybe<number | string>; maxlength?: FunctionMaybe<number | string>; min?: FunctionMaybe<number | string>; minlength?: FunctionMaybe<number | string>; multiple?: FunctionMaybe<boolean>; name?: FunctionMaybe<string>; pattern?: FunctionMaybe<string>; placeholder?: FunctionMaybe<string>; readonly?: FunctionMaybe<boolean>; required?: FunctionMaybe<boolean>; size?: FunctionMaybe<number | string>; src?: FunctionMaybe<string>; step?: FunctionMaybe<number | string>; type?: FunctionMaybe<string>; value?: FunctionMaybe<string | string[] | number>; width?: FunctionMaybe<number | string>; crossOrigin?: FunctionMaybe<HTMLCrossorigin>; formAction?: FunctionMaybe<string | SerializableAttributeValue>; formEnctype?: FunctionMaybe<HTMLFormEncType>; formMethod?: FunctionMaybe<HTMLFormMethod>; formNoValidate?: FunctionMaybe<boolean>; formTarget?: FunctionMaybe<string>; maxLength?: FunctionMaybe<number | string>; minLength?: FunctionMaybe<number | string>; readOnly?: FunctionMaybe<boolean>; } interface InsHTMLAttributes<T> extends HTMLAttributes<T> { cite?: FunctionMaybe<string>; dateTime?: FunctionMaybe<string>; } interface KeygenHTMLAttributes<T> extends HTMLAttributes<T> { autofocus?: FunctionMaybe<boolean>; challenge?: FunctionMaybe<string>; disabled?: FunctionMaybe<boolean>; form?: FunctionMaybe<string>; keytype?: FunctionMaybe<string>; keyparams?: FunctionMaybe<string>; name?: FunctionMaybe<string>; } interface LabelHTMLAttributes<T> extends HTMLAttributes<T> { for?: FunctionMaybe<string>; form?: FunctionMaybe<string>; } interface LiHTMLAttributes<T> extends HTMLAttributes<T> { value?: FunctionMaybe<number | string>; } interface LinkHTMLAttributes<T> extends HTMLAttributes<T> { as?: FunctionMaybe<HTMLLinkAs>; crossorigin?: FunctionMaybe<HTMLCrossorigin>; disabled?: FunctionMaybe<boolean>; fetchpriority?: FunctionMaybe<"high" | "low" | "auto">; href?: FunctionMaybe<string>; hreflang?: FunctionMaybe<string>; imagesizes?: FunctionMaybe<string>; imagesrcset?: FunctionMaybe<string>; integrity?: FunctionMaybe<string>; media?: FunctionMaybe<string>; referrerpolicy?: FunctionMaybe<HTMLReferrerPolicy>; rel?: FunctionMaybe<string>; sizes?: FunctionMaybe<string>; type?: FunctionMaybe<string>; crossOrigin?: FunctionMaybe<HTMLCrossorigin>; referrerPolicy?: FunctionMaybe<HTMLReferrerPolicy>; } interface MapHTMLAttributes<T> extends HTMLAttributes<T> { name?: FunctionMaybe<string>; } interface MediaHTMLAttributes<T> extends HTMLAttributes<T> { autoplay?: FunctionMaybe<boolean>; controls?: FunctionMaybe<boolean>; crossorigin?: FunctionMaybe<HTMLCrossorigin>; loop?: FunctionMaybe<boolean>; mediagroup?: FunctionMaybe<string>; muted?: FunctionMaybe<boolean>; preload?: FunctionMaybe<"none" | "metadata" | "auto" | "">; src?: FunctionMaybe<string>; crossOrigin?: FunctionMaybe<HTMLCrossorigin>; mediaGroup?: FunctionMaybe<string>; } interface MenuHTMLAttributes<T> extends HTMLAttributes<T> { label?: FunctionMaybe<string>; type?: FunctionMaybe<"context" | "toolbar">; } interface MetaHTMLAttributes<T> extends HTMLAttributes<T> { charset?: FunctionMaybe<string>; content?: FunctionMaybe<string>; "http-equiv"?: FunctionMaybe<string>; name?: FunctionMaybe<string>; media?: FunctionMaybe<string>; } interface MeterHTMLAttributes<T> extends HTMLAttributes<T> { form?: FunctionMaybe<string>; high?: FunctionMaybe<number | string>; low?: FunctionMaybe<number | string>; max?: FunctionMaybe<number | string>; min?: FunctionMaybe<number | string>; optimum?: FunctionMaybe<number | string>; value?: FunctionMaybe<string | string[] | number>; } interface QuoteHTMLAttributes<T> extends HTMLAttributes<T> { cite?: FunctionMaybe<string>; } interface ObjectHTMLAttributes<T> extends HTMLAttributes<T> { data?: FunctionMaybe<string>; form?: FunctionMaybe<string>; height?: FunctionMaybe<number | string>; name?: FunctionMaybe<string>; type?: FunctionMaybe<string>; usemap?: FunctionMaybe<string>; width?: FunctionMaybe<number | string>; useMap?: FunctionMaybe<string>; } interface OlHTMLAttributes<T> extends HTMLAttributes<T> { reversed?: FunctionMaybe<boolean>; start?: FunctionMaybe<number | string>; type?: FunctionMaybe<"1" | "a" | "A" | "i" | "I">; } interface OptgroupHTMLAttributes<T> extends HTMLAttributes<T> { disabled?: FunctionMaybe<boolean>; label?: FunctionMaybe<string>; } interface OptionHTMLAttributes<T> extends HTMLAttributes<T> { disabled?: FunctionMaybe<boolean>; label?: FunctionMaybe<string>; selected?: FunctionMaybe<boolean>; value?: FunctionMaybe<string | string[] | number>; } interface OutputHTMLAttributes<T> extends HTMLAttributes<T> { form?: FunctionMaybe<string>; for?: FunctionMaybe<string>; name?: FunctionMaybe<string>; } interface ParamHTMLAttributes<T> extends HTMLAttributes<T> { name?: FunctionMaybe<string>; value?: FunctionMaybe<string | string[] | number>; } interface ProgressHTMLAttributes<T> extends HTMLAttributes<T> { max?: FunctionMaybe<number | string>; value?: FunctionMaybe<string | string[] | number>; } interface ScriptHTMLAttributes<T> extends HTMLAttributes<T> { async?: FunctionMaybe<boolean>; charset?: FunctionMaybe<string>; crossorigin?: FunctionMaybe<HTMLCrossorigin>; defer?: FunctionMaybe<boolean>; integrity?: FunctionMaybe<string>; nomodule?: FunctionMaybe<boolean>; nonce?: FunctionMaybe<string>; referrerpolicy?: FunctionMaybe<HTMLReferrerPolicy>; src?: FunctionMaybe<string>; type?: FunctionMaybe<string>; crossOrigin?: FunctionMaybe<HTMLCrossorigin>; noModule?: FunctionMaybe<boolean>; referrerPolicy?: FunctionMaybe<HTMLReferrerPolicy>; } interface SelectHTMLAttributes<T> extends HTMLAttributes<T> { autocomplete?: FunctionMaybe<string>; autofocus?: FunctionMaybe<boolean>; disabled?: FunctionMaybe<boolean>; form?: FunctionMaybe<string>; multiple?: FunctionMaybe<boolean>; name?: FunctionMaybe<string>; required?: FunctionMaybe<boolean>; size?: FunctionMaybe<number | string>; value?: FunctionMaybe<string | string[] | number>; } interface HTMLSlotElementAttributes<T = HTMLSlotElement> extends HTMLAttributes<T> { name?: FunctionMaybe<string>; } interface SourceHTMLAttributes<T> extends HTMLAttributes<T> { media?: FunctionMaybe<string>; sizes?: FunctionMaybe<string>; src?: FunctionMaybe<string>; srcset?: FunctionMaybe<string>; type?: FunctionMaybe<string>; width?: FunctionMaybe<number | string>; height?: FunctionMaybe<number | string>; } interface StyleHTMLAttributes<T> extends HTMLAttributes<T> { media?: FunctionMaybe<string>; nonce?: FunctionMaybe<string>; scoped?: FunctionMaybe<boolean>; type?: FunctionMaybe<string>; } interface TdHTMLAttributes<T> extends HTMLAttributes<T> { colspan?: FunctionMaybe<number | string>; headers?: FunctionMaybe<string>; rowspan?: FunctionMaybe<number | string>; colSpan?: FunctionMaybe<number | string>; rowSpan?: FunctionMaybe<number | string>; } interface TemplateHTMLAttributes<T extends HTMLTemplateElement> extends HTMLAttributes<T> { content?: FunctionMaybe<DocumentFragment>; } interface TextareaHTMLAttributes<T> extends HTMLAttributes<T> { autocomplete?: FunctionMaybe<string>; autofocus?: FunctionMaybe<boolean>; cols?: FunctionMaybe<number | string>; dirname?: FunctionMaybe<string>; disabled?: FunctionMaybe<boolean>; form?: FunctionMaybe<string>; maxlength?: FunctionMaybe<number | string>; minlength?: FunctionMaybe<number | string>; name?: FunctionMaybe<string>; placeholder?: FunctionMaybe<string>; readonly?: FunctionMaybe<boolean>; required?: FunctionMaybe<boolean>; rows?: FunctionMaybe<number | string>; value?: FunctionMaybe<string | string[] | number>; wrap?: FunctionMaybe<"hard" | "soft" | "off">; maxLength?: FunctionMaybe<number | string>; minLength?: FunctionMaybe<number | string>; readOnly?: FunctionMaybe<boolean>; } interface ThHTMLAttributes<T> extends HTMLAttributes<T> { colspan?: FunctionMaybe<number | string>; headers?: FunctionMaybe<string>; rowspan?: FunctionMaybe<number | string>; colSpan?: FunctionMaybe<number | string>; rowSpan?: FunctionMaybe<number | string>; scope?: FunctionMaybe<"col" | "row" | "rowgroup" | "colgroup">; } interface TimeHTMLAttributes<T> extends HTMLAttributes<T> { datetime?: FunctionMaybe<string>; dateTime?: FunctionMaybe<string>; } interface TrackHTMLAttributes<T> extends HTMLAttributes<T> { default?: FunctionMaybe<boolean>; kind?: FunctionMaybe< "subtitles" | "captions" | "descriptions" | "chapters" | "metadata" >; label?: FunctionMaybe<string>; src?: FunctionMaybe<string>; srclang?: FunctionMaybe<string>; } interface VideoHTMLAttributes<T> extends MediaHTMLAttributes<T> { height?: FunctionMaybe<number | string>; playsinline?: FunctionMaybe<boolean>; poster?: FunctionMaybe<string>; width?: FunctionMaybe<number | string>; disablepictureinpicture?: FunctionMaybe<boolean>; } type SVGPreserveAspectRatio = | "none" | "xMinYMin" | "xMidYMin" | "xMaxYMin" | "xMinYMid" | "xMidYMid" | "xMaxYMid" | "xMinYMax" | "xMidYMax" | "xMaxYMax" | "xMinYMin meet" | "xMidYMin meet" | "xMaxYMin meet" | "xMinYMid meet" | "xMidYMid meet" | "xMaxYMid meet" | "xMinYMax meet" | "xMidYMax meet" | "xMaxYMax meet" | "xMinYMin slice" | "xMidYMin slice" | "xMaxYMin slice" | "xMinYMid slice" | "xMidYMid slice" | "xMaxYMid slice" | "xMinYMax slice" | "xMidYMax slice" | "xMaxYMax slice"; type ImagePreserveAspectRatio = | SVGPreserveAspectRatio | "defer none" | "defer xMinYMin" | "defer xMidYMin" | "defer xMaxYMin" | "defer xMinYMid" | "defer xMidYMid" | "defer xMaxYMid" | "defer xMinYMax" | "defer xMidYMax" | "defer xMaxYMax" | "defer xMinYMin meet" | "defer xMidYMin meet" | "defer xMaxYMin meet" | "defer xMinYMid meet" | "defer xMidYMid meet" | "defer xMaxYMid meet" | "defer xMinYMax meet" | "defer xMidYMax meet" | "defer xMaxYMax meet" | "defer xMinYMin slice" | "defer xMidYMin slice" | "defer xMaxYMin slice" | "defer xMinYMid slice" | "defer xMidYMid slice" | "defer xMaxYMid slice" | "defer xMinYMax slice" | "defer xMidYMax slice" | "defer xMaxYMax slice"; type SVGUnits = "userSpaceOnUse" | "objectBoundingBox"; interface CoreSVGAttributes<T> extends AriaAttributes, DOMAttributes<T> { id?: FunctionMaybe<string>; lang?: FunctionMaybe<string>; tabIndex?: FunctionMaybe<number | string>; tabindex?: FunctionMaybe<number | string>; } interface StylableSVGAttributes { class?: FunctionMaybe<string> | undefined; style?: FunctionMaybe<CSSProperties | string>; } interface TransformableSVGAttributes { transform?: FunctionMaybe<string>; } interface ConditionalProcessingSVGAttributes { requiredExtensions?: FunctionMaybe<string>; requiredFeatures?: FunctionMaybe<string>; systemLanguage?: FunctionMaybe<string>; } interface ExternalResourceSVGAttributes { externalResourcesRequired?: FunctionMaybe<"true" | "false">; } interface AnimationTimingSVGAttributes { begin?: FunctionMaybe<string>; dur?: FunctionMaybe<string>; end?: FunctionMaybe<string>; min?: FunctionMaybe<string>; max?: FunctionMaybe<string>; restart?: FunctionMaybe<"always" | "whenNotActive" | "never">; repeatCount?: FunctionMaybe<number | "indefinite">; repeatDur?: FunctionMaybe<string>; fill?: FunctionMaybe<"freeze" | "remove">; } interface AnimationValueSVGAttributes { calcMode?: FunctionMaybe<"discrete" | "linear" | "paced" | "spline">; values?: FunctionMaybe<string>; keyTimes?: FunctionMaybe<string>; keySplines?: FunctionMaybe<string>; from?: FunctionMaybe<number | string>; to?: FunctionMaybe<number | string>; by?: FunctionMaybe<number | string>; } interface AnimationAdditionSVGAttributes { attributeName?: FunctionMaybe<string>; additive?: FunctionMaybe<"replace" | "sum">; accumulate?: FunctionMaybe<"none" | "sum">; } interface AnimationAttributeTargetSVGAttributes { attributeName?: FunctionMaybe<string>; attributeType?: FunctionMaybe<"CSS" | "XML" | "auto">; } interface PresentationSVGAttributes { "alignment-baseline"?: | "auto" | "baseline" | "before-edge" | "text-before-edge" | "middle" | "central" | "after-edge" | "text-after-edge" | "ideographic" | "alphabetic" | "hanging" | "mathematical" | "inherit"; "baseline-shift"?: FunctionMaybe<number | string>; clip?: FunctionMaybe<string>; "clip-path"?: FunctionMaybe<string>; "clip-rule"?: "nonzero" | "evenodd" | "inherit"; color?: FunctionMaybe<string>; "color-interpolation"?: "auto" | "sRGB" | "linearRGB" | "inherit"; "color-interpolation-filters"?: "auto" | "sRGB" | "linearRGB" | "inherit"; "color-profile"?: FunctionMaybe<string>; "color-rendering"?: | "auto" | "optimizeSpeed" | "optimizeQuality" | "inherit"; cursor?: FunctionMaybe<string>; direction?: "ltr" | "rtl" | "inherit"; display?: FunctionMaybe<string>; "dominant-baseline"?: | "auto" | "text-bottom" | "alphabetic" | "ideographic" | "middle" | "central" | "mathematical" | "hanging" | "text-top" | "inherit"; "enable-background"?: FunctionMaybe<string>; fill?: FunctionMaybe<string>; "fill-opacity"?: FunctionMaybe<number | string | "inherit">; "fill-rule"?: FunctionMaybe<"nonzero" | "evenodd" | "inherit">; filter?: FunctionMaybe<string>; "flood-color"?: FunctionMaybe<string>; "flood-opacity"?: FunctionMaybe<number | string | "inherit">; "font-family"?: FunctionMaybe<string>; "font-size"?: FunctionMaybe<string>; "font-size-adjust"?: FunctionMaybe<number | string>; "font-stretch"?: FunctionMaybe<string>; "font-style"?: FunctionMaybe<"normal" | "italic" | "oblique" | "inherit">; "font-variant"?: FunctionMaybe<string>; "font-weight"?: FunctionMaybe<number | string>; "glyph-orientation-horizontal"?: FunctionMaybe<string>; "glyph-orientation-vertical"?: FunctionMaybe<string>; "image-rendering"?: FunctionMaybe< "auto" | "optimizeQuality" | "optimizeSpeed" | "inherit" >; kerning?: FunctionMaybe<string>; "letter-spacing"?: FunctionMaybe<number | string>; "lightin