@fusion.dev/helix-headless 0.42.0 → 0.44.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 (33) hide show
  1. package/custom-elements.json +61 -65
  2. package/dist/chat/composer/chat-composer.d.ts +1 -1
  3. package/dist/chat/message/chat-message.d.ts +1 -1
  4. package/dist/chat/message/chat-message.js +1 -1
  5. package/dist/chat/root/chat-root.d.ts +1 -1
  6. package/dist/color-picker/root/color-picker-root.js +1 -2
  7. package/dist/date-picker/root/date-picker-root.d.ts +1 -1
  8. package/dist/element-events.generated.js +0 -1
  9. package/dist/format-date/root/format-date-root.d.ts +1 -1
  10. package/dist/notifications/group/notification-group.d.ts +17 -3
  11. package/dist/notifications/group/notification-group.js +8 -11
  12. package/dist/notifications/notification/notification.d.ts +3 -1
  13. package/dist/notifications/notification/notification.js +1 -1
  14. package/dist/notifications/root/notifications-root.d.ts +8 -3
  15. package/dist/option/root/option-root.d.ts +21 -11
  16. package/dist/option/root/option-root.js +2 -3
  17. package/dist/radio/root/radio-root.d.ts +16 -5
  18. package/dist/radio/root/radio-root.js +2 -3
  19. package/dist/slider/root/slider-root.d.ts +10 -3
  20. package/dist/speed-dial/item/speed-dial-item.d.ts +1 -1
  21. package/dist/speed-dial/root/speed-dial-root.d.ts +1 -1
  22. package/dist/splitter/root/splitter-root.d.ts +26 -3
  23. package/dist/splitter/root/splitter-root.js +4 -3
  24. package/dist/toast/item/toast-item.d.ts +1 -1
  25. package/dist/toast/root/toast-root.d.ts +2 -2
  26. package/dist/toggle/group/toggle-group.d.ts +45 -1
  27. package/dist/toggle/group/toggle-group.js +11 -0
  28. package/dist/toggle/root/toggle-root.d.ts +17 -6
  29. package/dist/toggle/root/toggle-root.js +2 -3
  30. package/dist/tour/root/tour-root.d.ts +0 -1
  31. package/package.json +5 -5
  32. package/types/jsx.d.ts +246 -80
  33. package/types/vue.d.ts +58 -22
package/types/jsx.d.ts CHANGED
@@ -10296,15 +10296,27 @@ Written by the listbox. */
10296
10296
 
10297
10297
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
10298
10298
  live state that does not reflect, and those are two different facts. This
10299
- element has one `selected` doing both jobs, so what is captured here is what
10300
- the markup said at upgrade, before anything could overwrite it: read the
10301
- attribute later and the listbox's own writes answer instead.
10302
-
10303
- **The deeper half is 302 and is not this.** State reflecting under the
10304
- declaration's name is the fault `TreeItem` already avoids by mirroring to
10305
- `data-selected`, and four families here still write `selected` back into a
10306
- consumer's markup. Splitting them means moving what every stylesheet selects
10307
- on, which is a change of its own rather than a property being added. */
10299
+ element has one `selected` doing both jobs, so the declaration is the
10300
+ attribute and the state is the property.
10301
+
10302
+ **The attribute, read when it is asked for, and never a snapshot taken in
10303
+ the constructor.** A field initializer runs there, and an element the HTML
10304
+ parser created has none of its attributes yet at that moment: measured on
10305
+ this element, on `Radio` and on `Toggle`, `<helix-option value="a"
10306
+ selected>` reported `defaultSelected` as `false` both from parsed markup
10307
+ and from `createElement` followed by `setAttribute`, which is every way a
10308
+ consumer writes one. The snapshot could only ever be true for an element
10309
+ already in the document when `customElements.define` ran.
10310
+
10311
+ Nothing overwrites it either, which is what makes reading it late correct
10312
+ rather than merely later: `selected` does not reflect, for the reason
10313
+ `willUpdate` records, so the listbox's writes never reach the attribute and
10314
+ what it says is what the markup said.
10315
+
10316
+ **The deeper half is not this.** State reflecting under the declaration's
10317
+ name is the fault `TreeItem` avoids by mirroring to `data-selected`.
10318
+ Splitting them means moving what every stylesheet selects on, which is a
10319
+ change of its own rather than a property being added. */
10308
10320
  defaultSelected?: (HelixHeadlessOption["defaultSelected"]) | undefined;
10309
10321
 
10310
10322
  /** Fired when this choice is made. Cancelable: refusing it takes the decision and nothing moves. */
@@ -10391,15 +10403,27 @@ Written by the listbox. */
10391
10403
 
