solid-js 2.0.0-experimental.4 → 2.0.0-experimental.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/types/jsx.d.ts CHANGED
@@ -1,24 +1,129 @@
1
+ /**
2
+ THIS FILE IS GENERATED BY `./jsx-update.mjs`.
3
+ PLEASE UPDATE `jsx-h.d.ts` INSTEAD AND RUN `pnpm jsx-sync-types`.
4
+ */
5
+
1
6
  import * as csstype from "csstype";
2
7
 
3
8
  /**
4
- * Based on JSX types for Surplus and Inferno and adapted for `dom-expressions`.
9
+ * Originally based on JSX types for Surplus and Inferno and adapted for `dom-expressions`.
5
10
  *
6
- * https://github.com/adamhaile/surplus/blob/master/index.d.ts
7
- * https://github.com/infernojs/inferno/blob/master/packages/inferno/src/core/types.ts
11
+ * - https://github.com/adamhaile/surplus/blob/master/index.d.ts
12
+ * - https://github.com/infernojs/inferno/blob/master/packages/inferno/src/core/types.ts
8
13
  *
9
14
  * MathML typings coming mostly from Preact
10
- * https://github.com/preactjs/preact/blob/07dc9f324e58569ce66634aa03fe8949b4190358/src/jsx.d.ts#L2575
15
+ *
16
+ * - https://github.com/preactjs/preact/blob/07dc9f324e58569ce66634aa03fe8949b4190358/src/jsx.d.ts#L2575
11
17
  *
12
18
  * Checked against other frameworks via the following table:
13
- * https://potahtml.github.io/namespace-jsx-project/index.html
14
19
  *
15
- * Note: Typings must include attributes and not properties (unless the property is special-cased,
16
- * such textContent, event handlers, etc).
20
+ * - https://potahtml.github.io/namespace-jsx-project/index.html
21
+ *
22
+ * # Typings on elements
23
+ *
24
+ * ## Attributes
25
+ *
26
+ * - Typings include attributes and not properties (unless the property Is special-cased, such
27
+ * textContent, event handlers, etc).
28
+ * - Attributes are lowercase to avoid confusion with properties.
29
+ * - Attributes are used "as is" and won't be transformed in any way (such to `lowercase` or from
30
+ * `dashed-case` to `camelCase`).
31
+ *
32
+ * ## Event Handlers
33
+ *
34
+ * - Event handlers use `camelCase` such `onClick` and will be delegated when possible, bubbling
35
+ * through the component tree, not the dom tree.
36
+ * - Native event handlers use the namespace `on:` such `on:click`, and wont be delegated. bubbling
37
+ * the dom tree.
38
+ * - A global case-insensitive event handler can be added by extending `EventHandlersElement<T>`
39
+ * - A native `on:` event handler can be added by extending `CustomEvents<T>` interface
40
+ *
41
+ * ## Boolean Attributes (property setter that accepts `true | false`):
42
+ *
43
+ * - `(bool)true` adds the attribute `<video autoplay={true}/>` or in JSX as `<video autoplay/>`
44
+ * - `(bool)false` removes the attribute from the DOM `<video autoplay={false}/>`
45
+ * - `=""` may be accepted for the sake of parity with html `<video autoplay=""/>`
46
+ * - `"true" | "false"` are NOT allowed, these are strings that evaluate to `(bool)true`
47
+ *
48
+ * ## Enumerated Attributes (attribute accepts 1 string value out of many)
49
+ *
50
+ * - Accepts any of the enumerated values, such: `"perhaps" | "maybe"`
51
+ * - When one of the possible values is empty(in html that's for the attribute to be present), then it
52
+ * will also accept `(bool)true` to make it consistent with boolean attributes.
53
+ *
54
+ * Such `popover` attribute provides `"" | "manual" | "auto" | "hint"`.
55
+ *
56
+ * By NOT allowing `(bool)true` we will have to write `<div popover="" />`. Therefore, To make it
57
+ * consistent with Boolean Attributes we accept `true | "" | "manual" | "auto" | "hint"`, such as:
58
+ * `<div popover={true} />` or in JSX `<div popover />` is allowed and equivalent to `<div
59
+ * popover="" />`
60
+ *
61
+ * ## Pseudo-Boolean Attributes (enumerated attributes that happen to accept the strings `"true" | "false"`)
62
+ *
63
+ * - Such `<div draggable="true"/>` or `<div draggable="false"/>`. The value of the attribute is a
64
+ * string not a boolean.
65
+ * - `<div draggable={true}/>` is not valid because `(bool)true` is NOT transformed to the string
66
+ * `"true"`. Likewise `<div draggable={false}/>` removes the attribute from the element.
67
+ * - MDN documentation https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/draggable
68
+ *
69
+ * ## All Of The Above In a nutshell
70
+ *
71
+ * - `(bool)true` adds an empty attribute
72
+ * - `(bool)false` removes the attribute
73
+ * - Attributes are lowercase
74
+ * - Event handlers are camelCase
75
+ * - Anything else is a `string` and used "as is"
76
+ * - Additionally, an attribute may be removed by `undefined`
77
+ *
78
+ * ## Using Properties
79
+ *
80
+ * - The namespace `prop:` could be used to directly set properties in native elements and
81
+ * custom-elements. `<custom-element prop:myProp={true}/>` equivalent to `el.myProp = true`
82
+ *
83
+ * ## Interfaces
84
+ *
85
+ * Events
86
+ *
87
+ * 1. An event handler goes in `EventHandlersElement` when:
88
+ *
89
+ * - `event` is global, that's to be defined in `HTMLElement` AND `SVGElement` AND `MathMLElement`
90
+ * - `event` is defined in `Element` (as `HTMLElement/MathMLElement/SVGElement` -> `Element`)
91
+ * 2. `<body>`, `<svg>`, `<framesete>` are special as these include `window` events
92
+ * 3. Any other event is special for its own tag.
93
+ *
94
+ * Browser Hierarchy
95
+ *
96
+ * - $Element (ex HTMLDivElement <div>) -> ... -> HTMLElement -> Element -> Node
97
+ * - $Element (all math elements are MathMLElement) MathMLElement -> Element -> Node
98
+ * - $Element`(ex SVGMaskElement <mask>) -> ... -> SVGElement -> Element -> Node
99
+ *
100
+ * Attributes
101
+ *
102
+ * <div> -> ... -> HTMLAttributes -> ElementAttributes
103
+ * <svg> -> ... -> SVGAttributes -> ElementAttributes
104
+ * <math> -> ... -> MathMLAttributes -> ElementAttributes
105
+ *
106
+ * ElementAttributes = `Element` + `Node` attributes (aka global attributes)
107
+ *
108
+ * HTMLAttributes = `HTMLElement` attributes (aka HTML global attributes)
109
+ * SVGAttributes = `SVGElement` attributes (aka SVG global attributes)
110
+ * MathMLAttributes = `MathMLElement` attributes (aka MATH global attributes)
111
+ *
112
+ * CustomAttributes = Framework attributes
17
113
  */
114
+
18
115
  type DOMElement = Element;
19
116
 
