@fusion.dev/helix 0.43.0 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/custom-elements.json +138 -73
  2. package/dist/chat/composer/chat-composer.d.ts +1 -1
  3. package/dist/chat/message/chat-message.d.ts +1 -1
  4. package/dist/chat/root/chat-root.d.ts +1 -1
  5. package/dist/element-events.generated.js +1 -7
  6. package/dist/filter-input/chip/filter-chip.d.ts +1 -1
  7. package/dist/filter-input/field/filter-field.d.ts +1 -1
  8. package/dist/filter-input/menu/filter-menu.d.ts +1 -1
  9. package/dist/filter-input/operator/filter-operator.d.ts +1 -1
  10. package/dist/filter-input/root/filter-input-root.d.ts +1 -1
  11. package/dist/notifications/group/notification-group.d.ts +1 -1
  12. package/dist/notifications/notification/notification.d.ts +1 -1
  13. package/dist/notifications/root/notifications-root.d.ts +1 -1
  14. package/dist/option/group/option-group.d.ts +1 -1
  15. package/dist/option/root/option-root.d.ts +1 -1
  16. package/dist/radio/group/radio-group.d.ts +1 -1
  17. package/dist/radio/root/radio-root.d.ts +1 -1
  18. package/dist/sandbox/preview/sandbox-preview.d.ts +15 -0
  19. package/dist/sandbox/preview/sandbox-preview.js +2 -2
  20. package/dist/sandbox/root/sandbox-root.d.ts +43 -4
  21. package/dist/sandbox/root/sandbox-root.js +33 -12
  22. package/dist/sandbox/status-bar/sandbox-status-bar.js +1 -1
  23. package/dist/skip-link/root/skip-link-root.d.ts +2 -1
  24. package/dist/speed-dial/item/speed-dial-item.css.js +1 -5
  25. package/dist/speed-dial/item/speed-dial-item.d.ts +1 -1
  26. package/dist/speed-dial/root/speed-dial-root.css.js +4 -0
  27. package/dist/speed-dial/root/speed-dial-root.d.ts +1 -1
  28. package/dist/text/root/text-root.d.ts +1 -1
  29. package/dist/toast/item/toast-item.d.ts +1 -1
  30. package/dist/toast/root/toast-root.d.ts +2 -2
  31. package/package.json +6 -6
  32. package/types/jsx.d.ts +154 -20
  33. package/types/vue.d.ts +40 -7
package/types/jsx.d.ts CHANGED
@@ -13636,6 +13636,21 @@ name is the fault `TreeItem` avoids by mirroring to `data-selected`.
13636
13636
  Splitting them means moving what every stylesheet selects on, which is a
13637
13637
  change of its own rather than a property being added. */
13638
13638
  defaultSelected?: (HelixRadio["defaultSelected"]) | undefined;
13639
+ /** Whether this choice holds the group's tab stop while nothing is chosen.
13640
+
13641
+ The stop rides on the selection, and an unanswered group has no selection,
13642
+ so without this every choice is `tabindex="-1"` and the keyboard cannot
13643
+ enter the set at all.
13644
+
13645
+ **Written by the group, with no attribute, and it reaches the control
13646
+ rather than the host.** A `tabindex` on the host is two faults at once: it
13647
+ is markup a consumer rendered and their server never sent, which React
13648
+ reports as a mismatch and does not patch up, and it puts the tab stop on
13649
+ the element rather than on the `<button role="radio">` inside it, so a
13650
+ screen reader meets an unnamed box where a native group would have given
13651
+ them an unchecked radio. `Toggle.Root` carries the same property for the
13652
+ same reason. */
13653
+ focusable?: (HelixRadio["focusable"]) | undefined;
13639
13654
 
13640
13655
  /** Fired when this choice is made. Cancelable: refusing it takes the decision and nothing moves. */
13641
13656
  "onhelix-select"?: ((e: HelixRadioHelixSelectElementEvent) => void) | undefined;
@@ -13726,6 +13741,21 @@ name is the fault `TreeItem` avoids by mirroring to `data-selected`.
13726
13741
  Splitting them means moving what every stylesheet selects on, which is a
13727
13742
  change of its own rather than a property being added. */
