@fusion.dev/helix 0.52.1 → 0.53.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.
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.52.1",
4
+ "version": "0.53.1",
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.52.1",
51
- "@fusion.dev/helix-headless": "0.52.1",
52
- "@fusion.dev/helix-styles": "0.52.1"
50
+ "@fusion.dev/helix-core": "0.53.1",
51
+ "@fusion.dev/helix-headless": "0.53.1",
52
+ "@fusion.dev/helix-styles": "0.53.1"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@custom-elements-manifest/analyzer": "^0.11.0",
56
- "@fusion.dev/helix-cem": "0.52.1",
57
- "@fusion.dev/helix-testing": "0.52.1",
56
+ "@fusion.dev/helix-cem": "0.53.1",
57
+ "@fusion.dev/helix-testing": "0.53.1",
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
@@ -11785,6 +11785,22 @@ separated.** A consumer wanting the whole feed carded says so once, in a
11785
11785
  document rule on the element, rather than on every item: this is a styled
11786
11786
  axis and a stylesheet is where it is set. */
11787
11787
  separation?: (HelixNotification["separation"]) | undefined;
11788
+ /** Whether it offers a control to take it away. */
11789
+ dismissible?: (HelixNotification["dismissible"]) | undefined;
11790
+ /** Accessible name for that control.
11791
+
11792
+ `attribute` is spelled out because Lit lowercases a property name to
11793
+ derive one rather than dash-casing it, so this would otherwise be
11794
+ reachable only as `dismisslabel`, which nobody would guess and no linter
11795
+ would catch. */
11796
+ "dismiss-label"?: (HelixNotification["dismissLabel"]) | undefined;
11797
+ /** Accessible name for that control.
11798
+
11799
+ `attribute` is spelled out because Lit lowercases a property name to
11800
+ derive one rather than dash-casing it, so this would otherwise be
11801
+ reachable only as `dismisslabel`, which nobody would guess and no linter
11802
+ would catch. */
11803
+ dismissLabel?: (HelixNotification["dismissLabel"]) | undefined;
11788
11804
  /** When it happened, as anything `Date` parses.
11789
11805
 
11790
11806
  An ISO string is what an API sends and what `<time datetime>` takes, so it
@@ -11810,12 +11826,6 @@ declaration. `:state(read)` is what the stylesheet reads.
11810
11826
  "default-read"?: (HelixNotification["defaultRead"]) | undefined;
11811
11827
  /** State to open with, where nothing declared one. */
11812
11828
  defaultRead?: (HelixNotification["defaultRead"]) | undefined;
11813
- /** Whether a reader may remove it. */
11814
- dismissible?: (HelixNotification["dismissible"]) | undefined;
11815
- /** Accessible name for the dismiss control. */
11816
- "dismiss-label"?: (HelixNotification["dismissLabel"]) | undefined;
11817
- /** Accessible name for the dismiss control. */
11818
- dismissLabel?: (HelixNotification["dismissLabel"]) | undefined;
11819
11829
  /** Locale for the timestamp.
11820
11830
 
11821
11831
  Empty is the runtime's own. */
@@ -11846,6 +11856,22 @@ separated.** A consumer wanting the whole feed carded says so once, in a
11846
11856
  document rule on the element, rather than on every item: this is a styled
11847
11857
  axis and a stylesheet is where it is set. */
11848
11858
  "prop:separation"?: (HelixNotification["separation"]) | undefined;
11859
+ /** Whether it offers a control to take it away. */
11860
+ "prop:dismissible"?: (HelixNotification["dismissible"]) | undefined;
11861
+ /** Accessible name for that control.
11862
+
11863
+ `attribute` is spelled out because Lit lowercases a property name to
11864
+ derive one rather than dash-casing it, so this would otherwise be
11865
+ reachable only as `dismisslabel`, which nobody would guess and no linter
11866
+ would catch. */
11867
+ "attr:dismiss-label"?: (HelixNotification["dismissLabel"]) | undefined;
11868
+ /** Accessible name for that control.
11869
+
11870
+ `attribute` is spelled out because Lit lowercases a property name to
11871
+ derive one rather than dash-casing it, so this would otherwise be
11872
+ reachable only as `dismisslabel`, which nobody would guess and no linter
11873
+ would catch. */
11874
+ "prop:dismissLabel"?: (HelixNotification["dismissLabel"]) | undefined;
11849
11875
  /** When it happened, as anything `Date` parses.
11850
11876
 
11851
11877
  An ISO string is what an API sends and what `<time datetime>` takes, so it
@@ -11871,12 +11897,6 @@ declaration. `:state(read)` is what the stylesheet reads.
11871
11897
  "bool:default-read"?: (HelixNotification["defaultRead"]) | undefined;
11872
11898
  /** State to open with, where nothing declared one. */
