@praxisjs/jsx 0.6.0 → 0.6.1

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.
@@ -30,41 +30,41 @@ export type CSSProperties = {
30
30
  } & Record<`--${string}`, string | number | undefined>;
31
31
  export interface AriaAttributes {
32
32
  /** Identifies the currently active element when DOM focus is on a composite widget, combobox, textbox, group, or application. */
33
- "aria-activedescendant"?: string;
33
+ "aria-activedescendant"?: Reactive<string>;
34
34
  /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */
35
35
  "aria-atomic"?: Reactive<Booleanish>;
36
36
  /** Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for a combobox, searchbox, or textbox and specifies how predictions would be presented. */
37
- "aria-autocomplete"?: LiteralUnion<"none" | "inline" | "list" | "both">;
37
+ "aria-autocomplete"?: Reactive<LiteralUnion<"none" | "inline" | "list" | "both">>;
38
38
  /** Indicates an element's "busy" status. */
39
39
  "aria-busy"?: Reactive<Booleanish>;
40
40
  /** Indicates the current "checked" state of checkboxes, radio buttons, and other widgets. */
41
41
  "aria-checked"?: Reactive<Booleanish | LiteralUnion<"mixed">>;
42
42
  /** Defines the total number of columns in a table, grid, or treegrid. */
43
- "aria-colcount"?: number;
43
+ "aria-colcount"?: Reactive<number>;
44
44
  /** Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid. */
45
- "aria-colindex"?: number;
45
+ "aria-colindex"?: Reactive<number>;
46
46
  /** Defines a human readable text alternative of aria-colindex. */
47
- "aria-colindextext"?: string;
47
+ "aria-colindextext"?: Reactive<string>;
48
48
  /** Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid. */
49
- "aria-colspan"?: number;
49
+ "aria-colspan"?: Reactive<number>;
50
50
  /** Identifies the element(s) whose contents or presence are controlled by the current element. */
51
- "aria-controls"?: string;
51
+ "aria-controls"?: Reactive<string>;
52
52
  /** Indicates the element that represents the current item within a container or set of related elements. */
53
53
  "aria-current"?: Reactive<Booleanish | LiteralUnion<"page" | "step" | "location" | "date" | "time">>;
54
54
  /** Identifies the element(s) that describes the object. */
55
- "aria-describedby"?: string;
55
+ "aria-describedby"?: Reactive<string>;
56
56
  /** Defines a string value that describes or annotates the current element. */
57
- "aria-description"?: string;
57
+ "aria-description"?: Reactive<string>;
58
58
  /** Identifies the element that provides a detailed, extended description for the object. */
59
- "aria-details"?: string;
59
+ "aria-details"?: Reactive<string>;
60
60
  /** Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable. */
61
61
  "aria-disabled"?: Reactive<Booleanish>;
62
62
  /** Identifies the element that provides an error message for the current element. */
63
- "aria-errormessage"?: string;
63
+ "aria-errormessage"?: Reactive<string>;
64
64
  /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */
65
65
  "aria-expanded"?: Reactive<Booleanish>;
66
66
  /** Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order. */
67
- "aria-flowto"?: string;
67
+ "aria-flowto"?: Reactive<string>;
68
68
  /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */
69
69
  "aria-haspopup"?: Reactive<Booleanish | LiteralUnion<"menu" | "listbox" | "tree" | "grid" | "dialog">>;
70
70
  /** Indicates whether the element is exposed to an accessibility API. */
@@ -72,13 +72,13 @@ export interface AriaAttributes {
72
72
  /** Indicates the entered value does not conform to the format expected by the application. */
73
73
  "aria-invalid"?: Reactive<Booleanish | LiteralUnion<"grammar" | "spelling">>;
74
74
  /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */
75
- "aria-keyshortcuts"?: string;
75
+ "aria-keyshortcuts"?: Reactive<string>;
76
76
  /** Defines a string value that labels the current element. */
77
77
  "aria-label"?: Reactive<string>;
78
78
  /** Identifies the element(s) that labels the current element. */
79
- "aria-labelledby"?: string;
79
+ "aria-labelledby"?: Reactive<string>;
80
80
  /** Defines the hierarchical level of an element within a structure. */
81
- "aria-level"?: number;
81
+ "aria-level"?: Reactive<number>;
82
82
  /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */
83
83
  "aria-live"?: Reactive<LiteralUnion<"off" | "assertive" | "polite">>;
84
84
  /** Indicates whether an element is modal when displayed. */
@@ -88,13 +88,13 @@ export interface AriaAttributes {
88
88
  /** Indicates that the user may select more than one item from the current selectable descendants. */
89
89
  "aria-multiselectable"?: Reactive<Booleanish>;
90
90
  /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */
91
- "aria-orientation"?: LiteralUnion<"horizontal" | "vertical">;
91
+ "aria-orientation"?: Reactive<LiteralUnion<"horizontal" | "vertical">>;
92
92
  /** Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship between DOM elements where the DOM hierarchy cannot be used to represent the relationship. */
93
- "aria-owns"?: string;
93
+ "aria-owns"?: Reactive<string>;
94
94
  /** Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. */
95
- "aria-placeholder"?: string;
95
+ "aria-placeholder"?: Reactive<string>;
96
96
  /** Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. */
97
- "aria-posinset"?: number;
97
+ "aria-posinset"?: Reactive<number>;
98
98
  /** Indicates the current "pressed" state of toggle buttons. */
99
99
  "aria-pressed"?: Reactive<Booleanish | LiteralUnion<"mixed">>;
100
100
  /** Indicates that the element is not editable, but is otherwise operable. */
@@ -104,31 +104,31 @@ export interface AriaAttributes {
104
104
  /** Indicates that user input is required on the element before a form may be submitted. */
105
105
  "aria-required"?: Reactive<Booleanish>;
106
106
  /** Defines a human-readable, author-localized description for the role of an element. */
107
- "aria-roledescription"?: string;
107
+ "aria-roledescription"?: Reactive<string>;
108
108
  /** Defines the total number of rows in a table, grid, or treegrid. */
109
- "aria-rowcount"?: number;
109
+ "aria-rowcount"?: Reactive<number>;
110
110
  /** Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid. */
111
- "aria-rowindex"?: number;
111
+ "aria-rowindex"?: Reactive<number>;
112
112
  /** Defines a human readable text alternative of aria-rowindex. */
113
- "aria-rowindextext"?: string;
113
+ "aria-rowindextext"?: Reactive<string>;
114
114
  /** Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid. */
115
- "aria-rowspan"?: number;
115
+ "aria-rowspan"?: Reactive<number>;
116
116
  /** Indicates the current "selected" state of various widgets. */
117
117
  "aria-selected"?: Reactive<Booleanish>;
118
118
  /** Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. */
119
- "aria-setsize"?: number;
119
+ "aria-setsize"?: Reactive<number>;
120
120
  /** Indicates if items in a table or grid are sorted in ascending or descending order. */
121
- "aria-sort"?: LiteralUnion<"none" | "ascending" | "descending" | "other">;
121
+ "aria-sort"?: Reactive<LiteralUnion<"none" | "ascending" | "descending" | "other">>;
122
122
  /** Defines the maximum allowed value for a range widget. */
123
- "aria-valuemax"?: number;
123
+ "aria-valuemax"?: Reactive<number>;
124
124
  /** Defines the minimum allowed value for a range widget. */
125
- "aria-valuemin"?: number;
125
+ "aria-valuemin"?: Reactive<number>;
126
126
  /** Defines the current value for a range widget. */
127
- "aria-valuenow"?: number;
127
+ "aria-valuenow"?: Reactive<number>;
128
128
  /** Defines the human readable text alternative of aria-valuenow for a range widget. */
129
- "aria-valuetext"?: string;
129
+ "aria-valuetext"?: Reactive<string>;
130
130
  /** Defines the ARIA role of the element. */
131
- role?: LiteralUnion<"alert" | "alertdialog" | "application" | "article" | "banner" | "button" | "cell" | "checkbox" | "columnheader" | "combobox" | "complementary" | "contentinfo" | "definition" | "dialog" | "directory" | "document" | "feed" | "figure" | "form" | "generic" | "grid" | "gridcell" | "group" | "heading" | "img" | "link" | "list" | "listbox" | "listitem" | "log" | "main" | "marquee" | "math" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "meter" | "navigation" | "none" | "note" | "option" | "presentation" | "progressbar" | "radio" | "radiogroup" | "region" | "row" | "rowgroup" | "rowheader" | "scrollbar" | "search" | "searchbox" | "separator" | "slider" | "spinbutton" | "status" | "switch" | "tab" | "table" | "tablist" | "tabpanel" | "term" | "textbox" | "timer" | "toolbar" | "tooltip" | "tree" | "treegrid" | "treeitem">;
131
+ role?: Reactive<LiteralUnion<"alert" | "alertdialog" | "application" | "article" | "banner" | "button" | "cell" | "checkbox" | "columnheader" | "combobox" | "complementary" | "contentinfo" | "definition" | "dialog" | "directory" | "document" | "feed" | "figure" | "form" | "generic" | "grid" | "gridcell" | "group" | "heading" | "img" | "link" | "list" | "listbox" | "listitem" | "log" | "main" | "marquee" | "math" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "meter" | "navigation" | "none" | "note" | "option" | "presentation" | "progressbar" | "radio" | "radiogroup" | "region" | "row" | "rowgroup" | "rowheader" | "scrollbar" | "search" | "searchbox" | "separator" | "slider" | "spinbutton" | "status" | "switch" | "tab" | "table" | "tablist" | "tabpanel" | "term" | "textbox" | "timer" | "toolbar" | "tooltip" | "tree" | "treegrid" | "treeitem">>;
132
132
  }
133
133
  /** Narrows `currentTarget` to the actual host element type `T`. */
134
134
  type NativeEventOf<E extends Event, T extends EventTarget> = E & {
@@ -208,33 +208,42 @@ export interface HTMLAttributes<T extends Element = HTMLElement> extends AriaAtt
208
208
  title?: Reactive<string>;
209
209
  lang?: Reactive<string>;
210
210
  dir?: Reactive<Dir>;
211
- slot?: string;
212
- accessKey?: string;
211
+ /** Web Components named-slot assignment. */
212
+ slot?: Reactive<string>;
213
+ accessKey?: Reactive<string>;
214
+ /** Content Security Policy nonce. Single-use: browsers blank this out after first read. */
213
215
  nonce?: string;
214
216
  hidden?: Reactive<boolean>;
215
217
  tabIndex?: Reactive<number>;
216
218
  draggable?: Reactive<boolean>;
217
- /** Autofocus on mount (global HTML5 attribute). */
219
+ /**
220
+ * Autofocus on mount (global HTML5 attribute). One-shot by spec — the browser
221
+ * only consults this at insertion time, so it is not reactive.
222
+ */
218
223
  autoFocus?: boolean;
219
224
  contentEditable?: Reactive<Booleanish | LiteralUnion<"inherit" | "plaintext-only">>;
220
225
  spellcheck?: Reactive<Booleanish>;
221
- translate?: LiteralUnion<"yes" | "no">;
226
+ translate?: Reactive<LiteralUnion<"yes" | "no">>;
222
227
  /** Marks the element as inert — blocks all user interaction and assistive technology. */
223
228
  inert?: Reactive<boolean>;
224
229
  /** Declares the element as a popover. Use `"auto"` (default, light-dismiss) or `"manual"`. */
225
- popover?: boolean | LiteralUnion<"auto" | "manual">;
230
+ popover?: Reactive<boolean | LiteralUnion<"auto" | "manual">>;
226
231
  /** CSS `::part()` export list for shadow DOM styling. */
227
- part?: string;
232
+ part?: Reactive<string>;
228
233
  inputMode?: Reactive<InputMode>;
229
234
  enterKeyHint?: Reactive<EnterKeyHint>;
230
235
  autoCapitalize?: Reactive<AutoCapitalize>;
231
236
  autoCorrect?: Reactive<string>;
232
237
  innerHTML?: Reactive<string>;
233
- itemID?: string;
234
- itemProp?: string;
235
- itemRef?: string;
236
- itemScope?: boolean;
237
- itemType?: string;
238
+ itemID?: Reactive<string>;
239
+ itemProp?: Reactive<string>;
240
+ itemRef?: Reactive<string>;
241
+ itemScope?: Reactive<boolean>;
242
+ itemType?: Reactive<string>;
243
+ /**
244
+ * Customized built-in element name (`is="my-button"`). Fixed at
245
+ * `document.createElement(tag, { is })` time — cannot change post-construction.
246
+ */
238
247
  is?: string;
239
248
  key?: string | number | symbol;
240
249
  ref?: (el: T) => void;
@@ -242,69 +251,69 @@ export interface HTMLAttributes<T extends Element = HTMLElement> extends AriaAtt
242
251
  [key: `data-${string}`]: Reactive<string | number | boolean> | undefined;
243
252
  }
244
253
  export interface BaseHTMLAttributes<T extends HTMLBaseElement = HTMLBaseElement> extends HTMLAttributes<T> {
245
- href?: string;
246
- target?: LinkTarget;
254
+ href?: Reactive<string>;
255
+ target?: Reactive<LinkTarget>;
247
256
  }
248
257
  export interface LinkHTMLAttributes<T extends HTMLLinkElement = HTMLLinkElement> extends HTMLAttributes<T> {
249
- as?: LiteralUnion<"audio" | "document" | "embed" | "fetch" | "font" | "image" | "object" | "script" | "style" | "track" | "video" | "worker">;
250
- crossOrigin?: CrossOrigin;
251
- href?: string;
252
- hrefLang?: string;
253
- integrity?: string;
254
- media?: string;
255
- referrerPolicy?: ReferrerPolicy;
256
- rel?: string;
257
- sizes?: string;
258
- type?: string;
259
- charSet?: string;
258
+ as?: Reactive<LiteralUnion<"audio" | "document" | "embed" | "fetch" | "font" | "image" | "object" | "script" | "style" | "track" | "video" | "worker">>;
259
+ crossOrigin?: Reactive<CrossOrigin>;
260
+ href?: Reactive<string>;
261
+ hrefLang?: Reactive<string>;
262
+ integrity?: Reactive<string>;
263
+ media?: Reactive<string>;
264
+ referrerPolicy?: Reactive<ReferrerPolicy>;
265
+ rel?: Reactive<string>;
266
+ sizes?: Reactive<string>;
267
+ type?: Reactive<string>;
268
+ charSet?: Reactive<string>;
260
269
  }
261
270
  export interface MetaHTMLAttributes<T extends HTMLMetaElement = HTMLMetaElement> extends HTMLAttributes<T> {
262
- charSet?: string;
263
- content?: string;
264
- httpEquiv?: string;
265
- name?: string;
266
- media?: string;
271
+ charSet?: Reactive<string>;
272
+ content?: Reactive<string>;
273
+ httpEquiv?: Reactive<string>;
274
+ name?: Reactive<string>;
275
+ media?: Reactive<string>;
267
276
  }
268
277
  export interface ScriptHTMLAttributes<T extends HTMLScriptElement = HTMLScriptElement> extends HTMLAttributes<T> {
269
- async?: boolean;
270
- crossOrigin?: CrossOrigin;
271
- defer?: boolean;
272
- integrity?: string;
273
- noModule?: boolean;
274
- referrerPolicy?: ReferrerPolicy;
275
- src?: string;
276
- type?: string;
277
- charSet?: string;
278
+ async?: Reactive<boolean>;
279
+ crossOrigin?: Reactive<CrossOrigin>;
280
+ defer?: Reactive<boolean>;
281
+ integrity?: Reactive<string>;
282
+ noModule?: Reactive<boolean>;
283
+ referrerPolicy?: Reactive<ReferrerPolicy>;
284
+ src?: Reactive<string>;
285
+ type?: Reactive<string>;
286
+ charSet?: Reactive<string>;
278
287
  }
279
288
  export interface StyleHTMLAttributes<T extends HTMLStyleElement = HTMLStyleElement> extends HTMLAttributes<T> {
280
- media?: string;
281
- scoped?: boolean;
282
- type?: string;
289
+ media?: Reactive<string>;
290
+ scoped?: Reactive<boolean>;
291
+ type?: Reactive<string>;
283
292
  }
284
293
  export interface BlockquoteHTMLAttributes<T extends HTMLQuoteElement = HTMLQuoteElement> extends HTMLAttributes<T> {
285
- cite?: string;
294
+ cite?: Reactive<string>;
286
295
  }
287
296
  export interface OlHTMLAttributes<T extends HTMLOListElement = HTMLOListElement> extends HTMLAttributes<T> {
288
- reversed?: boolean;
289
- start?: number;
290
- type?: LiteralUnion<"1" | "a" | "A" | "i" | "I">;
297
+ reversed?: Reactive<boolean>;
298
+ start?: Reactive<number>;
299
+ type?: Reactive<LiteralUnion<"1" | "a" | "A" | "i" | "I">>;
291
300
  }
292
301
  export interface LiHTMLAttributes<T extends HTMLLIElement = HTMLLIElement> extends HTMLAttributes<T> {
293
- value?: number;
302
+ value?: Reactive<number>;
294
303
  }
295
304
  export interface MenuHTMLAttributes<T extends HTMLMenuElement = HTMLMenuElement> extends HTMLAttributes<T> {
296
- type?: string;
305
+ type?: Reactive<string>;
297
306
  }
298
307
  export interface AnchorHTMLAttributes<T extends HTMLAnchorElement = HTMLAnchorElement> extends HTMLAttributes<T> {
299
308
  download?: Reactive<string | boolean>;
300
309
  href?: Reactive<string>;
301
- hrefLang?: string;
302
- media?: string;
303
- ping?: string;
304
- referrerPolicy?: ReferrerPolicy;
305
- rel?: string;
310
+ hrefLang?: Reactive<string>;
311
+ media?: Reactive<string>;
312
+ ping?: Reactive<string>;
313
+ referrerPolicy?: Reactive<ReferrerPolicy>;
314
+ rel?: Reactive<string>;
306
315
  target?: Reactive<LinkTarget>;
307
- type?: string;
316
+ type?: Reactive<string>;
308
317
  }
309
318
  export interface DataHTMLAttributes<T extends HTMLDataElement = HTMLDataElement> extends HTMLAttributes<T> {
310
319
  value?: Reactive<string | number>;
@@ -313,73 +322,77 @@ export interface TimeHTMLAttributes<T extends HTMLTimeElement = HTMLTimeElement>
313
322
  dateTime?: Reactive<string>;
314
323
  }
315
324
  export interface ImgHTMLAttributes<T extends HTMLImageElement = HTMLImageElement> extends HTMLAttributes<T> {
316
- alt?: string;
317
- crossOrigin?: CrossOrigin;
318
- decoding?: Decoding;
325
+ alt?: Reactive<string>;
326
+ crossOrigin?: Reactive<CrossOrigin>;
327
+ decoding?: Reactive<Decoding>;
319
328
  height?: Reactive<number | string>;
320
- loading?: Loading;
321
- referrerPolicy?: ReferrerPolicy;
322
- sizes?: string;
329
+ loading?: Reactive<Loading>;
330
+ referrerPolicy?: Reactive<ReferrerPolicy>;
331
+ sizes?: Reactive<string>;
323
332
  src?: Reactive<string>;
324
333
  srcSet?: Reactive<string>;
325
- useMap?: string;
334
+ useMap?: Reactive<string>;
326
335
  width?: Reactive<number | string>;
327
- fetchPriority?: LiteralUnion<"high" | "low" | "auto">;
336
+ fetchPriority?: Reactive<LiteralUnion<"high" | "low" | "auto">>;
328
337
  }
329
338
  export interface IframeHTMLAttributes<T extends HTMLIFrameElement = HTMLIFrameElement> extends HTMLAttributes<T> {
330
- allow?: string;
339
+ allow?: Reactive<string>;
331
340
  allowFullScreen?: Reactive<boolean>;
332
341
  height?: Reactive<number | string>;
333
- loading?: Loading;
334
- name?: string;
335
- referrerPolicy?: ReferrerPolicy;
342
+ loading?: Reactive<Loading>;
343
+ name?: Reactive<string>;
344
+ referrerPolicy?: Reactive<ReferrerPolicy>;
336
345
  sandbox?: Reactive<string>;
337
346
  src?: Reactive<string>;
338
- srcDoc?: string;
347
+ srcDoc?: Reactive<string>;
339
348
  title?: Reactive<string>;
340
349
  width?: Reactive<number | string>;
341
350
  }
342
351
  export interface EmbedHTMLAttributes<T extends HTMLEmbedElement = HTMLEmbedElement> extends HTMLAttributes<T> {
343
352
  height?: Reactive<number | string>;
344
353
  src?: Reactive<string>;
345
- type?: string;
354
+ type?: Reactive<string>;
346
355
  width?: Reactive<number | string>;
347
356
  }
348
357
  export interface ObjectHTMLAttributes<T extends HTMLObjectElement = HTMLObjectElement> extends HTMLAttributes<T> {
349
- data?: string;
350
- form?: string;
358
+ data?: Reactive<string>;
359
+ form?: Reactive<string>;
351
360
  height?: Reactive<number | string>;
352
- name?: string;
353
- type?: string;
354
- useMap?: string;
361
+ name?: Reactive<string>;
362
+ type?: Reactive<string>;
363
+ useMap?: Reactive<string>;
355
364
  width?: Reactive<number | string>;
356
365
  }
357
366
  export interface SourceHTMLAttributes<T extends HTMLSourceElement = HTMLSourceElement> extends HTMLAttributes<T> {
358
367
  height?: Reactive<number | string>;
359
- media?: string;
360
- sizes?: string;
368
+ media?: Reactive<string>;
369
+ sizes?: Reactive<string>;
361
370
  src?: Reactive<string>;
362
371
  srcSet?: Reactive<string>;
363
- type?: string;
372
+ type?: Reactive<string>;
364
373
  width?: Reactive<number | string>;
365
374
  }
366
375
  export interface TrackHTMLAttributes<T extends HTMLTrackElement = HTMLTrackElement> extends HTMLAttributes<T> {
367
- default?: boolean;
368
- kind?: LiteralUnion<"subtitles" | "captions" | "descriptions" | "chapters" | "metadata">;
369
- label?: string;
370
- src?: string;
371
- srcLang?: string;
376
+ default?: Reactive<boolean>;
377
+ kind?: Reactive<LiteralUnion<"subtitles" | "captions" | "descriptions" | "chapters" | "metadata">>;
378
+ label?: Reactive<string>;
379
+ src?: Reactive<string>;
380
+ srcLang?: Reactive<string>;
372
381
  }
373
382
  export interface MediaHTMLAttributes<T extends HTMLMediaElement = HTMLMediaElement> extends HTMLAttributes<T> {
383
+ /**
384
+ * One-shot by spec — the browser only consults `autoplay` at insertion
385
+ * time, so it is not reactive.
386
+ */
374
387
  autoPlay?: boolean;
375
388
  controls?: Reactive<boolean>;
376
- controlsList?: string;
377
- crossOrigin?: CrossOrigin;
389
+ controlsList?: Reactive<string>;
390
+ crossOrigin?: Reactive<CrossOrigin>;
378
391
  loop?: Reactive<boolean>;
379
- mediaGroup?: string;
392
+ mediaGroup?: Reactive<string>;
380
393
  muted?: Reactive<boolean>;
381
- playsInline?: boolean;
382
- preload?: LiteralUnion<"none" | "metadata" | "auto">;
394
+ playsInline?: Reactive<boolean>;
395
+ preload?: Reactive<LiteralUnion<"none" | "metadata" | "auto">>;
383
396
  src?: Reactive<string>;
384
397
  onAbort?: (e: NativeEventOf<Event, T>) => void;
385
398
  onCanPlay?: (e: NativeEventOf<Event, T>) => void;
@@ -406,169 +419,188 @@ export interface MediaHTMLAttributes<T extends HTMLMediaElement = HTMLMediaEleme
406
419
  export type AudioHTMLAttributes<T extends HTMLAudioElement = HTMLAudioElement> = MediaHTMLAttributes<T>;
407
420
  export interface VideoHTMLAttributes<T extends HTMLVideoElement = HTMLVideoElement> extends MediaHTMLAttributes<T> {
408
421
  height?: Reactive<number | string>;
409
- playsInline?: boolean;
422
+ playsInline?: Reactive<boolean>;
410
423
  poster?: Reactive<string>;
411
424
  width?: Reactive<number | string>;
412
- disablePictureInPicture?: boolean;
413
- disableRemotePlayback?: boolean;
425
+ disablePictureInPicture?: Reactive<boolean>;
426
+ disableRemotePlayback?: Reactive<boolean>;
414
427
  }
415
428
  export interface CanvasHTMLAttributes<T extends HTMLCanvasElement = HTMLCanvasElement> extends HTMLAttributes<T> {
416
429
  height?: Reactive<number | string>;
417
430
  width?: Reactive<number | string>;
418
431
  }
419
432
  export interface MapHTMLAttributes<T extends HTMLMapElement = HTMLMapElement> extends HTMLAttributes<T> {
420
- name?: string;
433
+ name?: Reactive<string>;
421
434
  }
422
435
  export interface AreaHTMLAttributes<T extends HTMLAreaElement = HTMLAreaElement> extends HTMLAttributes<T> {
423
- alt?: string;
424
- coords?: string;
425
- download?: string;
436
+ alt?: Reactive<string>;
437
+ coords?: Reactive<string>;
438
+ download?: Reactive<string | boolean>;
426
439
  href?: Reactive<string>;
427
- hrefLang?: string;
428
- media?: string;
429
- referrerPolicy?: ReferrerPolicy;
430
- rel?: string;
431
- shape?: string;
440
+ hrefLang?: Reactive<string>;
441
+ media?: Reactive<string>;
442
+ referrerPolicy?: Reactive<ReferrerPolicy>;
443
+ rel?: Reactive<string>;
444
+ shape?: Reactive<string>;
432
445
  target?: Reactive<LinkTarget>;
433
446
  }
434
447
  export interface FormHTMLAttributes<T extends HTMLFormElement = HTMLFormElement> extends HTMLAttributes<T> {
435
- acceptCharset?: string;
448
+ acceptCharset?: Reactive<string>;
436
449
  action?: Reactive<string>;
437
- autoComplete?: string;
438
- encType?: FormEncType;
439
- method?: FormMethod;
440
- name?: string;
441
- noValidate?: boolean;
442
- target?: LinkTarget;
443
- rel?: string;
450
+ autoComplete?: Reactive<string>;
451
+ encType?: Reactive<FormEncType>;
452
+ method?: Reactive<FormMethod>;
453
+ name?: Reactive<string>;
454
+ noValidate?: Reactive<boolean>;
455
+ target?: Reactive<LinkTarget>;
456
+ rel?: Reactive<string>;
444
457
  }
445
458
  export interface FieldsetHTMLAttributes<T extends HTMLFieldSetElement = HTMLFieldSetElement> extends HTMLAttributes<T> {
446
459
  disabled?: Reactive<boolean>;
447
- form?: string;
448
- name?: string;
460
+ form?: Reactive<string>;
461
+ name?: Reactive<string>;
449
462
  }
450
463
  export interface InputHTMLAttributes<T extends HTMLInputElement = HTMLInputElement> extends HTMLAttributes<T> {
451
- accept?: string;
452
- alt?: string;
453
- autoComplete?: LiteralUnion<string>;
464
+ accept?: Reactive<string>;
465
+ alt?: Reactive<string>;
466
+ autoComplete?: Reactive<LiteralUnion<string>>;
467
+ /**
468
+ * Autofocus on mount. One-shot by spec — the browser only consults this
469
+ * at insertion time, so it is not reactive.
470
+ */
454
471
  autoFocus?: boolean;
455
- capture?: boolean | LiteralUnion<"user" | "environment">;
472
+ capture?: Reactive<boolean | LiteralUnion<"user" | "environment">>;
456
473
  checked?: Reactive<boolean>;
457
- crossOrigin?: CrossOrigin;
474
+ crossOrigin?: Reactive<CrossOrigin>;
475
+ /** Uncontrolled-baseline value, set once on mount — not reactive. */
458
476
  defaultChecked?: boolean;
477
+ /** Uncontrolled-baseline value, set once on mount — not reactive. */
459
478
  defaultValue?: string | number | readonly string[];
460
- dirName?: string;
479
+ dirName?: Reactive<string>;
461
480
  disabled?: Reactive<boolean>;
462
481
  enterKeyHint?: Reactive<EnterKeyHint>;
463
- form?: string;
464
- formAction?: string;
465
- formEncType?: FormEncType;
466
- formMethod?: FormMethod;
467
- formNoValidate?: boolean;
468
- formTarget?: string;
482
+ form?: Reactive<string>;
483
+ formAction?: Reactive<string>;
484
+ formEncType?: Reactive<FormEncType>;
485
+ formMethod?: Reactive<FormMethod>;
486
+ formNoValidate?: Reactive<boolean>;
487
+ formTarget?: Reactive<string>;
469
488
  height?: Reactive<number | string>;
470
- list?: string;
489
+ list?: Reactive<string>;
471
490
  max?: Reactive<number | string>;
472
- maxLength?: number;
491
+ maxLength?: Reactive<number>;
473
492
  min?: Reactive<number | string>;
474
- minLength?: number;
475
- multiple?: boolean;
476
- name?: string;
477
- pattern?: string;
493
+ minLength?: Reactive<number>;
494
+ multiple?: Reactive<boolean>;
495
+ name?: Reactive<string>;
496
+ pattern?: Reactive<string>;
478
497
  placeholder?: Reactive<string>;
479
498
  readOnly?: Reactive<boolean>;
480
499
  required?: Reactive<boolean>;
481
- size?: number;
482
- src?: string;
500
+ size?: Reactive<number>;
501
+ src?: Reactive<string>;
483
502
  step?: Reactive<number | string>;
484
503
  type?: Reactive<HTMLInputTypeAttribute>;
485
504
  value?: Reactive<string | number | readonly string[]>;
486
505
  width?: Reactive<number | string>;
487
- popovertarget?: string;
488
- popovertargetaction?: LiteralUnion<"hide" | "show" | "toggle">;
506
+ popovertarget?: Reactive<string>;
507
+ popovertargetaction?: Reactive<LiteralUnion<"hide" | "show" | "toggle">>;
489
508
  }
490
509
  export interface ButtonHTMLAttributes<T extends HTMLButtonElement = HTMLButtonElement> extends HTMLAttributes<T> {
510
+ /**
511
+ * Autofocus on mount. One-shot by spec — the browser only consults this
512
+ * at insertion time, so it is not reactive.
513
+ */
491
514
  autoFocus?: boolean;
492
515
  disabled?: Reactive<boolean>;
493
- form?: string;
494
- formAction?: string;
495
- formEncType?: FormEncType;
496
- formMethod?: FormMethod;
497
- formNoValidate?: boolean;
498
- formTarget?: string;
499
- name?: string;
516
+ form?: Reactive<string>;
517
+ formAction?: Reactive<string>;
518
+ formEncType?: Reactive<FormEncType>;
519
+ formMethod?: Reactive<FormMethod>;
520
+ formNoValidate?: Reactive<boolean>;
521
+ formTarget?: Reactive<string>;
522
+ name?: Reactive<string>;
500
523
  type?: Reactive<ButtonType>;
501
524
  value?: Reactive<string>;
502
- popovertarget?: string;
503
- popovertargetaction?: LiteralUnion<"hide" | "show" | "toggle">;
525
+ popovertarget?: Reactive<string>;
526
+ popovertargetaction?: Reactive<LiteralUnion<"hide" | "show" | "toggle">>;
504
527
  }
505
528
  export interface LabelHTMLAttributes<T extends HTMLLabelElement = HTMLLabelElement> extends HTMLAttributes<T> {
506
- form?: string;
507
- htmlFor?: string;
529
+ form?: Reactive<string>;
530
+ htmlFor?: Reactive<string>;
508
531
  /** DOM attribute alias for `htmlFor`. */
509
- for?: string;
532
+ for?: Reactive<string>;
510
533
  }
511
534
  export interface SelectHTMLAttributes<T extends HTMLSelectElement = HTMLSelectElement> extends HTMLAttributes<T> {
512
- autoComplete?: string;
535
+ autoComplete?: Reactive<string>;
536
+ /**
537
+ * Autofocus on mount. One-shot by spec — the browser only consults this
538
+ * at insertion time, so it is not reactive.
539
+ */
513
540
  autoFocus?: boolean;
514
541
  disabled?: Reactive<boolean>;
515
- form?: string;
516
- multiple?: boolean;
517
- name?: string;
542
+ form?: Reactive<string>;
543
+ multiple?: Reactive<boolean>;
544
+ name?: Reactive<string>;
518
545
  required?: Reactive<boolean>;
519
- size?: number;
546
+ size?: Reactive<number>;
520
547
  value?: Reactive<string | number | readonly string[]>;
521
548
  }
522
549
  export interface OptgroupHTMLAttributes<T extends HTMLOptGroupElement = HTMLOptGroupElement> extends HTMLAttributes<T> {
523
550
  disabled?: Reactive<boolean>;
524
- label?: string;
551
+ label?: Reactive<string>;
525
552
  }
526
553
  export interface OptionHTMLAttributes<T extends HTMLOptionElement = HTMLOptionElement> extends HTMLAttributes<T> {
527
554
  disabled?: Reactive<boolean>;
528
- label?: string;
555
+ label?: Reactive<string>;
529
556
  selected?: Reactive<boolean>;
530
557
  value?: Reactive<string | number>;
531
558
  }
532
559
  export interface OutputHTMLAttributes<T extends HTMLOutputElement = HTMLOutputElement> extends HTMLAttributes<T> {
533
- form?: string;
534
- htmlFor?: string;
535
- name?: string;
560
+ form?: Reactive<string>;
561
+ htmlFor?: Reactive<string>;
562
+ name?: Reactive<string>;
536
563
  }
537
564
  export interface TextareaHTMLAttributes<T extends HTMLTextAreaElement = HTMLTextAreaElement> extends HTMLAttributes<T> {
538
- autoComplete?: string;
565
+ autoComplete?: Reactive<string>;
566
+ /**
567
+ * Autofocus on mount. One-shot by spec — the browser only consults this
568
+ * at insertion time, so it is not reactive.
569
+ */
539
570
  autoFocus?: boolean;
540
- cols?: number;
571
+ cols?: Reactive<number>;
572
+ /** Uncontrolled-baseline value, set once on mount — not reactive. */
541
573
  defaultValue?: string;
542
- dirName?: string;
574
+ dirName?: Reactive<string>;
543
575
  disabled?: Reactive<boolean>;
544
- form?: string;
545
- maxLength?: number;
546
- minLength?: number;
547
- name?: string;
576
+ form?: Reactive<string>;
577
+ maxLength?: Reactive<number>;
578
+ minLength?: Reactive<number>;
579
+ name?: Reactive<string>;
548
580
  placeholder?: Reactive<string>;
549
581
  readOnly?: Reactive<boolean>;
550
582
  required?: Reactive<boolean>;
551
- rows?: number;
583
+ rows?: Reactive<number>;
552
584
  value?: Reactive<string>;
553
- wrap?: LiteralUnion<"hard" | "soft" | "off">;
585
+ wrap?: Reactive<LiteralUnion<"hard" | "soft" | "off">>;
554
586
  }
555
587
  export interface MeterHTMLAttributes<T extends HTMLMeterElement = HTMLMeterElement> extends HTMLAttributes<T> {
556
- form?: string;
557
- high?: number;
558
- low?: number;
588
+ form?: Reactive<string>;
589
+ high?: Reactive<number>;
590
+ low?: Reactive<number>;
559
591
  max?: Reactive<number | string>;
560
592
  min?: Reactive<number | string>;
561
- optimum?: number;
593
+ optimum?: Reactive<number>;
562
594
  value?: Reactive<string | number>;
563
595
  }
564
596
  export interface ProgressHTMLAttributes<T extends HTMLProgressElement = HTMLProgressElement> extends HTMLAttributes<T> {
565
- max?: number | string;
597
+ max?: Reactive<number | string>;
566
598
  value?: Reactive<string | number>;
567
599
  }
568
600
  export type DatalistHTMLAttributes<T extends HTMLDataListElement = HTMLDataListElement> = HTMLAttributes<T>;
569
601
  export interface DetailsHTMLAttributes<T extends HTMLDetailsElement = HTMLDetailsElement> extends HTMLAttributes<T> {
570
602
  open?: Reactive<boolean>;
571
- name?: string;
603
+ name?: Reactive<string>;
572
604
  onToggle?: (e: NativeEventOf<Event, T>) => void;
573
605
  onBeforeToggle?: (e: NativeEventOf<Event, T>) => void;
574
606
  }
@@ -580,47 +612,47 @@ export interface DialogHTMLAttributes<T extends HTMLDialogElement = HTMLDialogEl
580
612
  onBeforeToggle?: (e: NativeEventOf<Event, T>) => void;
581
613
  }
582
614
  export interface SlotHTMLAttributes<T extends HTMLSlotElement = HTMLSlotElement> extends HTMLAttributes<T> {
583
- name?: string;
615
+ name?: Reactive<string>;
584
616
  }
585
617
  export interface TableHTMLAttributes<T extends HTMLTableElement = HTMLTableElement> extends HTMLAttributes<T> {
586
- cellPadding?: number | string;
587
- cellSpacing?: number | string;
588
- summary?: string;
589
- width?: number | string;
618
+ cellPadding?: Reactive<number | string>;
619
+ cellSpacing?: Reactive<number | string>;
620
+ summary?: Reactive<string>;
621
+ width?: Reactive<number | string>;
590
622
  }
591
623
  export interface ColHTMLAttributes<T extends HTMLTableColElement = HTMLTableColElement> extends HTMLAttributes<T> {
592
- span?: number;
593
- width?: number | string;
624
+ span?: Reactive<number>;
625
+ width?: Reactive<number | string>;
594
626
  }
595
627
  export interface ColgroupHTMLAttributes<T extends HTMLTableColElement = HTMLTableColElement> extends HTMLAttributes<T> {
596
- span?: number;
628
+ span?: Reactive<number>;
597
629
  }
598
630
  export interface TdHTMLAttributes<T extends HTMLTableCellElement = HTMLTableCellElement> extends HTMLAttributes<T> {
599
- align?: LiteralUnion<"left" | "center" | "right" | "justify" | "char">;
600
- colSpan?: number;
601
- headers?: string;
602
- rowSpan?: number;
603
- scope?: LiteralUnion<"col" | "row" | "colgroup" | "rowgroup">;
604
- abbr?: string;
605
- height?: number | string;
606
- width?: number | string;
607
- valign?: LiteralUnion<"top" | "middle" | "bottom" | "baseline">;
631
+ align?: Reactive<LiteralUnion<"left" | "center" | "right" | "justify" | "char">>;
632
+ colSpan?: Reactive<number>;
633
+ headers?: Reactive<string>;
634
+ rowSpan?: Reactive<number>;
635
+ scope?: Reactive<LiteralUnion<"col" | "row" | "colgroup" | "rowgroup">>;
636
+ abbr?: Reactive<string>;
637
+ height?: Reactive<number | string>;
638
+ width?: Reactive<number | string>;
639
+ valign?: Reactive<LiteralUnion<"top" | "middle" | "bottom" | "baseline">>;
608
640
  }
609
641
  export interface ThHTMLAttributes<T extends HTMLTableCellElement = HTMLTableCellElement> extends HTMLAttributes<T> {
610
- align?: LiteralUnion<"left" | "center" | "right" | "justify" | "char">;
611
- colSpan?: number;
612
- headers?: string;
613
- rowSpan?: number;
614
- scope?: LiteralUnion<"col" | "row" | "colgroup" | "rowgroup">;
615
- abbr?: string;
642
+ align?: Reactive<LiteralUnion<"left" | "center" | "right" | "justify" | "char">>;
643
+ colSpan?: Reactive<number>;
644
+ headers?: Reactive<string>;
645
+ rowSpan?: Reactive<number>;
646
+ scope?: Reactive<LiteralUnion<"col" | "row" | "colgroup" | "rowgroup">>;
647
+ abbr?: Reactive<string>;
616
648
  }
617
649
  export interface DelHTMLAttributes<T extends HTMLModElement = HTMLModElement> extends HTMLAttributes<T> {
618
- cite?: string;
619
- dateTime?: string;
650
+ cite?: Reactive<string>;
651
+ dateTime?: Reactive<string>;
620
652
  }
621
653
  export interface InsHTMLAttributes<T extends HTMLModElement = HTMLModElement> extends HTMLAttributes<T> {
622
- cite?: string;
623
- dateTime?: string;
654
+ cite?: Reactive<string>;
655
+ dateTime?: Reactive<string>;
624
656
  }
625
657
  export interface SVGAttributes<T extends Element = SVGElement> extends AriaAttributes, DOMAttributes<T> {
626
658
  id?: Reactive<string>;