@fusion.dev/helix 0.218.0 → 0.219.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 (92) hide show
  1. package/api.json +1 -1
  2. package/custom-elements.json +1 -1
  3. package/dist/breadcrumbs/breadcrumb/breadcrumb.css.js +1 -1
  4. package/dist/canvas/root/canvas-root.d.ts +1 -0
  5. package/dist/canvas/root/canvas-root.js +1 -0
  6. package/dist/chat/composer/chat-composer.css.js +1 -1
  7. package/dist/chat/composer/chat-composer.d.ts +102 -5
  8. package/dist/chat/composer/chat-composer.js +134 -0
  9. package/dist/chat/message/chat-message.css.js +1 -1
  10. package/dist/chat/message/chat-message.d.ts +1 -0
  11. package/dist/checkbox/root/checkbox-root.css.js +1 -1
  12. package/dist/color-input/root/color-input-root.d.ts +1 -3
  13. package/dist/combobox/root/combobox-root.d.ts +1 -2
  14. package/dist/command/root/command-root.css.js +1 -1
  15. package/dist/command/root/command-root.d.ts +16 -1
  16. package/dist/command/root/command-root.js +16 -0
  17. package/dist/date-input/root/date-input-root.d.ts +1 -2
  18. package/dist/device-screen/root/device-screen-root.d.ts +1 -0
  19. package/dist/device-screen/root/device-screen-root.js +1 -0
  20. package/dist/dialog/root/dialog-root.css.js +1 -1
  21. package/dist/dialog/root/dialog-root.d.ts +14 -2
  22. package/dist/dialog/root/dialog-root.js +3 -0
  23. package/dist/drawer/root/drawer-root.css.js +1 -1
  24. package/dist/drawer/root/drawer-root.d.ts +1 -2
  25. package/dist/element-events.generated.js +1 -0
  26. package/dist/graph/root/graph-root.d.ts +1 -0
  27. package/dist/graph/root/graph-root.js +1 -0
  28. package/dist/kbd/root/kbd-root.css.js +1 -1
  29. package/dist/log/group/log-group.css.js +1 -1
  30. package/dist/log/line/log-line.css.js +1 -1
  31. package/dist/log/root/log-root.css.js +1 -1
  32. package/dist/log/root/log-root.d.ts +5 -1
  33. package/dist/map/root/map-root.css.js +1 -1
  34. package/dist/map/root/map-root.d.ts +1 -0
  35. package/dist/map/root/map-root.js +1 -0
  36. package/dist/megamenu/root/megamenu-root.css.js +1 -1
  37. package/dist/megamenu/root/megamenu-root.d.ts +2 -2
  38. package/dist/menu/item/menu-item.css.js +1 -1
  39. package/dist/menu/root/menu-root.css.js +1 -1
  40. package/dist/menu/root/menu-root.d.ts +19 -1
  41. package/dist/menu/root/menu-root.js +4 -0
  42. package/dist/menu/section/menu-section.css.js +1 -1
  43. package/dist/meter/index.d.ts +1 -0
  44. package/dist/meter/index.js +1 -0
  45. package/dist/meter/root/meter-root.css.js +1 -1
  46. package/dist/meter/segment/meter-segment.css.d.ts +1 -0
  47. package/dist/meter/segment/meter-segment.css.js +2 -0
  48. package/dist/meter/segment/meter-segment.d.ts +39 -0
  49. package/dist/meter/segment/meter-segment.js +11 -0
  50. package/dist/popover/root/popover-root.css.js +1 -1
  51. package/dist/popover/root/popover-root.d.ts +20 -2
  52. package/dist/popover/root/popover-root.js +3 -0
  53. package/dist/radio/root/radio-root.css.js +1 -1
  54. package/dist/scroll-area/root/scroll-area-root.css.js +1 -1
  55. package/dist/scroll-area/root/scroll-area-root.d.ts +14 -2
  56. package/dist/scroll-area/root/scroll-area-root.js +29 -0
  57. package/dist/select/root/select-root.d.ts +1 -2
  58. package/dist/shared/floating/entrance.css.js +1 -1
  59. package/dist/skip-link/root/skip-link-root.d.ts +1 -2
  60. package/dist/spatial-bar-chart/root/spatial-bar-chart-root.css.js +1 -1
  61. package/dist/spatial-bar-chart/root/spatial-bar-chart-root.d.ts +9 -1
  62. package/dist/strands/renderer.d.ts +2 -0
  63. package/dist/strands/renderer.js +1 -0
  64. package/dist/strands/root/strands-root.css.js +1 -1
  65. package/dist/strands/root/strands-root.d.ts +14 -0
  66. package/dist/strands/root/strands-root.js +5 -0
  67. package/dist/strands/shader.d.ts +7 -1
  68. package/dist/strands/shader.js +11 -3
  69. package/dist/switch/root/switch-root.css.js +1 -1
  70. package/dist/tabs/root/tabs-root.css.js +1 -1
  71. package/dist/tabs/root/tabs-root.d.ts +36 -0
  72. package/dist/tabs/root/tabs-root.js +7 -0
  73. package/dist/tabs/tab/tab.css.js +1 -1
  74. package/dist/tabs/tab/tab.d.ts +2 -0
  75. package/dist/terminal/root/terminal-root.d.ts +1 -0
  76. package/dist/terminal/root/terminal-root.js +1 -0
  77. package/dist/time-input/root/time-input-root.d.ts +1 -2
  78. package/dist/toast/item/toast-item.d.ts +1 -2
  79. package/dist/tooltip/root/tooltip-root.css.js +1 -1
  80. package/dist/tour/root/tour-root.css.js +1 -1
  81. package/dist/tour/stop/tour-stop.d.ts +1 -2
  82. package/dist/tree/item/tree-item.css.js +1 -1
  83. package/dist/tree/root/tree-root.css.js +1 -1
  84. package/dist/tree/root/tree-root.d.ts +5 -1
  85. package/examples.json +1 -1
  86. package/lint.json +1 -1
  87. package/package.json +6 -6
  88. package/skills/helix/SKILL.md +2 -2
  89. package/types/jsx.d.ts +1828 -89
  90. package/types/svelte.d.ts +1 -0
  91. package/types/vue.d.ts +454 -26
  92. package/types/words.d.ts +6 -0