10392
10404
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
10393
10405
  live state that does not reflect, and those are two different facts. This
10394
- element has one `selected` doing both jobs, so what is captured here is what
10395
- the markup said at upgrade, before anything could overwrite it: read the
10396
- attribute later and the listbox's own writes answer instead.
10397
-
10398
- **The deeper half is 302 and is not this.** State reflecting under the
10399
- declaration's name is the fault `TreeItem` already avoids by mirroring to
10400
- `data-selected`, and four families here still write `selected` back into a
10401
- consumer's markup. Splitting them means moving what every stylesheet selects
10402
- on, which is a change of its own rather than a property being added. */
10406
+ element has one `selected` doing both jobs, so the declaration is the
10407
+ attribute and the state is the property.
10408
+
10409
+ **The attribute, read when it is asked for, and never a snapshot taken in
10410
+ the constructor.** A field initializer runs there, and an element the HTML
10411
+ parser created has none of its attributes yet at that moment: measured on
10412
+ this element, on `Radio` and on `Toggle`, `<helix-option value="a"
10413
+ selected>` reported `defaultSelected` as `false` both from parsed markup
10414
+ and from `createElement` followed by `setAttribute`, which is every way a
10415
+ consumer writes one. The snapshot could only ever be true for an element
10416
+ already in the document when `customElements.define` ran.
10417
+
10418
+ Nothing overwrites it either, which is what makes reading it late correct
10419
+ rather than merely later: `selected` does not reflect, for the reason
10420
+ `willUpdate` records, so the listbox's writes never reach the attribute and
10421
+ what it says is what the markup said.
10422
+
10423
+ **The deeper half is not this.** State reflecting under the declaration's
10424
+ name is the fault `TreeItem` avoids by mirroring to `data-selected`.
10425
+ Splitting them means moving what every stylesheet selects on, which is a
10426
+ change of its own rather than a property being added. */
10403
10427
  "prop:defaultSelected"?: (HelixHeadlessOption["defaultSelected"]) | undefined;
10404
10428
  /** Fired when this choice is made. Cancelable: refusing it takes the decision and nothing moves. */
10405
10429
  "on:helix-select"?: ((e: HelixHeadlessOptionHelixSelectElementEvent) => void) | undefined;
@@ -11669,9 +11693,22 @@ Written by the group. */
11669
11693
 
11670
11694
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
11671
11695
  live state that does not reflect, and those are two different facts. This
11672
- element has one `selected` doing both jobs, so what is captured here is what
11673
- the markup said at upgrade, before anything could overwrite it: read the
11674
- attribute later and the listbox's own writes answer instead.
11696
+ element has one `selected` doing both jobs, so the declaration is the
11697
+ attribute and the state is the property.
11698
+
11699
+ **The attribute, read when it is asked for, and never a snapshot taken in
11700
+ the constructor.** A field initializer runs there, and an element the HTML
11701
+ parser created has none of its attributes yet at that moment: measured on
11702
+ this element, on `Option` and on `Toggle`, `<helix-radio value="a"
11703
+ selected>` reported `defaultSelected` as `false` both from parsed markup
11704
+ and from `createElement` followed by `setAttribute`, which is every way a
11705
+ consumer writes one. The snapshot could only ever be true for an element
11706
+ already in the document when `customElements.define` ran.
11707
+
11708
+ Nothing overwrites it either, which is what makes reading it late correct
11709
+ rather than merely later: `selected` does not reflect, for the reason
11710
+ `willUpdate` records, so the group's writes never reach the attribute and
11711
+ what it says is what the markup said.
11675
11712
 
11676
11713
  **The deeper half is not this.** State reflecting under the declaration's
11677
11714
  name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -11696,9 +11733,22 @@ Written by the group. */
11696
11733
 
11697
11734
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
11698
11735
  live state that does not reflect, and those are two different facts. This
11699
- element has one `selected` doing both jobs, so what is captured here is what
11700
- the markup said at upgrade, before anything could overwrite it: read the
11701
- attribute later and the listbox's own writes answer instead.
11736
+ element has one `selected` doing both jobs, so the declaration is the
11737
+ attribute and the state is the property.
11738
+
11739
+ **The attribute, read when it is asked for, and never a snapshot taken in
11740
+ the constructor.** A field initializer runs there, and an element the HTML
11741
+ parser created has none of its attributes yet at that moment: measured on
11742
+ this element, on `Option` and on `Toggle`, `<helix-radio value="a"
11743
+ selected>` reported `defaultSelected` as `false` both from parsed markup
11744
+ and from `createElement` followed by `setAttribute`, which is every way a
11745
+ consumer writes one. The snapshot could only ever be true for an element
11746
+ already in the document when `customElements.define` ran.
11747
+
11748
+ Nothing overwrites it either, which is what makes reading it late correct
11749
+ rather than merely later: `selected` does not reflect, for the reason
11750
+ `willUpdate` records, so the group's writes never reach the attribute and
11751
+ what it says is what the markup said.
11702
11752
 