13728
13743
  "prop:defaultSelected"?: (HelixRadio["defaultSelected"]) | undefined;
13744
+ /** Whether this choice holds the group's tab stop while nothing is chosen.
13745
+
13746
+ The stop rides on the selection, and an unanswered group has no selection,
13747
+ so without this every choice is `tabindex="-1"` and the keyboard cannot
13748
+ enter the set at all.
13749
+
13750
+ **Written by the group, with no attribute, and it reaches the control
13751
+ rather than the host.** A `tabindex` on the host is two faults at once: it
13752
+ is markup a consumer rendered and their server never sent, which React
13753
+ reports as a mismatch and does not patch up, and it puts the tab stop on
13754
+ the element rather than on the `<button role="radio">` inside it, so a
13755
+ screen reader meets an unnamed box where a native group would have given
13756
+ them an unchecked radio. `Toggle.Root` carries the same property for the
13757
+ same reason. */
13758
+ "prop:focusable"?: (HelixRadio["focusable"]) | undefined;
13729
13759
  /** Fired when this choice is made. Cancelable: refusing it takes the decision and nothing moves. */
13730
13760
  "on:helix-select"?: ((e: HelixRadioHelixSelectElementEvent) => void) | undefined;
13731
13761
 
@@ -14066,11 +14096,26 @@ keyed on this attribute, and of the 56 tokens that differ by scheme the
14066
14096
  theme engine emits 19. The other 37 would stay light in a dark preview,
14067
14097
  including every one of the 24 series colors a chart reads. */
14068
14098
  colorMode?: (HelixSandboxPreview["colorMode"]) | undefined;
14069
- /** Writing direction inside the frame. */
14099
+ /** Writing direction inside the frame.
14100
+
14101
+ Not reflected. It is payload for the render message and nothing selects on
14102
+ it, here or anywhere: a frame is a document of its own and what is written
14103
+ on this host reaches nothing inside it, which is the same reason
14104
+ `colorMode` has to be sent rather than set. */
14070
14105
  direction?: (HelixSandboxPreview["direction"]) | undefined;
14071
14106
  /** Accessible name for the frame. */
14072
14107
  label?: (HelixSandboxPreview["label"]) | undefined;
14073
- /** How the example is placed in the frame. */
14108
+ /** How the example is placed in the frame.
14109
+
14110
+ `padded` insets it and leaves it at the top, which is the resting case and
14111
+ what an absent value sends. `centered` gives it a measure and centers that
14112
+ box in the frame. `hug` shrinks the example to its own content and centers
14113
+ what is left, which is the difference that matters for a component whose
14114
+ root is a full-width block. `fullscreen` is the whole frame with no inset.
14115
+
14116
+ Not reflected, for `direction`'s reason: the placement is applied by the
14117
+ document inside the frame, against its own root, so no rule on this side
14118
+ could read it. */
14074
14119
  layout?: (HelixSandboxPreview["layout"]) | undefined;
14075
14120
  /** Markup to render. */
14076
14121
  source?: (HelixSandboxPreview["source"]) | undefined;
@@ -14114,11 +14159,26 @@ keyed on this attribute, and of the 56 tokens that differ by scheme the
14114
14159
  theme engine emits 19. The other 37 would stay light in a dark preview,
14115
14160
  including every one of the 24 series colors a chart reads. */
14116
14161
  "prop:colorMode"?: (HelixSandboxPreview["colorMode"]) | undefined;
14117
- /** Writing direction inside the frame. */
14162
+ /** Writing direction inside the frame.
14163
+
14164
+ Not reflected. It is payload for the render message and nothing selects on
14165
+ it, here or anywhere: a frame is a document of its own and what is written
14166
+ on this host reaches nothing inside it, which is the same reason
14167
+ `colorMode` has to be sent rather than set. */
14118
14168
  "prop:direction"?: (HelixSandboxPreview["direction"]) | undefined;
14119
14169
  /** Accessible name for the frame. */
14120
14170
  "prop:label"?: (HelixSandboxPreview["label"]) | undefined;