20
117
  export namespace JSX {
118
+ // START - difference between `jsx.d.ts` and `jsx-h.d.ts`
119
+ type FunctionMaybe<T = unknown> = { (): T } | T;
120
+ interface FunctionElement {
121
+ (): Element;
122
+ }
123
+
21
124
  type Element = Node | ArrayElement | (string & {}) | number | boolean | null | undefined;
125
+ // END - difference between `jsx.d.ts` and `jsx-h.d.ts`
126
+
22
127
  interface ArrayElement extends Array<Element> {}
23
128
 
24
129
  interface ElementClass {
@@ -31,6 +136,8 @@ export namespace JSX {
31
136
  children: {};
32
137
  }
33
138
 
139
+ // Event handlers
140
+
34
141
  interface EventHandler<T, E extends Event> {
35
142
  (
36
143
  e: E & {
@@ -55,7 +162,8 @@ export namespace JSX {
55
162
  > = EHandler | BoundEventHandler<T, E, EHandler>;
56
163
 
57
164
  interface EventHandlerWithOptions<T, E extends Event, EHandler = EventHandler<T, E>>
58
- extends AddEventListenerOptions {
165
+ extends AddEventListenerOptions,
166
+ EventListenerOptions {
59
167
  handleEvent: EHandler;
60
168
  }
61
169
 
@@ -112,6 +220,7 @@ export namespace JSX {
112
220
  E,
113
221
  FocusEventHandler<T, E>
114
222
  >;
223
+ // end event handlers
115
224
 
116
225
  type ClassList =
117
226
  | Record<string, boolean>
@@ -128,6 +237,7 @@ export namespace JSX {
128
237
  }
129
238
  interface CustomAttributes<T> {
130
239
  ref?: T | ((el: T) => void) | undefined;
240
+ children?: Element | undefined;
131
241
  $ServerOnly?: boolean | undefined;
132
242
  }
133
243
  type Accessor<T> = () => T;
@@ -136,8 +246,6 @@ export namespace JSX {
136
246
  [x: string]: (el: DOMElement, accessor: Accessor<any>) => void;
137
247
  }
138
248
  interface ExplicitProperties {}
139
- interface ExplicitAttributes {}
140
- interface ExplicitBoolAttributes {}
141
249
  interface CustomEvents {}
142
250
  type DirectiveAttributes = {
143
251
  [Key in keyof Directives as `use:${Key}`]?: Directives[Key];
@@ -161,458 +269,43 @@ export namespace JSX {
161
269
  type PropAttributes = {
162
270
  [Key in keyof ExplicitProperties as `prop:${Key}`]?: ExplicitProperties[Key];
163
271
  };
164
- type AttrAttributes = {
165
- [Key in keyof ExplicitAttributes as `attr:${Key}`]?: ExplicitAttributes[Key];
166
- };
167
- type BoolAttributes = {
168
- [Key in keyof ExplicitBoolAttributes as `bool:${Key}`]?: ExplicitBoolAttributes[Key];
169
- };
170
272
  type OnAttributes<T> = {
171
273
  [Key in keyof CustomEvents as `on:${Key}`]?: EventHandlerWithOptionsUnion<T, CustomEvents[Key]>;
172
274
  };
173
- interface DOMAttributes<T>
174
- extends CustomAttributes<T>,
175
- DirectiveAttributes,
176
- DirectiveFunctionAttributes<T>,
177
- PropAttributes,
178
- AttrAttributes,
179
- BoolAttributes,
180
- OnAttributes<T>,
181
- CustomEventHandlersCamelCase<T>,
182
- CustomEventHandlersLowerCase<T>,
183
- CustomEventHandlersNamespaced<T> {
184
- children?: Element | undefined;
185
- innerHTML?: string | undefined;
186
- innerText?: string | number | undefined;
187
- textContent?: string | number | undefined;
188
- // camel case events
189
- onCopy?: EventHandlerUnion<T, ClipboardEvent> | undefined;
190
- onCut?: EventHandlerUnion<T, ClipboardEvent> | undefined;
191
- onPaste?: EventHandlerUnion<T, ClipboardEvent> | undefined;
192
- onCompositionEnd?: EventHandlerUnion<T, CompositionEvent> | undefined;
193
- onCompositionStart?: EventHandlerUnion<T, CompositionEvent> | undefined;
194
- onCompositionUpdate?: EventHandlerUnion<T, CompositionEvent> | undefined;
195
- onFocusOut?: FocusEventHandlerUnion<T, FocusEvent> | undefined;
196
- onFocusIn?: FocusEventHandlerUnion<T, FocusEvent> | undefined;
197
- onEncrypted?: EventHandlerUnion<T, MediaEncryptedEvent> | undefined;
198
- onDragExit?: EventHandlerUnion<T, DragEvent> | undefined;
199
- // lower case events
200
- /** @deprecated Use camelCase event handlers */
201
- oncopy?: EventHandlerUnion<T, ClipboardEvent> | undefined;
202
- /** @deprecated Use camelCase event handlers */
203
- oncut?: EventHandlerUnion<T, ClipboardEvent> | undefined;
204
- /** @deprecated Use camelCase event handlers */
205
- onpaste?: EventHandlerUnion<T, ClipboardEvent> | undefined;
206
- /** @deprecated Use camelCase event handlers */
207
- oncompositionend?: EventHandlerUnion<T, CompositionEvent> | undefined;
208
- /** @deprecated Use camelCase event handlers */
209
- oncompositionstart?: EventHandlerUnion<T, CompositionEvent> | undefined;
210
- /** @deprecated Use camelCase event handlers */
211
- oncompositionupdate?: EventHandlerUnion<T, CompositionEvent> | undefined;
212
- /** @deprecated Use camelCase event handlers */
213
- onfocusout?: FocusEventHandlerUnion<T, FocusEvent> | undefined;
214
- /** @deprecated Use camelCase event handlers */
215
- onfocusin?: FocusEventHandlerUnion<T, FocusEvent> | undefined;
216
- /** @deprecated Use camelCase event handlers */
217
- onencrypted?: EventHandlerUnion<T, MediaEncryptedEvent> | undefined;
218
- /** @deprecated Use camelCase event handlers */
219
- ondragexit?: EventHandlerUnion<T, DragEvent> | undefined;
220
- // namespaced events
221
- "on:copy"?: EventHandlerWithOptionsUnion<T, ClipboardEvent> | undefined;
222
- "on:cut"?: EventHandlerWithOptionsUnion<T, ClipboardEvent> | undefined;
223
- "on:paste"?: EventHandlerWithOptionsUnion<T, ClipboardEvent> | undefined;
224
- "on:compositionend"?: EventHandlerWithOptionsUnion<T, CompositionEvent> | undefined;
225
- "on:compositionstart"?: EventHandlerWithOptionsUnion<T, CompositionEvent> | undefined;
226
- "on:compositionupdate"?: EventHandlerWithOptionsUnion<T, CompositionEvent> | undefined;
227
- "on:focusout"?:
228
- | EventHandlerWithOptionsUnion<T, FocusEvent, FocusEventHandler<T, FocusEvent>>
229
- | undefined;
230
- "on:focusin"?:
231
- | EventHandlerWithOptionsUnion<T, FocusEvent, FocusEventHandler<T, FocusEvent>>
232
- | undefined;
233
- "on:encrypted"?: EventHandlerWithOptionsUnion<T, MediaEncryptedEvent> | undefined;
234
- "on:dragexit"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
235
- }
236
- interface CustomEventHandlersCamelCase<T> {
237
- onAbort?: EventHandlerUnion<T, UIEvent> | undefined;
238
- onAnimationEnd?: EventHandlerUnion<T, AnimationEvent> | undefined;
239
- onAnimationIteration?: EventHandlerUnion<T, AnimationEvent> | undefined;
240
- onAnimationStart?: EventHandlerUnion<T, AnimationEvent> | undefined;
241
- onAuxClick?: EventHandlerUnion<T, MouseEvent> | undefined;
242
- onBeforeInput?: InputEventHandlerUnion<T, InputEvent> | undefined;
243
- onBeforeToggle?: EventHandlerUnion<T, ToggleEvent> | undefined;
244
- onBlur?: FocusEventHandlerUnion<T, FocusEvent> | undefined;
245
- onCanPlay?: EventHandlerUnion<T, Event> | undefined;
246
- onCanPlayThrough?: EventHandlerUnion<T, Event> | undefined;
247
- onChange?: ChangeEventHandlerUnion<T, Event> | undefined;
248
- onClick?: EventHandlerUnion<T, MouseEvent> | undefined;
249
- onContextMenu?: EventHandlerUnion<T, MouseEvent> | undefined;
250
- onDblClick?: EventHandlerUnion<T, MouseEvent> | undefined;
251
- onDrag?: EventHandlerUnion<T, DragEvent> | undefined;
252
- onDragEnd?: EventHandlerUnion<T, DragEvent> | undefined;
253
- onDragEnter?: EventHandlerUnion<T, DragEvent> | undefined;
254
- onDragLeave?: EventHandlerUnion<T, DragEvent> | undefined;
255
- onDragOver?: EventHandlerUnion<T, DragEvent> | undefined;
256
- onDragStart?: EventHandlerUnion<T, DragEvent> | undefined;
257
- onDrop?: EventHandlerUnion<T, DragEvent> | undefined;
258
- onDurationChange?: EventHandlerUnion<T, Event> | undefined;
259
- onEmptied?: EventHandlerUnion<T, Event> | undefined;
260
- onEnded?: EventHandlerUnion<T, Event> | undefined;
261
- onError?: EventHandlerUnion<T, ErrorEvent> | undefined;
262
- onFocus?: FocusEventHandlerUnion<T, FocusEvent> | undefined;
263
- onGotPointerCapture?: EventHandlerUnion<T, PointerEvent> | undefined;
264
- onInput?: InputEventHandlerUnion<T, InputEvent> | undefined;
265
- onInvalid?: EventHandlerUnion<T, Event> | undefined;
266
- onKeyDown?: EventHandlerUnion<T, KeyboardEvent> | undefined;
267
- onKeyPress?: EventHandlerUnion<T, KeyboardEvent> | undefined;
268
- onKeyUp?: EventHandlerUnion<T, KeyboardEvent> | undefined;
269
- onLoad?: EventHandlerUnion<T, Event> | undefined;
270
- onLoadedData?: EventHandlerUnion<T, Event> | undefined;
271
- onLoadedMetadata?: EventHandlerUnion<T, Event> | undefined;
272
- onLoadStart?: EventHandlerUnion<T, Event> | undefined;
273
- onLostPointerCapture?: EventHandlerUnion<T, PointerEvent> | undefined;
274
- onMouseDown?: EventHandlerUnion<T, MouseEvent> | undefined;
275
- onMouseEnter?: EventHandlerUnion<T, MouseEvent> | undefined;
276
- onMouseLeave?: EventHandlerUnion<T, MouseEvent> | undefined;
277
- onMouseMove?: EventHandlerUnion<T, MouseEvent> | undefined;
278
- onMouseOut?: EventHandlerUnion<T, MouseEvent> | undefined;
279
- onMouseOver?: EventHandlerUnion<T, MouseEvent> | undefined;
280
- onMouseUp?: EventHandlerUnion<T, MouseEvent> | undefined;
281
- onPause?: EventHandlerUnion<T, Event> | undefined;
282
- onPlay?: EventHandlerUnion<T, Event> | undefined;
283
- onPlaying?: EventHandlerUnion<T, Event> | undefined;
284
- onPointerCancel?: EventHandlerUnion<T, PointerEvent> | undefined;
285
- onPointerDown?: EventHandlerUnion<T, PointerEvent> | undefined;
286
- onPointerEnter?: EventHandlerUnion<T, PointerEvent> | undefined;
287
- onPointerLeave?: EventHandlerUnion<T, PointerEvent> | undefined;
288
- onPointerMove?: EventHandlerUnion<T, PointerEvent> | undefined;
289
- onPointerOut?: EventHandlerUnion<T, PointerEvent> | undefined;
290
- onPointerOver?: EventHandlerUnion<T, PointerEvent> | undefined;
291
- onPointerUp?: EventHandlerUnion<T, PointerEvent> | undefined;
292
- onProgress?: EventHandlerUnion<T, ProgressEvent> | undefined;
293
- onRateChange?: EventHandlerUnion<T, Event> | undefined;
294
- onReset?: EventHandlerUnion<T, Event> | undefined;
295
- onScroll?: EventHandlerUnion<T, Event> | undefined;
296
- onScrollEnd?: EventHandlerUnion<T, Event> | undefined;
297
- onSeeked?: EventHandlerUnion<T, Event> | undefined;
298
- onSeeking?: EventHandlerUnion<T, Event> | undefined;
299
- onSelect?: EventHandlerUnion<T, Event> | undefined;
300
- onStalled?: EventHandlerUnion<T, Event> | undefined;
301
- onSubmit?: EventHandlerUnion<T, SubmitEvent> | undefined;
302
- onSuspend?: EventHandlerUnion<T, Event> | undefined;
303
- onTimeUpdate?: EventHandlerUnion<T, Event> | undefined;
304
- onToggle?: EventHandlerUnion<T, ToggleEvent> | undefined;
305
- onTouchCancel?: EventHandlerUnion<T, TouchEvent> | undefined;
306
- onTouchEnd?: EventHandlerUnion<T, TouchEvent> | undefined;
307
- onTouchMove?: EventHandlerUnion<T, TouchEvent> | undefined;
308
- onTouchStart?: EventHandlerUnion<T, TouchEvent> | undefined;
309
- onTransitionStart?: EventHandlerUnion<T, TransitionEvent> | undefined;
310
- onTransitionEnd?: EventHandlerUnion<T, TransitionEvent> | undefined;
311
- onTransitionRun?: EventHandlerUnion<T, TransitionEvent> | undefined;
312
- onTransitionCancel?: EventHandlerUnion<T, TransitionEvent> | undefined;
313
- onVolumeChange?: EventHandlerUnion<T, Event> | undefined;
314
- onWaiting?: EventHandlerUnion<T, Event> | undefined;
315
- onWheel?: EventHandlerUnion<T, WheelEvent> | undefined;
316
- }
317
- /** @type {GlobalEventHandlers} */
318
- interface CustomEventHandlersLowerCase<T> {
319
- /** @deprecated Use camelCase event handlers */
320
- onabort?: EventHandlerUnion<T, Event> | undefined;
321
- /** @deprecated Use camelCase event handlers */
322
- onanimationend?: EventHandlerUnion<T, AnimationEvent> | undefined;
323
- /** @deprecated Use camelCase event handlers */
324
- onanimationiteration?: EventHandlerUnion<T, AnimationEvent> | undefined;
325
- /** @deprecated Use camelCase event handlers */
326
- onanimationstart?: EventHandlerUnion<T, AnimationEvent> | undefined;
327
- /** @deprecated Use camelCase event handlers */
328
- onauxclick?: EventHandlerUnion<T, MouseEvent> | undefined;
329
- /** @deprecated Use camelCase event handlers */
330
- onbeforeinput?: InputEventHandlerUnion<T, InputEvent> | undefined;
331
- /** @deprecated Use camelCase event handlers */
332
- onbeforetoggle?: EventHandlerUnion<T, ToggleEvent> | undefined;
333
- /** @deprecated Use camelCase event handlers */
334
- onblur?: FocusEventHandlerUnion<T, FocusEvent> | undefined;
335
- /** @deprecated Use camelCase event handlers */
336
- oncanplay?: EventHandlerUnion<T, Event> | undefined;
337
- /** @deprecated Use camelCase event handlers */
338
- oncanplaythrough?: EventHandlerUnion<T, Event> | undefined;
339
- /** @deprecated Use camelCase event handlers */
340
- onchange?: ChangeEventHandlerUnion<T, Event> | undefined;
341
- /** @deprecated Use camelCase event handlers */
342
- onclick?: EventHandlerUnion<T, MouseEvent> | undefined;
343
- /** @deprecated Use camelCase event handlers */
344
- oncontextmenu?: EventHandlerUnion<T, MouseEvent> | undefined;
345
- /** @deprecated Use camelCase event handlers */
346
- ondblclick?: EventHandlerUnion<T, MouseEvent> | undefined;
347
- /** @deprecated Use camelCase event handlers */
348
- ondrag?: EventHandlerUnion<T, DragEvent> | undefined;
349
- /** @deprecated Use camelCase event handlers */
350
- ondragend?: EventHandlerUnion<T, DragEvent> | undefined;
351
- /** @deprecated Use camelCase event handlers */
352
- ondragenter?: EventHandlerUnion<T, DragEvent> | undefined;
353
- /** @deprecated Use camelCase event handlers */
354
- ondragleave?: EventHandlerUnion<T, DragEvent> | undefined;
355
- /** @deprecated Use camelCase event handlers */
356
- ondragover?: EventHandlerUnion<T, DragEvent> | undefined;
357
- /** @deprecated Use camelCase event handlers */
358
- ondragstart?: EventHandlerUnion<T, DragEvent> | undefined;
359
- /** @deprecated Use camelCase event handlers */
360
- ondrop?: EventHandlerUnion<T, DragEvent> | undefined;
361
- /** @deprecated Use camelCase event handlers */
362
- ondurationchange?: EventHandlerUnion<T, Event> | undefined;
363
- /** @deprecated Use camelCase event handlers */
364
- onemptied?: EventHandlerUnion<T, Event> | undefined;
365
- /** @deprecated Use camelCase event handlers */
366
- onended?: EventHandlerUnion<T, Event> | undefined;
367
- /** @deprecated Use camelCase event handlers */
368
- onerror?: EventHandlerUnion<T, ErrorEvent> | undefined;
369
- /** @deprecated Use camelCase event handlers */
370
- onfocus?: FocusEventHandlerUnion<T, FocusEvent> | undefined;
371
- /** @deprecated Use camelCase event handlers */
372
- ongotpointercapture?: EventHandlerUnion<T, PointerEvent> | undefined;
373
- /** @deprecated Use camelCase event handlers */
374
- oninput?: InputEventHandlerUnion<T, InputEvent> | undefined;
375
- /** @deprecated Use camelCase event handlers */
376
- oninvalid?: EventHandlerUnion<T, Event> | undefined;
377
- /** @deprecated Use camelCase event handlers */
378
- onkeydown?: EventHandlerUnion<T, KeyboardEvent> | undefined;
379
- /** @deprecated Use camelCase event handlers */
380
- onkeypress?: EventHandlerUnion<T, KeyboardEvent> | undefined;
381
- /** @deprecated Use camelCase event handlers */
382
- onkeyup?: EventHandlerUnion<T, KeyboardEvent> | undefined;
383
- /** @deprecated Use camelCase event handlers */
384
- onload?: EventHandlerUnion<T, Event> | undefined;
385
- /** @deprecated Use camelCase event handlers */
386
- onloadeddata?: EventHandlerUnion<T, Event> | undefined;
387
- /** @deprecated Use camelCase event handlers */
388
- onloadedmetadata?: EventHandlerUnion<T, Event> | undefined;
389
- /** @deprecated Use camelCase event handlers */
390
- onloadstart?: EventHandlerUnion<T, Event> | undefined;
391
- /** @deprecated Use camelCase event handlers */
392
- onlostpointercapture?: EventHandlerUnion<T, PointerEvent> | undefined;
393
- /** @deprecated Use camelCase event handlers */
394
- onmousedown?: EventHandlerUnion<T, MouseEvent> | undefined;
395
- /** @deprecated Use camelCase event handlers */
396
- onmouseenter?: EventHandlerUnion<T, MouseEvent> | undefined;
397
- /** @deprecated Use camelCase event handlers */
398
- onmouseleave?: EventHandlerUnion<T, MouseEvent> | undefined;
399
- /** @deprecated Use camelCase event handlers */
400
- onmousemove?: EventHandlerUnion<T, MouseEvent> | undefined;
401
- /** @deprecated Use camelCase event handlers */
402
- onmouseout?: EventHandlerUnion<T, MouseEvent> | undefined;
403
- /** @deprecated Use camelCase event handlers */
404
- onmouseover?: EventHandlerUnion<T, MouseEvent> | undefined;
405
- /** @deprecated Use camelCase event handlers */
406
- onmouseup?: EventHandlerUnion<T, MouseEvent> | undefined;
407
- /** @deprecated Use camelCase event handlers */
408
- onpause?: EventHandlerUnion<T, Event> | undefined;
409
- /** @deprecated Use camelCase event handlers */
410
- onplay?: EventHandlerUnion<T, Event> | undefined;
411
- /** @deprecated Use camelCase event handlers */
412
- onplaying?: EventHandlerUnion<T, Event> | undefined;
413
- /** @deprecated Use camelCase event handlers */
414
- onpointercancel?: EventHandlerUnion<T, PointerEvent> | undefined;
415
- /** @deprecated Use camelCase event handlers */
416
- onpointerdown?: EventHandlerUnion<T, PointerEvent> | undefined;
417
- /** @deprecated Use camelCase event handlers */
418
- onpointerenter?: EventHandlerUnion<T, PointerEvent> | undefined;
419
- /** @deprecated Use camelCase event handlers */
420
- onpointerleave?: EventHandlerUnion<T, PointerEvent> | undefined;
421
- /** @deprecated Use camelCase event handlers */
422
- onpointermove?: EventHandlerUnion<T, PointerEvent> | undefined;
423
- /** @deprecated Use camelCase event handlers */
424
- onpointerout?: EventHandlerUnion<T, PointerEvent> | undefined;
425
- /** @deprecated Use camelCase event handlers */
426
- onpointerover?: EventHandlerUnion<T, PointerEvent> | undefined;
427
- /** @deprecated Use camelCase event handlers */
428
- onpointerup?: EventHandlerUnion<T, PointerEvent> | undefined;
429
- /** @deprecated Use camelCase event handlers */
430
- onprogress?: EventHandlerUnion<T, ProgressEvent> | undefined;
431
- /** @deprecated Use camelCase event handlers */
432
- onratechange?: EventHandlerUnion<T, Event> | undefined;
433
- /** @deprecated Use camelCase event handlers */
434
- onreset?: EventHandlerUnion<T, Event> | undefined;
435
- /** @deprecated Use camelCase event handlers */
436
- onscroll?: EventHandlerUnion<T, Event> | undefined;
437
- /** @deprecated Use camelCase event handlers */
438
- onscrollend?: EventHandlerUnion<T, Event> | undefined;
439
- /** @deprecated Use camelCase event handlers */
440
- onseeked?: EventHandlerUnion<T, Event> | undefined;
441
- /** @deprecated Use camelCase event handlers */
442
- onseeking?: EventHandlerUnion<T, Event> | undefined;
443
- /** @deprecated Use camelCase event handlers */
444
- onselect?: EventHandlerUnion<T, Event> | undefined;
445
- /** @deprecated Use camelCase event handlers */
446
- onstalled?: EventHandlerUnion<T, Event> | undefined;
447
- /** @deprecated Use camelCase event handlers */
448
- onsubmit?: EventHandlerUnion<T, SubmitEvent> | undefined;
449
- /** @deprecated Use camelCase event handlers */
450
- onsuspend?: EventHandlerUnion<T, Event> | undefined;
451
- /** @deprecated Use camelCase event handlers */
452
- ontimeupdate?: EventHandlerUnion<T, Event> | undefined;
453
- /** @deprecated Use camelCase event handlers */
454
- ontoggle?: EventHandlerUnion<T, ToggleEvent> | undefined;
455
- /** @deprecated Use camelCase event handlers */
456
- ontouchcancel?: EventHandlerUnion<T, TouchEvent> | undefined;
457
- /** @deprecated Use camelCase event handlers */
458
- ontouchend?: EventHandlerUnion<T, TouchEvent> | undefined;
459
- /** @deprecated Use camelCase event handlers */
460
- ontouchmove?: EventHandlerUnion<T, TouchEvent> | undefined;
461
- /** @deprecated Use camelCase event handlers */
462
- ontouchstart?: EventHandlerUnion<T, TouchEvent> | undefined;
463
- /** @deprecated Use camelCase event handlers */
464
- ontransitionstart?: EventHandlerUnion<T, TransitionEvent> | undefined;
465
- /** @deprecated Use camelCase event handlers */
466
- ontransitionend?: EventHandlerUnion<T, TransitionEvent> | undefined;
467
- /** @deprecated Use camelCase event handlers */
468
- ontransitionrun?: EventHandlerUnion<T, TransitionEvent> | undefined;
469
- /** @deprecated Use camelCase event handlers */
470
- ontransitioncancel?: EventHandlerUnion<T, TransitionEvent> | undefined;
471
- /** @deprecated Use camelCase event handlers */
472
- onvolumechange?: EventHandlerUnion<T, Event> | undefined;
473
- /** @deprecated Use camelCase event handlers */
474
- onwaiting?: EventHandlerUnion<T, Event> | undefined;
475
- /** @deprecated Use camelCase event handlers */
476
- onwheel?: EventHandlerUnion<T, WheelEvent> | undefined;
477
- }
478
- interface CustomEventHandlersNamespaced<T> {
479
- "on:abort"?: EventHandlerWithOptionsUnion<T, UIEvent> | undefined;
480
- "on:animationend"?: EventHandlerWithOptionsUnion<T, AnimationEvent> | undefined;
481
- "on:animationiteration"?: EventHandlerWithOptionsUnion<T, AnimationEvent> | undefined;
482
- "on:animationstart"?: EventHandlerWithOptionsUnion<T, AnimationEvent> | undefined;
483
- "on:auxclick"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
484
- "on:beforeinput"?:
485
- | EventHandlerWithOptionsUnion<T, InputEvent, InputEventHandler<T, InputEvent>>
486
- | undefined;
487
- "on:beforetoggle"?: EventHandlerWithOptionsUnion<T, ToggleEvent> | undefined;
488
- "on:blur"?:
489
- | EventHandlerWithOptionsUnion<T, FocusEvent, FocusEventHandler<T, FocusEvent>>
490
- | undefined;
491
- "on:canplay"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
492
- "on:canplaythrough"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
493
- "on:change"?: EventHandlerWithOptionsUnion<T, Event, ChangeEventHandler<T, Event>> | undefined;
494
- "on:click"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
495
- "on:contextmenu"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
496
- "on:dblclick"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
497
- "on:drag"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
498
- "on:dragend"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
499
- "on:dragenter"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
500
- "on:dragleave"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
501
- "on:dragover"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
502
- "on:dragstart"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
503
- "on:drop"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
504
- "on:durationchange"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
505
- "on:emptied"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
506
- "on:ended"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
507
- "on:error"?: EventHandlerWithOptionsUnion<T, ErrorEvent> | undefined;
508
- "on:focus"?:
509
- | EventHandlerWithOptionsUnion<T, FocusEvent, FocusEventHandler<T, FocusEvent>>
510
- | undefined;
511
- "on:gotpointercapture"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
512
- "on:input"?:
513
- | EventHandlerWithOptionsUnion<T, InputEvent, InputEventHandler<T, InputEvent>>
514
- | undefined;
515
- "on:invalid"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
516
- "on:keydown"?: EventHandlerWithOptionsUnion<T, KeyboardEvent> | undefined;
517
- "on:keypress"?: EventHandlerWithOptionsUnion<T, KeyboardEvent> | undefined;
518
- "on:keyup"?: EventHandlerWithOptionsUnion<T, KeyboardEvent> | undefined;
519
- "on:load"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
520
- "on:loadeddata"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
521
- "on:loadedmetadata"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
522
- "on:loadstart"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
523
- "on:lostpointercapture"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
524
- "on:mousedown"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
525
- "on:mouseenter"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
526
- "on:mouseleave"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
527
- "on:mousemove"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
528
- "on:mouseout"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
529
- "on:mouseover"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
530
- "on:mouseup"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
531
- "on:pause"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
532
- "on:play"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
533
- "on:playing"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
534
- "on:pointercancel"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
535
- "on:pointerdown"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
536
- "on:pointerenter"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
537
- "on:pointerleave"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
538
- "on:pointermove"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
539
- "on:pointerout"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
540
- "on:pointerover"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
541
- "on:pointerup"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
542
- "on:progress"?: EventHandlerWithOptionsUnion<T, ProgressEvent> | undefined;
543
- "on:ratechange"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
544
- "on:reset"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
545
- "on:scroll"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
546
- "on:scrollend"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
547
- "on:seeked"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
548
- "on:seeking"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
549
- "on:select"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
550
- "on:stalled"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
551
- "on:submit"?: EventHandlerWithOptionsUnion<T, SubmitEvent> | undefined;
552
- "on:suspend"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
553
- "on:timeupdate"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
554
- "on:toggle"?: EventHandlerWithOptionsUnion<T, ToggleEvent> | undefined;
555
- "on:touchcancel"?: EventHandlerWithOptionsUnion<T, TouchEvent> | undefined;
556
- "on:touchend"?: EventHandlerWithOptionsUnion<T, TouchEvent> | undefined;
557
- "on:touchmove"?: EventHandlerWithOptionsUnion<T, TouchEvent> | undefined;
558
- "on:touchstart"?: EventHandlerWithOptionsUnion<T, TouchEvent> | undefined;
559
- "on:transitionstart"?: EventHandlerWithOptionsUnion<T, TransitionEvent> | undefined;
560
- "on:transitionend"?: EventHandlerWithOptionsUnion<T, TransitionEvent> | undefined;
561
- "on:transitionrun"?: EventHandlerWithOptionsUnion<T, TransitionEvent> | undefined;
562
- "on:transitioncancel"?: EventHandlerWithOptionsUnion<T, TransitionEvent> | undefined;
563
- "on:volumechange"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
564
- "on:waiting"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
565
- "on:wheel"?: EventHandlerWithOptionsUnion<T, WheelEvent> | undefined;
566
- }
275
+
276
+ // CSS
567
277
 
568
278
  interface CSSProperties extends csstype.PropertiesHyphen {
569
279
  // Override
570
280
  [key: `-${string}`]: string | number | undefined;
571
281
  }
572
282
 
573
- type HTMLAutocapitalize = "off" | "none" | "on" | "sentences" | "words" | "characters";
574
- type HTMLDir = "ltr" | "rtl" | "auto";
575
- type HTMLFormEncType = "application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain";
576
- type HTMLFormMethod = "post" | "get" | "dialog";
577
- type HTMLCrossorigin = "anonymous" | "use-credentials" | "";
578
- type HTMLReferrerPolicy =
579
- | "no-referrer"
580
- | "no-referrer-when-downgrade"
581
- | "origin"
582
- | "origin-when-cross-origin"
583
- | "same-origin"
584
- | "strict-origin"
585
- | "strict-origin-when-cross-origin"
586
- | "unsafe-url";
587
- type HTMLIframeSandbox =
588
- | "allow-downloads-without-user-activation"
589
- | "allow-downloads"
590
- | "allow-forms"
591
- | "allow-modals"
592
- | "allow-orientation-lock"
593
- | "allow-pointer-lock"
594
- | "allow-popups"
595
- | "allow-popups-to-escape-sandbox"
596
- | "allow-presentation"
597
- | "allow-same-origin"
598
- | "allow-scripts"
599
- | "allow-storage-access-by-user-activation"
600
- | "allow-top-navigation"
601
- | "allow-top-navigation-by-user-activation"
602
- | "allow-top-navigation-to-custom-protocols";
603
- type HTMLLinkAs =
604
- | "audio"
605
- | "document"
606
- | "embed"
607
- | "fetch"
608
- | "font"
609
- | "image"
610
- | "object"
611
- | "script"
612
- | "style"
613
- | "track"
614
- | "video"
615
- | "worker";
283
+ // TODO: Should we allow this?
284
+ // type ClassKeys = `class:${string}`;
285
+ // type CSSKeys = Exclude<keyof csstype.PropertiesHyphen, `-${string}`>;
286
+
287
+ // type CSSAttributes = {
288
+ // [key in CSSKeys as `style:${key}`]: csstype.PropertiesHyphen[key];
289
+ // };
290
+
291
+ // BOOLEAN
292
+
293
+ /**
294
+ * Boolean and Pseudo-Boolean Attributes Helpers.
295
+ *
296
+ * Please use the helpers to describe boolean and pseudo boolean attributes to make this file and
297
+ * also the typings easier to understand and explain.
298
+ */
299
+
300
+ type BooleanAttribute = true | false | "";
301
+
302
+ type EnumeratedPseudoBoolean = "false" | "true";
303
+
304
+ type EnumeratedAcceptsEmpty = "" | true;
305
+
306
+ type RemoveAttribute = undefined | false;
307
+
308
+ // ARIA
616
309
 
617
310
  // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/
618
311
  interface AriaAttributes {
@@ -620,180 +313,205 @@ export namespace JSX {
620
313
  * Identifies the currently active element when DOM focus is on a composite widget, textbox,
621
314
  * group, or application.
622
315
  */
623
- "aria-activedescendant"?: string | undefined;
316
+ "aria-activedescendant"?: string | RemoveAttribute;
624
317
  /**
625
318
  * Indicates whether assistive technologies will present all, or only parts of, the changed
626
319
  * region based on the change notifications defined by the aria-relevant attribute.
627
320
  */
628
- "aria-atomic"?: boolean | "false" | "true" | undefined;
321
+ "aria-atomic"?: EnumeratedPseudoBoolean | RemoveAttribute;
322
+ /**
323
+ * Similar to the global aria-label. Defines a string value that labels the current element,
324
+ * which is intended to be converted into Braille.
325
+ *
326
+ * @see aria-label.
327
+ */
328
+ "aria-braillelabel"?: string | RemoveAttribute;
329
+ /**
330
+ * Defines a human-readable, author-localized abbreviated description for the role of an element
331
+ * intended to be converted into Braille. Braille is not a one-to-one transliteration of letters
332
+ * and numbers, but rather it includes various abbreviations, contractions, and characters that
333
+ * represent words (known as logograms).
334
+ *
335
+ * Instead of converting long role descriptions to Braille, the aria-brailleroledescription
336
+ * attribute allows for providing an abbreviated version of the aria-roledescription value,
337
+ * which is a human-readable, author-localized description for the role of an element, for
338
+ * improved user experience with braille interfaces.
339
+ *
340
+ * @see aria-roledescription.
341
+ */
342
+ "aria-brailleroledescription"?: string | RemoveAttribute;
629
343
  /**
630
344
  * Indicates whether inputting text could trigger display of one or more predictions of the
631
345
  * user's intended value for an input and specifies how predictions would be presented if they
632
346
  * are made.
633
347
  */
634
- "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
348
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | RemoveAttribute;
635
349
  /**
636
350
  * Indicates an element is being modified and that assistive technologies MAY want to wait until
637
351
  * the modifications are complete before exposing them to the user.
638
352
  */
639
- "aria-busy"?: boolean | "false" | "true" | undefined;
353
+ "aria-busy"?: EnumeratedPseudoBoolean | RemoveAttribute;
640
354
  /**
641
355
  * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
642
356
  *
643
357
  * @see aria-pressed @see aria-selected.
644
358
  */
645
- "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
359
+ "aria-checked"?: EnumeratedPseudoBoolean | "mixed" | RemoveAttribute;
646
360
  /**
647
361
  * Defines the total number of columns in a table, grid, or treegrid.
648
362
  *
649
363
  * @see aria-colindex.
650
364
  */
651
- "aria-colcount"?: number | string | undefined;
365
+ "aria-colcount"?: number | string | RemoveAttribute;
652
366
  /**
653
367
  * Defines an element's column index or position with respect to the total number of columns
654
368
  * within a table, grid, or treegrid.
655
369
  *
656
370
  * @see aria-colcount @see aria-colspan.
657
371
  */
658
- "aria-colindex"?: number | string | undefined;
372
+ "aria-colindex"?: number | string | RemoveAttribute;
373
+ /** Defines a human-readable text alternative of the numeric aria-colindex. */
374
+ "aria-colindextext"?: number | string | RemoveAttribute;
659
375
  /**
660
376
  * Defines the number of columns spanned by a cell or gridcell within a table, grid, or
661
377
  * treegrid.
662
378
  *
663
379
  * @see aria-colindex @see aria-rowspan.
664
380
  */
665
- "aria-colspan"?: number | string | undefined;
381
+ "aria-colspan"?: number | string | RemoveAttribute;
666
382
  /**
667
383
  * Identifies the element (or elements) whose contents or presence are controlled by the current
668
384
  * element.
669
385
  *
670
386
  * @see aria-owns.
671
387
  */
672
- "aria-controls"?: string | undefined;
388
+ "aria-controls"?: string | RemoveAttribute;
673
389
  /**
674
390
  * Indicates the element that represents the current item within a container or set of related
675
391
  * elements.
676
392
  */
677
393
  "aria-current"?:
678
- | boolean
679
- | "false"
680
- | "true"
394
+ | EnumeratedPseudoBoolean
681
395
  | "page"
682
396
  | "step"
683
397
  | "location"
684
398
  | "date"
685
399
  | "time"
686
- | undefined;
400
+ | RemoveAttribute;
687
401
  /**
688
402
  * Identifies the element (or elements) that describes the object.
689
403
  *
690
404
  * @see aria-labelledby
691
405
  */
692
- "aria-describedby"?: string | undefined;
406
+ "aria-describedby"?: string | RemoveAttribute;
407
+ /**
408
+ * Defines a string value that describes or annotates the current element.
409
+ *
410
+ * @see aria-describedby
411
+ */
412
+ "aria-description"?: string | RemoveAttribute;
693
413
  /**
694
414
  * Identifies the element that provides a detailed, extended description for the object.
695
415
  *
696
416
  * @see aria-describedby.
697
417
  */
698
- "aria-details"?: string | undefined;
418
+ "aria-details"?: string | RemoveAttribute;
699
419
  /**
700
420
  * Indicates that the element is perceivable but disabled, so it is not editable or otherwise
701
421
  * operable.
702
422
  *
703
423
  * @see aria-hidden @see aria-readonly.
704
424
  */
705
- "aria-disabled"?: boolean | "false" | "true" | undefined;
425
+ "aria-disabled"?: EnumeratedPseudoBoolean | RemoveAttribute;
706
426
  /**
707
427
  * Indicates what functions can be performed when a dragged object is released on the drop
708
428
  * target.
709
429
  *
710
430
  * @deprecated In ARIA 1.1
711
431
  */
712
- "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
432
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | RemoveAttribute;
713
433
  /**
714
434
  * Identifies the element that provides an error message for the object.
715
435
  *
716
436
  * @see aria-invalid @see aria-describedby.
717
437
  */
718
- "aria-errormessage"?: string | undefined;
438
+ "aria-errormessage"?: string | RemoveAttribute;
719
439
  /**
720
440
  * Indicates whether the element, or another grouping element it controls, is currently expanded
721
441
  * or collapsed.
722
442
  */
723
- "aria-expanded"?: boolean | "false" | "true" | undefined;
443
+ "aria-expanded"?: EnumeratedPseudoBoolean | RemoveAttribute;
724
444
  /**
725
445
  * Identifies the next element (or elements) in an alternate reading order of content which, at
726
446
  * the user's discretion, allows assistive technology to override the general default of reading
727
447
  * in document source order.
728
448
  */
729
- "aria-flowto"?: string | undefined;
449
+ "aria-flowto"?: string | RemoveAttribute;
730
450
  /**
731
451
  * Indicates an element's "grabbed" state in a drag-and-drop operation.
732
452
  *
733
453
  * @deprecated In ARIA 1.1
734
454
  */
735
- "aria-grabbed"?: boolean | "false" | "true" | undefined;
455
+ "aria-grabbed"?: EnumeratedPseudoBoolean | RemoveAttribute;
736
456
  /**
737
457
  * Indicates the availability and type of interactive popup element, such as menu or dialog,
738
458
  * that can be triggered by an element.
739
459
  */
740
460
  "aria-haspopup"?:
741
- | boolean
742
- | "false"
743
- | "true"
461
+ | EnumeratedPseudoBoolean
744
462
  | "menu"
745
463
  | "listbox"
746
464
  | "tree"
747
465
  | "grid"
748
466
  | "dialog"
749
- | undefined;
467
+ | RemoveAttribute;
750
468
  /**
751
469
  * Indicates whether the element is exposed to an accessibility API.
752
470
  *
753
471
  * @see aria-disabled.
754
472
  */
755
- "aria-hidden"?: boolean | "false" | "true" | undefined;
473
+ "aria-hidden"?: EnumeratedPseudoBoolean | RemoveAttribute;
756
474
  /**
757
475
  * Indicates the entered value does not conform to the format expected by the application.
758
476
  *
759
477
  * @see aria-errormessage.
760
478
  */
761
- "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
479
+ "aria-invalid"?: EnumeratedPseudoBoolean | "grammar" | "spelling" | RemoveAttribute;
762
480
  /**
763
481
  * Indicates keyboard shortcuts that an author has implemented to activate or give focus to an
764
482
  * element.
765
483
  */
766
- "aria-keyshortcuts"?: string | undefined;
484
+ "aria-keyshortcuts"?: string | RemoveAttribute;
767
485
  /**
768
486
  * Defines a string value that labels the current element.
769
487
  *
770
488
  * @see aria-labelledby.
771
489
  */
772
- "aria-label"?: string | undefined;
490
+ "aria-label"?: string | RemoveAttribute;
773
491
  /**
774
492
  * Identifies the element (or elements) that labels the current element.
775
493
  *
776
494
  * @see aria-describedby.
777
495
  */
778
- "aria-labelledby"?: string | undefined;
496
+ "aria-labelledby"?: string | RemoveAttribute;
779
497
  /** Defines the hierarchical level of an element within a structure. */
780
- "aria-level"?: number | string | undefined;
498
+ "aria-level"?: number | string | RemoveAttribute;
781
499
  /**
782
500
  * Indicates that an element will be updated, and describes the types of updates the user
783
501
  * agents, assistive technologies, and user can expect from the live region.
784
502
  */
785
- "aria-live"?: "off" | "assertive" | "polite" | undefined;
503
+ "aria-live"?: "off" | "assertive" | "polite" | RemoveAttribute;
786
504
  /** Indicates whether an element is modal when displayed. */
787
- "aria-modal"?: boolean | "false" | "true" | undefined;
505
+ "aria-modal"?: EnumeratedPseudoBoolean | RemoveAttribute;
788
506
  /** Indicates whether a text box accepts multiple lines of input or only a single line. */
789
- "aria-multiline"?: boolean | "false" | "true" | undefined;
507
+ "aria-multiline"?: EnumeratedPseudoBoolean | RemoveAttribute;
790
508
  /**
791
509
  * Indicates that the user may select more than one item from the current selectable
792
510
  * descendants.
793
511
  */
794
- "aria-multiselectable"?: boolean | "false" | "true" | undefined;
512
+ "aria-multiselectable"?: EnumeratedPseudoBoolean | RemoveAttribute;
795
513
  /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */
796
- "aria-orientation"?: "horizontal" | "vertical" | undefined;
514
+ "aria-orientation"?: "horizontal" | "vertical" | RemoveAttribute;
797
515
  /**
798
516
  * Identifies an element (or elements) in order to define a visual, functional, or contextual
799
517
  * parent/child relationship between DOM elements where the DOM hierarchy cannot be used to
@@ -801,32 +519,32 @@ export namespace JSX {
801
519
  *
802
520
  * @see aria-controls.
803
521
  */
804
- "aria-owns"?: string | undefined;
522
+ "aria-owns"?: string | RemoveAttribute;
805
523
  /**
806
524
  * Defines a short hint (a word or short phrase) intended to aid the user with data entry when
807
525
  * the control has no value. A hint could be a sample value or a brief description of the
808
526
  * expected format.
809
527
  */
810
- "aria-placeholder"?: string | undefined;
528
+ "aria-placeholder"?: string | RemoveAttribute;
811
529
  /**
812
530
  * Defines an element's number or position in the current set of listitems or treeitems. Not
813
531
  * required if all elements in the set are present in the DOM.
814
532
  *
815
533
  * @see aria-setsize.
816
534
  */
817
- "aria-posinset"?: number | string | undefined;
535
+ "aria-posinset"?: number | string | RemoveAttribute;
818
536
  /**
819
537
  * Indicates the current "pressed" state of toggle buttons.
820
538
  *
821
539
  * @see aria-checked @see aria-selected.
822
540
  */
823
- "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
541
+ "aria-pressed"?: EnumeratedPseudoBoolean | "mixed" | RemoveAttribute;
824
542
  /**
825
543
  * Indicates that the element is not editable, but is otherwise operable.
826
544
  *
827
545
  * @see aria-disabled.
828
546
  */
829
- "aria-readonly"?: boolean | "false" | "true" | undefined;
547
+ "aria-readonly"?: EnumeratedPseudoBoolean | RemoveAttribute;
830
548
  /**
831
549
  * Indicates what notifications the user agent will trigger when the accessibility tree within a
832
550
  * live region is modified.
@@ -844,57 +562,60 @@ export namespace JSX {
844
562
  | "text"
845
563
  | "text additions"
846
564
  | "text removals"
847
- | undefined;
565
+ | RemoveAttribute;
848
566
  /** Indicates that user input is required on the element before a form may be submitted. */
849
- "aria-required"?: boolean | "false" | "true" | undefined;
567
+ "aria-required"?: EnumeratedPseudoBoolean | RemoveAttribute;
850
568
  /** Defines a human-readable, author-localized description for the role of an element. */
851
- "aria-roledescription"?: string | undefined;
569
+ "aria-roledescription"?: string | RemoveAttribute;
852
570
  /**
853
571
  * Defines the total number of rows in a table, grid, or treegrid.
854
572
  *
855
573
  * @see aria-rowindex.
856
574
  */
857
- "aria-rowcount"?: number | string | undefined;
575
+ "aria-rowcount"?: number | string | RemoveAttribute;
858
576
  /**
859
577
  * Defines an element's row index or position with respect to the total number of rows within a
860
578
  * table, grid, or treegrid.
861
579
  *
862
580
  * @see aria-rowcount @see aria-rowspan.
863
581
  */
864
- "aria-rowindex"?: number | string | undefined;
582
+ "aria-rowindex"?: number | string | RemoveAttribute;
583
+ /** Defines a human-readable text alternative of aria-rowindex. */
584
+ "aria-rowindextext"?: number | string | RemoveAttribute;
585
+
865
586
  /**
866
587
  * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
867
588
  *
868
589
  * @see aria-rowindex @see aria-colspan.
869
590
  */
870
- "aria-rowspan"?: number | string | undefined;
591
+ "aria-rowspan"?: number | string | RemoveAttribute;
871
592
  /**
872
593
  * Indicates the current "selected" state of various widgets.
873
594
  *
874
595
  * @see aria-checked @see aria-pressed.
875
596
  */
876
- "aria-selected"?: boolean | "false" | "true" | undefined;
597
+ "aria-selected"?: EnumeratedPseudoBoolean | RemoveAttribute;
877
598
  /**
878
599
  * Defines the number of items in the current set of listitems or treeitems. Not required if all
879
600
  * elements in the set are present in the DOM.
880
601
  *
881
602
  * @see aria-posinset.
882
603
  */
883
- "aria-setsize"?: number | string | undefined;
604
+ "aria-setsize"?: number | string | RemoveAttribute;
884
605
  /** Indicates if items in a table or grid are sorted in ascending or descending order. */
885
- "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
606
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | RemoveAttribute;
886
607
  /** Defines the maximum allowed value for a range widget. */
887
- "aria-valuemax"?: number | string | undefined;
608
+ "aria-valuemax"?: number | string | RemoveAttribute;
888
609
  /** Defines the minimum allowed value for a range widget. */
889
- "aria-valuemin"?: number | string | undefined;
610
+ "aria-valuemin"?: number | string | RemoveAttribute;
890
611
  /**
891
612
  * Defines the current value for a range widget.
892
613
  *
893
614
  * @see aria-valuetext.
894
615
  */
895
- "aria-valuenow"?: number | string | undefined;
616
+ "aria-valuenow"?: number | string | RemoveAttribute;
896
617
  /** Defines the human readable text alternative of aria-valuenow for a range widget. */
897
- "aria-valuetext"?: string | undefined;
618
+ "aria-valuetext"?: string | RemoveAttribute;
898
619
  role?:
899
620
  | "alert"
900
621
  | "alertdialog"
@@ -966,34 +687,427 @@ export namespace JSX {
966
687
  | "tree"
967
688
  | "treegrid"
968
689
  | "treeitem"
690
+ | RemoveAttribute;
691
+ }
692
+
693
+ // EVENTS
694
+
695
+ /**
696
+ * `Window` events, defined for `<body>`, `<svg>`, `<frameset>` tags.
697
+ *
698
+ * Excluding `EventHandlersElement` events already defined as globals that all tags share, such as
699
+ * `onblur`.
700
+ */
701
+ interface EventHandlersWindow<T> {
702
+ onAfterPrint?: EventHandlerUnion<T, Event> | undefined;
703
+ onBeforePrint?: EventHandlerUnion<T, Event> | undefined;
704
+ onBeforeUnload?: EventHandlerUnion<T, BeforeUnloadEvent> | undefined;
705
+ onGamepadConnected?: EventHandlerUnion<T, GamepadEvent> | undefined;
706
+ onGamepadDisconnected?: EventHandlerUnion<T, GamepadEvent> | undefined;
707
+ onHashchange?: EventHandlerUnion<T, HashChangeEvent> | undefined;
708
+ onLanguageChange?: EventHandlerUnion<T, Event> | undefined;
709
+ onMessage?: EventHandlerUnion<T, MessageEvent> | undefined;
710
+ onMessageError?: EventHandlerUnion<T, MessageEvent> | undefined;
711
+ onOffline?: EventHandlerUnion<T, Event> | undefined;
712
+ onOnline?: EventHandlerUnion<T, Event> | undefined;
713
+ onPageHide?: EventHandlerUnion<T, PageTransitionEvent> | undefined;
714
+ // TODO `PageRevealEvent` is currently undefined on TS
715
+ onPageReveal?: EventHandlerUnion<T, Event> | undefined;
716
+ onPageShow?: EventHandlerUnion<T, PageTransitionEvent> | undefined;
717
+ // TODO `PageSwapEvent` is currently undefined on TS
718
+ onPageSwap?: EventHandlerUnion<T, Event> | undefined;
719
+ onPopstate?: EventHandlerUnion<T, PopStateEvent> | undefined;
720
+ onRejectionHandled?: EventHandlerUnion<T, PromiseRejectionEvent> | undefined;
721
+ onStorage?: EventHandlerUnion<T, StorageEvent> | undefined;
722
+ onUnhandledRejection?: EventHandlerUnion<T, PromiseRejectionEvent> | undefined;
723
+ onUnload?: EventHandlerUnion<T, Event> | undefined;
724
+
725
+ "on:afterprint"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
726
+ "on:beforeprint"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
727
+ "on:beforeunload"?: EventHandlerWithOptionsUnion<T, BeforeUnloadEvent> | undefined;
728
+ "on:gamepadconnected"?: EventHandlerWithOptionsUnion<T, GamepadEvent> | undefined;
729
+ "on:gamepaddisconnected"?: EventHandlerWithOptionsUnion<T, GamepadEvent> | undefined;
730
+ "on:hashchange"?: EventHandlerWithOptionsUnion<T, HashChangeEvent> | undefined;
731
+ "on:languagechange"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
732
+ "on:message"?: EventHandlerWithOptionsUnion<T, MessageEvent> | undefined;
733
+ "on:messageerror"?: EventHandlerWithOptionsUnion<T, MessageEvent> | undefined;
734
+ "on:offline"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
735
+ "on:online"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
736
+ "on:pagehide"?: EventHandlerWithOptionsUnion<T, PageTransitionEvent> | undefined;
737
+ // TODO `PageRevealEvent` is currently undefined in TS
738
+ "on:pagereveal"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
739
+ "on:pageshow"?: EventHandlerWithOptionsUnion<T, PageTransitionEvent> | undefined;
740
+ // TODO `PageSwapEvent` is currently undefined in TS
741
+ "on:pageswap"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
742
+ "on:popstate"?: EventHandlerWithOptionsUnion<T, PopStateEvent> | undefined;
743
+ "on:rejectionhandled"?: EventHandlerWithOptionsUnion<T, PromiseRejectionEvent> | undefined;
744
+ "on:storage"?: EventHandlerWithOptionsUnion<T, StorageEvent> | undefined;
745
+ "on:unhandledrejection"?: EventHandlerWithOptionsUnion<T, PromiseRejectionEvent> | undefined;
746
+ "on:unload"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
747
+ }
748
+
749
+ /**
750
+ * Global `EventHandlersElement`, defined for all tags.
751
+ *
752
+ * That's events defined and shared BY ALL of the `HTMLElement/SVGElement/MathMLElement`
753
+ * interfaces.
754
+ *
755
+ * Includes events defined for the `Element` interface.
756
+ */
757
+ interface EventHandlersElement<T> {
758
+ onAbort?: EventHandlerUnion<T, UIEvent> | undefined;
759
+ onAnimationCancel?: EventHandlerUnion<T, AnimationEvent> | undefined;
760
+ onAnimationEnd?: EventHandlerUnion<T, AnimationEvent> | undefined;
761
+ onAnimationIteration?: EventHandlerUnion<T, AnimationEvent> | undefined;
762
+ onAnimationStart?: EventHandlerUnion<T, AnimationEvent> | undefined;
763
+ onAuxClick?: EventHandlerUnion<T, PointerEvent> | undefined;
764
+ onBeforeCopy?: EventHandlerUnion<T, ClipboardEvent> | undefined;
765
+ onBeforeCut?: EventHandlerUnion<T, ClipboardEvent> | undefined;
766
+ onBeforeInput?: InputEventHandlerUnion<T, InputEvent> | undefined;
767
+ onBeforeMatch?: EventHandlerUnion<T, Event> | undefined;
768
+ onBeforePaste?: EventHandlerUnion<T, ClipboardEvent> | undefined;
769
+ onBeforeToggle?: EventHandlerUnion<T, ToggleEvent> | undefined;
770
+ onBeforeXRSelect?: EventHandlerUnion<T, Event> | undefined;
771
+ onBlur?: FocusEventHandlerUnion<T, FocusEvent> | undefined;
772
+ onCancel?: EventHandlerUnion<T, Event> | undefined;
773
+ onCanPlay?: EventHandlerUnion<T, Event> | undefined;
774
+ onCanPlayThrough?: EventHandlerUnion<T, Event> | undefined;
775
+ onChange?: ChangeEventHandlerUnion<T, Event> | undefined;
776
+ onClick?: EventHandlerUnion<T, MouseEvent> | undefined;
777
+ onClose?: EventHandlerUnion<T, Event> | undefined;
778
+ // TODO `CommandEvent` is currently undefined in TS
779
+ onCommand?: EventHandlerUnion<T, Event> | undefined;
780
+ onCompositionEnd?: EventHandlerUnion<T, CompositionEvent> | undefined;
781
+ onCompositionStart?: EventHandlerUnion<T, CompositionEvent> | undefined;
782
+ onCompositionUpdate?: EventHandlerUnion<T, CompositionEvent> | undefined;
783
+ onContentVisibilityAutoStateChange?:
784
+ | EventHandlerUnion<T, ContentVisibilityAutoStateChangeEvent>
785
+ | undefined;
786
+ onContextLost?: EventHandlerUnion<T, Event> | undefined;
787
+ onContextMenu?: EventHandlerUnion<T, PointerEvent> | undefined;
788
+ onContextRestored?: EventHandlerUnion<T, Event> | undefined;
789
+ onCopy?: EventHandlerUnion<T, ClipboardEvent> | undefined;
790
+ onCueChange?: EventHandlerUnion<T, Event> | undefined;
791
+ onCut?: EventHandlerUnion<T, ClipboardEvent> | undefined;
792
+ onDblClick?: EventHandlerUnion<T, MouseEvent> | undefined;
793
+ onDrag?: EventHandlerUnion<T, DragEvent> | undefined;
794
+ onDragEnd?: EventHandlerUnion<T, DragEvent> | undefined;
795
+ onDragEnter?: EventHandlerUnion<T, DragEvent> | undefined;
796
+ onDragExit?: EventHandlerUnion<T, DragEvent> | undefined;
797
+ onDragLeave?: EventHandlerUnion<T, DragEvent> | undefined;
798
+ onDragOver?: EventHandlerUnion<T, DragEvent> | undefined;
799
+ onDragStart?: EventHandlerUnion<T, DragEvent> | undefined;
800
+ onDrop?: EventHandlerUnion<T, DragEvent> | undefined;
801
+ onDurationChange?: EventHandlerUnion<T, Event> | undefined;
802
+ onEmptied?: EventHandlerUnion<T, Event> | undefined;
803
+ onEnded?: EventHandlerUnion<T, Event> | undefined;
804
+ onError?: EventHandlerUnion<T, ErrorEvent> | undefined;
805
+ onFocus?: FocusEventHandlerUnion<T, FocusEvent> | undefined;
806
+ onFocusIn?: FocusEventHandlerUnion<T, FocusEvent> | undefined;
807
+ onFocusOut?: FocusEventHandlerUnion<T, FocusEvent> | undefined;
808
+ onFormData?: EventHandlerUnion<T, FormDataEvent> | undefined;
809
+ onFullscreenChange?: EventHandlerUnion<T, Event> | undefined;
810
+ onFullscreenError?: EventHandlerUnion<T, Event> | undefined;
811
+ onGotPointerCapture?: EventHandlerUnion<T, PointerEvent> | undefined;
812
+ onInput?: InputEventHandlerUnion<T, InputEvent> | undefined;
813
+ onInvalid?: EventHandlerUnion<T, Event> | undefined;
814
+ onKeyDown?: EventHandlerUnion<T, KeyboardEvent> | undefined;
815
+ onKeyPress?: EventHandlerUnion<T, KeyboardEvent> | undefined;
816
+ onKeyUp?: EventHandlerUnion<T, KeyboardEvent> | undefined;
817
+ onLoad?: EventHandlerUnion<T, Event> | undefined;
818
+ onLoadedData?: EventHandlerUnion<T, Event> | undefined;
819
+ onLoadedMetadata?: EventHandlerUnion<T, Event> | undefined;
820
+ onLoadStart?: EventHandlerUnion<T, Event> | undefined;
821
+ onLostPointerCapture?: EventHandlerUnion<T, PointerEvent> | undefined;
822
+ onMouseDown?: EventHandlerUnion<T, MouseEvent> | undefined;
823
+ onMouseEnter?: EventHandlerUnion<T, MouseEvent> | undefined;
824
+ onMouseLeave?: EventHandlerUnion<T, MouseEvent> | undefined;
825
+ onMouseMove?: EventHandlerUnion<T, MouseEvent> | undefined;
826
+ onMouseOut?: EventHandlerUnion<T, MouseEvent> | undefined;
827
+ onMouseOver?: EventHandlerUnion<T, MouseEvent> | undefined;
828
+ onMouseUp?: EventHandlerUnion<T, MouseEvent> | undefined;
829
+ onPaste?: EventHandlerUnion<T, ClipboardEvent> | undefined;
830
+ onPause?: EventHandlerUnion<T, Event> | undefined;
831
+ onPlay?: EventHandlerUnion<T, Event> | undefined;
832
+ onPlaying?: EventHandlerUnion<T, Event> | undefined;
833
+ onPointerCancel?: EventHandlerUnion<T, PointerEvent> | undefined;
834
+ onPointerDown?: EventHandlerUnion<T, PointerEvent> | undefined;
835
+ onPointerEnter?: EventHandlerUnion<T, PointerEvent> | undefined;
836
+ onPointerLeave?: EventHandlerUnion<T, PointerEvent> | undefined;
837
+ onPointerMove?: EventHandlerUnion<T, PointerEvent> | undefined;
838
+ onPointerOut?: EventHandlerUnion<T, PointerEvent> | undefined;
839
+ onPointerOver?: EventHandlerUnion<T, PointerEvent> | undefined;
840
+ onPointerRawUpdate?: EventHandlerUnion<T, PointerEvent> | undefined;
841
+ onPointerUp?: EventHandlerUnion<T, PointerEvent> | undefined;
842
+ onProgress?: EventHandlerUnion<T, ProgressEvent> | undefined;
843
+ onRateChange?: EventHandlerUnion<T, Event> | undefined;
844
+ onReset?: EventHandlerUnion<T, Event> | undefined;
845
+ onResize?: EventHandlerUnion<T, UIEvent> | undefined;
846
+ onScroll?: EventHandlerUnion<T, Event> | undefined;
847
+ onScrollEnd?: EventHandlerUnion<T, Event> | undefined;
848
+ // todo `SnapEvent` is currently undefined in TS
849
+ onScrollSnapChange?: EventHandlerUnion<T, Event> | undefined;
850
+ // todo `SnapEvent` is currently undefined in TS
851
+ onScrollSnapChanging?: EventHandlerUnion<T, Event> | undefined;
852
+ onSecurityPolicyViolation?: EventHandlerUnion<T, SecurityPolicyViolationEvent> | undefined;
853
+ onSeeked?: EventHandlerUnion<T, Event> | undefined;
854
+ onSeeking?: EventHandlerUnion<T, Event> | undefined;
855
+ onSelect?: EventHandlerUnion<T, Event> | undefined;
856
+ onSelectionChange?: EventHandlerUnion<T, Event> | undefined;
857
+ onSelectStart?: EventHandlerUnion<T, Event> | undefined;
858
+ onSlotChange?: EventHandlerUnion<T, Event> | undefined;
859
+ onStalled?: EventHandlerUnion<T, Event> | undefined;
860
+ onSubmit?: EventHandlerUnion<T, SubmitEvent> | undefined;
861
+ onSuspend?: EventHandlerUnion<T, Event> | undefined;
862
+ onTimeUpdate?: EventHandlerUnion<T, Event> | undefined;
863
+ onToggle?: EventHandlerUnion<T, ToggleEvent> | undefined;
864
+ onTouchCancel?: EventHandlerUnion<T, TouchEvent> | undefined;
865
+ onTouchEnd?: EventHandlerUnion<T, TouchEvent> | undefined;
866
+ onTouchMove?: EventHandlerUnion<T, TouchEvent> | undefined;
867
+ onTouchStart?: EventHandlerUnion<T, TouchEvent> | undefined;
868
+ onTransitionCancel?: EventHandlerUnion<T, TransitionEvent> | undefined;
869
+ onTransitionEnd?: EventHandlerUnion<T, TransitionEvent> | undefined;
870
+ onTransitionRun?: EventHandlerUnion<T, TransitionEvent> | undefined;
871
+ onTransitionStart?: EventHandlerUnion<T, TransitionEvent> | undefined;
872
+ onVolumeChange?: EventHandlerUnion<T, Event> | undefined;
873
+ onWaiting?: EventHandlerUnion<T, Event> | undefined;
874
+ onWheel?: EventHandlerUnion<T, WheelEvent> | undefined;
875
+
876
+ "on:abort"?: EventHandlerWithOptionsUnion<T, UIEvent> | undefined;
877
+ "on:animationcancel"?: EventHandlerWithOptionsUnion<T, AnimationEvent> | undefined;
878
+ "on:animationend"?: EventHandlerWithOptionsUnion<T, AnimationEvent> | undefined;
879
+ "on:animationiteration"?: EventHandlerWithOptionsUnion<T, AnimationEvent> | undefined;
880
+ "on:animationstart"?: EventHandlerWithOptionsUnion<T, AnimationEvent> | undefined;
881
+ "on:auxclick"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
882
+ "on:beforecopy"?: EventHandlerWithOptionsUnion<T, ClipboardEvent> | undefined;
883
+ "on:beforecut"?: EventHandlerWithOptionsUnion<T, ClipboardEvent> | undefined;
884
+ "on:beforeinput"?:
885
+ | EventHandlerWithOptionsUnion<T, InputEvent, InputEventHandler<T, InputEvent>>
886
+ | undefined;
887
+ "on:beforematch"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
888
+ "on:beforepaste"?: EventHandlerWithOptionsUnion<T, ClipboardEvent> | undefined;
889
+ "on:beforetoggle"?: EventHandlerWithOptionsUnion<T, ToggleEvent> | undefined;
890
+ "on:beforexrselect"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
891
+ "on:blur"?:
892
+ | EventHandlerWithOptionsUnion<T, FocusEvent, FocusEventHandler<T, FocusEvent>>
893
+ | undefined;
894
+ "on:cancel"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
895
+ "on:canplay"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
896
+ "on:canplaythrough"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
897
+ "on:change"?: EventHandlerWithOptionsUnion<T, Event, ChangeEventHandler<T, Event>> | undefined;
898
+ "on:click"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
899
+ "on:close"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
900
+ // TODO `CommandEvent` is currently undefined in TS
901
+ "on:command"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
902
+ "on:compositionend"?: EventHandlerWithOptionsUnion<T, CompositionEvent> | undefined;
903
+ "on:compositionstart"?: EventHandlerWithOptionsUnion<T, CompositionEvent> | undefined;
904
+ "on:compositionupdate"?: EventHandlerWithOptionsUnion<T, CompositionEvent> | undefined;
905
+ "on:contentvisibilityautostatechange"?:
906
+ | EventHandlerWithOptionsUnion<T, ContentVisibilityAutoStateChangeEvent>
907
+ | undefined;
908
+ "on:contextlost"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
909
+ "on:contextmenu"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
910
+ "on:contextrestored"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
911
+ "on:copy"?: EventHandlerWithOptionsUnion<T, ClipboardEvent> | undefined;
912
+ "on:cuechange"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
913
+ "on:cut"?: EventHandlerWithOptionsUnion<T, ClipboardEvent> | undefined;
914
+ "on:dblclick"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
915
+ "on:drag"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
916
+ "on:dragend"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
917
+ "on:dragenter"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
918
+ "on:dragexit"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
919
+ "on:dragleave"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
920
+ "on:dragover"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
921
+ "on:dragstart"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
922
+ "on:drop"?: EventHandlerWithOptionsUnion<T, DragEvent> | undefined;
923
+ "on:durationchange"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
924
+ "on:emptied"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
925
+ "on:ended"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
926
+ "on:error"?: EventHandlerWithOptionsUnion<T, ErrorEvent> | undefined;
927
+ "on:focus"?:
928
+ | EventHandlerWithOptionsUnion<T, FocusEvent, FocusEventHandler<T, FocusEvent>>
929
+ | undefined;
930
+ "on:focusin"?:
931
+ | EventHandlerWithOptionsUnion<T, FocusEvent, FocusEventHandler<T, FocusEvent>>
932
+ | undefined;
933
+ "on:focusout"?:
934
+ | EventHandlerWithOptionsUnion<T, FocusEvent, FocusEventHandler<T, FocusEvent>>
935
+ | undefined;
936
+ "on:formdata"?: EventHandlerWithOptionsUnion<T, FormDataEvent> | undefined;
937
+ "on:fullscreenchange"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
938
+ "on:fullscreenerror"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
939
+ "on:gotpointercapture"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
940
+ "on:input"?:
941
+ | EventHandlerWithOptionsUnion<T, InputEvent, InputEventHandler<T, InputEvent>>
942
+ | undefined;
943
+ "on:invalid"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
944
+ "on:keydown"?: EventHandlerWithOptionsUnion<T, KeyboardEvent> | undefined;
945
+ "on:keypress"?: EventHandlerWithOptionsUnion<T, KeyboardEvent> | undefined;
946
+ "on:keyup"?: EventHandlerWithOptionsUnion<T, KeyboardEvent> | undefined;
947
+ "on:load"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
948
+ "on:loadeddata"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
949
+ "on:loadedmetadata"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
950
+ "on:loadstart"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
951
+ "on:lostpointercapture"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
952
+ "on:mousedown"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
953
+ "on:mouseenter"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
954
+ "on:mouseleave"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
955
+ "on:mousemove"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
956
+ "on:mouseout"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
957
+ "on:mouseover"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
958
+ "on:mouseup"?: EventHandlerWithOptionsUnion<T, MouseEvent> | undefined;
959
+ "on:paste"?: EventHandlerWithOptionsUnion<T, ClipboardEvent> | undefined;
960
+ "on:pause"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
961
+ "on:play"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
962
+ "on:playing"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
963
+ "on:pointercancel"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
964
+ "on:pointerdown"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
965
+ "on:pointerenter"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
966
+ "on:pointerleave"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
967
+ "on:pointermove"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
968
+ "on:pointerout"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
969
+ "on:pointerover"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
970
+ "on:pointerrawupdate"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
971
+ "on:pointerup"?: EventHandlerWithOptionsUnion<T, PointerEvent> | undefined;
972
+ "on:progress"?: EventHandlerWithOptionsUnion<T, ProgressEvent> | undefined;
973
+ "on:ratechange"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
974
+ "on:reset"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
975
+ "on:resize"?: EventHandlerWithOptionsUnion<T, UIEvent> | undefined;
976
+ "on:scroll"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
977
+ "on:scrollend"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
978
+ // todo `SnapEvent` is currently undefined in TS
979
+ "on:scrollsnapchange"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
980
+ // todo `SnapEvent` is currently undefined in TS
981
+ "on:scrollsnapchanging"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
982
+ "on:securitypolicyviolation"?:
983
+ | EventHandlerWithOptionsUnion<T, SecurityPolicyViolationEvent>
969
984
  | undefined;
985
+ "on:seeked"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
986
+ "on:seeking"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
987
+ "on:select"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
988
+ "on:selectionchange"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
989
+ "on:selectstart"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
990
+ "on:slotchange"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
991
+ "on:stalled"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
992
+ "on:submit"?: EventHandlerWithOptionsUnion<T, SubmitEvent> | undefined;
993
+ "on:suspend"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
994
+ "on:timeupdate"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
995
+ "on:toggle"?: EventHandlerWithOptionsUnion<T, ToggleEvent> | undefined;
996
+ "on:touchcancel"?: EventHandlerWithOptionsUnion<T, TouchEvent> | undefined;
997
+ "on:touchend"?: EventHandlerWithOptionsUnion<T, TouchEvent> | undefined;
998
+ "on:touchmove"?: EventHandlerWithOptionsUnion<T, TouchEvent> | undefined;
999
+ "on:touchstart"?: EventHandlerWithOptionsUnion<T, TouchEvent> | undefined;
1000
+ "on:transitioncancel"?: EventHandlerWithOptionsUnion<T, TransitionEvent> | undefined;
1001
+ "on:transitionend"?: EventHandlerWithOptionsUnion<T, TransitionEvent> | undefined;
1002
+ "on:transitionrun"?: EventHandlerWithOptionsUnion<T, TransitionEvent> | undefined;
1003
+ "on:transitionstart"?: EventHandlerWithOptionsUnion<T, TransitionEvent> | undefined;
1004
+ "on:volumechange"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
1005
+ "on:waiting"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
1006
+ "on:wheel"?: EventHandlerWithOptionsUnion<T, WheelEvent> | undefined;
970
1007
  }
971
1008
 
972
- // TODO: Should we allow this?
973
- // type ClassKeys = `class:${string}`;
974
- // type CSSKeys = Exclude<keyof csstype.PropertiesHyphen, `-${string}`>;
1009
+ type EventType =
1010
+ | (keyof EventHandlersWindow<any> extends infer K
1011
+ ? K extends `on:${infer T}`
1012
+ ? T
1013
+ : K extends `on${infer T}`
1014
+ ? Lowercase<T>
1015
+ : never
1016
+ : never)
1017
+ | (keyof EventHandlersElement<any> extends infer K
1018
+ ? K extends `on:${infer T}`
1019
+ ? T
1020
+ : K extends `on${infer T}`
1021
+ ? Lowercase<T>
1022
+ : never
1023
+ : never)
1024
+ | (string & {});
975
1025
 
976
- // type CSSAttributes = {
977
- // [key in CSSKeys as `style:${key}`]: csstype.PropertiesHyphen[key];
978
- // };
1026
+ // GLOBAL ATTRIBUTES
979
1027
 
980
- interface HTMLAttributes<T> extends AriaAttributes, DOMAttributes<T> {
1028
+ /**
1029
+ * Global `Element` + `Node` interface keys, shared by all tags regardless of their namespace:
1030
+ *
1031
+ * 1. That's `keys` that are defined BY ALL `HTMLElement/SVGElement/MathMLElement` interfaces.
1032
+ * 2. Includes `keys` defined by `Element` and `Node` interfaces.
1033
+ */
1034
+ interface ElementAttributes<T>
1035
+ extends CustomAttributes<T>,
1036
+ DirectiveAttributes,
1037
+ DirectiveFunctionAttributes<T>,
1038
+ PropAttributes,
1039
+ OnAttributes<T>,
1040
+ EventHandlersElement<T>,
1041
+ AriaAttributes {
981
1042
  // [key: ClassKeys]: boolean;
982
- about?: string | undefined;
983
- accesskey?: string | undefined;
984
- autocapitalize?: HTMLAutocapitalize | undefined;
985
- class?: string | ClassList | undefined;
986
- color?: string | undefined;
987
- contenteditable?: "true" | "false" | boolean | "plaintext-only" | "inherit" | undefined;
988
- contextmenu?: string | undefined;
989
- datatype?: string | undefined;
990
- dir?: HTMLDir | undefined;
991
- draggable?: boolean | "false" | "true" | undefined;
992
- exportparts?: string | undefined;
993
- hidden?: boolean | "hidden" | "until-found" | undefined;
994
- id?: string | undefined;
995
- inert?: "true" | boolean | undefined;
996
- inlist?: any | undefined;
1043
+
1044
+ // properties
1045
+ innerHTML?: string;
1046
+ textContent?: string | number;
1047
+
1048
+ // attributes
1049
+ autofocus?: BooleanAttribute | RemoveAttribute;
1050
+ class?: string | ClassList | RemoveAttribute;
1051
+ elementtiming?: string | RemoveAttribute;
1052
+ id?: string | RemoveAttribute;
1053
+ nonce?: string | RemoveAttribute;
1054
+ part?: string | RemoveAttribute;
1055
+ slot?: string | RemoveAttribute;
1056
+ style?: CSSProperties | string | RemoveAttribute;
1057
+ tabindex?: number | string | RemoveAttribute;
1058
+ }
1059
+ /** Global `SVGElement` interface keys only. */
1060
+ interface SVGAttributes<T> extends ElementAttributes<T> {
1061
+ id?: string | RemoveAttribute;
1062
+ lang?: string | RemoveAttribute;
1063
+ tabindex?: number | string | RemoveAttribute;
1064
+ xmlns?: string | RemoveAttribute;
1065
+ }
1066
+ /** Global `MathMLElement` interface keys only. */
1067
+ interface MathMLAttributes<T> extends ElementAttributes<T> {
1068
+ dir?: HTMLDir | RemoveAttribute;
1069
+ displaystyle?: BooleanAttribute | RemoveAttribute;
1070
+ scriptlevel?: string | RemoveAttribute;
1071
+ xmlns?: string | RemoveAttribute;
1072
+
1073
+ /** @deprecated */
1074
+ href?: string | RemoveAttribute;
1075
+ /** @deprecated */
1076
+ mathbackground?: string | RemoveAttribute;
1077
+ /** @deprecated */
1078
+ mathcolor?: string | RemoveAttribute;
1079
+ /** @deprecated */
1080
+ mathsize?: string | RemoveAttribute;
1081
+ }
1082
+ /** Global `HTMLElement` interface keys only. */
1083
+ interface HTMLAttributes<T> extends ElementAttributes<T> {
1084
+ // properties
1085
+ innerText?: string | number;
1086
+
1087
+ // attributes
1088
+ accesskey?: string | RemoveAttribute;
1089
+ autocapitalize?: HTMLAutocapitalize | RemoveAttribute;
1090
+ autocorrect?: "on" | "off" | RemoveAttribute;
1091
+ contenteditable?:
1092
+ | EnumeratedPseudoBoolean
1093
+ | EnumeratedAcceptsEmpty
1094
+ | "plaintext-only"
1095
+ | "inherit"
1096
+ | RemoveAttribute;
1097
+ dir?: HTMLDir | RemoveAttribute;
1098
+ draggable?: EnumeratedPseudoBoolean | RemoveAttribute;
1099
+ enterkeyhint?:
1100
+ | "enter"
1101
+ | "done"
1102
+ | "go"
1103
+ | "next"
1104
+ | "previous"
1105
+ | "search"
1106
+ | "send"
1107
+ | RemoveAttribute;
1108
+ exportparts?: string | RemoveAttribute;
1109
+ hidden?: EnumeratedAcceptsEmpty | "hidden" | "until-found" | RemoveAttribute;
1110
+ inert?: BooleanAttribute | RemoveAttribute;
997
1111
  inputmode?:
998
1112
  | "decimal"
999
1113
  | "email"
@@ -1003,128 +1117,216 @@ export namespace JSX {
1003
1117
  | "tel"
1004
1118
  | "text"
1005
1119
  | "url"
1006
- | undefined;
1007
- is?: string | undefined;
1008
- itemid?: string | undefined;
1009
- itemprop?: string | undefined;
1010
- itemref?: string | undefined;
1011
- itemscope?: "true" | boolean | undefined;
1012
- itemtype?: string | undefined;
1013
- lang?: string | undefined;
1014
- part?: string | undefined;
1015
- popover?: boolean | "manual" | "auto" | undefined;
1016
- prefix?: string | undefined;
1017
- property?: string | undefined;
1018
- resource?: string | undefined;
1019
- slot?: string | undefined;
1020
- spellcheck?: "true" | boolean | undefined;
1021
- style?: CSSProperties | string | undefined;
1022
- tabindex?: number | string | undefined;
1023
- title?: string | undefined;
1024
- translate?: "yes" | "no" | undefined;
1025
- typeof?: string | undefined;
1026
- vocab?: string | undefined;
1120
+ | RemoveAttribute;
1121
+ is?: string | RemoveAttribute;
1122
+ lang?: string | RemoveAttribute;
1123
+ popover?: EnumeratedAcceptsEmpty | "manual" | "auto" | RemoveAttribute;
1124
+ spellcheck?: EnumeratedPseudoBoolean | EnumeratedAcceptsEmpty | RemoveAttribute;
1125
+ title?: string | RemoveAttribute;
1126
+ translate?: "yes" | "no" | RemoveAttribute;
1027
1127
 
1028
- /** @deprecated Use lowercase attributes */
1029
- accessKey?: string | undefined;
1030
- /** @deprecated Use lowercase attributes */
1031
- autoCapitalize?: HTMLAutocapitalize | undefined;
1032
- /** @deprecated Use lowercase attributes */
1033
- contentEditable?: boolean | "plaintext-only" | "inherit" | undefined;
1034
- /** @deprecated Use lowercase attributes */
1035
- contextMenu?: string | undefined;
1036
- /** @deprecated Use lowercase attributes */
1037
- exportParts?: string | undefined;
1038
- /** @deprecated Use lowercase attributes */
1039
- inputMode?:
1040
- | "none"
1041
- | "text"
1042
- | "tel"
1043
- | "url"
1044
- | "email"
1045
- | "numeric"
1046
- | "decimal"
1047
- | "search"
1048
- | undefined;
1049
- /** @deprecated Use lowercase attributes */
1050
- itemId?: string | undefined;
1051
- /** @deprecated Use lowercase attributes */
1052
- itemProp?: string | undefined;
1053
- /** @deprecated Use lowercase attributes */
1054
- itemRef?: string | undefined;
1055
- /** @deprecated Use lowercase attributes */
1056
- itemScope?: boolean | undefined;
1057
- /** @deprecated Use lowercase attributes */
1058
- itemType?: string | undefined;
1059
- /** @deprecated Use lowercase attributes */
1060
- tabIndex?: number | string | undefined;
1128
+ /** @experimental */
1129
+ virtualkeyboardpolicy?: EnumeratedAcceptsEmpty | "auto" | "manual" | RemoveAttribute;
1130
+ /** @experimental */
1131
+ writingsuggestions?: EnumeratedPseudoBoolean | RemoveAttribute;
1132
+
1133
+ // Microdata
1134
+ itemid?: string | RemoveAttribute;
1135
+ itemprop?: string | RemoveAttribute;
1136
+ itemref?: string | RemoveAttribute;
1137
+ itemscope?: BooleanAttribute | RemoveAttribute;
1138
+ itemtype?: string | RemoveAttribute;
1139
+
1140
+ // RDFa Attributes
1141
+ about?: string | RemoveAttribute;
1142
+ datatype?: string | RemoveAttribute;
1143
+ inlist?: any | RemoveAttribute;
1144
+ prefix?: string | RemoveAttribute;
1145
+ property?: string | RemoveAttribute;
1146
+ resource?: string | RemoveAttribute;
1147
+ typeof?: string | RemoveAttribute;
1148
+ vocab?: string | RemoveAttribute;
1149
+
1150
+ /** @deprecated */
1151
+ contextmenu?: string | RemoveAttribute;
1061
1152
  }
1153
+
1154
+ // HTML
1155
+
1156
+ type HTMLAutocapitalize = "off" | "none" | "on" | "sentences" | "words" | "characters";
1157
+ type HTMLAutocomplete =
1158
+ | "additional-name"
1159
+ | "address-level1"
1160
+ | "address-level2"
1161
+ | "address-level3"
1162
+ | "address-level4"
1163
+ | "address-line1"
1164
+ | "address-line2"
1165
+ | "address-line3"
1166
+ | "bday"
1167
+ | "bday-day"
1168
+ | "bday-month"
1169
+ | "bday-year"
1170
+ | "billing"
1171
+ | "cc-additional-name"
1172
+ | "cc-csc"
1173
+ | "cc-exp"
1174
+ | "cc-exp-month"
1175
+ | "cc-exp-year"
1176
+ | "cc-family-name"
1177
+ | "cc-given-name"
1178
+ | "cc-name"
1179
+ | "cc-number"
1180
+ | "cc-type"
1181
+ | "country"
1182
+ | "country-name"
1183
+ | "current-password"
1184
+ | "email"
1185
+ | "family-name"
1186
+ | "fax"
1187
+ | "given-name"
1188
+ | "home"
1189
+ | "honorific-prefix"
1190
+ | "honorific-suffix"
1191
+ | "impp"
1192
+ | "language"
1193
+ | "mobile"
1194
+ | "name"
1195
+ | "new-password"
1196
+ | "nickname"
1197
+ | "off"
1198
+ | "on"
1199
+ | "organization"
1200
+ | "organization-title"
1201
+ | "pager"
1202
+ | "photo"
1203
+ | "postal-code"
1204
+ | "sex"
1205
+ | "shipping"
1206
+ | "street-address"
1207
+ | "tel"
1208
+ | "tel-area-code"
1209
+ | "tel-country-code"
1210
+ | "tel-extension"
1211
+ | "tel-local"
1212
+ | "tel-local-prefix"
1213
+ | "tel-local-suffix"
1214
+ | "tel-national"
1215
+ | "transaction-amount"
1216
+ | "transaction-currency"
1217
+ | "url"
1218
+ | "username"
1219
+ | "work"
1220
+ | (string & {});
1221
+ type HTMLDir = "ltr" | "rtl" | "auto";
1222
+ type HTMLFormEncType = "application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain";
1223
+ type HTMLFormMethod = "post" | "get" | "dialog";
1224
+ type HTMLCrossorigin = "anonymous" | "use-credentials" | EnumeratedAcceptsEmpty;
1225
+ type HTMLReferrerPolicy =
1226
+ | "no-referrer"
1227
+ | "no-referrer-when-downgrade"
1228
+ | "origin"
1229
+ | "origin-when-cross-origin"
1230
+ | "same-origin"
1231
+ | "strict-origin"
1232
+ | "strict-origin-when-cross-origin"
1233
+ | "unsafe-url";
1234
+ type HTMLIframeSandbox =
1235
+ | "allow-downloads-without-user-activation"
1236
+ | "allow-downloads"
1237
+ | "allow-forms"
1238
+ | "allow-modals"
1239
+ | "allow-orientation-lock"
1240
+ | "allow-pointer-lock"
1241
+ | "allow-popups"
1242
+ | "allow-popups-to-escape-sandbox"
1243
+ | "allow-presentation"
1244
+ | "allow-same-origin"
1245
+ | "allow-scripts"
1246
+ | "allow-storage-access-by-user-activation"
1247
+ | "allow-top-navigation"
1248
+ | "allow-top-navigation-by-user-activation"
1249
+ | "allow-top-navigation-to-custom-protocols";
1250
+ type HTMLLinkAs =
1251
+ | "audio"
1252
+ | "document"
1253
+ | "embed"
1254
+ | "fetch"
1255
+ | "font"
1256
+ | "image"
1257
+ | "object"
1258
+ | "script"
1259
+ | "style"
1260
+ | "track"
1261
+ | "video"
1262
+ | "worker";
1263
+
1062
1264
  interface AnchorHTMLAttributes<T> extends HTMLAttributes<T> {
1063
- download?: string | undefined;
1064
- href?: string | undefined;
1065
- hreflang?: string | undefined;
1066
- ping?: string | undefined;
1067
- referrerpolicy?: HTMLReferrerPolicy | undefined;
1068
- rel?: string | undefined;
1069
- target?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | undefined;
1070
- type?: string | undefined;
1265
+ download?: string | RemoveAttribute;
1266
+ href?: string | RemoveAttribute;
1267
+ hreflang?: string | RemoveAttribute;
1268
+ ping?: string | RemoveAttribute;
1269
+ referrerpolicy?: HTMLReferrerPolicy | RemoveAttribute;
1270
+ rel?: string | RemoveAttribute;
1271
+ target?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | RemoveAttribute;
1272
+ type?: string | RemoveAttribute;
1071
1273
 
1072
1274
  /** @experimental */
1073
- attributionsrc?: string | undefined;
1074
-
1075
- /** @deprecated Use lowercase attributes */
1076
- referrerPolicy?: HTMLReferrerPolicy | undefined;
1275
+ attributionsrc?: string | RemoveAttribute;
1077
1276
 
1078
1277
  /** @deprecated */
1079
- charset?: string | undefined;
1278
+ charset?: string | RemoveAttribute;
1080
1279
  /** @deprecated */
1081
- coords?: string | undefined;
1280
+ coords?: string | RemoveAttribute;
1082
1281
  /** @deprecated */
1083
- name?: string | undefined;
1282
+ name?: string | RemoveAttribute;
1084
1283
  /** @deprecated */
1085
- rev?: string | undefined;
1284
+ rev?: string | RemoveAttribute;
1086
1285
  /** @deprecated */
1087
- shape?: "rect" | "circle" | "poly" | "default" | undefined;
1286
+ shape?: "rect" | "circle" | "poly" | "default" | RemoveAttribute;
1088
1287
  }
1089
1288
  interface AudioHTMLAttributes<T> extends MediaHTMLAttributes<T> {}
1090
1289
  interface AreaHTMLAttributes<T> extends HTMLAttributes<T> {
1091
- alt?: string | undefined;
1092
- coords?: string | undefined;
1093
- download?: string | undefined;
1094
- href?: string | undefined;
1095
- ping?: string | undefined;
1096
- referrerpolicy?: HTMLReferrerPolicy | undefined;
1097
- rel?: string | undefined;
1098
- shape?: "rect" | "circle" | "poly" | "default" | undefined;
1099
- target?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | undefined;
1290
+ alt?: string | RemoveAttribute;
1291
+ coords?: string | RemoveAttribute;
1292
+ download?: string | RemoveAttribute;
1293
+ href?: string | RemoveAttribute;
1294
+ ping?: string | RemoveAttribute;
1295
+ referrerpolicy?: HTMLReferrerPolicy | RemoveAttribute;
1296
+ rel?: string | RemoveAttribute;
1297
+ shape?: "rect" | "circle" | "poly" | "default" | RemoveAttribute;
1298
+ target?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | RemoveAttribute;
1100
1299
 
1101
- /** @deprecated Use lowercase attributes */
1102
- referrerPolicy?: HTMLReferrerPolicy | undefined;
1300
+ /** @experimental */
1301
+ attributionsrc?: string | RemoveAttribute;
1103
1302
 
1104
1303
  /** @deprecated */
1105
- nohref?: "true" | boolean | undefined;
1304
+ nohref?: BooleanAttribute | RemoveAttribute;
1106
1305
  }
1107
1306
  interface BaseHTMLAttributes<T> extends HTMLAttributes<T> {
1108
- href?: string | undefined;
1109
- target?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | undefined;
1307
+ href?: string | RemoveAttribute;
1308
+ target?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | RemoveAttribute;
1309
+ }
1310
+ interface BdoHTMLAttributes<T> extends HTMLAttributes<T> {
1311
+ dir?: "ltr" | "rtl" | RemoveAttribute;
1110
1312
  }
1111
1313
  interface BlockquoteHTMLAttributes<T> extends HTMLAttributes<T> {
1112
- cite?: string | undefined;
1314
+ cite?: string | RemoveAttribute;
1113
1315
  }
1316
+ interface BodyHTMLAttributes<T> extends HTMLAttributes<T>, EventHandlersWindow<T> {}
1114
1317
  interface ButtonHTMLAttributes<T> extends HTMLAttributes<T> {
1115
- autofocus?: "true" | boolean | undefined;
1116
- disabled?: "true" | boolean | undefined;
1117
- form?: string | undefined;
1118
- formaction?: string | SerializableAttributeValue | undefined;
1119
- formenctype?: HTMLFormEncType | undefined;
1120
- formmethod?: HTMLFormMethod | undefined;
1121
- formnovalidate?: "true" | boolean | undefined;
1122
- formtarget?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | undefined;
1123
- popovertarget?: string | undefined;
1124
- popovertargetaction?: "hide" | "show" | "toggle" | undefined;
1125
- name?: string | undefined;
1126
- type?: "submit" | "reset" | "button" | "menu" | undefined;
1127
- value?: string | undefined;
1318
+ disabled?: BooleanAttribute | RemoveAttribute;
1319
+ form?: string | RemoveAttribute;
1320
+ formaction?: string | SerializableAttributeValue | RemoveAttribute;
1321
+ formenctype?: HTMLFormEncType | RemoveAttribute;
1322
+ formmethod?: HTMLFormMethod | RemoveAttribute;
1323
+ formnovalidate?: BooleanAttribute | RemoveAttribute;
1324
+ formtarget?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | RemoveAttribute;
1325
+ name?: string | RemoveAttribute;
1326
+ popovertarget?: string | RemoveAttribute;
1327
+ popovertargetaction?: "hide" | "show" | "toggle" | RemoveAttribute;
1328
+ type?: "submit" | "reset" | "button" | "menu" | RemoveAttribute;
1329
+ value?: string | RemoveAttribute;
1128
1330
 
1129
1331
  /** @experimental */
1130
1332
  command?:
@@ -1134,323 +1336,231 @@ export namespace JSX {
1134
1336
  | "hide-popover"
1135
1337
  | "toggle-popover"
1136
1338
  | (string & {})
1137
- | undefined;
1339
+ | RemoveAttribute;
1138
1340
  /** @experimental */
1139
- commandfor?: string | undefined;
1140
-
1141
- /** @deprecated Use lowercase attributes */
1142
- formAction?: string | SerializableAttributeValue | undefined;
1143
- /** @deprecated Use lowercase attributes */
1144
- formEnctype?: HTMLFormEncType | undefined;
1145
- /** @deprecated Use lowercase attributes */
1146
- formMethod?: HTMLFormMethod | undefined;
1147
- /** @deprecated Use lowercase attributes */
1148
- formNoValidate?: boolean | undefined;
1149
- /** @deprecated Use lowercase attributes */
1150
- formTarget?: string | undefined;
1151
- /** @deprecated Use lowercase attributes */
1152
- popoverTarget?: string | undefined;
1153
- /** @deprecated Use lowercase attributes */
1154
- popoverTargetAction?: "hide" | "show" | "toggle" | undefined;
1341
+ commandfor?: string | RemoveAttribute;
1155
1342
  }
1156
1343
  interface CanvasHTMLAttributes<T> extends HTMLAttributes<T> {
1157
- width?: number | string | undefined;
1158
- height?: number | string | undefined;
1344
+ height?: number | string | RemoveAttribute;
1345
+ width?: number | string | RemoveAttribute;
1159
1346
 
1160
1347
  /**
1161
1348
  * @deprecated
1162
1349
  * @non-standard
1163
1350
  */
1164
- "moz-opaque"?: "true" | boolean | undefined;
1351
+ "moz-opaque"?: BooleanAttribute | RemoveAttribute;
1352
+ }
1353
+ interface CaptionHTMLAttributes<T> extends HTMLAttributes<T> {
1354
+ /** @deprecated */
1355
+ align?: "left" | "center" | "right" | RemoveAttribute;
1165
1356
  }
1166
1357
  interface ColHTMLAttributes<T> extends HTMLAttributes<T> {
1167
- span?: number | string | undefined;
1358
+ span?: number | string | RemoveAttribute;
1168
1359
 
1169
1360
  /** @deprecated */
1170
- align?: "left" | "center" | "right" | "justify" | "char" | undefined;
1361
+ align?: "left" | "center" | "right" | "justify" | "char" | RemoveAttribute;
1171
1362
  /** @deprecated */
1172
- bgcolor?: string | undefined;
1363
+ bgcolor?: string | RemoveAttribute;
1173
1364
  /** @deprecated */
1174
- char?: string | undefined;
1365
+ char?: string | RemoveAttribute;
1175
1366
  /** @deprecated */
1176
- charoff?: string | undefined;
1367
+ charoff?: string | RemoveAttribute;
1177
1368
  /** @deprecated */
1178
- valign?: "baseline" | "bottom" | "middle" | "top" | undefined;
1369
+ valign?: "baseline" | "bottom" | "middle" | "top" | RemoveAttribute;
1179
1370
  /** @deprecated */
1180
- width?: number | string | undefined;
1371
+ width?: number | string | RemoveAttribute;
1181
1372
  }
1182
1373
  interface ColgroupHTMLAttributes<T> extends HTMLAttributes<T> {
1183
- span?: number | string | undefined;
1374
+ span?: number | string | RemoveAttribute;
1184
1375
 
1185
1376
  /** @deprecated */
1186
- align?: "left" | "center" | "right" | "justify" | "char" | undefined;
1377
+ align?: "left" | "center" | "right" | "justify" | "char" | RemoveAttribute;
1187
1378
  /** @deprecated */
1188
- bgcolor?: string | undefined;
1379
+ bgcolor?: string | RemoveAttribute;
1189
1380
  /** @deprecated */
1190
- char?: string | undefined;
1381
+ char?: string | RemoveAttribute;
1191
1382
  /** @deprecated */
1192
- charoff?: string | undefined;
1383
+ charoff?: string | RemoveAttribute;
1193
1384
  /** @deprecated */
1194
- valign?: "baseline" | "bottom" | "middle" | "top" | undefined;
1385
+ valign?: "baseline" | "bottom" | "middle" | "top" | RemoveAttribute;
1195
1386
  /** @deprecated */
1196
- width?: number | string | undefined;
1387
+ width?: number | string | RemoveAttribute;
1197
1388
  }
1198
1389
  interface DataHTMLAttributes<T> extends HTMLAttributes<T> {
1199
- value?: string | string[] | number | undefined;
1390
+ value?: string | string[] | number | RemoveAttribute;
1200
1391
  }
1201
1392
  interface DetailsHtmlAttributes<T> extends HTMLAttributes<T> {
1202
- open?: boolean | undefined;
1203
- onToggle?: EventHandlerUnion<T, Event> | undefined;
1204
-
1205
- /** @deprecated Use camelCase event handlers */
1206
- ontoggle?: EventHandlerUnion<T, Event> | undefined;
1393
+ name?: string | RemoveAttribute;
1394
+ open?: BooleanAttribute | RemoveAttribute;
1207
1395
  }
1208
1396
  interface DialogHtmlAttributes<T> extends HTMLAttributes<T> {
1209
- open?: "true" | boolean | undefined;
1210
- tabindex?: never | undefined;
1397
+ open?: BooleanAttribute | RemoveAttribute;
1398
+ /**
1399
+ * Do not add the `tabindex` property to the `<dialog>` element as it is not interactive and
1400
+ * does not receive focus. The dialog's contents, including the close button contained in the
1401
+ * dialog, can receive focus and be interactive.
1402
+ *
1403
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/dialog#usage_notes
1404
+ */
1405
+ tabindex?: never;
1211
1406
 
1212
- onclose?: EventHandlerUnion<T, Event> | undefined;
1213
- onClose?: EventHandlerUnion<T, Event> | undefined;
1214
- oncancel?: EventHandlerUnion<T, Event> | undefined;
1215
- onCancel?: EventHandlerUnion<T, Event> | undefined;
1407
+ /** @experimental */
1408
+ closedby?: "any" | "closerequest" | "none" | RemoveAttribute;
1216
1409
  }
1217
1410
  interface EmbedHTMLAttributes<T> extends HTMLAttributes<T> {
1218
- height?: number | string | undefined;
1219
- src?: string | undefined;
1220
- type?: string | undefined;
1221
- width?: number | string | undefined;
1411
+ height?: number | string | RemoveAttribute;
1412
+ src?: string | RemoveAttribute;
1413
+ type?: string | RemoveAttribute;
1414
+ width?: number | string | RemoveAttribute;
1222
1415
 
1223
1416
  /** @deprecated */
1224
- align?: "left" | "right" | "justify" | "center" | undefined;
1417
+ align?: "left" | "right" | "justify" | "center" | RemoveAttribute;
1225
1418
  /** @deprecated */
1226
- name?: string | undefined;
1419
+ name?: string | RemoveAttribute;
1227
1420
  }
1228
1421
  interface FieldsetHTMLAttributes<T> extends HTMLAttributes<T> {
1229
- disabled?: "true" | boolean | undefined;
1230
- form?: string | undefined;
1231
- name?: string | undefined;
1422
+ disabled?: BooleanAttribute | RemoveAttribute;
1423
+ form?: string | RemoveAttribute;
1424
+ name?: string | RemoveAttribute;
1232
1425
  }
1233
1426
  interface FormHTMLAttributes<T> extends HTMLAttributes<T> {
1234
- "accept-charset"?: string | undefined;
1235
- action?: string | SerializableAttributeValue | undefined;
1236
- autocomplete?: "on" | "off" | undefined;
1237
- encoding?: HTMLFormEncType | undefined;
1238
- enctype?: HTMLFormEncType | undefined;
1239
- method?: HTMLFormMethod | undefined;
1240
- name?: string | undefined;
1241
- novalidate?: "true" | boolean | undefined;
1242
- rel?: string | undefined;
1243
- target?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | undefined;
1244
-
1245
- /** @deprecated Use lowercase attributes */
1246
- noValidate?: boolean | undefined;
1427
+ "accept-charset"?: string | RemoveAttribute;
1428
+ action?: string | SerializableAttributeValue | RemoveAttribute;
1429
+ autocomplete?: "on" | "off" | RemoveAttribute;
1430
+ encoding?: HTMLFormEncType | RemoveAttribute;
1431
+ enctype?: HTMLFormEncType | RemoveAttribute;
1432
+ method?: HTMLFormMethod | RemoveAttribute;
1433
+ name?: string | RemoveAttribute;
1434
+ novalidate?: BooleanAttribute | RemoveAttribute;
1435
+ rel?: string | RemoveAttribute;
1436
+ target?: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | RemoveAttribute;
1247
1437
 
1248
1438
  /** @deprecated */
1249
- accept?: string | undefined;
1439
+ accept?: string | RemoveAttribute;
1250
1440
  }
1251
1441
  interface IframeHTMLAttributes<T> extends HTMLAttributes<T> {
1252
- allow?: string | undefined;
1253
- allowfullscreen?: "true" | boolean | undefined;
1254
- height?: number | string | undefined;
1255
- loading?: "eager" | "lazy" | undefined;
1256
- name?: string | undefined;
1257
- referrerpolicy?: HTMLReferrerPolicy | undefined;
1258
- sandbox?: HTMLIframeSandbox | string | undefined;
1259
- src?: string | undefined;
1260
- srcdoc?: string | undefined;
1261
- width?: number | string | undefined;
1262
-
1263
- /** @deprecated Use lowercase attributes */
1264
- referrerPolicy?: HTMLReferrerPolicy | undefined;
1442
+ allow?: string | RemoveAttribute;
1443
+ allowfullscreen?: BooleanAttribute | RemoveAttribute;
1444
+ height?: number | string | RemoveAttribute;
1445
+ loading?: "eager" | "lazy" | RemoveAttribute;
1446
+ name?: string | RemoveAttribute;
1447
+ referrerpolicy?: HTMLReferrerPolicy | RemoveAttribute;
1448
+ sandbox?: HTMLIframeSandbox | string | RemoveAttribute;
1449
+ src?: string | RemoveAttribute;
1450
+ srcdoc?: string | RemoveAttribute;
1451
+ width?: number | string | RemoveAttribute;
1265
1452
 
1266
1453
  /** @experimental */
1267
- adauctionheaders?: "true" | boolean | undefined;
1454
+ adauctionheaders?: BooleanAttribute | RemoveAttribute;
1268
1455
  /**
1269
1456
  * @non-standard
1270
1457
  * @experimental
1271
1458
  */
1272
- browsingtopics?: "true" | boolean | undefined;
1459
+ browsingtopics?: BooleanAttribute | RemoveAttribute;
1273
1460
  /** @experimental */
1274
- credentialless?: "true" | boolean | undefined;
1461
+ credentialless?: BooleanAttribute | RemoveAttribute;
1275
1462
  /** @experimental */
1276
- csp?: string | undefined;
1463
+ csp?: string | RemoveAttribute;
1277
1464
  /** @experimental */
1278
- privatetoken?: string | undefined;
1465
+ privatetoken?: string | RemoveAttribute;
1279
1466
  /** @experimental */
1280
- sharedstoragewritable?: "true" | boolean | undefined;
1467
+ sharedstoragewritable?: BooleanAttribute | RemoveAttribute;
1281
1468
 
1282
1469
  /** @deprecated */
1283
- align?: string | undefined;
1470
+ align?: string | RemoveAttribute;
1284
1471
  /**
1285
1472
  * @deprecated
1286
1473
  * @non-standard
1287
1474
  */
1288
- allowpaymentrequest?: "true" | boolean | undefined;
1475
+ allowpaymentrequest?: BooleanAttribute | RemoveAttribute;
1289
1476
  /** @deprecated */
1290
- allowtransparency?: "true" | boolean | undefined;
1477
+ allowtransparency?: BooleanAttribute | RemoveAttribute;
1291
1478
  /** @deprecated */
1292
- frameborder?: number | string | undefined;
1479
+ frameborder?: number | string | RemoveAttribute;
1293
1480
  /** @deprecated */
1294
- longdesc?: string | undefined;
1481
+ longdesc?: string | RemoveAttribute;
1295
1482
  /** @deprecated */
1296
- marginheight?: number | string | undefined;
1483
+ marginheight?: number | string | RemoveAttribute;
1297
1484
  /** @deprecated */
1298
- marginwidth?: number | string | undefined;
1485
+ marginwidth?: number | string | RemoveAttribute;
1299
1486
  /** @deprecated */
1300
- scrolling?: "yes" | "no" | "auto" | undefined;
1487
+ scrolling?: "yes" | "no" | "auto" | RemoveAttribute;
1301
1488
  /** @deprecated */
1302
- seamless?: "true" | boolean | undefined;
1489
+ seamless?: BooleanAttribute | RemoveAttribute;
1303
1490
  }
1304
1491
  interface ImgHTMLAttributes<T> extends HTMLAttributes<T> {
1305
- alt?: string | undefined;
1306
- crossorigin?: HTMLCrossorigin | undefined;
1307
- decoding?: "sync" | "async" | "auto" | undefined;
1308
- height?: number | string | undefined;
1309
- ismap?: "true" | boolean | undefined;
1310
- loading?: "eager" | "lazy" | undefined;
1311
- referrerpolicy?: HTMLReferrerPolicy | undefined;
1312
- sizes?: string | undefined;
1313
- src?: string | undefined;
1314
- srcset?: string | undefined;
1315
- usemap?: string | undefined;
1316
- width?: number | string | undefined;
1317
- elementtiming?: string | undefined;
1318
- fetchpriority?: "high" | "low" | "auto" | undefined;
1492
+ alt?: string | RemoveAttribute;
1493
+ browsingtopics?: string | RemoveAttribute;
1494
+ crossorigin?: HTMLCrossorigin | RemoveAttribute;
1495
+ decoding?: "sync" | "async" | "auto" | RemoveAttribute;
1496
+ fetchpriority?: "high" | "low" | "auto" | RemoveAttribute;
1497
+ height?: number | string | RemoveAttribute;
1498
+ ismap?: BooleanAttribute | RemoveAttribute;
1499
+ loading?: "eager" | "lazy" | RemoveAttribute;
1500
+ referrerpolicy?: HTMLReferrerPolicy | RemoveAttribute;
1501
+ sizes?: string | RemoveAttribute;
1502
+ src?: string | RemoveAttribute;
1503
+ srcset?: string | RemoveAttribute;
1504
+ usemap?: string | RemoveAttribute;
1505
+ width?: number | string | RemoveAttribute;
1319
1506
 
1320
1507
  /** @experimental */
1321
- attributionsrc?: string | undefined;
1508
+ attributionsrc?: string | RemoveAttribute;
1322
1509
  /** @experimental */
1323
- sharedstoragewritable?: "true" | boolean | undefined;
1324
-
1325
- /** @deprecated Use lowercase attributes */
1326
- crossOrigin?: HTMLCrossorigin | undefined;
1327
- /** @deprecated Use lowercase attributes */
1328
- isMap?: boolean | undefined;
1329
- /** @deprecated Use lowercase attributes */
1330
- referrerPolicy?: HTMLReferrerPolicy | undefined;
1331
- /** @deprecated Use lowercase attributes */
1332
- srcSet?: string | undefined;
1333
- /** @deprecated Use lowercase attributes */
1334
- useMap?: string | undefined;
1510
+ sharedstoragewritable?: BooleanAttribute | RemoveAttribute;
1335
1511
 
1336
1512
  /** @deprecated */
1337
- align?: "top" | "middle" | "bottom" | "left" | "right" | undefined;
1513
+ align?: "top" | "middle" | "bottom" | "left" | "right" | RemoveAttribute;
1338
1514
  /** @deprecated */
1339
- border?: string | undefined;
1515
+ border?: string | RemoveAttribute;
1340
1516
  /** @deprecated */
1341
- hspace?: number | string | undefined;
1517
+ hspace?: number | string | RemoveAttribute;
1342
1518
  /** @deprecated */
1343
- intrinsicsize?: string | undefined;
1519
+ intrinsicsize?: string | RemoveAttribute;
1344
1520
  /** @deprecated */
1345
- longdesc?: string | undefined;
1521
+ longdesc?: string | RemoveAttribute;
1346
1522
  /** @deprecated */
1347
- lowsrc?: string | undefined;
1523
+ lowsrc?: string | RemoveAttribute;
1348
1524
  /** @deprecated */
1349
- name?: string | undefined;
1525
+ name?: string | RemoveAttribute;
1350
1526
  /** @deprecated */
1351
- vspace?: number | string | undefined;
1527
+ vspace?: number | string | RemoveAttribute;
1352
1528
  }
1353
1529
  interface InputHTMLAttributes<T> extends HTMLAttributes<T> {
1354
- accept?: string | undefined;
1355
- alt?: string | undefined;
1356
- autocomplete?:
1357
- | "additional-name"
1358
- | "address-level1"
1359
- | "address-level2"
1360
- | "address-level3"
1361
- | "address-level4"
1362
- | "address-line1"
1363
- | "address-line2"
1364
- | "address-line3"
1365
- | "bday"
1366
- | "bday-day"
1367
- | "bday-month"
1368
- | "bday-year"
1369
- | "billing"
1370
- | "cc-additional-name"
1371
- | "cc-csc"
1372
- | "cc-exp"
1373
- | "cc-exp-month"
1374
- | "cc-exp-year"
1375
- | "cc-family-name"
1376
- | "cc-given-name"
1377
- | "cc-name"
1378
- | "cc-number"
1379
- | "cc-type"
1380
- | "country"
1381
- | "country-name"
1382
- | "current-password"
1383
- | "email"
1384
- | "family-name"
1385
- | "fax"
1386
- | "given-name"
1387
- | "home"
1388
- | "honorific-prefix"
1389
- | "honorific-suffix"
1390
- | "impp"
1391
- | "language"
1392
- | "mobile"
1393
- | "name"
1394
- | "new-password"
1395
- | "nickname"
1396
- | "off"
1397
- | "on"
1398
- | "organization"
1399
- | "organization-title"
1400
- | "pager"
1401
- | "photo"
1402
- | "postal-code"
1403
- | "sex"
1404
- | "shipping"
1405
- | "street-address"
1406
- | "tel"
1407
- | "tel-area-code"
1408
- | "tel-country-code"
1409
- | "tel-extension"
1410
- | "tel-local"
1411
- | "tel-local-prefix"
1412
- | "tel-local-suffix"
1413
- | "tel-national"
1414
- | "transaction-amount"
1415
- | "transaction-currency"
1416
- | "url"
1417
- | "username"
1418
- | "work"
1419
- | (string & {})
1420
- | undefined;
1421
- autocorrect?: "on" | "off" | undefined;
1422
- autofocus?: "true" | boolean | undefined;
1423
- capture?: "user" | "environment" | undefined;
1424
- checked?: "true" | boolean | undefined;
1425
- crossorigin?: HTMLCrossorigin | undefined;
1426
- dirname?: string | undefined;
1427
- disabled?: "true" | boolean | undefined;
1428
- enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
1429
- form?: string | undefined;
1430
- formaction?: string | SerializableAttributeValue | undefined;
1431
- formenctype?: HTMLFormEncType | undefined;
1432
- formmethod?: HTMLFormMethod | undefined;
1433
- formnovalidate?: "true" | boolean | undefined;
1434
- formtarget?: string | undefined;
1435
- height?: number | string | undefined;
1436
- list?: string | undefined;
1437
- max?: number | string | undefined;
1438
- maxlength?: number | string | undefined;
1439
- min?: number | string | undefined;
1440
- minlength?: number | string | undefined;
1441
- multiple?: "true" | boolean | undefined;
1442
- name?: string | undefined;
1443
- pattern?: string | undefined;
1444
- placeholder?: string | undefined;
1445
- popovertarget?: string | undefined;
1446
- popovertargetaction?: "hide" | "show" | "toggle" | undefined;
1447
- readonly?: "true" | boolean | undefined;
1448
- required?: "true" | boolean | undefined;
1530
+ accept?: string | RemoveAttribute;
1531
+ alpha?: BooleanAttribute | RemoveAttribute;
1532
+ alt?: string | RemoveAttribute;
1533
+ autocomplete?: HTMLAutocomplete | RemoveAttribute;
1534
+ capture?: "user" | "environment" | RemoveAttribute;
1535
+ checked?: BooleanAttribute | RemoveAttribute;
1536
+ colorspace?: string | RemoveAttribute;
1537
+ dirname?: string | RemoveAttribute;
1538
+ disabled?: BooleanAttribute | RemoveAttribute;
1539
+ form?: string | RemoveAttribute;
1540
+ formaction?: string | SerializableAttributeValue | RemoveAttribute;
1541
+ formenctype?: HTMLFormEncType | RemoveAttribute;
1542
+ formmethod?: HTMLFormMethod | RemoveAttribute;
1543
+ formnovalidate?: BooleanAttribute | RemoveAttribute;
1544
+ formtarget?: string | RemoveAttribute;
1545
+ height?: number | string | RemoveAttribute;
1546
+ list?: string | RemoveAttribute;
1547
+ max?: number | string | RemoveAttribute;
1548
+ maxlength?: number | string | RemoveAttribute;
1549
+ min?: number | string | RemoveAttribute;
1550
+ minlength?: number | string | RemoveAttribute;
1551
+ multiple?: BooleanAttribute | RemoveAttribute;
1552
+ name?: string | RemoveAttribute;
1553
+ pattern?: string | RemoveAttribute;
1554
+ placeholder?: string | RemoveAttribute;
1555
+ popovertarget?: string | RemoveAttribute;
1556
+ popovertargetaction?: "hide" | "show" | "toggle" | RemoveAttribute;
1557
+ readonly?: BooleanAttribute | RemoveAttribute;
1558
+ required?: BooleanAttribute | RemoveAttribute;
1449
1559
  // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search#results
1450
- results?: number | undefined;
1451
- size?: number | string | undefined;
1452
- src?: string | undefined;
1453
- step?: number | string | undefined;
1560
+ results?: number | RemoveAttribute;
1561
+ size?: number | string | RemoveAttribute;
1562
+ src?: string | RemoveAttribute;
1563
+ step?: number | string | RemoveAttribute;
1454
1564
  type?:
1455
1565
  | "button"
1456
1566
  | "checkbox"
@@ -1475,535 +1585,412 @@ export namespace JSX {
1475
1585
  | "url"
1476
1586
  | "week"
1477
1587
  | (string & {})
1478
- | undefined;
1479
- value?: string | string[] | number | undefined;
1480
- width?: number | string | undefined;
1588
+ | RemoveAttribute;
1589
+ value?: string | string[] | number | RemoveAttribute;
1590
+ width?: number | string | RemoveAttribute;
1481
1591
 
1482
1592
  /** @non-standard */
1483
- incremental?: "true" | boolean | undefined;
1484
-
1485
- /** @deprecated Use lowercase attributes */
1486
- crossOrigin?: HTMLCrossorigin | undefined;
1487
- /** @deprecated Use lowercase attributes */
1488
- formAction?: string | SerializableAttributeValue | undefined;
1489
- /** @deprecated Use lowercase attributes */
1490
- formEnctype?: HTMLFormEncType | undefined;
1491
- /** @deprecated Use lowercase attributes */
1492
- formMethod?: HTMLFormMethod | undefined;
1493
- /** @deprecated Use lowercase attributes */
1494
- formNoValidate?: boolean | undefined;
1495
- /** @deprecated Use lowercase attributes */
1496
- formTarget?: string | undefined;
1497
- /** @deprecated Use lowercase attributes */
1498
- maxLength?: number | string | undefined;
1499
- /** @deprecated Use lowercase attributes */
1500
- minLength?: number | string | undefined;
1501
- /** @deprecated Use lowercase attributes */
1502
- readOnly?: boolean | undefined;
1593
+ incremental?: BooleanAttribute | RemoveAttribute;
1503
1594
 
1504
1595
  /** @deprecated */
1505
- align?: string | undefined;
1596
+ align?: string | RemoveAttribute;
1506
1597
  /** @deprecated */
1507
- usemap?: string | undefined;
1598
+ usemap?: string | RemoveAttribute;
1508
1599
  }
1509
1600
  interface ModHTMLAttributes<T> extends HTMLAttributes<T> {
1510
- cite?: string | undefined;
1511
- datetime?: string | undefined;
1512
-
1513
- /** @deprecated Use lowercase attributes */
1514
- dateTime?: string | undefined;
1601
+ cite?: string | RemoveAttribute;
1602
+ datetime?: string | RemoveAttribute;
1515
1603
  }
1516
1604
  interface KeygenHTMLAttributes<T> extends HTMLAttributes<T> {
1517
1605
  /** @deprecated */
1518
- autofocus?: "true" | boolean | undefined;
1606
+ challenge?: string | RemoveAttribute;
1519
1607
  /** @deprecated */
1520
- challenge?: string | undefined;
1608
+ disabled?: BooleanAttribute | RemoveAttribute;
1521
1609
  /** @deprecated */
1522
- disabled?: "true" | boolean | undefined;
1610
+ form?: string | RemoveAttribute;
1523
1611
  /** @deprecated */
1524
- form?: string | undefined;
1612
+ keyparams?: string | RemoveAttribute;
1525
1613
  /** @deprecated */
1526
- keyparams?: string | undefined;
1614
+ keytype?: string | RemoveAttribute;
1527
1615
  /** @deprecated */
1528
- keytype?: string | undefined;
1529
- /** @deprecated */
1530
- name?: string | undefined;
1616
+ name?: string | RemoveAttribute;
1531
1617
  }
1532
1618
  interface LabelHTMLAttributes<T> extends HTMLAttributes<T> {
1533
- for?: string | undefined;
1534
- form?: string | undefined;
1619
+ for?: string | RemoveAttribute;
1535
1620
  }
1536
1621
  interface LiHTMLAttributes<T> extends HTMLAttributes<T> {
1537
- value?: number | string | undefined;
1622
+ value?: number | string | RemoveAttribute;
1538
1623
 
1539
1624
  /** @deprecated */
1540
- type?: "1" | "a" | "A" | "i" | "I" | undefined;
1625
+ type?: "1" | "a" | "A" | "i" | "I" | RemoveAttribute;
1541
1626
  }
1542
1627
  interface LinkHTMLAttributes<T> extends HTMLAttributes<T> {
1543
- as?: HTMLLinkAs | undefined;
1544
- blocking?: "render" | undefined;
1545
- crossorigin?: HTMLCrossorigin | undefined;
1546
- disabled?: "true" | boolean | undefined;
1547
- fetchpriority?: "high" | "low" | "auto" | undefined;
1548
- href?: string | undefined;
1549
- hreflang?: string | undefined;
1550
- imagesizes?: string | undefined;
1551
- imagesrcset?: string | undefined;
1552
- integrity?: string | undefined;
1553
- media?: string | undefined;
1554
- referrerpolicy?: HTMLReferrerPolicy | undefined;
1555
- rel?: string | undefined;
1556
- sizes?: string | undefined;
1557
- type?: string | undefined;
1558
-
1559
- /** @deprecated Use lowercase attributes */
1560
- crossOrigin?: HTMLCrossorigin | undefined;
1561
- /** @deprecated Use lowercase attributes */
1562
- referrerPolicy?: HTMLReferrerPolicy | undefined;
1628
+ as?: HTMLLinkAs | RemoveAttribute;
1629
+ blocking?: "render" | RemoveAttribute;
1630
+ color?: string | RemoveAttribute;
1631
+ crossorigin?: HTMLCrossorigin | RemoveAttribute;
1632
+ disabled?: BooleanAttribute | RemoveAttribute;
1633
+ fetchpriority?: "high" | "low" | "auto" | RemoveAttribute;
1634
+ href?: string | RemoveAttribute;
1635
+ hreflang?: string | RemoveAttribute;
1636
+ imagesizes?: string | RemoveAttribute;
1637
+ imagesrcset?: string | RemoveAttribute;
1638
+ integrity?: string | RemoveAttribute;
1639
+ media?: string | RemoveAttribute;
1640
+ referrerpolicy?: HTMLReferrerPolicy | RemoveAttribute;
1641
+ rel?: string | RemoveAttribute;
1642
+ sizes?: string | RemoveAttribute;
1643
+ type?: string | RemoveAttribute;
1563
1644
 
1564
1645
  /** @deprecated */
1565
- charset?: string | undefined;
1646
+ charset?: string | RemoveAttribute;
1566
1647
  /** @deprecated */
1567
- rev?: string | undefined;
1648
+ rev?: string | RemoveAttribute;
1568
1649
  /** @deprecated */
1569
- target?: string | undefined;
1650
+ target?: string | RemoveAttribute;
1570
1651
  }
1571
1652
  interface MapHTMLAttributes<T> extends HTMLAttributes<T> {
1572
- name?: string | undefined;
1653
+ name?: string | RemoveAttribute;
1573
1654
  }
1574
1655
  interface MediaHTMLAttributes<T> extends HTMLAttributes<T> {
1575
- autoplay?: "true" | boolean | undefined;
1576
- controls?: "true" | boolean | undefined;
1656
+ autoplay?: BooleanAttribute | RemoveAttribute;
1657
+ controls?: BooleanAttribute | RemoveAttribute;
1577
1658
  controlslist?:
1578
1659
  | "nodownload"
1579
1660
  | "nofullscreen"
1580
1661
  | "noplaybackrate"
1581
1662
  | "noremoteplayback"
1582
1663
  | (string & {})
1583
- | undefined;
1584
- crossorigin?: HTMLCrossorigin | undefined;
1585
- disableremoteplayback?: "true" | boolean | undefined;
1586
- loop?: "true" | boolean | undefined;
1587
- muted?: "true" | boolean | undefined;
1588
- preload?: "none" | "metadata" | "auto" | "" | undefined;
1589
- src?: string | undefined;
1664
+ | RemoveAttribute;
1665
+ crossorigin?: HTMLCrossorigin | RemoveAttribute;
1666
+ disableremoteplayback?: BooleanAttribute | RemoveAttribute;
1667
+ loop?: BooleanAttribute | RemoveAttribute;
1668
+ muted?: BooleanAttribute | RemoveAttribute;
1669
+ preload?: "none" | "metadata" | "auto" | EnumeratedAcceptsEmpty | RemoveAttribute;
1670
+ src?: string | RemoveAttribute;
1671
+
1672
+ onEncrypted?: EventHandlerUnion<T, MediaEncryptedEvent> | undefined;
1673
+ "on:encrypted"?: EventHandlerWithOptionsUnion<T, MediaEncryptedEvent> | undefined;
1590
1674
 
1591
- /** @deprecated Use lowercase attributes */
1592
- crossOrigin?: HTMLCrossorigin | undefined;
1675
+ onWaitingForKey?: EventHandlerUnion<T, Event> | undefined;
1676
+ "on:waitingforkey"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
1593
1677
 
1594
- /** @deprecated Use lowercase attributes */
1595
- mediaGroup?: string | undefined;
1596
1678
  /** @deprecated */
1597
- mediagroup?: string | undefined;
1679
+ mediagroup?: string | RemoveAttribute;
1598
1680
  }
1599
1681
  interface MenuHTMLAttributes<T> extends HTMLAttributes<T> {
1600
1682
  /** @deprecated */
1601
- compact?: "true" | boolean | undefined;
1683
+ compact?: BooleanAttribute | RemoveAttribute;
1602
1684
  /** @deprecated */
1603
- label?: string | undefined;
1685
+ label?: string | RemoveAttribute;
1604
1686
  /** @deprecated */
1605
- type?: "context" | "toolbar" | undefined;
1687
+ type?: "context" | "toolbar" | RemoveAttribute;
1606
1688
  }
1607
1689
  interface MetaHTMLAttributes<T> extends HTMLAttributes<T> {
1608
- charset?: string | undefined;
1609
- content?: string | undefined;
1610
1690
  "http-equiv"?:
1611
1691
  | "content-security-policy"
1612
1692
  | "content-type"
1613
1693
  | "default-style"
1614
1694
  | "x-ua-compatible"
1615
1695
  | "refresh"
1616
- | undefined;
1617
- name?: string | undefined;
1618
- media?: string | undefined;
1696
+ | RemoveAttribute;
1697
+ charset?: string | RemoveAttribute;
1698
+ content?: string | RemoveAttribute;
1699
+ media?: string | RemoveAttribute;
1700
+ name?: string | RemoveAttribute;
1619
1701
 
1620
1702
  /** @deprecated */
1621
- scheme?: string | undefined;
1703
+ scheme?: string | RemoveAttribute;
1622
1704
  }
1623
1705
  interface MeterHTMLAttributes<T> extends HTMLAttributes<T> {
1624
- form?: string | undefined;
1625
- high?: number | string | undefined;
1626
- low?: number | string | undefined;
1627
- max?: number | string | undefined;
1628
- min?: number | string | undefined;
1629
- optimum?: number | string | undefined;
1630
- value?: string | string[] | number | undefined;
1706
+ form?: string | RemoveAttribute;
1707
+ high?: number | string | RemoveAttribute;
1708
+ low?: number | string | RemoveAttribute;
1709
+ max?: number | string | RemoveAttribute;
1710
+ min?: number | string | RemoveAttribute;
1711
+ optimum?: number | string | RemoveAttribute;
1712
+ value?: string | string[] | number | RemoveAttribute;
1631
1713
  }
1632
1714
  interface QuoteHTMLAttributes<T> extends HTMLAttributes<T> {
1633
- cite?: string | undefined;
1715
+ cite?: string | RemoveAttribute;
1634
1716
  }
1635
1717
  interface ObjectHTMLAttributes<T> extends HTMLAttributes<T> {
1636
- data?: string | undefined;
1637
- form?: string | undefined;
1638
- height?: number | string | undefined;
1639
- name?: string | undefined;
1640
- type?: string | undefined;
1641
- width?: number | string | undefined;
1642
-
1643
- /** @deprecated Use lowercase attributes */
1644
- useMap?: string | undefined;
1718
+ data?: string | RemoveAttribute;
1719
+ form?: string | RemoveAttribute;
1720
+ height?: number | string | RemoveAttribute;
1721
+ name?: string | RemoveAttribute;
1722
+ type?: string | RemoveAttribute;
1723
+ width?: number | string | RemoveAttribute;
1724
+ wmode?: string | RemoveAttribute;
1645
1725
 
1646
1726
  /** @deprecated */
1647
- align?: string | undefined;
1727
+ align?: string | RemoveAttribute;
1648
1728
  /** @deprecated */
1649
- archive?: string | undefined;
1729
+ archive?: string | RemoveAttribute;
1650
1730
  /** @deprecated */
1651
- border?: string | undefined;
1731
+ border?: string | RemoveAttribute;
1652
1732
  /** @deprecated */
1653
- classid?: string | undefined;
1733
+ classid?: string | RemoveAttribute;
1654
1734
  /** @deprecated */
1655
- code?: string | undefined;
1735
+ code?: string | RemoveAttribute;
1656
1736
  /** @deprecated */
1657
- codebase?: string | undefined;
1737
+ codebase?: string | RemoveAttribute;
1658
1738
  /** @deprecated */
1659
- codetype?: string | undefined;
1739
+ codetype?: string | RemoveAttribute;
1660
1740
  /** @deprecated */
1661
- declare?: "true" | boolean | undefined;
1741
+ declare?: BooleanAttribute | RemoveAttribute;
1662
1742
  /** @deprecated */
1663
- hspace?: number | string | undefined;
1743
+ hspace?: number | string | RemoveAttribute;
1664
1744
  /** @deprecated */
1665
- standby?: string | undefined;
1745
+ standby?: string | RemoveAttribute;
1666
1746
  /** @deprecated */
1667
- usemap?: string | undefined;
1747
+ usemap?: string | RemoveAttribute;
1668
1748
  /** @deprecated */
1669
- vspace?: number | string | undefined;
1749
+ vspace?: number | string | RemoveAttribute;
1670
1750
  /** @deprecated */
1671
- typemustmatch?: "true" | boolean | undefined;
1751
+ typemustmatch?: BooleanAttribute | RemoveAttribute;
1672
1752
  }
1673
1753
  interface OlHTMLAttributes<T> extends HTMLAttributes<T> {
1674
- reversed?: "true" | boolean | undefined;
1675
- start?: number | string | undefined;
1676
- type?: "1" | "a" | "A" | "i" | "I" | undefined;
1754
+ reversed?: BooleanAttribute | RemoveAttribute;
1755
+ start?: number | string | RemoveAttribute;
1756
+ type?: "1" | "a" | "A" | "i" | "I" | RemoveAttribute;
1677
1757
 
1678
1758
  /**
1679
1759
  * @deprecated
1680
1760
  * @non-standard
1681
1761
  */
1682
- compact?: "true" | boolean | undefined;
1762
+ compact?: BooleanAttribute | RemoveAttribute;
1683
1763
  }
1684
1764
  interface OptgroupHTMLAttributes<T> extends HTMLAttributes<T> {
1685
- disabled?: "true" | boolean | undefined;
1686
- label?: string | undefined;
1765
+ disabled?: BooleanAttribute | RemoveAttribute;
1766
+ label?: string | RemoveAttribute;
1687
1767
  }
1688
1768
  interface OptionHTMLAttributes<T> extends HTMLAttributes<T> {
1689
- disabled?: "true" | boolean | undefined;
1690
- label?: string | undefined;
1691
- selected?: "true" | boolean | undefined;
1692
- value?: string | string[] | number | undefined;
1769
+ disabled?: BooleanAttribute | RemoveAttribute;
1770
+ label?: string | RemoveAttribute;
1771
+ selected?: BooleanAttribute | RemoveAttribute;
1772
+ value?: string | string[] | number | RemoveAttribute;
1693
1773
  }
1694
1774
  interface OutputHTMLAttributes<T> extends HTMLAttributes<T> {
1695
- form?: string | undefined;
1696
- for?: string | undefined;
1697
- name?: string | undefined;
1775
+ for?: string | RemoveAttribute;
1776
+ form?: string | RemoveAttribute;
1777
+ name?: string | RemoveAttribute;
1698
1778
  }
1699
1779
  interface ParamHTMLAttributes<T> extends HTMLAttributes<T> {
1700
1780
  /** @deprecated */
1701
- name?: string | undefined;
1781
+ name?: string | RemoveAttribute;
1702
1782
  /** @deprecated */
1703
- type?: string | undefined;
1783
+ type?: string | RemoveAttribute;
1704
1784
  /** @deprecated */
1705
- value?: string | number | undefined;
1785
+ value?: string | number | RemoveAttribute;
1706
1786
  /** @deprecated */
1707
- valuetype?: "data" | "ref" | "object" | undefined;
1787
+ valuetype?: "data" | "ref" | "object" | RemoveAttribute;
1708
1788
  }
1709
1789
  interface ProgressHTMLAttributes<T> extends HTMLAttributes<T> {
1710
- max?: number | string | undefined;
1711
- value?: string | string[] | number | undefined;
1790
+ max?: number | string | RemoveAttribute;
1791
+ value?: string | string[] | number | RemoveAttribute;
1712
1792
  }
1713
1793
  interface ScriptHTMLAttributes<T> extends HTMLAttributes<T> {
1714
- async?: "true" | boolean | undefined;
1715
- blocking?: "render" | undefined;
1716
- crossorigin?: HTMLCrossorigin | undefined;
1717
- defer?: "true" | boolean | undefined;
1718
- fetchpriority?: "high" | "low" | "auto" | undefined;
1719
- integrity?: string | undefined;
1720
- nomodule?: "true" | boolean | undefined;
1721
- nonce?: string | undefined;
1722
- referrerpolicy?: HTMLReferrerPolicy | undefined;
1723
- src?: string | undefined;
1724
- type?: "importmap" | "module" | "speculationrules" | (string & {}) | undefined;
1794
+ async?: BooleanAttribute | RemoveAttribute;
1795
+ blocking?: "render" | RemoveAttribute;
1796
+ crossorigin?: HTMLCrossorigin | RemoveAttribute;
1797
+ defer?: BooleanAttribute | RemoveAttribute;
1798
+ fetchpriority?: "high" | "low" | "auto" | RemoveAttribute;
1799
+ for?: string | RemoveAttribute;
1800
+ integrity?: string | RemoveAttribute;
1801
+ nomodule?: BooleanAttribute | RemoveAttribute;
1802
+ referrerpolicy?: HTMLReferrerPolicy | RemoveAttribute;
1803
+ src?: string | RemoveAttribute;
1804
+ type?: "importmap" | "module" | "speculationrules" | (string & {}) | RemoveAttribute;
1725
1805
 
1726
1806
  /** @experimental */
1727
- attributionsrc?: string | undefined;
1728
-
1729
- /** @deprecated Use lowercase attributes */
1730
- crossOrigin?: HTMLCrossorigin | undefined;
1731
- /** @deprecated Use lowercase attributes */
1732
- noModule?: boolean | undefined;
1733
- /** @deprecated Use lowercase attributes */
1734
- referrerPolicy?: HTMLReferrerPolicy | undefined;
1807
+ attributionsrc?: string | RemoveAttribute;
1735
1808
 
1736
1809
  /** @deprecated */
1737
- charset?: string | undefined;
1810
+ charset?: string | RemoveAttribute;
1738
1811
  /** @deprecated */
1739
- event?: string | undefined;
1812
+ event?: string | RemoveAttribute;
1740
1813
  /** @deprecated */
1741
- language?: string | undefined;
1814
+ language?: string | RemoveAttribute;
1742
1815
  }
1743
1816
  interface SelectHTMLAttributes<T> extends HTMLAttributes<T> {
1744
- autocomplete?: string | undefined;
1745
- autofocus?: "true" | boolean | undefined;
1746
- disabled?: "true" | boolean | undefined;
1747
- form?: string | undefined;
1748
- multiple?: "true" | boolean | undefined;
1749
- name?: string | undefined;
1750
- required?: "true" | boolean | undefined;
1751
- size?: number | string | undefined;
1752
- value?: string | string[] | number | undefined;
1817
+ autocomplete?: HTMLAutocomplete | RemoveAttribute;
1818
+ disabled?: BooleanAttribute | RemoveAttribute;
1819
+ form?: string | RemoveAttribute;
1820
+ multiple?: BooleanAttribute | RemoveAttribute;
1821
+ name?: string | RemoveAttribute;
1822
+ required?: BooleanAttribute | RemoveAttribute;
1823
+ size?: number | string | RemoveAttribute;
1824
+ value?: string | string[] | number | RemoveAttribute;
1753
1825
  }
1754
1826
  interface HTMLSlotElementAttributes<T> extends HTMLAttributes<T> {
1755
- name?: string | undefined;
1827
+ name?: string | RemoveAttribute;
1756
1828
  }
1757
1829
  interface SourceHTMLAttributes<T> extends HTMLAttributes<T> {
1758
- media?: string | undefined;
1759
- sizes?: string | undefined;
1760
- src?: string | undefined;
1761
- srcset?: string | undefined;
1762
- type?: string | undefined;
1763
- width?: number | string | undefined;
1764
- height?: number | string | undefined;
1830
+ height?: number | string | RemoveAttribute;
1831
+ media?: string | RemoveAttribute;
1832
+ sizes?: string | RemoveAttribute;
1833
+ src?: string | RemoveAttribute;
1834
+ srcset?: string | RemoveAttribute;
1835
+ type?: string | RemoveAttribute;
1836
+ width?: number | string | RemoveAttribute;
1765
1837
  }
1766
1838
  interface StyleHTMLAttributes<T> extends HTMLAttributes<T> {
1767
- blocking?: "render" | undefined;
1768
- media?: string | undefined;
1769
- nonce?: string | undefined;
1839
+ blocking?: "render" | RemoveAttribute;
1840
+ media?: string | RemoveAttribute;
1770
1841
 
1771
1842
  /** @deprecated */
1772
- scoped?: "true" | boolean | undefined;
1843
+ scoped?: BooleanAttribute | RemoveAttribute;
1773
1844
  /** @deprecated */
1774
- type?: string | undefined;
1845
+ type?: string | RemoveAttribute;
1775
1846
  }
1776
1847
  interface TdHTMLAttributes<T> extends HTMLAttributes<T> {
1777
- colspan?: number | string | undefined;
1778
- headers?: string | undefined;
1779
- rowspan?: number | string | undefined;
1780
-
1781
- /** @deprecated Use lowercase attributes */
1782
- colSpan?: number | string | undefined;
1783
- /** @deprecated Use lowercase attributes */
1784
- rowSpan?: number | string | undefined;
1848
+ colspan?: number | string | RemoveAttribute;
1849
+ headers?: string | RemoveAttribute;
1850
+ rowspan?: number | string | RemoveAttribute;
1785
1851
 
1786
1852
  /** @deprecated */
1787
- abbr?: string | undefined;
1853
+ abbr?: string | RemoveAttribute;
1788
1854
  /** @deprecated */
1789
- align?: "left" | "center" | "right" | "justify" | "char" | undefined;
1855
+ align?: "left" | "center" | "right" | "justify" | "char" | RemoveAttribute;
1790
1856
  /** @deprecated */
1791
- axis?: string | undefined;
1857
+ axis?: string | RemoveAttribute;
1792
1858
  /** @deprecated */
1793
- bgcolor?: string | undefined;
1859
+ bgcolor?: string | RemoveAttribute;
1794
1860
  /** @deprecated */
1795
- char?: string | undefined;
1861
+ char?: string | RemoveAttribute;
1796
1862
  /** @deprecated */
1797
- charoff?: string | undefined;
1863
+ charoff?: string | RemoveAttribute;
1798
1864
  /** @deprecated */
1799
- height?: number | string | undefined;
1865
+ height?: number | string | RemoveAttribute;
1800
1866
  /** @deprecated */
1801
- nowrap?: "true" | boolean | undefined;
1867
+ nowrap?: BooleanAttribute | RemoveAttribute;
1802
1868
  /** @deprecated */
1803
- scope?: "col" | "row" | "rowgroup" | "colgroup" | undefined;
1869
+ scope?: "col" | "row" | "rowgroup" | "colgroup" | RemoveAttribute;
1804
1870
  /** @deprecated */
1805
- valign?: "baseline" | "bottom" | "middle" | "top" | undefined;
1871
+ valign?: "baseline" | "bottom" | "middle" | "top" | RemoveAttribute;
1806
1872
  /** @deprecated */
1807
- width?: number | string | undefined;
1873
+ width?: number | string | RemoveAttribute;
1808
1874
  }
1809
1875
  interface TemplateHTMLAttributes<T> extends HTMLAttributes<T> {
1810
- shadowrootmode?: "open" | "closed" | undefined;
1811
- shadowrootclonable?: "true" | boolean | undefined;
1812
- shadowrootdelegatesfocus?: "true" | boolean | undefined;
1876
+ shadowrootclonable?: BooleanAttribute | RemoveAttribute;
1877
+ shadowrootdelegatesfocus?: BooleanAttribute | RemoveAttribute;
1878
+ shadowrootmode?: "open" | "closed" | RemoveAttribute;
1879
+ shadowrootcustomelementregistry?: BooleanAttribute | RemoveAttribute;
1813
1880
 
1814
1881
  /** @experimental */
1815
- shadowrootserializable?: "true" | boolean | undefined;
1816
-
1817
- /** @deprecated */
1818
- content?: DocumentFragment | undefined;
1882
+ shadowrootserializable?: BooleanAttribute | RemoveAttribute;
1819
1883
  }
1820
1884
  interface TextareaHTMLAttributes<T> extends HTMLAttributes<T> {
1821
- autocomplete?:
1822
- | "additional-name"
1823
- | "address-level1"
1824
- | "address-level2"
1825
- | "address-level3"
1826
- | "address-level4"
1827
- | "address-line1"
1828
- | "address-line2"
1829
- | "address-line3"
1830
- | "bday"
1831
- | "bday-day"
1832
- | "bday-month"
1833
- | "bday-year"
1834
- | "billing"
1835
- | "cc-additional-name"
1836
- | "cc-csc"
1837
- | "cc-exp"
1838
- | "cc-exp-month"
1839
- | "cc-exp-year"
1840
- | "cc-family-name"
1841
- | "cc-given-name"
1842
- | "cc-name"
1843
- | "cc-number"
1844
- | "cc-type"
1845
- | "country"
1846
- | "country-name"
1847
- | "current-password"
1848
- | "email"
1849
- | "family-name"
1850
- | "fax"
1851
- | "given-name"
1852
- | "home"
1853
- | "honorific-prefix"
1854
- | "honorific-suffix"
1855
- | "impp"
1856
- | "language"
1857
- | "mobile"
1858
- | "name"
1859
- | "new-password"
1860
- | "nickname"
1861
- | "off"
1862
- | "on"
1863
- | "organization"
1864
- | "organization-title"
1865
- | "pager"
1866
- | "photo"
1867
- | "postal-code"
1868
- | "sex"
1869
- | "shipping"
1870
- | "street-address"
1871
- | "tel"
1872
- | "tel-area-code"
1873
- | "tel-country-code"
1874
- | "tel-extension"
1875
- | "tel-local"
1876
- | "tel-local-prefix"
1877
- | "tel-local-suffix"
1878
- | "tel-national"
1879
- | "transaction-amount"
1880
- | "transaction-currency"
1881
- | "url"
1882
- | "username"
1883
- | "work"
1884
- | (string & {})
1885
- | undefined;
1886
- autocorrect?: "on" | "off" | undefined;
1887
- autofocus?: "true" | boolean | undefined;
1888
- cols?: number | string | undefined;
1889
- dirname?: string | undefined;
1890
- disabled?: "true" | boolean | undefined;
1891
- enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
1892
- form?: string | undefined;
1893
- maxlength?: number | string | undefined;
1894
- minlength?: number | string | undefined;
1895
- name?: string | undefined;
1896
- placeholder?: string | undefined;
1897
- readonly?: "true" | boolean | undefined;
1898
- required?: "true" | boolean | undefined;
1899
- rows?: number | string | undefined;
1900
- value?: string | string[] | number | undefined;
1901
- wrap?: "hard" | "soft" | "off" | undefined;
1885
+ autocomplete?: HTMLAutocomplete | RemoveAttribute;
1886
+ cols?: number | string | RemoveAttribute;
1887
+ dirname?: string | RemoveAttribute;
1888
+ disabled?: BooleanAttribute | RemoveAttribute;
1902
1889
 
1903
- /** @deprecated Use lowercase attributes */
1904
- maxLength?: number | string | undefined;
1905
- /** @deprecated Use lowercase attributes */
1906
- minLength?: number | string | undefined;
1907
- /** @deprecated Use lowercase attributes */
1908
- readOnly?: boolean | undefined;
1890
+ form?: string | RemoveAttribute;
1891
+ maxlength?: number | string | RemoveAttribute;
1892
+ minlength?: number | string | RemoveAttribute;
1893
+ name?: string | RemoveAttribute;
1894
+ placeholder?: string | RemoveAttribute;
1895
+ readonly?: BooleanAttribute | RemoveAttribute;
1896
+ required?: BooleanAttribute | RemoveAttribute;
1897
+ rows?: number | string | RemoveAttribute;
1898
+ value?: string | string[] | number | RemoveAttribute;
1899
+ wrap?: "hard" | "soft" | "off" | RemoveAttribute;
1909
1900
  }
1910
1901
  interface ThHTMLAttributes<T> extends HTMLAttributes<T> {
1911
- abbr?: string | undefined;
1912
- colspan?: number | string | undefined;
1913
- headers?: string | undefined;
1914
- rowspan?: number | string | undefined;
1915
- scope?: "col" | "row" | "rowgroup" | "colgroup" | undefined;
1916
-
1917
- /** @deprecated Use lowercase attributes */
1918
- colSpan?: number | string | undefined;
1919
- /** @deprecated Use lowercase attributes */
1920
- rowSpan?: number | string | undefined;
1902
+ abbr?: string | RemoveAttribute;
1903
+ colspan?: number | string | RemoveAttribute;
1904
+ headers?: string | RemoveAttribute;
1905
+ rowspan?: number | string | RemoveAttribute;
1906
+ scope?: "col" | "row" | "rowgroup" | "colgroup" | RemoveAttribute;
1921
1907
 
1922
1908
  /** @deprecated */
1923
- align?: "left" | "center" | "right" | "justify" | "char" | undefined;
1909
+ align?: "left" | "center" | "right" | "justify" | "char" | RemoveAttribute;
1924
1910
  /** @deprecated */
1925
- axis?: string | undefined;
1911
+ axis?: string | RemoveAttribute;
1926
1912
  /** @deprecated */
1927
- bgcolor?: string | undefined;
1913
+ bgcolor?: string | RemoveAttribute;
1928
1914
  /** @deprecated */
1929
- char?: string | undefined;
1915
+ char?: string | RemoveAttribute;
1930
1916
  /** @deprecated */
1931
- charoff?: string | undefined;
1917
+ charoff?: string | RemoveAttribute;
1932
1918
  /** @deprecated */
1933
- height?: string | undefined;
1919
+ height?: string | RemoveAttribute;
1934
1920
  /** @deprecated */
1935
- nowrap?: "true" | boolean | undefined;
1921
+ nowrap?: BooleanAttribute | RemoveAttribute;
1936
1922
  /** @deprecated */
1937
- valign?: "baseline" | "bottom" | "middle" | "top" | undefined;
1923
+ valign?: "baseline" | "bottom" | "middle" | "top" | RemoveAttribute;
1938
1924
  /** @deprecated */
1939
- width?: number | string | undefined;
1925
+ width?: number | string | RemoveAttribute;
1940
1926
  }
1941
1927
  interface TimeHTMLAttributes<T> extends HTMLAttributes<T> {
1942
- datetime?: string | undefined;
1943
-
1944
- /** @deprecated Use lowercase attributes */
1945
- dateTime?: string | undefined;
1928
+ datetime?: string | RemoveAttribute;
1946
1929
  }
1947
1930
  interface TrackHTMLAttributes<T> extends HTMLAttributes<T> {
1948
- default?: "true" | boolean | undefined;
1949
- kind?: // MDN
1950
- | "alternative"
1931
+ default?: BooleanAttribute | RemoveAttribute;
1932
+ kind?:
1933
+ | "alternative"
1951
1934
  | "descriptions"
1952
1935
  | "main"
1953
1936
  | "main-desc"
1954
1937
  | "translation"
1955
1938
  | "commentary"
1956
- // ??
1957
1939
  | "subtitles"
1958
1940
  | "captions"
1959
1941
  | "chapters"
1960
1942
  | "metadata"
1961
- | undefined;
1962
- label?: string | undefined;
1963
- src?: string | undefined;
1964
- srclang?: string | undefined;
1943
+ | RemoveAttribute;
1944
+ label?: string | RemoveAttribute;
1945
+ src?: string | RemoveAttribute;
1946
+ srclang?: string | RemoveAttribute;
1965
1947
 
1966
- /** @deprecated Use lowercase attributes */
1967
- mediaGroup?: string | undefined;
1968
1948
  /** @deprecated */
1969
- mediagroup?: string | undefined;
1949
+ mediagroup?: string | RemoveAttribute;
1970
1950
  }
1971
1951
  interface VideoHTMLAttributes<T> extends MediaHTMLAttributes<T> {
1972
- height?: number | string | undefined;
1973
- playsinline?: "true" | boolean | undefined;
1974
- poster?: string | undefined;
1975
- width?: number | string | undefined;
1976
- disablepictureinpicture?: "true" | boolean | undefined;
1952
+ disablepictureinpicture?: BooleanAttribute | RemoveAttribute;
1953
+ height?: number | string | RemoveAttribute;
1954
+ playsinline?: BooleanAttribute | RemoveAttribute;
1955
+ poster?: string | RemoveAttribute;
1956
+ width?: number | string | RemoveAttribute;
1957
+
1958
+ onEnterPictureInPicture?: EventHandlerUnion<T, PictureInPictureEvent> | undefined;
1959
+ "on:enterpictureinpicture"?: EventHandlerWithOptionsUnion<T, PictureInPictureEvent> | undefined;
1960
+
1961
+ onLeavePictureInPicture?: EventHandlerUnion<T, PictureInPictureEvent> | undefined;
1962
+ "on:leavepictureinpicture"?: EventHandlerWithOptionsUnion<T, PictureInPictureEvent> | undefined;
1977
1963
  }
1978
1964
 
1979
1965
  interface WebViewHTMLAttributes<T> extends HTMLAttributes<T> {
1980
- allowpopups?: "true" | boolean | undefined;
1981
- disableblinkfeatures?: string | undefined;
1982
- disablewebsecurity?: "true" | boolean | undefined;
1983
- enableblinkfeatures?: string | undefined;
1984
- httpreferrer?: string | undefined;
1985
- nodeintegration?: "true" | boolean | undefined;
1986
- nodeintegrationinsubframes?: "true" | boolean | undefined;
1987
- partition?: string | undefined;
1988
- plugins?: "true" | boolean | undefined;
1989
- preload?: string | undefined;
1990
- src?: string | undefined;
1991
- useragent?: string | undefined;
1992
- webpreferences?: string | undefined;
1966
+ allowpopups?: BooleanAttribute | RemoveAttribute;
1967
+ disableblinkfeatures?: string | RemoveAttribute;
1968
+ disablewebsecurity?: BooleanAttribute | RemoveAttribute;
1969
+ enableblinkfeatures?: string | RemoveAttribute;
1970
+ httpreferrer?: string | RemoveAttribute;
1971
+ nodeintegration?: BooleanAttribute | RemoveAttribute;
1972
+ nodeintegrationinsubframes?: BooleanAttribute | RemoveAttribute;
1973
+ partition?: string | RemoveAttribute;
1974
+ plugins?: BooleanAttribute | RemoveAttribute;
1975
+ preload?: string | RemoveAttribute;
1976
+ src?: string | RemoveAttribute;
1977
+ useragent?: string | RemoveAttribute;
1978
+ webpreferences?: string | RemoveAttribute;
1993
1979
 
1994
1980
  // does this exists?
1995
- allowfullscreen?: "true" | boolean | undefined;
1996
- autofocus?: "true" | boolean | undefined;
1997
- autosize?: "true" | boolean | undefined;
1981
+ allowfullscreen?: BooleanAttribute | RemoveAttribute;
1982
+ autosize?: BooleanAttribute | RemoveAttribute;
1998
1983
 
1999
1984
  /** @deprecated */
2000
- blinkfeatures?: string | undefined;
1985
+ blinkfeatures?: string | RemoveAttribute;
2001
1986
  /** @deprecated */
2002
- disableguestresize?: "true" | boolean | undefined;
1987
+ disableguestresize?: BooleanAttribute | RemoveAttribute;
2003
1988
  /** @deprecated */
2004
- guestinstance?: string | undefined;
1989
+ guestinstance?: string | RemoveAttribute;
2005
1990
  }
2006
1991
 
1992
+ // SVG
1993
+
2007
1994
  type SVGPreserveAspectRatio =
2008
1995
  | "none"
2009
1996
  | "xMinYMin"
@@ -2064,57 +2051,50 @@ export namespace JSX {
2064
2051
  | "defer xMidYMax slice"
2065
2052
  | "defer xMaxYMax slice";
2066
2053
  type SVGUnits = "userSpaceOnUse" | "objectBoundingBox";
2067
- interface CoreSVGAttributes<T> extends AriaAttributes, DOMAttributes<T> {
2068
- id?: string | undefined;
2069
- lang?: string | undefined;
2070
- tabindex?: number | string | undefined;
2071
2054
 
2072
- /** @deprecated Use lowercase attributes */
2073
- tabIndex?: number | string | undefined;
2074
- }
2075
2055
  interface StylableSVGAttributes {
2076
- class?: string | ClassList | undefined;
2077
- style?: CSSProperties | string | undefined;
2056
+ class?: string | ClassList | RemoveAttribute;
2057
+ style?: CSSProperties | string | RemoveAttribute;
2078
2058
  }
2079
2059
  interface TransformableSVGAttributes {
2080
- transform?: string | undefined;
2060
+ transform?: string | RemoveAttribute;
2081
2061
  }
2082
2062
  interface ConditionalProcessingSVGAttributes {
2083
- requiredExtensions?: string | undefined;
2084
- requiredFeatures?: string | undefined;
2085
- systemLanguage?: string | undefined;
2063
+ requiredExtensions?: string | RemoveAttribute;
2064
+ requiredFeatures?: string | RemoveAttribute;
2065
+ systemLanguage?: string | RemoveAttribute;
2086
2066
  }
2087
2067
  interface ExternalResourceSVGAttributes {
2088
- externalResourcesRequired?: "true" | "false" | undefined;
2068
+ externalResourcesRequired?: EnumeratedPseudoBoolean | RemoveAttribute;
2089
2069
  }
2090
2070
  interface AnimationTimingSVGAttributes {
2091
- begin?: string | undefined;
2092
- dur?: string | undefined;
2093
- end?: string | undefined;
2094
- min?: string | undefined;
2095
- max?: string | undefined;
2096
- restart?: "always" | "whenNotActive" | "never" | undefined;
2097
- repeatCount?: number | "indefinite" | undefined;
2098
- repeatDur?: string | undefined;
2099
- fill?: "freeze" | "remove" | undefined;
2071
+ begin?: string | RemoveAttribute;
2072
+ dur?: string | RemoveAttribute;
2073
+ end?: string | RemoveAttribute;
2074
+ fill?: "freeze" | "remove" | RemoveAttribute;
2075
+ max?: string | RemoveAttribute;
2076
+ min?: string | RemoveAttribute;
2077
+ repeatCount?: number | "indefinite" | RemoveAttribute;
2078
+ repeatDur?: string | RemoveAttribute;
2079
+ restart?: "always" | "whenNotActive" | "never" | RemoveAttribute;
2100
2080
  }
2101
2081
  interface AnimationValueSVGAttributes {
2102
- calcMode?: "discrete" | "linear" | "paced" | "spline" | undefined;
2103
- values?: string | undefined;
2104
- keyTimes?: string | undefined;
2105
- keySplines?: string | undefined;
2106
- from?: number | string | undefined;
2107
- to?: number | string | undefined;
2108
- by?: number | string | undefined;
2082
+ by?: number | string | RemoveAttribute;
2083
+ calcMode?: "discrete" | "linear" | "paced" | "spline" | RemoveAttribute;
2084
+ from?: number | string | RemoveAttribute;
2085
+ keySplines?: string | RemoveAttribute;
2086
+ keyTimes?: string | RemoveAttribute;
2087
+ to?: number | string | RemoveAttribute;
2088
+ values?: string | RemoveAttribute;
2109
2089
  }
2110
2090
  interface AnimationAdditionSVGAttributes {
2111
- attributeName?: string | undefined;
2112
- additive?: "replace" | "sum" | undefined;
2113
- accumulate?: "none" | "sum" | undefined;
2091
+ accumulate?: "none" | "sum" | RemoveAttribute;
2092
+ additive?: "replace" | "sum" | RemoveAttribute;
2093
+ attributeName?: string | RemoveAttribute;
2114
2094
  }
2115
2095
  interface AnimationAttributeTargetSVGAttributes {
2116
- attributeName?: string | undefined;
2117
- attributeType?: "CSS" | "XML" | "auto" | undefined;
2096
+ attributeName?: string | RemoveAttribute;
2097
+ attributeType?: "CSS" | "XML" | "auto" | RemoveAttribute;
2118
2098
  }
2119
2099
  interface PresentationSVGAttributes {
2120
2100
  "alignment-baseline"?:
@@ -2131,19 +2111,14 @@ export namespace JSX {
2131
2111
  | "hanging"
2132
2112
  | "mathematical"
2133
2113
  | "inherit"
2134
- | undefined;
2135
- "baseline-shift"?: number | string | undefined;
2136
- clip?: string | undefined;
2137
- "clip-path"?: string | undefined;
2138
- "clip-rule"?: "nonzero" | "evenodd" | "inherit" | undefined;
2139
- color?: string | undefined;
2140
- "color-interpolation"?: "auto" | "sRGB" | "linearRGB" | "inherit" | undefined;
2141
- "color-interpolation-filters"?: "auto" | "sRGB" | "linearRGB" | "inherit" | undefined;
2142
- "color-profile"?: string | undefined;
2143
- "color-rendering"?: "auto" | "optimizeSpeed" | "optimizeQuality" | "inherit" | undefined;
2144
- cursor?: string | undefined;
2145
- direction?: "ltr" | "rtl" | "inherit" | undefined;
2146
- display?: string | undefined;
2114
+ | RemoveAttribute;
2115
+ "baseline-shift"?: number | string | RemoveAttribute;
2116
+ "clip-path"?: string | RemoveAttribute;
2117
+ "clip-rule"?: "nonzero" | "evenodd" | "inherit" | RemoveAttribute;
2118
+ "color-interpolation"?: "auto" | "sRGB" | "linearRGB" | "inherit" | RemoveAttribute;
2119
+ "color-interpolation-filters"?: "auto" | "sRGB" | "linearRGB" | "inherit" | RemoveAttribute;
2120
+ "color-profile"?: string | RemoveAttribute;
2121
+ "color-rendering"?: "auto" | "optimizeSpeed" | "optimizeQuality" | "inherit" | RemoveAttribute;
2147
2122
  "dominant-baseline"?:
2148
2123
  | "auto"
2149
2124
  | "text-bottom"
@@ -2155,34 +2130,27 @@ export namespace JSX {
2155
2130
  | "hanging"
2156
2131
  | "text-top"
2157
2132
  | "inherit"
2158
- | undefined;
2159
- "enable-background"?: string | undefined;
2160
- fill?: string | undefined;
2161
- "fill-opacity"?: number | string | "inherit" | undefined;
2162
- "fill-rule"?: "nonzero" | "evenodd" | "inherit" | undefined;
2163
- filter?: string | undefined;
2164
- "flood-color"?: string | undefined;
2165
- "flood-opacity"?: number | string | "inherit" | undefined;
2166
- "font-family"?: string | undefined;
2167
- "font-size"?: string | undefined;
2168
- "font-size-adjust"?: number | string | undefined;
2169
- "font-stretch"?: string | undefined;
2170
- "font-style"?: "normal" | "italic" | "oblique" | "inherit" | undefined;
2171
- "font-variant"?: string | undefined;
2172
- "font-weight"?: number | string | undefined;
2173
- "glyph-orientation-horizontal"?: string | undefined;
2174
- "glyph-orientation-vertical"?: string | undefined;
2175
- "image-rendering"?: "auto" | "optimizeQuality" | "optimizeSpeed" | "inherit" | undefined;
2176
- kerning?: string | undefined;
2177
- "letter-spacing"?: number | string | undefined;
2178
- "lighting-color"?: string | undefined;
2179
- "marker-end"?: string | undefined;
2180
- "marker-mid"?: string | undefined;
2181
- "marker-start"?: string | undefined;
2182
- mask?: string | undefined;
2183
- opacity?: number | string | "inherit" | undefined;
2184
- overflow?: "visible" | "hidden" | "scroll" | "auto" | "inherit" | undefined;
2185
- pathLength?: string | number | undefined;
2133
+ | RemoveAttribute;
2134
+ "enable-background"?: string | RemoveAttribute;
2135
+ "fill-opacity"?: number | string | "inherit" | RemoveAttribute;
2136
+ "fill-rule"?: "nonzero" | "evenodd" | "inherit" | RemoveAttribute;
2137
+ "flood-color"?: string | RemoveAttribute;
2138
+ "flood-opacity"?: number | string | "inherit" | RemoveAttribute;
2139
+ "font-family"?: string | RemoveAttribute;
2140
+ "font-size"?: string | RemoveAttribute;
2141
+ "font-size-adjust"?: number | string | RemoveAttribute;
2142
+ "font-stretch"?: string | RemoveAttribute;
2143
+ "font-style"?: "normal" | "italic" | "oblique" | "inherit" | RemoveAttribute;
2144
+ "font-variant"?: string | RemoveAttribute;
2145
+ "font-weight"?: number | string | RemoveAttribute;
2146
+ "glyph-orientation-horizontal"?: string | RemoveAttribute;
2147
+ "glyph-orientation-vertical"?: string | RemoveAttribute;
2148
+ "image-rendering"?: "auto" | "optimizeQuality" | "optimizeSpeed" | "inherit" | RemoveAttribute;
2149
+ "letter-spacing"?: number | string | RemoveAttribute;
2150
+ "lighting-color"?: string | RemoveAttribute;
2151
+ "marker-end"?: string | RemoveAttribute;
2152
+ "marker-mid"?: string | RemoveAttribute;
2153
+ "marker-start"?: string | RemoveAttribute;
2186
2154
  "pointer-events"?:
2187
2155
  | "bounding-box"
2188
2156
  | "visiblePainted"
@@ -2196,25 +2164,31 @@ export namespace JSX {
2196
2164
  | "all"
2197
2165
  | "none"
2198
2166
  | "inherit"
2199
- | undefined;
2167
+ | RemoveAttribute;
2200
2168
  "shape-rendering"?:
2201
2169
  | "auto"
2202
2170
  | "optimizeSpeed"
2203
2171
  | "crispEdges"
2204
2172
  | "geometricPrecision"
2205
2173
  | "inherit"
2206
- | undefined;
2207
- "stop-color"?: string | undefined;
2208
- "stop-opacity"?: number | string | "inherit" | undefined;
2209
- stroke?: string | undefined;
2210
- "stroke-dasharray"?: string | undefined;
2211
- "stroke-dashoffset"?: number | string | undefined;
2212
- "stroke-linecap"?: "butt" | "round" | "square" | "inherit" | undefined;
2213
- "stroke-linejoin"?: "arcs" | "bevel" | "miter" | "miter-clip" | "round" | "inherit" | undefined;
2214
- "stroke-miterlimit"?: number | string | "inherit" | undefined;
2215
- "stroke-opacity"?: number | string | "inherit" | undefined;
2216
- "stroke-width"?: number | string | undefined;
2217
- "text-anchor"?: "start" | "middle" | "end" | "inherit" | undefined;
2174
+ | RemoveAttribute;
2175
+ "stop-color"?: string | RemoveAttribute;
2176
+ "stop-opacity"?: number | string | "inherit" | RemoveAttribute;
2177
+ "stroke-dasharray"?: string | RemoveAttribute;
2178
+ "stroke-dashoffset"?: number | string | RemoveAttribute;
2179
+ "stroke-linecap"?: "butt" | "round" | "square" | "inherit" | RemoveAttribute;
2180
+ "stroke-linejoin"?:
2181
+ | "arcs"
2182
+ | "bevel"
2183
+ | "miter"
2184
+ | "miter-clip"
2185
+ | "round"
2186
+ | "inherit"
2187
+ | RemoveAttribute;
2188
+ "stroke-miterlimit"?: number | string | "inherit" | RemoveAttribute;
2189
+ "stroke-opacity"?: number | string | "inherit" | RemoveAttribute;
2190
+ "stroke-width"?: number | string | RemoveAttribute;
2191
+ "text-anchor"?: "start" | "middle" | "end" | "inherit" | RemoveAttribute;
2218
2192
  "text-decoration"?:
2219
2193
  | "none"
2220
2194
  | "underline"
@@ -2222,25 +2196,50 @@ export namespace JSX {
2222
2196
  | "line-through"
2223
2197
  | "blink"
2224
2198
  | "inherit"
2225
- | undefined;
2199
+ | RemoveAttribute;
2226
2200
  "text-rendering"?:
2227
2201
  | "auto"
2228
2202
  | "optimizeSpeed"
2229
2203
  | "optimizeLegibility"
2230
2204
  | "geometricPrecision"
2231
2205
  | "inherit"
2232
- | undefined;
2233
- "unicode-bidi"?: string | undefined;
2234
- visibility?: "visible" | "hidden" | "collapse" | "inherit" | undefined;
2235
- "word-spacing"?: number | string | undefined;
2236
- "writing-mode"?: "lr-tb" | "rl-tb" | "tb-rl" | "lr" | "rl" | "tb" | "inherit" | undefined;
2206
+ | RemoveAttribute;
2207
+ "unicode-bidi"?: string | RemoveAttribute;
2208
+ "word-spacing"?: number | string | RemoveAttribute;
2209
+ "writing-mode"?: "lr-tb" | "rl-tb" | "tb-rl" | "lr" | "rl" | "tb" | "inherit" | RemoveAttribute;
2210
+ clip?: string | RemoveAttribute;
2211
+ color?: string | RemoveAttribute;
2212
+ cursor?: string | RemoveAttribute;
2213
+ direction?: "ltr" | "rtl" | "inherit" | RemoveAttribute;
2214
+ display?: string | RemoveAttribute;
2215
+ fill?: string | RemoveAttribute;
2216
+ filter?: string | RemoveAttribute;
2217
+ kerning?: string | RemoveAttribute;
2218
+ mask?: string | RemoveAttribute;
2219
+ opacity?: number | string | "inherit" | RemoveAttribute;
2220
+ overflow?: "visible" | "hidden" | "scroll" | "auto" | "inherit" | RemoveAttribute;
2221
+ pathLength?: string | number | RemoveAttribute;
2222
+ stroke?: string | RemoveAttribute;
2223
+ visibility?: "visible" | "hidden" | "collapse" | "inherit" | RemoveAttribute;
2237
2224
  }
2238
2225
  interface AnimationElementSVGAttributes<T>
2239
- extends CoreSVGAttributes<T>,
2226
+ extends SVGAttributes<T>,
2240
2227
  ExternalResourceSVGAttributes,
2241
- ConditionalProcessingSVGAttributes {}
2228
+ ConditionalProcessingSVGAttributes {
2229
+ // TODO TimeEvent is currently undefined on TS
2230
+ onBegin?: EventHandlerUnion<T, Event> | undefined;
2231
+ "on:begin"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
2232
+
2233
+ // TODO TimeEvent is currently undefined on TS
2234
+ onEnd?: EventHandlerUnion<T, Event> | undefined;
2235
+ "on:end"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
2236
+
2237
+ // TODO TimeEvent is currently undefined on TS
2238
+ onRepeat?: EventHandlerUnion<T, Event> | undefined;
2239
+ "on:repeat"?: EventHandlerWithOptionsUnion<T, Event> | undefined;
2240
+ }
2242
2241
  interface ContainerElementSVGAttributes<T>
2243
- extends CoreSVGAttributes<T>,
2242
+ extends SVGAttributes<T>,
2244
2243
  ShapeElementSVGAttributes<T>,
2245
2244
  Pick<
2246
2245
  PresentationSVGAttributes,
@@ -2254,36 +2253,36 @@ export namespace JSX {
2254
2253
  | "color-rendering"
2255
2254
  > {}
2256
2255
  interface FilterPrimitiveElementSVGAttributes<T>
2257
- extends CoreSVGAttributes<T>,
2256
+ extends SVGAttributes<T>,
2258
2257
  Pick<PresentationSVGAttributes, "color-interpolation-filters"> {
2259
- x?: number | string | undefined;
2260
- y?: number | string | undefined;
2261
- width?: number | string | undefined;
2262
- height?: number | string | undefined;
2263
- result?: string | undefined;
2258
+ height?: number | string | RemoveAttribute;
2259
+ result?: string | RemoveAttribute;
2260
+ width?: number | string | RemoveAttribute;
2261
+ x?: number | string | RemoveAttribute;
2262
+ y?: number | string | RemoveAttribute;
2264
2263
  }
2265
2264
  interface SingleInputFilterSVGAttributes {
2266
- in?: string | undefined;
2265
+ in?: string | RemoveAttribute;
2267
2266
  }
2268
2267
  interface DoubleInputFilterSVGAttributes {
2269
- in?: string | undefined;
2270
- in2?: string | undefined;
2268
+ in?: string | RemoveAttribute;
2269
+ in2?: string | RemoveAttribute;
2271
2270
  }
2272
2271
  interface FitToViewBoxSVGAttributes {
2273
- viewBox?: string | undefined;
2274
- preserveAspectRatio?: SVGPreserveAspectRatio | undefined;
2272
+ preserveAspectRatio?: SVGPreserveAspectRatio | RemoveAttribute;
2273
+ viewBox?: string | RemoveAttribute;
2275
2274
  }
2276
2275
  interface GradientElementSVGAttributes<T>
2277
- extends CoreSVGAttributes<T>,
2276
+ extends SVGAttributes<T>,
2278
2277
  ExternalResourceSVGAttributes,
2279
2278
  StylableSVGAttributes {
2280
- gradientUnits?: SVGUnits | undefined;
2281
- gradientTransform?: string | undefined;
2282
- spreadMethod?: "pad" | "reflect" | "repeat" | undefined;
2283
- href?: string | undefined;
2279
+ gradientTransform?: string | RemoveAttribute;
2280
+ gradientUnits?: SVGUnits | RemoveAttribute;
2281
+ href?: string | RemoveAttribute;
2282
+ spreadMethod?: "pad" | "reflect" | "repeat" | RemoveAttribute;
2284
2283
  }
2285
2284
  interface GraphicsElementSVGAttributes<T>
2286
- extends CoreSVGAttributes<T>,
2285
+ extends SVGAttributes<T>,
2287
2286
  Pick<
2288
2287
  PresentationSVGAttributes,
2289
2288
  | "clip-rule"
@@ -2297,14 +2296,14 @@ export namespace JSX {
2297
2296
  | "color-interpolation"
2298
2297
  | "color-rendering"
2299
2298
  > {}
2300
- interface LightSourceElementSVGAttributes<T> extends CoreSVGAttributes<T> {}
2299
+ interface LightSourceElementSVGAttributes<T> extends SVGAttributes<T> {}
2301
2300
  interface NewViewportSVGAttributes<T>
2302
- extends CoreSVGAttributes<T>,
2301
+ extends SVGAttributes<T>,
2303
2302
  Pick<PresentationSVGAttributes, "overflow" | "clip"> {
2304
- viewBox?: string | undefined;
2303
+ viewBox?: string | RemoveAttribute;
2305
2304
  }
2306
2305
  interface ShapeElementSVGAttributes<T>
2307
- extends CoreSVGAttributes<T>,
2306
+ extends SVGAttributes<T>,
2308
2307
  Pick<
2309
2308
  PresentationSVGAttributes,
2310
2309
  | "color"
@@ -2323,7 +2322,7 @@ export namespace JSX {
2323
2322
  | "pathLength"
2324
2323
  > {}
2325
2324
  interface TextContentElementSVGAttributes<T>
2326
- extends CoreSVGAttributes<T>,
2325
+ extends SVGAttributes<T>,
2327
2326
  Pick<
2328
2327
  PresentationSVGAttributes,
2329
2328
  | "font-family"
@@ -2361,7 +2360,7 @@ export namespace JSX {
2361
2360
  * @deprecated
2362
2361
  * @non-standard
2363
2362
  */
2364
- zoomAndPan?: "disable" | "magnify" | undefined;
2363
+ zoomAndPan?: "disable" | "magnify" | RemoveAttribute;
2365
2364
  }
2366
2365
  interface AnimateSVGAttributes<T>
2367
2366
  extends AnimationElementSVGAttributes<T>,
@@ -2375,10 +2374,10 @@ export namespace JSX {
2375
2374
  AnimationTimingSVGAttributes,
2376
2375
  AnimationValueSVGAttributes,
2377
2376
  AnimationAdditionSVGAttributes {
2378
- path?: string | undefined;
2379
- keyPoints?: string | undefined;
2380
- rotate?: number | string | "auto" | "auto-reverse" | undefined;
2381
- origin?: "default" | undefined;
2377
+ keyPoints?: string | RemoveAttribute;
2378
+ origin?: "default" | RemoveAttribute;
2379
+ path?: string | RemoveAttribute;
2380
+ rotate?: number | string | "auto" | "auto-reverse" | RemoveAttribute;
2382
2381
  }
2383
2382
  interface AnimateTransformSVGAttributes<T>
2384
2383
  extends AnimationElementSVGAttributes<T>,
@@ -2386,26 +2385,27 @@ export namespace JSX {
2386
2385
  AnimationTimingSVGAttributes,
2387
2386
  AnimationValueSVGAttributes,
2388
2387
  AnimationAdditionSVGAttributes {
2389
- type?: "translate" | "scale" | "rotate" | "skewX" | "skewY" | undefined;
2388
+ type?: "translate" | "scale" | "rotate" | "skewX" | "skewY" | RemoveAttribute;
2390
2389
  }
2391
2390
  interface CircleSVGAttributes<T>
2392
2391
  extends GraphicsElementSVGAttributes<T>,
2393
2392
  ShapeElementSVGAttributes<T>,
2394
2393
  ConditionalProcessingSVGAttributes,
2395
2394
  StylableSVGAttributes,
2396
- TransformableSVGAttributes {
2397
- cx?: number | string | undefined;
2398
- cy?: number | string | undefined;
2399
- r?: number | string | undefined;
2395
+ TransformableSVGAttributes,
2396
+ Pick<PresentationSVGAttributes, "clip-path"> {
2397
+ cx?: number | string | RemoveAttribute;
2398
+ cy?: number | string | RemoveAttribute;
2399
+ r?: number | string | RemoveAttribute;
2400
2400
  }
2401
2401
  interface ClipPathSVGAttributes<T>
2402
- extends CoreSVGAttributes<T>,
2402
+ extends SVGAttributes<T>,
2403
2403
  ConditionalProcessingSVGAttributes,
2404
2404
  ExternalResourceSVGAttributes,
2405
2405
  StylableSVGAttributes,
2406
2406
  TransformableSVGAttributes,
2407
2407
  Pick<PresentationSVGAttributes, "clip-path"> {
2408
- clipPathUnits?: SVGUnits | undefined;
2408
+ clipPathUnits?: SVGUnits | RemoveAttribute;
2409
2409
  }
2410
2410
  interface DefsSVGAttributes<T>
2411
2411
  extends ContainerElementSVGAttributes<T>,
@@ -2413,31 +2413,32 @@ export namespace JSX {
2413
2413
  ExternalResourceSVGAttributes,
2414
2414
  StylableSVGAttributes,
2415
2415
  TransformableSVGAttributes {}
2416
- interface DescSVGAttributes<T> extends CoreSVGAttributes<T>, StylableSVGAttributes {}
2416
+ interface DescSVGAttributes<T> extends SVGAttributes<T>, StylableSVGAttributes {}
2417
2417
  interface EllipseSVGAttributes<T>
2418
2418
  extends GraphicsElementSVGAttributes<T>,
2419
2419
  ShapeElementSVGAttributes<T>,
2420
2420
  ConditionalProcessingSVGAttributes,
2421
2421
  ExternalResourceSVGAttributes,
2422
2422
  StylableSVGAttributes,
2423
- TransformableSVGAttributes {
2424
- cx?: number | string | undefined;
2425
- cy?: number | string | undefined;
2426
- rx?: number | string | undefined;
2427
- ry?: number | string | undefined;
2423
+ TransformableSVGAttributes,
2424
+ Pick<PresentationSVGAttributes, "clip-path"> {
2425
+ cx?: number | string | RemoveAttribute;
2426
+ cy?: number | string | RemoveAttribute;
2427
+ rx?: number | string | RemoveAttribute;
2428
+ ry?: number | string | RemoveAttribute;
2428
2429
  }
2429
2430
  interface FeBlendSVGAttributes<T>
2430
2431
  extends FilterPrimitiveElementSVGAttributes<T>,
2431
2432
  DoubleInputFilterSVGAttributes,
2432
2433
  StylableSVGAttributes {
2433
- mode?: "normal" | "multiply" | "screen" | "darken" | "lighten" | undefined;
2434
+ mode?: "normal" | "multiply" | "screen" | "darken" | "lighten" | RemoveAttribute;
2434
2435
  }
2435
2436
  interface FeColorMatrixSVGAttributes<T>
2436
2437
  extends FilterPrimitiveElementSVGAttributes<T>,
2437
2438
  SingleInputFilterSVGAttributes,
2438
2439
  StylableSVGAttributes {
2439
- type?: "matrix" | "saturate" | "hueRotate" | "luminanceToAlpha" | undefined;
2440
- values?: string | undefined;
2440
+ type?: "matrix" | "saturate" | "hueRotate" | "luminanceToAlpha" | RemoveAttribute;
2441
+ values?: string | RemoveAttribute;
2441
2442
  }
2442
2443
  interface FeComponentTransferSVGAttributes<T>
2443
2444
  extends FilterPrimitiveElementSVGAttributes<T>,
@@ -2447,126 +2448,124 @@ export namespace JSX {
2447
2448
  extends FilterPrimitiveElementSVGAttributes<T>,
2448
2449
  DoubleInputFilterSVGAttributes,
2449
2450
  StylableSVGAttributes {
2450
- operator?: "over" | "in" | "out" | "atop" | "xor" | "arithmetic" | undefined;
2451
- k1?: number | string | undefined;
2452
- k2?: number | string | undefined;
2453
- k3?: number | string | undefined;
2454
- k4?: number | string | undefined;
2451
+ k1?: number | string | RemoveAttribute;
2452
+ k2?: number | string | RemoveAttribute;
2453
+ k3?: number | string | RemoveAttribute;
2454
+ k4?: number | string | RemoveAttribute;
2455
+ operator?: "over" | "in" | "out" | "atop" | "xor" | "arithmetic" | RemoveAttribute;
2455
2456
  }
2456
2457
  interface FeConvolveMatrixSVGAttributes<T>
2457
2458
  extends FilterPrimitiveElementSVGAttributes<T>,
2458
2459
  SingleInputFilterSVGAttributes,
2459
2460
  StylableSVGAttributes {
2460
- order?: number | string | undefined;
2461
- kernelMatrix?: string | undefined;
2462
- divisor?: number | string | undefined;
2463
- bias?: number | string | undefined;
2464
- targetX?: number | string | undefined;
2465
- targetY?: number | string | undefined;
2466
- edgeMode?: "duplicate" | "wrap" | "none" | undefined;
2467
- kernelUnitLength?: number | string | undefined;
2468
- preserveAlpha?: "true" | "false" | undefined;
2461
+ bias?: number | string | RemoveAttribute;
2462
+ divisor?: number | string | RemoveAttribute;
2463
+ edgeMode?: "duplicate" | "wrap" | "none" | RemoveAttribute;
2464
+ kernelMatrix?: string | RemoveAttribute;
2465
+ kernelUnitLength?: number | string | RemoveAttribute;
2466
+ order?: number | string | RemoveAttribute;
2467
+ preserveAlpha?: EnumeratedPseudoBoolean | RemoveAttribute;
2468
+ targetX?: number | string | RemoveAttribute;
2469
+ targetY?: number | string | RemoveAttribute;
2469
2470
  }
2470
2471
  interface FeDiffuseLightingSVGAttributes<T>
2471
2472
  extends FilterPrimitiveElementSVGAttributes<T>,
2472
2473
  SingleInputFilterSVGAttributes,
2473
2474
  StylableSVGAttributes,
2474
2475
  Pick<PresentationSVGAttributes, "color" | "lighting-color"> {
2475
- surfaceScale?: number | string | undefined;
2476
- diffuseConstant?: number | string | undefined;
2477
- kernelUnitLength?: number | string | undefined;
2476
+ diffuseConstant?: number | string | RemoveAttribute;
2477
+ kernelUnitLength?: number | string | RemoveAttribute;
2478
+ surfaceScale?: number | string | RemoveAttribute;
2478
2479
  }
2479
2480
  interface FeDisplacementMapSVGAttributes<T>
2480
2481
  extends FilterPrimitiveElementSVGAttributes<T>,
2481
2482
  DoubleInputFilterSVGAttributes,
2482
2483
  StylableSVGAttributes {
2483
- scale?: number | string | undefined;
2484
- xChannelSelector?: "R" | "G" | "B" | "A" | undefined;
2485
- yChannelSelector?: "R" | "G" | "B" | "A" | undefined;
2484
+ scale?: number | string | RemoveAttribute;
2485
+ xChannelSelector?: "R" | "G" | "B" | "A" | RemoveAttribute;
2486
+ yChannelSelector?: "R" | "G" | "B" | "A" | RemoveAttribute;
2486
2487
  }
2487
2488
  interface FeDistantLightSVGAttributes<T> extends LightSourceElementSVGAttributes<T> {
2488
- azimuth?: number | string | undefined;
2489
- elevation?: number | string | undefined;
2489
+ azimuth?: number | string | RemoveAttribute;
2490
+ elevation?: number | string | RemoveAttribute;
2490
2491
  }
2491
2492
  interface FeDropShadowSVGAttributes<T>
2492
- extends CoreSVGAttributes<T>,
2493
+ extends SVGAttributes<T>,
2493
2494
  FilterPrimitiveElementSVGAttributes<T>,
2494
2495
  StylableSVGAttributes,
2495
2496
  Pick<PresentationSVGAttributes, "color" | "flood-color" | "flood-opacity"> {
2496
- dx?: number | string | undefined;
2497
- dy?: number | string | undefined;
2498
- stdDeviation?: number | string | undefined;
2497
+ dx?: number | string | RemoveAttribute;
2498
+ dy?: number | string | RemoveAttribute;
2499
+ stdDeviation?: number | string | RemoveAttribute;
2499
2500
  }
2500
2501
  interface FeFloodSVGAttributes<T>
2501
2502
  extends FilterPrimitiveElementSVGAttributes<T>,
2502
2503
  StylableSVGAttributes,
2503
2504
  Pick<PresentationSVGAttributes, "color" | "flood-color" | "flood-opacity"> {}
2504
- interface FeFuncSVGAttributes<T> extends CoreSVGAttributes<T> {
2505
- type?: "identity" | "table" | "discrete" | "linear" | "gamma" | undefined;
2506
- tableValues?: string | undefined;
2507
- slope?: number | string | undefined;
2508
- intercept?: number | string | undefined;
2509
- amplitude?: number | string | undefined;
2510
- exponent?: number | string | undefined;
2511
- offset?: number | string | undefined;
2505
+ interface FeFuncSVGAttributes<T> extends SVGAttributes<T> {
2506
+ amplitude?: number | string | RemoveAttribute;
2507
+ exponent?: number | string | RemoveAttribute;
2508
+ intercept?: number | string | RemoveAttribute;
2509
+ offset?: number | string | RemoveAttribute;
2510
+ slope?: number | string | RemoveAttribute;
2511
+ tableValues?: string | RemoveAttribute;
2512
+ type?: "identity" | "table" | "discrete" | "linear" | "gamma" | RemoveAttribute;
2512
2513
  }
2513
2514
  interface FeGaussianBlurSVGAttributes<T>
2514
2515
  extends FilterPrimitiveElementSVGAttributes<T>,
2515
2516
  SingleInputFilterSVGAttributes,
2516
2517
  StylableSVGAttributes {
2517
- stdDeviation?: number | string | undefined;
2518
+ stdDeviation?: number | string | RemoveAttribute;
2518
2519
  }
2519
2520
  interface FeImageSVGAttributes<T>
2520
2521
  extends FilterPrimitiveElementSVGAttributes<T>,
2521
2522
  ExternalResourceSVGAttributes,
2522
2523
  StylableSVGAttributes {
2523
- preserveAspectRatio?: SVGPreserveAspectRatio | undefined;
2524
- href?: string | undefined;
2524
+ href?: string | RemoveAttribute;
2525
+ preserveAspectRatio?: SVGPreserveAspectRatio | RemoveAttribute;
2525
2526
  }
2526
2527
  interface FeMergeSVGAttributes<T>
2527
2528
  extends FilterPrimitiveElementSVGAttributes<T>,
2528
2529
  StylableSVGAttributes {}
2529
- interface FeMergeNodeSVGAttributes<T>
2530
- extends CoreSVGAttributes<T>,
2531
- SingleInputFilterSVGAttributes {}
2530
+ interface FeMergeNodeSVGAttributes<T> extends SVGAttributes<T>, SingleInputFilterSVGAttributes {}
2532
2531
  interface FeMorphologySVGAttributes<T>
2533
2532
  extends FilterPrimitiveElementSVGAttributes<T>,
2534
2533
  SingleInputFilterSVGAttributes,
2535
2534
  StylableSVGAttributes {
2536
- operator?: "erode" | "dilate" | undefined;
2537
- radius?: number | string | undefined;
2535
+ operator?: "erode" | "dilate" | RemoveAttribute;
2536
+ radius?: number | string | RemoveAttribute;
2538
2537
  }
2539
2538
  interface FeOffsetSVGAttributes<T>
2540
2539
  extends FilterPrimitiveElementSVGAttributes<T>,
2541
2540
  SingleInputFilterSVGAttributes,
2542
2541
  StylableSVGAttributes {
2543
- dx?: number | string | undefined;
2544
- dy?: number | string | undefined;
2542
+ dx?: number | string | RemoveAttribute;
2543
+ dy?: number | string | RemoveAttribute;
2545
2544
  }
2546
2545
  interface FePointLightSVGAttributes<T> extends LightSourceElementSVGAttributes<T> {
2547
- x?: number | string | undefined;
2548
- y?: number | string | undefined;
2549
- z?: number | string | undefined;
2546
+ x?: number | string | RemoveAttribute;
2547
+ y?: number | string | RemoveAttribute;
2548
+ z?: number | string | RemoveAttribute;
2550
2549
  }
2551
2550
  interface FeSpecularLightingSVGAttributes<T>
2552
2551
  extends FilterPrimitiveElementSVGAttributes<T>,
2553
2552
  SingleInputFilterSVGAttributes,
2554
2553
  StylableSVGAttributes,
2555
2554
  Pick<PresentationSVGAttributes, "color" | "lighting-color"> {
2556
- surfaceScale?: string | undefined;
2557
- specularConstant?: string | undefined;
2558
- specularExponent?: string | undefined;
2559
- kernelUnitLength?: number | string | undefined;
2555
+ kernelUnitLength?: number | string | RemoveAttribute;
2556
+ specularConstant?: string | RemoveAttribute;
2557
+ specularExponent?: string | RemoveAttribute;
2558
+ surfaceScale?: string | RemoveAttribute;
2560
2559
  }
2561
2560
  interface FeSpotLightSVGAttributes<T> extends LightSourceElementSVGAttributes<T> {
2562
- x?: number | string | undefined;
2563
- y?: number | string | undefined;
2564
- z?: number | string | undefined;
2565
- pointsAtX?: number | string | undefined;
2566
- pointsAtY?: number | string | undefined;
2567
- pointsAtZ?: number | string | undefined;
2568
- specularExponent?: number | string | undefined;
2569
- limitingConeAngle?: number | string | undefined;
2561
+ limitingConeAngle?: number | string | RemoveAttribute;
2562
+ pointsAtX?: number | string | RemoveAttribute;
2563
+ pointsAtY?: number | string | RemoveAttribute;
2564
+ pointsAtZ?: number | string | RemoveAttribute;
2565
+ specularExponent?: number | string | RemoveAttribute;
2566
+ x?: number | string | RemoveAttribute;
2567
+ y?: number | string | RemoveAttribute;
2568
+ z?: number | string | RemoveAttribute;
2570
2569
  }
2571
2570
  interface FeTileSVGAttributes<T>
2572
2571
  extends FilterPrimitiveElementSVGAttributes<T>,
@@ -2575,23 +2574,23 @@ export namespace JSX {
2575
2574
  interface FeTurbulanceSVGAttributes<T>
2576
2575
  extends FilterPrimitiveElementSVGAttributes<T>,
2577
2576
  StylableSVGAttributes {
2578
- baseFrequency?: number | string | undefined;
2579
- numOctaves?: number | string | undefined;
2580
- seed?: number | string | undefined;
2581
- stitchTiles?: "stitch" | "noStitch" | undefined;
2582
- type?: "fractalNoise" | "turbulence" | undefined;
2577
+ baseFrequency?: number | string | RemoveAttribute;
2578
+ numOctaves?: number | string | RemoveAttribute;
2579
+ seed?: number | string | RemoveAttribute;
2580
+ stitchTiles?: "stitch" | "noStitch" | RemoveAttribute;
2581
+ type?: "fractalNoise" | "turbulence" | RemoveAttribute;
2583
2582
  }
2584
2583
  interface FilterSVGAttributes<T>
2585
- extends CoreSVGAttributes<T>,
2584
+ extends SVGAttributes<T>,
2586
2585
  ExternalResourceSVGAttributes,
2587
2586
  StylableSVGAttributes {
2588
- filterUnits?: SVGUnits | undefined;
2589
- primitiveUnits?: SVGUnits | undefined;
2590
- x?: number | string | undefined;
2591
- y?: number | string | undefined;
2592
- width?: number | string | undefined;
2593
- height?: number | string | undefined;
2594
- filterRes?: number | string | undefined;
2587
+ filterRes?: number | string | RemoveAttribute;
2588
+ filterUnits?: SVGUnits | RemoveAttribute;
2589
+ height?: number | string | RemoveAttribute;
2590
+ primitiveUnits?: SVGUnits | RemoveAttribute;
2591
+ width?: number | string | RemoveAttribute;
2592
+ x?: number | string | RemoveAttribute;
2593
+ y?: number | string | RemoveAttribute;
2595
2594
  }
2596
2595
  interface ForeignObjectSVGAttributes<T>
2597
2596
  extends NewViewportSVGAttributes<T>,
@@ -2600,10 +2599,10 @@ export namespace JSX {
2600
2599
  StylableSVGAttributes,
2601
2600
  TransformableSVGAttributes,
2602
2601
  Pick<PresentationSVGAttributes, "display" | "visibility"> {
2603
- x?: number | string | undefined;
2604
- y?: number | string | undefined;
2605
- width?: number | string | undefined;
2606
- height?: number | string | undefined;
2602
+ height?: number | string | RemoveAttribute;
2603
+ width?: number | string | RemoveAttribute;
2604
+ x?: number | string | RemoveAttribute;
2605
+ y?: number | string | RemoveAttribute;
2607
2606
  }
2608
2607
  interface GSVGAttributes<T>
2609
2608
  extends ContainerElementSVGAttributes<T>,
@@ -2611,20 +2610,20 @@ export namespace JSX {
2611
2610
  ExternalResourceSVGAttributes,
2612
2611
  StylableSVGAttributes,
2613
2612
  TransformableSVGAttributes,
2614
- Pick<PresentationSVGAttributes, "display" | "visibility"> {}
2613
+ Pick<PresentationSVGAttributes, "clip-path" | "display" | "visibility"> {}
2615
2614
  interface ImageSVGAttributes<T>
2616
2615
  extends NewViewportSVGAttributes<T>,
2617
2616
  GraphicsElementSVGAttributes<T>,
2618
2617
  ConditionalProcessingSVGAttributes,
2619
2618
  StylableSVGAttributes,
2620
2619
  TransformableSVGAttributes,
2621
- Pick<PresentationSVGAttributes, "color-profile" | "image-rendering"> {
2622
- x?: number | string | undefined;
2623
- y?: number | string | undefined;
2624
- width?: number | string | undefined;
2625
- height?: number | string | undefined;
2626
- preserveAspectRatio?: ImagePreserveAspectRatio | undefined;
2627
- href?: string | undefined;
2620
+ Pick<PresentationSVGAttributes, "clip-path" | "color-profile" | "image-rendering"> {
2621
+ height?: number | string | RemoveAttribute;
2622
+ href?: string | RemoveAttribute;
2623
+ preserveAspectRatio?: ImagePreserveAspectRatio | RemoveAttribute;
2624
+ width?: number | string | RemoveAttribute;
2625
+ x?: number | string | RemoveAttribute;
2626
+ y?: number | string | RemoveAttribute;
2628
2627
  }
2629
2628
  interface LineSVGAttributes<T>
2630
2629
  extends GraphicsElementSVGAttributes<T>,
@@ -2633,45 +2632,46 @@ export namespace JSX {
2633
2632
  ExternalResourceSVGAttributes,
2634
2633
  StylableSVGAttributes,
2635
2634
  TransformableSVGAttributes,
2636
- Pick<PresentationSVGAttributes, "marker-start" | "marker-mid" | "marker-end"> {
2637
- x1?: number | string | undefined;
2638
- y1?: number | string | undefined;
2639
- x2?: number | string | undefined;
2640
- y2?: number | string | undefined;
2635
+ Pick<PresentationSVGAttributes, "clip-path" | "marker-start" | "marker-mid" | "marker-end"> {
2636
+ x1?: number | string | RemoveAttribute;
2637
+ x2?: number | string | RemoveAttribute;
2638
+ y1?: number | string | RemoveAttribute;
2639
+ y2?: number | string | RemoveAttribute;
2641
2640
  }
2642
2641
  interface LinearGradientSVGAttributes<T> extends GradientElementSVGAttributes<T> {
2643
- x1?: number | string | undefined;
2644
- x2?: number | string | undefined;
2645
- y1?: number | string | undefined;
2646
- y2?: number | string | undefined;
2642
+ x1?: number | string | RemoveAttribute;
2643
+ x2?: number | string | RemoveAttribute;
2644
+ y1?: number | string | RemoveAttribute;
2645
+ y2?: number | string | RemoveAttribute;
2647
2646
  }
2648
2647
  interface MarkerSVGAttributes<T>
2649
2648
  extends ContainerElementSVGAttributes<T>,
2650
2649
  ExternalResourceSVGAttributes,
2651
2650
  StylableSVGAttributes,
2652
2651
  FitToViewBoxSVGAttributes,
2653
- Pick<PresentationSVGAttributes, "overflow" | "clip"> {
2654
- markerUnits?: "strokeWidth" | "userSpaceOnUse" | undefined;
2655
- refX?: number | string | undefined;
2656
- refY?: number | string | undefined;
2657
- markerWidth?: number | string | undefined;
2658
- markerHeight?: number | string | undefined;
2659
- orient?: string | undefined;
2652
+ Pick<PresentationSVGAttributes, "clip-path" | "overflow" | "clip"> {
2653
+ markerHeight?: number | string | RemoveAttribute;
2654
+ markerUnits?: "strokeWidth" | "userSpaceOnUse" | RemoveAttribute;
2655
+ markerWidth?: number | string | RemoveAttribute;
2656
+ orient?: string | RemoveAttribute;
2657
+ refX?: number | string | RemoveAttribute;
2658
+ refY?: number | string | RemoveAttribute;
2660
2659
  }
2661
2660
  interface MaskSVGAttributes<T>
2662
2661
  extends Omit<ContainerElementSVGAttributes<T>, "opacity" | "filter">,
2663
2662
  ConditionalProcessingSVGAttributes,
2664
2663
  ExternalResourceSVGAttributes,
2665
- StylableSVGAttributes {
2666
- maskUnits?: SVGUnits | undefined;
2667
- maskContentUnits?: SVGUnits | undefined;
2668
- x?: number | string | undefined;
2669
- y?: number | string | undefined;
2670
- width?: number | string | undefined;
2671
- height?: number | string | undefined;
2672
- }
2673
- interface MetadataSVGAttributes<T> extends CoreSVGAttributes<T> {}
2674
- interface MPathSVGAttributes<T> extends CoreSVGAttributes<T> {}
2664
+ StylableSVGAttributes,
2665
+ Pick<PresentationSVGAttributes, "clip-path"> {
2666
+ height?: number | string | RemoveAttribute;
2667
+ maskContentUnits?: SVGUnits | RemoveAttribute;
2668
+ maskUnits?: SVGUnits | RemoveAttribute;
2669
+ width?: number | string | RemoveAttribute;
2670
+ x?: number | string | RemoveAttribute;
2671
+ y?: number | string | RemoveAttribute;
2672
+ }
2673
+ interface MetadataSVGAttributes<T> extends SVGAttributes<T> {}
2674
+ interface MPathSVGAttributes<T> extends SVGAttributes<T> {}
2675
2675
  interface PathSVGAttributes<T>
2676
2676
  extends GraphicsElementSVGAttributes<T>,
2677
2677
  ShapeElementSVGAttributes<T>,
@@ -2679,9 +2679,9 @@ export namespace JSX {
2679
2679
  ExternalResourceSVGAttributes,
2680
2680
  StylableSVGAttributes,
2681
2681
  TransformableSVGAttributes,
2682
- Pick<PresentationSVGAttributes, "marker-start" | "marker-mid" | "marker-end"> {
2683
- d?: string | undefined;
2684
- pathLength?: number | string | undefined;
2682
+ Pick<PresentationSVGAttributes, "clip-path" | "marker-start" | "marker-mid" | "marker-end"> {
2683
+ d?: string | RemoveAttribute;
2684
+ pathLength?: number | string | RemoveAttribute;
2685
2685
  }
2686
2686
  interface PatternSVGAttributes<T>
2687
2687
  extends ContainerElementSVGAttributes<T>,
@@ -2689,15 +2689,15 @@ export namespace JSX {
2689
2689
  ExternalResourceSVGAttributes,
2690
2690
  StylableSVGAttributes,
2691
2691
  FitToViewBoxSVGAttributes,
2692
- Pick<PresentationSVGAttributes, "overflow" | "clip"> {
2693
- x?: number | string | undefined;
2694
- y?: number | string | undefined;
2695
- width?: number | string | undefined;
2696
- height?: number | string | undefined;
2697
- patternUnits?: SVGUnits | undefined;
2698
- patternContentUnits?: SVGUnits | undefined;
2699
- patternTransform?: string | undefined;
2700
- href?: string | undefined;
2692
+ Pick<PresentationSVGAttributes, "clip-path" | "overflow" | "clip"> {
2693
+ height?: number | string | RemoveAttribute;
2694
+ href?: string | RemoveAttribute;
2695
+ patternContentUnits?: SVGUnits | RemoveAttribute;
2696
+ patternTransform?: string | RemoveAttribute;
2697
+ patternUnits?: SVGUnits | RemoveAttribute;
2698
+ width?: number | string | RemoveAttribute;
2699
+ x?: number | string | RemoveAttribute;
2700
+ y?: number | string | RemoveAttribute;
2701
2701
  }
2702
2702
  interface PolygonSVGAttributes<T>
2703
2703
  extends GraphicsElementSVGAttributes<T>,
@@ -2706,8 +2706,8 @@ export namespace JSX {
2706
2706
  ExternalResourceSVGAttributes,
2707
2707
  StylableSVGAttributes,
2708
2708
  TransformableSVGAttributes,
2709
- Pick<PresentationSVGAttributes, "marker-start" | "marker-mid" | "marker-end"> {
2710
- points?: string | undefined;
2709
+ Pick<PresentationSVGAttributes, "clip-path" | "marker-start" | "marker-mid" | "marker-end"> {
2710
+ points?: string | RemoveAttribute;
2711
2711
  }
2712
2712
  interface PolylineSVGAttributes<T>
2713
2713
  extends GraphicsElementSVGAttributes<T>,
@@ -2716,15 +2716,15 @@ export namespace JSX {
2716
2716
  ExternalResourceSVGAttributes,
2717
2717
  StylableSVGAttributes,
2718
2718
  TransformableSVGAttributes,
2719
- Pick<PresentationSVGAttributes, "marker-start" | "marker-mid" | "marker-end"> {
2720
- points?: string | undefined;
2719
+ Pick<PresentationSVGAttributes, "clip-path" | "marker-start" | "marker-mid" | "marker-end"> {
2720
+ points?: string | RemoveAttribute;
2721
2721
  }
2722
2722
  interface RadialGradientSVGAttributes<T> extends GradientElementSVGAttributes<T> {
2723
- cx?: number | string | undefined;
2724
- cy?: number | string | undefined;
2725
- r?: number | string | undefined;
2726
- fx?: number | string | undefined;
2727
- fy?: number | string | undefined;
2723
+ cx?: number | string | RemoveAttribute;
2724
+ cy?: number | string | RemoveAttribute;
2725
+ fx?: number | string | RemoveAttribute;
2726
+ fy?: number | string | RemoveAttribute;
2727
+ r?: number | string | RemoveAttribute;
2728
2728
  }
2729
2729
  interface RectSVGAttributes<T>
2730
2730
  extends GraphicsElementSVGAttributes<T>,
@@ -2732,23 +2732,24 @@ export namespace JSX {
2732
2732
  ConditionalProcessingSVGAttributes,
2733
2733
  ExternalResourceSVGAttributes,
2734
2734
  StylableSVGAttributes,
2735
- TransformableSVGAttributes {
2736
- x?: number | string | undefined;
2737
- y?: number | string | undefined;
2738
- width?: number | string | undefined;
2739
- height?: number | string | undefined;
2740
- rx?: number | string | undefined;
2741
- ry?: number | string | undefined;
2735
+ TransformableSVGAttributes,
2736
+ Pick<PresentationSVGAttributes, "clip-path"> {
2737
+ height?: number | string | RemoveAttribute;
2738
+ rx?: number | string | RemoveAttribute;
2739
+ ry?: number | string | RemoveAttribute;
2740
+ width?: number | string | RemoveAttribute;
2741
+ x?: number | string | RemoveAttribute;
2742
+ y?: number | string | RemoveAttribute;
2742
2743
  }
2743
2744
  interface SetSVGAttributes<T>
2744
- extends CoreSVGAttributes<T>,
2745
+ extends AnimationElementSVGAttributes<T>,
2745
2746
  StylableSVGAttributes,
2746
2747
  AnimationTimingSVGAttributes {}
2747
2748
  interface StopSVGAttributes<T>
2748
- extends CoreSVGAttributes<T>,
2749
+ extends SVGAttributes<T>,
2749
2750
  StylableSVGAttributes,
2750
2751
  Pick<PresentationSVGAttributes, "color" | "stop-color" | "stop-opacity"> {
2751
- offset?: number | string | undefined;
2752
+ offset?: number | string | RemoveAttribute;
2752
2753
  }
2753
2754
  interface SvgSVGAttributes<T>
2754
2755
  extends ContainerElementSVGAttributes<T>,
@@ -2758,20 +2759,20 @@ export namespace JSX {
2758
2759
  StylableSVGAttributes,
2759
2760
  FitToViewBoxSVGAttributes,
2760
2761
  ZoomAndPanSVGAttributes,
2761
- PresentationSVGAttributes {
2762
- "xmlns:xlink"?: string | undefined;
2763
- contentScriptType?: string | undefined;
2764
- contentStyleType?: string | undefined;
2765
- height?: number | string | undefined;
2766
- width?: number | string | undefined;
2767
- x?: number | string | undefined;
2768
- xmlns?: string | undefined;
2769
- y?: number | string | undefined;
2762
+ PresentationSVGAttributes,
2763
+ EventHandlersWindow<T> {
2764
+ "xmlns:xlink"?: string | RemoveAttribute;
2765
+ contentScriptType?: string | RemoveAttribute;
2766
+ contentStyleType?: string | RemoveAttribute;
2767
+ height?: number | string | RemoveAttribute;
2768
+ width?: number | string | RemoveAttribute;
2769
+ x?: number | string | RemoveAttribute;
2770
+ y?: number | string | RemoveAttribute;
2770
2771
 
2771
2772
  /** @deprecated */
2772
- baseProfile?: string | undefined;
2773
+ baseProfile?: string | RemoveAttribute;
2773
2774
  /** @deprecated */
2774
- version?: string | undefined;
2775
+ version?: string | RemoveAttribute;
2775
2776
  }
2776
2777
  interface SwitchSVGAttributes<T>
2777
2778
  extends ContainerElementSVGAttributes<T>,
@@ -2785,15 +2786,16 @@ export namespace JSX {
2785
2786
  NewViewportSVGAttributes<T>,
2786
2787
  ExternalResourceSVGAttributes,
2787
2788
  StylableSVGAttributes,
2788
- FitToViewBoxSVGAttributes {
2789
- width?: number | string | undefined;
2790
- height?: number | string | undefined;
2791
- preserveAspectRatio?: SVGPreserveAspectRatio | undefined;
2792
- refX?: number | string | undefined;
2793
- refY?: number | string | undefined;
2794
- viewBox?: string | undefined;
2795
- x?: number | string | undefined;
2796
- y?: number | string | undefined;
2789
+ FitToViewBoxSVGAttributes,
2790
+ Pick<PresentationSVGAttributes, "clip-path"> {
2791
+ height?: number | string | RemoveAttribute;
2792
+ preserveAspectRatio?: SVGPreserveAspectRatio | RemoveAttribute;
2793
+ refX?: number | string | RemoveAttribute;
2794
+ refY?: number | string | RemoveAttribute;
2795
+ viewBox?: string | RemoveAttribute;
2796
+ width?: number | string | RemoveAttribute;
2797
+ x?: number | string | RemoveAttribute;
2798
+ y?: number | string | RemoveAttribute;
2797
2799
  }
2798
2800
  interface TextSVGAttributes<T>
2799
2801
  extends TextContentElementSVGAttributes<T>,
@@ -2802,14 +2804,14 @@ export namespace JSX {
2802
2804
  ExternalResourceSVGAttributes,
2803
2805
  StylableSVGAttributes,
2804
2806
  TransformableSVGAttributes,
2805
- Pick<PresentationSVGAttributes, "writing-mode" | "text-rendering"> {
2806
- x?: number | string | undefined;
2807
- y?: number | string | undefined;
2808
- dx?: number | string | undefined;
2809
- dy?: number | string | undefined;
2810
- rotate?: number | string | undefined;
2811
- textLength?: number | string | undefined;
2812
- lengthAdjust?: "spacing" | "spacingAndGlyphs" | undefined;
2807
+ Pick<PresentationSVGAttributes, "clip-path" | "writing-mode" | "text-rendering"> {
2808
+ dx?: number | string | RemoveAttribute;
2809
+ dy?: number | string | RemoveAttribute;
2810
+ lengthAdjust?: "spacing" | "spacingAndGlyphs" | RemoveAttribute;
2811
+ rotate?: number | string | RemoveAttribute;
2812
+ textLength?: number | string | RemoveAttribute;
2813
+ x?: number | string | RemoveAttribute;
2814
+ y?: number | string | RemoveAttribute;
2813
2815
  }
2814
2816
  interface TextPathSVGAttributes<T>
2815
2817
  extends TextContentElementSVGAttributes<T>,
@@ -2820,10 +2822,10 @@ export namespace JSX {
2820
2822
  PresentationSVGAttributes,
2821
2823
  "alignment-baseline" | "baseline-shift" | "display" | "visibility"
2822
2824
  > {
2823
- startOffset?: number | string | undefined;
2824
- method?: "align" | "stretch" | undefined;
2825
- spacing?: "auto" | "exact" | undefined;
2826
- href?: string | undefined;
2825
+ href?: string | RemoveAttribute;
2826
+ method?: "align" | "stretch" | RemoveAttribute;
2827
+ spacing?: "auto" | "exact" | RemoveAttribute;
2828
+ startOffset?: number | string | RemoveAttribute;
2827
2829
  }
2828
2830
  interface TSpanSVGAttributes<T>
2829
2831
  extends TextContentElementSVGAttributes<T>,
@@ -2834,95 +2836,83 @@ export namespace JSX {
2834
2836
  PresentationSVGAttributes,
2835
2837
  "alignment-baseline" | "baseline-shift" | "display" | "visibility"
2836
2838
  > {
2837
- x?: number | string | undefined;
2838
- y?: number | string | undefined;
2839
- dx?: number | string | undefined;
2840
- dy?: number | string | undefined;
2841
- rotate?: number | string | undefined;
2842
- textLength?: number | string | undefined;
2843
- lengthAdjust?: "spacing" | "spacingAndGlyphs" | undefined;
2839
+ dx?: number | string | RemoveAttribute;
2840
+ dy?: number | string | RemoveAttribute;
2841
+ lengthAdjust?: "spacing" | "spacingAndGlyphs" | RemoveAttribute;
2842
+ rotate?: number | string | RemoveAttribute;
2843
+ textLength?: number | string | RemoveAttribute;
2844
+ x?: number | string | RemoveAttribute;
2845
+ y?: number | string | RemoveAttribute;
2844
2846
  }
2845
2847
  /** @see https://developer.mozilla.org/en-US/docs/Web/SVG/Element/use */
2846
2848
  interface UseSVGAttributes<T>
2847
- extends CoreSVGAttributes<T>,
2849
+ extends SVGAttributes<T>,
2848
2850
  StylableSVGAttributes,
2849
2851
  ConditionalProcessingSVGAttributes,
2850
2852
  GraphicsElementSVGAttributes<T>,
2851
2853
  PresentationSVGAttributes,
2852
2854
  ExternalResourceSVGAttributes,
2853
2855
  TransformableSVGAttributes {
2854
- x?: number | string | undefined;
2855
- y?: number | string | undefined;
2856
- width?: number | string | undefined;
2857
- height?: number | string | undefined;
2858
- href?: string | undefined;
2856
+ height?: number | string | RemoveAttribute;
2857
+ href?: string | RemoveAttribute;
2858
+ width?: number | string | RemoveAttribute;
2859
+ x?: number | string | RemoveAttribute;
2860
+ y?: number | string | RemoveAttribute;
2859
2861
  }
2860
2862
  interface ViewSVGAttributes<T>
2861
- extends CoreSVGAttributes<T>,
2863
+ extends SVGAttributes<T>,
2862
2864
  ExternalResourceSVGAttributes,
2863
2865
  FitToViewBoxSVGAttributes,
2864
2866
  ZoomAndPanSVGAttributes {
2865
- viewTarget?: string | undefined;
2867
+ viewTarget?: string | RemoveAttribute;
2866
2868
  }
2867
2869
 
2868
- interface MathMLAttributes<T> extends HTMLAttributes<T> {
2869
- displaystyle?: "true" | boolean | undefined;
2870
- /** @deprecated */
2871
- href?: string | undefined;
2872
- /** @deprecated */
2873
- mathbackground?: string | undefined;
2874
- /** @deprecated */
2875
- mathcolor?: string | undefined;
2876
- /** @deprecated */
2877
- mathsize?: string | undefined;
2878
- nonce?: string | undefined;
2879
- scriptlevel?: string | undefined;
2880
- }
2870
+ // MATH
2881
2871
 
2882
2872
  interface MathMLAnnotationElementAttributes<T> extends MathMLAttributes<T> {
2883
- encoding?: string | undefined;
2873
+ encoding?: string | RemoveAttribute;
2884
2874
 
2885
2875
  /** @deprecated */
2886
- src?: string | undefined;
2876
+ src?: string | RemoveAttribute;
2887
2877
  }
2888
2878
  interface MathMLAnnotationXmlElementAttributes<T> extends MathMLAttributes<T> {
2889
- encoding?: string | undefined;
2879
+ encoding?: string | RemoveAttribute;
2890
2880
 
2891
2881
  /** @deprecated */
2892
- src?: string | undefined;
2882
+ src?: string | RemoveAttribute;
2893
2883
  }
2894
2884
  interface MathMLMactionElementAttributes<T> extends MathMLAttributes<T> {
2895
2885
  /**
2896
2886
  * @deprecated
2897
2887
  * @non-standard
2898
2888
  */
2899
- actiontype?: "statusline" | "toggle" | undefined;
2889
+ actiontype?: "statusline" | "toggle" | RemoveAttribute;
2900
2890
  /**
2901
2891
  * @deprecated
2902
2892
  * @non-standard
2903
2893
  */
2904
- selection?: string | undefined;
2894
+ selection?: string | RemoveAttribute;
2905
2895
  }
2906
2896
  interface MathMLMathElementAttributes<T> extends MathMLAttributes<T> {
2907
- display?: "block" | "inline" | undefined;
2897
+ display?: "block" | "inline" | RemoveAttribute;
2908
2898
  }
2909
2899
  interface MathMLMerrorElementAttributes<T> extends MathMLAttributes<T> {}
2910
2900
  interface MathMLMfracElementAttributes<T> extends MathMLAttributes<T> {
2911
- linethickness?: string | undefined;
2901
+ linethickness?: string | RemoveAttribute;
2912
2902
 
2913
2903
  /**
2914
2904
  * @deprecated
2915
2905
  * @non-standard
2916
2906
  */
2917
- denomalign?: "center" | "left" | "right" | undefined;
2907
+ denomalign?: "center" | "left" | "right" | RemoveAttribute;
2918
2908
  /**
2919
2909
  * @deprecated
2920
2910
  * @non-standard
2921
2911
  */
2922
- numalign?: "center" | "left" | "right" | undefined;
2912
+ numalign?: "center" | "left" | "right" | RemoveAttribute;
2923
2913
  }
2924
2914
  interface MathMLMiElementAttributes<T> extends MathMLAttributes<T> {
2925
- mathvariant?: "normal" | undefined;
2915
+ mathvariant?: "normal" | RemoveAttribute;
2926
2916
  }
2927
2917
 
2928
2918
  interface MathMLMmultiscriptsElementAttributes<T> extends MathMLAttributes<T> {
@@ -2930,39 +2920,39 @@ export namespace JSX {
2930
2920
  * @deprecated
2931
2921
  * @non-standard
2932
2922
  */
2933
- subscriptshift?: string | undefined;
2923
+ subscriptshift?: string | RemoveAttribute;
2934
2924
  /**
2935
2925
  * @deprecated
2936
2926
  * @non-standard
2937
2927
  */
2938
- superscriptshift?: string | undefined;
2928
+ superscriptshift?: string | RemoveAttribute;
2939
2929
  }
2940
2930
  interface MathMLMnElementAttributes<T> extends MathMLAttributes<T> {}
2941
2931
  interface MathMLMoElementAttributes<T> extends MathMLAttributes<T> {
2942
- fence?: "true" | boolean | undefined;
2943
- form?: "prefix" | "infix" | "postfix" | undefined;
2944
- largeop?: "true" | boolean | undefined;
2945
- lspace?: string | undefined;
2946
- maxsize?: string | undefined;
2947
- minsize?: string | undefined;
2948
- movablelimits?: "true" | boolean | undefined;
2949
- rspace?: string | undefined;
2950
- separator?: "true" | boolean | undefined;
2951
- stretchy?: "true" | boolean | undefined;
2952
- symmetric?: "true" | boolean | undefined;
2932
+ fence?: BooleanAttribute | RemoveAttribute;
2933
+ form?: "prefix" | "infix" | "postfix" | RemoveAttribute;
2934
+ largeop?: BooleanAttribute | RemoveAttribute;
2935
+ lspace?: string | RemoveAttribute;
2936
+ maxsize?: string | RemoveAttribute;
2937
+ minsize?: string | RemoveAttribute;
2938
+ movablelimits?: BooleanAttribute | RemoveAttribute;
2939
+ rspace?: string | RemoveAttribute;
2940
+ separator?: BooleanAttribute | RemoveAttribute;
2941
+ stretchy?: BooleanAttribute | RemoveAttribute;
2942
+ symmetric?: BooleanAttribute | RemoveAttribute;
2953
2943
 
2954
2944
  /** @non-standard */
2955
- accent?: "true" | boolean | undefined;
2945
+ accent?: BooleanAttribute | RemoveAttribute;
2956
2946
  }
2957
2947
  interface MathMLMoverElementAttributes<T> extends MathMLAttributes<T> {
2958
- accent?: "true" | boolean | undefined;
2948
+ accent?: BooleanAttribute | RemoveAttribute;
2959
2949
  }
2960
2950
  interface MathMLMpaddedElementAttributes<T> extends MathMLAttributes<T> {
2961
- depth?: string | undefined;
2962
- height?: string | undefined;
2963
- lspace?: string | undefined;
2964
- voffset?: string | undefined;
2965
- width?: string | undefined;
2951
+ depth?: string | RemoveAttribute;
2952
+ height?: string | RemoveAttribute;
2953
+ lspace?: string | RemoveAttribute;
2954
+ voffset?: string | RemoveAttribute;
2955
+ width?: string | RemoveAttribute;
2966
2956
  }
2967
2957
  interface MathMLMphantomElementAttributes<T> extends MathMLAttributes<T> {}
2968
2958
  interface MathMLMprescriptsElementAttributes<T> extends MathMLAttributes<T> {}
@@ -2970,14 +2960,14 @@ export namespace JSX {
2970
2960
  interface MathMLMrowElementAttributes<T> extends MathMLAttributes<T> {}
2971
2961
  interface MathMLMsElementAttributes<T> extends MathMLAttributes<T> {
2972
2962
  /** @deprecated */
2973
- lquote?: string | undefined;
2963
+ lquote?: string | RemoveAttribute;
2974
2964
  /** @deprecated */
2975
- rquote?: string | undefined;
2965
+ rquote?: string | RemoveAttribute;
2976
2966
  }
2977
2967
  interface MathMLMspaceElementAttributes<T> extends MathMLAttributes<T> {
2978
- depth?: string | undefined;
2979
- height?: string | undefined;
2980
- width?: string | undefined;
2968
+ depth?: string | RemoveAttribute;
2969
+ height?: string | RemoveAttribute;
2970
+ width?: string | RemoveAttribute;
2981
2971
  }
2982
2972
  interface MathMLMsqrtElementAttributes<T> extends MathMLAttributes<T> {}
2983
2973
  interface MathMLMstyleElementAttributes<T> extends MathMLAttributes<T> {
@@ -2985,117 +2975,117 @@ export namespace JSX {
2985
2975
  * @deprecated
2986
2976
  * @non-standard
2987
2977
  */
2988
- background?: string | undefined;
2978
+ background?: string | RemoveAttribute;
2989
2979
  /**
2990
2980
  * @deprecated
2991
2981
  * @non-standard
2992
2982
  */
2993
- color?: string | undefined;
2983
+ color?: string | RemoveAttribute;
2994
2984
  /**
2995
2985
  * @deprecated
2996
2986
  * @non-standard
2997
2987
  */
2998
- fontsize?: string | undefined;
2988
+ fontsize?: string | RemoveAttribute;
2999
2989
  /**
3000
2990
  * @deprecated
3001
2991
  * @non-standard
3002
2992
  */
3003
- fontstyle?: string | undefined;
2993
+ fontstyle?: string | RemoveAttribute;
3004
2994
  /**
3005
2995
  * @deprecated
3006
2996
  * @non-standard
3007
2997
  */
3008
- fontweight?: string | undefined;
2998
+ fontweight?: string | RemoveAttribute;
3009
2999
 
3010
3000
  /** @deprecated */
3011
- scriptminsize?: string | undefined;
3001
+ scriptminsize?: string | RemoveAttribute;
3012
3002
  /** @deprecated */
3013
- scriptsizemultiplier?: string | undefined;
3003
+ scriptsizemultiplier?: string | RemoveAttribute;
3014
3004
  }
3015
3005
  interface MathMLMsubElementAttributes<T> extends MathMLAttributes<T> {
3016
3006
  /**
3017
3007
  * @deprecated
3018
3008
  * @non-standard
3019
3009
  */
3020
- subscriptshift?: string | undefined;
3010
+ subscriptshift?: string | RemoveAttribute;
3021
3011
  }
3022
3012
  interface MathMLMsubsupElementAttributes<T> extends MathMLAttributes<T> {
3023
3013
  /**
3024
3014
  * @deprecated
3025
3015
  * @non-standard
3026
3016
  */
3027
- subscriptshift?: string | undefined;
3017
+ subscriptshift?: string | RemoveAttribute;
3028
3018
  /**
3029
3019
  * @deprecated
3030
3020
  * @non-standard
3031
3021
  */
3032
- superscriptshift?: string | undefined;
3022
+ superscriptshift?: string | RemoveAttribute;
3033
3023
  }
3034
3024
  interface MathMLMsupElementAttributes<T> extends MathMLAttributes<T> {
3035
3025
  /**
3036
3026
  * @deprecated
3037
3027
  * @non-standard
3038
3028
  */
3039
- superscriptshift?: string | undefined;
3029
+ superscriptshift?: string | RemoveAttribute;
3040
3030
  }
3041
3031
  interface MathMLMtableElementAttributes<T> extends MathMLAttributes<T> {
3042
3032
  /** @non-standard */
3043
- align?: "axis" | "baseline" | "bottom" | "center" | "top" | undefined;
3033
+ align?: "axis" | "baseline" | "bottom" | "center" | "top" | RemoveAttribute;
3044
3034
  /** @non-standard */
3045
- columnalign?: "center" | "left" | "right" | undefined;
3035
+ columnalign?: "center" | "left" | "right" | RemoveAttribute;
3046
3036
  /** @non-standard */
3047
- columnlines?: "dashed" | "none" | "solid" | undefined;
3037
+ columnlines?: "dashed" | "none" | "solid" | RemoveAttribute;
3048
3038
  /** @non-standard */
3049
- columnspacing?: string | undefined;
3039
+ columnspacing?: string | RemoveAttribute;
3050
3040
  /** @non-standard */
3051
- frame?: "dashed" | "none" | "solid" | undefined;
3041
+ frame?: "dashed" | "none" | "solid" | RemoveAttribute;
3052
3042
  /** @non-standard */
3053
- framespacing?: string | undefined;
3043
+ framespacing?: string | RemoveAttribute;
3054
3044
  /** @non-standard */
3055
- rowalign?: "axis" | "baseline" | "bottom" | "center" | "top" | undefined;
3045
+ rowalign?: "axis" | "baseline" | "bottom" | "center" | "top" | RemoveAttribute;
3056
3046
  /** @non-standard */
3057
- rowlines?: "dashed" | "none" | "solid" | undefined;
3047
+ rowlines?: "dashed" | "none" | "solid" | RemoveAttribute;
3058
3048
  /** @non-standard */
3059
- rowspacing?: string | undefined;
3049
+ rowspacing?: string | RemoveAttribute;
3060
3050
  /** @non-standard */
3061
- width?: string | undefined;
3051
+ width?: string | RemoveAttribute;
3062
3052
  }
3063
3053
  interface MathMLMtdElementAttributes<T> extends MathMLAttributes<T> {
3064
- columnspan?: number | string | undefined;
3065
- rowspan?: number | string | undefined;
3054
+ columnspan?: number | string | RemoveAttribute;
3055
+ rowspan?: number | string | RemoveAttribute;
3066
3056
  /** @non-standard */
3067
- columnalign?: "center" | "left" | "right" | undefined;
3057
+ columnalign?: "center" | "left" | "right" | RemoveAttribute;
3068
3058
  /** @non-standard */
3069
- rowalign?: "axis" | "baseline" | "bottom" | "center" | "top" | undefined;
3059
+ rowalign?: "axis" | "baseline" | "bottom" | "center" | "top" | RemoveAttribute;
3070
3060
  }
3071
3061
  interface MathMLMtextElementAttributes<T> extends MathMLAttributes<T> {}
3072
3062
  interface MathMLMtrElementAttributes<T> extends MathMLAttributes<T> {
3073
3063
  /** @non-standard */
3074
- columnalign?: "center" | "left" | "right" | undefined;
3064
+ columnalign?: "center" | "left" | "right" | RemoveAttribute;
3075
3065
  /** @non-standard */
3076
- rowalign?: "axis" | "baseline" | "bottom" | "center" | "top" | undefined;
3066
+ rowalign?: "axis" | "baseline" | "bottom" | "center" | "top" | RemoveAttribute;
3077
3067
  }
3078
3068
  interface MathMLMunderElementAttributes<T> extends MathMLAttributes<T> {
3079
- accentunder?: "true" | boolean | undefined;
3069
+ accentunder?: BooleanAttribute | RemoveAttribute;
3080
3070
  }
3081
3071
  interface MathMLMunderoverElementAttributes<T> extends MathMLAttributes<T> {
3082
- accent?: "true" | boolean | undefined;
3083
- accentunder?: "true" | boolean | undefined;
3072
+ accent?: BooleanAttribute | RemoveAttribute;
3073
+ accentunder?: BooleanAttribute | RemoveAttribute;
3084
3074
  }
3085
3075
  interface MathMLSemanticsElementAttributes<T> extends MathMLAttributes<T> {}
3086
3076
 
3087
- /* MathMLDeprecatedElements */
3088
-
3089
3077
  interface MathMLMencloseElementAttributes<T> extends MathMLAttributes<T> {
3090
3078
  /** @non-standard */
3091
- notation?: string | undefined;
3079
+ notation?: string | RemoveAttribute;
3092
3080
  }
3093
3081
  interface MathMLMfencedElementAttributes<T> extends MathMLAttributes<T> {
3094
- close?: string | undefined;
3095
- open?: string | undefined;
3096
- separators?: string | undefined;
3082
+ close?: string | RemoveAttribute;
3083
+ open?: string | RemoveAttribute;
3084
+ separators?: string | RemoveAttribute;
3097
3085
  }
3098
3086
 
3087
+ // TAGS
3088
+
3099
3089
  /** @type {HTMLElementTagNameMap} */
3100
3090
  interface HTMLElementTags {
3101
3091
  /**
@@ -3152,7 +3142,7 @@ export namespace JSX {
3152
3142
  * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bdo
3153
3143
  * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement
3154
3144
  */
3155
- bdo: HTMLAttributes<HTMLElement>;
3145
+ bdo: BdoHTMLAttributes<HTMLElement>;
3156
3146
  /**
3157
3147
  * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote
3158
3148
  * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLQuoteElement
@@ -3162,7 +3152,7 @@ export namespace JSX {
3162
3152
  * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/body
3163
3153
  * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement
3164
3154
  */
3165
- body: HTMLAttributes<HTMLBodyElement>;
3155
+ body: BodyHTMLAttributes<HTMLBodyElement>;
3166
3156
  /**
3167
3157
  * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/br
3168
3158
  * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLBRElement
@@ -3182,7 +3172,7 @@ export namespace JSX {
3182
3172
  * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption
3183
3173
  * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCaptionElement
3184
3174
  */
3185
- caption: HTMLAttributes<HTMLTableCaptionElement>;
3175
+ caption: CaptionHTMLAttributes<HTMLTableCaptionElement>;
3186
3176
  /**
3187
3177
  * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/cite
3188
3178
  * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement
@@ -3681,12 +3671,6 @@ export namespace JSX {
3681
3671
  * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLUnknownElement
3682
3672
  */
3683
3673
  menuitem: HTMLAttributes<HTMLUnknownElement>;
3684
- /**
3685
- * @deprecated
3686
- * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/xxxxx
3687
- * @url https://developer.mozilla.org/en-US/docs/Web/API/HTMLUnknownElement
3688
- */
3689
- noindex: HTMLAttributes<HTMLUnknownElement>;
3690
3674
  /**
3691
3675
  * @deprecated
3692
3676
  * @url https://developer.mozilla.org/en-US/docs/Web/HTML/Element/param