11703
11753
  **The deeper half is not this.** State reflecting under the declaration's
11704
11754
  name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -12973,11 +13023,11 @@ has an honest answer. */
12973
13023
  /** How far one arrow press moves it, as a percentage. */
12974
13024
  step?: (HelixHeadlessSplitter["step"]) | undefined;
12975
13025
 
12976
- /** Fired before a pane shuts or reopens, and cancelable. */
13026
+ /** Fired before a pane shuts or reopens, and only where the position it is derived from stood. Cancelable: refusing it leaves the pane as it was and the divider where the gesture put it. */
12977
13027
  "onhelix-before-collapse"?: ((
12978
13028
  e: HelixHeadlessSplitterHelixBeforeCollapseElementEvent,
12979
13029
  ) => void) | undefined;
12980
- /** Fired before the divider settles, and cancelable. */
13030
+ /** Fired before the divider settles. Cancelable: refusing it takes the whole of where the gesture ended, so no collapse follows from it either. A drag has already drawn itself by then and holds where it was dropped until the consumer assigns their own. */
12981
13031
  "onhelix-before-resize"?: ((
12982
13032
  e: HelixHeadlessSplitterHelixBeforeResizeElementEvent,
12983
13033
  ) => void) | undefined;
@@ -13077,11 +13127,11 @@ has an honest answer. */
13077
13127
  "prop:orientation"?: (HelixHeadlessSplitter["orientation"]) | undefined;
13078
13128
  /** How far one arrow press moves it, as a percentage. */
13079
13129
  "prop:step"?: (HelixHeadlessSplitter["step"]) | undefined;
13080
- /** Fired before a pane shuts or reopens, and cancelable. */
13130
+ /** Fired before a pane shuts or reopens, and only where the position it is derived from stood. Cancelable: refusing it leaves the pane as it was and the divider where the gesture put it. */
13081
13131
  "on:helix-before-collapse"?: ((
13082
13132
  e: HelixHeadlessSplitterHelixBeforeCollapseElementEvent,
13083
13133
  ) => void) | undefined;
13084
- /** Fired before the divider settles, and cancelable. */
13134
+ /** Fired before the divider settles. Cancelable: refusing it takes the whole of where the gesture ended, so no collapse follows from it either. A drag has already drawn itself by then and holds where it was dropped until the consumer assigns their own. */
13085
13135
  "on:helix-before-resize"?: ((
13086
13136
  e: HelixHeadlessSplitterHelixBeforeResizeElementEvent,
13087
13137
  ) => void) | undefined;