14121
- /** How the example is placed in the frame. */
14171
+ /** How the example is placed in the frame.
14172
+
14173
+ `padded` insets it and leaves it at the top, which is the resting case and
14174
+ what an absent value sends. `centered` gives it a measure and centers that
14175
+ box in the frame. `hug` shrinks the example to its own content and centers
14176
+ what is left, which is the difference that matters for a component whose
14177
+ root is a full-width block. `fullscreen` is the whole frame with no inset.
14178
+
14179
+ Not reflected, for `direction`'s reason: the placement is applied by the
14180
+ document inside the frame, against its own root, so no rule on this side
14181
+ could read it. */
14122
14182
  "prop:layout"?: (HelixSandboxPreview["layout"]) | undefined;
14123
14183
  /** Markup to render. */
14124
14184
  "prop:source"?: (HelixSandboxPreview["source"]) | undefined;
@@ -14211,7 +14271,12 @@ names below keeps that true whichever way round they sit.
14211
14271
  `split` follows the lead pane rather than the source, so `split="30"` means
14212
14272
  the same thing in both directions: thirty percent to whatever comes first. */
14213
14273
  lead?: (HelixSandbox["lead"]) | undefined;
14214
- /** Whether the panes sit side by side or stacked. */
14274
+ /** Whether the panes sit side by side or stacked.
14275
+
14276
+ Not reflected, for `lead`'s reason above: no rule selects on it. The axis
14277
+ reaches the stylesheet as the inner splitter's own `orientation`, which is
14278
+ where the panes are laid out, and this element's sheet names no host
14279
+ attribute at all. */
14215
14280
  orientation?: (HelixSandbox["orientation"]) | undefined;
14216
14281
  /** What the panel's height becomes when it is closed.
14217
14282
 
@@ -14311,7 +14376,12 @@ names below keeps that true whichever way round they sit.
14311
14376
  `split` follows the lead pane rather than the source, so `split="30"` means
14312
14377
  the same thing in both directions: thirty percent to whatever comes first. */
14313
14378
  "prop:lead"?: (HelixSandbox["lead"]) | undefined;
14314
- /** Whether the panes sit side by side or stacked. */
14379
+ /** Whether the panes sit side by side or stacked.
14380
+
14381
+ Not reflected, for `lead`'s reason above: no rule selects on it. The axis
14382
+ reaches the stylesheet as the inner splitter's own `orientation`, which is
14383
+ where the panes are laid out, and this element's sheet names no host
14384
+ attribute at all. */
14315
14385
  "prop:orientation"?: (HelixSandbox["orientation"]) | undefined;
14316
14386
  /** What the panel's height becomes when it is closed.
14317
14387
 
@@ -15676,11 +15746,11 @@ has an honest answer. */
15676
15746
  /** How far one arrow press moves it, as a percentage. */
15677
15747
  step?: (HelixSplitter["step"]) | undefined;
15678
15748
 
15679
- /** Fired before a pane shuts or reopens, and cancelable. */
15749
+ /** 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. */
15680
15750
  "onhelix-before-collapse"?: ((
15681
15751
  e: HelixSplitterHelixBeforeCollapseElementEvent,
15682
15752
  ) => void) | undefined;
15683
- /** Fired before the divider settles, and cancelable. */
15753
+ /** 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. */
15684
15754
  "onhelix-before-resize"?: ((
15685
15755
  e: HelixSplitterHelixBeforeResizeElementEvent,
15686
15756
  ) => void) | undefined;
@@ -15796,11 +15866,11 @@ has an honest answer. */
15796
15866
  "prop:orientation"?: (HelixSplitter["orientation"]) | undefined;
15797
15867
  /** How far one arrow press moves it, as a percentage. */
15798
15868
  "prop:step"?: (HelixSplitter["step"]) | undefined;
15799
- /** Fired before a pane shuts or reopens, and cancelable. */
15869
+ /** 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. */
15800
15870
  "on:helix-before-collapse"?: ((
15801
15871
  e: HelixSplitterHelixBeforeCollapseElementEvent,
15802
15872
  ) => void) | undefined;
15803
- /** Fired before the divider settles, and cancelable. */
15873
+ /** 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. */
15804
15874
  "on:helix-before-resize"?: ((
15805
15875
  e: HelixSplitterHelixBeforeResizeElementEvent,
15806
15876
  ) => void) | undefined;
