@fusion.dev/helix 0.59.0 → 0.59.2

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.
@@ -114333,7 +114333,7 @@
114333
114333
  "type": {
114334
114334
  "text": "'segmented' | 'underlined' | undefined"
114335
114335
  },
114336
- "description": "How the row reads.\n\nUnset is a raised pill on the selected tab with nothing behind the row,\nwhich is what a set sitting inside other chrome wants. `underlined` is a\nrule under the row and a thicker one under the selected tab, for a set that\nheads a page. `segmented` puts the pill in a framed, sunken track, which\nreads as one control rather than as a row.\n\nA value describes itself rather than naming another component: `segmented`\nand `underlined` are participles reading as a pair, the way `outlined` on\nAccordion does.\n\nReflected and left unset by default, so the host carries nothing a\nconsumer's server markup does not already have.",
114336
+ "description": "How the row reads.\n\nUnset is a raised pill on the selected tab with nothing behind the row,\nwhich is what a set sitting inside other chrome wants. `underlined` is a\nrule under the row and a thicker one under the selected tab, for a set that\nheads a page. `segmented` puts the pill in a framed, sunken track, which\nreads as one control rather than as a row.\n\nA value describes itself rather than naming another component: `segmented`\nand `underlined` are participles reading as a pair, the way `outlined` on\nAccordion does.\n\n**`segmented` is `ToggleGroup`'s track, opted into.** The two draw the same\ngroove, token for token, and the sheets already say so where the height is\nfixed. What differs is polarity, and both are right: a group of toggles is\none control, so its track is the resting state and its `separation` decides\nonly the frame around it, while a row of tabs is a row until something says\notherwise, so the track is a value here rather than the thing a value takes\naway.\n\nReflected and left unset by default, so the host carries nothing a\nconsumer's server markup does not already have.",
114337
114337
  "attribute": "variant",
114338
114338
  "reflects": true,
