@fusion.dev/helix 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.
@@ -9,14 +9,14 @@ import type { CSSResultGroup } from 'lit';
9
9
  * one fill appearing as another disappears.
10
10
  *
11
11
  * @since 0.1.0
12
- * @status experimental
12
+ * @status stable
13
13
  * @category actions
14
14
  * @aliases Segment, NavItem, Option
15
15
  * @documentation https://fusion.dev/helix/components/toggle
16
16
  *
17
17
  * @slot - The item's label.
18
18
  *
19
- * @csspart item - The button or anchor.
19
+ * @csspart item - The radio button.
20
20
  */
21
21
  export declare class HelixToggle extends HelixHeadlessToggle {
22
22
  static styles: CSSResultGroup;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix",
3
3
  "description": "Styled component tier. Extends the headless tier with token-driven presentation.",
4
- "version": "0.42.0",
4
+ "version": "0.44.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -47,14 +47,14 @@
47
47
  },
48
48
  "bugs": "https://github.com/project-fusion/fusion/issues",
49
49
  "dependencies": {
50
- "@fusion.dev/helix-core": "0.42.0",
51
- "@fusion.dev/helix-headless": "0.42.0",
52
- "@fusion.dev/helix-styles": "0.42.0"
50
+ "@fusion.dev/helix-core": "0.44.0",
51
+ "@fusion.dev/helix-headless": "0.44.0",
52
+ "@fusion.dev/helix-styles": "0.44.0"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@custom-elements-manifest/analyzer": "^0.11.0",
56
- "@fusion.dev/helix-cem": "0.42.0",
57
- "@fusion.dev/helix-testing": "0.42.0",
56
+ "@fusion.dev/helix-cem": "0.44.0",
57
+ "@fusion.dev/helix-testing": "0.44.0",
58
58
  "@fusion.dev/scripts": "0.0.0-dev",
59
59
  "@happy-dom/global-registrator": "^20.0.0",
60
60
  "@lit-labs/ssr": "^4.1.0",
package/types/jsx.d.ts CHANGED
@@ -12088,15 +12088,27 @@ Written by the listbox. */
12088
12088
 
12089
12089
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
12090
12090
  live state that does not reflect, and those are two different facts. This
12091
- element has one `selected` doing both jobs, so what is captured here is what
12092
- the markup said at upgrade, before anything could overwrite it: read the
12093
- attribute later and the listbox's own writes answer instead.
12094
-
12095
- **The deeper half is 302 and is not this.** State reflecting under the
12096
- declaration's name is the fault `TreeItem` already avoids by mirroring to
12097
- `data-selected`, and four families here still write `selected` back into a
12098
- consumer's markup. Splitting them means moving what every stylesheet selects
12099
- on, which is a change of its own rather than a property being added. */
12091
+ element has one `selected` doing both jobs, so the declaration is the
12092
+ attribute and the state is the property.
12093
+
12094
+ **The attribute, read when it is asked for, and never a snapshot taken in
12095
+ the constructor.** A field initializer runs there, and an element the HTML
12096
+ parser created has none of its attributes yet at that moment: measured on
12097
+ this element, on `Radio` and on `Toggle`, `<helix-option value="a"
12098
+ selected>` reported `defaultSelected` as `false` both from parsed markup
12099
+ and from `createElement` followed by `setAttribute`, which is every way a
12100
+ consumer writes one. The snapshot could only ever be true for an element
12101
+ already in the document when `customElements.define` ran.
12102
+
12103
+ Nothing overwrites it either, which is what makes reading it late correct
12104
+ rather than merely later: `selected` does not reflect, for the reason
12105
+ `willUpdate` records, so the listbox's writes never reach the attribute and
12106
+ what it says is what the markup said.
12107
+
12108
+ **The deeper half is not this.** State reflecting under the declaration's
12109
+ name is the fault `TreeItem` avoids by mirroring to `data-selected`.
12110
+ Splitting them means moving what every stylesheet selects on, which is a
12111
+ change of its own rather than a property being added. */
12100
12112
  defaultSelected?: (HelixOption["defaultSelected"]) | undefined;
12101
12113
 
12102
12114
  /** Fired when this choice is made. Cancelable: refusing it takes the decision and nothing moves. */
@@ -12183,15 +12195,27 @@ Written by the listbox. */
12183
12195
 
12184
12196
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
12185
12197
  live state that does not reflect, and those are two different facts. This
12186
- element has one `selected` doing both jobs, so what is captured here is what
12187
- the markup said at upgrade, before anything could overwrite it: read the
12188
- attribute later and the listbox's own writes answer instead.
12189
-
12190
- **The deeper half is 302 and is not this.** State reflecting under the
12191
- declaration's name is the fault `TreeItem` already avoids by mirroring to
12192
- `data-selected`, and four families here still write `selected` back into a
12193
- consumer's markup. Splitting them means moving what every stylesheet selects
12194
- on, which is a change of its own rather than a property being added. */
12198
+ element has one `selected` doing both jobs, so the declaration is the
12199
+ attribute and the state is the property.
12200
+
12201
+ **The attribute, read when it is asked for, and never a snapshot taken in
12202
+ the constructor.** A field initializer runs there, and an element the HTML
12203
+ parser created has none of its attributes yet at that moment: measured on
12204
+ this element, on `Radio` and on `Toggle`, `<helix-option value="a"
12205
+ selected>` reported `defaultSelected` as `false` both from parsed markup
12206
+ and from `createElement` followed by `setAttribute`, which is every way a
12207
+ consumer writes one. The snapshot could only ever be true for an element
12208
+ already in the document when `customElements.define` ran.
12209
+
12210
+ Nothing overwrites it either, which is what makes reading it late correct
12211
+ rather than merely later: `selected` does not reflect, for the reason
12212
+ `willUpdate` records, so the listbox's writes never reach the attribute and
12213
+ what it says is what the markup said.
12214
+
12215
+ **The deeper half is not this.** State reflecting under the declaration's
12216
+ name is the fault `TreeItem` avoids by mirroring to `data-selected`.
12217
+ Splitting them means moving what every stylesheet selects on, which is a
12218
+ change of its own rather than a property being added. */
12195
12219
  "prop:defaultSelected"?: (HelixOption["defaultSelected"]) | undefined;
12196
12220
  /** Fired when this choice is made. Cancelable: refusing it takes the decision and nothing moves. */
12197
12221
  "on:helix-select"?: ((e: HelixOptionHelixSelectElementEvent) => void) | undefined;
@@ -13590,9 +13614,22 @@ Written by the group. */
13590
13614
 
13591
13615
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
13592
13616
  live state that does not reflect, and those are two different facts. This
13593
- element has one `selected` doing both jobs, so what is captured here is what
13594
- the markup said at upgrade, before anything could overwrite it: read the
13595
- attribute later and the listbox's own writes answer instead.
13617
+ element has one `selected` doing both jobs, so the declaration is the
13618
+ attribute and the state is the property.
13619
+
13620
+ **The attribute, read when it is asked for, and never a snapshot taken in
13621
+ the constructor.** A field initializer runs there, and an element the HTML
13622
+ parser created has none of its attributes yet at that moment: measured on
13623
+ this element, on `Option` and on `Toggle`, `<helix-radio value="a"
13624
+ selected>` reported `defaultSelected` as `false` both from parsed markup
13625
+ and from `createElement` followed by `setAttribute`, which is every way a
13626
+ consumer writes one. The snapshot could only ever be true for an element
13627
+ already in the document when `customElements.define` ran.
13628
+
13629
+ Nothing overwrites it either, which is what makes reading it late correct
13630
+ rather than merely later: `selected` does not reflect, for the reason
13631
+ `willUpdate` records, so the group's writes never reach the attribute and
13632
+ what it says is what the markup said.
13596
13633
 
13597
13634
  **The deeper half is not this.** State reflecting under the declaration's
13598
13635
  name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -13667,9 +13704,22 @@ Written by the group. */
13667
13704
 
13668
13705
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
13669
13706
  live state that does not reflect, and those are two different facts. This
13670
- element has one `selected` doing both jobs, so what is captured here is what
13671
- the markup said at upgrade, before anything could overwrite it: read the
13672
- attribute later and the listbox's own writes answer instead.
13707
+ element has one `selected` doing both jobs, so the declaration is the
13708
+ attribute and the state is the property.
13709
+
13710
+ **The attribute, read when it is asked for, and never a snapshot taken in
13711
+ the constructor.** A field initializer runs there, and an element the HTML
13712
+ parser created has none of its attributes yet at that moment: measured on
13713
+ this element, on `Option` and on `Toggle`, `<helix-radio value="a"
13714
+ selected>` reported `defaultSelected` as `false` both from parsed markup
13715
+ and from `createElement` followed by `setAttribute`, which is every way a
13716
+ consumer writes one. The snapshot could only ever be true for an element
13717
+ already in the document when `customElements.define` ran.
13718
+
13719
+ Nothing overwrites it either, which is what makes reading it late correct
13720
+ rather than merely later: `selected` does not reflect, for the reason
13721
+ `willUpdate` records, so the group's writes never reach the attribute and
13722
+ what it says is what the markup said.
13673
13723
 
13674
13724
  **The deeper half is not this.** State reflecting under the declaration's
13675
13725
  name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -15626,11 +15676,11 @@ has an honest answer. */
15626
15676
  /** How far one arrow press moves it, as a percentage. */
15627
15677
  step?: (HelixSplitter["step"]) | undefined;
15628
15678
 
15629
- /** Fired before a pane shuts or reopens, and cancelable. */
15679
+ /** 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. */
15630
15680
  "onhelix-before-collapse"?: ((
15631
15681
  e: HelixSplitterHelixBeforeCollapseElementEvent,
15632
15682
  ) => void) | undefined;
15633
- /** Fired before the divider settles, and cancelable. */
15683
+ /** 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. */
15634
15684
  "onhelix-before-resize"?: ((
15635
15685
  e: HelixSplitterHelixBeforeResizeElementEvent,
15636
15686
  ) => void) | undefined;
@@ -15746,11 +15796,11 @@ has an honest answer. */
15746
15796
  "prop:orientation"?: (HelixSplitter["orientation"]) | undefined;
15747
15797
  /** How far one arrow press moves it, as a percentage. */
15748
15798
  "prop:step"?: (HelixSplitter["step"]) | undefined;
15749
- /** Fired before a pane shuts or reopens, and cancelable. */
15799
+ /** 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. */
15750
15800
  "on:helix-before-collapse"?: ((
15751
15801
  e: HelixSplitterHelixBeforeCollapseElementEvent,
15752
15802
  ) => void) | undefined;
15753
- /** Fired before the divider settles, and cancelable. */
15803
+ /** 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. */
15754
15804
  "on:helix-before-resize"?: ((
15755
15805
  e: HelixSplitterHelixBeforeResizeElementEvent,
15756
15806
  ) => void) | undefined;
@@ -18309,9 +18359,22 @@ export type HelixToggleProps = {
18309
18359
 
18310
18360
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
18311
18361
  live state that does not reflect, and those are two different facts. This
18312
- element has one `selected` doing both jobs, so what is captured here is what
18313
- the markup said at upgrade, before anything could overwrite it: read the
18314
- attribute later and the listbox's own writes answer instead.
18362
+ element has one `selected` doing both jobs, so the declaration is the
18363
+ attribute and the state is the property.
18364
+
18365
+ **The attribute, read when it is asked for, and never a snapshot taken in
18366
+ the constructor.** A field initializer runs there, and an element the HTML
18367
+ parser created has none of its attributes yet at that moment: measured on
18368
+ this element, on `Option` and on `Radio`, `<helix-toggle value="light"
18369
+ selected>` reported `defaultSelected` as `false` both from parsed markup
18370
+ and from `createElement` followed by `setAttribute`, which is every way a
18371
+ consumer writes one. The snapshot could only ever be true for an element
18372
+ already in the document when `customElements.define` ran.
18373
+
18374
+ Nothing overwrites it either, which is what makes reading it late correct
18375
+ rather than merely later: `selected` does not reflect, for the reason
18376
+ `willUpdate` records, so the group's writes never reach the attribute and
18377
+ what it says is what the markup said.
18315
18378
 
18316
18379
  **The deeper half is not this.** State reflecting under the declaration's
18317
18380
  name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -18342,9 +18405,22 @@ export type HelixToggleSolidJsProps = {
18342
18405
 
18343
18406
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
18344
18407
  live state that does not reflect, and those are two different facts. This
18345
- element has one `selected` doing both jobs, so what is captured here is what
18346
- the markup said at upgrade, before anything could overwrite it: read the
18347
- attribute later and the listbox's own writes answer instead.
18408
+ element has one `selected` doing both jobs, so the declaration is the
18409
+ attribute and the state is the property.
18410
+
18411
+ **The attribute, read when it is asked for, and never a snapshot taken in
18412
+ the constructor.** A field initializer runs there, and an element the HTML
18413
+ parser created has none of its attributes yet at that moment: measured on
18414
+ this element, on `Option` and on `Radio`, `<helix-toggle value="light"
18415
+ selected>` reported `defaultSelected` as `false` both from parsed markup
18416
+ and from `createElement` followed by `setAttribute`, which is every way a
18417
+ consumer writes one. The snapshot could only ever be true for an element
18418
+ already in the document when `customElements.define` ran.
18419
+
18420
+ Nothing overwrites it either, which is what makes reading it late correct
18421
+ rather than merely later: `selected` does not reflect, for the reason
18422
+ `willUpdate` records, so the group's writes never reach the attribute and
18423
+ what it says is what the markup said.
18348
18424
 
18349
18425
  **The deeper half is not this.** State reflecting under the declaration's
18350
18426
  name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -18734,8 +18810,6 @@ The shape is `Carousel`'s, which is the nearest thing in the library: a
18734
18810
  "onhelix-complete"?: ((e: HelixTourHelixCompleteElementEvent) => void) | undefined;
18735
18811
  /** A stop's own controls asking the tour to move, dispatched by the stop and heard here because the tour is what moves. */
18736
18812
  "onhelix-tour-ask"?: ((e: HelixTourHelixTourAskElementEvent) => void) | undefined;
18737
- /** Says the state moved, carrying `newState` and `oldState`. */
18738
- ontoggle?: ((e: HelixTourElementEvent) => void) | undefined;
18739
18813
  };
18740
18814
 
18741
18815
  export type HelixTourSolidJsProps = {
@@ -18788,8 +18862,6 @@ The shape is `Carousel`'s, which is the nearest thing in the library: a
18788
18862
  "on:helix-complete"?: ((e: HelixTourHelixCompleteElementEvent) => void) | undefined;
18789
18863
  /** A stop's own controls asking the tour to move, dispatched by the stop and heard here because the tour is what moves. */
18790
18864
  "on:helix-tour-ask"?: ((e: HelixTourHelixTourAskElementEvent) => void) | undefined;
18791
- /** Says the state moved, carrying `newState` and `oldState`. */
18792
- "on:toggle"?: ((e: HelixTourElementEvent) => void) | undefined;
18793
18865
 
18794
18866
  /** Set the innerHTML of the element */
18795
18867
  innerHTML?: (string) | undefined;
@@ -25278,9 +25350,12 @@ export type CustomElements = {
25278
25350
  * difference is the space between days, which belongs to the track rather than
25279
25351
  * to a `gap`, so a range can paint across the whole track and stay continuous.
25280
25352
  *
25281
- * Days from the neighboring months stay in place and stay selectable, marked
25282
- * quieter rather than hidden, so the first and last weeks are whole and the
25283
- * grid reads as a continuous run of dates.
25353
+ * Days from the neighboring months stay in place, marked quieter rather than
25354
+ * hidden, so the first and last weeks are whole rows rather than ragged ones.
25355
+ * They are filler and take no click, which the pointer says: no hover, and the
25356
+ * cursor a box that does nothing has. At `months="2"` the same date is a
25357
+ * trailing cell in one grid and a real one in the next, so a filler day that
25358
+ * could be chosen would put one answer on the page twice.
25284
25359
  *
25285
25360
  * ## Attributes & Properties
25286
25361
  *
@@ -30522,6 +30597,7 @@ export type CustomElements = {
30522
30597
  * - `media`: An avatar or icon identifying who or what it came from.
30523
30598
  * - `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()`.
30524
30599
  * - `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.
30600
+ * - `dismiss`: Replaces the glyph inside the dismiss control, which is drawn only where the row is `dismissible`.
30525
30601
  *
30526
30602
  * ## Methods
30527
30603
  *
@@ -31209,15 +31285,27 @@ export type CustomElements = {
31209
31285
  *
31210
31286
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
31211
31287
  * live state that does not reflect, and those are two different facts. This
31212
- * element has one `selected` doing both jobs, so what is captured here is what
31213
- * the markup said at upgrade, before anything could overwrite it: read the
31214
- * attribute later and the listbox's own writes answer instead.
31215
- *
31216
- * **The deeper half is 302 and is not this.** State reflecting under the
31217
- * declaration's name is the fault `TreeItem` already avoids by mirroring to
31218
- * `data-selected`, and four families here still write `selected` back into a
31219
- * consumer's markup. Splitting them means moving what every stylesheet selects
31220
- * on, which is a change of its own rather than a property being added. (property only)
31288
+ * element has one `selected` doing both jobs, so the declaration is the
31289
+ * attribute and the state is the property.
31290
+ *
31291
+ * **The attribute, read when it is asked for, and never a snapshot taken in
31292
+ * the constructor.** A field initializer runs there, and an element the HTML
31293
+ * parser created has none of its attributes yet at that moment: measured on
31294
+ * this element, on `Radio` and on `Toggle`, `<helix-option value="a"
31295
+ * selected>` reported `defaultSelected` as `false` both from parsed markup
31296
+ * and from `createElement` followed by `setAttribute`, which is every way a
31297
+ * consumer writes one. The snapshot could only ever be true for an element
31298
+ * already in the document when `customElements.define` ran.
31299
+ *
31300
+ * Nothing overwrites it either, which is what makes reading it late correct
31301
+ * rather than merely later: `selected` does not reflect, for the reason
31302
+ * `willUpdate` records, so the listbox's writes never reach the attribute and
31303
+ * what it says is what the markup said.
31304
+ *
31305
+ * **The deeper half is not this.** State reflecting under the declaration's
31306
+ * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
31307
+ * Splitting them means moving what every stylesheet selects on, which is a
31308
+ * change of its own rather than a property being added. (property only)
31221
31309
  * - `text`: The words, for a listbox that has to match text against them.
31222
31310
  *
31223
31311
  * Read from the rendered content rather than required as a property, because
@@ -32715,9 +32803,22 @@ export type CustomElements = {
32715
32803
  *
32716
32804
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
32717
32805
  * live state that does not reflect, and those are two different facts. This
32718
- * element has one `selected` doing both jobs, so what is captured here is what
32719
- * the markup said at upgrade, before anything could overwrite it: read the
32720
- * attribute later and the listbox's own writes answer instead.
32806
+ * element has one `selected` doing both jobs, so the declaration is the
32807
+ * attribute and the state is the property.
32808
+ *
32809
+ * **The attribute, read when it is asked for, and never a snapshot taken in
32810
+ * the constructor.** A field initializer runs there, and an element the HTML
32811
+ * parser created has none of its attributes yet at that moment: measured on
32812
+ * this element, on `Option` and on `Toggle`, `<helix-radio value="a"
32813
+ * selected>` reported `defaultSelected` as `false` both from parsed markup
32814
+ * and from `createElement` followed by `setAttribute`, which is every way a
32815
+ * consumer writes one. The snapshot could only ever be true for an element
32816
+ * already in the document when `customElements.define` ran.
32817
+ *
32818
+ * Nothing overwrites it either, which is what makes reading it late correct
32819
+ * rather than merely later: `selected` does not reflect, for the reason
32820
+ * `willUpdate` records, so the group's writes never reach the attribute and
32821
+ * what it says is what the markup said.
32721
32822
  *
32722
32823
  * **The deeper half is not this.** State reflecting under the declaration's
32723
32824
  * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -34399,9 +34500,9 @@ export type CustomElements = {
34399
34500
  * - `--slider-track-image`: The whole track, for a slider whose color is the value. (default: `undefined`)
34400
34501
  * - `--slider-track-size`: How thick the track is. The progress bar's own size by default, the two being the same object. (default: `undefined`)
34401
34502
  * - `--slider-fraction`: The value as a fraction of the range, 0 to 1. (default: `undefined`)
34402
- * - `--slider-from`: Where the filled span starts, as a percentage of the track. (default: `undefined`)
34503
+ * - `--slider-from`: Where a range's filled span starts, as a fraction of the track, 0 to 1. (default: `undefined`)
34403
34504
  * - `--slider-marker-at`: Where one marker sits, as a percentage of the track. (default: `undefined`)
34404
- * - `--slider-to`: Where the filled span ends, as a percentage of the track. (default: `undefined`)
34505
+ * - `--slider-to`: Where a range's filled span ends, as a fraction of the track, 0 to 1. (default: `undefined`)
34405
34506
  *
34406
34507
  * ## CSS Parts
34407
34508
  *
@@ -34964,8 +35065,8 @@ export type CustomElements = {
34964
35065
  *
34965
35066
  * Events that will be emitted by the component.
34966
35067
  *
34967
- * - `helix-before-collapse`: Fired before a pane shuts or reopens, and cancelable.
34968
- * - `helix-before-resize`: Fired before the divider settles, and cancelable.
35068
+ * - `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.
35069
+ * - `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.
34969
35070
  *
34970
35071
  * ## Slots
34971
35072
  *
@@ -37589,6 +37690,8 @@ export type CustomElements = {
37589
37690
  * Areas where markup can be added to the component.
37590
37691
  *
37591
37692
  * - `(default)`: The group's items.
37693
+ * - `end`: Whatever sits after the track on its own line, such as a count or a reset.
37694
+ * - `start`: Whatever sits before the track on its own line, such as an icon or a caption.
37592
37695
  *
37593
37696
  * ## Methods
37594
37697
  *
@@ -37690,9 +37793,22 @@ export type CustomElements = {
37690
37793
  *
37691
37794
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
37692
37795
  * live state that does not reflect, and those are two different facts. This
37693
- * element has one `selected` doing both jobs, so what is captured here is what
37694
- * the markup said at upgrade, before anything could overwrite it: read the
37695
- * attribute later and the listbox's own writes answer instead.
37796
+ * element has one `selected` doing both jobs, so the declaration is the
37797
+ * attribute and the state is the property.
37798
+ *
37799
+ * **The attribute, read when it is asked for, and never a snapshot taken in
37800
+ * the constructor.** A field initializer runs there, and an element the HTML
37801
+ * parser created has none of its attributes yet at that moment: measured on
37802
+ * this element, on `Option` and on `Radio`, `<helix-toggle value="light"
37803
+ * selected>` reported `defaultSelected` as `false` both from parsed markup
37804
+ * and from `createElement` followed by `setAttribute`, which is every way a
37805
+ * consumer writes one. The snapshot could only ever be true for an element
37806
+ * already in the document when `customElements.define` ran.
37807
+ *
37808
+ * Nothing overwrites it either, which is what makes reading it late correct
37809
+ * rather than merely later: `selected` does not reflect, for the reason
37810
+ * `willUpdate` records, so the group's writes never reach the attribute and
37811
+ * what it says is what the markup said.
37696
37812
  *
37697
37813
  * **The deeper half is not this.** State reflecting under the declaration's
37698
37814
  * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -37753,7 +37869,7 @@ export type CustomElements = {
37753
37869
  *
37754
37870
  * Custom selectors for styling elements within the component.
37755
37871
  *
37756
- * - `item`: The button or anchor.
37872
+ * - `item`: The radio button.
37757
37873
  *
37758
37874
  * ## CSS States
37759
37875
  *
@@ -38099,7 +38215,6 @@ export type CustomElements = {
38099
38215
  * - `helix-before-close`: Fired before the reader leaves early. Cancelable: refusing it takes the decision and nothing moves.
38100
38216
  * - `helix-complete`: Fired when the last stop is finished.
38101
38217
  * - `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.
38102
- * - `toggle`: Says the state moved, carrying `newState` and `oldState`.
38103
38218
  *
38104
38219
  * ## Slots
38105
38220
  *
@@ -44544,9 +44659,12 @@ export type CustomElementsSolidJs = {
44544
44659
  * difference is the space between days, which belongs to the track rather than
44545
44660
  * to a `gap`, so a range can paint across the whole track and stay continuous.
44546
44661
  *
44547
- * Days from the neighboring months stay in place and stay selectable, marked
44548
- * quieter rather than hidden, so the first and last weeks are whole and the
44549
- * grid reads as a continuous run of dates.
44662
+ * Days from the neighboring months stay in place, marked quieter rather than
44663
+ * hidden, so the first and last weeks are whole rows rather than ragged ones.
44664
+ * They are filler and take no click, which the pointer says: no hover, and the
44665
+ * cursor a box that does nothing has. At `months="2"` the same date is a
44666
+ * trailing cell in one grid and a real one in the next, so a filler day that
44667
+ * could be chosen would put one answer on the page twice.
44550
44668
  *
44551
44669
  * ## Attributes & Properties
44552
44670
  *
@@ -49899,6 +50017,7 @@ export type CustomElementsSolidJs = {
49899
50017
  * - `media`: An avatar or icon identifying who or what it came from.
49900
50018
  * - `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()`.
49901
50019
  * - `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.
50020
+ * - `dismiss`: Replaces the glyph inside the dismiss control, which is drawn only where the row is `dismissible`.
49902
50021
  *
49903
50022
  * ## Methods
49904
50023
  *
@@ -50601,15 +50720,27 @@ export type CustomElementsSolidJs = {
50601
50720
  *
50602
50721
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
50603
50722
  * live state that does not reflect, and those are two different facts. This
50604
- * element has one `selected` doing both jobs, so what is captured here is what
50605
- * the markup said at upgrade, before anything could overwrite it: read the
50606
- * attribute later and the listbox's own writes answer instead.
50607
- *
50608
- * **The deeper half is 302 and is not this.** State reflecting under the
50609
- * declaration's name is the fault `TreeItem` already avoids by mirroring to
50610
- * `data-selected`, and four families here still write `selected` back into a
50611
- * consumer's markup. Splitting them means moving what every stylesheet selects
50612
- * on, which is a change of its own rather than a property being added. (property only)
50723
+ * element has one `selected` doing both jobs, so the declaration is the
50724
+ * attribute and the state is the property.
50725
+ *
50726
+ * **The attribute, read when it is asked for, and never a snapshot taken in
50727
+ * the constructor.** A field initializer runs there, and an element the HTML
50728
+ * parser created has none of its attributes yet at that moment: measured on
50729
+ * this element, on `Radio` and on `Toggle`, `<helix-option value="a"
50730
+ * selected>` reported `defaultSelected` as `false` both from parsed markup
50731
+ * and from `createElement` followed by `setAttribute`, which is every way a
50732
+ * consumer writes one. The snapshot could only ever be true for an element
50733
+ * already in the document when `customElements.define` ran.
50734
+ *
50735
+ * Nothing overwrites it either, which is what makes reading it late correct
50736
+ * rather than merely later: `selected` does not reflect, for the reason
50737
+ * `willUpdate` records, so the listbox's writes never reach the attribute and
50738
+ * what it says is what the markup said.
50739
+ *
50740
+ * **The deeper half is not this.** State reflecting under the declaration's
50741
+ * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
50742
+ * Splitting them means moving what every stylesheet selects on, which is a
50743
+ * change of its own rather than a property being added. (property only)
50613
50744
  * - `text`: The words, for a listbox that has to match text against them.
50614
50745
  *
50615
50746
  * Read from the rendered content rather than required as a property, because
@@ -52144,9 +52275,22 @@ export type CustomElementsSolidJs = {
52144
52275
  *
52145
52276
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
52146
52277
  * live state that does not reflect, and those are two different facts. This
52147
- * element has one `selected` doing both jobs, so what is captured here is what
52148
- * the markup said at upgrade, before anything could overwrite it: read the
52149
- * attribute later and the listbox's own writes answer instead.
52278
+ * element has one `selected` doing both jobs, so the declaration is the
52279
+ * attribute and the state is the property.
52280
+ *
52281
+ * **The attribute, read when it is asked for, and never a snapshot taken in
52282
+ * the constructor.** A field initializer runs there, and an element the HTML
52283
+ * parser created has none of its attributes yet at that moment: measured on
52284
+ * this element, on `Option` and on `Toggle`, `<helix-radio value="a"
52285
+ * selected>` reported `defaultSelected` as `false` both from parsed markup
52286
+ * and from `createElement` followed by `setAttribute`, which is every way a
52287
+ * consumer writes one. The snapshot could only ever be true for an element
52288
+ * already in the document when `customElements.define` ran.
52289
+ *
52290
+ * Nothing overwrites it either, which is what makes reading it late correct
52291
+ * rather than merely later: `selected` does not reflect, for the reason
52292
+ * `willUpdate` records, so the group's writes never reach the attribute and
52293
+ * what it says is what the markup said.
52150
52294
  *
52151
52295
  * **The deeper half is not this.** State reflecting under the declaration's
52152
52296
  * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -53869,9 +54013,9 @@ export type CustomElementsSolidJs = {
53869
54013
  * - `--slider-track-image`: The whole track, for a slider whose color is the value. (default: `undefined`)
53870
54014
  * - `--slider-track-size`: How thick the track is. The progress bar's own size by default, the two being the same object. (default: `undefined`)
53871
54015
  * - `--slider-fraction`: The value as a fraction of the range, 0 to 1. (default: `undefined`)
53872
- * - `--slider-from`: Where the filled span starts, as a percentage of the track. (default: `undefined`)
54016
+ * - `--slider-from`: Where a range's filled span starts, as a fraction of the track, 0 to 1. (default: `undefined`)
53873
54017
  * - `--slider-marker-at`: Where one marker sits, as a percentage of the track. (default: `undefined`)
53874
- * - `--slider-to`: Where the filled span ends, as a percentage of the track. (default: `undefined`)
54018
+ * - `--slider-to`: Where a range's filled span ends, as a fraction of the track, 0 to 1. (default: `undefined`)
53875
54019
  *
53876
54020
  * ## CSS Parts
53877
54021
  *
@@ -54446,8 +54590,8 @@ export type CustomElementsSolidJs = {
54446
54590
  *
54447
54591
  * Events that will be emitted by the component.
54448
54592
  *
54449
- * - `helix-before-collapse`: Fired before a pane shuts or reopens, and cancelable.
54450
- * - `helix-before-resize`: Fired before the divider settles, and cancelable.
54593
+ * - `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.
54594
+ * - `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.
54451
54595
  *
54452
54596
  * ## Slots
54453
54597
  *
@@ -57137,6 +57281,8 @@ export type CustomElementsSolidJs = {
57137
57281
  * Areas where markup can be added to the component.
57138
57282
  *
57139
57283
  * - `(default)`: The group's items.
57284
+ * - `end`: Whatever sits after the track on its own line, such as a count or a reset.
57285
+ * - `start`: Whatever sits before the track on its own line, such as an icon or a caption.
57140
57286
  *
57141
57287
  * ## Methods
57142
57288
  *
@@ -57241,9 +57387,22 @@ export type CustomElementsSolidJs = {
57241
57387
  *
57242
57388
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
57243
57389
  * live state that does not reflect, and those are two different facts. This
57244
- * element has one `selected` doing both jobs, so what is captured here is what
57245
- * the markup said at upgrade, before anything could overwrite it: read the
57246
- * attribute later and the listbox's own writes answer instead.
57390
+ * element has one `selected` doing both jobs, so the declaration is the
57391
+ * attribute and the state is the property.
57392
+ *
57393
+ * **The attribute, read when it is asked for, and never a snapshot taken in
57394
+ * the constructor.** A field initializer runs there, and an element the HTML
57395
+ * parser created has none of its attributes yet at that moment: measured on
57396
+ * this element, on `Option` and on `Radio`, `<helix-toggle value="light"
57397
+ * selected>` reported `defaultSelected` as `false` both from parsed markup
57398
+ * and from `createElement` followed by `setAttribute`, which is every way a
57399
+ * consumer writes one. The snapshot could only ever be true for an element
57400
+ * already in the document when `customElements.define` ran.
57401
+ *
57402
+ * Nothing overwrites it either, which is what makes reading it late correct
57403
+ * rather than merely later: `selected` does not reflect, for the reason
57404
+ * `willUpdate` records, so the group's writes never reach the attribute and
57405
+ * what it says is what the markup said.
57247
57406
  *
57248
57407
  * **The deeper half is not this.** State reflecting under the declaration's
57249
57408
  * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -57304,7 +57463,7 @@ export type CustomElementsSolidJs = {
57304
57463
  *
57305
57464
  * Custom selectors for styling elements within the component.
57306
57465
  *
57307
- * - `item`: The button or anchor.
57466
+ * - `item`: The radio button.
57308
57467
  *
57309
57468
  * ## CSS States
57310
57469
  *
@@ -57659,7 +57818,6 @@ export type CustomElementsSolidJs = {
57659
57818
  * - `helix-before-close`: Fired before the reader leaves early. Cancelable: refusing it takes the decision and nothing moves.
57660
57819
  * - `helix-complete`: Fired when the last stop is finished.
57661
57820
  * - `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.
57662
- * - `toggle`: Says the state moved, carrying `newState` and `oldState`.
57663
57821
  *
57664
57822
  * ## Slots
57665
57823
  *
@@ -59731,11 +59889,11 @@ export type CustomCssProperties = {
59731
59889
  "--slider-track-size"?: (string) | undefined;
59732
59890
  /** The value as a fraction of the range, 0 to 1. */
59733
59891
  "--slider-fraction"?: (string) | undefined;
59734
- /** Where the filled span starts, as a percentage of the track. */
59892
+ /** Where a range's filled span starts, as a fraction of the track, 0 to 1. */
59735
59893
  "--slider-from"?: (string) | undefined;
59736
59894
  /** Where one marker sits, as a percentage of the track. */
59737
59895
  "--slider-marker-at"?: (string) | undefined;
59738
- /** Where the filled span ends, as a percentage of the track. */
59896
+ /** Where a range's filled span ends, as a fraction of the track, 0 to 1. */
59739
59897
  "--slider-to"?: (string) | undefined;
59740
59898
  /** How much of the line's color the wash takes where it meets the line. */
59741
59899
  "--sparkline-area-opacity"?: (string) | undefined;