@@ -18810,8 +18880,6 @@ The shape is `Carousel`'s, which is the nearest thing in the library: a
18810
18880
  "onhelix-complete"?: ((e: HelixTourHelixCompleteElementEvent) => void) | undefined;
18811
18881
  /** A stop's own controls asking the tour to move, dispatched by the stop and heard here because the tour is what moves. */
18812
18882
  "onhelix-tour-ask"?: ((e: HelixTourHelixTourAskElementEvent) => void) | undefined;
18813
- /** Says the state moved, carrying `newState` and `oldState`. */
18814
- ontoggle?: ((e: HelixTourElementEvent) => void) | undefined;
18815
18883
  };
18816
18884
 
18817
18885
  export type HelixTourSolidJsProps = {
@@ -18864,8 +18932,6 @@ The shape is `Carousel`'s, which is the nearest thing in the library: a
18864
18932
  "on:helix-complete"?: ((e: HelixTourHelixCompleteElementEvent) => void) | undefined;
18865
18933
  /** A stop's own controls asking the tour to move, dispatched by the stop and heard here because the tour is what moves. */
18866
18934
  "on:helix-tour-ask"?: ((e: HelixTourHelixTourAskElementEvent) => void) | undefined;
18867
- /** Says the state moved, carrying `newState` and `oldState`. */
18868
- "on:toggle"?: ((e: HelixTourElementEvent) => void) | undefined;
18869
18935
 
18870
18936
  /** Set the innerHTML of the element */
18871
18937
  innerHTML?: (string) | undefined;
@@ -30601,6 +30667,7 @@ export type CustomElements = {
30601
30667
  * - `media`: An avatar or icon identifying who or what it came from.
30602
30668
  * - `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()`.
30603
30669
  * - `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.
30670
+ * - `dismiss`: Replaces the glyph inside the dismiss control, which is drawn only where the row is `dismissible`.
30604
30671
  *
30605
30672
  * ## Methods
30606
30673
  *
@@ -32827,6 +32894,20 @@ export type CustomElements = {
32827
32894
  * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
32828
32895
  * Splitting them means moving what every stylesheet selects on, which is a
32829
32896
  * change of its own rather than a property being added. (property only)
32897
+ * - `focusable`: Whether this choice holds the group's tab stop while nothing is chosen.
32898
+ *
32899
+ * The stop rides on the selection, and an unanswered group has no selection,
32900
+ * so without this every choice is `tabindex="-1"` and the keyboard cannot
32901
+ * enter the set at all.
32902
+ *
32903
+ * **Written by the group, with no attribute, and it reaches the control
32904
+ * rather than the host.** A `tabindex` on the host is two faults at once: it
32905
+ * is markup a consumer rendered and their server never sent, which React
32906
+ * reports as a mismatch and does not patch up, and it puts the tab stop on
32907
+ * the element rather than on the `<button role="radio">` inside it, so a
32908
+ * screen reader meets an unnamed box where a native group would have given
32909
+ * them an unchecked radio. `Toggle.Root` carries the same property for the
32910
+ * same reason. (property only)
32830
32911
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
32831
32912
  *
32832
32913
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -33161,8 +33242,23 @@ export type CustomElements = {
33161
33242
  * theme engine emits 19. The other 37 would stay light in a dark preview,
33162
33243
  * including every one of the 24 series colors a chart reads.
33163
33244
  * - `direction`: Writing direction inside the frame.
33245
+ *
33246
+ * Not reflected. It is payload for the render message and nothing selects on
33247
+ * it, here or anywhere: a frame is a document of its own and what is written
33248
+ * on this host reaches nothing inside it, which is the same reason
33249
+ * `colorMode` has to be sent rather than set.
33164
33250
  * - `label`: Accessible name for the frame.
33165
33251
  * - `layout`: How the example is placed in the frame.
33252
+ *
33253
+ * `padded` insets it and leaves it at the top, which is the resting case and
33254
+ * what an absent value sends. `centered` gives it a measure and centers that
33255
+ * box in the frame. `hug` shrinks the example to its own content and centers
33256
+ * what is left, which is the difference that matters for a component whose
33257
+ * root is a full-width block. `fullscreen` is the whole frame with no inset.
33258
+ *
33259
+ * Not reflected, for `direction`'s reason: the placement is applied by the
33260
+ * document inside the frame, against its own root, so no rule on this side
33261
+ * could read it.
33166
33262
  * - `source`: Markup to render.
33167
33263
  * - `src`: Document the frame loads, which brings the styles and the elements.
33168
33264
  * - `styles`: Stylesheet applied inside the frame, alongside the markup.
@@ -33278,6 +33374,11 @@ export type CustomElements = {
33278
33374
  * `split` follows the lead pane rather than the source, so `split="30"` means
33279
33375
  * the same thing in both directions: thirty percent to whatever comes first.
33280
33376
  * - `orientation`: Whether the panes sit side by side or stacked.
33377
+ *
33378
+ * Not reflected, for `lead`'s reason above: no rule selects on it. The axis
33379
+ * reaches the stylesheet as the inner splitter's own `orientation`, which is
33380
+ * where the panes are laid out, and this element's sheet names no host
33381
+ * attribute at all.
33281
33382
  * - `panel-collapsed-size`/`panelCollapsedSize`: What the panel's height becomes when it is closed.
33282
33383
  *
33283
33384
  * Zero closes it outright. A panel whose contents include the control that
@@ -35068,8 +35169,8 @@ export type CustomElements = {
35068
35169
  *
35069
35170
  * Events that will be emitted by the component.
35070
35171
  *
35071
- * - `helix-before-collapse`: Fired before a pane shuts or reopens, and cancelable.
35072
- * - `helix-before-resize`: Fired before the divider settles, and cancelable.
35172
+ * - `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.
35173
+ * - `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.
35073
35174
  *
35074
35175
  * ## Slots
35075
35176
  *
@@ -38218,7 +38319,6 @@ export type CustomElements = {
38218
38319
  * - `helix-before-close`: Fired before the reader leaves early. Cancelable: refusing it takes the decision and nothing moves.
38219
38320
  * - `helix-complete`: Fired when the last stop is finished.
38220
38321
  * - `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.
38221
- * - `toggle`: Says the state moved, carrying `newState` and `oldState`.
38222
38322
  *
38223
38323
  * ## Slots
38224
38324
  *
@@ -50021,6 +50121,7 @@ export type CustomElementsSolidJs = {
50021
50121
  * - `media`: An avatar or icon identifying who or what it came from.
50022
50122
  * - `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()`.
50023
50123
  * - `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.
50124
+ * - `dismiss`: Replaces the glyph inside the dismiss control, which is drawn only where the row is `dismissible`.
50024
50125
  *
50025
50126
  * ## Methods
50026
50127
  *
@@ -52299,6 +52400,20 @@ export type CustomElementsSolidJs = {
52299
52400
  * name is the fault `TreeItem` avoids by mirroring to `data-selected`.
52300
52401
  * Splitting them means moving what every stylesheet selects on, which is a
52301
52402
  * change of its own rather than a property being added. (property only)
52403
+ * - `focusable`: Whether this choice holds the group's tab stop while nothing is chosen.
52404
+ *
52405
+ * The stop rides on the selection, and an unanswered group has no selection,
52406
+ * so without this every choice is `tabindex="-1"` and the keyboard cannot
52407
+ * enter the set at all.
52408
+ *
52409
+ * **Written by the group, with no attribute, and it reaches the control
52410
+ * rather than the host.** A `tabindex` on the host is two faults at once: it
52411
+ * is markup a consumer rendered and their server never sent, which React
52412
+ * reports as a mismatch and does not patch up, and it puts the tab stop on
52413
+ * the element rather than on the `<button role="radio">` inside it, so a
52414
+ * screen reader meets an unnamed box where a native group would have given
52415
+ * them an unchecked radio. `Toggle.Root` carries the same property for the
52416
+ * same reason. (property only)
52302
52417
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
52303
52418
  *
52304
52419
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -52641,8 +52756,23 @@ export type CustomElementsSolidJs = {
52641
52756
  * theme engine emits 19. The other 37 would stay light in a dark preview,
52642
52757
  * including every one of the 24 series colors a chart reads.
52643
52758
  * - `direction`: Writing direction inside the frame.
52759
+ *
52760
+ * Not reflected. It is payload for the render message and nothing selects on
52761
+ * it, here or anywhere: a frame is a document of its own and what is written
52762
+ * on this host reaches nothing inside it, which is the same reason
52763
+ * `colorMode` has to be sent rather than set.
52644
52764
  * - `label`: Accessible name for the frame.
52645
52765
  * - `layout`: How the example is placed in the frame.
52766
+ *
52767
+ * `padded` insets it and leaves it at the top, which is the resting case and
52768
+ * what an absent value sends. `centered` gives it a measure and centers that
52769
+ * box in the frame. `hug` shrinks the example to its own content and centers
52770
+ * what is left, which is the difference that matters for a component whose
52771
+ * root is a full-width block. `fullscreen` is the whole frame with no inset.
52772
+ *
52773
+ * Not reflected, for `direction`'s reason: the placement is applied by the
52774
+ * document inside the frame, against its own root, so no rule on this side
52775
+ * could read it.
52646
52776
  * - `source`: Markup to render.
52647
52777
  * - `src`: Document the frame loads, which brings the styles and the elements.
52648
52778
  * - `styles`: Stylesheet applied inside the frame, alongside the markup.
@@ -52761,6 +52891,11 @@ export type CustomElementsSolidJs = {
52761
52891
  * `split` follows the lead pane rather than the source, so `split="30"` means
52762
52892
  * the same thing in both directions: thirty percent to whatever comes first.
52763
52893
  * - `orientation`: Whether the panes sit side by side or stacked.
52894
+ *
52895
+ * Not reflected, for `lead`'s reason above: no rule selects on it. The axis
52896
+ * reaches the stylesheet as the inner splitter's own `orientation`, which is
52897
+ * where the panes are laid out, and this element's sheet names no host
52898
+ * attribute at all.
52764
52899
  * - `panel-collapsed-size`/`panelCollapsedSize`: What the panel's height becomes when it is closed.
52765
52900
  *
52766
52901
  * Zero closes it outright. A panel whose contents include the control that
@@ -54593,8 +54728,8 @@ export type CustomElementsSolidJs = {
54593
54728
  *
54594
54729
  * Events that will be emitted by the component.
54595
54730
  *
54596
- * - `helix-before-collapse`: Fired before a pane shuts or reopens, and cancelable.
54597
- * - `helix-before-resize`: Fired before the divider settles, and cancelable.
54731
+ * - `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.
54732
+ * - `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.
54598
54733
  *
54599
54734
  * ## Slots
54600
54735
  *
@@ -57821,7 +57956,6 @@ export type CustomElementsSolidJs = {
57821
57956
  * - `helix-before-close`: Fired before the reader leaves early. Cancelable: refusing it takes the decision and nothing moves.
57822
57957
  * - `helix-complete`: Fired when the last stop is finished.
57823
57958
  * - `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.
57824
- * - `toggle`: Says the state moved, carrying `newState` and `oldState`.
57825
57959
  *
57826
57960
  * ## Slots
57827
57961
  *
package/types/vue.d.ts CHANGED
@@ -7029,6 +7029,21 @@ name is the fault `TreeItem` avoids by mirroring to `data-selected`.
7029
7029
  Splitting them means moving what every stylesheet selects on, which is a
7030
7030
  change of its own rather than a property being added. */
7031
7031
  defaultSelected?: (HelixRadio["defaultSelected"]) | undefined;
7032
+ /** Whether this choice holds the group's tab stop while nothing is chosen.
7033
+
7034
+ The stop rides on the selection, and an unanswered group has no selection,
7035
+ so without this every choice is `tabindex="-1"` and the keyboard cannot
7036
+ enter the set at all.
7037
+
7038
+ **Written by the group, with no attribute, and it reaches the control
7039
+ rather than the host.** A `tabindex` on the host is two faults at once: it
7040
+ is markup a consumer rendered and their server never sent, which React
7041
+ reports as a mismatch and does not patch up, and it puts the tab stop on
7042
+ the element rather than on the `<button role="radio">` inside it, so a
7043
+ screen reader meets an unnamed box where a native group would have given
7044
+ them an unchecked radio. `Toggle.Root` carries the same property for the
7045
+ same reason. */
7046
+ focusable?: (HelixRadio["focusable"]) | undefined;
7032
7047
  };
7033
7048
 
7034
7049
  export type HelixRadioVueEvents = {
@@ -7223,11 +7238,26 @@ keyed on this attribute, and of the 56 tokens that differ by scheme the
7223
7238
  theme engine emits 19. The other 37 would stay light in a dark preview,
7224
7239
  including every one of the 24 series colors a chart reads. */
7225
7240
  colorMode?: (HelixSandboxPreview["colorMode"]) | undefined;
7226
- /** Writing direction inside the frame. */
7241
+ /** Writing direction inside the frame.
7242
+
7243
+ Not reflected. It is payload for the render message and nothing selects on
7244
+ it, here or anywhere: a frame is a document of its own and what is written
7245
+ on this host reaches nothing inside it, which is the same reason
7246
+ `colorMode` has to be sent rather than set. */
7227
7247
  direction?: (HelixSandboxPreview["direction"]) | undefined;
7228
7248
  /** Accessible name for the frame. */
7229
7249
  label?: (HelixSandboxPreview["label"]) | undefined;
7230
- /** How the example is placed in the frame. */
7250
+ /** How the example is placed in the frame.
7251
+
7252
+ `padded` insets it and leaves it at the top, which is the resting case and
7253
+ what an absent value sends. `centered` gives it a measure and centers that
7254
+ box in the frame. `hug` shrinks the example to its own content and centers
7255
+ what is left, which is the difference that matters for a component whose
7256
+ root is a full-width block. `fullscreen` is the whole frame with no inset.
7257
+
7258
+ Not reflected, for `direction`'s reason: the placement is applied by the
7259
+ document inside the frame, against its own root, so no rule on this side
7260
+ could read it. */
7231
7261
  layout?: (HelixSandboxPreview["layout"]) | undefined;
7232
7262
  /** Markup to render. */
7233
7263
  source?: (HelixSandboxPreview["source"]) | undefined;
@@ -7318,7 +7348,12 @@ names below keeps that true whichever way round they sit.
7318
7348
  `split` follows the lead pane rather than the source, so `split="30"` means
7319
7349
  the same thing in both directions: thirty percent to whatever comes first. */
7320
7350
  lead?: (HelixSandbox["lead"]) | undefined;
7321
- /** Whether the panes sit side by side or stacked. */
7351
+ /** Whether the panes sit side by side or stacked.
7352
+
7353
+ Not reflected, for `lead`'s reason above: no rule selects on it. The axis
7354
+ reaches the stylesheet as the inner splitter's own `orientation`, which is
7355
+ where the panes are laid out, and this element's sheet names no host
7356
+ attribute at all. */
7322
7357
  orientation?: (HelixSandbox["orientation"]) | undefined;
7323
7358
  /** What the panel's height becomes when it is closed.
7324
7359
 
@@ -8094,9 +8129,9 @@ has an honest answer. */
8094
8129
  };
8095
8130
 
8096
8131
  export type HelixSplitterVueEvents = {
8097
- /** Fired before a pane shuts or reopens, and cancelable. */
8132
+ /** 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. */
8098
8133
  "helix-before-collapse": HelixSplitterHelixBeforeCollapseElementEvent;
8099
- /** Fired before the divider settles, and cancelable. */
8134
+ /** 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. */
8100
8135
  "helix-before-resize": HelixSplitterHelixBeforeResizeElementEvent;
8101
8136
  };
8102
8137
 
@@ -9670,8 +9705,6 @@ export type HelixTourVueEvents = {
9670
9705
  "helix-complete": HelixTourHelixCompleteElementEvent;
9671
9706
  /** A stop's own controls asking the tour to move, dispatched by the stop and heard here because the tour is what moves. */
9672
9707
  "helix-tour-ask": HelixTourHelixTourAskElementEvent;
9673
- /** Says the state moved, carrying `newState` and `oldState`. */
9674
- toggle: HelixTourElementEvent;
9675
9708
  };
9676
9709
 
9677
9710
  /** `HelixTourStop` component event */