114339
114339
  "inheritedFrom": {
@@ -114828,7 +114828,7 @@
114828
114828
  "type": {
114829
114829
  "text": "'segmented' | 'underlined' | undefined"
114830
114830
  },
114831
- "description": "How the row reads.\n\nUnset is a raised pill on the selected tab with nothing behind the row,\nwhich is what a set sitting inside other chrome wants. `underlined` is a\nrule under the row and a thicker one under the selected tab, for a set that\nheads a page. `segmented` puts the pill in a framed, sunken track, which\nreads as one control rather than as a row.\n\nA value describes itself rather than naming another component: `segmented`\nand `underlined` are participles reading as a pair, the way `outlined` on\nAccordion does.\n\nReflected and left unset by default, so the host carries nothing a\nconsumer's server markup does not already have.",
114831
+ "description": "How the row reads.\n\nUnset is a raised pill on the selected tab with nothing behind the row,\nwhich is what a set sitting inside other chrome wants. `underlined` is a\nrule under the row and a thicker one under the selected tab, for a set that\nheads a page. `segmented` puts the pill in a framed, sunken track, which\nreads as one control rather than as a row.\n\nA value describes itself rather than naming another component: `segmented`\nand `underlined` are participles reading as a pair, the way `outlined` on\nAccordion does.\n\n**`segmented` is `ToggleGroup`'s track, opted into.** The two draw the same\ngroove, token for token, and the sheets already say so where the height is\nfixed. What differs is polarity, and both are right: a group of toggles is\none control, so its track is the resting state and its `separation` decides\nonly the frame around it, while a row of tabs is a row until something says\notherwise, so the track is a value here rather than the thing a value takes\naway.\n\nReflected and left unset by default, so the host carries nothing a\nconsumer's server markup does not already have.",
114832
114832
  "fieldName": "variant",
114833
114833
  "inheritedFrom": {
114834
114834
  "name": "HelixHeadlessTabs",
@@ -124941,7 +124941,7 @@
124941
124941
  "type": {
124942
124942
  "text": "| 'bottom-center'\n | 'bottom-end'\n | 'bottom-start'\n | 'top-center'\n | 'top-end'\n | 'top-start' | undefined"
124943
124943
  },
124944
- "description": "Which corner or edge the stack sits at.\n\nNamed here rather than on each message, because where a page puts its\ntoasts is a fact about the page: a stack whose members disagreed about\nwhere they were would not be a stack.\n\n**Optional, and bottom-end is the absence of it.** Reflecting *and*\ndefaulting is the pair that writes onto a host: every toast region anybody\nrendered would gain a `placement=\"bottom-end\"` nobody typed, which a React\nconsumer's server markup does not have. A sheet carries the resting\narrangement in its own `:host` rule and the selectors describe only the\ndepartures, which is what `orientation` does.",
124944
+ "description": "Which corner or edge the stack sits at.\n\nNamed here rather than on each message, because where a page puts its\ntoasts is a fact about the page: a stack whose members disagreed about\nwhere they were would not be a stack.\n\n**Six corners in one word, where `Carousel` splits the same question in\ntwo.** That family takes a placement and an alignment, and argues at its own\ndeclaration that one attribute naming both facts multiplies rather than\ncomposing. It is right there and wrong here, and the difference is the\nshape of the product. A carousel's is ragged: its `overlay` belongs to no\nedge at all, and its two groups of chrome move independently, shipping\ndifferent defaults so they do not land on each other, which is what makes\nrewriting one to move the other a real cost. A stack's is two edges by\nthree alignments, every pair real and every pair named this way by every\ntoast a reader has already met. Fusing spells the domain out and loses\nnothing; a stack has one position and takes it once.\n\n**Optional, and bottom-end is the absence of it.** Reflecting *and*\ndefaulting is the pair that writes onto a host: every toast region anybody\nrendered would gain a `placement=\"bottom-end\"` nobody typed, which a React\nconsumer's server markup does not have. A sheet carries the resting\narrangement in its own `:host` rule and the selectors describe only the\ndepartures, which is what `orientation` does.",
124945
124945
  "attribute": "placement",
124946
124946
  "reflects": true,
124947
124947
  "inheritedFrom": {
@@ -125360,7 +125360,7 @@
125360
125360
  "type": {
125361
125361
  "text": "| 'bottom-center'\n | 'bottom-end'\n | 'bottom-start'\n | 'top-center'\n | 'top-end'\n | 'top-start' | undefined"
125362
125362
  },
125363
- "description": "Which corner or edge the stack sits at.\n\nNamed here rather than on each message, because where a page puts its\ntoasts is a fact about the page: a stack whose members disagreed about\nwhere they were would not be a stack.\n\n**Optional, and bottom-end is the absence of it.** Reflecting *and*\ndefaulting is the pair that writes onto a host: every toast region anybody\nrendered would gain a `placement=\"bottom-end\"` nobody typed, which a React\nconsumer's server markup does not have. A sheet carries the resting\narrangement in its own `:host` rule and the selectors describe only the\ndepartures, which is what `orientation` does.",
125363
+ "description": "Which corner or edge the stack sits at.\n\nNamed here rather than on each message, because where a page puts its\ntoasts is a fact about the page: a stack whose members disagreed about\nwhere they were would not be a stack.\n\n**Six corners in one word, where `Carousel` splits the same question in\ntwo.** That family takes a placement and an alignment, and argues at its own\ndeclaration that one attribute naming both facts multiplies rather than\ncomposing. It is right there and wrong here, and the difference is the\nshape of the product. A carousel's is ragged: its `overlay` belongs to no\nedge at all, and its two groups of chrome move independently, shipping\ndifferent defaults so they do not land on each other, which is what makes\nrewriting one to move the other a real cost. A stack's is two edges by\nthree alignments, every pair real and every pair named this way by every\ntoast a reader has already met. Fusing spells the domain out and loses\nnothing; a stack has one position and takes it once.\n\n**Optional, and bottom-end is the absence of it.** Reflecting *and*\ndefaulting is the pair that writes onto a host: every toast region anybody\nrendered would gain a `placement=\"bottom-end\"` nobody typed, which a React\nconsumer's server markup does not have. A sheet carries the resting\narrangement in its own `:host` rule and the selectors describe only the\ndepartures, which is what `orientation` does.",
125364
125364
  "fieldName": "placement",
125365
125365
  "inheritedFrom": {
125366
125366
  "name": "HelixHeadlessToast",
@@ -125532,7 +125532,7 @@
125532
125532
  "type": {
125533
125533
  "text": "'outlined' | 'plain' | undefined"
125534
125534
  },
125535
- "description": "How the group separates itself from the page.\n\nSeparation rather than emphasis, because what `plain` drops is the\nbackground *and* the border: the question is where the group ends, not how\nmuch ink it claims. `outlined` because the frame is a border over the\ngroup's own ground, exactly as a Card's is; the track's sunken fill stays\neither way, being a groove for the thumb to sit in rather than a way of\nbeing seen.",
125535
+ "description": "How the group separates itself from the page.\n\nSeparation rather than emphasis, because what `plain` drops is the\nbackground *and* the border: the question is where the group ends, not how\nmuch ink it claims. `outlined` because the frame is a border over the\ngroup's own ground, exactly as a Card's is; the track's sunken fill stays\neither way, being a groove for the thumb to sit in rather than a way of\nbeing seen.\n\n**The track itself is not on this axis, and `Tabs` reaches the same one\nfrom the other side.** There it is `variant=\"segmented\"`, opted into,\nbecause a row of tabs is a row until asked; here it is the resting state,\nbecause a group of toggles is one control. Same groove, opposite polarity,\nand what decides the polarity is which reading is ordinary for the family.",
125536
125536
  "attribute": "separation",
125537
125537
  "reflects": true
125538
125538
  },
@@ -126514,7 +126514,7 @@
126514
126514
  "type": {
126515
126515
  "text": "'outlined' | 'plain' | undefined"
126516
126516
  },
126517
- "description": "How the group separates itself from the page.\n\nSeparation rather than emphasis, because what `plain` drops is the\nbackground *and* the border: the question is where the group ends, not how\nmuch ink it claims. `outlined` because the frame is a border over the\ngroup's own ground, exactly as a Card's is; the track's sunken fill stays\neither way, being a groove for the thumb to sit in rather than a way of\nbeing seen.",
126517
+ "description": "How the group separates itself from the page.\n\nSeparation rather than emphasis, because what `plain` drops is the\nbackground *and* the border: the question is where the group ends, not how\nmuch ink it claims. `outlined` because the frame is a border over the\ngroup's own ground, exactly as a Card's is; the track's sunken fill stays\neither way, being a groove for the thumb to sit in rather than a way of\nbeing seen.\n\n**The track itself is not on this axis, and `Tabs` reaches the same one\nfrom the other side.** There it is `variant=\"segmented\"`, opted into,\nbecause a row of tabs is a row until asked; here it is the resting state,\nbecause a group of toggles is one control. Same groove, opposite polarity,\nand what decides the polarity is which reading is ordinary for the family.",
126518
126518
  "fieldName": "separation"
126519
126519
  },
126520
126520
  {
@@ -137480,6 +137480,7 @@
137480
137480
  "text": "Promise<void>"
137481
137481
  }
137482
137482
  },
137483
+ "description": "Into picture in picture and back, and quiet about being refused.\n\nCaught rather than `void`ed, the way `FullscreenController` catches its\nown: this is called from a click handler that discards the promise, so a\nrefusal is otherwise an unhandled rejection naming neither the element nor\nthe reason. The roster already declines to draw the button where the\nconsumer refused the feature, which leaves the refusals nothing can see\ncoming, a request without user activation and a window another document is\nalready using.",
137483
137484
  "inheritedFrom": {
137484
137485
  "name": "HelixHeadlessVideo",
137485
137486
  "module": "src/video/root/video-root.ts"
@@ -37,6 +37,12 @@ export declare class HelixToggleGroup extends HelixHeadlessToggleGroup {
37
37
  * group's own ground, exactly as a Card's is; the track's sunken fill stays
38
38
  * either way, being a groove for the thumb to sit in rather than a way of
39
39
  * being seen.
40
+ *
41
+ * **The track itself is not on this axis, and `Tabs` reaches the same one
42
+ * from the other side.** There it is `variant="segmented"`, opted into,
43
+ * because a row of tabs is a row until asked; here it is the resting state,
44
+ * because a group of toggles is one control. Same groove, opposite polarity,
45
+ * and what decides the polarity is which reading is ordinary for the family.
40
46
  */
41
47
  separation?: 'outlined' | 'plain';
42
48
  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.59.0",
4
+ "version": "0.59.2",
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.59.0",
51
- "@fusion.dev/helix-headless": "0.59.0",
52
- "@fusion.dev/helix-styles": "0.59.0"
50
+ "@fusion.dev/helix-core": "0.59.2",
51
+ "@fusion.dev/helix-headless": "0.59.2",
52
+ "@fusion.dev/helix-styles": "0.59.2"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@custom-elements-manifest/analyzer": "^0.11.0",
56
- "@fusion.dev/helix-cem": "0.59.0",
57
- "@fusion.dev/helix-testing": "0.59.0",
56
+ "@fusion.dev/helix-cem": "0.59.2",
57
+ "@fusion.dev/helix-testing": "0.59.2",
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
@@ -17615,6 +17615,14 @@ A value describes itself rather than naming another component: `segmented`
17615
17615
  and `underlined` are participles reading as a pair, the way `outlined` on
17616
17616
  Accordion does.
17617
17617
 
17618
+ **`segmented` is `ToggleGroup`'s track, opted into.** The two draw the same
17619
+ groove, token for token, and the sheets already say so where the height is
17620
+ fixed. What differs is polarity, and both are right: a group of toggles is
17621
+ one control, so its track is the resting state and its `separation` decides
17622
+ only the frame around it, while a row of tabs is a row until something says
17623
+ otherwise, so the track is a value here rather than the thing a value takes
17624
+ away.
17625
+
17618
17626
  Reflected and left unset by default, so the host carries nothing a
17619
17627
  consumer's server markup does not already have. */
17620
17628
  variant?: (HelixTabs["variant"]) | undefined;
@@ -17667,6 +17675,14 @@ A value describes itself rather than naming another component: `segmented`
17667
17675
  and `underlined` are participles reading as a pair, the way `outlined` on
17668
17676
  Accordion does.
17669
17677
 
17678
+ **`segmented` is `ToggleGroup`'s track, opted into.** The two draw the same
17679
+ groove, token for token, and the sheets already say so where the height is
17680
+ fixed. What differs is polarity, and both are right: a group of toggles is
17681
+ one control, so its track is the resting state and its `separation` decides
17682
+ only the frame around it, while a row of tabs is a row until something says
17683
+ otherwise, so the track is a value here rather than the thing a value takes
17684
+ away.
17685
+
17670
17686
  Reflected and left unset by default, so the host carries nothing a
17671
17687
  consumer's server markup does not already have. */
17672
17688
  "prop:variant"?: (HelixTabs["variant"]) | undefined;
@@ -19116,6 +19132,18 @@ Named here rather than on each message, because where a page puts its
19116
19132
  toasts is a fact about the page: a stack whose members disagreed about
19117
19133
  where they were would not be a stack.
19118
19134
 
19135
+ **Six corners in one word, where `Carousel` splits the same question in
19136
+ two.** That family takes a placement and an alignment, and argues at its own
19137
+ declaration that one attribute naming both facts multiplies rather than
19138
+ composing. It is right there and wrong here, and the difference is the
19139
+ shape of the product. A carousel's is ragged: its `overlay` belongs to no
19140
+ edge at all, and its two groups of chrome move independently, shipping
19141
+ different defaults so they do not land on each other, which is what makes
19142
+ rewriting one to move the other a real cost. A stack's is two edges by
19143
+ three alignments, every pair real and every pair named this way by every
19144
+ toast a reader has already met. Fusing spells the domain out and loses
19145
+ nothing; a stack has one position and takes it once.
19146
+
19119
19147
  **Optional, and bottom-end is the absence of it.** Reflecting *and*
19120
19148
  defaulting is the pair that writes onto a host: every toast region anybody
19121
19149
  rendered would gain a `placement="bottom-end"` nobody typed, which a React
@@ -19137,6 +19165,18 @@ Named here rather than on each message, because where a page puts its
19137
19165
  toasts is a fact about the page: a stack whose members disagreed about
19138
19166
  where they were would not be a stack.
19139
19167
 
19168
+ **Six corners in one word, where `Carousel` splits the same question in
19169
+ two.** That family takes a placement and an alignment, and argues at its own
19170
+ declaration that one attribute naming both facts multiplies rather than
19171
+ composing. It is right there and wrong here, and the difference is the
19172
+ shape of the product. A carousel's is ragged: its `overlay` belongs to no
19173
+ edge at all, and its two groups of chrome move independently, shipping
19174
+ different defaults so they do not land on each other, which is what makes
19175
+ rewriting one to move the other a real cost. A stack's is two edges by
19176
+ three alignments, every pair real and every pair named this way by every
19177
+ toast a reader has already met. Fusing spells the domain out and loses
19178
+ nothing; a stack has one position and takes it once.
19179
+
19140
19180
  **Optional, and bottom-end is the absence of it.** Reflecting *and*
19141
19181
  defaulting is the pair that writes onto a host: every toast region anybody
19142
19182
  rendered would gain a `placement="bottom-end"` nobody typed, which a React
@@ -19173,7 +19213,13 @@ background *and* the border: the question is where the group ends, not how
19173
19213
  much ink it claims. `outlined` because the frame is a border over the
19174
19214
  group's own ground, exactly as a Card's is; the track's sunken fill stays
19175
19215
  either way, being a groove for the thumb to sit in rather than a way of
19176
- being seen. */
19216
+ being seen.
19217
+
19218
+ **The track itself is not on this axis, and `Tabs` reaches the same one
19219
+ from the other side.** There it is `variant="segmented"`, opted into,
19220
+ because a row of tabs is a row until asked; here it is the resting state,
19221
+ because a group of toggles is one control. Same groove, opposite polarity,
19222
+ and what decides the polarity is which reading is ordinary for the family. */
19177
19223
  separation?: (HelixToggleGroup["separation"]) | undefined;
19178
19224
  /** The value the markup declared, which is where a reset returns to. */
19179
19225
  "default-value"?: (HelixToggleGroup["defaultValue"]) | undefined;
@@ -19271,7 +19317,13 @@ background *and* the border: the question is where the group ends, not how
19271
19317
  much ink it claims. `outlined` because the frame is a border over the
19272
19318
  group's own ground, exactly as a Card's is; the track's sunken fill stays
19273
19319
  either way, being a groove for the thumb to sit in rather than a way of
19274
- being seen. */
19320
+ being seen.
19321
+
19322
+ **The track itself is not on this axis, and `Tabs` reaches the same one
19323
+ from the other side.** There it is `variant="segmented"`, opted into,
19324
+ because a row of tabs is a row until asked; here it is the resting state,
19325
+ because a group of toggles is one control. Same groove, opposite polarity,
19326
+ and what decides the polarity is which reading is ordinary for the family. */
19275
19327
  "prop:separation"?: (HelixToggleGroup["separation"]) | undefined;
19276
19328
  /** The value the markup declared, which is where a reset returns to. */
19277
19329
  "attr:default-value"?: (HelixToggleGroup["defaultValue"]) | undefined;
@@ -37523,6 +37575,14 @@ export type CustomElements = {
37523
37575
  * and `underlined` are participles reading as a pair, the way `outlined` on
37524
37576
  * Accordion does.
37525
37577
  *
37578
+ * **`segmented` is `ToggleGroup`'s track, opted into.** The two draw the same
37579
+ * groove, token for token, and the sheets already say so where the height is
37580
+ * fixed. What differs is polarity, and both are right: a group of toggles is
37581
+ * one control, so its track is the resting state and its `separation` decides
37582
+ * only the frame around it, while a row of tabs is a row until something says
37583
+ * otherwise, so the track is a value here rather than the thing a value takes
37584
+ * away.
37585
+ *
37526
37586
  * Reflected and left unset by default, so the host carries nothing a
37527
37587
  * consumer's server markup does not already have.
37528
37588
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
@@ -38948,6 +39008,18 @@ export type CustomElements = {
38948
39008
  * toasts is a fact about the page: a stack whose members disagreed about
38949
39009
  * where they were would not be a stack.
38950
39010
  *
39011
+ * **Six corners in one word, where `Carousel` splits the same question in
39012
+ * two.** That family takes a placement and an alignment, and argues at its own
39013
+ * declaration that one attribute naming both facts multiplies rather than
39014
+ * composing. It is right there and wrong here, and the difference is the
39015
+ * shape of the product. A carousel's is ragged: its `overlay` belongs to no
39016
+ * edge at all, and its two groups of chrome move independently, shipping
39017
+ * different defaults so they do not land on each other, which is what makes
39018
+ * rewriting one to move the other a real cost. A stack's is two edges by
39019
+ * three alignments, every pair real and every pair named this way by every
39020
+ * toast a reader has already met. Fusing spells the domain out and loses
39021
+ * nothing; a stack has one position and takes it once.
39022
+ *
38951
39023
  * **Optional, and bottom-end is the absence of it.** Reflecting *and*
38952
39024
  * defaulting is the pair that writes onto a host: every toast region anybody
38953
39025
  * rendered would gain a `placement="bottom-end"` nobody typed, which a React
@@ -39032,6 +39104,12 @@ export type CustomElements = {
39032
39104
  * group's own ground, exactly as a Card's is; the track's sunken fill stays
39033
39105
  * either way, being a groove for the thumb to sit in rather than a way of
39034
39106
  * being seen.
39107
+ *
39108
+ * **The track itself is not on this axis, and `Tabs` reaches the same one
39109
+ * from the other side.** There it is `variant="segmented"`, opted into,
39110
+ * because a row of tabs is a row until asked; here it is the resting state,
39111
+ * because a group of toggles is one control. Same groove, opposite polarity,
39112
+ * and what decides the polarity is which reading is ordinary for the family.
39035
39113
  * - `default-value`/`defaultValue`: The value the markup declared, which is where a reset returns to.
39036
39114
  * - `value`: What the control holds now, and what its form submits.
39037
39115
  *
@@ -57475,6 +57553,14 @@ export type CustomElementsSolidJs = {
57475
57553
  * and `underlined` are participles reading as a pair, the way `outlined` on
57476
57554
  * Accordion does.
57477
57555
  *
57556
+ * **`segmented` is `ToggleGroup`'s track, opted into.** The two draw the same
57557
+ * groove, token for token, and the sheets already say so where the height is
57558
+ * fixed. What differs is polarity, and both are right: a group of toggles is
57559
+ * one control, so its track is the resting state and its `separation` decides
57560
+ * only the frame around it, while a row of tabs is a row until something says
57561
+ * otherwise, so the track is a value here rather than the thing a value takes
57562
+ * away.
57563
+ *
57478
57564
  * Reflected and left unset by default, so the host carries nothing a
57479
57565
  * consumer's server markup does not already have.
57480
57566
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
@@ -58926,6 +59012,18 @@ export type CustomElementsSolidJs = {
58926
59012
  * toasts is a fact about the page: a stack whose members disagreed about
58927
59013
  * where they were would not be a stack.
58928
59014
  *
59015
+ * **Six corners in one word, where `Carousel` splits the same question in
59016
+ * two.** That family takes a placement and an alignment, and argues at its own
59017
+ * declaration that one attribute naming both facts multiplies rather than
59018
+ * composing. It is right there and wrong here, and the difference is the
59019
+ * shape of the product. A carousel's is ragged: its `overlay` belongs to no
59020
+ * edge at all, and its two groups of chrome move independently, shipping
59021
+ * different defaults so they do not land on each other, which is what makes
59022
+ * rewriting one to move the other a real cost. A stack's is two edges by
59023
+ * three alignments, every pair real and every pair named this way by every
59024
+ * toast a reader has already met. Fusing spells the domain out and loses
59025
+ * nothing; a stack has one position and takes it once.
59026
+ *
58929
59027
  * **Optional, and bottom-end is the absence of it.** Reflecting *and*
58930
59028
  * defaulting is the pair that writes onto a host: every toast region anybody
58931
59029
  * rendered would gain a `placement="bottom-end"` nobody typed, which a React
@@ -59015,6 +59113,12 @@ export type CustomElementsSolidJs = {
59015
59113
  * group's own ground, exactly as a Card's is; the track's sunken fill stays
59016
59114
  * either way, being a groove for the thumb to sit in rather than a way of
59017
59115
  * being seen.
59116
+ *
59117
+ * **The track itself is not on this axis, and `Tabs` reaches the same one
59118
+ * from the other side.** There it is `variant="segmented"`, opted into,
59119
+ * because a row of tabs is a row until asked; here it is the resting state,
59120
+ * because a group of toggles is one control. Same groove, opposite polarity,
59121
+ * and what decides the polarity is which reading is ordinary for the family.
59018
59122
  * - `default-value`/`defaultValue`: The value the markup declared, which is where a reset returns to.
59019
59123
  * - `value`: What the control holds now, and what its form submits.
59020
59124
  *
package/types/vue.d.ts CHANGED
@@ -9034,6 +9034,14 @@ A value describes itself rather than naming another component: `segmented`
9034
9034
  and `underlined` are participles reading as a pair, the way `outlined` on
9035
9035
  Accordion does.
9036
9036
 
9037
+ **`segmented` is `ToggleGroup`'s track, opted into.** The two draw the same
9038
+ groove, token for token, and the sheets already say so where the height is
9039
+ fixed. What differs is polarity, and both are right: a group of toggles is
9040
+ one control, so its track is the resting state and its `separation` decides
9041
+ only the frame around it, while a row of tabs is a row until something says
9042
+ otherwise, so the track is a value here rather than the thing a value takes
9043
+ away.
9044
+
9037
9045
  Reflected and left unset by default, so the host carries nothing a
9038
9046
  consumer's server markup does not already have. */
9039
9047
  variant?: (HelixTabs["variant"]) | undefined;
@@ -9785,6 +9793,18 @@ Named here rather than on each message, because where a page puts its
9785
9793
  toasts is a fact about the page: a stack whose members disagreed about
9786
9794
  where they were would not be a stack.
9787
9795
 
9796
+ **Six corners in one word, where `Carousel` splits the same question in
9797
+ two.** That family takes a placement and an alignment, and argues at its own
9798
+ declaration that one attribute naming both facts multiplies rather than
9799
+ composing. It is right there and wrong here, and the difference is the
9800
+ shape of the product. A carousel's is ragged: its `overlay` belongs to no
9801
+ edge at all, and its two groups of chrome move independently, shipping
9802
+ different defaults so they do not land on each other, which is what makes
9803
+ rewriting one to move the other a real cost. A stack's is two edges by
9804
+ three alignments, every pair real and every pair named this way by every
9805
+ toast a reader has already met. Fusing spells the domain out and loses
9806
+ nothing; a stack has one position and takes it once.
9807
+
9788
9808
  **Optional, and bottom-end is the absence of it.** Reflecting *and*
9789
9809
  defaulting is the pair that writes onto a host: every toast region anybody
9790
9810
  rendered would gain a `placement="bottom-end"` nobody typed, which a React
@@ -9819,7 +9839,13 @@ background *and* the border: the question is where the group ends, not how
9819
9839
  much ink it claims. `outlined` because the frame is a border over the
9820
9840
  group's own ground, exactly as a Card's is; the track's sunken fill stays
9821
9841
  either way, being a groove for the thumb to sit in rather than a way of
9822
- being seen. */
9842
+ being seen.
9843
+
9844
+ **The track itself is not on this axis, and `Tabs` reaches the same one
9845
+ from the other side.** There it is `variant="segmented"`, opted into,
9846
+ because a row of tabs is a row until asked; here it is the resting state,
9847
+ because a group of toggles is one control. Same groove, opposite polarity,
9848
+ and what decides the polarity is which reading is ordinary for the family. */
9823
9849
  separation?: (HelixToggleGroup["separation"]) | undefined;
9824
9850
  /** The value the markup declared, which is where a reset returns to. */
9825
9851
  "default-value"?: (HelixToggleGroup["defaultValue"]) | undefined;