package/types/jsx.d.ts CHANGED
@@ -158,6 +158,7 @@ import type {
158
158
  HelixMenuItem,
159
159
  HelixMenuSection,
160
160
  HelixMeter,
161
+ HelixMeterSegment,
161
162
  HelixMotionToggle,
162
163
  HelixMoveEvent,
163
164
  HelixNavigateEvent,
@@ -242,6 +243,7 @@ import type {
242
243
  HelixStatGroup,
243
244
  HelixStep,
244
245
  HelixSteps,
246
+ HelixStopEvent,
245
247
  HelixStrands,
246
248
  HelixStrandsFallbackEvent,
247
249
  HelixStrandsStop,
@@ -3499,6 +3501,19 @@ into one, counting the first and the last. Unset, it never folds. At least
3499
3501
  into one, counting the first and the last. Unset, it never folds. At least
3500
3502
  2, so the first crumb and the current page always show. */
3501
3503
  maxItems?: (HelixBreadcrumbs["maxItems"]) | undefined;
3504
+ /** The mark between one crumb and the next, for the whole trail. Unset is a
3505
+ chevron; `slash` is a slash, as a path or a repository and its branch is
3506
+ written.
3507
+
3508
+ **On the trail rather than on each crumb**, because the marks are one
3509
+ decision: a trail whose separators differ from crumb to crumb is a
3510
+ mistake, and a trail drawn from `items` has no crumb of yours to set it
3511
+ on. A crumb's own `separator` slot still replaces its mark, for the rare
3512
+ crumb that needs something else.
3513
+
3514
+ Optional and reflected, per the rule that a reflected property takes no
3515
+ default, so a stylesheet can select on it. */
3516
+ separator?: (HelixBreadcrumbs["separator"]) | undefined;
3502
3517
  /** The trail as data, drawn as crumbs before any you slot. The last item is the
3503
3518
  current page.
3504
3519
 
@@ -3540,6 +3555,19 @@ into one, counting the first and the last. Unset, it never folds. At least
3540
3555
  into one, counting the first and the last. Unset, it never folds. At least
3541
3556
  2, so the first crumb and the current page always show. */
3542
3557
  "prop:maxItems"?: (HelixBreadcrumbs["maxItems"]) | undefined;
3558
+ /** The mark between one crumb and the next, for the whole trail. Unset is a
3559
+ chevron; `slash` is a slash, as a path or a repository and its branch is
3560
+ written.
3561
+
3562
+ **On the trail rather than on each crumb**, because the marks are one
3563
+ decision: a trail whose separators differ from crumb to crumb is a
3564
+ mistake, and a trail drawn from `items` has no crumb of yours to set it
3565
+ on. A crumb's own `separator` slot still replaces its mark, for the rare
3566
+ crumb that needs something else.
3567
+
3568
+ Optional and reflected, per the rule that a reflected property takes no
3569
+ default, so a stylesheet can select on it. */
3570
+ "prop:separator"?: (HelixBreadcrumbs["separator"]) | undefined;
3543
3571
  /** The trail as data, drawn as crumbs before any you slot. The last item is the
3544
3572
  current page.
3545
3573
 
@@ -3798,6 +3826,36 @@ is the platform's `commandfor`. */
3798
3826
  commandfor?: (HelixButton["commandFor"]) | undefined;
3799
3827
  /** The id of the element the command is sent to. */
3800
3828
  commandFor?: (HelixButton["commandFor"]) | undefined;
3829
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
3830
+ can say why it is disabled.
3831
+
3832
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
3833
+ changes to save. While the button is disabled, it keeps focus and takes
3834
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
3835
+ a field of its form. The click does not reach your listeners, and a submit
3836
+ button submits nothing. The inner control carries `aria-disabled` in place
3837
+ of the native `disabled`, so a screen reader still says it is unavailable.
3838
+ The styled button keeps the disabled look.
3839
+
3840
+ Leave it unset on a button with no reason to give. A plain disabled button
3841
+ leaves the tab order, as a native one does, and a keyboard reader skips a
3842
+ stop that does nothing. Set `pending` for the wait after a press. */
3843
+ "focusable-when-disabled"?: (HelixButton["focusableWhenDisabled"]) | undefined;
3844
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
3845
+ can say why it is disabled.
3846
+
3847
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
3848
+ changes to save. While the button is disabled, it keeps focus and takes
3849
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
3850
+ a field of its form. The click does not reach your listeners, and a submit
3851
+ button submits nothing. The inner control carries `aria-disabled` in place
3852
+ of the native `disabled`, so a screen reader still says it is unavailable.
3853
+ The styled button keeps the disabled look.
3854
+
3855
+ Leave it unset on a button with no reason to give. A plain disabled button
3856
+ leaves the tab order, as a native one does, and a keyboard reader skips a
3857
+ stop that does nothing. Set `pending` for the wait after a press. */
3858
+ focusableWhenDisabled?: (HelixButton["focusableWhenDisabled"]) | undefined;
3801
3859
  /** Where this button's submission goes, overriding the form's own.
3802
3860
 
3803
3861
  **The five `form*` overrides ride on a native submit button that stands in
@@ -4026,6 +4084,36 @@ is the platform's `commandfor`. */
4026
4084
  "attr:commandfor"?: (HelixButton["commandFor"]) | undefined;
4027
4085
  /** The id of the element the command is sent to. */
4028
4086
  "prop:commandFor"?: (HelixButton["commandFor"]) | undefined;
4087
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
4088
+ can say why it is disabled.
4089
+
4090
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
4091
+ changes to save. While the button is disabled, it keeps focus and takes
4092
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
4093
+ a field of its form. The click does not reach your listeners, and a submit
4094
+ button submits nothing. The inner control carries `aria-disabled` in place
4095
+ of the native `disabled`, so a screen reader still says it is unavailable.
4096
+ The styled button keeps the disabled look.
4097
+
4098
+ Leave it unset on a button with no reason to give. A plain disabled button
4099
+ leaves the tab order, as a native one does, and a keyboard reader skips a
4100
+ stop that does nothing. Set `pending` for the wait after a press. */
4101
+ "bool:focusable-when-disabled"?: (HelixButton["focusableWhenDisabled"]) | undefined;
4102
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
4103
+ can say why it is disabled.
4104
+
4105
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
4106
+ changes to save. While the button is disabled, it keeps focus and takes
4107
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
4108
+ a field of its form. The click does not reach your listeners, and a submit
4109
+ button submits nothing. The inner control carries `aria-disabled` in place
4110
+ of the native `disabled`, so a screen reader still says it is unavailable.
4111
+ The styled button keeps the disabled look.
4112
+
4113
+ Leave it unset on a button with no reason to give. A plain disabled button
4114
+ leaves the tab order, as a native one does, and a keyboard reader skips a
4115
+ stop that does nothing. Set `pending` for the wait after a press. */
4116
+ "prop:focusableWhenDisabled"?: (HelixButton["focusableWhenDisabled"]) | undefined;
4029
4117
  /** Where this button's submission goes, overriding the form's own.
4030
4118
 
4031
4119
  **The five `form*` overrides ride on a native submit button that stands in
@@ -6820,11 +6908,27 @@ export type HelixChatComposerHelixListenElementEvent =
6820
6908
  /** `helix-send` event type */
6821
6909
  export type HelixChatComposerHelixSendElementEvent =
6822
6910
  HelixChatComposerElementEvent<HelixSendEvent>;
6911
+ /** `helix-stop` event type */
6912
+ export type HelixChatComposerHelixStopElementEvent =
6913
+ HelixChatComposerElementEvent<HelixStopEvent>;
6823
6914
  /** `helix-typing` event type */
6824
6915
  export type HelixChatComposerHelixTypingElementEvent =
6825
6916
  HelixChatComposerElementEvent<HelixTypingEvent>;
6826
6917
 
6827
6918
  export type HelixChatComposerProps = {
6919
+ /** Draws the composer's focus as a glow: a light that runs once around the
6920
+ edge as the composer takes focus, then a soft steady edge while it holds
6921
+ it, in place of the focus ring.
6922
+
6923
+ **On focus, and only then.** It says the composer is listening. A glow
6924
+ that ran while a reply was on its way would be a second indicator of what
6925
+ the conversation already shows, and one that ran all the time would be
6926
+ decoration that moves. With reduced motion asked for, the edge lights
6927
+ without the sweep.
6928
+
6929
+ The steady edge is the focus indicator, so the ring is not drawn as well.
6930
+ Its color is `--chat-composer-glow-color`, the primary color unless set. */
6931
+ glow?: (HelixChatComposer["glow"]) | undefined;
6828
6932
  /** What a screen reader hears as listening starts. */
6829
6933
  "listening-label"?: (HelixChatComposer["listeningLabel"]) | undefined;
6830
6934
  /** What a screen reader hears as listening starts. */
@@ -6846,6 +6950,18 @@ microphone is let go as listening stops. An input of type `password`,
6846
6950
  "voice-stop-label"?: (HelixChatComposer["voiceStopLabel"]) | undefined;
6847
6951
  /** The dictation button's name while it listens. */
6848
6952
  voiceStopLabel?: (HelixChatComposer["voiceStopLabel"]) | undefined;
6953
+ /** Whether the draft holds something besides its text, such as an attached
6954
+ file. The draft then counts as one though the field is empty, so the
6955
+ send button shows in place of the `idle` slot. */
6956
+ attached?: (HelixChatComposer["attached"]) | undefined;
6957
+ /** Whether a reply is on its way. While set, the send button is a stop
6958
+ button that sends `helix-stop`, and the draft does not send.
6959
+
6960
+ **The same button rather than one beside it**, because sending and
6961
+ stopping are never both possible: while a reply is on its way there is
6962
+ nothing to send to, and the place the reader's eye goes to act is the
6963
+ place that can act. The field stays open for the next turn. */
6964
+ busy?: (HelixChatComposer["busy"]) | undefined;
6849
6965
  /** A message about the draft, shown under the field. While set, the composer
6850
6966
  is invalid, does not send, and does not submit, as a field's `feedback`
6851
6967
  does, and the message is announced as it appears. */
@@ -6864,6 +6980,14 @@ the field, as on a `<textarea>`. */
6864
6980
  minLength?: (HelixChatComposer["minLength"]) | undefined;
6865
6981
  /** Placeholder text shown in an empty field. */
6866
6982
  placeholder?: (HelixChatComposer["placeholder"]) | undefined;
6983
+ /** Whether Enter sends while `busy`, for a page that queues the turn or
6984
+ hands it to the reply under way.
6985
+
6986
+ Off by default, because a page that does neither would drop the turn: it
6987
+ has nowhere to put a message while a reply is coming. The button stays
6988
+ the stop button either way, since stopping is still the one thing it
6989
+ should do while a reply is on its way. */
6990
+ queue?: (HelixChatComposer["queue"]) | undefined;
6867
6991
  /** Whether the form needs a draft to submit. An empty draft never sends,
6868
6992
  required or not. */
6869
6993
  required?: (HelixChatComposer["required"]) | undefined;
@@ -6871,10 +6995,34 @@ required or not. */
6871
6995
 
6872
6996
  It grows from there. */
6873
6997
  rows?: (HelixChatComposer["rows"]) | undefined;
6998
+ /** Whether the draft waits to be sent, such as while an attachment is still
6999
+ read. The send button is unavailable and Enter does not send, while the
7000
+ field stays open. The stop button shown while `busy` still stops. */
7001
+ "send-disabled"?: (HelixChatComposer["sendDisabled"]) | undefined;
7002
+ /** Whether the draft waits to be sent, such as while an attachment is still
7003
+ read. The send button is unavailable and Enter does not send, while the
7004
+ field stays open. The stop button shown while `busy` still stops. */
7005
+ sendDisabled?: (HelixChatComposer["sendDisabled"]) | undefined;
6874
7006
  /** Label for the send button. */
6875
7007
  "send-label"?: (HelixChatComposer["sendLabel"]) | undefined;
6876
7008
  /** Label for the send button. */
6877
7009
  sendLabel?: (HelixChatComposer["sendLabel"]) | undefined;
7010
+ /** Why the draft waits, such as "Reading photo.jpg", shown in a tooltip on
7011
+ the send button while `send-disabled` is set. The button then stays in
7012
+ the tab order and takes the pointer, with `aria-disabled` in place of
7013
+ `disabled`, so the reason can be reached by keyboard and by pointer, as
7014
+ Button's `focusable-when-disabled` does. A press still sends nothing. */
7015
+ "send-reason"?: (HelixChatComposer["sendReason"]) | undefined;
7016
+ /** Why the draft waits, such as "Reading photo.jpg", shown in a tooltip on
7017
+ the send button while `send-disabled` is set. The button then stays in
7018
+ the tab order and takes the pointer, with `aria-disabled` in place of
7019
+ `disabled`, so the reason can be reached by keyboard and by pointer, as
7020
+ Button's `focusable-when-disabled` does. A press still sends nothing. */
7021
+ sendReason?: (HelixChatComposer["sendReason"]) | undefined;
7022
+ /** Label for the stop button shown while `busy`. */
7023
+ "stop-label"?: (HelixChatComposer["stopLabel"]) | undefined;
7024
+ /** Label for the stop button shown while `busy`. */
7025
+ stopLabel?: (HelixChatComposer["stopLabel"]) | undefined;
6878
7026
  /** What sends the turn: `enter` for the Enter key, or `button` for the send
6879
7027
  button only.
6880
7028
 
@@ -6929,6 +7077,23 @@ Here rather than on each control. */
6929
7077
  /** The engine this field listens through, in place of the one
6930
7078
  `registerSpeechEngine` gave the page, or the browser's own. */
6931
7079
  speechEngine?: (HelixChatComposer["speechEngine"]) | undefined;
7080
+ /** Examples the empty field shows in turn, in place of `placeholder`, such
7081
+ as tasks a reader might ask for. Each shows for 6.5 seconds, and a longer
7082
+ one shows longer, up to 10 seconds.
7083
+
7084
+ **Each is the field's placeholder in its turn**, so a screen reader that
7085
+ reaches the field hears the one showing. The swap runs through
7086
+ `:state(example-leaving)`, as one example leaves, and
7087
+ `:state(example-entering)`, as the next arrives.
7088
+
7089
+ **They move only while nobody is about to write, and while the reader
7090
+ can see them.** An empty field without focus moves on. Focus or text
7091
+ holds the example showing, and an example already leaving finishes its
7092
+ turn. A composer scrolled out of view holds its example, and the example
7093
+ gets its full time again when the composer comes back. Where the reader
7094
+ asked for less motion, or the page paused its motion, the first example
7095
+ stays. */
7096
+ placeholders?: (HelixChatComposer["placeholders"]) | undefined;
6932
7097
 
6933
7098
  /** The dictation button was pressed. Cancelable: cancel it to keep the composer from listening. */
6934
7099
  "onhelix-before-listen"?: ((
@@ -6938,6 +7103,8 @@ Here rather than on each control. */
6938
7103
  "onhelix-listen"?: ((e: HelixChatComposerHelixListenElementEvent) => void) | undefined;
6939
7104
  /** Fired when the user sends their turn, and cancelable. */
6940
7105
  "onhelix-send"?: ((e: HelixChatComposerHelixSendElementEvent) => void) | undefined;
7106
+ /** Fired when the user presses the stop button, shown in place of the send button while `busy` is set. */
7107
+ "onhelix-stop"?: ((e: HelixChatComposerHelixStopElementEvent) => void) | undefined;
6941
7108
  /** The user started or stopped writing, with `typing` saying which, as the composer's `typing` does. */
6942
7109
  "onhelix-typing"?: ((e: HelixChatComposerHelixTypingElementEvent) => void) | undefined;
6943
7110
  /** The user changed the text. Read it from `value`, for a typing indicator or a saved draft. Bubbles and is composed, as a native field's is. */
@@ -6945,6 +7112,19 @@ Here rather than on each control. */
6945
7112
  };
6946
7113
 
6947
7114
  export type HelixChatComposerSolidJsProps = {
7115
+ /** Draws the composer's focus as a glow: a light that runs once around the
7116
+ edge as the composer takes focus, then a soft steady edge while it holds
7117
+ it, in place of the focus ring.
7118
+
7119
+ **On focus, and only then.** It says the composer is listening. A glow
7120
+ that ran while a reply was on its way would be a second indicator of what
7121
+ the conversation already shows, and one that ran all the time would be
7122
+ decoration that moves. With reduced motion asked for, the edge lights
7123
+ without the sweep.
7124
+
7125
+ The steady edge is the focus indicator, so the ring is not drawn as well.
7126
+ Its color is `--chat-composer-glow-color`, the primary color unless set. */
7127
+ "prop:glow"?: (HelixChatComposer["glow"]) | undefined;
6948
7128
  /** What a screen reader hears as listening starts. */
6949
7129
  "attr:listening-label"?: (HelixChatComposer["listeningLabel"]) | undefined;
6950
7130
  /** What a screen reader hears as listening starts. */
@@ -6966,6 +7146,18 @@ microphone is let go as listening stops. An input of type `password`,
6966
7146
  "attr:voice-stop-label"?: (HelixChatComposer["voiceStopLabel"]) | undefined;
6967
7147
  /** The dictation button's name while it listens. */
6968
7148
  "prop:voiceStopLabel"?: (HelixChatComposer["voiceStopLabel"]) | undefined;
7149
+ /** Whether the draft holds something besides its text, such as an attached
7150
+ file. The draft then counts as one though the field is empty, so the
7151
+ send button shows in place of the `idle` slot. */
7152
+ "prop:attached"?: (HelixChatComposer["attached"]) | undefined;
7153
+ /** Whether a reply is on its way. While set, the send button is a stop
7154
+ button that sends `helix-stop`, and the draft does not send.
7155
+
7156
+ **The same button rather than one beside it**, because sending and
7157
+ stopping are never both possible: while a reply is on its way there is
7158
+ nothing to send to, and the place the reader's eye goes to act is the
7159
+ place that can act. The field stays open for the next turn. */
7160
+ "prop:busy"?: (HelixChatComposer["busy"]) | undefined;
6969
7161
  /** A message about the draft, shown under the field. While set, the composer
6970
7162
  is invalid, does not send, and does not submit, as a field's `feedback`
6971
7163
  does, and the message is announced as it appears. */
@@ -6984,6 +7176,14 @@ the field, as on a `<textarea>`. */
6984
7176
  "prop:minLength"?: (HelixChatComposer["minLength"]) | undefined;
6985
7177
  /** Placeholder text shown in an empty field. */
6986
7178
  "prop:placeholder"?: (HelixChatComposer["placeholder"]) | undefined;
7179
+ /** Whether Enter sends while `busy`, for a page that queues the turn or
7180
+ hands it to the reply under way.
7181
+
7182
+ Off by default, because a page that does neither would drop the turn: it
7183
+ has nowhere to put a message while a reply is coming. The button stays
7184
+ the stop button either way, since stopping is still the one thing it
7185
+ should do while a reply is on its way. */
7186
+ "prop:queue"?: (HelixChatComposer["queue"]) | undefined;
6987
7187
  /** Whether the form needs a draft to submit. An empty draft never sends,
6988
7188
  required or not. */
6989
7189
  "prop:required"?: (HelixChatComposer["required"]) | undefined;
@@ -6991,10 +7191,34 @@ required or not. */
6991
7191
 
6992
7192
  It grows from there. */
6993
7193
  "prop:rows"?: (HelixChatComposer["rows"]) | undefined;
7194
+ /** Whether the draft waits to be sent, such as while an attachment is still
7195
+ read. The send button is unavailable and Enter does not send, while the
7196
+ field stays open. The stop button shown while `busy` still stops. */
7197
+ "bool:send-disabled"?: (HelixChatComposer["sendDisabled"]) | undefined;
7198
+ /** Whether the draft waits to be sent, such as while an attachment is still
7199
+ read. The send button is unavailable and Enter does not send, while the
7200
+ field stays open. The stop button shown while `busy` still stops. */
7201
+ "prop:sendDisabled"?: (HelixChatComposer["sendDisabled"]) | undefined;
6994
7202
  /** Label for the send button. */
6995
7203
  "attr:send-label"?: (HelixChatComposer["sendLabel"]) | undefined;
6996
7204
  /** Label for the send button. */
6997
7205
  "prop:sendLabel"?: (HelixChatComposer["sendLabel"]) | undefined;
7206
+ /** Why the draft waits, such as "Reading photo.jpg", shown in a tooltip on
7207
+ the send button while `send-disabled` is set. The button then stays in
7208
+ the tab order and takes the pointer, with `aria-disabled` in place of
7209
+ `disabled`, so the reason can be reached by keyboard and by pointer, as
7210
+ Button's `focusable-when-disabled` does. A press still sends nothing. */
7211
+ "attr:send-reason"?: (HelixChatComposer["sendReason"]) | undefined;
7212
+ /** Why the draft waits, such as "Reading photo.jpg", shown in a tooltip on
7213
+ the send button while `send-disabled` is set. The button then stays in
7214
+ the tab order and takes the pointer, with `aria-disabled` in place of
7215
+ `disabled`, so the reason can be reached by keyboard and by pointer, as
7216
+ Button's `focusable-when-disabled` does. A press still sends nothing. */
7217
+ "prop:sendReason"?: (HelixChatComposer["sendReason"]) | undefined;
7218
+ /** Label for the stop button shown while `busy`. */
7219
+ "attr:stop-label"?: (HelixChatComposer["stopLabel"]) | undefined;
7220
+ /** Label for the stop button shown while `busy`. */
7221
+ "prop:stopLabel"?: (HelixChatComposer["stopLabel"]) | undefined;
6998
7222
  /** What sends the turn: `enter` for the Enter key, or `button` for the send
6999
7223
  button only.
7000
7224
 
@@ -7049,6 +7273,23 @@ Here rather than on each control. */
7049
7273
  /** The engine this field listens through, in place of the one
7050
7274
  `registerSpeechEngine` gave the page, or the browser's own. */
7051
7275
  "prop:speechEngine"?: (HelixChatComposer["speechEngine"]) | undefined;
7276
+ /** Examples the empty field shows in turn, in place of `placeholder`, such
7277
+ as tasks a reader might ask for. Each shows for 6.5 seconds, and a longer
7278
+ one shows longer, up to 10 seconds.
7279
+
7280
+ **Each is the field's placeholder in its turn**, so a screen reader that
7281
+ reaches the field hears the one showing. The swap runs through
7282
+ `:state(example-leaving)`, as one example leaves, and
7283
+ `:state(example-entering)`, as the next arrives.
7284
+
7285
+ **They move only while nobody is about to write, and while the reader
7286
+ can see them.** An empty field without focus moves on. Focus or text
7287
+ holds the example showing, and an example already leaving finishes its
7288
+ turn. A composer scrolled out of view holds its example, and the example
7289
+ gets its full time again when the composer comes back. Where the reader
7290
+ asked for less motion, or the page paused its motion, the first example
7291
+ stays. */
7292
+ "prop:placeholders"?: (HelixChatComposer["placeholders"]) | undefined;
7052
7293
  /** The dictation button was pressed. Cancelable: cancel it to keep the composer from listening. */
7053
7294
  "on:helix-before-listen"?: ((
7054
7295
  e: HelixChatComposerHelixBeforeListenElementEvent,
@@ -7057,6 +7298,8 @@ Here rather than on each control. */
7057
7298
  "on:helix-listen"?: ((e: HelixChatComposerHelixListenElementEvent) => void) | undefined;
7058
7299
  /** Fired when the user sends their turn, and cancelable. */
7059
7300
  "on:helix-send"?: ((e: HelixChatComposerHelixSendElementEvent) => void) | undefined;
7301
+ /** Fired when the user presses the stop button, shown in place of the send button while `busy` is set. */
7302
+ "on:helix-stop"?: ((e: HelixChatComposerHelixStopElementEvent) => void) | undefined;
7060
7303
  /** The user started or stopped writing, with `typing` saying which, as the composer's `typing` does. */
7061
7304
  "on:helix-typing"?: ((e: HelixChatComposerHelixTypingElementEvent) => void) | undefined;
7062
7305
  /** The user changed the text. Read it from `value`, for a typing indicator or a saved draft. Bubbles and is composed, as a native field's is. */
@@ -11626,6 +11869,17 @@ export type HelixCommandHelixSelectElementEvent =
11626
11869
  HelixCommandElementEvent<HelixSelectEvent>;
11627
11870
 
11628
11871
  export type HelixCommandProps = {
11872
+ /** The panel's surface: `frosted` or `glass`, as on `Dialog`, which the
11873
+ palette opens in and hands the value to.
11874
+
11875
+ Absent is the opaque overlay surface. `glass` is the page's translucent
11876
+ ground over the theme's blur, and `frosted` the same pair turned up, so a
11877
+ page whose panels are frosted has a palette that matches. Its strength is
11878
+ the theme's, as on `Popover`, `Menu` and `Drawer`.
11879
+
11880
+ **No `transparent`, deliberately.** A palette over arbitrary page content
11881
+ is only readable because it has a ground. */
11882
+ material?: (HelixCommand["material"]) | undefined;
11629
11883
  /** Whether the element starts open. Ignored once `open` is written. */
11630
11884
  "default-open"?: (HelixCommand["defaultOpen"]) | undefined;
11631
11885
  /** Whether the element starts open. Ignored once `open` is written. */
@@ -11798,6 +12052,17 @@ write as a child. */
11798
12052
  };
11799
12053
 
11800
12054
  export type HelixCommandSolidJsProps = {
12055
+ /** The panel's surface: `frosted` or `glass`, as on `Dialog`, which the
12056
+ palette opens in and hands the value to.
12057
+
12058
+ Absent is the opaque overlay surface. `glass` is the page's translucent
12059
+ ground over the theme's blur, and `frosted` the same pair turned up, so a
12060
+ page whose panels are frosted has a palette that matches. Its strength is
12061
+ the theme's, as on `Popover`, `Menu` and `Drawer`.
12062
+
12063
+ **No `transparent`, deliberately.** A palette over arbitrary page content
12064
+ is only readable because it has a ground. */
12065
+ "prop:material"?: (HelixCommand["material"]) | undefined;
11801
12066
  /** Whether the element starts open. Ignored once `open` is written. */
11802
12067
  "bool:default-open"?: (HelixCommand["defaultOpen"]) | undefined;
11803
12068
  /** Whether the element starts open. Ignored once `open` is written. */
@@ -12072,6 +12337,36 @@ whatever its `type`. Declared here so its own page says what it holds. */
12072
12337
  value?: (HelixCopyButton["value"]) | undefined;
12073
12338
  /** */
12074
12339
  "aria-label"?: (string) | undefined;
12340
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
12341
+ can say why it is disabled.
12342
+
12343
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
12344
+ changes to save. While the button is disabled, it keeps focus and takes
12345
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
12346
+ a field of its form. The click does not reach your listeners, and a submit
12347
+ button submits nothing. The inner control carries `aria-disabled` in place
12348
+ of the native `disabled`, so a screen reader still says it is unavailable.
12349
+ The styled button keeps the disabled look.
12350
+
12351
+ Leave it unset on a button with no reason to give. A plain disabled button
12352
+ leaves the tab order, as a native one does, and a keyboard reader skips a
12353
+ stop that does nothing. Set `pending` for the wait after a press. */
12354
+ "focusable-when-disabled"?: (HelixCopyButton["focusableWhenDisabled"]) | undefined;
12355
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
12356
+ can say why it is disabled.
12357
+
12358
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
12359
+ changes to save. While the button is disabled, it keeps focus and takes
12360
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
12361
+ a field of its form. The click does not reach your listeners, and a submit
12362
+ button submits nothing. The inner control carries `aria-disabled` in place
12363
+ of the native `disabled`, so a screen reader still says it is unavailable.
12364
+ The styled button keeps the disabled look.
12365
+
12366
+ Leave it unset on a button with no reason to give. A plain disabled button
12367
+ leaves the tab order, as a native one does, and a keyboard reader skips a
12368
+ stop that does nothing. Set `pending` for the wait after a press. */
12369
+ focusableWhenDisabled?: (HelixCopyButton["focusableWhenDisabled"]) | undefined;
12075
12370
  /** Whether the action the button started is still running.
12076
12371
 
12077
12372
  A pending button keeps focus and stays in the tab order, and refuses every
@@ -12226,6 +12521,36 @@ whatever its `type`. Declared here so its own page says what it holds. */
12226
12521
  "prop:value"?: (HelixCopyButton["value"]) | undefined;
12227
12522
  /** */
12228
12523
  "attr:aria-label"?: (string) | undefined;
12524
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
12525
+ can say why it is disabled.
12526
+
12527
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
12528
+ changes to save. While the button is disabled, it keeps focus and takes
12529
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
12530
+ a field of its form. The click does not reach your listeners, and a submit
12531
+ button submits nothing. The inner control carries `aria-disabled` in place
12532
+ of the native `disabled`, so a screen reader still says it is unavailable.
12533
+ The styled button keeps the disabled look.
12534
+
12535
+ Leave it unset on a button with no reason to give. A plain disabled button
12536
+ leaves the tab order, as a native one does, and a keyboard reader skips a
12537
+ stop that does nothing. Set `pending` for the wait after a press. */
12538
+ "bool:focusable-when-disabled"?: (HelixCopyButton["focusableWhenDisabled"]) | undefined;
12539
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
12540
+ can say why it is disabled.
12541
+
12542
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
12543
+ changes to save. While the button is disabled, it keeps focus and takes
12544
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
12545
+ a field of its form. The click does not reach your listeners, and a submit
12546
+ button submits nothing. The inner control carries `aria-disabled` in place
12547
+ of the native `disabled`, so a screen reader still says it is unavailable.
12548
+ The styled button keeps the disabled look.
12549
+
12550
+ Leave it unset on a button with no reason to give. A plain disabled button
12551
+ leaves the tab order, as a native one does, and a keyboard reader skips a
12552
+ stop that does nothing. Set `pending` for the wait after a press. */
12553
+ "prop:focusableWhenDisabled"?: (HelixCopyButton["focusableWhenDisabled"]) | undefined;
12229
12554
  /** Whether the action the button started is still running.
12230
12555
 
12231
12556
  A pending button keeps focus and stays in the tab order, and refuses every
@@ -15539,6 +15864,16 @@ export type HelixDialogHelixBeforeOpenElementEvent =
15539
15864
  HelixDialogElementEvent<HelixBeforeOpenEvent>;
15540
15865
 
15541
15866
  export type HelixDialogProps = {
15867
+ /** The panel's surface: `frosted` or `glass`.
15868
+
15869
+ Absent is the opaque overlay surface. `glass` is the page's translucent
15870
+ ground over the theme's blur, and `frosted` the same pair turned up, as
15871
+ on `Popover`, `Menu`, `Drawer` and `Tooltip`, so a page whose panels are
15872
+ frosted has dialogs that match.
15873
+
15874
+ **No `transparent`, deliberately.** A dialog over arbitrary page content
15875
+ is only readable because it has a ground. */
15876
+ material?: (HelixDialog["material"]) | undefined;
15542
15877
  /** How wide the panel is allowed to be.
15543
15878
 
15544
15879
  Steps rather than a number, because a dialog's width is a fact about what is
@@ -15713,6 +16048,16 @@ survives to it and a consumer reading one back gets what they wrote. */
15713
16048
  };
15714
16049
 
15715
16050
  export type HelixDialogSolidJsProps = {
16051
+ /** The panel's surface: `frosted` or `glass`.
16052
+
16053
+ Absent is the opaque overlay surface. `glass` is the page's translucent
16054
+ ground over the theme's blur, and `frosted` the same pair turned up, as
16055
+ on `Popover`, `Menu`, `Drawer` and `Tooltip`, so a page whose panels are
16056
+ frosted has dialogs that match.
16057
+
16058
+ **No `transparent`, deliberately.** A dialog over arbitrary page content
16059
+ is only readable because it has a ground. */
16060
+ "prop:material"?: (HelixDialog["material"]) | undefined;
15716
16061
  /** How wide the panel is allowed to be.
15717
16062
 
15718
16063
  Steps rather than a number, because a dialog's width is a fact about what is
@@ -20405,6 +20750,36 @@ is the platform's `commandfor`. */
20405
20750
  commandfor?: (HelixIconButton["commandFor"]) | undefined;
20406
20751
  /** The id of the element the command is sent to. */
20407
20752
  commandFor?: (HelixIconButton["commandFor"]) | undefined;
20753
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
20754
+ can say why it is disabled.
20755
+
20756
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
20757
+ changes to save. While the button is disabled, it keeps focus and takes
20758
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
20759
+ a field of its form. The click does not reach your listeners, and a submit
20760
+ button submits nothing. The inner control carries `aria-disabled` in place
20761
+ of the native `disabled`, so a screen reader still says it is unavailable.
20762
+ The styled button keeps the disabled look.
20763
+
20764
+ Leave it unset on a button with no reason to give. A plain disabled button
20765
+ leaves the tab order, as a native one does, and a keyboard reader skips a
20766
+ stop that does nothing. Set `pending` for the wait after a press. */
20767
+ "focusable-when-disabled"?: (HelixIconButton["focusableWhenDisabled"]) | undefined;
20768
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
20769
+ can say why it is disabled.
20770
+
20771
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
20772
+ changes to save. While the button is disabled, it keeps focus and takes
20773
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
20774
+ a field of its form. The click does not reach your listeners, and a submit
20775
+ button submits nothing. The inner control carries `aria-disabled` in place
20776
+ of the native `disabled`, so a screen reader still says it is unavailable.
20777
+ The styled button keeps the disabled look.
20778
+
20779
+ Leave it unset on a button with no reason to give. A plain disabled button
20780
+ leaves the tab order, as a native one does, and a keyboard reader skips a
20781
+ stop that does nothing. Set `pending` for the wait after a press. */
20782
+ focusableWhenDisabled?: (HelixIconButton["focusableWhenDisabled"]) | undefined;
20408
20783
  /** Where this button's submission goes, overriding the form's own.
20409
20784
 
20410
20785
  **The five `form*` overrides ride on a native submit button that stands in
@@ -20641,6 +21016,36 @@ is the platform's `commandfor`. */
20641
21016
  "attr:commandfor"?: (HelixIconButton["commandFor"]) | undefined;
20642
21017
  /** The id of the element the command is sent to. */
20643
21018
  "prop:commandFor"?: (HelixIconButton["commandFor"]) | undefined;
21019
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
21020
+ can say why it is disabled.
21021
+
21022
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
21023
+ changes to save. While the button is disabled, it keeps focus and takes
21024
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
21025
+ a field of its form. The click does not reach your listeners, and a submit
21026
+ button submits nothing. The inner control carries `aria-disabled` in place
21027
+ of the native `disabled`, so a screen reader still says it is unavailable.
21028
+ The styled button keeps the disabled look.
21029
+
21030
+ Leave it unset on a button with no reason to give. A plain disabled button
21031
+ leaves the tab order, as a native one does, and a keyboard reader skips a
21032
+ stop that does nothing. Set `pending` for the wait after a press. */
21033
+ "bool:focusable-when-disabled"?: (HelixIconButton["focusableWhenDisabled"]) | undefined;
21034
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
21035
+ can say why it is disabled.
21036
+
21037
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
21038
+ changes to save. While the button is disabled, it keeps focus and takes
21039
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
21040
+ a field of its form. The click does not reach your listeners, and a submit
21041
+ button submits nothing. The inner control carries `aria-disabled` in place
21042
+ of the native `disabled`, so a screen reader still says it is unavailable.
21043
+ The styled button keeps the disabled look.
21044
+
21045
+ Leave it unset on a button with no reason to give. A plain disabled button
21046
+ leaves the tab order, as a native one does, and a keyboard reader skips a
21047
+ stop that does nothing. Set `pending` for the wait after a press. */
21048
+ "prop:focusableWhenDisabled"?: (HelixIconButton["focusableWhenDisabled"]) | undefined;
20644
21049
  /** Where this button's submission goes, overriding the form's own.
20645
21050
 
20646
21051
  **The five `form*` overrides ride on a native submit button that stands in
@@ -21291,6 +21696,10 @@ token.
21291
21696
  Empty leaves the attribute off, which is the browser's default. Set it to
21292
21697
  a token like `email` or `bday` to ask for autofill, or to `off` to refuse. */
21293
21698
  autocomplete?: (HelixInput["autocomplete"]) | undefined;
21699
+ /** Whether the browser corrects words as the reader types, as the platform's
21700
+ `autocorrect`. Turn it off, with `autocorrect="off"`, for text that is not
21701
+ prose, such as an address or a code, which corrections would change. */
21702
+ autocorrect?: (HelixInput["autocorrect"]) | undefined;
21294
21703
  /** Whether the field shows a button that empties it.
21295
21704
 
21296
21705
  Shown only while there is something to clear, because a control that does
@@ -21553,6 +21962,10 @@ token.
21553
21962
  Empty leaves the attribute off, which is the browser's default. Set it to
21554
21963
  a token like `email` or `bday` to ask for autofill, or to `off` to refuse. */
21555
21964
  "prop:autocomplete"?: (HelixInput["autocomplete"]) | undefined;
21965
+ /** Whether the browser corrects words as the reader types, as the platform's
21966
+ `autocorrect`. Turn it off, with `autocorrect="off"`, for text that is not
21967
+ prose, such as an address or a code, which corrections would change. */
21968
+ "prop:autocorrect"?: (HelixInput["autocorrect"]) | undefined;
21556
21969
  /** Whether the field shows a button that empties it.
21557
21970
 
21558
21971
  Shown only while there is something to clear, because a control that does
@@ -24532,7 +24945,10 @@ export type HelixLogProps = {
24532
24945
  - `plain` has no edge, no fill, no inset and no height of its own: the
24533
24946
  lines start where the text around them does and the log grows with
24534
24947
  them. For a log inside something that already frames it, such as an
24535
- agent's work in a chat turn's `work` slot.
24948
+ agent's work in a chat turn's `work` slot. Each step is a row with its
24949
+ status mark on that edge and its caret after the heading. A step that
24950
+ holds steps draws a rule beside them, and a step that holds lines draws
24951
+ them on a quiet surface that scrolls after `--log-step-max-block-size`.
24536
24952
 
24537
24953
  Both are writable, so a page can say which it means rather than relying
24538
24954
  on the absence of an attribute. */
@@ -24707,7 +25123,10 @@ export type HelixLogSolidJsProps = {
24707
25123
  - `plain` has no edge, no fill, no inset and no height of its own: the
24708
25124
  lines start where the text around them does and the log grows with
24709
25125
  them. For a log inside something that already frames it, such as an
24710
- agent's work in a chat turn's `work` slot.
25126
+ agent's work in a chat turn's `work` slot. Each step is a row with its
25127
+ status mark on that edge and its caret after the heading. A step that
25128
+ holds steps draws a rule beside them, and a step that holds lines draws
25129
+ them on a quiet surface that scrolls after `--log-step-max-block-size`.
24711
25130
 
24712
25131
  Both are writable, so a page can say which it means rather than relying
24713
25132
  on the absence of an attribute. */
@@ -26945,6 +27364,20 @@ export type HelixMenuHelixSelectElementEvent =
26945
27364
  HelixMenuElementEvent<HelixSelectEvent>;
26946
27365
 
26947
27366
  export type HelixMenuProps = {
27367
+ /** The panel's surface: `frosted` or `glass`.
27368
+
27369
+ Absent is the opaque overlay surface. `glass` is the page's translucent
27370
+ ground over a blur, for a page whose surfaces are glass, so a panel opened
27371
+ over a glass window is not the one opaque slab on it. `frosted` is the same
27372
+ pair turned up, a ground that admits less and a heavier blur.
27373
+
27374
+ The strength is the theme's: `--helix-material-translucent`,
27375
+ `--helix-material-translucent-strong` and `--helix-material-backdrop` are
27376
+ what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
27377
+
27378
+ **No `transparent`, deliberately.** A panel floating over arbitrary page
27379
+ content is only readable because it has a ground. */
27380
+ material?: (HelixMenu["material"]) | undefined;
26948
27381
  /** The text shown and announced when there are no rows and none are loading. */
26949
27382
  "empty-text"?: (HelixMenu["emptyText"]) | undefined;
26950
27383
  /** The text shown and announced when there are no rows and none are loading. */
@@ -27098,6 +27531,20 @@ is sent on the menu when a reader's choice changes it. */
27098
27531
  };
27099
27532
 
27100
27533
  export type HelixMenuSolidJsProps = {
27534
+ /** The panel's surface: `frosted` or `glass`.
27535
+
27536
+ Absent is the opaque overlay surface. `glass` is the page's translucent
27537
+ ground over a blur, for a page whose surfaces are glass, so a panel opened
27538
+ over a glass window is not the one opaque slab on it. `frosted` is the same
27539
+ pair turned up, a ground that admits less and a heavier blur.
27540
+
27541
+ The strength is the theme's: `--helix-material-translucent`,
27542
+ `--helix-material-translucent-strong` and `--helix-material-backdrop` are
27543
+ what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
27544
+
27545
+ **No `transparent`, deliberately.** A panel floating over arbitrary page
27546
+ content is only readable because it has a ground. */
27547
+ "prop:material"?: (HelixMenu["material"]) | undefined;
27101
27548
  /** The text shown and announced when there are no rows and none are loading. */
27102
27549
  "attr:empty-text"?: (HelixMenu["emptyText"]) | undefined;
27103
27550
  /** The text shown and announced when there are no rows and none are loading. */
@@ -27641,6 +28088,43 @@ fair summary of a task and a poor one of a quantity. */
27641
28088
  textContent?: (string | number) | undefined;
27642
28089
  };
27643
28090
 
28091
+ export type HelixMeterSegmentProps = {
28092
+ /** What the segment is, such as "Tools", which names the slice when a pointer
28093
+ rests on it.
28094
+
28095
+ Not announced: see the note on a meter's children above. */
28096
+ label?: (HelixMeterSegment["label"]) | undefined;
28097
+ /** What the segment means, as it does on a callout. Takes the tone's color in
28098
+ place of the next color in the series. */
28099
+ tone?: (HelixMeterSegment["tone"]) | undefined;
28100
+ /** How much of the meter's range the segment takes, in the units of the meter's
28101
+ `min` and `max`.
28102
+
28103
+ A value that is not a number, or is below zero, draws nothing. */
28104
+ value?: (HelixMeterSegment["value"]) | undefined;
28105
+ };
28106
+
28107
+ export type HelixMeterSegmentSolidJsProps = {
28108
+ /** What the segment is, such as "Tools", which names the slice when a pointer
28109
+ rests on it.
28110
+
28111
+ Not announced: see the note on a meter's children above. */
28112
+ "prop:label"?: (HelixMeterSegment["label"]) | undefined;
28113
+ /** What the segment means, as it does on a callout. Takes the tone's color in
28114
+ place of the next color in the series. */
28115
+ "prop:tone"?: (HelixMeterSegment["tone"]) | undefined;
28116
+ /** How much of the meter's range the segment takes, in the units of the meter's
28117
+ `min` and `max`.
28118
+
28119
+ A value that is not a number, or is below zero, draws nothing. */
28120
+ "prop:value"?: (HelixMeterSegment["value"]) | undefined;
28121
+
28122
+ /** Set the innerHTML of the element */
28123
+ innerHTML?: (string) | undefined;
28124
+ /** Set the textContent of the element */
28125
+ textContent?: (string | number) | undefined;
28126
+ };
28127
+
27644
28128
  /** `HelixMotionToggle` component event */
27645
28129
  export type HelixMotionToggleElementEvent<E = Event> = TypedEvent<
27646
28130
  HelixMotionToggle,
@@ -30712,6 +31196,20 @@ export type HelixPopoverHelixBeforeOpenElementEvent =
30712
31196
  HelixPopoverElementEvent<HelixBeforeOpenEvent>;
30713
31197
 
30714
31198
  export type HelixPopoverProps = {
31199
+ /** The panel's surface: `frosted` or `glass`.
31200
+
31201
+ Absent is the opaque overlay surface. `glass` is the page's translucent
31202
+ ground over a blur, for a page whose surfaces are glass, so a panel opened
31203
+ over a glass window is not the one opaque slab on it. `frosted` is the same
31204
+ pair turned up, a ground that admits less and a heavier blur.
31205
+
31206
+ The strength is the theme's: `--helix-material-translucent`,
31207
+ `--helix-material-translucent-strong` and `--helix-material-backdrop` are
31208
+ what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
31209
+
31210
+ **No `transparent`, deliberately.** A panel floating over arbitrary page
31211
+ content is only readable because it has a ground. */
31212
+ material?: (HelixPopover["material"]) | undefined;
30715
31213
  /** How the panel is set apart from the content under it.
30716
31214
 
30717
31215
  One of the axis's four values, which is all this surface has meaning for: a
@@ -30801,6 +31299,20 @@ It moves if that side does not fit. */
30801
31299
  };
30802
31300
 
30803
31301
  export type HelixPopoverSolidJsProps = {
31302
+ /** The panel's surface: `frosted` or `glass`.
31303
+
31304
+ Absent is the opaque overlay surface. `glass` is the page's translucent
31305
+ ground over a blur, for a page whose surfaces are glass, so a panel opened
31306
+ over a glass window is not the one opaque slab on it. `frosted` is the same
31307
+ pair turned up, a ground that admits less and a heavier blur.
31308
+
31309
+ The strength is the theme's: `--helix-material-translucent`,
31310
+ `--helix-material-translucent-strong` and `--helix-material-backdrop` are
31311
+ what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
31312
+
31313
+ **No `transparent`, deliberately.** A panel floating over arbitrary page
31314
+ content is only readable because it has a ground. */
31315
+ "prop:material"?: (HelixPopover["material"]) | undefined;
30804
31316
  /** How the panel is set apart from the content under it.
30805
31317
 
30806
31318
  One of the axis's four values, which is all this surface has meaning for: a
@@ -35503,6 +36015,13 @@ shows the bars behind it. Absent is the filled bar, per the rule that a
35503
36015
  reflected property takes no default, and `solid` writes it out. A
35504
36016
  renderer draws the bars the same way.
35505
36017
 
36018
+ **`muted` draws every bar in the neutral ink**, so the one bar whose cell
36019
+ names a tone, such as `data-tone="primary"`, is the bar in color, with a
36020
+ soft glow in its tone: one reading lit among the others, such as today
36021
+ among a week. Each top takes the most ink and each side less, as a
36022
+ colored bar's faces do. A renderer draws the neutral bars and the toned
36023
+ one, without the glow.
36024
+
35506
36025
  It composes with `material`: emphasis decides what is drawn, and material
35507
36026
  how much of it comes through. The outline on the bar the keys rest on
35508
36027
  keeps its own ink. */
@@ -35613,13 +36132,42 @@ press, and the sound is made only then. */
35613
36132
  for no one else. Reflected, because the stylesheet draws it by the
35614
36133
  attribute, and a page that sets the property, as React does, writes none. */
35615
36134
  summary?: (HelixSpatialBarChart["summary"]) | undefined;
35616
- /** Draws no box: no edges, grid, numbers, or names, so the readings stand
35617
- alone and fill the plot, as a picture on a product's own page does. The
36135
+ /** Grows the bars up from the floor the first time the chart comes into
36136
+ view with readings, each category a little after the one before it, so
36137
+ the drawing arrives the way a page's own picture does. The growth is
36138
+ fast at first, slows to rest, and never passes a bar's value.
36139
+
36140
+ Under `prefers-reduced-motion`, or where the page has paused its motion
36141
+ through `pauseMotion` or `Motion Toggle`, the bars stand at their height
36142
+ from the start. A later table draws the bars it already had at their
36143
+ height, and grows the bars it adds, each from the floor, so a reading that
36144
+ arrives while the chart is in view arrives the same way. */
36145
+ grow?: (HelixSpatialBarChart["grow"]) | undefined;
36146
+ /** Grows the bars again each time the chart comes back into view after it
36147
+ left it, as a pane does when it is opened again, where `grow` alone grows
36148
+ them the first time only. Only a chart that grows takes it.
36149
+
36150
+ While it is out of view the bars stand at the floor, so the first frame
36151
+ after it returns is the start of the growth and never a flash at full
36152
+ height. */
36153
+ "grow-again"?: (HelixSpatialBarChart["growAgain"]) | undefined;
36154
+ /** Grows the bars again each time the chart comes back into view after it
36155
+ left it, as a pane does when it is opened again, where `grow` alone grows
36156
+ them the first time only. Only a chart that grows takes it.
36157
+
36158
+ While it is out of view the bars stand at the floor, so the first frame
36159
+ after it returns is the start of the growth and never a flash at full
36160
+ height. */
36161
+ growAgain?: (HelixSpatialBarChart["growAgain"]) | undefined;
36162
+ /** Draws no box: no edges, grid, numbers, or names, and in a `row` no
36163
+ floor, so the readings stand alone and fill the plot, as a picture on a
36164
+ product's own page does. The
35618
36165
  table, the summary, the tooltip, and the keys still carry every value,
35619
36166
  and a renderer draws no box either. */
35620
36167
  "no-box"?: (HelixSpatialBarChart["noBox"]) | undefined;
35621
- /** Draws no box: no edges, grid, numbers, or names, so the readings stand
35622
- alone and fill the plot, as a picture on a product's own page does. The
36168
+ /** Draws no box: no edges, grid, numbers, or names, and in a `row` no
36169
+ floor, so the readings stand alone and fill the plot, as a picture on a
36170
+ product's own page does. The
35623
36171
  table, the summary, the tooltip, and the keys still carry every value,
35624
36172
  and a renderer draws no box either. */
35625
36173
  noBox?: (HelixSpatialBarChart["noBox"]) | undefined;
@@ -35633,6 +36181,15 @@ and a renderer draws no box either. */
35633
36181
  "plot-label"?: (HelixSpatialBarChart["plotLabel"]) | undefined;
35634
36182
  /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
35635
36183
  plotLabel?: (HelixSpatialBarChart["plotLabel"]) | undefined;
36184
+ /** Stacks a category's series into one column, each block standing on the
36185
+ ones before it, so the column is as tall as the category's total, as a
36186
+ flat `Bar Chart` stacks them.
36187
+
36188
+ Absent stands the series one behind another in depth. Stacked, every
36189
+ series stands in the front row, so none hides another, and the parts of
36190
+ one total read together. A negative reading hangs below zero on the
36191
+ negatives before it. The scale fits the stacks. */
36192
+ stacked?: (HelixSpatialBarChart["stacked"]) | undefined;
35636
36193
  /** The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
35637
36194
  are the number of bars, series, and categories, written in the locale,
35638
36195
  and `{low}` and `{high}` the lowest and the highest value. */
@@ -35641,6 +36198,38 @@ and `{low}` and `{high}` the lowest and the highest value. */
35641
36198
  are the number of bars, series, and categories, written in the locale,
35642
36199
  and `{low}` and `{high}` the lowest and the highest value. */
35643
36200
  summaryLabel?: (HelixSpatialBarChart["summaryLabel"]) | undefined;
36201
+ /** How the bars stand.
36202
+
36203
+ Unset, they stand on a grid of categories across and series in depth,
36204
+ in a box the camera looks at from a corner, so the grid recedes at an
36205
+ angle. `row` lays the categories in a straight line across the page and
36206
+ turns each bar to the camera, showing its top and two sides, for one row
36207
+ of readings in a small space such as a pane: turning the view turns each
36208
+ bar where it stands, and the row stays level. It is the chart's own
36209
+ drawing that lays the row: a renderer connected through
36210
+ `@fusion.dev/helix-plot` stands the bars on the grid.
36211
+
36212
+ `diagonal` is the same row climbing to the right as it recedes, each
36213
+ place a step further back than the one before, as a row of days on a
36214
+ product's page is drawn: the row rises one part in five across the page
36215
+ from any turn, and its floor and names climb with it. A row whose bars
36216
+ have a size climbs at most a quarter of the plot's height, so the bars
36217
+ of a long row keep theirs.
36218
+
36219
+ **A row draws its floor in place of a box**: each place as an outline a
36220
+ little wider than its bar, and each category's name under it, as many
36221
+ names as fit without touching. A name whose bar names a tone is written
36222
+ first, in that tone. `no-box` leaves the floor and the names out.
36223
+
36224
+ **A `column-gap` on the `fallback` part gives a row's bars one width**,
36225
+ which the styled tier sets from `--spatial-bar-chart-bar-size`: one bar
36226
+ stands as wide as each of twenty, the row is as long as its bars and
36227
+ centered, the tallest bar stands as high as the plot has room for and
36228
+ no taller than the row is long and a quarter again, so one bar stands
36229
+ as a block, and `fits` says how many bars the plot holds, so a page
36230
+ can give it the latest of a longer table. It is read when the plot's
36231
+ size changes. */
36232
+ variant?: (HelixSpatialBarChart["variant"]) | undefined;
35644
36233
  /** The readings as data, in the shape of a table, where the page has no
35645
36234
  table to point `for` at. `for` wins where both are set.
35646
36235
 
@@ -35692,6 +36281,13 @@ shows the bars behind it. Absent is the filled bar, per the rule that a
35692
36281
  reflected property takes no default, and `solid` writes it out. A
35693
36282
  renderer draws the bars the same way.
35694
36283
 
36284
+ **`muted` draws every bar in the neutral ink**, so the one bar whose cell
36285
+ names a tone, such as `data-tone="primary"`, is the bar in color, with a
36286
+ soft glow in its tone: one reading lit among the others, such as today
36287
+ among a week. Each top takes the most ink and each side less, as a
36288
+ colored bar's faces do. A renderer draws the neutral bars and the toned
36289
+ one, without the glow.
36290
+
35695
36291
  It composes with `material`: emphasis decides what is drawn, and material
35696
36292
  how much of it comes through. The outline on the bar the keys rest on
35697
36293
  keeps its own ink. */
@@ -35802,13 +36398,42 @@ press, and the sound is made only then. */
35802
36398
  for no one else. Reflected, because the stylesheet draws it by the
35803
36399
  attribute, and a page that sets the property, as React does, writes none. */
35804
36400
  "prop:summary"?: (HelixSpatialBarChart["summary"]) | undefined;
35805
- /** Draws no box: no edges, grid, numbers, or names, so the readings stand
35806
- alone and fill the plot, as a picture on a product's own page does. The
36401
+ /** Grows the bars up from the floor the first time the chart comes into
36402
+ view with readings, each category a little after the one before it, so
36403
+ the drawing arrives the way a page's own picture does. The growth is
36404
+ fast at first, slows to rest, and never passes a bar's value.
36405
+
36406
+ Under `prefers-reduced-motion`, or where the page has paused its motion
36407
+ through `pauseMotion` or `Motion Toggle`, the bars stand at their height
36408
+ from the start. A later table draws the bars it already had at their
36409
+ height, and grows the bars it adds, each from the floor, so a reading that
36410
+ arrives while the chart is in view arrives the same way. */
36411
+ "prop:grow"?: (HelixSpatialBarChart["grow"]) | undefined;
36412
+ /** Grows the bars again each time the chart comes back into view after it
36413
+ left it, as a pane does when it is opened again, where `grow` alone grows
36414
+ them the first time only. Only a chart that grows takes it.
36415
+
36416
+ While it is out of view the bars stand at the floor, so the first frame
36417
+ after it returns is the start of the growth and never a flash at full
36418
+ height. */
36419
+ "bool:grow-again"?: (HelixSpatialBarChart["growAgain"]) | undefined;
36420
+ /** Grows the bars again each time the chart comes back into view after it
36421
+ left it, as a pane does when it is opened again, where `grow` alone grows
36422
+ them the first time only. Only a chart that grows takes it.
36423
+
36424
+ While it is out of view the bars stand at the floor, so the first frame
36425
+ after it returns is the start of the growth and never a flash at full
36426
+ height. */
36427
+ "prop:growAgain"?: (HelixSpatialBarChart["growAgain"]) | undefined;
36428
+ /** Draws no box: no edges, grid, numbers, or names, and in a `row` no
36429
+ floor, so the readings stand alone and fill the plot, as a picture on a
36430
+ product's own page does. The
35807
36431
  table, the summary, the tooltip, and the keys still carry every value,
35808
36432
  and a renderer draws no box either. */
35809
36433
  "bool:no-box"?: (HelixSpatialBarChart["noBox"]) | undefined;
35810
- /** Draws no box: no edges, grid, numbers, or names, so the readings stand
35811
- alone and fill the plot, as a picture on a product's own page does. The
36434
+ /** Draws no box: no edges, grid, numbers, or names, and in a `row` no
36435
+ floor, so the readings stand alone and fill the plot, as a picture on a
36436
+ product's own page does. The
35812
36437
  table, the summary, the tooltip, and the keys still carry every value,
35813
36438
  and a renderer draws no box either. */
35814
36439
  "prop:noBox"?: (HelixSpatialBarChart["noBox"]) | undefined;
@@ -35822,6 +36447,15 @@ and a renderer draws no box either. */
35822
36447
  "attr:plot-label"?: (HelixSpatialBarChart["plotLabel"]) | undefined;
35823
36448
  /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
35824
36449
  "prop:plotLabel"?: (HelixSpatialBarChart["plotLabel"]) | undefined;
36450
+ /** Stacks a category's series into one column, each block standing on the
36451
+ ones before it, so the column is as tall as the category's total, as a
36452
+ flat `Bar Chart` stacks them.
36453
+
36454
+ Absent stands the series one behind another in depth. Stacked, every
36455
+ series stands in the front row, so none hides another, and the parts of
36456
+ one total read together. A negative reading hangs below zero on the
36457
+ negatives before it. The scale fits the stacks. */
36458
+ "prop:stacked"?: (HelixSpatialBarChart["stacked"]) | undefined;
35825
36459
  /** The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
35826
36460
  are the number of bars, series, and categories, written in the locale,
35827
36461
  and `{low}` and `{high}` the lowest and the highest value. */
@@ -35830,6 +36464,38 @@ and `{low}` and `{high}` the lowest and the highest value. */
35830
36464
  are the number of bars, series, and categories, written in the locale,
35831
36465
  and `{low}` and `{high}` the lowest and the highest value. */
35832
36466
  "prop:summaryLabel"?: (HelixSpatialBarChart["summaryLabel"]) | undefined;
36467
+ /** How the bars stand.
36468
+
36469
+ Unset, they stand on a grid of categories across and series in depth,
36470
+ in a box the camera looks at from a corner, so the grid recedes at an
36471
+ angle. `row` lays the categories in a straight line across the page and
36472
+ turns each bar to the camera, showing its top and two sides, for one row
36473
+ of readings in a small space such as a pane: turning the view turns each
36474
+ bar where it stands, and the row stays level. It is the chart's own
36475
+ drawing that lays the row: a renderer connected through
36476
+ `@fusion.dev/helix-plot` stands the bars on the grid.
36477
+
36478
+ `diagonal` is the same row climbing to the right as it recedes, each
36479
+ place a step further back than the one before, as a row of days on a
36480
+ product's page is drawn: the row rises one part in five across the page
36481
+ from any turn, and its floor and names climb with it. A row whose bars
36482
+ have a size climbs at most a quarter of the plot's height, so the bars
36483
+ of a long row keep theirs.
36484
+
36485
+ **A row draws its floor in place of a box**: each place as an outline a
36486
+ little wider than its bar, and each category's name under it, as many
36487
+ names as fit without touching. A name whose bar names a tone is written
36488
+ first, in that tone. `no-box` leaves the floor and the names out.
36489
+
36490
+ **A `column-gap` on the `fallback` part gives a row's bars one width**,
36491
+ which the styled tier sets from `--spatial-bar-chart-bar-size`: one bar
36492
+ stands as wide as each of twenty, the row is as long as its bars and
36493
+ centered, the tallest bar stands as high as the plot has room for and
36494
+ no taller than the row is long and a quarter again, so one bar stands
36495
+ as a block, and `fits` says how many bars the plot holds, so a page
36496
+ can give it the latest of a longer table. It is read when the plot's
36497
+ size changes. */
36498
+ "prop:variant"?: (HelixSpatialBarChart["variant"]) | undefined;
35833
36499
  /** The readings as data, in the shape of a table, where the page has no
35834
36500
  table to point `for` at. `for` wins where both are set.
35835
36501
 
@@ -39216,6 +39882,14 @@ own. */
39216
39882
  /** How much the glow around the strands adds, as a multiplier. `0` draws the
39217
39883
  strands alone, crisp and dimmer, and `1` is the default glow. */
39218
39884
  bloom?: (HelixStrands["bloom"]) | undefined;
39885
+ /** Whether the light is drawn alone, without the ground under it, so what is
39886
+ behind the element shows through, such as a translucent pane or a window's
39887
+ glass. The ground still says which way the page runs: light added on a
39888
+ dark one, ink on a light one.
39889
+
39890
+ Reflected because the stylesheet selects on it: the band under the canvas
39891
+ shows only while the element falls back, and loses its ground too. */
39892
+ clear?: (HelixStrands["clear"]) | undefined;
39219
39893
  /** How far apart the brightest and dimmest strands are, from `0`, most of
39220
39894
  them alike, to `1`, a few burning bright over many faint ones. Clamped to
39221
39895
  that range. The ribbon as a whole keeps its strength. */
@@ -39281,6 +39955,14 @@ own. */
39281
39955
  /** How much the glow around the strands adds, as a multiplier. `0` draws the
39282
39956
  strands alone, crisp and dimmer, and `1` is the default glow. */
39283
39957
  "prop:bloom"?: (HelixStrands["bloom"]) | undefined;
39958
+ /** Whether the light is drawn alone, without the ground under it, so what is
39959
+ behind the element shows through, such as a translucent pane or a window's
39960
+ glass. The ground still says which way the page runs: light added on a
39961
+ dark one, ink on a light one.
39962
+
39963
+ Reflected because the stylesheet selects on it: the band under the canvas
39964
+ shows only while the element falls back, and loses its ground too. */
39965
+ "prop:clear"?: (HelixStrands["clear"]) | undefined;
39284
39966
  /** How far apart the brightest and dimmest strands are, from `0`, most of
39285
39967
  them alike, to `1`, a few burning bright over many faint ones. Clamped to
39286
39968
  that range. The ribbon as a whole keeps its strength. */
@@ -40721,6 +41403,33 @@ export type HelixTabsHelixSelectElementEvent =
40721
41403
  HelixTabsElementEvent<HelixSelectEvent>;
40722
41404
 
40723
41405
  export type HelixTabsProps = {
41406
+ /** When the close mark of each `dismissible` tab shows.
41407
+
41408
+ Unset, or `always`, every mark shows. `hover` shows a tab's mark while it
41409
+ is current, under the pointer, or holds focus, and keeps its room on every
41410
+ tab, so the labels do not move as the marks come and go. For a strip of
41411
+ many dismissible tabs, where a mark on each reads as a row of crosses. A
41412
+ keyboard closes a tab with Delete whether its mark shows or not. */
41413
+ "dismiss-marks"?: (HelixTabs["dismissMarks"]) | undefined;
41414
+ /** When the close mark of each `dismissible` tab shows.
41415
+
41416
+ Unset, or `always`, every mark shows. `hover` shows a tab's mark while it
41417
+ is current, under the pointer, or holds focus, and keeps its room on every
41418
+ tab, so the labels do not move as the marks come and go. For a strip of
41419
+ many dismissible tabs, where a mark on each reads as a row of crosses. A
41420
+ keyboard closes a tab with Delete whether its mark shows or not. */
41421
+ dismissMarks?: (HelixTabs["dismissMarks"]) | undefined;
41422
+ /** How loud the mark on the current tab is.
41423
+
41424
+ Unset is the mark `variant` draws at rest. `subtle` is a tint with no
41425
+ edge or shadow: the raised pill becomes a wash, the `segmented` track's
41426
+ pill does the same inside it, and the `underlined` bar takes the
41427
+ foreground's ink in place of the primary color. For tabs inside other
41428
+ chrome, where a raised mark reads as a control laid on top of it.
41429
+
41430
+ Independent of `variant`, since each of its marks has a quiet form: the two
41431
+ answer different questions, which is the test the axis registry applies. */
41432
+ emphasis?: (HelixTabs["emphasis"]) | undefined;
40724
41433
  /** The `value` of the current item.
40725
41434
 
40726
41435
  Not `option.active`, which is the option the keyboard is on: that is a
@@ -40796,6 +41505,33 @@ consumer's server markup does not already have. */
40796
41505
  };
40797
41506
 
40798
41507
  export type HelixTabsSolidJsProps = {
41508
+ /** When the close mark of each `dismissible` tab shows.
41509
+
41510
+ Unset, or `always`, every mark shows. `hover` shows a tab's mark while it
41511
+ is current, under the pointer, or holds focus, and keeps its room on every
41512
+ tab, so the labels do not move as the marks come and go. For a strip of
41513
+ many dismissible tabs, where a mark on each reads as a row of crosses. A
41514
+ keyboard closes a tab with Delete whether its mark shows or not. */
41515
+ "attr:dismiss-marks"?: (HelixTabs["dismissMarks"]) | undefined;
41516
+ /** When the close mark of each `dismissible` tab shows.
41517
+
41518
+ Unset, or `always`, every mark shows. `hover` shows a tab's mark while it
41519
+ is current, under the pointer, or holds focus, and keeps its room on every
41520
+ tab, so the labels do not move as the marks come and go. For a strip of
41521
+ many dismissible tabs, where a mark on each reads as a row of crosses. A
41522
+ keyboard closes a tab with Delete whether its mark shows or not. */
41523
+ "prop:dismissMarks"?: (HelixTabs["dismissMarks"]) | undefined;
41524
+ /** How loud the mark on the current tab is.
41525
+
41526
+ Unset is the mark `variant` draws at rest. `subtle` is a tint with no
41527
+ edge or shadow: the raised pill becomes a wash, the `segmented` track's
41528
+ pill does the same inside it, and the `underlined` bar takes the
41529
+ foreground's ink in place of the primary color. For tabs inside other
41530
+ chrome, where a raised mark reads as a control laid on top of it.
41531
+
41532
+ Independent of `variant`, since each of its marks has a quiet form: the two
41533
+ answer different questions, which is the test the axis registry applies. */
41534
+ "prop:emphasis"?: (HelixTabs["emphasis"]) | undefined;
40799
41535
  /** The `value` of the current item.
40800
41536
 
40801
41537
  Not `option.active`, which is the option the keyboard is on: that is a
@@ -45852,6 +46588,10 @@ appeared in the server's markup for every tree anybody rendered, which is
45852
46588
  the same fault `href` and `target` had on `Button`. The resting arrangement
45853
46589
  is the absence of the attribute, and the stylesheet only asks about `end`.
45854
46590
 
46591
+ `label` sets the chevron against the end of a branch's name, where the name
46592
+ takes only its own width, and leaves the `end` slot at the row's far side.
46593
+ A leaf is unchanged, since it has no chevron.
46594
+
45855
46595
  It is worth owning rather than leaving to `::part(toggle)`, which a
45856
46596
  consumer could reach for: the naive version is `order` plus an auto margin,
45857
46597
  and the row's `end` slot already carries an auto margin of its own, so the
@@ -45874,6 +46614,10 @@ appeared in the server's markup for every tree anybody rendered, which is
45874
46614
  the same fault `href` and `target` had on `Button`. The resting arrangement
45875
46615
  is the absence of the attribute, and the stylesheet only asks about `end`.
45876
46616
 
46617
+ `label` sets the chevron against the end of a branch's name, where the name
46618
+ takes only its own width, and leaves the `end` slot at the row's far side.
46619
+ A leaf is unchanged, since it has no chevron.
46620
+
45877
46621
  It is worth owning rather than leaving to `::part(toggle)`, which a
45878
46622
  consumer could reach for: the naive version is `order` plus an auto margin,
45879
46623
  and the row's `end` slot already carries an auto margin of its own, so the
@@ -46038,6 +46782,10 @@ appeared in the server's markup for every tree anybody rendered, which is
46038
46782
  the same fault `href` and `target` had on `Button`. The resting arrangement
46039
46783
  is the absence of the attribute, and the stylesheet only asks about `end`.
46040
46784
 
46785
+ `label` sets the chevron against the end of a branch's name, where the name
46786
+ takes only its own width, and leaves the `end` slot at the row's far side.
46787
+ A leaf is unchanged, since it has no chevron.
46788
+
46041
46789
  It is worth owning rather than leaving to `::part(toggle)`, which a
46042
46790
  consumer could reach for: the naive version is `order` plus an auto margin,
46043
46791
  and the row's `end` slot already carries an auto margin of its own, so the
@@ -46060,6 +46808,10 @@ appeared in the server's markup for every tree anybody rendered, which is
46060
46808
  the same fault `href` and `target` had on `Button`. The resting arrangement
46061
46809
  is the absence of the attribute, and the stylesheet only asks about `end`.
46062
46810
 
46811
+ `label` sets the chevron against the end of a branch's name, where the name
46812
+ takes only its own width, and leaves the `end` slot at the row's far side.
46813
+ A leaf is unchanged, since it has no chevron.
46814
+
46063
46815
  It is worth owning rather than leaving to `::part(toggle)`, which a
46064
46816
  consumer could reach for: the naive version is `order` plus an auto margin,
46065
46817
  and the row's `end` slot already carries an auto margin of its own, so the
@@ -50436,7 +51188,7 @@ export type CustomElements<F extends Framework = "other"> = {
50436
51188
  * - `expand`: The button after the first crumb of a folded slotted trail, which shows the folded crumbs.
50437
51189
  * - `fold-separator`: The chevron before that button.
50438
51190
  * - `link`: The crumb itself, which is an `<a>` where `href` is set.
50439
- * - `separator-mark`: The chevron between crumbs, shown when no separator is slotted.
51191
+ * - `separator-mark`: The chevron between crumbs, or the slash under the trail's `separator="slash"`, shown when no separator is slotted.
50440
51192
  *
50441
51193
  * ## CSS States
50442
51194
  *
@@ -50478,6 +51230,18 @@ export type CustomElements<F extends Framework = "other"> = {
50478
51230
  * - `max-items`/`maxItems`: The most crumbs a trail drawn from `items` shows before it folds its middle
50479
51231
  * into one, counting the first and the last. Unset, it never folds. At least
50480
51232
  * 2, so the first crumb and the current page always show.
51233
+ * - `separator`: The mark between one crumb and the next, for the whole trail. Unset is a
51234
+ * chevron; `slash` is a slash, as a path or a repository and its branch is
51235
+ * written.
51236
+ *
51237
+ * **On the trail rather than on each crumb**, because the marks are one
51238
+ * decision: a trail whose separators differ from crumb to crumb is a
51239
+ * mistake, and a trail drawn from `items` has no crumb of yours to set it
51240
+ * on. A crumb's own `separator` slot still replaces its mark, for the rare
51241
+ * crumb that needs something else.
51242
+ *
51243
+ * Optional and reflected, per the rule that a reflected property takes no
51244
+ * default, so a stylesheet can select on it.
50481
51245
  * - `items`: The trail as data, drawn as crumbs before any you slot. The last item is the
50482
51246
  * current page.
50483
51247
  *
@@ -50532,7 +51296,7 @@ export type CustomElements<F extends Framework = "other"> = {
50532
51296
  * - `crumb-fold-separator`: The chevron before that button.
50533
51297
  * - `crumb-link`: The link, or the current page's words, of a crumb drawn from `items`.
50534
51298
  * - `crumb-separator`: The separator before a crumb drawn from `items`.
50535
- * - `crumb-separator-mark`: The chevron before a crumb drawn from `items`.
51299
+ * - `crumb-separator-mark`: The chevron, or the slash under `separator="slash"`, before a crumb drawn from `items`.
50536
51300
  *
50537
51301
  * ## CSS States
50538
51302
  *
@@ -50748,6 +51512,20 @@ export type CustomElements<F extends Framework = "other"> = {
50748
51512
  * name to derive one rather than dash-casing it, and what a consumer writes
50749
51513
  * is the platform's `commandfor`.
50750
51514
  * - `commandfor`/`commandFor`: The id of the element the command is sent to.
51515
+ * - `focusable-when-disabled`/`focusableWhenDisabled`: Whether a disabled button stays in the tab order, so a tooltip around it
51516
+ * can say why it is disabled.
51517
+ *
51518
+ * Set it on a button whose reason a Tooltip gives, such as a Save with no
51519
+ * changes to save. While the button is disabled, it keeps focus and takes
51520
+ * hover, and it refuses every press: a click, Enter and Space, and Enter in
51521
+ * a field of its form. The click does not reach your listeners, and a submit
51522
+ * button submits nothing. The inner control carries `aria-disabled` in place
51523
+ * of the native `disabled`, so a screen reader still says it is unavailable.
51524
+ * The styled button keeps the disabled look.
51525
+ *
51526
+ * Leave it unset on a button with no reason to give. A plain disabled button
51527
+ * leaves the tab order, as a native one does, and a keyboard reader skips a
51528
+ * stop that does nothing. Set `pending` for the wait after a press.
50751
51529
  * - `formaction`/`formAction`: Where this button's submission goes, overriding the form's own.
50752
51530
  *
50753
51531
  * **The five `form*` overrides ride on a native submit button that stands in
@@ -51835,6 +52613,16 @@ export type CustomElements<F extends Framework = "other"> = {
51835
52613
  * - `pan-up-spinner`: The ring `pan-up` turns while it is pending.
51836
52614
  * - `pan-up-text`: The box `pan-up`'s glyph sits in.
51837
52615
  * - `region`: The named region the board is drawn in.
52616
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
52617
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
52618
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
52619
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
52620
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
52621
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
52622
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
52623
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
52624
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
52625
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
51838
52626
  * - `viewport`: The box the board is drawn inside.
51839
52627
  * - `zoom-in`: The button that zooms in.
51840
52628
  * - `zoom-in-button`: `zoom-in`'s inner button.
@@ -52376,15 +53164,36 @@ export type CustomElements<F extends Framework = "other"> = {
52376
53164
  >;
52377
53165
 
52378
53166
  /**
52379
- * The composer is one row, and the field takes the remaining width. The field
52380
- * grows with its text up to a maximum height, through `field-sizing: content`.
52381
- * Where that is not supported, the field keeps its rows and scrolls. The
52382
- * maximum height keeps the composer from covering the transcript.
53167
+ * The composer is one box. What the draft carries sits at its top, in a row
53168
+ * that wraps, inset to the line the caret starts on. The field grows with its
53169
+ * text up to a maximum height, through `field-sizing: content`. Where that is
53170
+ * not supported, the field keeps its rows and scrolls. The maximum height
53171
+ * keeps the composer from covering the transcript.
53172
+ *
53173
+ * With two `placeholders` or more, each example rolls into the next: the one
53174
+ * showing rises a little as it fades and blurs, and the next rises into its
53175
+ * place from below as it fades in, the two crossing so the field is never
53176
+ * empty. A box that changes height for the next example changes as it
53177
+ * lands. Where the browser has no CSS anchor
53178
+ * positioning, the examples fade into each other in the field's own
53179
+ * placeholder.
52383
53180
  *
52384
53181
  * ## Attributes & Properties
52385
53182
  *
52386
53183
  * Component attributes and properties that can be applied to the element or by using JavaScript.
52387
53184
  *
53185
+ * - `glow`: Draws the composer's focus as a glow: a light that runs once around the
53186
+ * edge as the composer takes focus, then a soft steady edge while it holds
53187
+ * it, in place of the focus ring.
53188
+ *
53189
+ * **On focus, and only then.** It says the composer is listening. A glow
53190
+ * that ran while a reply was on its way would be a second indicator of what
53191
+ * the conversation already shows, and one that ran all the time would be
53192
+ * decoration that moves. With reduced motion asked for, the edge lights
53193
+ * without the sweep.
53194
+ *
53195
+ * The steady edge is the focus indicator, so the ring is not drawn as well.
53196
+ * Its color is `--chat-composer-glow-color`, the primary color unless set.
52388
53197
  * - `listening-label`/`listeningLabel`: What a screen reader hears as listening starts.
52389
53198
  * - `stopped-listening-label`/`stoppedListeningLabel`: What a screen reader hears as listening stops.
52390
53199
  * - `voice`: Draws a button that listens for dictation and types what it hears at
@@ -52393,6 +53202,16 @@ export type CustomElements<F extends Framework = "other"> = {
52393
53202
  * `email` or `number` draws no button.
52394
53203
  * - `voice-label`/`voiceLabel`: The dictation button's name while it is not listening.
52395
53204
  * - `voice-stop-label`/`voiceStopLabel`: The dictation button's name while it listens.
53205
+ * - `attached`: Whether the draft holds something besides its text, such as an attached
53206
+ * file. The draft then counts as one though the field is empty, so the
53207
+ * send button shows in place of the `idle` slot.
53208
+ * - `busy`: Whether a reply is on its way. While set, the send button is a stop
53209
+ * button that sends `helix-stop`, and the draft does not send.
53210
+ *
53211
+ * **The same button rather than one beside it**, because sending and
53212
+ * stopping are never both possible: while a reply is on its way there is
53213
+ * nothing to send to, and the place the reader's eye goes to act is the
53214
+ * place that can act. The field stays open for the next turn.
52396
53215
  * - `feedback`: A message about the draft, shown under the field. While set, the composer
52397
53216
  * is invalid, does not send, and does not submit, as a field's `feedback`
52398
53217
  * does, and the message is announced as it appears.
@@ -52401,12 +53220,28 @@ export type CustomElements<F extends Framework = "other"> = {
52401
53220
  * - `minlength`/`minLength`: The fewest characters a draft can have, once the reader has written in
52402
53221
  * the field, as on a `<textarea>`.
52403
53222
  * - `placeholder`: Placeholder text shown in an empty field.
53223
+ * - `queue`: Whether Enter sends while `busy`, for a page that queues the turn or
53224
+ * hands it to the reply under way.
53225
+ *
53226
+ * Off by default, because a page that does neither would drop the turn: it
53227
+ * has nowhere to put a message while a reply is coming. The button stays
53228
+ * the stop button either way, since stopping is still the one thing it
53229
+ * should do while a reply is on its way.
52404
53230
  * - `required`: Whether the form needs a draft to submit. An empty draft never sends,
52405
53231
  * required or not.
52406
53232
  * - `rows`: How many rows the field opens at.
52407
53233
  *
52408
53234
  * It grows from there.
53235
+ * - `send-disabled`/`sendDisabled`: Whether the draft waits to be sent, such as while an attachment is still
53236
+ * read. The send button is unavailable and Enter does not send, while the
53237
+ * field stays open. The stop button shown while `busy` still stops.
52409
53238
  * - `send-label`/`sendLabel`: Label for the send button.
53239
+ * - `send-reason`/`sendReason`: Why the draft waits, such as "Reading photo.jpg", shown in a tooltip on
53240
+ * the send button while `send-disabled` is set. The button then stays in
53241
+ * the tab order and takes the pointer, with `aria-disabled` in place of
53242
+ * `disabled`, so the reason can be reached by keyboard and by pointer, as
53243
+ * Button's `focusable-when-disabled` does. A press still sends nothing.
53244
+ * - `stop-label`/`stopLabel`: Label for the stop button shown while `busy`.
52410
53245
  * - `submit-on`/`submitOn`: What sends the turn: `enter` for the Enter key, or `button` for the send
52411
53246
  * button only.
52412
53247
  *
@@ -52446,6 +53281,22 @@ export type CustomElements<F extends Framework = "other"> = {
52446
53281
  * - `speechEngine`: The engine this field listens through, in place of the one
52447
53282
  * `registerSpeechEngine` gave the page, or the browser's own. (property only)
52448
53283
  * - `listening`: Whether the field is listening for dictation now. (property only) (readonly)
53284
+ * - `placeholders`: Examples the empty field shows in turn, in place of `placeholder`, such
53285
+ * as tasks a reader might ask for. Each shows for 6.5 seconds, and a longer
53286
+ * one shows longer, up to 10 seconds.
53287
+ *
53288
+ * **Each is the field's placeholder in its turn**, so a screen reader that
53289
+ * reaches the field hears the one showing. The swap runs through
53290
+ * `:state(example-leaving)`, as one example leaves, and
53291
+ * `:state(example-entering)`, as the next arrives.
53292
+ *
53293
+ * **They move only while nobody is about to write, and while the reader
53294
+ * can see them.** An empty field without focus moves on. Focus or text
53295
+ * holds the example showing, and an example already leaving finishes its
53296
+ * turn. A composer scrolled out of view holds its example, and the example
53297
+ * gets its full time again when the composer comes back. Where the reader
53298
+ * asked for less motion, or the page paused its motion, the first example
53299
+ * stays. (property only)
52449
53300
  * - `typing`: Whether the user is writing: true from their first keystroke until they
52450
53301
  * send, clear the field, or pause for `typing-timeout` milliseconds. (property only) (readonly)
52451
53302
  * - `validity`: Whether the control meets its constraints, and why not. (property only) (readonly)
@@ -52481,6 +53332,7 @@ export type CustomElements<F extends Framework = "other"> = {
52481
53332
  * - `helix-before-listen`: The dictation button was pressed. Cancelable: cancel it to keep the composer from listening.
52482
53333
  * - `helix-listen`: Dictation settled on a phrase and put it in the draft, after the draft's own `input`.
52483
53334
  * - `helix-send`: Fired when the user sends their turn, and cancelable.
53335
+ * - `helix-stop`: Fired when the user presses the stop button, shown in place of the send button while `busy` is set.
52484
53336
  * - `helix-typing`: The user started or stopped writing, with `typing` saying which, as the composer's `typing` does.
52485
53337
  * - `input`: The user changed the text. Read it from `value`, for a typing indicator or a saved draft. Bubbles and is composed, as a native field's is.
52486
53338
  *
@@ -52488,8 +53340,10 @@ export type CustomElements<F extends Framework = "other"> = {
52488
53340
  *
52489
53341
  * Areas where markup can be added to the component.
52490
53342
  *
53343
+ * - `attachments`: What the draft carries, such as images or files, inside the box and above the field.
52491
53344
  * - `end`: Content under the field, beside the send button.
52492
53345
  * - `start`: Content under the field at the leading edge, such as an attachment button or a model picker.
53346
+ * - `idle`: A control shown in place of the send button while the draft is empty and no reply is on its way, such as a button that starts a voice conversation.
52493
53347
  *
52494
53348
  * ## Methods
52495
53349
  *
@@ -52562,6 +53416,7 @@ export type CustomElements<F extends Framework = "other"> = {
52562
53416
  *
52563
53417
  * - `--chat-composer-background-color`: Fill behind the composer.
52564
53418
  * - `--chat-composer-border-width`: Width of the composer's edge, so your theme can remove it.
53419
+ * - `--chat-composer-glow-color`: Color of the focus glow under `glow`. Defaults to the primary color.
52565
53420
  * - `--chat-composer-max-block-size`: Maximum height the field grows to.
52566
53421
  * - `--dictation-level`: How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it.
52567
53422
  *
@@ -52569,13 +53424,27 @@ export type CustomElements<F extends Framework = "other"> = {
52569
53424
  *
52570
53425
  * Custom selectors for styling elements within the component.
52571
53426
  *
53427
+ * - `attachments`: The row above the field that holds the `attachments` slot, inset to the field's text and hidden while the slot is empty.
53428
+ * - `example`: The example drawn over the empty field while `placeholders` holds two or more, in the field's box. It is a second field that shows only its placeholder, hidden from screen readers. Style its `::placeholder` where you style the field's.
53429
+ * - `example-leaving`: The example on its way out while the next comes in, for its first 250 milliseconds. Set together with `example`.
52572
53430
  * - `field`: The text field.
52573
53431
  * - `send`: The send button.
52574
53432
  * - `tools`: The row under the field.
52575
53433
  * - `composer`: The whole composer.
52576
53434
  * - `end`: The box around the `end` slot.
52577
53435
  * - `feedback`: The `feedback` message, under the field while it is set.
52578
- * - `mark`: The icon inside the send button.
53436
+ * - `idle`: The box around the `idle` slot, shown in the send button's place while the draft is empty.
53437
+ * - `mark`: The icon inside the send button, a return key, or a square while `busy`.
53438
+ * - `reason-arrow`: The arrow of the bubble that says `send-reason`, forwarded from `Tooltip`.
53439
+ * - `reason-arrow-bottom`: The arrow while the bubble is below the send button, on the bubble's top edge. Set together with `reason-arrow`.
53440
+ * - `reason-arrow-left`: The arrow while the bubble is left of the send button, on the bubble's right edge. Set together with `reason-arrow`.
53441
+ * - `reason-arrow-right`: The arrow while the bubble is right of the send button, on the bubble's left edge. Set together with `reason-arrow`.
53442
+ * - `reason-arrow-top`: The arrow while the bubble is above the send button, on the bubble's bottom edge. Set together with `reason-arrow`.
53443
+ * - `reason-surface`: The bubble that says `send-reason` over the send button, forwarded from `Tooltip`.
53444
+ * - `reason-surface-bottom`: The bubble while it is below the send button. Set together with `reason-surface`.
53445
+ * - `reason-surface-left`: The bubble while it is left of the send button. Set together with `reason-surface`.
53446
+ * - `reason-surface-right`: The bubble while it is right of the send button. Set together with `reason-surface`.
53447
+ * - `reason-surface-top`: The bubble while it is above the send button. Set together with `reason-surface`.
52579
53448
  * - `start`: The box around the `start` slot.
52580
53449
  * - `voice`: The dictation button, under `voice`, before the send button.
52581
53450
  * - `voice-listening`: The dictation button while it listens. Set alongside `voice`.
@@ -52585,6 +53454,8 @@ export type CustomElements<F extends Framework = "other"> = {
52585
53454
  *
52586
53455
  * These can be used to apply styling when a component is in a given state.
52587
53456
  *
53457
+ * - `example-entering`: The example in the empty field has just replaced the one before it, for an entrance. It holds for 350 milliseconds. See `placeholders`.
53458
+ * - `example-leaving`: The example in the empty field is giving way to the next one, for an exit. It holds for 250 milliseconds, and the next example becomes the placeholder 100 milliseconds in, so the two can cross. See `placeholders`.
52588
53459
  * - `invalid`: The draft fails `required`, `minlength`, `maxlength`, or a custom error, and the reader has tried to send or submit it, or edited the field and left it. Or `feedback` is set.
52589
53460
  * - `listening`: While the composer listens for dictation. The element sets `--dictation-level` on itself meanwhile, from 0 to 1, for a meter.
52590
53461
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -52685,6 +53556,7 @@ export type CustomElements<F extends Framework = "other"> = {
52685
53556
  *
52686
53557
  * - `(default)`: The turn's content.
52687
53558
  * - `actions`: Controls for the turn.
53559
+ * - `attachments`: What the turn carries, such as images or files, above the bubble.
52688
53560
  * - `avatar`: The author's avatar.
52689
53561
  * - `indicator`: The indicator shown before the first token arrives. Replaces the three dots.
52690
53562
  * - `sources`: The turn's sources, such as citations, documents, or a retrieved page.
@@ -52713,6 +53585,7 @@ export type CustomElements<F extends Framework = "other"> = {
52713
53585
  * - `indicator`: The three dots, shown when nothing is in the `indicator` slot.
52714
53586
  * - `meta`: The time and the state together.
52715
53587
  * - `actions`: The controls on the turn, beside its time.
53588
+ * - `attachments`: The box around the `attachments` slot, above the content and outside the bubble.
52716
53589
  * - `avatar`: The box around the `avatar` slot.
52717
53590
  * - `body`: The content and the line under it.
52718
53591
  * - `mark`: The status icon beside a failure.
@@ -52915,6 +53788,7 @@ export type CustomElements<F extends Framework = "other"> = {
52915
53788
  * - `loading`: Shown while the history loads.
52916
53789
  * - `message`: The message drawn for a turn from `turns`, forwarded whole.
52917
53790
  * - `message-actions`: The controls on a turn from `turns`, beside its time.
53791
+ * - `message-attachments`: The attachments above the bubble of a turn from `turns`.
52918
53792
  * - `message-avatar`: The avatar box of a turn from `turns`.
52919
53793
  * - `message-avatar-mine`: The avatar box of a turn from `turns` by `me`.
52920
53794
  * - `message-body`: The content of a turn from `turns`, and the line under it.
@@ -54740,7 +55614,7 @@ export type CustomElements<F extends Framework = "other"> = {
54740
55614
  *
54741
55615
  * - `--color-input-background-color`: Fill behind the field.
54742
55616
  * - `--color-input-border-color`: Color of the panel's edge.
54743
- * - `--color-input-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless a theme sets a border. `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a theme says otherwise.
55617
+ * - `--color-input-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
54744
55618
  * - `--color-input-panel-size`: Width of the panel, and so of the square.
54745
55619
  * - `--color-input-shadow`: Shadow under the panel. Defaults to `--helix-shadow-floating`, so the panel keeps a shadow over any content below it. `--helix-shadow-floating`: a floating surface sits over content nobody can predict, so it keeps a lift by default.
54746
55620
  * - `--color-input-swatch-radius`: Corner radius of the swatch in `variant="swatch"`.
@@ -55573,7 +56447,7 @@ export type CustomElements<F extends Framework = "other"> = {
55573
56447
  *
55574
56448
  * - `--combobox-background-color`: Fill behind the field.
55575
56449
  * - `--combobox-border-color`: Color of the panel's edge.
55576
- * - `--combobox-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0` unless your theme sets it, so the panel's shadow sets it apart.
56450
+ * - `--combobox-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
55577
56451
  * - `--combobox-control-size`: Smallest the text field shrinks to once tags share its line.
55578
56452
  * - `--combobox-panel-size`: Width of the panel. Follows the field by default.
55579
56453
  * - `--combobox-shadow`: Shadow under the panel. Follows `--helix-shadow-floating`. A floating panel can sit over any content, so it has a shadow by default.
@@ -55644,6 +56518,16 @@ export type CustomElements<F extends Framework = "other"> = {
55644
56518
  *
55645
56519
  * Component attributes and properties that can be applied to the element or by using JavaScript.
55646
56520
  *
56521
+ * - `material`: The panel's surface: `frosted` or `glass`, as on `Dialog`, which the
56522
+ * palette opens in and hands the value to.
56523
+ *
56524
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
56525
+ * ground over the theme's blur, and `frosted` the same pair turned up, so a
56526
+ * page whose panels are frosted has a palette that matches. Its strength is
56527
+ * the theme's, as on `Popover`, `Menu` and `Drawer`.
56528
+ *
56529
+ * **No `transparent`, deliberately.** A palette over arbitrary page content
56530
+ * is only readable because it has a ground.
55647
56531
  * - `default-open`/`defaultOpen`: Whether the element starts open. Ignored once `open` is written.
55648
56532
  * - `open`: Whether the element is open.
55649
56533
  *
@@ -55801,6 +56685,7 @@ export type CustomElements<F extends Framework = "other"> = {
55801
56685
  * CSS variables available for styling the component.
55802
56686
  *
55803
56687
  * - `--command-list-size`: How tall the list grows before it scrolls.
56688
+ * - `--command-radius`: The corners of the palette's panel. Defaults to the dialog's.
55804
56689
  * - `--command-size`: How wide the palette is. Defaults to `40rem`.
55805
56690
  *
55806
56691
  * ## CSS Parts
@@ -55919,6 +56804,20 @@ export type CustomElements<F extends Framework = "other"> = {
55919
56804
  * It replaces `Button.value`, the submit value: a copy button never submits,
55920
56805
  * whatever its `type`. Declared here so its own page says what it holds.
55921
56806
  * - `aria-label`/`undefined`: undefined
56807
+ * - `focusable-when-disabled`/`focusableWhenDisabled`: Whether a disabled button stays in the tab order, so a tooltip around it
56808
+ * can say why it is disabled.
56809
+ *
56810
+ * Set it on a button whose reason a Tooltip gives, such as a Save with no
56811
+ * changes to save. While the button is disabled, it keeps focus and takes
56812
+ * hover, and it refuses every press: a click, Enter and Space, and Enter in
56813
+ * a field of its form. The click does not reach your listeners, and a submit
56814
+ * button submits nothing. The inner control carries `aria-disabled` in place
56815
+ * of the native `disabled`, so a screen reader still says it is unavailable.
56816
+ * The styled button keeps the disabled look.
56817
+ *
56818
+ * Leave it unset on a button with no reason to give. A plain disabled button
56819
+ * leaves the tab order, as a native one does, and a keyboard reader skips a
56820
+ * stop that does nothing. Set `pending` for the wait after a press.
55922
56821
  * - `pending`: Whether the action the button started is still running.
55923
56822
  *
55924
56823
  * A pending button keeps focus and stays in the tab order, and refuses every
@@ -56975,7 +57874,7 @@ export type CustomElements<F extends Framework = "other"> = {
56975
57874
  *
56976
57875
  * - `--date-input-background-color`: The fill behind the field.
56977
57876
  * - `--date-input-border-color`: The color of the panel's border.
56978
- * - `--date-input-border-width`: The width of the panel's border. It follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless a theme sets a border.
57877
+ * - `--date-input-border-width`: The width of the panel's border. It follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
56979
57878
  * - `--date-input-segment-focus-background-color`: The fill behind the segment with focus, in `segmented`. It follows `--helix-color-primary-surface`.
56980
57879
  * - `--date-input-segment-focus-color`: The text of the segment with focus, in `segmented`.
56981
57880
  * - `--date-input-segment-literal-color`: The text the locale writes between two segments, in `segmented`.
@@ -57883,6 +58782,16 @@ export type CustomElements<F extends Framework = "other"> = {
57883
58782
  * - `screenshot-live`: The screenshot button's live region, which speaks while the button is pending.
57884
58783
  * - `screenshot-spinner`: The ring the screenshot button turns while it is pending.
57885
58784
  * - `screenshot-text`: The box the screenshot button's icon sits in.
58785
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
58786
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
58787
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
58788
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
58789
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
58790
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
58791
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
58792
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
58793
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
58794
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
57886
58795
  * - `touch`: A ring where a touch is or was.
57887
58796
  * - `touch-held`: A ring under a finger that is down, beside `touch`, with `show-touches`.
57888
58797
  * - `volume-down`: The Volume down button.
@@ -57921,6 +58830,15 @@ export type CustomElements<F extends Framework = "other"> = {
57921
58830
  *
57922
58831
  * Component attributes and properties that can be applied to the element or by using JavaScript.
57923
58832
  *
58833
+ * - `material`: The panel's surface: `frosted` or `glass`.
58834
+ *
58835
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
58836
+ * ground over the theme's blur, and `frosted` the same pair turned up, as
58837
+ * on `Popover`, `Menu`, `Drawer` and `Tooltip`, so a page whose panels are
58838
+ * frosted has dialogs that match.
58839
+ *
58840
+ * **No `transparent`, deliberately.** A dialog over arbitrary page content
58841
+ * is only readable because it has a ground.
57924
58842
  * - `size`: How wide the panel is allowed to be.
57925
58843
  *
57926
58844
  * Steps rather than a number, because a dialog's width is a fact about what is
@@ -58096,9 +59014,10 @@ export type CustomElements<F extends Framework = "other"> = {
58096
59014
  *
58097
59015
  * CSS variables available for styling the component.
58098
59016
  *
59017
+ * - `--dialog-backdrop`: Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy.
58099
59018
  * - `--dialog-background-color`: The panel's fill. Follows `--helix-color-surface-overlay`.
58100
59019
  * - `--dialog-border-color`: Color of the panel's edge.
58101
- * - `--dialog-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a border.
59020
+ * - `--dialog-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
58102
59021
  * - `--dialog-color`: Color of the words in the panel. Follows `--helix-color-foreground`.
58103
59022
  * - `--dialog-icon-size`: How big the mark above the title is.
58104
59023
  * - `--dialog-inline-size`: Width of the panel.
@@ -58741,7 +59660,7 @@ export type CustomElements<F extends Framework = "other"> = {
58741
59660
  * - `--drawer-backdrop`: Filter applied behind a `frosted` or `glass` drawer. Follows the theme's material policy. Set it to change the strength on one drawer.
58742
59661
  * - `--drawer-background-color`: Surface behind the panel.
58743
59662
  * - `--drawer-border-color`: Color of the panel's edge.
58744
- * - `--drawer-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a border.
59663
+ * - `--drawer-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
58745
59664
  * - `--drawer-padding`: Padding inside the panel.
58746
59665
  * - `--drawer-padding-block-start`: Padding above the header. It is one step larger than the other three sides, so the first line clears the window's edge. Falls back to `--drawer-padding`, so setting that alone sets all four sides.
58747
59666
  * - `--drawer-radius`: Corner radius on the edges that face the page.
@@ -60867,6 +61786,16 @@ export type CustomElements<F extends Framework = "other"> = {
60867
61786
  * - `settling`: What is said while a layout runs unseen, where the reader asked for less motion or the page paused its motion, over the hidden drawing.
60868
61787
  * - `stage`: The drawing and its controls.
60869
61788
  * - `stop-layout`: The button that stops a layout that has run past five seconds, where the notes stand.
61789
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
61790
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
61791
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
61792
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
61793
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
61794
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
61795
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
61796
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
61797
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
61798
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
60870
61799
  * - `viewport`: The box the renderer draws in.
60871
61800
  * - `zoom-in`: The zoom in button.
60872
61801
  * - `zoom-in-button`: `zoom-in`'s inner button.
@@ -61464,6 +62393,20 @@ export type CustomElements<F extends Framework = "other"> = {
61464
62393
  * name to derive one rather than dash-casing it, and what a consumer writes
61465
62394
  * is the platform's `commandfor`.
61466
62395
  * - `commandfor`/`commandFor`: The id of the element the command is sent to.
62396
+ * - `focusable-when-disabled`/`focusableWhenDisabled`: Whether a disabled button stays in the tab order, so a tooltip around it
62397
+ * can say why it is disabled.
62398
+ *
62399
+ * Set it on a button whose reason a Tooltip gives, such as a Save with no
62400
+ * changes to save. While the button is disabled, it keeps focus and takes
62401
+ * hover, and it refuses every press: a click, Enter and Space, and Enter in
62402
+ * a field of its form. The click does not reach your listeners, and a submit
62403
+ * button submits nothing. The inner control carries `aria-disabled` in place
62404
+ * of the native `disabled`, so a screen reader still says it is unavailable.
62405
+ * The styled button keeps the disabled look.
62406
+ *
62407
+ * Leave it unset on a button with no reason to give. A plain disabled button
62408
+ * leaves the tab order, as a native one does, and a keyboard reader skips a
62409
+ * stop that does nothing. Set `pending` for the wait after a press.
61467
62410
  * - `formaction`/`formAction`: Where this button's submission goes, overriding the form's own.
61468
62411
  *
61469
62412
  * **The five `form*` overrides ride on a native submit button that stands in
@@ -62073,6 +63016,9 @@ export type CustomElements<F extends Framework = "other"> = {
62073
63016
  *
62074
63017
  * Empty leaves the attribute off, which is the browser's default. Set it to
62075
63018
  * a token like `email` or `bday` to ask for autofill, or to `off` to refuse.
63019
+ * - `autocorrect`: Whether the browser corrects words as the reader types, as the platform's
63020
+ * `autocorrect`. Turn it off, with `autocorrect="off"`, for text that is not
63021
+ * prose, such as an address or a code, which corrections would change.
62076
63022
  * - `clearable`: Whether the field shows a button that empties it.
62077
63023
  *
62078
63024
  * Shown only while there is something to clear, because a control that does
@@ -64289,7 +65235,9 @@ export type CustomElements<F extends Framework = "other"> = {
64289
65235
  *
64290
65236
  * These can be used to apply styling when a component is in a given state.
64291
65237
  *
65238
+ * - `empty`: The group holds nothing to show, so opening it shows nothing.
64292
65239
  * - `open`: The group shows its lines.
65240
+ * - `steps`: The group holds steps of its own, which a stylesheet draws as a tree.
64293
65241
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
64294
65242
  */
64295
65243
  "helix-log-group": Partial<
@@ -64415,7 +65363,10 @@ export type CustomElements<F extends Framework = "other"> = {
64415
65363
  * - `plain` has no edge, no fill, no inset and no height of its own: the
64416
65364
  * lines start where the text around them does and the log grows with
64417
65365
  * them. For a log inside something that already frames it, such as an
64418
- * agent's work in a chat turn's `work` slot.
65366
+ * agent's work in a chat turn's `work` slot. Each step is a row with its
65367
+ * status mark on that edge and its caret after the heading. A step that
65368
+ * holds steps draws a rule beside them, and a step that holds lines draws
65369
+ * them on a quiet surface that scrolls after `--log-step-max-block-size`.
64419
65370
  *
64420
65371
  * Both are writable, so a page can say which it means rather than relying
64421
65372
  * on the absence of an attribute.
@@ -64573,6 +65524,7 @@ export type CustomElements<F extends Framework = "other"> = {
64573
65524
  * - `--log-radius`: The corners of the log.
64574
65525
  * - `--log-scrollbar-thumb-color`: The thumb of the scrollbar. Defaults to `--helix-scrollbar-thumb-color`.
64575
65526
  * - `--log-scrollbar-track-color`: The track of the scrollbar. Defaults to `--helix-scrollbar-track-color`.
65527
+ * - `--log-step-max-block-size`: How tall a step's lines may get in a `plain` log before they scroll. Defaults to 20rem.
64576
65528
  * - `--log-ansi-background`: The background a run takes where ANSI swaps the colors and named none. Defaults to the log's own background on the styled tier.
64577
65529
  * - `--log-ansi-black`: The ANSI color black, which codes `30` and `40` draw.
64578
65530
  * - `--log-ansi-blue`: The ANSI color blue, which codes `34` and `44` draw.
@@ -64600,7 +65552,7 @@ export type CustomElements<F extends Framework = "other"> = {
64600
65552
  * - `after`: The space the rows below the drawn ones would take. Only for lines drawn from data.
64601
65553
  * - `before`: The space the rows above the drawn ones would take. Only for lines drawn from data.
64602
65554
  * - `dropped`: The line above the log that says how many earlier lines `limit` let go.
64603
- * - `empty`: Shown when the log has no lines.
65555
+ * - `empty`: Shown when the log has no lines and no steps.
64604
65556
  * - `group-content`: Not drawn: a group drawn from data stands for its heading, and its lines are rows beside it.
64605
65557
  * - `group-duration`: How long a step drawn from `groups` took.
64606
65558
  * - `group-heading`: The heading of a step drawn from `groups`.
@@ -64646,7 +65598,7 @@ export type CustomElements<F extends Framework = "other"> = {
64646
65598
  * These can be used to apply styling when a component is in a given state.
64647
65599
  *
64648
65600
  * - `done`: The run is over: `done` is set, or `source` ended.
64649
- * - `empty`: The log has no lines.
65601
+ * - `empty`: The log has no lines and no steps.
64650
65602
  * - `filtered`: `query` or `level` is set, so only the lines they keep are shown.
64651
65603
  * - `pinned`: The log follows its newest line.
64652
65604
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -65588,6 +66540,16 @@ export type CustomElements<F extends Framework = "other"> = {
65588
66540
  * - `tilt-live`: `tilt`'s live region, which speaks while it is pending.
65589
66541
  * - `tilt-spinner`: The ring `tilt` turns while it is pending.
65590
66542
  * - `tilt-text`: The box `tilt`'s glyph sits in.
66543
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
66544
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
66545
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
66546
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
66547
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
66548
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
66549
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
66550
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
66551
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
66552
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
65591
66553
  * - `viewport`: The box the map is drawn in.
65592
66554
  * - `zoom-in`: The button that zooms in.
65593
66555
  * - `zoom-in-button`: `zoom-in`'s inner button.
@@ -65968,7 +66930,7 @@ export type CustomElements<F extends Framework = "other"> = {
65968
66930
  *
65969
66931
  * - `--megamenu-backdrop`: The filter behind the panel, `none` by default. This family has no `material` property, so this and `--megamenu-background-color` set the panel's material.
65970
66932
  * - `--megamenu-background-color`: The panel's fill.
65971
- * - `--megamenu-border-width`: The width of the panel's edge. Follows `--helix-border-floating`, which is `0` unless a theme changes it, so the panel stands out by its shadow.
66933
+ * - `--megamenu-border-width`: The width of the panel's edge. Follows `--helix-border-floating`, a hairline, which is drawn in dark mode only. Set it to `0` for the shadow alone.
65972
66934
  * - `--megamenu-column-size`: The minimum width of a column before the grid wraps.
65973
66935
  * - `--megamenu-duration`: How long the panel takes to open and close.
65974
66936
  * - `--megamenu-full-size`: The maximum width of the band's contents, which are centered in it.
@@ -66211,6 +67173,19 @@ export type CustomElements<F extends Framework = "other"> = {
66211
67173
  *
66212
67174
  * Component attributes and properties that can be applied to the element or by using JavaScript.
66213
67175
  *
67176
+ * - `material`: The panel's surface: `frosted` or `glass`.
67177
+ *
67178
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
67179
+ * ground over a blur, for a page whose surfaces are glass, so a panel opened
67180
+ * over a glass window is not the one opaque slab on it. `frosted` is the same
67181
+ * pair turned up, a ground that admits less and a heavier blur.
67182
+ *
67183
+ * The strength is the theme's: `--helix-material-translucent`,
67184
+ * `--helix-material-translucent-strong` and `--helix-material-backdrop` are
67185
+ * what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
67186
+ *
67187
+ * **No `transparent`, deliberately.** A panel floating over arbitrary page
67188
+ * content is only readable because it has a ground.
66214
67189
  * - `empty-text`/`emptyText`: The text shown and announced when there are no rows and none are loading.
66215
67190
  * - `loading`: Whether the rows are still loading.
66216
67191
  *
@@ -66360,9 +67335,10 @@ export type CustomElements<F extends Framework = "other"> = {
66360
67335
  *
66361
67336
  * CSS variables available for styling the component.
66362
67337
  *
67338
+ * - `--menu-backdrop`: Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy.
66363
67339
  * - `--menu-background-color`: Fill of the surface.
66364
67340
  * - `--menu-border-color`: Color of the panel's edge.
66365
- * - `--menu-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless a theme sets a border.
67341
+ * - `--menu-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
66366
67342
  * - `--menu-max-block-size`: The tallest the menu grows before it scrolls.
66367
67343
  * - `--menu-min-inline-size`: The narrowest the menu gets.
66368
67344
  * - `--menu-shadow`: Shadow under the panel. Defaults to `--helix-shadow-floating`, so the panel keeps a shadow over any content below it.
@@ -66456,6 +67432,7 @@ export type CustomElements<F extends Framework = "other"> = {
66456
67432
  *
66457
67433
  * These can be used to apply styling when a component is in a given state.
66458
67434
  *
67435
+ * - `start`: A row in the section has content before its label, so every row in it keeps the leading column. The menu decides it for each section, apart from the rows outside one.
66459
67436
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
66460
67437
  */
66461
67438
  "helix-menu-section": Partial<
@@ -66641,6 +67618,7 @@ export type CustomElements<F extends Framework = "other"> = {
66641
67618
  * Areas where markup can be added to the component.
66642
67619
  *
66643
67620
  * - `label`: A visible label, above a bar and under a ring or an arc. Its words name it in place of `label`.
67621
+ * - `(default)`: `Meter.Segment` elements, one for each share of the whole, drawn in the bar.
66644
67622
  *
66645
67623
  * ## CSS Custom Properties
66646
67624
  *
@@ -66662,6 +67640,7 @@ export type CustomElements<F extends Framework = "other"> = {
66662
67640
  * - `--meter-along`: Where a bound sits on the arc, as a length along it.
66663
67641
  * - `--meter-at`: Where a bound sits on a linear track, as a percentage.
66664
67642
  * - `--meter-fraction`: The value as a fraction of the range, 0 to 1.
67643
+ * - `--meter-span`: How much the range holds, `max` less `min`, which a segment divides its own value by to find its width.
66665
67644
  * - `--meter-sweep`: How much of the circle the arc covers, as a path length.
66666
67645
  *
66667
67646
  * ## CSS Parts
@@ -66693,6 +67672,84 @@ export type CustomElements<F extends Framework = "other"> = {
66693
67672
  */
66694
67673
  "helix-meter": Partial<HelixMeterProps & BaseProps<HelixMeter, F> & BaseEvents<HelixMeter>>;
66695
67674
 
67675
+ /**
67676
+ * Each segment takes the next color in the chart series, in the order written, so
67677
+ * two of them are told apart without being given a color. A `tone` is what a
67678
+ * segment means, and takes the place of its turn. A hairline in the track's ground
67679
+ * sits between neighbors, so the boundary is there for a reader who cannot tell
67680
+ * two of the colors apart.
67681
+ *
67682
+ * Write the segments inside a meter, and the page imports the family beside it:
67683
+ *
67684
+ * ```js
67685
+ * import '@fusion.dev/helix/meter'
67686
+ * ```
67687
+ *
67688
+ * ## Attributes & Properties
67689
+ *
67690
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
67691
+ *
67692
+ * - `label`: What the segment is, such as "Tools", which names the slice when a pointer
67693
+ * rests on it.
67694
+ *
67695
+ * Not announced: see the note on a meter's children above.
67696
+ * - `tone`: What the segment means, as it does on a callout. Takes the tone's color in
67697
+ * place of the next color in the series.
67698
+ * - `value`: How much of the meter's range the segment takes, in the units of the meter's
67699
+ * `min` and `max`.
67700
+ *
67701
+ * A value that is not a number, or is below zero, draws nothing.
67702
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
67703
+ *
67704
+ * **Named `whenSettled` because `settled` is taken four times over**, by
67705
+ * Image, Splitter and both color controls, none of them about transitions. A
67706
+ * base class takes the name every subclass then cannot use.
67707
+ *
67708
+ * **The state it reports cannot be watched, which is why this exists.** A
67709
+ * custom state is deliberately not in the DOM, so there is no
67710
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
67711
+ * instead.
67712
+ *
67713
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
67714
+ * the suppression is still active in. That is the distinction `readyToMove`
67715
+ * in `@fusion.dev/helix-testing` is written around.
67716
+ *
67717
+ * It never resolves where `requestAnimationFrame` never fires, which is a
67718
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
67719
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
67720
+ * browser harness's awaits it alone: a browser always runs the frame, and a
67721
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
67722
+ *
67723
+ * ## Slots
67724
+ *
67725
+ * Areas where markup can be added to the component.
67726
+ *
67727
+ * - `(default)`: Nothing. A segment draws its share and has no content.
67728
+ *
67729
+ * ## CSS Custom Properties
67730
+ *
67731
+ * CSS variables available for styling the component.
67732
+ *
67733
+ * - `--meter-segment-color`: The slice's color. Overrides the series and the tone.
67734
+ * - `--meter-segment-gap-color`: The color of the hairline between neighbors.
67735
+ * - `--meter-segment-value`: How much of the range the segment takes, in the meter's own units.
67736
+ *
67737
+ * ## CSS Parts
67738
+ *
67739
+ * Custom selectors for styling elements within the component.
67740
+ *
67741
+ * - `fill`: The slice of the bar the segment takes.
67742
+ *
67743
+ * ## CSS States
67744
+ *
67745
+ * These can be used to apply styling when a component is in a given state.
67746
+ *
67747
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
67748
+ */
67749
+ "helix-meter-segment": Partial<
67750
+ HelixMeterSegmentProps & BaseProps<HelixMeterSegment, F> & BaseEvents<HelixMeterSegment>
67751
+ >;
67752
+
66696
67753
  /**
66697
67754
  * A quiet square button, as the controls over a map are, with the pause icon
66698
67755
  * while motion runs and the play icon while it is paused. Text slotted into
@@ -69335,6 +70392,19 @@ export type CustomElements<F extends Framework = "other"> = {
69335
70392
  *
69336
70393
  * Component attributes and properties that can be applied to the element or by using JavaScript.
69337
70394
  *
70395
+ * - `material`: The panel's surface: `frosted` or `glass`.
70396
+ *
70397
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
70398
+ * ground over a blur, for a page whose surfaces are glass, so a panel opened
70399
+ * over a glass window is not the one opaque slab on it. `frosted` is the same
70400
+ * pair turned up, a ground that admits less and a heavier blur.
70401
+ *
70402
+ * The strength is the theme's: `--helix-material-translucent`,
70403
+ * `--helix-material-translucent-strong` and `--helix-material-backdrop` are
70404
+ * what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
70405
+ *
70406
+ * **No `transparent`, deliberately.** A panel floating over arbitrary page
70407
+ * content is only readable because it has a ground.
69338
70408
  * - `separation`: How the panel is set apart from the content under it.
69339
70409
  *
69340
70410
  * One of the axis's four values, which is all this surface has meaning for: a
@@ -69443,8 +70513,10 @@ export type CustomElements<F extends Framework = "other"> = {
69443
70513
  * CSS variables available for styling the component.
69444
70514
  *
69445
70515
  * - `--popover-arrow-size`: Size of the point drawn with `arrow`. Tooltip's point is the same size.
70516
+ * - `--popover-backdrop`: Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy.
70517
+ * - `--popover-background-color`: Fill of the surface.
69446
70518
  * - `--popover-border-color`: Color of the panel's edge.
69447
- * - `--popover-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a width.
70519
+ * - `--popover-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
69448
70520
  * - `--popover-inline-size`: Width of the panel.
69449
70521
  * - `--popover-max-block-size`: Maximum height of the panel before it scrolls.
69450
70522
  * - `--popover-padding`: Space between the panel's edge and its contents.
@@ -71860,6 +72932,17 @@ export type CustomElements<F extends Framework = "other"> = {
71860
72932
  * styled to match the design system. The base class measures which edges have
71861
72933
  * content past them.
71862
72934
  *
72935
+ * **The content fades out toward each edge that has more past it.** The fade
72936
+ * is a mask on the viewport, so the surface behind the scroll area shows
72937
+ * through it: the page, a card, or a translucent pane. Set the depth with
72938
+ * `--scroll-area-fade`, or one edge's depth with its own property, and use `0`
72939
+ * to keep an edge from fading. A scrollbar that takes room beside the content
72940
+ * stays out of the mask.
72941
+ *
72942
+ * **Set `--scroll-area-fade-color` to paint the fades.** Each fade is then a
72943
+ * gradient from that color over the content, and there is no mask. Use it for
72944
+ * a scroll area on a solid ground, in the ground's color or one of your own.
72945
+ *
71863
72946
  * Under `scrollbars`, the browser's scrollbar is hidden and the component's own
71864
72947
  * are drawn over the content at the edge, in the same colors.
71865
72948
  *
@@ -71933,10 +73016,10 @@ export type CustomElements<F extends Framework = "other"> = {
71933
73016
  *
71934
73017
  * CSS variables available for styling the component.
71935
73018
  *
71936
- * - `--scroll-area-fade`: The depth of the fades at both edges.
73019
+ * - `--scroll-area-fade`: The depth of the fade at each edge.
71937
73020
  * - `--scroll-area-fade-block-end`: The depth of the bottom fade, or `0` to remove it.
71938
73021
  * - `--scroll-area-fade-block-start`: The depth of the top fade, or `0` to remove it.
71939
- * - `--scroll-area-fade-color`: The color the fades blend into, which is the background behind the box.
73022
+ * - `--scroll-area-fade-color`: The color to paint the fades in, as a gradient over the content at each edge. Unset, the fades are a mask.
71940
73023
  * - `--scroll-area-fade-inline-end`: The depth of the fade at the inline end, or `0` to remove it.
71941
73024
  * - `--scroll-area-fade-inline-start`: The depth of the fade at the inline start, or `0` to remove it.
71942
73025
  * - `--scroll-area-scrollbar`: The scrollbar width, as a `scrollbar-width` keyword.
@@ -71945,6 +73028,8 @@ export type CustomElements<F extends Framework = "other"> = {
71945
73028
  * - `--scroll-area-thumb-hover-color`: The color of the browser's thumb while the pointer is over the scroll area, and of a thumb drawn under `scrollbars` while the pointer is over it. Defaults to `--helix-scrollbar-thumb-hover-color`.
71946
73029
  * - `--scroll-area-thumb-min-size`: The shortest a thumb drawn under `scrollbars` gets, however long the content.
71947
73030
  * - `--scroll-area-track-color`: The color of the scrollbar's track. Defaults to `--helix-scrollbar-track-color`.
73031
+ * - `--scroll-area-gutter-block-end`: The room the browser's horizontal scrollbar takes at the block end of the viewport, in pixels. Written on the `viewport` part while that scrollbar takes room, and absent while it draws over the content.
73032
+ * - `--scroll-area-gutter-inline-end`: The room the browser's vertical scrollbar takes at the inline end of the viewport, in pixels. Written on the `viewport` part while that scrollbar takes room, and absent while it draws over the content.
71948
73033
  * - `--scroll-area-scroll-fraction`: How far along its axis the content is scrolled, from 0 at the start to 1 at the end. Written on each `scrollbar` part, so its thumb inherits it. Counted from the right on a right-to-left page.
71949
73034
  * - `--scroll-area-thumb-fraction`: The share of the track the thumb covers, from 0 to 1, which is how much of the content is in view. Written on each `scrollbar` part.
71950
73035
  *
@@ -71953,7 +73038,7 @@ export type CustomElements<F extends Framework = "other"> = {
71953
73038
  * Custom selectors for styling elements within the component.
71954
73039
  *
71955
73040
  * - `corner`: The square where the two scrollbars meet, under `scrollbars`. Hidden unless both are drawn.
71956
- * - `edges`: The layer that draws the cues on the inline start and end edges.
73041
+ * - `edges`: The layer over the viewport. The styled tier draws the focus ring on it, and the painted fades at the inline start and end.
71957
73042
  * - `scrollbar`: Each scrollbar, under `scrollbars`. Hidden on an axis that has none.
71958
73043
  * - `scrollbar-horizontal`: The scrollbar along the inline axis, alongside `scrollbar`.
71959
73044
  * - `scrollbar-vertical`: The scrollbar along the block axis, alongside `scrollbar`.
@@ -72303,7 +73388,7 @@ export type CustomElements<F extends Framework = "other"> = {
72303
73388
  * CSS variables available for styling the component.
72304
73389
  *
72305
73390
  * - `--select-border-color`: Color of the panel's edge.
72306
- * - `--select-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a width.
73391
+ * - `--select-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
72307
73392
  * - `--select-shadow`: Shadow under the panel. Defaults to `--helix-shadow-floating`, because the panel can sit over any content.
72308
73393
  * - `--select-surface-max-block-size`: Maximum height of the panel.
72309
73394
  * - `--floating-anchor-inline-size`: The trigger's width, written on the panel while it is open, as in `min-inline-size: var(--floating-anchor-inline-size)`. Read it; a value set here is written over.
@@ -72602,7 +73687,7 @@ export type CustomElements<F extends Framework = "other"> = {
72602
73687
  *
72603
73688
  * - `--skip-link-background-color`: The background of the link while it is shown.
72604
73689
  * - `--skip-link-border-color`: The border color of the link while it is shown.
72605
- * - `--skip-link-border-width`: The border width of the link while it is shown. Follows `--helix-border-floating`, which is `0`, so the link is set apart by its shadow unless a theme sets a border.
73690
+ * - `--skip-link-border-width`: The border width of the link while it is shown. Follows `--helix-border-floating`, a hairline. Set it to `0` for the shadow alone.
72606
73691
  * - `--skip-link-color`: The text color of the link while it is shown.
72607
73692
  * - `--skip-link-font-size`: The size of the link's text.
72608
73693
  * - `--skip-link-inset-block`: How far the shown link sits from the top of the viewport.
@@ -73225,6 +74310,13 @@ export type CustomElements<F extends Framework = "other"> = {
73225
74310
  * reflected property takes no default, and `solid` writes it out. A
73226
74311
  * renderer draws the bars the same way.
73227
74312
  *
74313
+ * **`muted` draws every bar in the neutral ink**, so the one bar whose cell
74314
+ * names a tone, such as `data-tone="primary"`, is the bar in color, with a
74315
+ * soft glow in its tone: one reading lit among the others, such as today
74316
+ * among a week. Each top takes the most ink and each side less, as a
74317
+ * colored bar's faces do. A renderer draws the neutral bars and the toned
74318
+ * one, without the glow.
74319
+ *
73228
74320
  * It composes with `material`: emphasis decides what is drawn, and material
73229
74321
  * how much of it comes through. The outline on the bar the keys rest on
73230
74322
  * keeps its own ink.
@@ -73287,16 +74379,73 @@ export type CustomElements<F extends Framework = "other"> = {
73287
74379
  * `hidden`, or absent, says the summary to a screen reader and draws it
73288
74380
  * for no one else. Reflected, because the stylesheet draws it by the
73289
74381
  * attribute, and a page that sets the property, as React does, writes none.
73290
- * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, so the readings stand
73291
- * alone and fill the plot, as a picture on a product's own page does. The
74382
+ * - `grow`: Grows the bars up from the floor the first time the chart comes into
74383
+ * view with readings, each category a little after the one before it, so
74384
+ * the drawing arrives the way a page's own picture does. The growth is
74385
+ * fast at first, slows to rest, and never passes a bar's value.
74386
+ *
74387
+ * Under `prefers-reduced-motion`, or where the page has paused its motion
74388
+ * through `pauseMotion` or `Motion Toggle`, the bars stand at their height
74389
+ * from the start. A later table draws the bars it already had at their
74390
+ * height, and grows the bars it adds, each from the floor, so a reading that
74391
+ * arrives while the chart is in view arrives the same way.
74392
+ * - `grow-again`/`growAgain`: Grows the bars again each time the chart comes back into view after it
74393
+ * left it, as a pane does when it is opened again, where `grow` alone grows
74394
+ * them the first time only. Only a chart that grows takes it.
74395
+ *
74396
+ * While it is out of view the bars stand at the floor, so the first frame
74397
+ * after it returns is the start of the growth and never a flash at full
74398
+ * height.
74399
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, and in a `row` no
74400
+ * floor, so the readings stand alone and fill the plot, as a picture on a
74401
+ * product's own page does. The
73292
74402
  * table, the summary, the tooltip, and the keys still carry every value,
73293
74403
  * and a renderer draws no box either.
73294
74404
  * - `open-label`/`openLabel`: What the readout says for a place with no value. `{category}` and
73295
74405
  * `{series}` name the place.
73296
74406
  * - `plot-label`/`plotLabel`: The plot's name where the chart has none: no `aria-label`, `label`, or table caption.
74407
+ * - `stacked`: Stacks a category's series into one column, each block standing on the
74408
+ * ones before it, so the column is as tall as the category's total, as a
74409
+ * flat `Bar Chart` stacks them.
74410
+ *
74411
+ * Absent stands the series one behind another in depth. Stacked, every
74412
+ * series stands in the front row, so none hides another, and the parts of
74413
+ * one total read together. A negative reading hangs below zero on the
74414
+ * negatives before it. The scale fits the stacks.
73297
74415
  * - `summary-label`/`summaryLabel`: The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
73298
74416
  * are the number of bars, series, and categories, written in the locale,
73299
74417
  * and `{low}` and `{high}` the lowest and the highest value.
74418
+ * - `variant`: How the bars stand.
74419
+ *
74420
+ * Unset, they stand on a grid of categories across and series in depth,
74421
+ * in a box the camera looks at from a corner, so the grid recedes at an
74422
+ * angle. `row` lays the categories in a straight line across the page and
74423
+ * turns each bar to the camera, showing its top and two sides, for one row
74424
+ * of readings in a small space such as a pane: turning the view turns each
74425
+ * bar where it stands, and the row stays level. It is the chart's own
74426
+ * drawing that lays the row: a renderer connected through
74427
+ * `@fusion.dev/helix-plot` stands the bars on the grid.
74428
+ *
74429
+ * `diagonal` is the same row climbing to the right as it recedes, each
74430
+ * place a step further back than the one before, as a row of days on a
74431
+ * product's page is drawn: the row rises one part in five across the page
74432
+ * from any turn, and its floor and names climb with it. A row whose bars
74433
+ * have a size climbs at most a quarter of the plot's height, so the bars
74434
+ * of a long row keep theirs.
74435
+ *
74436
+ * **A row draws its floor in place of a box**: each place as an outline a
74437
+ * little wider than its bar, and each category's name under it, as many
74438
+ * names as fit without touching. A name whose bar names a tone is written
74439
+ * first, in that tone. `no-box` leaves the floor and the names out.
74440
+ *
74441
+ * **A `column-gap` on the `fallback` part gives a row's bars one width**,
74442
+ * which the styled tier sets from `--spatial-bar-chart-bar-size`: one bar
74443
+ * stands as wide as each of twenty, the row is as long as its bars and
74444
+ * centered, the tallest bar stands as high as the plot has room for and
74445
+ * no taller than the row is long and a quarter again, so one bar stands
74446
+ * as a block, and `fits` says how many bars the plot holds, so a page
74447
+ * can give it the latest of a longer table. It is read when the plot's
74448
+ * size changes.
73300
74449
  * - `sounding`: Whether the chart is playing as sound now. (property only) (readonly)
73301
74450
  * - `data`: The readings as data, in the shape of a table, where the page has no
73302
74451
  * table to point `for` at. `for` wins where both are set.
@@ -73345,6 +74494,11 @@ export type CustomElements<F extends Framework = "other"> = {
73345
74494
  * - `field`: The table read as bars. **Each row is a category, and each numeric
73346
74495
  * column a series.** A renderer reads it. (property only) (readonly)
73347
74496
  * - `active`: The bar the keys or the pointer rest on, as its place in `field.cells`, or `-1`. (property only) (readonly)
74497
+ * - `fits`: How many categories a `row` or a `diagonal` has room for across the
74498
+ * plot at its bar size, measured as it is read, or
74499
+ * `undefined` where there is no row, no bar size, or nothing drawn to
74500
+ * measure. A page with a longer table gives the chart its latest that
74501
+ * many rows, and says so. (property only) (readonly)
73348
74502
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
73349
74503
  *
73350
74504
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -73432,8 +74586,16 @@ export type CustomElements<F extends Framework = "other"> = {
73432
74586
  *
73433
74587
  * CSS variables available for styling the component.
73434
74588
  *
74589
+ * - `--spatial-bar-chart-bar-size`: How wide each bar of a `row` or a `diagonal` stands on the page, whatever the number of bars: the row is as long as its bars make it, centered in the plot, and the tallest bar stands as high as the plot has room for, and no taller than the row is long and a quarter again, so one bar stands as a block. `fits` says how many bars the plot holds. Unset, the row fills the plot's width.
73435
74590
  * - `--spatial-bar-chart-block-size`: How tall the plot is. By default, three quarters of its width and 22em at most.
73436
- * - `--spatial-bar-chart-shade`: How far a bar's face turns from the light, from 0 for its top. The component writes it on each face, and the stylesheet that shades the face reads it.
74591
+ * - `--spatial-bar-chart-shade -How far a bar's face turns from the light, from 0 for its top. The component writes it on each face, and the stylesheet that shades the face reads it.`: undefined
74592
+ * - `--spatial-bar-chart-tone-accent`: The color of a bar whose cell says `data-tone="accent"`.
74593
+ * - `--spatial-bar-chart-tone-danger`: The color of a bar whose cell says `data-tone="danger"`.
74594
+ * - `--spatial-bar-chart-tone-info`: The color of a bar whose cell says `data-tone="info"`.
74595
+ * - `--spatial-bar-chart-tone-muted`: The color of a bar whose cell says `data-tone="muted"`.
74596
+ * - `--spatial-bar-chart-tone-primary`: The color of a bar whose cell says `data-tone="primary"`. A tone with no property of its own falls back to the bar's series color, and the same holds for a name you define.
74597
+ * - `--spatial-bar-chart-tone-success`: The color of a bar whose cell says `data-tone="success"`.
74598
+ * - `--spatial-bar-chart-tone-warning`: The color of a bar whose cell says `data-tone="warning"`.
73437
74599
  *
73438
74600
  * ## CSS Parts
73439
74601
  *
@@ -73446,6 +74608,8 @@ export type CustomElements<F extends Framework = "other"> = {
73446
74608
  * - `empty`: The words when the table has no readings: the `empty` slot, falling back to `empty-text`.
73447
74609
  * - `face`: One face of a bar the view shows, shaded by which way it faces.
73448
74610
  * - `fallback`: The box the chart's own drawing fills, shown until a renderer has drawn and where none is connected. Hidden from screen readers.
74611
+ * - `floor`: One place on the floor of a `row`, under a bar or where one would stand, drawn as its outline.
74612
+ * - `glow`: The outline of a bar whose cell names a tone, blurred by 8 CSS pixels and painted under the bar, with no fill until a stylesheet gives it one: a soft glow in the bar's tone.
73449
74613
  * - `grid`: The box's edges and its grid, in the chart's own drawing.
73450
74614
  * - `live`: The readout: a polite live region that says the bar the keys moved to. Hide it visually.
73451
74615
  * - `loading`: The words while `loading` is set and there are no readings.
@@ -73457,7 +74621,7 @@ export type CustomElements<F extends Framework = "other"> = {
73457
74621
  * - `summary`: The number of bars, series, and categories, and the range of values, written as a sentence for screen readers, which describes the plot. Hide it visually.
73458
74622
  * - `table`: The readings as a table, for a screen reader, rendered only where they were drawn from `data`, a page of them at a time past a few hundred. Hide it visually.
73459
74623
  * - `table-pages`: Which readings a page of the `table` holds, and the buttons that show the previous and the next page, rendered only while it holds a page. Hide it visually.
73460
- * - `tick`: A category's or a series' name, or a value at a tick, along its edge of the box, in the chart's own drawing.
74624
+ * - `tick`: A category's or a series' name, or a value at a tick, along its edge of the box, or a category's name under its place in a `row`, in the chart's own drawing.
73461
74625
  * - `tooltip-anchor`: The `Tooltip` element itself.
73462
74626
  * - `tooltip-arrow`: The bubble's point, forwarded from `Tooltip`.
73463
74627
  * - `tooltip-arrow-bottom`: The point while the bubble is below the reading, on its top edge. Set alongside `tooltip-arrow`.
@@ -73474,6 +74638,7 @@ export type CustomElements<F extends Framework = "other"> = {
73474
74638
  * - `tooltip-surface-right`: The bubble while it is right of the reading. Set alongside `tooltip-surface`.
73475
74639
  * - `tooltip-surface-top`: The bubble while it is above the reading. Set alongside `tooltip-surface`.
73476
74640
  * - `tooltip-value`: A column's value inside the tooltip.
74641
+ * - `value`: The value of a bar whose cell names a tone, written above it in the chart's own drawing.
73477
74642
  *
73478
74643
  * ## CSS States
73479
74644
  *
@@ -76027,6 +77192,10 @@ export type CustomElements<F extends Framework = "other"> = {
76027
77192
  * `at` is nearer, and crosses in one diagonal to the far side. `waves` is sharp
76028
77193
  * strands crossing the full width.
76029
77194
  *
77195
+ * **Clear, over glass.** Set `clear` and the ribbon is drawn without its
77196
+ * ground, so a translucent pane or a frosted window behind the element shows
77197
+ * through, with the light over it.
77198
+ *
76030
77199
  * **Quiet behind words.** `quiet` names elements, such as a hero's words, that
76031
77200
  * the light dims behind to a faint glow, so a bright ribbon can cross the page
76032
77201
  * under them and they stay crisp.
@@ -76072,6 +77241,13 @@ export type CustomElements<F extends Framework = "other"> = {
76072
77241
  * own.
76073
77242
  * - `bloom`: How much the glow around the strands adds, as a multiplier. `0` draws the
76074
77243
  * strands alone, crisp and dimmer, and `1` is the default glow.
77244
+ * - `clear`: Whether the light is drawn alone, without the ground under it, so what is
77245
+ * behind the element shows through, such as a translucent pane or a window's
77246
+ * glass. The ground still says which way the page runs: light added on a
77247
+ * dark one, ink on a light one.
77248
+ *
77249
+ * Reflected because the stylesheet selects on it: the band under the canvas
77250
+ * shows only while the element falls back, and loses its ground too.
76075
77251
  * - `contrast`: How far apart the brightest and dimmest strands are, from `0`, most of
76076
77252
  * them alike, to `1`, a few burning bright over many faint ones. Clamped to
76077
77253
  * that range. The ribbon as a whole keeps its strength.
@@ -77189,10 +78365,40 @@ export type CustomElements<F extends Framework = "other"> = {
77189
78365
  * - `underlined` makes it a bar along the bottom of the strip, on a rule.
77190
78366
  * - `segmented` makes it the size of the tab's box, inside a sunken track.
77191
78367
  *
78368
+ * `emphasis="subtle"` makes the mark quieter, for tabs inside other chrome
78369
+ * such as a pane's header: a tint with no edge or shadow, the same wash a
78370
+ * subtle button takes.
78371
+ *
78372
+ * **Tabs with no panels are a strip.** Where what each tab stands for lives
78373
+ * outside the set, such as a pane's pages or shells, leave the panels out: the
78374
+ * tabs keep their keys and their selection, `active` and `helix-activate` say
78375
+ * which is current, and the page shows the rest. Put a control that adds a tab,
78376
+ * such as a plus, beside the set rather than in it, so the tab list holds tabs
78377
+ * alone. With `dismissible` tabs, `dismiss-marks="hover"` keeps each close
78378
+ * mark out of sight until the tab is current, under the pointer, or holds
78379
+ * focus, as a browser's tabs do.
78380
+ *
77192
78381
  * ## Attributes & Properties
77193
78382
  *
77194
78383
  * Component attributes and properties that can be applied to the element or by using JavaScript.
77195
78384
  *
78385
+ * - `dismiss-marks`/`dismissMarks`: When the close mark of each `dismissible` tab shows.
78386
+ *
78387
+ * Unset, or `always`, every mark shows. `hover` shows a tab's mark while it
78388
+ * is current, under the pointer, or holds focus, and keeps its room on every
78389
+ * tab, so the labels do not move as the marks come and go. For a strip of
78390
+ * many dismissible tabs, where a mark on each reads as a row of crosses. A
78391
+ * keyboard closes a tab with Delete whether its mark shows or not.
78392
+ * - `emphasis`: How loud the mark on the current tab is.
78393
+ *
78394
+ * Unset is the mark `variant` draws at rest. `subtle` is a tint with no
78395
+ * edge or shadow: the raised pill becomes a wash, the `segmented` track's
78396
+ * pill does the same inside it, and the `underlined` bar takes the
78397
+ * foreground's ink in place of the primary color. For tabs inside other
78398
+ * chrome, where a raised mark reads as a control laid on top of it.
78399
+ *
78400
+ * Independent of `variant`, since each of its marks has a quiet form: the two
78401
+ * answer different questions, which is the test the axis registry applies.
77196
78402
  * - `active`: The `value` of the current item.
77197
78403
  *
77198
78404
  * Not `option.active`, which is the option the keyboard is on: that is a
@@ -77425,6 +78631,7 @@ export type CustomElements<F extends Framework = "other"> = {
77425
78631
  * - `--tabs-tab-font-weight`: The weight of a tab's label.
77426
78632
  * - `--tabs-tab-hover-background-color`: The wash under the pointer.
77427
78633
  * - `--tabs-tab-hover-color`: The label color under the pointer.
78634
+ * - `--tabs-tab-max-inline-size`: The widest a tab grows. A longer label ends in an ellipsis, as a tag's does. Unset, a tab is as wide as its label.
77428
78635
  * - `--tabs-tab-padding-inline`: The space either side of the label.
77429
78636
  * - `--tabs-tab-radius`: The corners of a tab, which the hover wash takes.
77430
78637
  * - `--tabs-tab-selected-background-color`: The fill of the current tab itself, under the moving mark.
@@ -77436,6 +78643,7 @@ export type CustomElements<F extends Framework = "other"> = {
77436
78643
  *
77437
78644
  * - `dismiss`: The mark a pointer presses to close a `dismissible` tab.
77438
78645
  * - `dismiss-mark`: The glyph on that mark, where none is slotted.
78646
+ * - `label`: The slot the tab's label is in, which shortens with an ellipsis under `--tabs-tab-max-inline-size`.
77439
78647
  * - `tab`: The tab itself.
77440
78648
  *
77441
78649
  * ## CSS States
@@ -77644,7 +78852,7 @@ export type CustomElements<F extends Framework = "other"> = {
77644
78852
  *
77645
78853
  * - `(default)`: The tag's label.
77646
78854
  * - `dismiss-icon`: Replaces the glyph on the remove button.
77647
- * - `start`: The category the label belongs to, shown before it in a heavier weight.
78855
+ * - `start`: The category the label belongs to, shown before it in a heavier weight, or an icon.
77648
78856
  *
77649
78857
  * ## Methods
77650
78858
  *
@@ -77950,6 +79158,16 @@ export type CustomElements<F extends Framework = "other"> = {
77950
79158
  * - `restart-spinner`: The ring the Restart button turns while it is pending.
77951
79159
  * - `restart-text`: The Restart button's label.
77952
79160
  * - `status`: The line under the terminal that says the process exited, or that Tab moves focus.
79161
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
79162
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
79163
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
79164
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
79165
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
79166
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
79167
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
79168
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
79169
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
79170
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
77953
79171
  * - `viewport`: The box the terminal is drawn in.
77954
79172
  *
77955
79173
  * ## CSS States
@@ -78763,7 +79981,7 @@ export type CustomElements<F extends Framework = "other"> = {
78763
79981
  *
78764
79982
  * - `--time-input-background-color`: Fill behind the field.
78765
79983
  * - `--time-input-border-color`: Color of the panel's edge.
78766
- * - `--time-input-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a width.
79984
+ * - `--time-input-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
78767
79985
  * - `--time-input-segment-focus-background-color`: The fill behind the segment with focus, in `segmented`. It follows `--helix-color-primary-surface`.
78768
79986
  * - `--time-input-segment-focus-color`: The text of the segment with focus, in `segmented`.
78769
79987
  * - `--time-input-segment-literal-color`: The text the locale writes between two segments, in `segmented`.
@@ -79638,7 +80856,7 @@ export type CustomElements<F extends Framework = "other"> = {
79638
80856
  *
79639
80857
  * - `--toast-background-color`: The panel's color. Follows `--helix-color-surface-overlay`.
79640
80858
  * - `--toast-border-color`: Color of the panel's edge.
79641
- * - `--toast-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a border.
80859
+ * - `--toast-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
79642
80860
  * - `--toast-color`: Color of the message's text.
79643
80861
  * - `--toast-description-color`: Color of the line in the `description` slot, under the heading.
79644
80862
  * - `--toast-dismiss-color`: Color of the dismiss control's mark at rest.
@@ -80806,7 +82024,7 @@ export type CustomElements<F extends Framework = "other"> = {
80806
82024
  * CSS variables available for styling the component.
80807
82025
  *
80808
82026
  * - `--tour-arrow-size`: The size of the arrow's box, before it is rotated.
80809
- * - `--tour-border-width`: The width of the panel's border. It follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless a theme sets a border.
82027
+ * - `--tour-border-width`: The width of the panel's border. It follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
80810
82028
  * - `--tour-bubble-size`: The widest the panel can grow.
80811
82029
  * - `--tour-padding`: The padding inside the panel.
80812
82030
  * - `--tour-shadow`: The shadow under the panel. It follows `--helix-shadow-floating`. The panel can sit over any content, so it has a shadow by default.
@@ -81083,6 +82301,10 @@ export type CustomElements<F extends Framework = "other"> = {
81083
82301
  * the same fault `href` and `target` had on `Button`. The resting arrangement
81084
82302
  * is the absence of the attribute, and the stylesheet only asks about `end`.
81085
82303
  *
82304
+ * `label` sets the chevron against the end of a branch's name, where the name
82305
+ * takes only its own width, and leaves the `end` slot at the row's far side.
82306
+ * A leaf is unchanged, since it has no chevron.
82307
+ *
81086
82308
  * It is worth owning rather than leaving to `::part(toggle)`, which a
81087
82309
  * consumer could reach for: the naive version is `order` plus an auto margin,
81088
82310
  * and the row's `end` slot already carries an auto margin of its own, so the
@@ -84726,7 +85948,7 @@ export type CustomElementsSolidJs = {
84726
85948
  * - `expand`: The button after the first crumb of a folded slotted trail, which shows the folded crumbs.
84727
85949
  * - `fold-separator`: The chevron before that button.
84728
85950
  * - `link`: The crumb itself, which is an `<a>` where `href` is set.
84729
- * - `separator-mark`: The chevron between crumbs, shown when no separator is slotted.
85951
+ * - `separator-mark`: The chevron between crumbs, or the slash under the trail's `separator="slash"`, shown when no separator is slotted.
84730
85952
  *
84731
85953
  * ## CSS States
84732
85954
  *
@@ -84771,6 +85993,18 @@ export type CustomElementsSolidJs = {
84771
85993
  * - `max-items`/`maxItems`: The most crumbs a trail drawn from `items` shows before it folds its middle
84772
85994
  * into one, counting the first and the last. Unset, it never folds. At least
84773
85995
  * 2, so the first crumb and the current page always show.
85996
+ * - `separator`: The mark between one crumb and the next, for the whole trail. Unset is a
85997
+ * chevron; `slash` is a slash, as a path or a repository and its branch is
85998
+ * written.
85999
+ *
86000
+ * **On the trail rather than on each crumb**, because the marks are one
86001
+ * decision: a trail whose separators differ from crumb to crumb is a
86002
+ * mistake, and a trail drawn from `items` has no crumb of yours to set it
86003
+ * on. A crumb's own `separator` slot still replaces its mark, for the rare
86004
+ * crumb that needs something else.
86005
+ *
86006
+ * Optional and reflected, per the rule that a reflected property takes no
86007
+ * default, so a stylesheet can select on it.
84774
86008
  * - `items`: The trail as data, drawn as crumbs before any you slot. The last item is the
84775
86009
  * current page.
84776
86010
  *
@@ -84825,7 +86059,7 @@ export type CustomElementsSolidJs = {
84825
86059
  * - `crumb-fold-separator`: The chevron before that button.
84826
86060
  * - `crumb-link`: The link, or the current page's words, of a crumb drawn from `items`.
84827
86061
  * - `crumb-separator`: The separator before a crumb drawn from `items`.
84828
- * - `crumb-separator-mark`: The chevron before a crumb drawn from `items`.
86062
+ * - `crumb-separator-mark`: The chevron, or the slash under `separator="slash"`, before a crumb drawn from `items`.
84829
86063
  *
84830
86064
  * ## CSS States
84831
86065
  *
@@ -85047,6 +86281,20 @@ export type CustomElementsSolidJs = {
85047
86281
  * name to derive one rather than dash-casing it, and what a consumer writes
85048
86282
  * is the platform's `commandfor`.
85049
86283
  * - `commandfor`/`commandFor`: The id of the element the command is sent to.
86284
+ * - `focusable-when-disabled`/`focusableWhenDisabled`: Whether a disabled button stays in the tab order, so a tooltip around it
86285
+ * can say why it is disabled.
86286
+ *
86287
+ * Set it on a button whose reason a Tooltip gives, such as a Save with no
86288
+ * changes to save. While the button is disabled, it keeps focus and takes
86289
+ * hover, and it refuses every press: a click, Enter and Space, and Enter in
86290
+ * a field of its form. The click does not reach your listeners, and a submit
86291
+ * button submits nothing. The inner control carries `aria-disabled` in place
86292
+ * of the native `disabled`, so a screen reader still says it is unavailable.
86293
+ * The styled button keeps the disabled look.
86294
+ *
86295
+ * Leave it unset on a button with no reason to give. A plain disabled button
86296
+ * leaves the tab order, as a native one does, and a keyboard reader skips a
86297
+ * stop that does nothing. Set `pending` for the wait after a press.
85050
86298
  * - `formaction`/`formAction`: Where this button's submission goes, overriding the form's own.
85051
86299
  *
85052
86300
  * **The five `form*` overrides ride on a native submit button that stands in
@@ -86146,6 +87394,16 @@ export type CustomElementsSolidJs = {
86146
87394
  * - `pan-up-spinner`: The ring `pan-up` turns while it is pending.
86147
87395
  * - `pan-up-text`: The box `pan-up`'s glyph sits in.
86148
87396
  * - `region`: The named region the board is drawn in.
87397
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
87398
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
87399
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
87400
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
87401
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
87402
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
87403
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
87404
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
87405
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
87406
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
86149
87407
  * - `viewport`: The box the board is drawn inside.
86150
87408
  * - `zoom-in`: The button that zooms in.
86151
87409
  * - `zoom-in-button`: `zoom-in`'s inner button.
@@ -86695,15 +87953,36 @@ export type CustomElementsSolidJs = {
86695
87953
  >;
86696
87954
 
86697
87955
  /**
86698
- * The composer is one row, and the field takes the remaining width. The field
86699
- * grows with its text up to a maximum height, through `field-sizing: content`.
86700
- * Where that is not supported, the field keeps its rows and scrolls. The
86701
- * maximum height keeps the composer from covering the transcript.
87956
+ * The composer is one box. What the draft carries sits at its top, in a row
87957
+ * that wraps, inset to the line the caret starts on. The field grows with its
87958
+ * text up to a maximum height, through `field-sizing: content`. Where that is
87959
+ * not supported, the field keeps its rows and scrolls. The maximum height
87960
+ * keeps the composer from covering the transcript.
87961
+ *
87962
+ * With two `placeholders` or more, each example rolls into the next: the one
87963
+ * showing rises a little as it fades and blurs, and the next rises into its
87964
+ * place from below as it fades in, the two crossing so the field is never
87965
+ * empty. A box that changes height for the next example changes as it
87966
+ * lands. Where the browser has no CSS anchor
87967
+ * positioning, the examples fade into each other in the field's own
87968
+ * placeholder.
86702
87969
  *
86703
87970
  * ## Attributes & Properties
86704
87971
  *
86705
87972
  * Component attributes and properties that can be applied to the element or by using JavaScript.
86706
87973
  *
87974
+ * - `glow`: Draws the composer's focus as a glow: a light that runs once around the
87975
+ * edge as the composer takes focus, then a soft steady edge while it holds
87976
+ * it, in place of the focus ring.
87977
+ *
87978
+ * **On focus, and only then.** It says the composer is listening. A glow
87979
+ * that ran while a reply was on its way would be a second indicator of what
87980
+ * the conversation already shows, and one that ran all the time would be
87981
+ * decoration that moves. With reduced motion asked for, the edge lights
87982
+ * without the sweep.
87983
+ *
87984
+ * The steady edge is the focus indicator, so the ring is not drawn as well.
87985
+ * Its color is `--chat-composer-glow-color`, the primary color unless set.
86707
87986
  * - `listening-label`/`listeningLabel`: What a screen reader hears as listening starts.
86708
87987
  * - `stopped-listening-label`/`stoppedListeningLabel`: What a screen reader hears as listening stops.
86709
87988
  * - `voice`: Draws a button that listens for dictation and types what it hears at
@@ -86712,6 +87991,16 @@ export type CustomElementsSolidJs = {
86712
87991
  * `email` or `number` draws no button.
86713
87992
  * - `voice-label`/`voiceLabel`: The dictation button's name while it is not listening.
86714
87993
  * - `voice-stop-label`/`voiceStopLabel`: The dictation button's name while it listens.
87994
+ * - `attached`: Whether the draft holds something besides its text, such as an attached
87995
+ * file. The draft then counts as one though the field is empty, so the
87996
+ * send button shows in place of the `idle` slot.
87997
+ * - `busy`: Whether a reply is on its way. While set, the send button is a stop
87998
+ * button that sends `helix-stop`, and the draft does not send.
87999
+ *
88000
+ * **The same button rather than one beside it**, because sending and
88001
+ * stopping are never both possible: while a reply is on its way there is
88002
+ * nothing to send to, and the place the reader's eye goes to act is the
88003
+ * place that can act. The field stays open for the next turn.
86715
88004
  * - `feedback`: A message about the draft, shown under the field. While set, the composer
86716
88005
  * is invalid, does not send, and does not submit, as a field's `feedback`
86717
88006
  * does, and the message is announced as it appears.
@@ -86720,12 +88009,28 @@ export type CustomElementsSolidJs = {
86720
88009
  * - `minlength`/`minLength`: The fewest characters a draft can have, once the reader has written in
86721
88010
  * the field, as on a `<textarea>`.
86722
88011
  * - `placeholder`: Placeholder text shown in an empty field.
88012
+ * - `queue`: Whether Enter sends while `busy`, for a page that queues the turn or
88013
+ * hands it to the reply under way.
88014
+ *
88015
+ * Off by default, because a page that does neither would drop the turn: it
88016
+ * has nowhere to put a message while a reply is coming. The button stays
88017
+ * the stop button either way, since stopping is still the one thing it
88018
+ * should do while a reply is on its way.
86723
88019
  * - `required`: Whether the form needs a draft to submit. An empty draft never sends,
86724
88020
  * required or not.
86725
88021
  * - `rows`: How many rows the field opens at.
86726
88022
  *
86727
88023
  * It grows from there.
88024
+ * - `send-disabled`/`sendDisabled`: Whether the draft waits to be sent, such as while an attachment is still
88025
+ * read. The send button is unavailable and Enter does not send, while the
88026
+ * field stays open. The stop button shown while `busy` still stops.
86728
88027
  * - `send-label`/`sendLabel`: Label for the send button.
88028
+ * - `send-reason`/`sendReason`: Why the draft waits, such as "Reading photo.jpg", shown in a tooltip on
88029
+ * the send button while `send-disabled` is set. The button then stays in
88030
+ * the tab order and takes the pointer, with `aria-disabled` in place of
88031
+ * `disabled`, so the reason can be reached by keyboard and by pointer, as
88032
+ * Button's `focusable-when-disabled` does. A press still sends nothing.
88033
+ * - `stop-label`/`stopLabel`: Label for the stop button shown while `busy`.
86729
88034
  * - `submit-on`/`submitOn`: What sends the turn: `enter` for the Enter key, or `button` for the send
86730
88035
  * button only.
86731
88036
  *
@@ -86765,6 +88070,22 @@ export type CustomElementsSolidJs = {
86765
88070
  * - `speechEngine`: The engine this field listens through, in place of the one
86766
88071
  * `registerSpeechEngine` gave the page, or the browser's own. (property only)
86767
88072
  * - `listening`: Whether the field is listening for dictation now. (property only) (readonly)
88073
+ * - `placeholders`: Examples the empty field shows in turn, in place of `placeholder`, such
88074
+ * as tasks a reader might ask for. Each shows for 6.5 seconds, and a longer
88075
+ * one shows longer, up to 10 seconds.
88076
+ *
88077
+ * **Each is the field's placeholder in its turn**, so a screen reader that
88078
+ * reaches the field hears the one showing. The swap runs through
88079
+ * `:state(example-leaving)`, as one example leaves, and
88080
+ * `:state(example-entering)`, as the next arrives.
88081
+ *
88082
+ * **They move only while nobody is about to write, and while the reader
88083
+ * can see them.** An empty field without focus moves on. Focus or text
88084
+ * holds the example showing, and an example already leaving finishes its
88085
+ * turn. A composer scrolled out of view holds its example, and the example
88086
+ * gets its full time again when the composer comes back. Where the reader
88087
+ * asked for less motion, or the page paused its motion, the first example
88088
+ * stays. (property only)
86768
88089
  * - `typing`: Whether the user is writing: true from their first keystroke until they
86769
88090
  * send, clear the field, or pause for `typing-timeout` milliseconds. (property only) (readonly)
86770
88091
  * - `validity`: Whether the control meets its constraints, and why not. (property only) (readonly)
@@ -86800,6 +88121,7 @@ export type CustomElementsSolidJs = {
86800
88121
  * - `helix-before-listen`: The dictation button was pressed. Cancelable: cancel it to keep the composer from listening.
86801
88122
  * - `helix-listen`: Dictation settled on a phrase and put it in the draft, after the draft's own `input`.
86802
88123
  * - `helix-send`: Fired when the user sends their turn, and cancelable.
88124
+ * - `helix-stop`: Fired when the user presses the stop button, shown in place of the send button while `busy` is set.
86803
88125
  * - `helix-typing`: The user started or stopped writing, with `typing` saying which, as the composer's `typing` does.
86804
88126
  * - `input`: The user changed the text. Read it from `value`, for a typing indicator or a saved draft. Bubbles and is composed, as a native field's is.
86805
88127
  *
@@ -86807,8 +88129,10 @@ export type CustomElementsSolidJs = {
86807
88129
  *
86808
88130
  * Areas where markup can be added to the component.
86809
88131
  *
88132
+ * - `attachments`: What the draft carries, such as images or files, inside the box and above the field.
86810
88133
  * - `end`: Content under the field, beside the send button.
86811
88134
  * - `start`: Content under the field at the leading edge, such as an attachment button or a model picker.
88135
+ * - `idle`: A control shown in place of the send button while the draft is empty and no reply is on its way, such as a button that starts a voice conversation.
86812
88136
  *
86813
88137
  * ## Methods
86814
88138
  *
@@ -86881,6 +88205,7 @@ export type CustomElementsSolidJs = {
86881
88205
  *
86882
88206
  * - `--chat-composer-background-color`: Fill behind the composer.
86883
88207
  * - `--chat-composer-border-width`: Width of the composer's edge, so your theme can remove it.
88208
+ * - `--chat-composer-glow-color`: Color of the focus glow under `glow`. Defaults to the primary color.
86884
88209
  * - `--chat-composer-max-block-size`: Maximum height the field grows to.
86885
88210
  * - `--dictation-level`: How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it.
86886
88211
  *
@@ -86888,13 +88213,27 @@ export type CustomElementsSolidJs = {
86888
88213
  *
86889
88214
  * Custom selectors for styling elements within the component.
86890
88215
  *
88216
+ * - `attachments`: The row above the field that holds the `attachments` slot, inset to the field's text and hidden while the slot is empty.
88217
+ * - `example`: The example drawn over the empty field while `placeholders` holds two or more, in the field's box. It is a second field that shows only its placeholder, hidden from screen readers. Style its `::placeholder` where you style the field's.
88218
+ * - `example-leaving`: The example on its way out while the next comes in, for its first 250 milliseconds. Set together with `example`.
86891
88219
  * - `field`: The text field.
86892
88220
  * - `send`: The send button.
86893
88221
  * - `tools`: The row under the field.
86894
88222
  * - `composer`: The whole composer.
86895
88223
  * - `end`: The box around the `end` slot.
86896
88224
  * - `feedback`: The `feedback` message, under the field while it is set.
86897
- * - `mark`: The icon inside the send button.
88225
+ * - `idle`: The box around the `idle` slot, shown in the send button's place while the draft is empty.
88226
+ * - `mark`: The icon inside the send button, a return key, or a square while `busy`.
88227
+ * - `reason-arrow`: The arrow of the bubble that says `send-reason`, forwarded from `Tooltip`.
88228
+ * - `reason-arrow-bottom`: The arrow while the bubble is below the send button, on the bubble's top edge. Set together with `reason-arrow`.
88229
+ * - `reason-arrow-left`: The arrow while the bubble is left of the send button, on the bubble's right edge. Set together with `reason-arrow`.
88230
+ * - `reason-arrow-right`: The arrow while the bubble is right of the send button, on the bubble's left edge. Set together with `reason-arrow`.
88231
+ * - `reason-arrow-top`: The arrow while the bubble is above the send button, on the bubble's bottom edge. Set together with `reason-arrow`.
88232
+ * - `reason-surface`: The bubble that says `send-reason` over the send button, forwarded from `Tooltip`.
88233
+ * - `reason-surface-bottom`: The bubble while it is below the send button. Set together with `reason-surface`.
88234
+ * - `reason-surface-left`: The bubble while it is left of the send button. Set together with `reason-surface`.
88235
+ * - `reason-surface-right`: The bubble while it is right of the send button. Set together with `reason-surface`.
88236
+ * - `reason-surface-top`: The bubble while it is above the send button. Set together with `reason-surface`.
86898
88237
  * - `start`: The box around the `start` slot.
86899
88238
  * - `voice`: The dictation button, under `voice`, before the send button.
86900
88239
  * - `voice-listening`: The dictation button while it listens. Set alongside `voice`.
@@ -86904,6 +88243,8 @@ export type CustomElementsSolidJs = {
86904
88243
  *
86905
88244
  * These can be used to apply styling when a component is in a given state.
86906
88245
  *
88246
+ * - `example-entering`: The example in the empty field has just replaced the one before it, for an entrance. It holds for 350 milliseconds. See `placeholders`.
88247
+ * - `example-leaving`: The example in the empty field is giving way to the next one, for an exit. It holds for 250 milliseconds, and the next example becomes the placeholder 100 milliseconds in, so the two can cross. See `placeholders`.
86907
88248
  * - `invalid`: The draft fails `required`, `minlength`, `maxlength`, or a custom error, and the reader has tried to send or submit it, or edited the field and left it. Or `feedback` is set.
86908
88249
  * - `listening`: While the composer listens for dictation. The element sets `--dictation-level` on itself meanwhile, from 0 to 1, for a meter.
86909
88250
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -87007,6 +88348,7 @@ export type CustomElementsSolidJs = {
87007
88348
  *
87008
88349
  * - `(default)`: The turn's content.
87009
88350
  * - `actions`: Controls for the turn.
88351
+ * - `attachments`: What the turn carries, such as images or files, above the bubble.
87010
88352
  * - `avatar`: The author's avatar.
87011
88353
  * - `indicator`: The indicator shown before the first token arrives. Replaces the three dots.
87012
88354
  * - `sources`: The turn's sources, such as citations, documents, or a retrieved page.
@@ -87035,6 +88377,7 @@ export type CustomElementsSolidJs = {
87035
88377
  * - `indicator`: The three dots, shown when nothing is in the `indicator` slot.
87036
88378
  * - `meta`: The time and the state together.
87037
88379
  * - `actions`: The controls on the turn, beside its time.
88380
+ * - `attachments`: The box around the `attachments` slot, above the content and outside the bubble.
87038
88381
  * - `avatar`: The box around the `avatar` slot.
87039
88382
  * - `body`: The content and the line under it.
87040
88383
  * - `mark`: The status icon beside a failure.
@@ -87240,6 +88583,7 @@ export type CustomElementsSolidJs = {
87240
88583
  * - `loading`: Shown while the history loads.
87241
88584
  * - `message`: The message drawn for a turn from `turns`, forwarded whole.
87242
88585
  * - `message-actions`: The controls on a turn from `turns`, beside its time.
88586
+ * - `message-attachments`: The attachments above the bubble of a turn from `turns`.
87243
88587
  * - `message-avatar`: The avatar box of a turn from `turns`.
87244
88588
  * - `message-avatar-mine`: The avatar box of a turn from `turns` by `me`.
87245
88589
  * - `message-body`: The content of a turn from `turns`, and the line under it.
@@ -89084,7 +90428,7 @@ export type CustomElementsSolidJs = {
89084
90428
  *
89085
90429
  * - `--color-input-background-color`: Fill behind the field.
89086
90430
  * - `--color-input-border-color`: Color of the panel's edge.
89087
- * - `--color-input-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless a theme sets a border. `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a theme says otherwise.
90431
+ * - `--color-input-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
89088
90432
  * - `--color-input-panel-size`: Width of the panel, and so of the square.
89089
90433
  * - `--color-input-shadow`: Shadow under the panel. Defaults to `--helix-shadow-floating`, so the panel keeps a shadow over any content below it. `--helix-shadow-floating`: a floating surface sits over content nobody can predict, so it keeps a lift by default.
89090
90434
  * - `--color-input-swatch-radius`: Corner radius of the swatch in `variant="swatch"`.
@@ -89923,7 +91267,7 @@ export type CustomElementsSolidJs = {
89923
91267
  *
89924
91268
  * - `--combobox-background-color`: Fill behind the field.
89925
91269
  * - `--combobox-border-color`: Color of the panel's edge.
89926
- * - `--combobox-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0` unless your theme sets it, so the panel's shadow sets it apart.
91270
+ * - `--combobox-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
89927
91271
  * - `--combobox-control-size`: Smallest the text field shrinks to once tags share its line.
89928
91272
  * - `--combobox-panel-size`: Width of the panel. Follows the field by default.
89929
91273
  * - `--combobox-shadow`: Shadow under the panel. Follows `--helix-shadow-floating`. A floating panel can sit over any content, so it has a shadow by default.
@@ -89997,6 +91341,16 @@ export type CustomElementsSolidJs = {
89997
91341
  *
89998
91342
  * Component attributes and properties that can be applied to the element or by using JavaScript.
89999
91343
  *
91344
+ * - `material`: The panel's surface: `frosted` or `glass`, as on `Dialog`, which the
91345
+ * palette opens in and hands the value to.
91346
+ *
91347
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
91348
+ * ground over the theme's blur, and `frosted` the same pair turned up, so a
91349
+ * page whose panels are frosted has a palette that matches. Its strength is
91350
+ * the theme's, as on `Popover`, `Menu` and `Drawer`.
91351
+ *
91352
+ * **No `transparent`, deliberately.** A palette over arbitrary page content
91353
+ * is only readable because it has a ground.
90000
91354
  * - `default-open`/`defaultOpen`: Whether the element starts open. Ignored once `open` is written.
90001
91355
  * - `open`: Whether the element is open.
90002
91356
  *
@@ -90154,6 +91508,7 @@ export type CustomElementsSolidJs = {
90154
91508
  * CSS variables available for styling the component.
90155
91509
  *
90156
91510
  * - `--command-list-size`: How tall the list grows before it scrolls.
91511
+ * - `--command-radius`: The corners of the palette's panel. Defaults to the dialog's.
90157
91512
  * - `--command-size`: How wide the palette is. Defaults to `40rem`.
90158
91513
  *
90159
91514
  * ## CSS Parts
@@ -90275,6 +91630,20 @@ export type CustomElementsSolidJs = {
90275
91630
  * It replaces `Button.value`, the submit value: a copy button never submits,
90276
91631
  * whatever its `type`. Declared here so its own page says what it holds.
90277
91632
  * - `aria-label`/`undefined`: undefined
91633
+ * - `focusable-when-disabled`/`focusableWhenDisabled`: Whether a disabled button stays in the tab order, so a tooltip around it
91634
+ * can say why it is disabled.
91635
+ *
91636
+ * Set it on a button whose reason a Tooltip gives, such as a Save with no
91637
+ * changes to save. While the button is disabled, it keeps focus and takes
91638
+ * hover, and it refuses every press: a click, Enter and Space, and Enter in
91639
+ * a field of its form. The click does not reach your listeners, and a submit
91640
+ * button submits nothing. The inner control carries `aria-disabled` in place
91641
+ * of the native `disabled`, so a screen reader still says it is unavailable.
91642
+ * The styled button keeps the disabled look.
91643
+ *
91644
+ * Leave it unset on a button with no reason to give. A plain disabled button
91645
+ * leaves the tab order, as a native one does, and a keyboard reader skips a
91646
+ * stop that does nothing. Set `pending` for the wait after a press.
90278
91647
  * - `pending`: Whether the action the button started is still running.
90279
91648
  *
90280
91649
  * A pending button keeps focus and stays in the tab order, and refuses every
@@ -91337,7 +92706,7 @@ export type CustomElementsSolidJs = {
91337
92706
  *
91338
92707
  * - `--date-input-background-color`: The fill behind the field.
91339
92708
  * - `--date-input-border-color`: The color of the panel's border.
91340
- * - `--date-input-border-width`: The width of the panel's border. It follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless a theme sets a border.
92709
+ * - `--date-input-border-width`: The width of the panel's border. It follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
91341
92710
  * - `--date-input-segment-focus-background-color`: The fill behind the segment with focus, in `segmented`. It follows `--helix-color-primary-surface`.
91342
92711
  * - `--date-input-segment-focus-color`: The text of the segment with focus, in `segmented`.
91343
92712
  * - `--date-input-segment-literal-color`: The text the locale writes between two segments, in `segmented`.
@@ -92255,6 +93624,16 @@ export type CustomElementsSolidJs = {
92255
93624
  * - `screenshot-live`: The screenshot button's live region, which speaks while the button is pending.
92256
93625
  * - `screenshot-spinner`: The ring the screenshot button turns while it is pending.
92257
93626
  * - `screenshot-text`: The box the screenshot button's icon sits in.
93627
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
93628
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
93629
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
93630
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
93631
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
93632
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
93633
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
93634
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
93635
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
93636
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
92258
93637
  * - `touch`: A ring where a touch is or was.
92259
93638
  * - `touch-held`: A ring under a finger that is down, beside `touch`, with `show-touches`.
92260
93639
  * - `volume-down`: The Volume down button.
@@ -92296,6 +93675,15 @@ export type CustomElementsSolidJs = {
92296
93675
  *
92297
93676
  * Component attributes and properties that can be applied to the element or by using JavaScript.
92298
93677
  *
93678
+ * - `material`: The panel's surface: `frosted` or `glass`.
93679
+ *
93680
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
93681
+ * ground over the theme's blur, and `frosted` the same pair turned up, as
93682
+ * on `Popover`, `Menu`, `Drawer` and `Tooltip`, so a page whose panels are
93683
+ * frosted has dialogs that match.
93684
+ *
93685
+ * **No `transparent`, deliberately.** A dialog over arbitrary page content
93686
+ * is only readable because it has a ground.
92299
93687
  * - `size`: How wide the panel is allowed to be.
92300
93688
  *
92301
93689
  * Steps rather than a number, because a dialog's width is a fact about what is
@@ -92471,9 +93859,10 @@ export type CustomElementsSolidJs = {
92471
93859
  *
92472
93860
  * CSS variables available for styling the component.
92473
93861
  *
93862
+ * - `--dialog-backdrop`: Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy.
92474
93863
  * - `--dialog-background-color`: The panel's fill. Follows `--helix-color-surface-overlay`.
92475
93864
  * - `--dialog-border-color`: Color of the panel's edge.
92476
- * - `--dialog-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a border.
93865
+ * - `--dialog-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
92477
93866
  * - `--dialog-color`: Color of the words in the panel. Follows `--helix-color-foreground`.
92478
93867
  * - `--dialog-icon-size`: How big the mark above the title is.
92479
93868
  * - `--dialog-inline-size`: Width of the panel.
@@ -93125,7 +94514,7 @@ export type CustomElementsSolidJs = {
93125
94514
  * - `--drawer-backdrop`: Filter applied behind a `frosted` or `glass` drawer. Follows the theme's material policy. Set it to change the strength on one drawer.
93126
94515
  * - `--drawer-background-color`: Surface behind the panel.
93127
94516
  * - `--drawer-border-color`: Color of the panel's edge.
93128
- * - `--drawer-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a border.
94517
+ * - `--drawer-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
93129
94518
  * - `--drawer-padding`: Padding inside the panel.
93130
94519
  * - `--drawer-padding-block-start`: Padding above the header. It is one step larger than the other three sides, so the first line clears the window's edge. Falls back to `--drawer-padding`, so setting that alone sets all four sides.
93131
94520
  * - `--drawer-radius`: Corner radius on the edges that face the page.
@@ -95288,6 +96677,16 @@ export type CustomElementsSolidJs = {
95288
96677
  * - `settling`: What is said while a layout runs unseen, where the reader asked for less motion or the page paused its motion, over the hidden drawing.
95289
96678
  * - `stage`: The drawing and its controls.
95290
96679
  * - `stop-layout`: The button that stops a layout that has run past five seconds, where the notes stand.
96680
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
96681
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
96682
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
96683
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
96684
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
96685
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
96686
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
96687
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
96688
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
96689
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
95291
96690
  * - `viewport`: The box the renderer draws in.
95292
96691
  * - `zoom-in`: The zoom in button.
95293
96692
  * - `zoom-in-button`: `zoom-in`'s inner button.
@@ -95895,6 +97294,20 @@ export type CustomElementsSolidJs = {
95895
97294
  * name to derive one rather than dash-casing it, and what a consumer writes
95896
97295
  * is the platform's `commandfor`.
95897
97296
  * - `commandfor`/`commandFor`: The id of the element the command is sent to.
97297
+ * - `focusable-when-disabled`/`focusableWhenDisabled`: Whether a disabled button stays in the tab order, so a tooltip around it
97298
+ * can say why it is disabled.
97299
+ *
97300
+ * Set it on a button whose reason a Tooltip gives, such as a Save with no
97301
+ * changes to save. While the button is disabled, it keeps focus and takes
97302
+ * hover, and it refuses every press: a click, Enter and Space, and Enter in
97303
+ * a field of its form. The click does not reach your listeners, and a submit
97304
+ * button submits nothing. The inner control carries `aria-disabled` in place
97305
+ * of the native `disabled`, so a screen reader still says it is unavailable.
97306
+ * The styled button keeps the disabled look.
97307
+ *
97308
+ * Leave it unset on a button with no reason to give. A plain disabled button
97309
+ * leaves the tab order, as a native one does, and a keyboard reader skips a
97310
+ * stop that does nothing. Set `pending` for the wait after a press.
95898
97311
  * - `formaction`/`formAction`: Where this button's submission goes, overriding the form's own.
95899
97312
  *
95900
97313
  * **The five `form*` overrides ride on a native submit button that stands in
@@ -96514,6 +97927,9 @@ export type CustomElementsSolidJs = {
96514
97927
  *
96515
97928
  * Empty leaves the attribute off, which is the browser's default. Set it to
96516
97929
  * a token like `email` or `bday` to ask for autofill, or to `off` to refuse.
97930
+ * - `autocorrect`: Whether the browser corrects words as the reader types, as the platform's
97931
+ * `autocorrect`. Turn it off, with `autocorrect="off"`, for text that is not
97932
+ * prose, such as an address or a code, which corrections would change.
96517
97933
  * - `clearable`: Whether the field shows a button that empties it.
96518
97934
  *
96519
97935
  * Shown only while there is something to clear, because a control that does
@@ -98760,7 +100176,9 @@ export type CustomElementsSolidJs = {
98760
100176
  *
98761
100177
  * These can be used to apply styling when a component is in a given state.
98762
100178
  *
100179
+ * - `empty`: The group holds nothing to show, so opening it shows nothing.
98763
100180
  * - `open`: The group shows its lines.
100181
+ * - `steps`: The group holds steps of its own, which a stylesheet draws as a tree.
98764
100182
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
98765
100183
  */
98766
100184
  "helix-log-group": Partial<
@@ -98892,7 +100310,10 @@ export type CustomElementsSolidJs = {
98892
100310
  * - `plain` has no edge, no fill, no inset and no height of its own: the
98893
100311
  * lines start where the text around them does and the log grows with
98894
100312
  * them. For a log inside something that already frames it, such as an
98895
- * agent's work in a chat turn's `work` slot.
100313
+ * agent's work in a chat turn's `work` slot. Each step is a row with its
100314
+ * status mark on that edge and its caret after the heading. A step that
100315
+ * holds steps draws a rule beside them, and a step that holds lines draws
100316
+ * them on a quiet surface that scrolls after `--log-step-max-block-size`.
98896
100317
  *
98897
100318
  * Both are writable, so a page can say which it means rather than relying
98898
100319
  * on the absence of an attribute.
@@ -99050,6 +100471,7 @@ export type CustomElementsSolidJs = {
99050
100471
  * - `--log-radius`: The corners of the log.
99051
100472
  * - `--log-scrollbar-thumb-color`: The thumb of the scrollbar. Defaults to `--helix-scrollbar-thumb-color`.
99052
100473
  * - `--log-scrollbar-track-color`: The track of the scrollbar. Defaults to `--helix-scrollbar-track-color`.
100474
+ * - `--log-step-max-block-size`: How tall a step's lines may get in a `plain` log before they scroll. Defaults to 20rem.
99053
100475
  * - `--log-ansi-background`: The background a run takes where ANSI swaps the colors and named none. Defaults to the log's own background on the styled tier.
99054
100476
  * - `--log-ansi-black`: The ANSI color black, which codes `30` and `40` draw.
99055
100477
  * - `--log-ansi-blue`: The ANSI color blue, which codes `34` and `44` draw.
@@ -99077,7 +100499,7 @@ export type CustomElementsSolidJs = {
99077
100499
  * - `after`: The space the rows below the drawn ones would take. Only for lines drawn from data.
99078
100500
  * - `before`: The space the rows above the drawn ones would take. Only for lines drawn from data.
99079
100501
  * - `dropped`: The line above the log that says how many earlier lines `limit` let go.
99080
- * - `empty`: Shown when the log has no lines.
100502
+ * - `empty`: Shown when the log has no lines and no steps.
99081
100503
  * - `group-content`: Not drawn: a group drawn from data stands for its heading, and its lines are rows beside it.
99082
100504
  * - `group-duration`: How long a step drawn from `groups` took.
99083
100505
  * - `group-heading`: The heading of a step drawn from `groups`.
@@ -99123,7 +100545,7 @@ export type CustomElementsSolidJs = {
99123
100545
  * These can be used to apply styling when a component is in a given state.
99124
100546
  *
99125
100547
  * - `done`: The run is over: `done` is set, or `source` ended.
99126
- * - `empty`: The log has no lines.
100548
+ * - `empty`: The log has no lines and no steps.
99127
100549
  * - `filtered`: `query` or `level` is set, so only the lines they keep are shown.
99128
100550
  * - `pinned`: The log follows its newest line.
99129
100551
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -100091,6 +101513,16 @@ export type CustomElementsSolidJs = {
100091
101513
  * - `tilt-live`: `tilt`'s live region, which speaks while it is pending.
100092
101514
  * - `tilt-spinner`: The ring `tilt` turns while it is pending.
100093
101515
  * - `tilt-text`: The box `tilt`'s glyph sits in.
101516
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
101517
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
101518
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
101519
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
101520
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
101521
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
101522
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
101523
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
101524
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
101525
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
100094
101526
  * - `viewport`: The box the map is drawn in.
100095
101527
  * - `zoom-in`: The button that zooms in.
100096
101528
  * - `zoom-in-button`: `zoom-in`'s inner button.
@@ -100482,7 +101914,7 @@ export type CustomElementsSolidJs = {
100482
101914
  *
100483
101915
  * - `--megamenu-backdrop`: The filter behind the panel, `none` by default. This family has no `material` property, so this and `--megamenu-background-color` set the panel's material.
100484
101916
  * - `--megamenu-background-color`: The panel's fill.
100485
- * - `--megamenu-border-width`: The width of the panel's edge. Follows `--helix-border-floating`, which is `0` unless a theme changes it, so the panel stands out by its shadow.
101917
+ * - `--megamenu-border-width`: The width of the panel's edge. Follows `--helix-border-floating`, a hairline, which is drawn in dark mode only. Set it to `0` for the shadow alone.
100486
101918
  * - `--megamenu-column-size`: The minimum width of a column before the grid wraps.
100487
101919
  * - `--megamenu-duration`: How long the panel takes to open and close.
100488
101920
  * - `--megamenu-full-size`: The maximum width of the band's contents, which are centered in it.
@@ -100731,6 +102163,19 @@ export type CustomElementsSolidJs = {
100731
102163
  *
100732
102164
  * Component attributes and properties that can be applied to the element or by using JavaScript.
100733
102165
  *
102166
+ * - `material`: The panel's surface: `frosted` or `glass`.
102167
+ *
102168
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
102169
+ * ground over a blur, for a page whose surfaces are glass, so a panel opened
102170
+ * over a glass window is not the one opaque slab on it. `frosted` is the same
102171
+ * pair turned up, a ground that admits less and a heavier blur.
102172
+ *
102173
+ * The strength is the theme's: `--helix-material-translucent`,
102174
+ * `--helix-material-translucent-strong` and `--helix-material-backdrop` are
102175
+ * what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
102176
+ *
102177
+ * **No `transparent`, deliberately.** A panel floating over arbitrary page
102178
+ * content is only readable because it has a ground.
100734
102179
  * - `empty-text`/`emptyText`: The text shown and announced when there are no rows and none are loading.
100735
102180
  * - `loading`: Whether the rows are still loading.
100736
102181
  *
@@ -100880,9 +102325,10 @@ export type CustomElementsSolidJs = {
100880
102325
  *
100881
102326
  * CSS variables available for styling the component.
100882
102327
  *
102328
+ * - `--menu-backdrop`: Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy.
100883
102329
  * - `--menu-background-color`: Fill of the surface.
100884
102330
  * - `--menu-border-color`: Color of the panel's edge.
100885
- * - `--menu-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless a theme sets a border.
102331
+ * - `--menu-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
100886
102332
  * - `--menu-max-block-size`: The tallest the menu grows before it scrolls.
100887
102333
  * - `--menu-min-inline-size`: The narrowest the menu gets.
100888
102334
  * - `--menu-shadow`: Shadow under the panel. Defaults to `--helix-shadow-floating`, so the panel keeps a shadow over any content below it.
@@ -100978,6 +102424,7 @@ export type CustomElementsSolidJs = {
100978
102424
  *
100979
102425
  * These can be used to apply styling when a component is in a given state.
100980
102426
  *
102427
+ * - `start`: A row in the section has content before its label, so every row in it keeps the leading column. The menu decides it for each section, apart from the rows outside one.
100981
102428
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
100982
102429
  */
100983
102430
  "helix-menu-section": Partial<
@@ -101166,6 +102613,7 @@ export type CustomElementsSolidJs = {
101166
102613
  * Areas where markup can be added to the component.
101167
102614
  *
101168
102615
  * - `label`: A visible label, above a bar and under a ring or an arc. Its words name it in place of `label`.
102616
+ * - `(default)`: `Meter.Segment` elements, one for each share of the whole, drawn in the bar.
101169
102617
  *
101170
102618
  * ## CSS Custom Properties
101171
102619
  *
@@ -101187,6 +102635,7 @@ export type CustomElementsSolidJs = {
101187
102635
  * - `--meter-along`: Where a bound sits on the arc, as a length along it.
101188
102636
  * - `--meter-at`: Where a bound sits on a linear track, as a percentage.
101189
102637
  * - `--meter-fraction`: The value as a fraction of the range, 0 to 1.
102638
+ * - `--meter-span`: How much the range holds, `max` less `min`, which a segment divides its own value by to find its width.
101190
102639
  * - `--meter-sweep`: How much of the circle the arc covers, as a path length.
101191
102640
  *
101192
102641
  * ## CSS Parts
@@ -101223,6 +102672,87 @@ export type CustomElementsSolidJs = {
101223
102672
  BaseEvents<HelixMeter>
101224
102673
  >;
101225
102674
 
102675
+ /**
102676
+ * Each segment takes the next color in the chart series, in the order written, so
102677
+ * two of them are told apart without being given a color. A `tone` is what a
102678
+ * segment means, and takes the place of its turn. A hairline in the track's ground
102679
+ * sits between neighbors, so the boundary is there for a reader who cannot tell
102680
+ * two of the colors apart.
102681
+ *
102682
+ * Write the segments inside a meter, and the page imports the family beside it:
102683
+ *
102684
+ * ```js
102685
+ * import '@fusion.dev/helix/meter'
102686
+ * ```
102687
+ *
102688
+ * ## Attributes & Properties
102689
+ *
102690
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
102691
+ *
102692
+ * - `label`: What the segment is, such as "Tools", which names the slice when a pointer
102693
+ * rests on it.
102694
+ *
102695
+ * Not announced: see the note on a meter's children above.
102696
+ * - `tone`: What the segment means, as it does on a callout. Takes the tone's color in
102697
+ * place of the next color in the series.
102698
+ * - `value`: How much of the meter's range the segment takes, in the units of the meter's
102699
+ * `min` and `max`.
102700
+ *
102701
+ * A value that is not a number, or is below zero, draws nothing.
102702
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
102703
+ *
102704
+ * **Named `whenSettled` because `settled` is taken four times over**, by
102705
+ * Image, Splitter and both color controls, none of them about transitions. A
102706
+ * base class takes the name every subclass then cannot use.
102707
+ *
102708
+ * **The state it reports cannot be watched, which is why this exists.** A
102709
+ * custom state is deliberately not in the DOM, so there is no
102710
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
102711
+ * instead.
102712
+ *
102713
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
102714
+ * the suppression is still active in. That is the distinction `readyToMove`
102715
+ * in `@fusion.dev/helix-testing` is written around.
102716
+ *
102717
+ * It never resolves where `requestAnimationFrame` never fires, which is a
102718
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
102719
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
102720
+ * browser harness's awaits it alone: a browser always runs the frame, and a
102721
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
102722
+ *
102723
+ * ## Slots
102724
+ *
102725
+ * Areas where markup can be added to the component.
102726
+ *
102727
+ * - `(default)`: Nothing. A segment draws its share and has no content.
102728
+ *
102729
+ * ## CSS Custom Properties
102730
+ *
102731
+ * CSS variables available for styling the component.
102732
+ *
102733
+ * - `--meter-segment-color`: The slice's color. Overrides the series and the tone.
102734
+ * - `--meter-segment-gap-color`: The color of the hairline between neighbors.
102735
+ * - `--meter-segment-value`: How much of the range the segment takes, in the meter's own units.
102736
+ *
102737
+ * ## CSS Parts
102738
+ *
102739
+ * Custom selectors for styling elements within the component.
102740
+ *
102741
+ * - `fill`: The slice of the bar the segment takes.
102742
+ *
102743
+ * ## CSS States
102744
+ *
102745
+ * These can be used to apply styling when a component is in a given state.
102746
+ *
102747
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
102748
+ */
102749
+ "helix-meter-segment": Partial<
102750
+ HelixMeterSegmentProps &
102751
+ HelixMeterSegmentSolidJsProps &
102752
+ BaseProps<HelixMeterSegment, "solid"> &
102753
+ BaseEvents<HelixMeterSegment>
102754
+ >;
102755
+
101226
102756
  /**
101227
102757
  * A quiet square button, as the controls over a map are, with the pause icon
101228
102758
  * while motion runs and the play icon while it is paused. Text slotted into
@@ -103912,6 +105442,19 @@ export type CustomElementsSolidJs = {
103912
105442
  *
103913
105443
  * Component attributes and properties that can be applied to the element or by using JavaScript.
103914
105444
  *
105445
+ * - `material`: The panel's surface: `frosted` or `glass`.
105446
+ *
105447
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
105448
+ * ground over a blur, for a page whose surfaces are glass, so a panel opened
105449
+ * over a glass window is not the one opaque slab on it. `frosted` is the same
105450
+ * pair turned up, a ground that admits less and a heavier blur.
105451
+ *
105452
+ * The strength is the theme's: `--helix-material-translucent`,
105453
+ * `--helix-material-translucent-strong` and `--helix-material-backdrop` are
105454
+ * what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
105455
+ *
105456
+ * **No `transparent`, deliberately.** A panel floating over arbitrary page
105457
+ * content is only readable because it has a ground.
103915
105458
  * - `separation`: How the panel is set apart from the content under it.
103916
105459
  *
103917
105460
  * One of the axis's four values, which is all this surface has meaning for: a
@@ -104020,8 +105563,10 @@ export type CustomElementsSolidJs = {
104020
105563
  * CSS variables available for styling the component.
104021
105564
  *
104022
105565
  * - `--popover-arrow-size`: Size of the point drawn with `arrow`. Tooltip's point is the same size.
105566
+ * - `--popover-backdrop`: Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy.
105567
+ * - `--popover-background-color`: Fill of the surface.
104023
105568
  * - `--popover-border-color`: Color of the panel's edge.
104024
- * - `--popover-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a width.
105569
+ * - `--popover-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
104025
105570
  * - `--popover-inline-size`: Width of the panel.
104026
105571
  * - `--popover-max-block-size`: Maximum height of the panel before it scrolls.
104027
105572
  * - `--popover-padding`: Space between the panel's edge and its contents.
@@ -106483,6 +108028,17 @@ export type CustomElementsSolidJs = {
106483
108028
  * styled to match the design system. The base class measures which edges have
106484
108029
  * content past them.
106485
108030
  *
108031
+ * **The content fades out toward each edge that has more past it.** The fade
108032
+ * is a mask on the viewport, so the surface behind the scroll area shows
108033
+ * through it: the page, a card, or a translucent pane. Set the depth with
108034
+ * `--scroll-area-fade`, or one edge's depth with its own property, and use `0`
108035
+ * to keep an edge from fading. A scrollbar that takes room beside the content
108036
+ * stays out of the mask.
108037
+ *
108038
+ * **Set `--scroll-area-fade-color` to paint the fades.** Each fade is then a
108039
+ * gradient from that color over the content, and there is no mask. Use it for
108040
+ * a scroll area on a solid ground, in the ground's color or one of your own.
108041
+ *
106486
108042
  * Under `scrollbars`, the browser's scrollbar is hidden and the component's own
106487
108043
  * are drawn over the content at the edge, in the same colors.
106488
108044
  *
@@ -106556,10 +108112,10 @@ export type CustomElementsSolidJs = {
106556
108112
  *
106557
108113
  * CSS variables available for styling the component.
106558
108114
  *
106559
- * - `--scroll-area-fade`: The depth of the fades at both edges.
108115
+ * - `--scroll-area-fade`: The depth of the fade at each edge.
106560
108116
  * - `--scroll-area-fade-block-end`: The depth of the bottom fade, or `0` to remove it.
106561
108117
  * - `--scroll-area-fade-block-start`: The depth of the top fade, or `0` to remove it.
106562
- * - `--scroll-area-fade-color`: The color the fades blend into, which is the background behind the box.
108118
+ * - `--scroll-area-fade-color`: The color to paint the fades in, as a gradient over the content at each edge. Unset, the fades are a mask.
106563
108119
  * - `--scroll-area-fade-inline-end`: The depth of the fade at the inline end, or `0` to remove it.
106564
108120
  * - `--scroll-area-fade-inline-start`: The depth of the fade at the inline start, or `0` to remove it.
106565
108121
  * - `--scroll-area-scrollbar`: The scrollbar width, as a `scrollbar-width` keyword.
@@ -106568,6 +108124,8 @@ export type CustomElementsSolidJs = {
106568
108124
  * - `--scroll-area-thumb-hover-color`: The color of the browser's thumb while the pointer is over the scroll area, and of a thumb drawn under `scrollbars` while the pointer is over it. Defaults to `--helix-scrollbar-thumb-hover-color`.
106569
108125
  * - `--scroll-area-thumb-min-size`: The shortest a thumb drawn under `scrollbars` gets, however long the content.
106570
108126
  * - `--scroll-area-track-color`: The color of the scrollbar's track. Defaults to `--helix-scrollbar-track-color`.
108127
+ * - `--scroll-area-gutter-block-end`: The room the browser's horizontal scrollbar takes at the block end of the viewport, in pixels. Written on the `viewport` part while that scrollbar takes room, and absent while it draws over the content.
108128
+ * - `--scroll-area-gutter-inline-end`: The room the browser's vertical scrollbar takes at the inline end of the viewport, in pixels. Written on the `viewport` part while that scrollbar takes room, and absent while it draws over the content.
106571
108129
  * - `--scroll-area-scroll-fraction`: How far along its axis the content is scrolled, from 0 at the start to 1 at the end. Written on each `scrollbar` part, so its thumb inherits it. Counted from the right on a right-to-left page.
106572
108130
  * - `--scroll-area-thumb-fraction`: The share of the track the thumb covers, from 0 to 1, which is how much of the content is in view. Written on each `scrollbar` part.
106573
108131
  *
@@ -106576,7 +108134,7 @@ export type CustomElementsSolidJs = {
106576
108134
  * Custom selectors for styling elements within the component.
106577
108135
  *
106578
108136
  * - `corner`: The square where the two scrollbars meet, under `scrollbars`. Hidden unless both are drawn.
106579
- * - `edges`: The layer that draws the cues on the inline start and end edges.
108137
+ * - `edges`: The layer over the viewport. The styled tier draws the focus ring on it, and the painted fades at the inline start and end.
106580
108138
  * - `scrollbar`: Each scrollbar, under `scrollbars`. Hidden on an axis that has none.
106581
108139
  * - `scrollbar-horizontal`: The scrollbar along the inline axis, alongside `scrollbar`.
106582
108140
  * - `scrollbar-vertical`: The scrollbar along the block axis, alongside `scrollbar`.
@@ -106929,7 +108487,7 @@ export type CustomElementsSolidJs = {
106929
108487
  * CSS variables available for styling the component.
106930
108488
  *
106931
108489
  * - `--select-border-color`: Color of the panel's edge.
106932
- * - `--select-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a width.
108490
+ * - `--select-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
106933
108491
  * - `--select-shadow`: Shadow under the panel. Defaults to `--helix-shadow-floating`, because the panel can sit over any content.
106934
108492
  * - `--select-surface-max-block-size`: Maximum height of the panel.
106935
108493
  * - `--floating-anchor-inline-size`: The trigger's width, written on the panel while it is open, as in `min-inline-size: var(--floating-anchor-inline-size)`. Read it; a value set here is written over.
@@ -107237,7 +108795,7 @@ export type CustomElementsSolidJs = {
107237
108795
  *
107238
108796
  * - `--skip-link-background-color`: The background of the link while it is shown.
107239
108797
  * - `--skip-link-border-color`: The border color of the link while it is shown.
107240
- * - `--skip-link-border-width`: The border width of the link while it is shown. Follows `--helix-border-floating`, which is `0`, so the link is set apart by its shadow unless a theme sets a border.
108798
+ * - `--skip-link-border-width`: The border width of the link while it is shown. Follows `--helix-border-floating`, a hairline. Set it to `0` for the shadow alone.
107241
108799
  * - `--skip-link-color`: The text color of the link while it is shown.
107242
108800
  * - `--skip-link-font-size`: The size of the link's text.
107243
108801
  * - `--skip-link-inset-block`: How far the shown link sits from the top of the viewport.
@@ -107869,6 +109427,13 @@ export type CustomElementsSolidJs = {
107869
109427
  * reflected property takes no default, and `solid` writes it out. A
107870
109428
  * renderer draws the bars the same way.
107871
109429
  *
109430
+ * **`muted` draws every bar in the neutral ink**, so the one bar whose cell
109431
+ * names a tone, such as `data-tone="primary"`, is the bar in color, with a
109432
+ * soft glow in its tone: one reading lit among the others, such as today
109433
+ * among a week. Each top takes the most ink and each side less, as a
109434
+ * colored bar's faces do. A renderer draws the neutral bars and the toned
109435
+ * one, without the glow.
109436
+ *
107872
109437
  * It composes with `material`: emphasis decides what is drawn, and material
107873
109438
  * how much of it comes through. The outline on the bar the keys rest on
107874
109439
  * keeps its own ink.
@@ -107931,16 +109496,73 @@ export type CustomElementsSolidJs = {
107931
109496
  * `hidden`, or absent, says the summary to a screen reader and draws it
107932
109497
  * for no one else. Reflected, because the stylesheet draws it by the
107933
109498
  * attribute, and a page that sets the property, as React does, writes none.
107934
- * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, so the readings stand
107935
- * alone and fill the plot, as a picture on a product's own page does. The
109499
+ * - `grow`: Grows the bars up from the floor the first time the chart comes into
109500
+ * view with readings, each category a little after the one before it, so
109501
+ * the drawing arrives the way a page's own picture does. The growth is
109502
+ * fast at first, slows to rest, and never passes a bar's value.
109503
+ *
109504
+ * Under `prefers-reduced-motion`, or where the page has paused its motion
109505
+ * through `pauseMotion` or `Motion Toggle`, the bars stand at their height
109506
+ * from the start. A later table draws the bars it already had at their
109507
+ * height, and grows the bars it adds, each from the floor, so a reading that
109508
+ * arrives while the chart is in view arrives the same way.
109509
+ * - `grow-again`/`growAgain`: Grows the bars again each time the chart comes back into view after it
109510
+ * left it, as a pane does when it is opened again, where `grow` alone grows
109511
+ * them the first time only. Only a chart that grows takes it.
109512
+ *
109513
+ * While it is out of view the bars stand at the floor, so the first frame
109514
+ * after it returns is the start of the growth and never a flash at full
109515
+ * height.
109516
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, and in a `row` no
109517
+ * floor, so the readings stand alone and fill the plot, as a picture on a
109518
+ * product's own page does. The
107936
109519
  * table, the summary, the tooltip, and the keys still carry every value,
107937
109520
  * and a renderer draws no box either.
107938
109521
  * - `open-label`/`openLabel`: What the readout says for a place with no value. `{category}` and
107939
109522
  * `{series}` name the place.
107940
109523
  * - `plot-label`/`plotLabel`: The plot's name where the chart has none: no `aria-label`, `label`, or table caption.
109524
+ * - `stacked`: Stacks a category's series into one column, each block standing on the
109525
+ * ones before it, so the column is as tall as the category's total, as a
109526
+ * flat `Bar Chart` stacks them.
109527
+ *
109528
+ * Absent stands the series one behind another in depth. Stacked, every
109529
+ * series stands in the front row, so none hides another, and the parts of
109530
+ * one total read together. A negative reading hangs below zero on the
109531
+ * negatives before it. The scale fits the stacks.
107941
109532
  * - `summary-label`/`summaryLabel`: The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
107942
109533
  * are the number of bars, series, and categories, written in the locale,
107943
109534
  * and `{low}` and `{high}` the lowest and the highest value.
109535
+ * - `variant`: How the bars stand.
109536
+ *
109537
+ * Unset, they stand on a grid of categories across and series in depth,
109538
+ * in a box the camera looks at from a corner, so the grid recedes at an
109539
+ * angle. `row` lays the categories in a straight line across the page and
109540
+ * turns each bar to the camera, showing its top and two sides, for one row
109541
+ * of readings in a small space such as a pane: turning the view turns each
109542
+ * bar where it stands, and the row stays level. It is the chart's own
109543
+ * drawing that lays the row: a renderer connected through
109544
+ * `@fusion.dev/helix-plot` stands the bars on the grid.
109545
+ *
109546
+ * `diagonal` is the same row climbing to the right as it recedes, each
109547
+ * place a step further back than the one before, as a row of days on a
109548
+ * product's page is drawn: the row rises one part in five across the page
109549
+ * from any turn, and its floor and names climb with it. A row whose bars
109550
+ * have a size climbs at most a quarter of the plot's height, so the bars
109551
+ * of a long row keep theirs.
109552
+ *
109553
+ * **A row draws its floor in place of a box**: each place as an outline a
109554
+ * little wider than its bar, and each category's name under it, as many
109555
+ * names as fit without touching. A name whose bar names a tone is written
109556
+ * first, in that tone. `no-box` leaves the floor and the names out.
109557
+ *
109558
+ * **A `column-gap` on the `fallback` part gives a row's bars one width**,
109559
+ * which the styled tier sets from `--spatial-bar-chart-bar-size`: one bar
109560
+ * stands as wide as each of twenty, the row is as long as its bars and
109561
+ * centered, the tallest bar stands as high as the plot has room for and
109562
+ * no taller than the row is long and a quarter again, so one bar stands
109563
+ * as a block, and `fits` says how many bars the plot holds, so a page
109564
+ * can give it the latest of a longer table. It is read when the plot's
109565
+ * size changes.
107944
109566
  * - `sounding`: Whether the chart is playing as sound now. (property only) (readonly)
107945
109567
  * - `data`: The readings as data, in the shape of a table, where the page has no
107946
109568
  * table to point `for` at. `for` wins where both are set.
@@ -107989,6 +109611,11 @@ export type CustomElementsSolidJs = {
107989
109611
  * - `field`: The table read as bars. **Each row is a category, and each numeric
107990
109612
  * column a series.** A renderer reads it. (property only) (readonly)
107991
109613
  * - `active`: The bar the keys or the pointer rest on, as its place in `field.cells`, or `-1`. (property only) (readonly)
109614
+ * - `fits`: How many categories a `row` or a `diagonal` has room for across the
109615
+ * plot at its bar size, measured as it is read, or
109616
+ * `undefined` where there is no row, no bar size, or nothing drawn to
109617
+ * measure. A page with a longer table gives the chart its latest that
109618
+ * many rows, and says so. (property only) (readonly)
107992
109619
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
107993
109620
  *
107994
109621
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -108076,8 +109703,16 @@ export type CustomElementsSolidJs = {
108076
109703
  *
108077
109704
  * CSS variables available for styling the component.
108078
109705
  *
109706
+ * - `--spatial-bar-chart-bar-size`: How wide each bar of a `row` or a `diagonal` stands on the page, whatever the number of bars: the row is as long as its bars make it, centered in the plot, and the tallest bar stands as high as the plot has room for, and no taller than the row is long and a quarter again, so one bar stands as a block. `fits` says how many bars the plot holds. Unset, the row fills the plot's width.
108079
109707
  * - `--spatial-bar-chart-block-size`: How tall the plot is. By default, three quarters of its width and 22em at most.
108080
- * - `--spatial-bar-chart-shade`: How far a bar's face turns from the light, from 0 for its top. The component writes it on each face, and the stylesheet that shades the face reads it.
109708
+ * - `--spatial-bar-chart-shade -How far a bar's face turns from the light, from 0 for its top. The component writes it on each face, and the stylesheet that shades the face reads it.`: undefined
109709
+ * - `--spatial-bar-chart-tone-accent`: The color of a bar whose cell says `data-tone="accent"`.
109710
+ * - `--spatial-bar-chart-tone-danger`: The color of a bar whose cell says `data-tone="danger"`.
109711
+ * - `--spatial-bar-chart-tone-info`: The color of a bar whose cell says `data-tone="info"`.
109712
+ * - `--spatial-bar-chart-tone-muted`: The color of a bar whose cell says `data-tone="muted"`.
109713
+ * - `--spatial-bar-chart-tone-primary`: The color of a bar whose cell says `data-tone="primary"`. A tone with no property of its own falls back to the bar's series color, and the same holds for a name you define.
109714
+ * - `--spatial-bar-chart-tone-success`: The color of a bar whose cell says `data-tone="success"`.
109715
+ * - `--spatial-bar-chart-tone-warning`: The color of a bar whose cell says `data-tone="warning"`.
108081
109716
  *
108082
109717
  * ## CSS Parts
108083
109718
  *
@@ -108090,6 +109725,8 @@ export type CustomElementsSolidJs = {
108090
109725
  * - `empty`: The words when the table has no readings: the `empty` slot, falling back to `empty-text`.
108091
109726
  * - `face`: One face of a bar the view shows, shaded by which way it faces.
108092
109727
  * - `fallback`: The box the chart's own drawing fills, shown until a renderer has drawn and where none is connected. Hidden from screen readers.
109728
+ * - `floor`: One place on the floor of a `row`, under a bar or where one would stand, drawn as its outline.
109729
+ * - `glow`: The outline of a bar whose cell names a tone, blurred by 8 CSS pixels and painted under the bar, with no fill until a stylesheet gives it one: a soft glow in the bar's tone.
108093
109730
  * - `grid`: The box's edges and its grid, in the chart's own drawing.
108094
109731
  * - `live`: The readout: a polite live region that says the bar the keys moved to. Hide it visually.
108095
109732
  * - `loading`: The words while `loading` is set and there are no readings.
@@ -108101,7 +109738,7 @@ export type CustomElementsSolidJs = {
108101
109738
  * - `summary`: The number of bars, series, and categories, and the range of values, written as a sentence for screen readers, which describes the plot. Hide it visually.
108102
109739
  * - `table`: The readings as a table, for a screen reader, rendered only where they were drawn from `data`, a page of them at a time past a few hundred. Hide it visually.
108103
109740
  * - `table-pages`: Which readings a page of the `table` holds, and the buttons that show the previous and the next page, rendered only while it holds a page. Hide it visually.
108104
- * - `tick`: A category's or a series' name, or a value at a tick, along its edge of the box, in the chart's own drawing.
109741
+ * - `tick`: A category's or a series' name, or a value at a tick, along its edge of the box, or a category's name under its place in a `row`, in the chart's own drawing.
108105
109742
  * - `tooltip-anchor`: The `Tooltip` element itself.
108106
109743
  * - `tooltip-arrow`: The bubble's point, forwarded from `Tooltip`.
108107
109744
  * - `tooltip-arrow-bottom`: The point while the bubble is below the reading, on its top edge. Set alongside `tooltip-arrow`.
@@ -108118,6 +109755,7 @@ export type CustomElementsSolidJs = {
108118
109755
  * - `tooltip-surface-right`: The bubble while it is right of the reading. Set alongside `tooltip-surface`.
108119
109756
  * - `tooltip-surface-top`: The bubble while it is above the reading. Set alongside `tooltip-surface`.
108120
109757
  * - `tooltip-value`: A column's value inside the tooltip.
109758
+ * - `value`: The value of a bar whose cell names a tone, written above it in the chart's own drawing.
108121
109759
  *
108122
109760
  * ## CSS States
108123
109761
  *
@@ -110707,6 +112345,10 @@ export type CustomElementsSolidJs = {
110707
112345
  * `at` is nearer, and crosses in one diagonal to the far side. `waves` is sharp
110708
112346
  * strands crossing the full width.
110709
112347
  *
112348
+ * **Clear, over glass.** Set `clear` and the ribbon is drawn without its
112349
+ * ground, so a translucent pane or a frosted window behind the element shows
112350
+ * through, with the light over it.
112351
+ *
110710
112352
  * **Quiet behind words.** `quiet` names elements, such as a hero's words, that
110711
112353
  * the light dims behind to a faint glow, so a bright ribbon can cross the page
110712
112354
  * under them and they stay crisp.
@@ -110752,6 +112394,13 @@ export type CustomElementsSolidJs = {
110752
112394
  * own.
110753
112395
  * - `bloom`: How much the glow around the strands adds, as a multiplier. `0` draws the
110754
112396
  * strands alone, crisp and dimmer, and `1` is the default glow.
112397
+ * - `clear`: Whether the light is drawn alone, without the ground under it, so what is
112398
+ * behind the element shows through, such as a translucent pane or a window's
112399
+ * glass. The ground still says which way the page runs: light added on a
112400
+ * dark one, ink on a light one.
112401
+ *
112402
+ * Reflected because the stylesheet selects on it: the band under the canvas
112403
+ * shows only while the element falls back, and loses its ground too.
110755
112404
  * - `contrast`: How far apart the brightest and dimmest strands are, from `0`, most of
110756
112405
  * them alike, to `1`, a few burning bright over many faint ones. Clamped to
110757
112406
  * that range. The ribbon as a whole keeps its strength.
@@ -111895,10 +113544,40 @@ export type CustomElementsSolidJs = {
111895
113544
  * - `underlined` makes it a bar along the bottom of the strip, on a rule.
111896
113545
  * - `segmented` makes it the size of the tab's box, inside a sunken track.
111897
113546
  *
113547
+ * `emphasis="subtle"` makes the mark quieter, for tabs inside other chrome
113548
+ * such as a pane's header: a tint with no edge or shadow, the same wash a
113549
+ * subtle button takes.
113550
+ *
113551
+ * **Tabs with no panels are a strip.** Where what each tab stands for lives
113552
+ * outside the set, such as a pane's pages or shells, leave the panels out: the
113553
+ * tabs keep their keys and their selection, `active` and `helix-activate` say
113554
+ * which is current, and the page shows the rest. Put a control that adds a tab,
113555
+ * such as a plus, beside the set rather than in it, so the tab list holds tabs
113556
+ * alone. With `dismissible` tabs, `dismiss-marks="hover"` keeps each close
113557
+ * mark out of sight until the tab is current, under the pointer, or holds
113558
+ * focus, as a browser's tabs do.
113559
+ *
111898
113560
  * ## Attributes & Properties
111899
113561
  *
111900
113562
  * Component attributes and properties that can be applied to the element or by using JavaScript.
111901
113563
  *
113564
+ * - `dismiss-marks`/`dismissMarks`: When the close mark of each `dismissible` tab shows.
113565
+ *
113566
+ * Unset, or `always`, every mark shows. `hover` shows a tab's mark while it
113567
+ * is current, under the pointer, or holds focus, and keeps its room on every
113568
+ * tab, so the labels do not move as the marks come and go. For a strip of
113569
+ * many dismissible tabs, where a mark on each reads as a row of crosses. A
113570
+ * keyboard closes a tab with Delete whether its mark shows or not.
113571
+ * - `emphasis`: How loud the mark on the current tab is.
113572
+ *
113573
+ * Unset is the mark `variant` draws at rest. `subtle` is a tint with no
113574
+ * edge or shadow: the raised pill becomes a wash, the `segmented` track's
113575
+ * pill does the same inside it, and the `underlined` bar takes the
113576
+ * foreground's ink in place of the primary color. For tabs inside other
113577
+ * chrome, where a raised mark reads as a control laid on top of it.
113578
+ *
113579
+ * Independent of `variant`, since each of its marks has a quiet form: the two
113580
+ * answer different questions, which is the test the axis registry applies.
111902
113581
  * - `active`: The `value` of the current item.
111903
113582
  *
111904
113583
  * Not `option.active`, which is the option the keyboard is on: that is a
@@ -112133,6 +113812,7 @@ export type CustomElementsSolidJs = {
112133
113812
  * - `--tabs-tab-font-weight`: The weight of a tab's label.
112134
113813
  * - `--tabs-tab-hover-background-color`: The wash under the pointer.
112135
113814
  * - `--tabs-tab-hover-color`: The label color under the pointer.
113815
+ * - `--tabs-tab-max-inline-size`: The widest a tab grows. A longer label ends in an ellipsis, as a tag's does. Unset, a tab is as wide as its label.
112136
113816
  * - `--tabs-tab-padding-inline`: The space either side of the label.
112137
113817
  * - `--tabs-tab-radius`: The corners of a tab, which the hover wash takes.
112138
113818
  * - `--tabs-tab-selected-background-color`: The fill of the current tab itself, under the moving mark.
@@ -112144,6 +113824,7 @@ export type CustomElementsSolidJs = {
112144
113824
  *
112145
113825
  * - `dismiss`: The mark a pointer presses to close a `dismissible` tab.
112146
113826
  * - `dismiss-mark`: The glyph on that mark, where none is slotted.
113827
+ * - `label`: The slot the tab's label is in, which shortens with an ellipsis under `--tabs-tab-max-inline-size`.
112147
113828
  * - `tab`: The tab itself.
112148
113829
  *
112149
113830
  * ## CSS States
@@ -112357,7 +114038,7 @@ export type CustomElementsSolidJs = {
112357
114038
  *
112358
114039
  * - `(default)`: The tag's label.
112359
114040
  * - `dismiss-icon`: Replaces the glyph on the remove button.
112360
- * - `start`: The category the label belongs to, shown before it in a heavier weight.
114041
+ * - `start`: The category the label belongs to, shown before it in a heavier weight, or an icon.
112361
114042
  *
112362
114043
  * ## Methods
112363
114044
  *
@@ -112665,6 +114346,16 @@ export type CustomElementsSolidJs = {
112665
114346
  * - `restart-spinner`: The ring the Restart button turns while it is pending.
112666
114347
  * - `restart-text`: The Restart button's label.
112667
114348
  * - `status`: The line under the terminal that says the process exited, or that Tab moves focus.
114349
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
114350
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
114351
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
114352
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
114353
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
114354
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
114355
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
114356
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
114357
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
114358
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
112668
114359
  * - `viewport`: The box the terminal is drawn in.
112669
114360
  *
112670
114361
  * ## CSS States
@@ -113486,7 +115177,7 @@ export type CustomElementsSolidJs = {
113486
115177
  *
113487
115178
  * - `--time-input-background-color`: Fill behind the field.
113488
115179
  * - `--time-input-border-color`: Color of the panel's edge.
113489
- * - `--time-input-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a width.
115180
+ * - `--time-input-border-width`: Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
113490
115181
  * - `--time-input-segment-focus-background-color`: The fill behind the segment with focus, in `segmented`. It follows `--helix-color-primary-surface`.
113491
115182
  * - `--time-input-segment-focus-color`: The text of the segment with focus, in `segmented`.
113492
115183
  * - `--time-input-segment-literal-color`: The text the locale writes between two segments, in `segmented`.
@@ -114376,7 +116067,7 @@ export type CustomElementsSolidJs = {
114376
116067
  *
114377
116068
  * - `--toast-background-color`: The panel's color. Follows `--helix-color-surface-overlay`.
114378
116069
  * - `--toast-border-color`: Color of the panel's edge.
114379
- * - `--toast-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a border.
116070
+ * - `--toast-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
114380
116071
  * - `--toast-color`: Color of the message's text.
114381
116072
  * - `--toast-description-color`: Color of the line in the `description` slot, under the heading.
114382
116073
  * - `--toast-dismiss-color`: Color of the dismiss control's mark at rest.
@@ -115566,7 +117257,7 @@ export type CustomElementsSolidJs = {
115566
117257
  * CSS variables available for styling the component.
115567
117258
  *
115568
117259
  * - `--tour-arrow-size`: The size of the arrow's box, before it is rotated.
115569
- * - `--tour-border-width`: The width of the panel's border. It follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless a theme sets a border.
117260
+ * - `--tour-border-width`: The width of the panel's border. It follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone.
115570
117261
  * - `--tour-bubble-size`: The widest the panel can grow.
115571
117262
  * - `--tour-padding`: The padding inside the panel.
115572
117263
  * - `--tour-shadow`: The shadow under the panel. It follows `--helix-shadow-floating`. The panel can sit over any content, so it has a shadow by default.
@@ -115849,6 +117540,10 @@ export type CustomElementsSolidJs = {
115849
117540
  * the same fault `href` and `target` had on `Button`. The resting arrangement
115850
117541
  * is the absence of the attribute, and the stylesheet only asks about `end`.
115851
117542
  *
117543
+ * `label` sets the chevron against the end of a branch's name, where the name
117544
+ * takes only its own width, and leaves the `end` slot at the row's far side.
117545
+ * A leaf is unchanged, since it has no chevron.
117546
+ *
115852
117547
  * It is worth owning rather than leaving to `::part(toggle)`, which a
115853
117548
  * consumer could reach for: the naive version is `order` plus an auto margin,
115854
117549
  * and the row's `end` slot already carries an auto margin of its own, so the
@@ -117702,6 +119397,8 @@ export type CustomCssProperties = {
117702
119397
  "--chat-composer-background-color"?: (string) | undefined;
117703
119398
  /** Width of the composer's edge, so your theme can remove it. */
117704
119399
  "--chat-composer-border-width"?: (string) | undefined;
119400
+ /** Color of the focus glow under `glow`. Defaults to the primary color. */
119401
+ "--chat-composer-glow-color"?: (string) | undefined;
117705
119402
  /** Maximum height the field grows to. */
117706
119403
  "--chat-composer-max-block-size"?: (string) | undefined;
117707
119404
  /** How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it. */
@@ -117850,7 +119547,7 @@ export type CustomCssProperties = {
117850
119547
  "--color-input-background-color"?: (string) | undefined;
117851
119548
  /** Color of the panel's edge. */
117852
119549
  "--color-input-border-color"?: (string) | undefined;
117853
- /** Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless a theme sets a border. `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a theme says otherwise. */
119550
+ /** Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone. */
117854
119551
  "--color-input-border-width"?: (string) | undefined;
117855
119552
  /** Width of the panel, and so of the square. */
117856
119553
  "--color-input-panel-size"?: (string) | undefined;
@@ -117894,7 +119591,7 @@ export type CustomCssProperties = {
117894
119591
  "--combobox-background-color"?: (string) | undefined;
117895
119592
  /** Color of the panel's edge. */
117896
119593
  "--combobox-border-color"?: (string) | undefined;
117897
- /** Width of the panel's edge. Follows `--helix-border-floating`, which is `0` unless your theme sets it, so the panel's shadow sets it apart. */
119594
+ /** Width of the panel's edge. Follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone. */
117898
119595
  "--combobox-border-width"?: (string) | undefined;
117899
119596
  /** Smallest the text field shrinks to once tags share its line. */
117900
119597
  "--combobox-control-size"?: (string) | undefined;
@@ -117904,6 +119601,8 @@ export type CustomCssProperties = {
117904
119601
  "--combobox-shadow"?: (string) | undefined;
117905
119602
  /** How tall the list grows before it scrolls. */
117906
119603
  "--command-list-size"?: (string) | undefined;
119604
+ /** The corners of the palette's panel. Defaults to the dialog's. */
119605
+ "--command-radius"?: (string) | undefined;
117907
119606
  /** How wide the palette is. Defaults to `40rem`. */
117908
119607
  "--command-size"?: (string) | undefined;
117909
119608
  /** The icon's color at rest. A `tone` keeps its own. */
@@ -118024,7 +119723,7 @@ export type CustomCssProperties = {
118024
119723
  "--date-input-background-color"?: (string) | undefined;
118025
119724
  /** The color of the panel's border. */
118026
119725
  "--date-input-border-color"?: (string) | undefined;
118027
- /** The width of the panel's border. It follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless a theme sets a border. */
119726
+ /** The width of the panel's border. It follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone. */
118028
119727
  "--date-input-border-width"?: (string) | undefined;
118029
119728
  /** The fill behind the segment with focus, in `segmented`. It follows `--helix-color-primary-surface`. */
118030
119729
  "--date-input-segment-focus-background-color"?: (string) | undefined;
@@ -118106,11 +119805,13 @@ export type CustomCssProperties = {
118106
119805
  "--device-screen-touch-x"?: (string) | undefined;
118107
119806
  /** Where a ring is, down the screen, as a percentage. Written on each ring. */
118108
119807
  "--device-screen-touch-y"?: (string) | undefined;
119808
+ /** Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy. */
119809
+ "--dialog-backdrop"?: (string) | undefined;
118109
119810
  /** The panel's fill. Follows `--helix-color-surface-overlay`. */
118110
119811
  "--dialog-background-color"?: (string) | undefined;
118111
119812
  /** Color of the panel's edge. */
118112
119813
  "--dialog-border-color"?: (string) | undefined;
118113
- /** Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a border. */
119814
+ /** Width of the panel's edge. Follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone. */
118114
119815
  "--dialog-border-width"?: (string) | undefined;
118115
119816
  /** Color of the words in the panel. Follows `--helix-color-foreground`. */
118116
119817
  "--dialog-color"?: (string) | undefined;
@@ -118172,7 +119873,7 @@ export type CustomCssProperties = {
118172
119873
  "--drawer-background-color"?: (string) | undefined;
118173
119874
  /** Color of the panel's edge. */
118174
119875
  "--drawer-border-color"?: (string) | undefined;
118175
- /** Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a border. */
119876
+ /** Width of the panel's edge. Follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone. */
118176
119877
  "--drawer-border-width"?: (string) | undefined;
118177
119878
  /** Padding inside the panel. */
118178
119879
  "--drawer-padding"?: (string) | undefined;
@@ -118646,6 +120347,8 @@ export type CustomCssProperties = {
118646
120347
  "--log-scrollbar-thumb-color"?: (string) | undefined;
118647
120348
  /** The track of the scrollbar. Defaults to `--helix-scrollbar-track-color`. */
118648
120349
  "--log-scrollbar-track-color"?: (string) | undefined;
120350
+ /** How tall a step's lines may get in a `plain` log before they scroll. Defaults to 20rem. */
120351
+ "--log-step-max-block-size"?: (string) | undefined;
118649
120352
  /** The background a run takes where ANSI swaps the colors and named none. Defaults to the log's own background on the styled tier. */
118650
120353
  "--log-ansi-background"?: (string) | undefined;
118651
120354
  /** The ANSI color black, which codes `30` and `40` draw. */
@@ -118760,7 +120463,7 @@ export type CustomCssProperties = {
118760
120463
  "--megamenu-backdrop"?: (string) | undefined;
118761
120464
  /** The panel's fill. */
118762
120465
  "--megamenu-background-color"?: (string) | undefined;
118763
- /** The width of the panel's edge. Follows `--helix-border-floating`, which is `0` unless a theme changes it, so the panel stands out by its shadow. */
120466
+ /** The width of the panel's edge. Follows `--helix-border-floating`, a hairline, which is drawn in dark mode only. Set it to `0` for the shadow alone. */
118764
120467
  "--megamenu-border-width"?: (string) | undefined;
118765
120468
  /** The minimum width of a column before the grid wraps. */
118766
120469
  "--megamenu-column-size"?: (string) | undefined;
@@ -118812,11 +120515,13 @@ export type CustomCssProperties = {
118812
120515
  "--menu-item-hover-color"?: (string) | undefined;
118813
120516
  /** Width of the leading column, including the gap after it, for a row with more than a mark. The menu sets it for each page, and `0` removes the column. */
118814
120517
  "--menu-item-start"?: (string) | undefined;
120518
+ /** Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy. */
120519
+ "--menu-backdrop"?: (string) | undefined;
118815
120520
  /** Fill of the surface. */
118816
120521
  "--menu-background-color"?: (string) | undefined;
118817
120522
  /** Color of the panel's edge. */
118818
120523
  "--menu-border-color"?: (string) | undefined;
118819
- /** Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless a theme sets a border. */
120524
+ /** Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone. */
118820
120525
  "--menu-border-width"?: (string) | undefined;
118821
120526
  /** The tallest the menu grows before it scrolls. */
118822
120527
  "--menu-max-block-size"?: (string) | undefined;
@@ -118862,8 +120567,16 @@ export type CustomCssProperties = {
118862
120567
  "--meter-at"?: (string) | undefined;
118863
120568
  /** The value as a fraction of the range, 0 to 1. */
118864
120569
  "--meter-fraction"?: (string) | undefined;
120570
+ /** How much the range holds, `max` less `min`, which a segment divides its own value by to find its width. */
120571
+ "--meter-span"?: (string) | undefined;
118865
120572
  /** How much of the circle the arc covers, as a path length. */
118866
120573
  "--meter-sweep"?: (string) | undefined;
120574
+ /** The slice's color. Overrides the series and the tone. */
120575
+ "--meter-segment-color"?: (string) | undefined;
120576
+ /** The color of the hairline between neighbors. */
120577
+ "--meter-segment-gap-color"?: (string) | undefined;
120578
+ /** How much of the range the segment takes, in the meter's own units. */
120579
+ "--meter-segment-value"?: (string) | undefined;
118867
120580
  /** The button's fill. Defaults to the floating overlay surface. */
118868
120581
  "--motion-toggle-background-color"?: (string) | undefined;
118869
120582
  /** Height of the bar in a row. Each destination fills it. */
@@ -119086,9 +120799,13 @@ export type CustomCssProperties = {
119086
120799
  "--pin-input-separator-color"?: (string) | undefined;
119087
120800
  /** Size of the point drawn with `arrow`. Tooltip's point is the same size. */
119088
120801
  "--popover-arrow-size"?: (string) | undefined;
120802
+ /** Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy. */
120803
+ "--popover-backdrop"?: (string) | undefined;
120804
+ /** Fill of the surface. */
120805
+ "--popover-background-color"?: (string) | undefined;
119089
120806
  /** Color of the panel's edge. */
119090
120807
  "--popover-border-color"?: (string) | undefined;
119091
- /** Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a width. */
120808
+ /** Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone. */
119092
120809
  "--popover-border-width"?: (string) | undefined;
119093
120810
  /** Width of the panel. */
119094
120811
  "--popover-inline-size"?: (string) | undefined;
@@ -119264,13 +120981,13 @@ export type CustomCssProperties = {
119264
120981
  "--chart-point-y"?: (string) | undefined;
119265
120982
  /** A tick's position along its axis, as a percentage. The component writes it. */
119266
120983
  "--chart-tick"?: (string) | undefined;
119267
- /** The depth of the fades at both edges. */
120984
+ /** The depth of the fade at each edge. */
119268
120985
  "--scroll-area-fade"?: (string) | undefined;
119269
120986
  /** The depth of the bottom fade, or `0` to remove it. */
119270
120987
  "--scroll-area-fade-block-end"?: (string) | undefined;
119271
120988
  /** The depth of the top fade, or `0` to remove it. */
119272
120989
  "--scroll-area-fade-block-start"?: (string) | undefined;
119273
- /** The color the fades blend into, which is the background behind the box. */
120990
+ /** The color to paint the fades in, as a gradient over the content at each edge. Unset, the fades are a mask. */
119274
120991
  "--scroll-area-fade-color"?: (string) | undefined;
119275
120992
  /** The depth of the fade at the inline end, or `0` to remove it. */
119276
120993
  "--scroll-area-fade-inline-end"?: (string) | undefined;
@@ -119288,13 +121005,17 @@ export type CustomCssProperties = {
119288
121005
  "--scroll-area-thumb-min-size"?: (string) | undefined;
119289
121006
  /** The color of the scrollbar's track. Defaults to `--helix-scrollbar-track-color`. */
119290
121007
  "--scroll-area-track-color"?: (string) | undefined;
121008
+ /** The room the browser's horizontal scrollbar takes at the block end of the viewport, in pixels. Written on the `viewport` part while that scrollbar takes room, and absent while it draws over the content. */
121009
+ "--scroll-area-gutter-block-end"?: (string) | undefined;
121010
+ /** The room the browser's vertical scrollbar takes at the inline end of the viewport, in pixels. Written on the `viewport` part while that scrollbar takes room, and absent while it draws over the content. */
121011
+ "--scroll-area-gutter-inline-end"?: (string) | undefined;
119291
121012
  /** How far along its axis the content is scrolled, from 0 at the start to 1 at the end. Written on each `scrollbar` part, so its thumb inherits it. Counted from the right on a right-to-left page. */
119292
121013
  "--scroll-area-scroll-fraction"?: (string) | undefined;
119293
121014
  /** The share of the track the thumb covers, from 0 to 1, which is how much of the content is in view. Written on each `scrollbar` part. */
119294
121015
  "--scroll-area-thumb-fraction"?: (string) | undefined;
119295
121016
  /** Color of the panel's edge. */
119296
121017
  "--select-border-color"?: (string) | undefined;
119297
- /** Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a width. */
121018
+ /** Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone. */
119298
121019
  "--select-border-width"?: (string) | undefined;
119299
121020
  /** Shadow under the panel. Defaults to `--helix-shadow-floating`, because the panel can sit over any content. */
119300
121021
  "--select-shadow"?: (string) | undefined;
@@ -119328,7 +121049,7 @@ export type CustomCssProperties = {
119328
121049
  "--skip-link-background-color"?: (string) | undefined;
119329
121050
  /** The border color of the link while it is shown. */
119330
121051
  "--skip-link-border-color"?: (string) | undefined;
119331
- /** The border width of the link while it is shown. Follows `--helix-border-floating`, which is `0`, so the link is set apart by its shadow unless a theme sets a border. */
121052
+ /** The border width of the link while it is shown. Follows `--helix-border-floating`, a hairline. Set it to `0` for the shadow alone. */
119332
121053
  "--skip-link-border-width"?: (string) | undefined;
119333
121054
  /** The text color of the link while it is shown. */
119334
121055
  "--skip-link-color"?: (string) | undefined;
@@ -119414,10 +121135,26 @@ export type CustomCssProperties = {
119414
121135
  "--sparkline-readout-font-size"?: (string) | undefined;
119415
121136
  /** Thickness of the line, overriding `weight`. */
119416
121137
  "--sparkline-width"?: (string) | undefined;
121138
+ /** How wide each bar of a `row` or a `diagonal` stands on the page, whatever the number of bars: the row is as long as its bars make it, centered in the plot, and the tallest bar stands as high as the plot has room for, and no taller than the row is long and a quarter again, so one bar stands as a block. `fits` says how many bars the plot holds. Unset, the row fills the plot's width. */
121139
+ "--spatial-bar-chart-bar-size"?: (string) | undefined;
119417
121140
  /** How tall the plot is. By default, three quarters of its width and 22em at most. */
119418
121141
  "--spatial-bar-chart-block-size"?: (string) | undefined;
119419
- /** How far a bar's face turns from the light, from 0 for its top. The component writes it on each face, and the stylesheet that shades the face reads it. */
119420
- "--spatial-bar-chart-shade"?: (string) | undefined;
121142
+ /** */
121143
+ "--spatial-bar-chart-shade -How far a bar's face turns from the light, from 0 for its top. The component writes it on each face, and the stylesheet that shades the face reads it."?: (string) | undefined;
121144
+ /** The color of a bar whose cell says `data-tone="accent"`. */
121145
+ "--spatial-bar-chart-tone-accent"?: (string) | undefined;
121146
+ /** The color of a bar whose cell says `data-tone="danger"`. */
121147
+ "--spatial-bar-chart-tone-danger"?: (string) | undefined;
121148
+ /** The color of a bar whose cell says `data-tone="info"`. */
121149
+ "--spatial-bar-chart-tone-info"?: (string) | undefined;
121150
+ /** The color of a bar whose cell says `data-tone="muted"`. */
121151
+ "--spatial-bar-chart-tone-muted"?: (string) | undefined;
121152
+ /** The color of a bar whose cell says `data-tone="primary"`. A tone with no property of its own falls back to the bar's series color, and the same holds for a name you define. */
121153
+ "--spatial-bar-chart-tone-primary"?: (string) | undefined;
121154
+ /** The color of a bar whose cell says `data-tone="success"`. */
121155
+ "--spatial-bar-chart-tone-success"?: (string) | undefined;
121156
+ /** The color of a bar whose cell says `data-tone="warning"`. */
121157
+ "--spatial-bar-chart-tone-warning"?: (string) | undefined;
119421
121158
  /** The largest a cell grows, along its edge. The strip is never wider than its box, and draws smaller cells to fit. */
119422
121159
  "--spatial-heatmap-cell-size"?: (string) | undefined;
119423
121160
  /** How much less light the left face is than the top, as a step of OKLCH lightness from 0 to 1. 0.07 by default. */
@@ -119658,6 +121395,8 @@ export type CustomCssProperties = {
119658
121395
  "--tabs-tab-hover-background-color"?: (string) | undefined;
119659
121396
  /** The label color under the pointer. */
119660
121397
  "--tabs-tab-hover-color"?: (string) | undefined;
121398
+ /** The widest a tab grows. A longer label ends in an ellipsis, as a tag's does. Unset, a tab is as wide as its label. */
121399
+ "--tabs-tab-max-inline-size"?: (string) | undefined;
119661
121400
  /** The space either side of the label. */
119662
121401
  "--tabs-tab-padding-inline"?: (string) | undefined;
119663
121402
  /** The corners of a tab, which the hover wash takes. */
@@ -119768,7 +121507,7 @@ export type CustomCssProperties = {
119768
121507
  "--time-input-background-color"?: (string) | undefined;
119769
121508
  /** Color of the panel's edge. */
119770
121509
  "--time-input-border-color"?: (string) | undefined;
119771
- /** Width of the panel's edge. Defaults to `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a width. */
121510
+ /** Width of the panel's edge. Defaults to `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone. */
119772
121511
  "--time-input-border-width"?: (string) | undefined;
119773
121512
  /** The fill behind the segment with focus, in `segmented`. It follows `--helix-color-primary-surface`. */
119774
121513
  "--time-input-segment-focus-background-color"?: (string) | undefined;
@@ -119828,7 +121567,7 @@ export type CustomCssProperties = {
119828
121567
  "--toast-background-color"?: (string) | undefined;
119829
121568
  /** Color of the panel's edge. */
119830
121569
  "--toast-border-color"?: (string) | undefined;
119831
- /** Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a border. */
121570
+ /** Width of the panel's edge. Follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone. */
119832
121571
  "--toast-border-width"?: (string) | undefined;
119833
121572
  /** Color of the message's text. */
119834
121573
  "--toast-color"?: (string) | undefined;
@@ -119930,7 +121669,7 @@ export type CustomCssProperties = {
119930
121669
  "--tour-spotlight-y"?: (string) | undefined;
119931
121670
  /** The size of the arrow's box, before it is rotated. */
119932
121671
  "--tour-arrow-size"?: (string) | undefined;
119933
- /** The width of the panel's border. It follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless a theme sets a border. */
121672
+ /** The width of the panel's border. It follows `--helix-border-floating`, a hairline, so the panel has an edge as well as its shadow over a dark page. Set it to `0` for the shadow alone. */
119934
121673
  "--tour-border-width"?: (string) | undefined;
119935
121674
  /** The widest the panel can grow. */
119936
121675
  "--tour-bubble-size"?: (string) | undefined;