type DOMNode = Element; /** * Apply from React TypeScript definition * @see https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts */ export namespace JSX { export type Element = (namespace?: string) => Node; export type Fragment = () => DocumentFragment; export interface IntrinsicAttributes { ref?: ((ref: JSX.Element) => {}) | {}; } export type HTMLElementAttribute = Omit, 'style'> & RefAttribute & { style?: Partial xmlns?: string }; export type SVGElementAttribute = Omit, 'viewBox'> & SVGAttributes & RefAttribute & { style?: Partial xmlns?: string }; export type AriaRole = | 'alert' | 'alertdialog' | 'application' | 'article' | 'banner' | 'button' | 'cell' | 'checkbox' | 'columnheader' | 'combobox' | 'complementary' | 'contentinfo' | 'definition' | 'dialog' | 'directory' | 'document' | 'feed' | 'figure' | 'form' | 'grid' | 'gridcell' | 'group' | 'heading' | 'img' | 'link' | 'list' | 'listbox' | 'listitem' | 'log' | 'main' | 'marquee' | 'math' | 'menu' | 'menubar' | 'menuitem' | 'menuitemcheckbox' | 'menuitemradio' | 'navigation' | 'none' | 'note' | 'option' | 'presentation' | 'progressbar' | 'radio' | 'radiogroup' | 'region' | 'row' | 'rowgroup' | 'rowheader' | 'scrollbar' | 'search' | 'searchbox' | 'separator' | 'slider' | 'spinbutton' | 'status' | 'switch' | 'tab' | 'table' | 'tablist' | 'tabpanel' | 'term' | 'textbox' | 'timer' | 'toolbar' | 'tooltip' | 'tree' | 'treegrid' | 'treeitem' | (string & {}); export type RefAttribute = { ref?: ((ref: DOMNode) => {}) | {}; } export interface SVGAttributes { // Attributes which also defined in HTMLAttributes // See comment in SVGDOMPropertyConfig.js className?: string | undefined; color?: string | undefined; height?: number | string | undefined; id?: string | undefined; lang?: string | undefined; max?: number | string | undefined; media?: string | undefined; method?: string | undefined; min?: number | string | undefined; name?: string | undefined; style?: Partial | undefined; target?: string | undefined; type?: string | undefined; width?: number | string | undefined; // Other HTML properties supported by SVG elements in browsers role?: AriaRole | undefined; tabIndex?: number | undefined; crossOrigin?: "anonymous" | "use-credentials" | "" | undefined; // SVG Specific attributes accentHeight?: number | string | undefined; accumulate?: "none" | "sum" | undefined; additive?: "replace" | "sum" | undefined; alignmentBaseline?: "auto" | "baseline" | "before-edge" | "text-before-edge" | "middle" | "central" | "after-edge" | "text-after-edge" | "ideographic" | "alphabetic" | "hanging" | "mathematical" | "inherit" | undefined; allowReorder?: "no" | "yes" | undefined; alphabetic?: number | string | undefined; amplitude?: number | string | undefined; arabicForm?: "initial" | "medial" | "terminal" | "isolated" | undefined; ascent?: number | string | undefined; attributeName?: string | undefined; attributeType?: string | undefined; autoReverse?: Booleanish | undefined; azimuth?: number | string | undefined; baseFrequency?: number | string | undefined; baselineShift?: number | string | undefined; baseProfile?: number | string | undefined; bbox?: number | string | undefined; begin?: number | string | undefined; bias?: number | string | undefined; by?: number | string | undefined; calcMode?: number | string | undefined; capHeight?: number | string | undefined; clip?: number | string | undefined; clipPath?: string | undefined; clipPathUnits?: number | string | undefined; clipRule?: number | string | undefined; colorInterpolation?: number | string | undefined; colorInterpolationFilters?: "auto" | "sRGB" | "linearRGB" | "inherit" | undefined; colorProfile?: number | string | undefined; colorRendering?: number | string | undefined; contentScriptType?: number | string | undefined; contentStyleType?: number | string | undefined; cursor?: number | string | undefined; cx?: number | string | undefined; cy?: number | string | undefined; d?: string | undefined; decelerate?: number | string | undefined; descent?: number | string | undefined; diffuseConstant?: number | string | undefined; direction?: number | string | undefined; display?: number | string | undefined; divisor?: number | string | undefined; dominantBaseline?: number | string | undefined; dur?: number | string | undefined; dx?: number | string | undefined; dy?: number | string | undefined; edgeMode?: number | string | undefined; elevation?: number | string | undefined; enableBackground?: number | string | undefined; end?: number | string | undefined; exponent?: number | string | undefined; externalResourcesRequired?: Booleanish | undefined; fill?: string | undefined; fillOpacity?: number | string | undefined; fillRule?: "nonzero" | "evenodd" | "inherit" | undefined; filter?: string | undefined; filterRes?: number | string | undefined; filterUnits?: number | string | undefined; floodColor?: number | string | undefined; floodOpacity?: number | string | undefined; focusable?: Booleanish | "auto" | undefined; fontFamily?: string | undefined; fontSize?: number | string | undefined; fontSizeAdjust?: number | string | undefined; fontStretch?: number | string | undefined; fontStyle?: number | string | undefined; fontVariant?: number | string | undefined; fontWeight?: number | string | undefined; format?: number | string | undefined; fr?: number | string | undefined; from?: number | string | undefined; fx?: number | string | undefined; fy?: number | string | undefined; g1?: number | string | undefined; g2?: number | string | undefined; glyphName?: number | string | undefined; glyphOrientationHorizontal?: number | string | undefined; glyphOrientationVertical?: number | string | undefined; glyphRef?: number | string | undefined; gradientTransform?: string | undefined; gradientUnits?: string | undefined; hanging?: number | string | undefined; horizAdvX?: number | string | undefined; horizOriginX?: number | string | undefined; href?: string | undefined; ideographic?: number | string | undefined; imageRendering?: number | string | undefined; in2?: number | string | undefined; in?: string | undefined; intercept?: number | string | undefined; k1?: number | string | undefined; k2?: number | string | undefined; k3?: number | string | undefined; k4?: number | string | undefined; k?: number | string | undefined; kernelMatrix?: number | string | undefined; kernelUnitLength?: number | string | undefined; kerning?: number | string | undefined; keyPoints?: number | string | undefined; keySplines?: number | string | undefined; keyTimes?: number | string | undefined; lengthAdjust?: number | string | undefined; letterSpacing?: number | string | undefined; lightingColor?: number | string | undefined; limitingConeAngle?: number | string | undefined; local?: number | string | undefined; markerEnd?: string | undefined; markerHeight?: number | string | undefined; markerMid?: string | undefined; markerStart?: string | undefined; markerUnits?: number | string | undefined; markerWidth?: number | string | undefined; mask?: string | undefined; maskContentUnits?: number | string | undefined; maskUnits?: number | string | undefined; mathematical?: number | string | undefined; mode?: number | string | undefined; numOctaves?: number | string | undefined; offset?: number | string | undefined; opacity?: number | string | undefined; operator?: number | string | undefined; order?: number | string | undefined; orient?: number | string | undefined; orientation?: number | string | undefined; origin?: number | string | undefined; overflow?: number | string | undefined; overlinePosition?: number | string | undefined; overlineThickness?: number | string | undefined; paintOrder?: number | string | undefined; panose1?: number | string | undefined; path?: string | undefined; pathLength?: number | string | undefined; patternContentUnits?: string | undefined; patternTransform?: number | string | undefined; patternUnits?: string | undefined; pointerEvents?: number | string | undefined; points?: string | undefined; pointsAtX?: number | string | undefined; pointsAtY?: number | string | undefined; pointsAtZ?: number | string | undefined; preserveAlpha?: Booleanish | undefined; preserveAspectRatio?: string | undefined; primitiveUnits?: number | string | undefined; r?: number | string | undefined; radius?: number | string | undefined; refX?: number | string | undefined; refY?: number | string | undefined; renderingIntent?: number | string | undefined; repeatCount?: number | string | undefined; repeatDur?: number | string | undefined; requiredExtensions?: number | string | undefined; requiredFeatures?: number | string | undefined; restart?: number | string | undefined; result?: string | undefined; rotate?: number | string | undefined; rx?: number | string | undefined; ry?: number | string | undefined; scale?: number | string | undefined; seed?: number | string | undefined; shapeRendering?: number | string | undefined; slope?: number | string | undefined; spacing?: number | string | undefined; specularConstant?: number | string | undefined; specularExponent?: number | string | undefined; speed?: number | string | undefined; spreadMethod?: string | undefined; startOffset?: number | string | undefined; stdDeviation?: number | string | undefined; stemh?: number | string | undefined; stemv?: number | string | undefined; stitchTiles?: number | string | undefined; stopColor?: string | undefined; stopOpacity?: number | string | undefined; strikethroughPosition?: number | string | undefined; strikethroughThickness?: number | string | undefined; string?: number | string | undefined; stroke?: string | undefined; strokeDasharray?: string | number | undefined; strokeDashoffset?: string | number | undefined; strokeLinecap?: "butt" | "round" | "square" | "inherit" | undefined; strokeLinejoin?: "miter" | "round" | "bevel" | "inherit" | undefined; strokeMiterlimit?: number | string | undefined; strokeOpacity?: number | string | undefined; strokeWidth?: number | string | undefined; surfaceScale?: number | string | undefined; systemLanguage?: number | string | undefined; tableValues?: number | string | undefined; targetX?: number | string | undefined; targetY?: number | string | undefined; textAnchor?: string | undefined; textDecoration?: number | string | undefined; textLength?: number | string | undefined; textRendering?: number | string | undefined; to?: number | string | undefined; transform?: string | undefined; u1?: number | string | undefined; u2?: number | string | undefined; underlinePosition?: number | string | undefined; underlineThickness?: number | string | undefined; unicode?: number | string | undefined; unicodeBidi?: number | string | undefined; unicodeRange?: number | string | undefined; unitsPerEm?: number | string | undefined; vAlphabetic?: number | string | undefined; values?: string | undefined; vectorEffect?: number | string | undefined; version?: string | undefined; vertAdvY?: number | string | undefined; vertOriginX?: number | string | undefined; vertOriginY?: number | string | undefined; vHanging?: number | string | undefined; vIdeographic?: number | string | undefined; viewBox?: string | undefined; viewTarget?: number | string | undefined; visibility?: number | string | undefined; vMathematical?: number | string | undefined; widths?: number | string | undefined; wordSpacing?: number | string | undefined; writingMode?: number | string | undefined; x1?: number | string | undefined; x2?: number | string | undefined; x?: number | string | undefined; xChannelSelector?: string | undefined; xHeight?: number | string | undefined; xlinkActuate?: string | undefined; xlinkArcrole?: string | undefined; xlinkHref?: string | undefined; xlinkRole?: string | undefined; xlinkShow?: string | undefined; xlinkTitle?: string | undefined; xlinkType?: string | undefined; xmlBase?: string | undefined; xmlLang?: string | undefined; xmlns?: string | undefined; xmlnsXlink?: string | undefined; xmlSpace?: string | undefined; y1?: number | string | undefined; y2?: number | string | undefined; y?: number | string | undefined; yChannelSelector?: string | undefined; z?: number | string | undefined; zoomAndPan?: string | undefined; } export type Booleanish = boolean | 'true' | 'false'; export interface IntrinsicElements { // HTML a: HTMLElementAttribute; abbr: HTMLElementAttribute; address: HTMLElementAttribute; area: HTMLElementAttribute; article: HTMLElementAttribute; aside: HTMLElementAttribute; audio: HTMLElementAttribute; b: HTMLElementAttribute; base: HTMLElementAttribute; bdi: HTMLElementAttribute; bdo: HTMLElementAttribute; big: HTMLElementAttribute; blockquote: HTMLElementAttribute; body: HTMLElementAttribute; br: HTMLElementAttribute; button: HTMLElementAttribute; canvas: HTMLElementAttribute; caption: HTMLElementAttribute; cite: HTMLElementAttribute; code: HTMLElementAttribute; col: HTMLElementAttribute; colgroup: HTMLElementAttribute; data: HTMLElementAttribute; datalist: HTMLElementAttribute; dd: HTMLElementAttribute; del: HTMLElementAttribute; details: HTMLElementAttribute; dfn: HTMLElementAttribute; dialog: HTMLElementAttribute; div: HTMLElementAttribute; dl: HTMLElementAttribute; dt: HTMLElementAttribute; em: HTMLElementAttribute; embed: HTMLElementAttribute; fieldset: HTMLElementAttribute; figcaption: HTMLElementAttribute; figure: HTMLElementAttribute; footer: HTMLElementAttribute; form: HTMLElementAttribute; h1: HTMLElementAttribute; h2: HTMLElementAttribute; h3: HTMLElementAttribute; h4: HTMLElementAttribute; h5: HTMLElementAttribute; h6: HTMLElementAttribute; head: HTMLElementAttribute; header: HTMLElementAttribute; hgroup: HTMLElementAttribute; hr: HTMLElementAttribute; html: HTMLElementAttribute; i: HTMLElementAttribute; iframe: HTMLElementAttribute; img: HTMLElementAttribute; input: HTMLElementAttribute; ins: HTMLElementAttribute; kbd: HTMLElementAttribute; keygen: HTMLElementAttribute; label: HTMLElementAttribute; legend: HTMLElementAttribute; li: HTMLElementAttribute; link: HTMLElementAttribute; main: HTMLElementAttribute; map: HTMLElementAttribute; mark: HTMLElementAttribute; menu: HTMLElementAttribute; menuitem: HTMLElementAttribute; meta: HTMLElementAttribute; meter: HTMLElementAttribute; nav: HTMLElementAttribute; noscript: HTMLElementAttribute; object: HTMLElementAttribute; ol: HTMLElementAttribute; optgroup: HTMLElementAttribute; option: HTMLElementAttribute; output: HTMLElementAttribute; p: HTMLElementAttribute; param: HTMLElementAttribute; picture: HTMLElementAttribute; pre: HTMLElementAttribute; progress: HTMLElementAttribute; q: HTMLElementAttribute; rp: HTMLElementAttribute; rt: HTMLElementAttribute; ruby: HTMLElementAttribute; s: HTMLElementAttribute; samp: HTMLElementAttribute; slot: HTMLElementAttribute; script: HTMLElementAttribute; section: HTMLElementAttribute; select: HTMLElementAttribute; small: HTMLElementAttribute; source: HTMLElementAttribute; span: HTMLElementAttribute; strong: HTMLElementAttribute; style: HTMLElementAttribute; sub: HTMLElementAttribute; summary: HTMLElementAttribute; sup: HTMLElementAttribute; table: HTMLElementAttribute; template: HTMLElementAttribute; tbody: HTMLElementAttribute; td: HTMLElementAttribute; textarea: HTMLElementAttribute; tfoot: HTMLElementAttribute; th: HTMLElementAttribute; thead: HTMLElementAttribute; time: HTMLElementAttribute; title: HTMLElementAttribute; tr: HTMLElementAttribute; track: HTMLElementAttribute; u: HTMLElementAttribute; ul: HTMLElementAttribute; "var": HTMLElementAttribute; video: HTMLElementAttribute; wbr: HTMLElementAttribute; webview: HTMLElementAttribute; // SVG svg: SVGElementAttribute; animate: SVGElementAttribute; animateMotion: SVGElementAttribute; animateTransform: SVGElementAttribute; circle: SVGElementAttribute; clipPath: SVGElementAttribute; defs: SVGElementAttribute; desc: SVGElementAttribute; ellipse: SVGElementAttribute; feBlend: SVGElementAttribute; feColorMatrix: SVGElementAttribute; feComponentTransfer: SVGElementAttribute; feComposite: SVGElementAttribute; feConvolveMatrix: SVGElementAttribute; feDiffuseLighting: SVGElementAttribute; feDisplacementMap: SVGElementAttribute; feDistantLight: SVGElementAttribute; feDropShadow: SVGElementAttribute; feFlood: SVGElementAttribute; feFuncA: SVGElementAttribute; feFuncB: SVGElementAttribute; feFuncG: SVGElementAttribute; feFuncR: SVGElementAttribute; feGaussianBlur: SVGElementAttribute; feImage: SVGElementAttribute; feMerge: SVGElementAttribute; feMergeNode: SVGElementAttribute; feMorphology: SVGElementAttribute; feOffset: SVGElementAttribute; fePointLight: SVGElementAttribute; feSpecularLighting: SVGElementAttribute; feSpotLight: SVGElementAttribute; feTile: SVGElementAttribute; feTurbulence: SVGElementAttribute; filter: SVGElementAttribute; foreignObject: SVGElementAttribute; g: SVGElementAttribute; image: SVGElementAttribute; line: SVGElementAttribute; linearGradient: SVGElementAttribute; marker: SVGElementAttribute; mask: SVGElementAttribute; metadata: SVGElementAttribute; mpath: SVGElementAttribute; path: SVGElementAttribute; pattern: SVGElementAttribute; polygon: SVGElementAttribute; polyline: SVGElementAttribute; radialGradient: SVGElementAttribute; rect: SVGElementAttribute; stop: SVGElementAttribute; switch: SVGElementAttribute; symbol: SVGElementAttribute; text: SVGElementAttribute; textPath: SVGElementAttribute; tspan: SVGElementAttribute; use: SVGElementAttribute; view: SVGElementAttribute; } // @ts-ignore Declare variables that have no meaning to avoid the vite type-only import-export problem. // see: https://vitejs.dev/guide/features.html#typescript const _ignore = null; }