11873
11899
  "prop:defaultRead"?: (HelixNotification["defaultRead"]) | undefined;
11874
- /** Whether a reader may remove it. */
11875
- "prop:dismissible"?: (HelixNotification["dismissible"]) | undefined;
11876
- /** Accessible name for the dismiss control. */
11877
- "attr:dismiss-label"?: (HelixNotification["dismissLabel"]) | undefined;
11878
- /** Accessible name for the dismiss control. */
11879
- "prop:dismissLabel"?: (HelixNotification["dismissLabel"]) | undefined;
11880
11900
  /** Locale for the timestamp.
11881
11901
 
11882
11902
  Empty is the runtime's own. */
@@ -13979,13 +13999,15 @@ The circle stays in both. A card whose only marker was its own border would
13979
13999
  ask a reader to compare surfaces across a row to find the answer, and would
13980
14000
  leave nothing for a high-contrast display. */
13981
14001
  variant?: (HelixRadio["variant"]) | undefined;
13982
- /** Whether this choice can be made. */
14002
+ /** Whether this one can be chosen. */
13983
14003
  disabled?: (HelixRadio["disabled"]) | undefined;
13984
- /** Whether this is the current choice.
14004
+ /** Whether this is the current one.
13985
14005
 
13986
- Written by the group. */
14006
+ Written by the set rather than by a consumer, which is why it takes no
14007
+ default from an attribute here: a family whose selection a consumer
14008
+ declares in markup carries `defaultSelected` of its own to say so. */
13987
14009
  selected?: (HelixRadio["selected"]) | undefined;
13988
- /** Identifies this choice to the group, and is what the form submits. */
14010
+ /** Identifies this one to the set, and is what a form submits. */
13989
14011
  value?: (HelixRadio["value"]) | undefined;
13990
14012
  /** Whether the markup declared this one chosen, which is what a reset returns to.
13991
14013
 
@@ -14084,13 +14106,15 @@ The circle stays in both. A card whose only marker was its own border would
14084
14106
  ask a reader to compare surfaces across a row to find the answer, and would
14085
14107
  leave nothing for a high-contrast display. */
14086
14108
  "prop:variant"?: (HelixRadio["variant"]) | undefined;
14087
- /** Whether this choice can be made. */
14109
+ /** Whether this one can be chosen. */
14088
14110
  "prop:disabled"?: (HelixRadio["disabled"]) | undefined;
14089
- /** Whether this is the current choice.
14111
+ /** Whether this is the current one.
14090
14112
 
14091
- Written by the group. */
14113
+ Written by the set rather than by a consumer, which is why it takes no
14114
+ default from an attribute here: a family whose selection a consumer
14115
+ declares in markup carries `defaultSelected` of its own to say so. */
14092
14116
  "prop:selected"?: (HelixRadio["selected"]) | undefined;
14093
- /** Identifies this choice to the group, and is what the form submits. */
14117
+ /** Identifies this one to the set, and is what a form submits. */
14094
14118
  "prop:value"?: (HelixRadio["value"]) | undefined;
14095
14119
  /** Whether the markup declared this one chosen, which is what a reset returns to.
14096
14120
 
@@ -17264,11 +17288,15 @@ export type HelixTabHelixSelectElementEvent =
17264
17288
  HelixTabElementEvent<HelixSelectEvent>;
17265
17289
 
17266
17290
  export type HelixTabProps = {
17267
- /** Whether the tab can be chosen. */
17291
+ /** Whether this one can be chosen. */
17268
17292
  disabled?: (HelixTab["disabled"]) | undefined;
17269
- /** Whether this tab is the current one. */
17293
+ /** Whether this is the current one.
17294
+
17295
+ Written by the set rather than by a consumer, which is why it takes no
17296
+ default from an attribute here: a family whose selection a consumer
17297
+ declares in markup carries `defaultSelected` of its own to say so. */
17270
17298
  selected?: (HelixTab["selected"]) | undefined;
17271
- /** Identifies the tab, and pairs it with the panel of the same value. */
17299
+ /** Identifies this one to the set, and is what a form submits. */
17272
17300
  value?: (HelixTab["value"]) | undefined;