@@ -15520,9 +15570,22 @@ export type HelixHeadlessToggleProps = {
15520
15570
 
15521
15571
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
15522
15572
  live state that does not reflect, and those are two different facts. This
15523
- element has one `selected` doing both jobs, so what is captured here is what
15524
- the markup said at upgrade, before anything could overwrite it: read the
15525
- attribute later and the listbox's own writes answer instead.
15573
+ element has one `selected` doing both jobs, so the declaration is the
15574
+ attribute and the state is the property.
15575
+
15576
+ **The attribute, read when it is asked for, and never a snapshot taken in
15577
+ the constructor.** A field initializer runs there, and an element the HTML
15578
+ parser created has none of its attributes yet at that moment: measured on
15579
+ this element, on `Option` and on `Radio`, `<helix-toggle value="light"
15580
+ selected>` reported `defaultSelected` as `false` both from parsed markup
15581
+ and from `createElement` followed by `setAttribute`, which is every way a
15582
+ consumer writes one. The snapshot could only ever be true for an element
15583
+ already in the document when `customElements.define` ran.
15584
+
15585
+ Nothing overwrites it either, which is what makes reading it late correct
15586
+ rather than merely later: `selected` does not reflect, for the reason
15587
+ `willUpdate` records, so the group's writes never reach the attribute and
15588
+ what it says is what the markup said.
15526
15589
 
15527
15590
  **The deeper half is not this.** State reflecting under the declaration's
15528
15591
  name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -15553,9 +15616,22 @@ export type HelixHeadlessToggleSolidJsProps = {
15553
15616
 
15554
15617
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
15555
15618
  live state that does not reflect, and those are two different facts. This
15556
- element has one `selected` doing both jobs, so what is captured here is what
15557
- the markup said at upgrade, before anything could overwrite it: read the
15558
- attribute later and the listbox's own writes answer instead.
15619
+ element has one `selected` doing both jobs, so the declaration is the
15620
+ attribute and the state is the property.
15621
+
15622
+ **The attribute, read when it is asked for, and never a snapshot taken in
15623
+ the constructor.** A field initializer runs there, and an element the HTML
15624
+ parser created has none of its attributes yet at that moment: measured on
15625
+ this element, on `Option` and on `Radio`, `<helix-toggle value="light"
15626
+ selected>` reported `defaultSelected` as `false` both from parsed markup
15627
+ and from `createElement` followed by `setAttribute`, which is every way a
15628
+ consumer writes one. The snapshot could only ever be true for an element
15629
+ already in the document when `customElements.define` ran.
15630
+
15631
+ Nothing overwrites it either, which is what makes reading it late correct
15632
+ rather than merely later: `selected` does not reflect, for the reason
15633
+ `willUpdate` records, so the group's writes never reach the attribute and
15634
+ what it says is what the markup said.
15559
15635
 
15560
15636
  **The deeper half is not this.** State reflecting under the declaration's
15561
15637
  name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -15901,8 +15977,6 @@ The shape is `Carousel`'s, which is the nearest thing in the library: a
15901
15977
  "onhelix-complete"?: ((e: HelixHeadlessTourHelixCompleteElementEvent) => void) | undefined;
15902
15978
  /** A stop's own controls asking the tour to move, dispatched by the stop and heard here because the tour is what moves. */
15903
15979
  "onhelix-tour-ask"?: ((e: HelixHeadlessTourHelixTourAskElementEvent) => void) | undefined;
15904
- /** Says the state moved, carrying `newState` and `oldState`. */
15905
- ontoggle?: ((e: HelixHeadlessTourElementEvent) => void) | undefined;
15906
15980
  };
15907
15981
 
15908
15982
  export type HelixHeadlessTourSolidJsProps = {
@@ -15957,8 +16031,6 @@ The shape is `Carousel`'s, which is the nearest thing in the library: a
15957
16031
  "on:helix-complete"?: ((e: HelixHeadlessTourHelixCompleteElementEvent) => void) | undefined;
15958
16032
  /** A stop's own controls asking the tour to move, dispatched by the stop and heard here because the tour is what moves. */
15959
16033
  "on:helix-tour-ask"?: ((e: HelixHeadlessTourHelixTourAskElementEvent) => void) | undefined;
15960
- /** Says the state moved, carrying `newState` and `oldState`. */
15961
- "on:toggle"?: ((e: HelixHeadlessTourElementEvent) => void) | undefined;
15962
16034
 
15963
16035
  /** Set the innerHTML of the element */
15964
16036
  innerHTML?: (string) | undefined;
@@ -26836,6 +26908,7 @@ export type CustomElements = {
26836
26908
  * - `actions`: What a reader can do about it, under the words it is about. Drawn always rather than on hover, because an action is the point of the row and not chrome around it.
26837
26909
  * - `caption`: A second line qualifying it, quieter than the first. A bare slot rather than a box, so an item without one pays nothing for it; style it through `::slotted()`.
26838
26910
  * - `detail`: A block belonging to the row rather than a line about it: a quoted comment, a status moving from one value to another, a preview. Unlike `caption` nothing here sets a size or an ink, because whatever fills it usually brings its own.
26911
+ * - `dismiss`: Replaces the glyph inside the dismiss control, which is drawn only where the row is `dismissible`.
26839
26912
  * - `media`: An avatar or icon identifying who or what it came from.
26840
26913
  *
26841
26914
  * ## Methods
@@ -27561,15 +27634,27 @@ export type CustomElements = {
27561
27634
  *
27562
27635
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
27563
27636
  * live state that does not reflect, and those are two different facts. This
27564
- * element has one `selected` doing both jobs, so what is captured here is what
27565
- * the markup said at upgrade, before anything could overwrite it: read the
27566
- * attribute later and the listbox's own writes answer instead.
27567
- *
27568
- * **The deeper half is 302 and is not this.** State reflecting under the
27569
- * declaration's name is the fault `TreeItem` already avoids by mirroring to
27570
- * `data-selected`, and four families here still write `selected` back into a
27571
- * consumer's markup. Splitting them means moving what every stylesheet selects
27572
- * on, which is a change of its own rather than a property being added. (property only)
27637
+ * element has one `selected` doing both jobs, so the declaration is the
27638
+ * attribute and the state is the property.
27639
+ *
27640
+ * **The attribute, read when it is asked for, and never a snapshot taken in
27641
+ * the constructor.** A field initializer runs there, and an element the HTML
27642
+ * parser created has none of its attributes yet at that moment: measured on
27643
+ * this element, on `Radio` and on `Toggle`, `<helix-option value="a"
27644
+ * selected>` reported `defaultSelected` as `false` both from parsed markup
27645
+ * and from `createElement` followed by `setAttribute`, which is every way a
27646
+ * consumer writes one. The snapshot could only ever be true for an element
27647
+ * already in the document when `customElements.define` ran.
27648
+ *
27649
+ * Nothing overwrites it either, which is what makes reading it late correct
27650
+ * rather than merely later: `selected` does not reflect, for the reason
27651
+ * `willUpdate` records, so the listbox's writes never reach the attribute and
27652
+ * what it says is what the markup said.
27653
+ *
27654
+ * **The deeper half is not this.** State reflecting under the declaration's
27655
+ * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
27656
+ * Splitting them means moving what every stylesheet selects on, which is a
27657
+ * change of its own rather than a property being added. (property only)
27573
27658
  * - `text`: The words, for a listbox that has to match text against them.
27574
27659
  *
27575
27660
  * Read from the rendered content rather than required as a property, because
@@ -28948,9 +29033,22 @@ export type CustomElements = {
28948
29033
  *
28949
29034
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
28950
29035
  * live state that does not reflect, and those are two different facts. This
28951
- * element has one `selected` doing both jobs, so what is captured here is what
28952
- * the markup said at upgrade, before anything could overwrite it: read the
28953
- * attribute later and the listbox's own writes answer instead.
29036
+ * element has one `selected` doing both jobs, so the declaration is the
29037
+ * attribute and the state is the property.
29038
+ *
29039
+ * **The attribute, read when it is asked for, and never a snapshot taken in
29040
+ * the constructor.** A field initializer runs there, and an element the HTML
29041
+ * parser created has none of its attributes yet at that moment: measured on
29042
+ * this element, on `Option` and on `Toggle`, `<helix-radio value="a"
29043
+ * selected>` reported `defaultSelected` as `false` both from parsed markup
29044
+ * and from `createElement` followed by `setAttribute`, which is every way a
29045
+ * consumer writes one. The snapshot could only ever be true for an element
29046
+ * already in the document when `customElements.define` ran.
29047
+ *
29048
+ * Nothing overwrites it either, which is what makes reading it late correct
29049
+ * rather than merely later: `selected` does not reflect, for the reason
29050
+ * `willUpdate` records, so the group's writes never reach the attribute and
29051
+ * what it says is what the markup said.
28954
29052
  *
28955
29053
  * **The deeper half is not this.** State reflecting under the declaration's
28956
29054
  * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -29885,6 +29983,13 @@ export type CustomElements = {
29885
29983
  * **A range is two of them.** There is no native two-thumb range, so two are
29886
29984
  * stacked on one track and each thumb keeps its own.
29887
29985
  *
29986
+ * **`required` arrives with the field mixin and cannot fail here**, which is
29987
+ * worth saying rather than leaving a reader to find. A range is never empty:
29988
+ * the platform shows its own midpoint whatever is set, and `willUpdate` seeds
29989
+ * that midpoint into `defaultValue` so the value agrees with the handle from the
29990
+ * first render. HTML does not apply `required` to a range either, so it stays
29991
+ * off the control and the marker beside the label is all it does.
29992
+ *
29888
29993
  * ## Attributes & Properties
29889
29994
  *
29890
29995
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -30049,9 +30154,9 @@ export type CustomElements = {
30049
30154
  * CSS variables available for styling the component.
30050
30155
  *
30051
30156
  * - `--slider-fraction`: The value as a fraction of the range, 0 to 1. (default: `undefined`)
30052
- * - `--slider-from`: Where the filled span starts, as a percentage of the track. (default: `undefined`)
30157
+ * - `--slider-from`: Where a range's filled span starts, as a fraction of the track, 0 to 1. (default: `undefined`)
30053
30158
  * - `--slider-marker-at`: Where one marker sits, as a percentage of the track. (default: `undefined`)
30054
- * - `--slider-to`: Where the filled span ends, as a percentage of the track. (default: `undefined`)
30159
+ * - `--slider-to`: Where a range's filled span ends, as a fraction of the track, 0 to 1. (default: `undefined`)
30055
30160
  *
30056
30161
  * ## CSS Parts
30057
30162
  *
@@ -30559,8 +30664,8 @@ export type CustomElements = {
30559
30664
  *
30560
30665
  * Events that will be emitted by the component.
30561
30666
  *
30562
- * - `helix-before-collapse`: Fired before a pane shuts or reopens, and cancelable.
30563
- * - `helix-before-resize`: Fired before the divider settles, and cancelable.
30667
+ * - `helix-before-collapse`: Fired before a pane shuts or reopens, and only where the position it is derived from stood. Cancelable: refusing it leaves the pane as it was and the divider where the gesture put it.
30668
+ * - `helix-before-resize`: Fired before the divider settles. Cancelable: refusing it takes the whole of where the gesture ended, so no collapse follows from it either. A drag has already drawn itself by then and holds where it was dropped until the consumer assigns their own.
30564
30669
  *
30565
30670
  * ## Slots
30566
30671
  *
@@ -33118,6 +33223,8 @@ export type CustomElements = {
33118
33223
  * Areas where markup can be added to the component.
33119
33224
  *
33120
33225
  * - `(default)`: The group's items.
33226
+ * - `end`: Whatever sits after the track on its own line, such as a count or a reset.
33227
+ * - `start`: Whatever sits before the track on its own line, such as an icon or a caption.
33121
33228
  *
33122
33229
  * ## Methods
33123
33230
  *
@@ -33217,9 +33324,22 @@ export type CustomElements = {
33217
33324
  *
33218
33325
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
33219
33326
  * live state that does not reflect, and those are two different facts. This
33220
- * element has one `selected` doing both jobs, so what is captured here is what
33221
- * the markup said at upgrade, before anything could overwrite it: read the
33222
- * attribute later and the listbox's own writes answer instead.
33327
+ * element has one `selected` doing both jobs, so the declaration is the
33328
+ * attribute and the state is the property.
33329
+ *
33330
+ * **The attribute, read when it is asked for, and never a snapshot taken in
33331
+ * the constructor.** A field initializer runs there, and an element the HTML
33332
+ * parser created has none of its attributes yet at that moment: measured on
33333
+ * this element, on `Option` and on `Radio`, `<helix-toggle value="light"
33334
+ * selected>` reported `defaultSelected` as `false` both from parsed markup
33335
+ * and from `createElement` followed by `setAttribute`, which is every way a
33336
+ * consumer writes one. The snapshot could only ever be true for an element
33337
+ * already in the document when `customElements.define` ran.
33338
+ *
33339
+ * Nothing overwrites it either, which is what makes reading it late correct
33340
+ * rather than merely later: `selected` does not reflect, for the reason
33341
+ * `willUpdate` records, so the group's writes never reach the attribute and
33342
+ * what it says is what the markup said.
33223
33343
  *
33224
33344
  * **The deeper half is not this.** State reflecting under the declaration's
33225
33345
  * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -33629,7 +33749,6 @@ export type CustomElements = {
33629
33749
  * - `helix-before-close`: Fired before the reader leaves early. Cancelable: refusing it takes the decision and nothing moves.
33630
33750
  * - `helix-complete`: Fired when the last stop is finished.
33631
33751
  * - `helix-tour-ask`: A stop's own controls asking the tour to move, dispatched by the stop and heard here because the tour is what moves.
33632
- * - `toggle`: Says the state moved, carrying `newState` and `oldState`.
33633
33752
  *
33634
33753
  * ## Slots
33635
33754
  *
@@ -44619,6 +44738,7 @@ export type CustomElementsSolidJs = {
44619
44738
  * - `actions`: What a reader can do about it, under the words it is about. Drawn always rather than on hover, because an action is the point of the row and not chrome around it.
44620
44739
  * - `caption`: A second line qualifying it, quieter than the first. A bare slot rather than a box, so an item without one pays nothing for it; style it through `::slotted()`.
44621
44740
  * - `detail`: A block belonging to the row rather than a line about it: a quoted comment, a status moving from one value to another, a preview. Unlike `caption` nothing here sets a size or an ink, because whatever fills it usually brings its own.
44741
+ * - `dismiss`: Replaces the glyph inside the dismiss control, which is drawn only where the row is `dismissible`.
44622
44742
  * - `media`: An avatar or icon identifying who or what it came from.
44623
44743
  *
44624
44744
  * ## Methods
@@ -45349,15 +45469,27 @@ export type CustomElementsSolidJs = {
45349
45469
  *
45350
45470
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
45351
45471
  * live state that does not reflect, and those are two different facts. This
45352
- * element has one `selected` doing both jobs, so what is captured here is what
45353
- * the markup said at upgrade, before anything could overwrite it: read the
45354
- * attribute later and the listbox's own writes answer instead.
45355
- *
45356
- * **The deeper half is 302 and is not this.** State reflecting under the
45357
- * declaration's name is the fault `TreeItem` already avoids by mirroring to
45358
- * `data-selected`, and four families here still write `selected` back into a
45359
- * consumer's markup. Splitting them means moving what every stylesheet selects
45360
- * on, which is a change of its own rather than a property being added. (property only)
45472
+ * element has one `selected` doing both jobs, so the declaration is the
45473
+ * attribute and the state is the property.
45474
+ *
45475
+ * **The attribute, read when it is asked for, and never a snapshot taken in
45476
+ * the constructor.** A field initializer runs there, and an element the HTML
45477
+ * parser created has none of its attributes yet at that moment: measured on
45478
+ * this element, on `Radio` and on `Toggle`, `<helix-option value="a"
45479
+ * selected>` reported `defaultSelected` as `false` both from parsed markup
45480
+ * and from `createElement` followed by `setAttribute`, which is every way a
45481
+ * consumer writes one. The snapshot could only ever be true for an element
45482
+ * already in the document when `customElements.define` ran.
45483
+ *
45484
+ * Nothing overwrites it either, which is what makes reading it late correct
45485
+ * rather than merely later: `selected` does not reflect, for the reason
45486
+ * `willUpdate` records, so the listbox's writes never reach the attribute and
45487
+ * what it says is what the markup said.
45488
+ *
45489
+ * **The deeper half is not this.** State reflecting under the declaration's
45490
+ * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
45491
+ * Splitting them means moving what every stylesheet selects on, which is a
45492
+ * change of its own rather than a property being added. (property only)
45361
45493
  * - `text`: The words, for a listbox that has to match text against them.
45362
45494
  *
45363
45495
  * Read from the rendered content rather than required as a property, because
@@ -46761,9 +46893,22 @@ export type CustomElementsSolidJs = {
46761
46893
  *
46762
46894
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
46763
46895
  * live state that does not reflect, and those are two different facts. This
46764
- * element has one `selected` doing both jobs, so what is captured here is what
46765
- * the markup said at upgrade, before anything could overwrite it: read the
46766
- * attribute later and the listbox's own writes answer instead.
46896
+ * element has one `selected` doing both jobs, so the declaration is the
46897
+ * attribute and the state is the property.
46898
+ *
46899
+ * **The attribute, read when it is asked for, and never a snapshot taken in
46900
+ * the constructor.** A field initializer runs there, and an element the HTML
46901
+ * parser created has none of its attributes yet at that moment: measured on
46902
+ * this element, on `Option` and on `Toggle`, `<helix-radio value="a"
46903
+ * selected>` reported `defaultSelected` as `false` both from parsed markup
46904
+ * and from `createElement` followed by `setAttribute`, which is every way a
46905
+ * consumer writes one. The snapshot could only ever be true for an element
46906
+ * already in the document when `customElements.define` ran.
46907
+ *
46908
+ * Nothing overwrites it either, which is what makes reading it late correct
46909
+ * rather than merely later: `selected` does not reflect, for the reason
46910
+ * `willUpdate` records, so the group's writes never reach the attribute and
46911
+ * what it says is what the markup said.
46767
46912
  *
46768
46913
  * **The deeper half is not this.** State reflecting under the declaration's
46769
46914
  * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -47715,6 +47860,13 @@ export type CustomElementsSolidJs = {
47715
47860
  * **A range is two of them.** There is no native two-thumb range, so two are
47716
47861
  * stacked on one track and each thumb keeps its own.
47717
47862
  *
47863
+ * **`required` arrives with the field mixin and cannot fail here**, which is
47864
+ * worth saying rather than leaving a reader to find. A range is never empty:
47865
+ * the platform shows its own midpoint whatever is set, and `willUpdate` seeds
47866
+ * that midpoint into `defaultValue` so the value agrees with the handle from the
47867
+ * first render. HTML does not apply `required` to a range either, so it stays
47868
+ * off the control and the marker beside the label is all it does.
47869
+ *
47718
47870
  * ## Attributes & Properties
47719
47871
  *
47720
47872
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -47879,9 +48031,9 @@ export type CustomElementsSolidJs = {
47879
48031
  * CSS variables available for styling the component.
47880
48032
  *
47881
48033
  * - `--slider-fraction`: The value as a fraction of the range, 0 to 1. (default: `undefined`)
47882
- * - `--slider-from`: Where the filled span starts, as a percentage of the track. (default: `undefined`)
48034
+ * - `--slider-from`: Where a range's filled span starts, as a fraction of the track, 0 to 1. (default: `undefined`)
47883
48035
  * - `--slider-marker-at`: Where one marker sits, as a percentage of the track. (default: `undefined`)
47884
- * - `--slider-to`: Where the filled span ends, as a percentage of the track. (default: `undefined`)
48036
+ * - `--slider-to`: Where a range's filled span ends, as a fraction of the track, 0 to 1. (default: `undefined`)
47885
48037
  *
47886
48038
  * ## CSS Parts
47887
48039
  *
@@ -48399,8 +48551,8 @@ export type CustomElementsSolidJs = {
48399
48551
  *
48400
48552
  * Events that will be emitted by the component.
48401
48553
  *
48402
- * - `helix-before-collapse`: Fired before a pane shuts or reopens, and cancelable.
48403
- * - `helix-before-resize`: Fired before the divider settles, and cancelable.
48554
+ * - `helix-before-collapse`: Fired before a pane shuts or reopens, and only where the position it is derived from stood. Cancelable: refusing it leaves the pane as it was and the divider where the gesture put it.
48555
+ * - `helix-before-resize`: Fired before the divider settles. Cancelable: refusing it takes the whole of where the gesture ended, so no collapse follows from it either. A drag has already drawn itself by then and holds where it was dropped until the consumer assigns their own.
48404
48556
  *
48405
48557
  * ## Slots
48406
48558
  *
@@ -51015,6 +51167,8 @@ export type CustomElementsSolidJs = {
51015
51167
  * Areas where markup can be added to the component.
51016
51168
  *
51017
51169
  * - `(default)`: The group's items.
51170
+ * - `end`: Whatever sits after the track on its own line, such as a count or a reset.
51171
+ * - `start`: Whatever sits before the track on its own line, such as an icon or a caption.
51018
51172
  *
51019
51173
  * ## Methods
51020
51174
  *
@@ -51115,9 +51269,22 @@ export type CustomElementsSolidJs = {
51115
51269
  *
51116
51270
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
51117
51271
  * live state that does not reflect, and those are two different facts. This
51118
- * element has one `selected` doing both jobs, so what is captured here is what
51119
- * the markup said at upgrade, before anything could overwrite it: read the
51120
- * attribute later and the listbox's own writes answer instead.
51272
+ * element has one `selected` doing both jobs, so the declaration is the
51273
+ * attribute and the state is the property.
51274
+ *
51275
+ * **The attribute, read when it is asked for, and never a snapshot taken in
51276
+ * the constructor.** A field initializer runs there, and an element the HTML
51277
+ * parser created has none of its attributes yet at that moment: measured on
51278
+ * this element, on `Option` and on `Radio`, `<helix-toggle value="light"
51279
+ * selected>` reported `defaultSelected` as `false` both from parsed markup
51280
+ * and from `createElement` followed by `setAttribute`, which is every way a
51281
+ * consumer writes one. The snapshot could only ever be true for an element
51282
+ * already in the document when `customElements.define` ran.
51283
+ *
51284
+ * Nothing overwrites it either, which is what makes reading it late correct
51285
+ * rather than merely later: `selected` does not reflect, for the reason
51286
+ * `willUpdate` records, so the group's writes never reach the attribute and
51287
+ * what it says is what the markup said.
51121
51288
  *
51122
51289
  * **The deeper half is not this.** State reflecting under the declaration's
51123
51290
  * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -51536,7 +51703,6 @@ export type CustomElementsSolidJs = {
51536
51703
  * - `helix-before-close`: Fired before the reader leaves early. Cancelable: refusing it takes the decision and nothing moves.
51537
51704
  * - `helix-complete`: Fired when the last stop is finished.
51538
51705
  * - `helix-tour-ask`: A stop's own controls asking the tour to move, dispatched by the stop and heard here because the tour is what moves.
51539
- * - `toggle`: Says the state moved, carrying `newState` and `oldState`.
51540
51706
  *
51541
51707
  * ## Slots
51542
51708
  *
@@ -52860,11 +53026,11 @@ export type CustomCssProperties = {
52860
53026
  "--chart-tick"?: (string) | undefined;
52861
53027
  /** The value as a fraction of the range, 0 to 1. */
52862
53028
  "--slider-fraction"?: (string) | undefined;
52863
- /** Where the filled span starts, as a percentage of the track. */
53029
+ /** Where a range's filled span starts, as a fraction of the track, 0 to 1. */
52864
53030
  "--slider-from"?: (string) | undefined;
52865
53031
  /** Where one marker sits, as a percentage of the track. */
52866
53032
  "--slider-marker-at"?: (string) | undefined;
52867
- /** Where the filled span ends, as a percentage of the track. */
53033
+ /** Where a range's filled span ends, as a fraction of the track, 0 to 1. */
52868
53034
  "--slider-to"?: (string) | undefined;
52869
53035
  /** Where a nested splitter crosses this one, as a percentage. */
52870
53036
  "--splitter-corner-at"?: (string) | undefined;