solid-js 1.9.11 → 2.0.0-beta.0

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