17273
17301
 
17274
17302
  /** Fired when the tab is chosen. Cancelable: refusing it takes the decision and nothing moves. */
@@ -17276,11 +17304,15 @@ export type HelixTabProps = {
17276
17304
  };
17277
17305
 
17278
17306
  export type HelixTabSolidJsProps = {
17279
- /** Whether the tab can be chosen. */
17307
+ /** Whether this one can be chosen. */
17280
17308
  "prop:disabled"?: (HelixTab["disabled"]) | undefined;
17281
- /** Whether this tab is the current one. */
17309
+ /** Whether this is the current one.
17310
+
17311
+ Written by the set rather than by a consumer, which is why it takes no
17312
+ default from an attribute here: a family whose selection a consumer
17313
+ declares in markup carries `defaultSelected` of its own to say so. */
17282
17314
  "prop:selected"?: (HelixTab["selected"]) | undefined;
17283
- /** Identifies the tab, and pairs it with the panel of the same value. */
17315
+ /** Identifies this one to the set, and is what a form submits. */
17284
17316
  "prop:value"?: (HelixTab["value"]) | undefined;
17285
17317
  /** Fired when the tab is chosen. Cancelable: refusing it takes the decision and nothing moves. */
17286
17318
  "on:helix-select"?: ((e: HelixTabHelixSelectElementEvent) => void) | undefined;
@@ -18936,11 +18968,15 @@ export type HelixToggleHelixSelectElementEvent =
18936
18968
  HelixToggleElementEvent<HelixSelectEvent>;
18937
18969
 
18938
18970
  export type HelixToggleProps = {
18939
- /** Whether the item can be chosen. */
18971
+ /** Whether this one can be chosen. */
18940
18972
  disabled?: (HelixToggle["disabled"]) | undefined;
18941
- /** Whether this item is the current one. */
18973
+ /** Whether this is the current one.
18974
+
18975
+ Written by the set rather than by a consumer, which is why it takes no
18976
+ default from an attribute here: a family whose selection a consumer
18977
+ declares in markup carries `defaultSelected` of its own to say so. */
18942
18978
  selected?: (HelixToggle["selected"]) | undefined;
18943
- /** Identifies the item to the group. */
18979
+ /** Identifies this one to the set, and is what a form submits. */
18944
18980
  value?: (HelixToggle["value"]) | undefined;
18945
18981
  /** Whether the markup declared this one chosen, which is what a reset returns to.
18946
18982
 
@@ -18982,11 +19018,15 @@ hydration reports and does not patch up. */
18982
19018
  };
18983
19019
 
18984
19020
  export type HelixToggleSolidJsProps = {
18985
- /** Whether the item can be chosen. */
19021
+ /** Whether this one can be chosen. */
18986
19022
  "prop:disabled"?: (HelixToggle["disabled"]) | undefined;
18987
- /** Whether this item is the current one. */
19023
+ /** Whether this is the current one.
19024
+
19025
+ Written by the set rather than by a consumer, which is why it takes no
19026
+ default from an attribute here: a family whose selection a consumer
19027
+ declares in markup carries `defaultSelected` of its own to say so. */
18988
19028
  "prop:selected"?: (HelixToggle["selected"]) | undefined;
18989
- /** Identifies the item to the group. */
19029
+ /** Identifies this one to the set, and is what a form submits. */
18990
19030
  "prop:value"?: (HelixToggle["value"]) | undefined;
18991
19031
  /** Whether the markup declared this one chosen, which is what a reset returns to.
18992
19032
 
@@ -27162,6 +27202,21 @@ export type CustomElements = {
27162
27202
  * - `showingPage`: Whether this row's own page is the one showing.
27163
27203
  *
27164
27204
  * Written by the stack. (property only)
27205
+ * - `selected`: Whether this is the row the set is on, which in a drill-down is where focus
27206
+ * is.
27207
+ *
27208
+ * A radio group's selection is an answer it holds; a page of rows has no
27209
+ * answer, only the row a reader has walked to, so focus is the whole of what
27210
+ * "the current one" can mean here. This is `Menu.Item`'s reading word for
27211
+ * word, and the two are one pattern: a menu that drills and a drill-down are
27212
+ * the same rows through the same controller.
27213
+ *
27214
+ * Asked of the document rather than of the shadow root. `focusItem` puts
27215
+ * focus on the control inside this row and the platform retargets it, so from
27216
+ * outside the shadow tree `activeElement` is this element already and nothing
27217
+ * has to walk a tree. `ShadowRoot.activeElement` is also the reading that does
27218
+ * not survive happy-dom, which climbs `getRootNode()` to the top and then
27219
+ * dereferences what it ran out of. (property only) (readonly)
27165
27220
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
27166
27221
  *
27167
27222
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -31271,6 +31326,13 @@ export type CustomElements = {
31271
31326
  * separated.** A consumer wanting the whole feed carded says so once, in a
31272
31327
  * document rule on the element, rather than on every item: this is a styled
31273
31328
  * axis and a stylesheet is where it is set.
31329
+ * - `dismissible`: Whether it offers a control to take it away.
31330
+ * - `dismiss-label`/`dismissLabel`: Accessible name for that control.
31331
+ *
31332
+ * `attribute` is spelled out because Lit lowercases a property name to
31333
+ * derive one rather than dash-casing it, so this would otherwise be
31334
+ * reachable only as `dismisslabel`, which nobody would guess and no linter
31335
+ * would catch.
31274
31336
  * - `at`: When it happened, as anything `Date` parses.
31275
31337
  *
31276
31338
  * An ISO string is what an API sends and what `<time datetime>` takes, so it
@@ -31291,8 +31353,6 @@ export type CustomElements = {
31291
31353
  * declaration. `:state(read)` is what the stylesheet reads.
31292
31354
  * `hydration.dom.spec.ts` holds it.
31293
31355
  * - `default-read`/`defaultRead`: State to open with, where nothing declared one.
31294
- * - `dismissible`: Whether a reader may remove it.
31295
- * - `dismiss-label`/`dismissLabel`: Accessible name for the dismiss control.
31296
31356
  * - `locale`: Locale for the timestamp.
31297
31357
  *
31298
31358
  * Empty is the runtime's own.
@@ -31339,6 +31399,7 @@ export type CustomElements = {
31339
31399
  *
31340
31400
  * Methods that can be called to access component functionality.
31341
31401
  *
31402
+ * - `dismiss() => boolean`: Announces that it should go, and reports whether the request stood.
31342
31403
  * - `markRead(next = true) => boolean`: Asks to be marked read, and reports whether the request stood.
31343
31404
  *
31344
31405
  * Public because a consumer's own control is as likely to ask as this
@@ -33534,11 +33595,13 @@ export type CustomElements = {
33534
33595
  * The circle stays in both. A card whose only marker was its own border would
33535
33596
  * ask a reader to compare surfaces across a row to find the answer, and would
33536
33597
  * leave nothing for a high-contrast display.
33537
- * - `disabled`: Whether this choice can be made.
33538
- * - `selected`: Whether this is the current choice.
33598
+ * - `disabled`: Whether this one can be chosen.
33599
+ * - `selected`: Whether this is the current one.
33539
33600
  *
33540
- * Written by the group.
33541
- * - `value`: Identifies this choice to the group, and is what the form submits.
33601
+ * Written by the set rather than by a consumer, which is why it takes no
33602
+ * default from an attribute here: a family whose selection a consumer
33603
+ * declares in markup carries `defaultSelected` of its own to say so.
33604
+ * - `value`: Identifies this one to the set, and is what a form submits.
33542
33605
  * - `defaultSelected`: Whether the markup declared this one chosen, which is what a reset returns to.
33543
33606
  *
33544
33607
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
@@ -33616,8 +33679,12 @@ export type CustomElements = {
33616
33679
  *
33617
33680
  * Methods that can be called to access component functionality.
33618
33681
  *
33619
- * - `focusItem() => void`: Moves focus to this choice, for the group's arrow keys.
33620
- * - `select() => void`: Makes this choice and announces it.
33682
+ * - `focusItem() => void`: Moves focus to the control this renders, for the set's arrow keys.
33683
+ *
33684
+ * The set drives the keys and cannot reach the control itself, which is
33685
+ * inside this shadow root, so the intent is a method and the internals stay
33686
+ * the item's.
33687
+ * - `select() => boolean`: Chooses this one and announces it, and reports whether it stood.
33621
33688
  *
33622
33689
  * ## CSS Custom Properties
33623
33690
  *
@@ -37017,9 +37084,13 @@ export type CustomElements = {
37017
37084
  *
37018
37085
  * Component attributes and properties that can be applied to the element or by using JavaScript.
37019
37086
  *
37020
- * - `disabled`: Whether the tab can be chosen.
37021
- * - `selected`: Whether this tab is the current one.
37022
- * - `value`: Identifies the tab, and pairs it with the panel of the same value.
37087
+ * - `disabled`: Whether this one can be chosen.
37088
+ * - `selected`: Whether this is the current one.
37089
+ *
37090
+ * Written by the set rather than by a consumer, which is why it takes no
37091
+ * default from an attribute here: a family whose selection a consumer
37092
+ * declares in markup carries `defaultSelected` of its own to say so.
37093
+ * - `value`: Identifies this one to the set, and is what a form submits.
37023
37094
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
37024
37095
  *
37025
37096
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -37057,8 +37128,12 @@ export type CustomElements = {
37057
37128
  *
37058
37129
  * Methods that can be called to access component functionality.
37059
37130
  *
37060
- * - `focusItem() => void`: Moves focus to this tab, for the list's arrow keys.
37061
- * - `select() => void`: Selects this tab and announces it.
37131
+ * - `focusItem() => void`: Moves focus to the control this renders, for the set's arrow keys.
37132
+ *
37133
+ * The set drives the keys and cannot reach the control itself, which is
37134
+ * inside this shadow root, so the intent is a method and the internals stay
37135
+ * the item's.
37136
+ * - `select() => boolean`: Chooses this one and announces it, and reports whether it stood.
37062
37137
  *
37063
37138
  * ## CSS Parts
37064
37139
  *
@@ -38624,9 +38699,13 @@ export type CustomElements = {
38624
38699
  *
38625
38700
  * Component attributes and properties that can be applied to the element or by using JavaScript.
38626
38701
  *
38627
- * - `disabled`: Whether the item can be chosen.
38628
- * - `selected`: Whether this item is the current one.
38629
- * - `value`: Identifies the item to the group.
38702
+ * - `disabled`: Whether this one can be chosen.
38703
+ * - `selected`: Whether this is the current one.
38704
+ *
38705
+ * Written by the set rather than by a consumer, which is why it takes no
38706
+ * default from an attribute here: a family whose selection a consumer
38707
+ * declares in markup carries `defaultSelected` of its own to say so.
38708
+ * - `value`: Identifies this one to the set, and is what a form submits.
38630
38709
  * - `defaultSelected`: Whether the markup declared this one chosen, which is what a reset returns to.
38631
38710
  *
38632
38711
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
@@ -38696,12 +38775,12 @@ export type CustomElements = {
38696
38775
  *
38697
38776
  * Methods that can be called to access component functionality.
38698
38777
  *
38699
- * - `focusItem() => void`: Moves focus to this item's own control.
38778
+ * - `focusItem() => void`: Moves focus to the control this renders, for the set's arrow keys.
38700
38779
  *
38701
- * The group drives arrow-key navigation and cannot reach the control itself,
38702
- * which is inside this shadow root. Exposing the intent as a method keeps the
38703
- * group out of the child's internals.
38704
- * - `select() => void`: Chooses this item and announces it.
38780
+ * The set drives the keys and cannot reach the control itself, which is
38781
+ * inside this shadow root, so the intent is a method and the internals stay
38782
+ * the item's.
38783
+ * - `select() => boolean`: Chooses this one and announces it, and reports whether it stood.
38705
38784
  *
38706
38785
  * ## CSS Parts
38707
38786
  *
@@ -46734,6 +46813,21 @@ export type CustomElementsSolidJs = {
46734
46813
  * - `showingPage`: Whether this row's own page is the one showing.
46735
46814
  *
46736
46815
  * Written by the stack. (property only)
46816
+ * - `selected`: Whether this is the row the set is on, which in a drill-down is where focus
46817
+ * is.
46818
+ *
46819
+ * A radio group's selection is an answer it holds; a page of rows has no
46820
+ * answer, only the row a reader has walked to, so focus is the whole of what
46821
+ * "the current one" can mean here. This is `Menu.Item`'s reading word for
46822
+ * word, and the two are one pattern: a menu that drills and a drill-down are
46823
+ * the same rows through the same controller.
46824
+ *
46825
+ * Asked of the document rather than of the shadow root. `focusItem` puts
46826
+ * focus on the control inside this row and the platform retargets it, so from
46827
+ * outside the shadow tree `activeElement` is this element already and nothing
46828
+ * has to walk a tree. `ShadowRoot.activeElement` is also the reading that does
46829
+ * not survive happy-dom, which climbs `getRootNode()` to the top and then
46830
+ * dereferences what it ran out of. (property only) (readonly)
46737
46831
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
46738
46832
  *
46739
46833
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -50935,6 +51029,13 @@ export type CustomElementsSolidJs = {
50935
51029
  * separated.** A consumer wanting the whole feed carded says so once, in a
50936
51030
  * document rule on the element, rather than on every item: this is a styled
50937
51031
  * axis and a stylesheet is where it is set.
51032
+ * - `dismissible`: Whether it offers a control to take it away.
51033
+ * - `dismiss-label`/`dismissLabel`: Accessible name for that control.
51034
+ *
51035
+ * `attribute` is spelled out because Lit lowercases a property name to
51036
+ * derive one rather than dash-casing it, so this would otherwise be
51037
+ * reachable only as `dismisslabel`, which nobody would guess and no linter
51038
+ * would catch.
50938
51039
  * - `at`: When it happened, as anything `Date` parses.
50939
51040
  *
50940
51041
  * An ISO string is what an API sends and what `<time datetime>` takes, so it
@@ -50955,8 +51056,6 @@ export type CustomElementsSolidJs = {
50955
51056
  * declaration. `:state(read)` is what the stylesheet reads.
50956
51057
  * `hydration.dom.spec.ts` holds it.
50957
51058
  * - `default-read`/`defaultRead`: State to open with, where nothing declared one.
50958
- * - `dismissible`: Whether a reader may remove it.
50959
- * - `dismiss-label`/`dismissLabel`: Accessible name for the dismiss control.
50960
51059
  * - `locale`: Locale for the timestamp.
50961
51060
  *
50962
51061
  * Empty is the runtime's own.
@@ -51003,6 +51102,7 @@ export type CustomElementsSolidJs = {
51003
51102
  *
51004
51103
  * Methods that can be called to access component functionality.
51005
51104
  *
51105
+ * - `dismiss() => boolean`: Announces that it should go, and reports whether the request stood.
51006
51106
  * - `markRead(next = true) => boolean`: Asks to be marked read, and reports whether the request stood.
51007
51107
  *
51008
51108
  * Public because a consumer's own control is as likely to ask as this
@@ -53250,11 +53350,13 @@ export type CustomElementsSolidJs = {
53250
53350
  * The circle stays in both. A card whose only marker was its own border would
53251
53351
  * ask a reader to compare surfaces across a row to find the answer, and would
53252
53352
  * leave nothing for a high-contrast display.
53253
- * - `disabled`: Whether this choice can be made.
53254
- * - `selected`: Whether this is the current choice.
53353
+ * - `disabled`: Whether this one can be chosen.
53354
+ * - `selected`: Whether this is the current one.
53255
53355
  *
53256
- * Written by the group.
53257
- * - `value`: Identifies this choice to the group, and is what the form submits.
53356
+ * Written by the set rather than by a consumer, which is why it takes no
53357
+ * default from an attribute here: a family whose selection a consumer
53358
+ * declares in markup carries `defaultSelected` of its own to say so.
53359
+ * - `value`: Identifies this one to the set, and is what a form submits.
53258
53360
  * - `defaultSelected`: Whether the markup declared this one chosen, which is what a reset returns to.
53259
53361
  *
53260
53362
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
@@ -53332,8 +53434,12 @@ export type CustomElementsSolidJs = {
53332
53434
  *
53333
53435
  * Methods that can be called to access component functionality.
53334
53436
  *
53335
- * - `focusItem() => void`: Moves focus to this choice, for the group's arrow keys.
53336
- * - `select() => void`: Makes this choice and announces it.
53437
+ * - `focusItem() => void`: Moves focus to the control this renders, for the set's arrow keys.
53438
+ *
53439
+ * The set drives the keys and cannot reach the control itself, which is
53440
+ * inside this shadow root, so the intent is a method and the internals stay
53441
+ * the item's.
53442
+ * - `select() => boolean`: Chooses this one and announces it, and reports whether it stood.
53337
53443
  *
53338
53444
  * ## CSS Custom Properties
53339
53445
  *
@@ -56823,9 +56929,13 @@ export type CustomElementsSolidJs = {
56823
56929
  *
56824
56930
  * Component attributes and properties that can be applied to the element or by using JavaScript.
56825
56931
  *
56826
- * - `disabled`: Whether the tab can be chosen.
56827
- * - `selected`: Whether this tab is the current one.
56828
- * - `value`: Identifies the tab, and pairs it with the panel of the same value.
56932
+ * - `disabled`: Whether this one can be chosen.
56933
+ * - `selected`: Whether this is the current one.
56934
+ *
56935
+ * Written by the set rather than by a consumer, which is why it takes no
56936
+ * default from an attribute here: a family whose selection a consumer
56937
+ * declares in markup carries `defaultSelected` of its own to say so.
56938
+ * - `value`: Identifies this one to the set, and is what a form submits.
56829
56939
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
56830
56940
  *
56831
56941
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -56863,8 +56973,12 @@ export type CustomElementsSolidJs = {
56863
56973
  *
56864
56974
  * Methods that can be called to access component functionality.
56865
56975
  *
56866
- * - `focusItem() => void`: Moves focus to this tab, for the list's arrow keys.
56867
- * - `select() => void`: Selects this tab and announces it.
56976
+ * - `focusItem() => void`: Moves focus to the control this renders, for the set's arrow keys.
56977
+ *
56978
+ * The set drives the keys and cannot reach the control itself, which is
56979
+ * inside this shadow root, so the intent is a method and the internals stay
56980
+ * the item's.
56981
+ * - `select() => boolean`: Chooses this one and announces it, and reports whether it stood.
56868
56982
  *
56869
56983
  * ## CSS Parts
56870
56984
  *
@@ -58462,9 +58576,13 @@ export type CustomElementsSolidJs = {
58462
58576
  *
58463
58577
  * Component attributes and properties that can be applied to the element or by using JavaScript.
58464
58578
  *
58465
- * - `disabled`: Whether the item can be chosen.
58466
- * - `selected`: Whether this item is the current one.
58467
- * - `value`: Identifies the item to the group.
58579
+ * - `disabled`: Whether this one can be chosen.
58580
+ * - `selected`: Whether this is the current one.
58581
+ *
58582
+ * Written by the set rather than by a consumer, which is why it takes no
58583
+ * default from an attribute here: a family whose selection a consumer
58584
+ * declares in markup carries `defaultSelected` of its own to say so.
58585
+ * - `value`: Identifies this one to the set, and is what a form submits.
58468
58586
  * - `defaultSelected`: Whether the markup declared this one chosen, which is what a reset returns to.
58469
58587
  *
58470
58588
  * `<option selected>` reflects to `defaultSelected` and `option.selected` is
@@ -58534,12 +58652,12 @@ export type CustomElementsSolidJs = {
58534
58652
  *
58535
58653
  * Methods that can be called to access component functionality.
58536
58654
  *
58537
- * - `focusItem() => void`: Moves focus to this item's own control.
58655
+ * - `focusItem() => void`: Moves focus to the control this renders, for the set's arrow keys.
58538
58656
  *
58539
- * The group drives arrow-key navigation and cannot reach the control itself,
58540
- * which is inside this shadow root. Exposing the intent as a method keeps the
58541
- * group out of the child's internals.
58542
- * - `select() => void`: Chooses this item and announces it.
58657
+ * The set drives the keys and cannot reach the control itself, which is
58658
+ * inside this shadow root, so the intent is a method and the internals stay
58659
+ * the item's.
58660
+ * - `select() => boolean`: Chooses this one and announces it, and reports whether it stood.
58543
58661
  *
58544
58662
  * ## CSS Parts
58545
58663
  *
package/types/vue.d.ts CHANGED
@@ -6035,6 +6035,22 @@ separated.** A consumer wanting the whole feed carded says so once, in a
6035
6035
  document rule on the element, rather than on every item: this is a styled
6036
6036
  axis and a stylesheet is where it is set. */
6037
6037
  separation?: (HelixNotification["separation"]) | undefined;
6038
+ /** Whether it offers a control to take it away. */
6039
+ dismissible?: (HelixNotification["dismissible"]) | undefined;
6040
+ /** Accessible name for that control.
6041
+
6042
+ `attribute` is spelled out because Lit lowercases a property name to
6043
+ derive one rather than dash-casing it, so this would otherwise be
6044
+ reachable only as `dismisslabel`, which nobody would guess and no linter
6045
+ would catch. */
6046
+ "dismiss-label"?: (HelixNotification["dismissLabel"]) | undefined;
6047
+ /** Accessible name for that control.
6048
+
6049
+ `attribute` is spelled out because Lit lowercases a property name to
6050
+ derive one rather than dash-casing it, so this would otherwise be
6051
+ reachable only as `dismisslabel`, which nobody would guess and no linter
6052
+ would catch. */
6053
+ dismissLabel?: (HelixNotification["dismissLabel"]) | undefined;
6038
6054
  /** When it happened, as anything `Date` parses.
6039
6055
 
6040
6056
  An ISO string is what an API sends and what `<time datetime>` takes, so it
@@ -6060,12 +6076,6 @@ declaration. `:state(read)` is what the stylesheet reads.
6060
6076
  "default-read"?: (HelixNotification["defaultRead"]) | undefined;
6061
6077
  /** State to open with, where nothing declared one. */
6062
6078
  defaultRead?: (HelixNotification["defaultRead"]) | undefined;
6063
- /** Whether a reader may remove it. */
6064
- dismissible?: (HelixNotification["dismissible"]) | undefined;
6065
- /** Accessible name for the dismiss control. */
6066
- "dismiss-label"?: (HelixNotification["dismissLabel"]) | undefined;
6067
- /** Accessible name for the dismiss control. */
6068
- dismissLabel?: (HelixNotification["dismissLabel"]) | undefined;
6069
6079
  /** Locale for the timestamp.
6070
6080
 
6071
6081
  Empty is the runtime's own. */
@@ -7183,13 +7193,15 @@ The circle stays in both. A card whose only marker was its own border would
7183
7193
  ask a reader to compare surfaces across a row to find the answer, and would
7184
7194
  leave nothing for a high-contrast display. */
7185
7195
  variant?: (HelixRadio["variant"]) | undefined;
7186
- /** Whether this choice can be made. */
7196
+ /** Whether this one can be chosen. */
7187
7197
  disabled?: (HelixRadio["disabled"]) | undefined;
7188
- /** Whether this is the current choice.
7198
+ /** Whether this is the current one.
7189
7199
 
7190
- Written by the group. */
7200
+ Written by the set rather than by a consumer, which is why it takes no
7201
+ default from an attribute here: a family whose selection a consumer
7202
+ declares in markup carries `defaultSelected` of its own to say so. */
7191
7203
  selected?: (HelixRadio["selected"]) | undefined;
7192
- /** Identifies this choice to the group, and is what the form submits. */
7204
+ /** Identifies this one to the set, and is what a form submits. */
7193
7205
  value?: (HelixRadio["value"]) | undefined;
7194
7206
  /** Whether the markup declared this one chosen, which is what a reset returns to.
7195
7207
 
@@ -8841,11 +8853,15 @@ export type HelixTabHelixSelectElementEvent =
8841
8853
  HelixTabElementEvent<HelixSelectEvent>;
8842
8854
 
8843
8855
  export type HelixTabVueProps = {
8844
- /** Whether the tab can be chosen. */
8856
+ /** Whether this one can be chosen. */
8845
8857
  disabled?: (HelixTab["disabled"]) | undefined;
8846
- /** Whether this tab is the current one. */
8858
+ /** Whether this is the current one.
8859
+
8860
+ Written by the set rather than by a consumer, which is why it takes no
8861
+ default from an attribute here: a family whose selection a consumer
8862
+ declares in markup carries `defaultSelected` of its own to say so. */
8847
8863
  selected?: (HelixTab["selected"]) | undefined;
8848
- /** Identifies the tab, and pairs it with the panel of the same value. */
8864
+ /** Identifies this one to the set, and is what a form submits. */
8849
8865
  value?: (HelixTab["value"]) | undefined;
8850
8866
  };
8851
8867
 
@@ -9698,11 +9714,15 @@ export type HelixToggleHelixSelectElementEvent =
9698
9714
  HelixToggleElementEvent<HelixSelectEvent>;
9699
9715
 
9700
9716
  export type HelixToggleVueProps = {
9701
- /** Whether the item can be chosen. */
9717
+ /** Whether this one can be chosen. */
9702
9718
  disabled?: (HelixToggle["disabled"]) | undefined;
9703
- /** Whether this item is the current one. */
9719
+ /** Whether this is the current one.
9720
+
9721
+ Written by the set rather than by a consumer, which is why it takes no
9722
+ default from an attribute here: a family whose selection a consumer
9723
+ declares in markup carries `defaultSelected` of its own to say so. */
9704
9724
  selected?: (HelixToggle["selected"]) | undefined;
9705
- /** Identifies the item to the group. */
9725
+ /** Identifies this one to the set, and is what a form submits. */
9706
9726
  value?: (HelixToggle["value"]) | undefined;
9707
9727
  /** Whether the markup declared this one chosen, which is what a reset returns to.
9708
9728