@fusion.dev/helix 0.218.0 → 0.220.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 (104) 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/code-editor/root/code-editor-root.css.js +1 -1
  13. package/dist/code-editor/root/code-editor-root.d.ts +1 -0
  14. package/dist/code-editor/root/code-editor-root.js +1 -0
  15. package/dist/color-input/root/color-input-root.d.ts +1 -3
  16. package/dist/combobox/root/combobox-root.d.ts +1 -2
  17. package/dist/command/root/command-root.css.js +1 -1
  18. package/dist/command/root/command-root.d.ts +16 -1
  19. package/dist/command/root/command-root.js +16 -0
  20. package/dist/date-input/root/date-input-root.d.ts +1 -2
  21. package/dist/device-screen/root/device-screen-root.d.ts +1 -0
  22. package/dist/device-screen/root/device-screen-root.js +1 -0
  23. package/dist/dialog/root/dialog-root.css.js +1 -1
  24. package/dist/dialog/root/dialog-root.d.ts +14 -2
  25. package/dist/dialog/root/dialog-root.js +3 -0
  26. package/dist/drawer/root/drawer-root.css.js +1 -1
  27. package/dist/drawer/root/drawer-root.d.ts +1 -2
  28. package/dist/element-events.generated.js +4 -1
  29. package/dist/find/index.d.ts +1 -0
  30. package/dist/find/index.js +1 -0
  31. package/dist/find/root/find-root.css.d.ts +1 -0
  32. package/dist/find/root/find-root.css.js +2 -0
  33. package/dist/find/root/find-root.d.ts +38 -0
  34. package/dist/find/root/find-root.js +17 -0
  35. package/dist/graph/root/graph-root.d.ts +1 -0
  36. package/dist/graph/root/graph-root.js +1 -0
  37. package/dist/index.d.ts +1 -0
  38. package/dist/index.js +1 -0
  39. package/dist/kbd/root/kbd-root.css.js +1 -1
  40. package/dist/log/group/log-group.css.js +1 -1
  41. package/dist/log/line/log-line.css.js +1 -1
  42. package/dist/log/root/log-root.css.js +1 -1
  43. package/dist/log/root/log-root.d.ts +5 -1
  44. package/dist/map/root/map-root.css.js +1 -1
  45. package/dist/map/root/map-root.d.ts +1 -0
  46. package/dist/map/root/map-root.js +1 -0
  47. package/dist/megamenu/root/megamenu-root.css.js +1 -1
  48. package/dist/megamenu/root/megamenu-root.d.ts +2 -2
  49. package/dist/menu/item/menu-item.css.js +1 -1
  50. package/dist/menu/root/menu-root.css.js +1 -1
  51. package/dist/menu/root/menu-root.d.ts +19 -1
  52. package/dist/menu/root/menu-root.js +4 -0
  53. package/dist/menu/section/menu-section.css.js +1 -1
  54. package/dist/meter/index.d.ts +1 -0
  55. package/dist/meter/index.js +1 -0
  56. package/dist/meter/root/meter-root.css.js +1 -1
  57. package/dist/meter/segment/meter-segment.css.d.ts +1 -0
  58. package/dist/meter/segment/meter-segment.css.js +2 -0
  59. package/dist/meter/segment/meter-segment.d.ts +39 -0
  60. package/dist/meter/segment/meter-segment.js +11 -0
  61. package/dist/popover/root/popover-root.css.js +1 -1
  62. package/dist/popover/root/popover-root.d.ts +20 -2
  63. package/dist/popover/root/popover-root.js +3 -0
  64. package/dist/radio/root/radio-root.css.js +1 -1
  65. package/dist/scroll-area/root/scroll-area-root.css.js +1 -1
  66. package/dist/scroll-area/root/scroll-area-root.d.ts +14 -2
  67. package/dist/scroll-area/root/scroll-area-root.js +29 -0
  68. package/dist/select/root/select-root.d.ts +1 -2
  69. package/dist/shared/floating/entrance.css.js +1 -1
  70. package/dist/skip-link/root/skip-link-root.d.ts +1 -2
  71. package/dist/spatial-bar-chart/root/spatial-bar-chart-root.css.js +1 -1
  72. package/dist/spatial-bar-chart/root/spatial-bar-chart-root.d.ts +9 -1
  73. package/dist/strands/renderer.d.ts +2 -0
  74. package/dist/strands/renderer.js +1 -0
  75. package/dist/strands/root/strands-root.css.js +1 -1
  76. package/dist/strands/root/strands-root.d.ts +14 -0
  77. package/dist/strands/root/strands-root.js +5 -0
  78. package/dist/strands/shader.d.ts +7 -1
  79. package/dist/strands/shader.js +11 -3
  80. package/dist/switch/root/switch-root.css.js +1 -1
  81. package/dist/tabs/root/tabs-root.css.js +1 -1
  82. package/dist/tabs/root/tabs-root.d.ts +36 -0
  83. package/dist/tabs/root/tabs-root.js +7 -0
  84. package/dist/tabs/tab/tab.css.js +1 -1
  85. package/dist/tabs/tab/tab.d.ts +2 -0
  86. package/dist/terminal/root/terminal-root.css.js +1 -1
  87. package/dist/terminal/root/terminal-root.d.ts +2 -0
  88. package/dist/terminal/root/terminal-root.js +2 -0
  89. package/dist/time-input/root/time-input-root.d.ts +1 -2
  90. package/dist/toast/item/toast-item.d.ts +1 -2
  91. package/dist/tooltip/root/tooltip-root.css.js +1 -1
  92. package/dist/tour/root/tour-root.css.js +1 -1
  93. package/dist/tour/stop/tour-stop.d.ts +1 -2
  94. package/dist/tree/item/tree-item.css.js +1 -1
  95. package/dist/tree/root/tree-root.css.js +1 -1
  96. package/dist/tree/root/tree-root.d.ts +5 -1
  97. package/examples.json +1 -1
  98. package/lint.json +1 -1
  99. package/package.json +6 -6
  100. package/skills/helix/SKILL.md +2 -2
  101. package/types/jsx.d.ts +2624 -153
  102. package/types/svelte.d.ts +2 -0
  103. package/types/vue.d.ts +610 -26
  104. package/types/words.d.ts +93 -0
package/types/jsx.d.ts CHANGED
@@ -102,8 +102,10 @@ import type {
102
102
  HelixFilterMenu,
103
103
  HelixFilterOperator,
104
104
  HelixFilteredEvent,
105
+ HelixFind,
105
106
  HelixFlex,
106
107
  HelixFormatDate,
108
+ HelixFoundEvent,
107
109
  HelixGraph,
108
110
  HelixGraphFilterEvent,
109
111
  HelixGraphLayoutEvent,
@@ -158,6 +160,7 @@ import type {
158
160
  HelixMenuItem,
159
161
  HelixMenuSection,
160
162
  HelixMeter,
163
+ HelixMeterSegment,
161
164
  HelixMotionToggle,
162
165
  HelixMoveEvent,
163
166
  HelixNavigateEvent,
@@ -242,6 +245,7 @@ import type {
242
245
  HelixStatGroup,
243
246
  HelixStep,
244
247
  HelixSteps,
248
+ HelixStopEvent,
245
249
  HelixStrands,
246
250
  HelixStrandsFallbackEvent,
247
251
  HelixStrandsStop,
@@ -3499,6 +3503,19 @@ into one, counting the first and the last. Unset, it never folds. At least
3499
3503
  into one, counting the first and the last. Unset, it never folds. At least
3500
3504
  2, so the first crumb and the current page always show. */
3501
3505
  maxItems?: (HelixBreadcrumbs["maxItems"]) | undefined;
3506
+ /** The mark between one crumb and the next, for the whole trail. Unset is a
3507
+ chevron; `slash` is a slash, as a path or a repository and its branch is
3508
+ written.
3509
+
3510
+ **On the trail rather than on each crumb**, because the marks are one
3511
+ decision: a trail whose separators differ from crumb to crumb is a
3512
+ mistake, and a trail drawn from `items` has no crumb of yours to set it
3513
+ on. A crumb's own `separator` slot still replaces its mark, for the rare
3514
+ crumb that needs something else.
3515
+
3516
+ Optional and reflected, per the rule that a reflected property takes no
3517
+ default, so a stylesheet can select on it. */
3518
+ separator?: (HelixBreadcrumbs["separator"]) | undefined;
3502
3519
  /** The trail as data, drawn as crumbs before any you slot. The last item is the
3503
3520
  current page.
3504
3521
 
@@ -3540,6 +3557,19 @@ into one, counting the first and the last. Unset, it never folds. At least
3540
3557
  into one, counting the first and the last. Unset, it never folds. At least
3541
3558
  2, so the first crumb and the current page always show. */
3542
3559
  "prop:maxItems"?: (HelixBreadcrumbs["maxItems"]) | undefined;
3560
+ /** The mark between one crumb and the next, for the whole trail. Unset is a
3561
+ chevron; `slash` is a slash, as a path or a repository and its branch is
3562
+ written.
3563
+
3564
+ **On the trail rather than on each crumb**, because the marks are one
3565
+ decision: a trail whose separators differ from crumb to crumb is a
3566
+ mistake, and a trail drawn from `items` has no crumb of yours to set it
3567
+ on. A crumb's own `separator` slot still replaces its mark, for the rare
3568
+ crumb that needs something else.
3569
+
3570
+ Optional and reflected, per the rule that a reflected property takes no
3571
+ default, so a stylesheet can select on it. */
3572
+ "prop:separator"?: (HelixBreadcrumbs["separator"]) | undefined;
3543
3573
  /** The trail as data, drawn as crumbs before any you slot. The last item is the
3544
3574
  current page.
3545
3575
 
@@ -3798,6 +3828,36 @@ is the platform's `commandfor`. */
3798
3828
  commandfor?: (HelixButton["commandFor"]) | undefined;
3799
3829
  /** The id of the element the command is sent to. */
3800
3830
  commandFor?: (HelixButton["commandFor"]) | undefined;
3831
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
3832
+ can say why it is disabled.
3833
+
3834
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
3835
+ changes to save. While the button is disabled, it keeps focus and takes
3836
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
3837
+ a field of its form. The click does not reach your listeners, and a submit
3838
+ button submits nothing. The inner control carries `aria-disabled` in place
3839
+ of the native `disabled`, so a screen reader still says it is unavailable.
3840
+ The styled button keeps the disabled look.
3841
+
3842
+ Leave it unset on a button with no reason to give. A plain disabled button
3843
+ leaves the tab order, as a native one does, and a keyboard reader skips a
3844
+ stop that does nothing. Set `pending` for the wait after a press. */
3845
+ "focusable-when-disabled"?: (HelixButton["focusableWhenDisabled"]) | undefined;
3846
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
3847
+ can say why it is disabled.
3848
+
3849
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
3850
+ changes to save. While the button is disabled, it keeps focus and takes
3851
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
3852
+ a field of its form. The click does not reach your listeners, and a submit
3853
+ button submits nothing. The inner control carries `aria-disabled` in place
3854
+ of the native `disabled`, so a screen reader still says it is unavailable.
3855
+ The styled button keeps the disabled look.
3856
+
3857
+ Leave it unset on a button with no reason to give. A plain disabled button
3858
+ leaves the tab order, as a native one does, and a keyboard reader skips a
3859
+ stop that does nothing. Set `pending` for the wait after a press. */
3860
+ focusableWhenDisabled?: (HelixButton["focusableWhenDisabled"]) | undefined;
3801
3861
  /** Where this button's submission goes, overriding the form's own.
3802
3862
 
3803
3863
  **The five `form*` overrides ride on a native submit button that stands in
@@ -4026,6 +4086,36 @@ is the platform's `commandfor`. */
4026
4086
  "attr:commandfor"?: (HelixButton["commandFor"]) | undefined;
4027
4087
  /** The id of the element the command is sent to. */
4028
4088
  "prop:commandFor"?: (HelixButton["commandFor"]) | undefined;
4089
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
4090
+ can say why it is disabled.
4091
+
4092
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
4093
+ changes to save. While the button is disabled, it keeps focus and takes
4094
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
4095
+ a field of its form. The click does not reach your listeners, and a submit
4096
+ button submits nothing. The inner control carries `aria-disabled` in place
4097
+ of the native `disabled`, so a screen reader still says it is unavailable.
4098
+ The styled button keeps the disabled look.
4099
+
4100
+ Leave it unset on a button with no reason to give. A plain disabled button
4101
+ leaves the tab order, as a native one does, and a keyboard reader skips a
4102
+ stop that does nothing. Set `pending` for the wait after a press. */
4103
+ "bool:focusable-when-disabled"?: (HelixButton["focusableWhenDisabled"]) | undefined;
4104
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
4105
+ can say why it is disabled.
4106
+
4107
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
4108
+ changes to save. While the button is disabled, it keeps focus and takes
4109
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
4110
+ a field of its form. The click does not reach your listeners, and a submit
4111
+ button submits nothing. The inner control carries `aria-disabled` in place
4112
+ of the native `disabled`, so a screen reader still says it is unavailable.
4113
+ The styled button keeps the disabled look.
4114
+
4115
+ Leave it unset on a button with no reason to give. A plain disabled button
4116
+ leaves the tab order, as a native one does, and a keyboard reader skips a
4117
+ stop that does nothing. Set `pending` for the wait after a press. */
4118
+ "prop:focusableWhenDisabled"?: (HelixButton["focusableWhenDisabled"]) | undefined;
4029
4119
  /** Where this button's submission goes, overriding the form's own.
4030
4120
 
4031
4121
  **The five `form*` overrides ride on a native submit button that stands in
@@ -6820,11 +6910,27 @@ export type HelixChatComposerHelixListenElementEvent =
6820
6910
  /** `helix-send` event type */
6821
6911
  export type HelixChatComposerHelixSendElementEvent =
6822
6912
  HelixChatComposerElementEvent<HelixSendEvent>;
6913
+ /** `helix-stop` event type */
6914
+ export type HelixChatComposerHelixStopElementEvent =
6915
+ HelixChatComposerElementEvent<HelixStopEvent>;
6823
6916
  /** `helix-typing` event type */
6824
6917
  export type HelixChatComposerHelixTypingElementEvent =
6825
6918
  HelixChatComposerElementEvent<HelixTypingEvent>;
6826
6919
 
6827
6920
  export type HelixChatComposerProps = {
6921
+ /** Draws the composer's focus as a glow: a light that runs once around the
6922
+ edge as the composer takes focus, then a soft steady edge while it holds
6923
+ it, in place of the focus ring.
6924
+
6925
+ **On focus, and only then.** It says the composer is listening. A glow
6926
+ that ran while a reply was on its way would be a second indicator of what
6927
+ the conversation already shows, and one that ran all the time would be
6928
+ decoration that moves. With reduced motion asked for, the edge lights
6929
+ without the sweep.
6930
+
6931
+ The steady edge is the focus indicator, so the ring is not drawn as well.
6932
+ Its color is `--chat-composer-glow-color`, the primary color unless set. */
6933
+ glow?: (HelixChatComposer["glow"]) | undefined;
6828
6934
  /** What a screen reader hears as listening starts. */
6829
6935
  "listening-label"?: (HelixChatComposer["listeningLabel"]) | undefined;
6830
6936
  /** What a screen reader hears as listening starts. */
@@ -6846,6 +6952,18 @@ microphone is let go as listening stops. An input of type `password`,
6846
6952
  "voice-stop-label"?: (HelixChatComposer["voiceStopLabel"]) | undefined;
6847
6953
  /** The dictation button's name while it listens. */
6848
6954
  voiceStopLabel?: (HelixChatComposer["voiceStopLabel"]) | undefined;
6955
+ /** Whether the draft holds something besides its text, such as an attached
6956
+ file. The draft then counts as one though the field is empty, so the
6957
+ send button shows in place of the `idle` slot. */
6958
+ attached?: (HelixChatComposer["attached"]) | undefined;
6959
+ /** Whether a reply is on its way. While set, the send button is a stop
6960
+ button that sends `helix-stop`, and the draft does not send.
6961
+
6962
+ **The same button rather than one beside it**, because sending and
6963
+ stopping are never both possible: while a reply is on its way there is
6964
+ nothing to send to, and the place the reader's eye goes to act is the
6965
+ place that can act. The field stays open for the next turn. */
6966
+ busy?: (HelixChatComposer["busy"]) | undefined;
6849
6967
  /** A message about the draft, shown under the field. While set, the composer
6850
6968
  is invalid, does not send, and does not submit, as a field's `feedback`
6851
6969
  does, and the message is announced as it appears. */
@@ -6864,6 +6982,14 @@ the field, as on a `<textarea>`. */
6864
6982
  minLength?: (HelixChatComposer["minLength"]) | undefined;
6865
6983
  /** Placeholder text shown in an empty field. */
6866
6984
  placeholder?: (HelixChatComposer["placeholder"]) | undefined;
6985
+ /** Whether Enter sends while `busy`, for a page that queues the turn or
6986
+ hands it to the reply under way.
6987
+
6988
+ Off by default, because a page that does neither would drop the turn: it
6989
+ has nowhere to put a message while a reply is coming. The button stays
6990
+ the stop button either way, since stopping is still the one thing it
6991
+ should do while a reply is on its way. */
6992
+ queue?: (HelixChatComposer["queue"]) | undefined;
6867
6993
  /** Whether the form needs a draft to submit. An empty draft never sends,
6868
6994
  required or not. */
6869
6995
  required?: (HelixChatComposer["required"]) | undefined;
@@ -6871,10 +6997,34 @@ required or not. */
6871
6997
 
6872
6998
  It grows from there. */
6873
6999
  rows?: (HelixChatComposer["rows"]) | undefined;
7000
+ /** Whether the draft waits to be sent, such as while an attachment is still
7001
+ read. The send button is unavailable and Enter does not send, while the
7002
+ field stays open. The stop button shown while `busy` still stops. */
7003
+ "send-disabled"?: (HelixChatComposer["sendDisabled"]) | undefined;
7004
+ /** Whether the draft waits to be sent, such as while an attachment is still
7005
+ read. The send button is unavailable and Enter does not send, while the
7006
+ field stays open. The stop button shown while `busy` still stops. */
7007
+ sendDisabled?: (HelixChatComposer["sendDisabled"]) | undefined;
6874
7008
  /** Label for the send button. */
6875
7009
  "send-label"?: (HelixChatComposer["sendLabel"]) | undefined;
6876
7010
  /** Label for the send button. */
6877
7011
  sendLabel?: (HelixChatComposer["sendLabel"]) | undefined;
7012
+ /** Why the draft waits, such as "Reading photo.jpg", shown in a tooltip on
7013
+ the send button while `send-disabled` is set. The button then stays in
7014
+ the tab order and takes the pointer, with `aria-disabled` in place of
7015
+ `disabled`, so the reason can be reached by keyboard and by pointer, as
7016
+ Button's `focusable-when-disabled` does. A press still sends nothing. */
7017
+ "send-reason"?: (HelixChatComposer["sendReason"]) | undefined;
7018
+ /** Why the draft waits, such as "Reading photo.jpg", shown in a tooltip on
7019
+ the send button while `send-disabled` is set. The button then stays in
7020
+ the tab order and takes the pointer, with `aria-disabled` in place of
7021
+ `disabled`, so the reason can be reached by keyboard and by pointer, as
7022
+ Button's `focusable-when-disabled` does. A press still sends nothing. */
7023
+ sendReason?: (HelixChatComposer["sendReason"]) | undefined;
7024
+ /** Label for the stop button shown while `busy`. */
7025
+ "stop-label"?: (HelixChatComposer["stopLabel"]) | undefined;
7026
+ /** Label for the stop button shown while `busy`. */
7027
+ stopLabel?: (HelixChatComposer["stopLabel"]) | undefined;
6878
7028
  /** What sends the turn: `enter` for the Enter key, or `button` for the send
6879
7029
  button only.
6880
7030
 
@@ -6929,6 +7079,23 @@ Here rather than on each control. */
6929
7079
  /** The engine this field listens through, in place of the one
6930
7080
  `registerSpeechEngine` gave the page, or the browser's own. */
6931
7081
  speechEngine?: (HelixChatComposer["speechEngine"]) | undefined;
7082
+ /** Examples the empty field shows in turn, in place of `placeholder`, such
7083
+ as tasks a reader might ask for. Each shows for 6.5 seconds, and a longer
7084
+ one shows longer, up to 10 seconds.
7085
+
7086
+ **Each is the field's placeholder in its turn**, so a screen reader that
7087
+ reaches the field hears the one showing. The swap runs through
7088
+ `:state(example-leaving)`, as one example leaves, and
7089
+ `:state(example-entering)`, as the next arrives.
7090
+
7091
+ **They move only while nobody is about to write, and while the reader
7092
+ can see them.** An empty field without focus moves on. Focus or text
7093
+ holds the example showing, and an example already leaving finishes its
7094
+ turn. A composer scrolled out of view holds its example, and the example
7095
+ gets its full time again when the composer comes back. Where the reader
7096
+ asked for less motion, or the page paused its motion, the first example
7097
+ stays. */
7098
+ placeholders?: (HelixChatComposer["placeholders"]) | undefined;
6932
7099
 
6933
7100
  /** The dictation button was pressed. Cancelable: cancel it to keep the composer from listening. */
6934
7101
  "onhelix-before-listen"?: ((
@@ -6938,6 +7105,8 @@ Here rather than on each control. */
6938
7105
  "onhelix-listen"?: ((e: HelixChatComposerHelixListenElementEvent) => void) | undefined;
6939
7106
  /** Fired when the user sends their turn, and cancelable. */
6940
7107
  "onhelix-send"?: ((e: HelixChatComposerHelixSendElementEvent) => void) | undefined;
7108
+ /** Fired when the user presses the stop button, shown in place of the send button while `busy` is set. */
7109
+ "onhelix-stop"?: ((e: HelixChatComposerHelixStopElementEvent) => void) | undefined;
6941
7110
  /** The user started or stopped writing, with `typing` saying which, as the composer's `typing` does. */
6942
7111
  "onhelix-typing"?: ((e: HelixChatComposerHelixTypingElementEvent) => void) | undefined;
6943
7112
  /** 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 +7114,19 @@ Here rather than on each control. */
6945
7114
  };
6946
7115
 
6947
7116
  export type HelixChatComposerSolidJsProps = {
7117
+ /** Draws the composer's focus as a glow: a light that runs once around the
7118
+ edge as the composer takes focus, then a soft steady edge while it holds
7119
+ it, in place of the focus ring.
7120
+
7121
+ **On focus, and only then.** It says the composer is listening. A glow
7122
+ that ran while a reply was on its way would be a second indicator of what
7123
+ the conversation already shows, and one that ran all the time would be
7124
+ decoration that moves. With reduced motion asked for, the edge lights
7125
+ without the sweep.
7126
+
7127
+ The steady edge is the focus indicator, so the ring is not drawn as well.
7128
+ Its color is `--chat-composer-glow-color`, the primary color unless set. */
7129
+ "prop:glow"?: (HelixChatComposer["glow"]) | undefined;
6948
7130
  /** What a screen reader hears as listening starts. */
6949
7131
  "attr:listening-label"?: (HelixChatComposer["listeningLabel"]) | undefined;
6950
7132
  /** What a screen reader hears as listening starts. */
@@ -6966,6 +7148,18 @@ microphone is let go as listening stops. An input of type `password`,
6966
7148
  "attr:voice-stop-label"?: (HelixChatComposer["voiceStopLabel"]) | undefined;
6967
7149
  /** The dictation button's name while it listens. */
6968
7150
  "prop:voiceStopLabel"?: (HelixChatComposer["voiceStopLabel"]) | undefined;
7151
+ /** Whether the draft holds something besides its text, such as an attached
7152
+ file. The draft then counts as one though the field is empty, so the
7153
+ send button shows in place of the `idle` slot. */
7154
+ "prop:attached"?: (HelixChatComposer["attached"]) | undefined;
7155
+ /** Whether a reply is on its way. While set, the send button is a stop
7156
+ button that sends `helix-stop`, and the draft does not send.
7157
+
7158
+ **The same button rather than one beside it**, because sending and
7159
+ stopping are never both possible: while a reply is on its way there is
7160
+ nothing to send to, and the place the reader's eye goes to act is the
7161
+ place that can act. The field stays open for the next turn. */
7162
+ "prop:busy"?: (HelixChatComposer["busy"]) | undefined;
6969
7163
  /** A message about the draft, shown under the field. While set, the composer
6970
7164
  is invalid, does not send, and does not submit, as a field's `feedback`
6971
7165
  does, and the message is announced as it appears. */
@@ -6984,6 +7178,14 @@ the field, as on a `<textarea>`. */
6984
7178
  "prop:minLength"?: (HelixChatComposer["minLength"]) | undefined;
6985
7179
  /** Placeholder text shown in an empty field. */
6986
7180
  "prop:placeholder"?: (HelixChatComposer["placeholder"]) | undefined;
7181
+ /** Whether Enter sends while `busy`, for a page that queues the turn or
7182
+ hands it to the reply under way.
7183
+
7184
+ Off by default, because a page that does neither would drop the turn: it
7185
+ has nowhere to put a message while a reply is coming. The button stays
7186
+ the stop button either way, since stopping is still the one thing it
7187
+ should do while a reply is on its way. */
7188
+ "prop:queue"?: (HelixChatComposer["queue"]) | undefined;
6987
7189
  /** Whether the form needs a draft to submit. An empty draft never sends,
6988
7190
  required or not. */
6989
7191
  "prop:required"?: (HelixChatComposer["required"]) | undefined;
@@ -6991,10 +7193,34 @@ required or not. */
6991
7193
 
6992
7194
  It grows from there. */
6993
7195
  "prop:rows"?: (HelixChatComposer["rows"]) | undefined;
7196
+ /** Whether the draft waits to be sent, such as while an attachment is still
7197
+ read. The send button is unavailable and Enter does not send, while the
7198
+ field stays open. The stop button shown while `busy` still stops. */
7199
+ "bool:send-disabled"?: (HelixChatComposer["sendDisabled"]) | undefined;
7200
+ /** Whether the draft waits to be sent, such as while an attachment is still
7201
+ read. The send button is unavailable and Enter does not send, while the
7202
+ field stays open. The stop button shown while `busy` still stops. */
7203
+ "prop:sendDisabled"?: (HelixChatComposer["sendDisabled"]) | undefined;
6994
7204
  /** Label for the send button. */
6995
7205
  "attr:send-label"?: (HelixChatComposer["sendLabel"]) | undefined;
6996
7206
  /** Label for the send button. */
6997
7207
  "prop:sendLabel"?: (HelixChatComposer["sendLabel"]) | undefined;
7208
+ /** Why the draft waits, such as "Reading photo.jpg", shown in a tooltip on
7209
+ the send button while `send-disabled` is set. The button then stays in
7210
+ the tab order and takes the pointer, with `aria-disabled` in place of
7211
+ `disabled`, so the reason can be reached by keyboard and by pointer, as
7212
+ Button's `focusable-when-disabled` does. A press still sends nothing. */
7213
+ "attr:send-reason"?: (HelixChatComposer["sendReason"]) | undefined;
7214
+ /** Why the draft waits, such as "Reading photo.jpg", shown in a tooltip on
7215
+ the send button while `send-disabled` is set. The button then stays in
7216
+ the tab order and takes the pointer, with `aria-disabled` in place of
7217
+ `disabled`, so the reason can be reached by keyboard and by pointer, as
7218
+ Button's `focusable-when-disabled` does. A press still sends nothing. */
7219
+ "prop:sendReason"?: (HelixChatComposer["sendReason"]) | undefined;
7220
+ /** Label for the stop button shown while `busy`. */
7221
+ "attr:stop-label"?: (HelixChatComposer["stopLabel"]) | undefined;
7222
+ /** Label for the stop button shown while `busy`. */
7223
+ "prop:stopLabel"?: (HelixChatComposer["stopLabel"]) | undefined;
6998
7224
  /** What sends the turn: `enter` for the Enter key, or `button` for the send
6999
7225
  button only.
7000
7226
 
@@ -7049,6 +7275,23 @@ Here rather than on each control. */
7049
7275
  /** The engine this field listens through, in place of the one
7050
7276
  `registerSpeechEngine` gave the page, or the browser's own. */
7051
7277
  "prop:speechEngine"?: (HelixChatComposer["speechEngine"]) | undefined;
7278
+ /** Examples the empty field shows in turn, in place of `placeholder`, such
7279
+ as tasks a reader might ask for. Each shows for 6.5 seconds, and a longer
7280
+ one shows longer, up to 10 seconds.
7281
+
7282
+ **Each is the field's placeholder in its turn**, so a screen reader that
7283
+ reaches the field hears the one showing. The swap runs through
7284
+ `:state(example-leaving)`, as one example leaves, and
7285
+ `:state(example-entering)`, as the next arrives.
7286
+
7287
+ **They move only while nobody is about to write, and while the reader
7288
+ can see them.** An empty field without focus moves on. Focus or text
7289
+ holds the example showing, and an example already leaving finishes its
7290
+ turn. A composer scrolled out of view holds its example, and the example
7291
+ gets its full time again when the composer comes back. Where the reader
7292
+ asked for less motion, or the page paused its motion, the first example
7293
+ stays. */
7294
+ "prop:placeholders"?: (HelixChatComposer["placeholders"]) | undefined;
7052
7295
  /** The dictation button was pressed. Cancelable: cancel it to keep the composer from listening. */
7053
7296
  "on:helix-before-listen"?: ((
7054
7297
  e: HelixChatComposerHelixBeforeListenElementEvent,
@@ -7057,6 +7300,8 @@ Here rather than on each control. */
7057
7300
  "on:helix-listen"?: ((e: HelixChatComposerHelixListenElementEvent) => void) | undefined;
7058
7301
  /** Fired when the user sends their turn, and cancelable. */
7059
7302
  "on:helix-send"?: ((e: HelixChatComposerHelixSendElementEvent) => void) | undefined;
7303
+ /** Fired when the user presses the stop button, shown in place of the send button while `busy` is set. */
7304
+ "on:helix-stop"?: ((e: HelixChatComposerHelixStopElementEvent) => void) | undefined;
7060
7305
  /** The user started or stopped writing, with `typing` saying which, as the composer's `typing` does. */
7061
7306
  "on:helix-typing"?: ((e: HelixChatComposerHelixTypingElementEvent) => void) | undefined;
7062
7307
  /** 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. */
@@ -8652,6 +8897,9 @@ export type HelixCodeEditorElementEvent<E = Event> = TypedEvent<
8652
8897
  /** `helix-before-change` event type */
8653
8898
  export type HelixCodeEditorHelixBeforeChangeElementEvent =
8654
8899
  HelixCodeEditorElementEvent<HelixBeforeChangeEvent>;
8900
+ /** `helix-found` event type */
8901
+ export type HelixCodeEditorHelixFoundElementEvent =
8902
+ HelixCodeEditorElementEvent<HelixFoundEvent>;
8655
8903
 
8656
8904
  export type HelixCodeEditorProps = {
8657
8905
  /** Covers the container instead of taking a height of its own, for an
@@ -8855,6 +9103,8 @@ Here rather than on each control. */
8855
9103
  "onhelix-before-change"?: ((
8856
9104
  e: HelixCodeEditorHelixBeforeChangeElementEvent,
8857
9105
  ) => void) | undefined;
9106
+ /** The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none. */
9107
+ "onhelix-found"?: ((e: HelixCodeEditorHelixFoundElementEvent) => void) | undefined;
8858
9108
  /** Fired after the text changes. */
8859
9109
  oninput?: ((e: HelixCodeEditorElementEvent) => void) | undefined;
8860
9110
  };
@@ -9060,6 +9310,8 @@ Here rather than on each control. */
9060
9310
  "on:helix-before-change"?: ((
9061
9311
  e: HelixCodeEditorHelixBeforeChangeElementEvent,
9062
9312
  ) => void) | undefined;
9313
+ /** The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none. */
9314
+ "on:helix-found"?: ((e: HelixCodeEditorHelixFoundElementEvent) => void) | undefined;
9063
9315
  /** Fired after the text changes. */
9064
9316
  "on:input"?: ((e: HelixCodeEditorElementEvent) => void) | undefined;
9065
9317
 
@@ -11626,6 +11878,17 @@ export type HelixCommandHelixSelectElementEvent =
11626
11878
  HelixCommandElementEvent<HelixSelectEvent>;
11627
11879
 
11628
11880
  export type HelixCommandProps = {
11881
+ /** The panel's surface: `frosted` or `glass`, as on `Dialog`, which the
11882
+ palette opens in and hands the value to.
11883
+
11884
+ Absent is the opaque overlay surface. `glass` is the page's translucent
11885
+ ground over the theme's blur, and `frosted` the same pair turned up, so a
11886
+ page whose panels are frosted has a palette that matches. Its strength is
11887
+ the theme's, as on `Popover`, `Menu` and `Drawer`.
11888
+
11889
+ **No `transparent`, deliberately.** A palette over arbitrary page content
11890
+ is only readable because it has a ground. */
11891
+ material?: (HelixCommand["material"]) | undefined;
11629
11892
  /** Whether the element starts open. Ignored once `open` is written. */
11630
11893
  "default-open"?: (HelixCommand["defaultOpen"]) | undefined;
11631
11894
  /** Whether the element starts open. Ignored once `open` is written. */
@@ -11798,6 +12061,17 @@ write as a child. */
11798
12061
  };
11799
12062
 
11800
12063
  export type HelixCommandSolidJsProps = {
12064
+ /** The panel's surface: `frosted` or `glass`, as on `Dialog`, which the
12065
+ palette opens in and hands the value to.
12066
+
12067
+ Absent is the opaque overlay surface. `glass` is the page's translucent
12068
+ ground over the theme's blur, and `frosted` the same pair turned up, so a
12069
+ page whose panels are frosted has a palette that matches. Its strength is
12070
+ the theme's, as on `Popover`, `Menu` and `Drawer`.
12071
+
12072
+ **No `transparent`, deliberately.** A palette over arbitrary page content
12073
+ is only readable because it has a ground. */
12074
+ "prop:material"?: (HelixCommand["material"]) | undefined;
11801
12075
  /** Whether the element starts open. Ignored once `open` is written. */
11802
12076
  "bool:default-open"?: (HelixCommand["defaultOpen"]) | undefined;
11803
12077
  /** Whether the element starts open. Ignored once `open` is written. */
@@ -12072,6 +12346,36 @@ whatever its `type`. Declared here so its own page says what it holds. */
12072
12346
  value?: (HelixCopyButton["value"]) | undefined;
12073
12347
  /** */
12074
12348
  "aria-label"?: (string) | undefined;
12349
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
12350
+ can say why it is disabled.
12351
+
12352
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
12353
+ changes to save. While the button is disabled, it keeps focus and takes
12354
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
12355
+ a field of its form. The click does not reach your listeners, and a submit
12356
+ button submits nothing. The inner control carries `aria-disabled` in place
12357
+ of the native `disabled`, so a screen reader still says it is unavailable.
12358
+ The styled button keeps the disabled look.
12359
+
12360
+ Leave it unset on a button with no reason to give. A plain disabled button
12361
+ leaves the tab order, as a native one does, and a keyboard reader skips a
12362
+ stop that does nothing. Set `pending` for the wait after a press. */
12363
+ "focusable-when-disabled"?: (HelixCopyButton["focusableWhenDisabled"]) | undefined;
12364
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
12365
+ can say why it is disabled.
12366
+
12367
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
12368
+ changes to save. While the button is disabled, it keeps focus and takes
12369
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
12370
+ a field of its form. The click does not reach your listeners, and a submit
12371
+ button submits nothing. The inner control carries `aria-disabled` in place
12372
+ of the native `disabled`, so a screen reader still says it is unavailable.
12373
+ The styled button keeps the disabled look.
12374
+
12375
+ Leave it unset on a button with no reason to give. A plain disabled button
12376
+ leaves the tab order, as a native one does, and a keyboard reader skips a
12377
+ stop that does nothing. Set `pending` for the wait after a press. */
12378
+ focusableWhenDisabled?: (HelixCopyButton["focusableWhenDisabled"]) | undefined;
12075
12379
  /** Whether the action the button started is still running.
12076
12380
 
12077
12381
  A pending button keeps focus and stays in the tab order, and refuses every
@@ -12226,6 +12530,36 @@ whatever its `type`. Declared here so its own page says what it holds. */
12226
12530
  "prop:value"?: (HelixCopyButton["value"]) | undefined;
12227
12531
  /** */
12228
12532
  "attr:aria-label"?: (string) | undefined;
12533
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
12534
+ can say why it is disabled.
12535
+
12536
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
12537
+ changes to save. While the button is disabled, it keeps focus and takes
12538
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
12539
+ a field of its form. The click does not reach your listeners, and a submit
12540
+ button submits nothing. The inner control carries `aria-disabled` in place
12541
+ of the native `disabled`, so a screen reader still says it is unavailable.
12542
+ The styled button keeps the disabled look.
12543
+
12544
+ Leave it unset on a button with no reason to give. A plain disabled button
12545
+ leaves the tab order, as a native one does, and a keyboard reader skips a
12546
+ stop that does nothing. Set `pending` for the wait after a press. */
12547
+ "bool:focusable-when-disabled"?: (HelixCopyButton["focusableWhenDisabled"]) | undefined;
12548
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
12549
+ can say why it is disabled.
12550
+
12551
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
12552
+ changes to save. While the button is disabled, it keeps focus and takes
12553
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
12554
+ a field of its form. The click does not reach your listeners, and a submit
12555
+ button submits nothing. The inner control carries `aria-disabled` in place
12556
+ of the native `disabled`, so a screen reader still says it is unavailable.
12557
+ The styled button keeps the disabled look.
12558
+
12559
+ Leave it unset on a button with no reason to give. A plain disabled button
12560
+ leaves the tab order, as a native one does, and a keyboard reader skips a
12561
+ stop that does nothing. Set `pending` for the wait after a press. */
12562
+ "prop:focusableWhenDisabled"?: (HelixCopyButton["focusableWhenDisabled"]) | undefined;
12229
12563
  /** Whether the action the button started is still running.
12230
12564
 
12231
12565
  A pending button keeps focus and stays in the tab order, and refuses every
@@ -15539,6 +15873,16 @@ export type HelixDialogHelixBeforeOpenElementEvent =
15539
15873
  HelixDialogElementEvent<HelixBeforeOpenEvent>;
15540
15874
 
15541
15875
  export type HelixDialogProps = {
15876
+ /** The panel's surface: `frosted` or `glass`.
15877
+
15878
+ Absent is the opaque overlay surface. `glass` is the page's translucent
15879
+ ground over the theme's blur, and `frosted` the same pair turned up, as
15880
+ on `Popover`, `Menu`, `Drawer` and `Tooltip`, so a page whose panels are
15881
+ frosted has dialogs that match.
15882
+
15883
+ **No `transparent`, deliberately.** A dialog over arbitrary page content
15884
+ is only readable because it has a ground. */
15885
+ material?: (HelixDialog["material"]) | undefined;
15542
15886
  /** How wide the panel is allowed to be.
15543
15887
 
15544
15888
  Steps rather than a number, because a dialog's width is a fact about what is
@@ -15713,6 +16057,16 @@ survives to it and a consumer reading one back gets what they wrote. */
15713
16057
  };
15714
16058
 
15715
16059
  export type HelixDialogSolidJsProps = {
16060
+ /** The panel's surface: `frosted` or `glass`.
16061
+
16062
+ Absent is the opaque overlay surface. `glass` is the page's translucent
16063
+ ground over the theme's blur, and `frosted` the same pair turned up, as
16064
+ on `Popover`, `Menu`, `Drawer` and `Tooltip`, so a page whose panels are
16065
+ frosted has dialogs that match.
16066
+
16067
+ **No `transparent`, deliberately.** A dialog over arbitrary page content
16068
+ is only readable because it has a ground. */
16069
+ "prop:material"?: (HelixDialog["material"]) | undefined;
15716
16070
  /** How wide the panel is allowed to be.
15717
16071
 
15718
16072
  Steps rather than a number, because a dialog's width is a fact about what is
@@ -18302,6 +18656,256 @@ write a function in markup. See the class description. */
18302
18656
  textContent?: (string | number) | undefined;
18303
18657
  };
18304
18658
 
18659
+ /** `HelixFind` component event */
18660
+ export type HelixFindElementEvent<E = Event> = TypedEvent<HelixFind, E>;
18661
+ /** `toggle` event type */
18662
+ export type HelixFindToggleElementEvent = HelixFindElementEvent<ToggleEvent>;
18663
+ /** `helix-before-close` event type */
18664
+ export type HelixFindHelixBeforeCloseElementEvent =
18665
+ HelixFindElementEvent<HelixBeforeCloseEvent>;
18666
+ /** `helix-before-open` event type */
18667
+ export type HelixFindHelixBeforeOpenElementEvent =
18668
+ HelixFindElementEvent<HelixBeforeOpenEvent>;
18669
+ /** `helix-found` event type */
18670
+ export type HelixFindHelixFoundElementEvent =
18671
+ HelixFindElementEvent<HelixFoundEvent>;
18672
+
18673
+ export type HelixFindProps = {
18674
+ /** Whether the element starts open. Ignored once `open` is written. */
18675
+ "default-open"?: (HelixFind["defaultOpen"]) | undefined;
18676
+ /** Whether the element starts open. Ignored once `open` is written. */
18677
+ defaultOpen?: (HelixFind["defaultOpen"]) | undefined;
18678
+ /** Whether the element is open.
18679
+
18680
+ One property, not two, so `dialog.open` answers the question anyone
18681
+ asking it meant. Writing always applies; `<helix-dialog open>` is the
18682
+ same statement in markup.
18683
+
18684
+ **Not reflected, and that is required rather than tidy.** Reflection
18685
+ writes the resolved state back as an attribute, so an element that opened
18686
+ itself would put `open` on its own host: cloned, serialized for
18687
+ hydration, or diffed by a framework, it comes back holding whatever the
18688
+ last reader did rather than what the author wrote. `:state(open)` carries
18689
+ the resolved state for stylesheets, which is what the mirror is for. */
18690
+ open?: (HelixFind["open"]) | undefined;
18691
+ /** The close button's label. */
18692
+ "close-label"?: (HelixFind["closeLabel"]) | undefined;
18693
+ /** The close button's label. */
18694
+ closeLabel?: (HelixFind["closeLabel"]) | undefined;
18695
+ /** The name of the bar's toolbar, read by screen readers. */
18696
+ "controls-label"?: (HelixFind["controlsLabel"]) | undefined;
18697
+ /** The name of the bar's toolbar, read by screen readers. */
18698
+ controlsLabel?: (HelixFind["controlsLabel"]) | undefined;
18699
+ /** The id of the element whose text Find searches, in the same tree as Find.
18700
+ With a finder attached, it names only where the find key opens the bar. */
18701
+ for?: (HelixFind["for"]) | undefined;
18702
+ /** What the count says when the regular expression cannot be read. */
18703
+ "invalid-label"?: (HelixFind["invalidLabel"]) | undefined;
18704
+ /** What the count says when the regular expression cannot be read. */
18705
+ invalidLabel?: (HelixFind["invalidLabel"]) | undefined;
18706
+ /** The field's name and placeholder, and the name of the bar. */
18707
+ label?: (HelixFind["label"]) | undefined;
18708
+ /** Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar. */
18709
+ "match-case"?: (HelixFind["matchCase"]) | undefined;
18710
+ /** Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar. */
18711
+ matchCase?: (HelixFind["matchCase"]) | undefined;
18712
+ /** The match case button's label. */
18713
+ "match-case-label"?: (HelixFind["matchCaseLabel"]) | undefined;
18714
+ /** The match case button's label. */
18715
+ matchCaseLabel?: (HelixFind["matchCaseLabel"]) | undefined;
18716
+ /** What the count says of the matches. `{index}` is the current match,
18717
+ counting from 1, and `{count}` how many there are. */
18718
+ "matches-label"?: (HelixFind["matchesLabel"]) | undefined;
18719
+ /** What the count says of the matches. `{index}` is the current match,
18720
+ counting from 1, and `{count}` how many there are. */
18721
+ matchesLabel?: (HelixFind["matchesLabel"]) | undefined;
18722
+ /** The next match button's label. */
18723
+ "next-label"?: (HelixFind["nextLabel"]) | undefined;
18724
+ /** The next match button's label. */
18725
+ nextLabel?: (HelixFind["nextLabel"]) | undefined;
18726
+ /** Which options the bar draws, as a list of `match-case`, `whole-word`, and
18727
+ `regex`, or `none`. They are always drawn in that order. */
18728
+ options?: (HelixFind["options"]) | undefined;
18729
+ /** The previous match button's label. */
18730
+ "previous-label"?: (HelixFind["previousLabel"]) | undefined;
18731
+ /** The previous match button's label. */
18732
+ previousLabel?: (HelixFind["previousLabel"]) | undefined;
18733
+ /** What the field holds: what the reader typed, or what you set. */
18734
+ query?: (HelixFind["query"]) | undefined;
18735
+ /** Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling. */
18736
+ readonly?: (HelixFind["readOnly"]) | undefined;
18737
+ /** Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling. */
18738
+ readOnly?: (HelixFind["readOnly"]) | undefined;
18739
+ /** Whether the field reads as a regular expression, in JavaScript's syntax. The reader turns it on and off from the bar. */
18740
+ regex?: (HelixFind["regex"]) | undefined;
18741
+ /** The regular expression button's label. */
18742
+ "regex-label"?: (HelixFind["regexLabel"]) | undefined;
18743
+ /** The regular expression button's label. */
18744
+ regexLabel?: (HelixFind["regexLabel"]) | undefined;
18745
+ /** The Replace all button's words. */
18746
+ "replace-all-label"?: (HelixFind["replaceAllLabel"]) | undefined;
18747
+ /** The Replace all button's words. */
18748
+ replaceAllLabel?: (HelixFind["replaceAllLabel"]) | undefined;
18749
+ /** The replace field's name and placeholder. */
18750
+ "replace-field-label"?: (HelixFind["replaceFieldLabel"]) | undefined;
18751
+ /** The replace field's name and placeholder. */
18752
+ replaceFieldLabel?: (HelixFind["replaceFieldLabel"]) | undefined;
18753
+ /** The Replace button's words. */
18754
+ "replace-label"?: (HelixFind["replaceLabel"]) | undefined;
18755
+ /** The Replace button's words. */
18756
+ replaceLabel?: (HelixFind["replaceLabel"]) | undefined;
18757
+ /** What the replace field holds, which Replace puts in place of a match. */
18758
+ replacement?: (HelixFind["replacement"]) | undefined;
18759
+ /** The label of the button that shows the replace row. */
18760
+ "replace-toggle-label"?: (HelixFind["replaceToggleLabel"]) | undefined;
18761
+ /** The label of the button that shows the replace row. */
18762
+ replaceToggleLabel?: (HelixFind["replaceToggleLabel"]) | undefined;
18763
+ /** The key that opens the bar, as a chord such as `mod+f`, where `mod` is
18764
+ Command on an Apple keyboard and Control elsewhere. Empty turns the key
18765
+ off, as for a bar the page opens itself. */
18766
+ shortcut?: (HelixFind["shortcut"]) | undefined;
18767
+ /** Elements inside the content whose text is not searched, as a selector,
18768
+ such as line numbers or the buttons beside each message. */
18769
+ skip?: (HelixFind["skip"]) | undefined;
18770
+ /** Whether only whole words match. The reader turns it on and off from the bar. */
18771
+ "whole-word"?: (HelixFind["wholeWord"]) | undefined;
18772
+ /** Whether only whole words match. The reader turns it on and off from the bar. */
18773
+ wholeWord?: (HelixFind["wholeWord"]) | undefined;
18774
+ /** The whole word button's label. */
18775
+ "whole-word-label"?: (HelixFind["wholeWordLabel"]) | undefined;
18776
+ /** The whole word button's label. */
18777
+ wholeWordLabel?: (HelixFind["wholeWordLabel"]) | undefined;
18778
+
18779
+ /** Sent when the bar opens or closes, with `newState` and `oldState`. */
18780
+ ontoggle?: ((e: HelixFindToggleElementEvent) => void) | undefined;
18781
+ /** Fired before the bar closes, and cancelable. */
18782
+ "onhelix-before-close"?: ((e: HelixFindHelixBeforeCloseElementEvent) => void) | undefined;
18783
+ /** Fired before the bar opens, and cancelable. Canceling it keeps the bar closed. */
18784
+ "onhelix-before-open"?: ((e: HelixFindHelixBeforeOpenElementEvent) => void) | undefined;
18785
+ /** Sent after each search and each move among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none. */
18786
+ "onhelix-found"?: ((e: HelixFindHelixFoundElementEvent) => void) | undefined;
18787
+ };
18788
+
18789
+ export type HelixFindSolidJsProps = {
18790
+ /** Whether the element starts open. Ignored once `open` is written. */
18791
+ "bool:default-open"?: (HelixFind["defaultOpen"]) | undefined;
18792
+ /** Whether the element starts open. Ignored once `open` is written. */
18793
+ "prop:defaultOpen"?: (HelixFind["defaultOpen"]) | undefined;
18794
+ /** Whether the element is open.
18795
+
18796
+ One property, not two, so `dialog.open` answers the question anyone
18797
+ asking it meant. Writing always applies; `<helix-dialog open>` is the
18798
+ same statement in markup.
18799
+
18800
+ **Not reflected, and that is required rather than tidy.** Reflection
18801
+ writes the resolved state back as an attribute, so an element that opened
18802
+ itself would put `open` on its own host: cloned, serialized for
18803
+ hydration, or diffed by a framework, it comes back holding whatever the
18804
+ last reader did rather than what the author wrote. `:state(open)` carries
18805
+ the resolved state for stylesheets, which is what the mirror is for. */
18806
+ "prop:open"?: (HelixFind["open"]) | undefined;
18807
+ /** The close button's label. */
18808
+ "attr:close-label"?: (HelixFind["closeLabel"]) | undefined;
18809
+ /** The close button's label. */
18810
+ "prop:closeLabel"?: (HelixFind["closeLabel"]) | undefined;
18811
+ /** The name of the bar's toolbar, read by screen readers. */
18812
+ "attr:controls-label"?: (HelixFind["controlsLabel"]) | undefined;
18813
+ /** The name of the bar's toolbar, read by screen readers. */
18814
+ "prop:controlsLabel"?: (HelixFind["controlsLabel"]) | undefined;
18815
+ /** The id of the element whose text Find searches, in the same tree as Find.
18816
+ With a finder attached, it names only where the find key opens the bar. */
18817
+ "prop:for"?: (HelixFind["for"]) | undefined;
18818
+ /** What the count says when the regular expression cannot be read. */
18819
+ "attr:invalid-label"?: (HelixFind["invalidLabel"]) | undefined;
18820
+ /** What the count says when the regular expression cannot be read. */
18821
+ "prop:invalidLabel"?: (HelixFind["invalidLabel"]) | undefined;
18822
+ /** The field's name and placeholder, and the name of the bar. */
18823
+ "prop:label"?: (HelixFind["label"]) | undefined;
18824
+ /** Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar. */
18825
+ "bool:match-case"?: (HelixFind["matchCase"]) | undefined;
18826
+ /** Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar. */
18827
+ "prop:matchCase"?: (HelixFind["matchCase"]) | undefined;
18828
+ /** The match case button's label. */
18829
+ "attr:match-case-label"?: (HelixFind["matchCaseLabel"]) | undefined;
18830
+ /** The match case button's label. */
18831
+ "prop:matchCaseLabel"?: (HelixFind["matchCaseLabel"]) | undefined;
18832
+ /** What the count says of the matches. `{index}` is the current match,
18833
+ counting from 1, and `{count}` how many there are. */
18834
+ "attr:matches-label"?: (HelixFind["matchesLabel"]) | undefined;
18835
+ /** What the count says of the matches. `{index}` is the current match,
18836
+ counting from 1, and `{count}` how many there are. */
18837
+ "prop:matchesLabel"?: (HelixFind["matchesLabel"]) | undefined;
18838
+ /** The next match button's label. */
18839
+ "attr:next-label"?: (HelixFind["nextLabel"]) | undefined;
18840
+ /** The next match button's label. */
18841
+ "prop:nextLabel"?: (HelixFind["nextLabel"]) | undefined;
18842
+ /** Which options the bar draws, as a list of `match-case`, `whole-word`, and
18843
+ `regex`, or `none`. They are always drawn in that order. */
18844
+ "prop:options"?: (HelixFind["options"]) | undefined;
18845
+ /** The previous match button's label. */
18846
+ "attr:previous-label"?: (HelixFind["previousLabel"]) | undefined;
18847
+ /** The previous match button's label. */
18848
+ "prop:previousLabel"?: (HelixFind["previousLabel"]) | undefined;
18849
+ /** What the field holds: what the reader typed, or what you set. */
18850
+ "prop:query"?: (HelixFind["query"]) | undefined;
18851
+ /** Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling. */
18852
+ "bool:readonly"?: (HelixFind["readOnly"]) | undefined;
18853
+ /** Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling. */
18854
+ "prop:readOnly"?: (HelixFind["readOnly"]) | undefined;
18855
+ /** Whether the field reads as a regular expression, in JavaScript's syntax. The reader turns it on and off from the bar. */
18856
+ "prop:regex"?: (HelixFind["regex"]) | undefined;
18857
+ /** The regular expression button's label. */
18858
+ "attr:regex-label"?: (HelixFind["regexLabel"]) | undefined;
18859
+ /** The regular expression button's label. */
18860
+ "prop:regexLabel"?: (HelixFind["regexLabel"]) | undefined;
18861
+ /** The Replace all button's words. */
18862
+ "attr:replace-all-label"?: (HelixFind["replaceAllLabel"]) | undefined;
18863
+ /** The Replace all button's words. */
18864
+ "prop:replaceAllLabel"?: (HelixFind["replaceAllLabel"]) | undefined;
18865
+ /** The replace field's name and placeholder. */
18866
+ "attr:replace-field-label"?: (HelixFind["replaceFieldLabel"]) | undefined;
18867
+ /** The replace field's name and placeholder. */
18868
+ "prop:replaceFieldLabel"?: (HelixFind["replaceFieldLabel"]) | undefined;
18869
+ /** The Replace button's words. */
18870
+ "attr:replace-label"?: (HelixFind["replaceLabel"]) | undefined;
18871
+ /** The Replace button's words. */
18872
+ "prop:replaceLabel"?: (HelixFind["replaceLabel"]) | undefined;
18873
+ /** What the replace field holds, which Replace puts in place of a match. */
18874
+ "prop:replacement"?: (HelixFind["replacement"]) | undefined;
18875
+ /** The label of the button that shows the replace row. */
18876
+ "attr:replace-toggle-label"?: (HelixFind["replaceToggleLabel"]) | undefined;
18877
+ /** The label of the button that shows the replace row. */
18878
+ "prop:replaceToggleLabel"?: (HelixFind["replaceToggleLabel"]) | undefined;
18879
+ /** The key that opens the bar, as a chord such as `mod+f`, where `mod` is
18880
+ Command on an Apple keyboard and Control elsewhere. Empty turns the key
18881
+ off, as for a bar the page opens itself. */
18882
+ "prop:shortcut"?: (HelixFind["shortcut"]) | undefined;
18883
+ /** Elements inside the content whose text is not searched, as a selector,
18884
+ such as line numbers or the buttons beside each message. */
18885
+ "prop:skip"?: (HelixFind["skip"]) | undefined;
18886
+ /** Whether only whole words match. The reader turns it on and off from the bar. */
18887
+ "bool:whole-word"?: (HelixFind["wholeWord"]) | undefined;
18888
+ /** Whether only whole words match. The reader turns it on and off from the bar. */
18889
+ "prop:wholeWord"?: (HelixFind["wholeWord"]) | undefined;
18890
+ /** The whole word button's label. */
18891
+ "attr:whole-word-label"?: (HelixFind["wholeWordLabel"]) | undefined;
18892
+ /** The whole word button's label. */
18893
+ "prop:wholeWordLabel"?: (HelixFind["wholeWordLabel"]) | undefined;
18894
+ /** Sent when the bar opens or closes, with `newState` and `oldState`. */
18895
+ "on:toggle"?: ((e: HelixFindToggleElementEvent) => void) | undefined;
18896
+ /** Fired before the bar closes, and cancelable. */
18897
+ "on:helix-before-close"?: ((e: HelixFindHelixBeforeCloseElementEvent) => void) | undefined;
18898
+ /** Fired before the bar opens, and cancelable. Canceling it keeps the bar closed. */
18899
+ "on:helix-before-open"?: ((e: HelixFindHelixBeforeOpenElementEvent) => void) | undefined;
18900
+ /** Sent after each search and each move among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none. */
18901
+ "on:helix-found"?: ((e: HelixFindHelixFoundElementEvent) => void) | undefined;
18902
+
18903
+ /** Set the innerHTML of the element */
18904
+ innerHTML?: (string) | undefined;
18905
+ /** Set the textContent of the element */
18906
+ textContent?: (string | number) | undefined;
18907
+ };
18908
+
18305
18909
  export type HelixFlexProps = {
18306
18910
  /** How the lines of a wrapping row share the space across it, set as
18307
18911
  `align-content`.
@@ -20405,6 +21009,36 @@ is the platform's `commandfor`. */
20405
21009
  commandfor?: (HelixIconButton["commandFor"]) | undefined;
20406
21010
  /** The id of the element the command is sent to. */
20407
21011
  commandFor?: (HelixIconButton["commandFor"]) | undefined;
21012
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
21013
+ can say why it is disabled.
21014
+
21015
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
21016
+ changes to save. While the button is disabled, it keeps focus and takes
21017
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
21018
+ a field of its form. The click does not reach your listeners, and a submit
21019
+ button submits nothing. The inner control carries `aria-disabled` in place
21020
+ of the native `disabled`, so a screen reader still says it is unavailable.
21021
+ The styled button keeps the disabled look.
21022
+
21023
+ Leave it unset on a button with no reason to give. A plain disabled button
21024
+ leaves the tab order, as a native one does, and a keyboard reader skips a
21025
+ stop that does nothing. Set `pending` for the wait after a press. */
21026
+ "focusable-when-disabled"?: (HelixIconButton["focusableWhenDisabled"]) | undefined;
21027
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
21028
+ can say why it is disabled.
21029
+
21030
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
21031
+ changes to save. While the button is disabled, it keeps focus and takes
21032
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
21033
+ a field of its form. The click does not reach your listeners, and a submit
21034
+ button submits nothing. The inner control carries `aria-disabled` in place
21035
+ of the native `disabled`, so a screen reader still says it is unavailable.
21036
+ The styled button keeps the disabled look.
21037
+
21038
+ Leave it unset on a button with no reason to give. A plain disabled button
21039
+ leaves the tab order, as a native one does, and a keyboard reader skips a
21040
+ stop that does nothing. Set `pending` for the wait after a press. */
21041
+ focusableWhenDisabled?: (HelixIconButton["focusableWhenDisabled"]) | undefined;
20408
21042
  /** Where this button's submission goes, overriding the form's own.
20409
21043
 
20410
21044
  **The five `form*` overrides ride on a native submit button that stands in
@@ -20641,6 +21275,36 @@ is the platform's `commandfor`. */
20641
21275
  "attr:commandfor"?: (HelixIconButton["commandFor"]) | undefined;
20642
21276
  /** The id of the element the command is sent to. */
20643
21277
  "prop:commandFor"?: (HelixIconButton["commandFor"]) | undefined;
21278
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
21279
+ can say why it is disabled.
21280
+
21281
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
21282
+ changes to save. While the button is disabled, it keeps focus and takes
21283
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
21284
+ a field of its form. The click does not reach your listeners, and a submit
21285
+ button submits nothing. The inner control carries `aria-disabled` in place
21286
+ of the native `disabled`, so a screen reader still says it is unavailable.
21287
+ The styled button keeps the disabled look.
21288
+
21289
+ Leave it unset on a button with no reason to give. A plain disabled button
21290
+ leaves the tab order, as a native one does, and a keyboard reader skips a
21291
+ stop that does nothing. Set `pending` for the wait after a press. */
21292
+ "bool:focusable-when-disabled"?: (HelixIconButton["focusableWhenDisabled"]) | undefined;
21293
+ /** Whether a disabled button stays in the tab order, so a tooltip around it
21294
+ can say why it is disabled.
21295
+
21296
+ Set it on a button whose reason a Tooltip gives, such as a Save with no
21297
+ changes to save. While the button is disabled, it keeps focus and takes
21298
+ hover, and it refuses every press: a click, Enter and Space, and Enter in
21299
+ a field of its form. The click does not reach your listeners, and a submit
21300
+ button submits nothing. The inner control carries `aria-disabled` in place
21301
+ of the native `disabled`, so a screen reader still says it is unavailable.
21302
+ The styled button keeps the disabled look.
21303
+
21304
+ Leave it unset on a button with no reason to give. A plain disabled button
21305
+ leaves the tab order, as a native one does, and a keyboard reader skips a
21306
+ stop that does nothing. Set `pending` for the wait after a press. */
21307
+ "prop:focusableWhenDisabled"?: (HelixIconButton["focusableWhenDisabled"]) | undefined;
20644
21308
  /** Where this button's submission goes, overriding the form's own.
20645
21309
 
20646
21310
  **The five `form*` overrides ride on a native submit button that stands in
@@ -21291,6 +21955,10 @@ token.
21291
21955
  Empty leaves the attribute off, which is the browser's default. Set it to
21292
21956
  a token like `email` or `bday` to ask for autofill, or to `off` to refuse. */
21293
21957
  autocomplete?: (HelixInput["autocomplete"]) | undefined;
21958
+ /** Whether the browser corrects words as the reader types, as the platform's
21959
+ `autocorrect`. Turn it off, with `autocorrect="off"`, for text that is not
21960
+ prose, such as an address or a code, which corrections would change. */
21961
+ autocorrect?: (HelixInput["autocorrect"]) | undefined;
21294
21962
  /** Whether the field shows a button that empties it.
21295
21963
 
21296
21964
  Shown only while there is something to clear, because a control that does
@@ -21553,6 +22221,10 @@ token.
21553
22221
  Empty leaves the attribute off, which is the browser's default. Set it to
21554
22222
  a token like `email` or `bday` to ask for autofill, or to `off` to refuse. */
21555
22223
  "prop:autocomplete"?: (HelixInput["autocomplete"]) | undefined;
22224
+ /** Whether the browser corrects words as the reader types, as the platform's
22225
+ `autocorrect`. Turn it off, with `autocorrect="off"`, for text that is not
22226
+ prose, such as an address or a code, which corrections would change. */
22227
+ "prop:autocorrect"?: (HelixInput["autocorrect"]) | undefined;
21556
22228
  /** Whether the field shows a button that empties it.
21557
22229
 
21558
22230
  Shown only while there is something to clear, because a control that does
@@ -24532,7 +25204,10 @@ export type HelixLogProps = {
24532
25204
  - `plain` has no edge, no fill, no inset and no height of its own: the
24533
25205
  lines start where the text around them does and the log grows with
24534
25206
  them. For a log inside something that already frames it, such as an
24535
- agent's work in a chat turn's `work` slot.
25207
+ agent's work in a chat turn's `work` slot. Each step is a row with its
25208
+ status mark on that edge and its caret after the heading. A step that
25209
+ holds steps draws a rule beside them, and a step that holds lines draws
25210
+ them on a quiet surface that scrolls after `--log-step-max-block-size`.
24536
25211
 
24537
25212
  Both are writable, so a page can say which it means rather than relying
24538
25213
  on the absence of an attribute. */
@@ -24707,7 +25382,10 @@ export type HelixLogSolidJsProps = {
24707
25382
  - `plain` has no edge, no fill, no inset and no height of its own: the
24708
25383
  lines start where the text around them does and the log grows with
24709
25384
  them. For a log inside something that already frames it, such as an
24710
- agent's work in a chat turn's `work` slot.
25385
+ agent's work in a chat turn's `work` slot. Each step is a row with its
25386
+ status mark on that edge and its caret after the heading. A step that
25387
+ holds steps draws a rule beside them, and a step that holds lines draws
25388
+ them on a quiet surface that scrolls after `--log-step-max-block-size`.
24711
25389
 
24712
25390
  Both are writable, so a page can say which it means rather than relying
24713
25391
  on the absence of an attribute. */
@@ -26945,6 +27623,20 @@ export type HelixMenuHelixSelectElementEvent =
26945
27623
  HelixMenuElementEvent<HelixSelectEvent>;
26946
27624
 
26947
27625
  export type HelixMenuProps = {
27626
+ /** The panel's surface: `frosted` or `glass`.
27627
+
27628
+ Absent is the opaque overlay surface. `glass` is the page's translucent
27629
+ ground over a blur, for a page whose surfaces are glass, so a panel opened
27630
+ over a glass window is not the one opaque slab on it. `frosted` is the same
27631
+ pair turned up, a ground that admits less and a heavier blur.
27632
+
27633
+ The strength is the theme's: `--helix-material-translucent`,
27634
+ `--helix-material-translucent-strong` and `--helix-material-backdrop` are
27635
+ what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
27636
+
27637
+ **No `transparent`, deliberately.** A panel floating over arbitrary page
27638
+ content is only readable because it has a ground. */
27639
+ material?: (HelixMenu["material"]) | undefined;
26948
27640
  /** The text shown and announced when there are no rows and none are loading. */
26949
27641
  "empty-text"?: (HelixMenu["emptyText"]) | undefined;
26950
27642
  /** The text shown and announced when there are no rows and none are loading. */
@@ -27098,6 +27790,20 @@ is sent on the menu when a reader's choice changes it. */
27098
27790
  };
27099
27791
 
27100
27792
  export type HelixMenuSolidJsProps = {
27793
+ /** The panel's surface: `frosted` or `glass`.
27794
+
27795
+ Absent is the opaque overlay surface. `glass` is the page's translucent
27796
+ ground over a blur, for a page whose surfaces are glass, so a panel opened
27797
+ over a glass window is not the one opaque slab on it. `frosted` is the same
27798
+ pair turned up, a ground that admits less and a heavier blur.
27799
+
27800
+ The strength is the theme's: `--helix-material-translucent`,
27801
+ `--helix-material-translucent-strong` and `--helix-material-backdrop` are
27802
+ what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
27803
+
27804
+ **No `transparent`, deliberately.** A panel floating over arbitrary page
27805
+ content is only readable because it has a ground. */
27806
+ "prop:material"?: (HelixMenu["material"]) | undefined;
27101
27807
  /** The text shown and announced when there are no rows and none are loading. */
27102
27808
  "attr:empty-text"?: (HelixMenu["emptyText"]) | undefined;
27103
27809
  /** The text shown and announced when there are no rows and none are loading. */
@@ -27641,6 +28347,43 @@ fair summary of a task and a poor one of a quantity. */
27641
28347
  textContent?: (string | number) | undefined;
27642
28348
  };
27643
28349
 
28350
+ export type HelixMeterSegmentProps = {
28351
+ /** What the segment is, such as "Tools", which names the slice when a pointer
28352
+ rests on it.
28353
+
28354
+ Not announced: see the note on a meter's children above. */
28355
+ label?: (HelixMeterSegment["label"]) | undefined;
28356
+ /** What the segment means, as it does on a callout. Takes the tone's color in
28357
+ place of the next color in the series. */
28358
+ tone?: (HelixMeterSegment["tone"]) | undefined;
28359
+ /** How much of the meter's range the segment takes, in the units of the meter's
28360
+ `min` and `max`.
28361
+
28362
+ A value that is not a number, or is below zero, draws nothing. */
28363
+ value?: (HelixMeterSegment["value"]) | undefined;
28364
+ };
28365
+
28366
+ export type HelixMeterSegmentSolidJsProps = {
28367
+ /** What the segment is, such as "Tools", which names the slice when a pointer
28368
+ rests on it.
28369
+
28370
+ Not announced: see the note on a meter's children above. */
28371
+ "prop:label"?: (HelixMeterSegment["label"]) | undefined;
28372
+ /** What the segment means, as it does on a callout. Takes the tone's color in
28373
+ place of the next color in the series. */
28374
+ "prop:tone"?: (HelixMeterSegment["tone"]) | undefined;
28375
+ /** How much of the meter's range the segment takes, in the units of the meter's
28376
+ `min` and `max`.
28377
+
28378
+ A value that is not a number, or is below zero, draws nothing. */
28379
+ "prop:value"?: (HelixMeterSegment["value"]) | undefined;
28380
+
28381
+ /** Set the innerHTML of the element */
28382
+ innerHTML?: (string) | undefined;
28383
+ /** Set the textContent of the element */
28384
+ textContent?: (string | number) | undefined;
28385
+ };
28386
+
27644
28387
  /** `HelixMotionToggle` component event */
27645
28388
  export type HelixMotionToggleElementEvent<E = Event> = TypedEvent<
27646
28389
  HelixMotionToggle,
@@ -30712,6 +31455,20 @@ export type HelixPopoverHelixBeforeOpenElementEvent =
30712
31455
  HelixPopoverElementEvent<HelixBeforeOpenEvent>;
30713
31456
 
30714
31457
  export type HelixPopoverProps = {
31458
+ /** The panel's surface: `frosted` or `glass`.
31459
+
31460
+ Absent is the opaque overlay surface. `glass` is the page's translucent
31461
+ ground over a blur, for a page whose surfaces are glass, so a panel opened
31462
+ over a glass window is not the one opaque slab on it. `frosted` is the same
31463
+ pair turned up, a ground that admits less and a heavier blur.
31464
+
31465
+ The strength is the theme's: `--helix-material-translucent`,
31466
+ `--helix-material-translucent-strong` and `--helix-material-backdrop` are
31467
+ what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
31468
+
31469
+ **No `transparent`, deliberately.** A panel floating over arbitrary page
31470
+ content is only readable because it has a ground. */
31471
+ material?: (HelixPopover["material"]) | undefined;
30715
31472
  /** How the panel is set apart from the content under it.
30716
31473
 
30717
31474
  One of the axis's four values, which is all this surface has meaning for: a
@@ -30801,6 +31558,20 @@ It moves if that side does not fit. */
30801
31558
  };
30802
31559
 
30803
31560
  export type HelixPopoverSolidJsProps = {
31561
+ /** The panel's surface: `frosted` or `glass`.
31562
+
31563
+ Absent is the opaque overlay surface. `glass` is the page's translucent
31564
+ ground over a blur, for a page whose surfaces are glass, so a panel opened
31565
+ over a glass window is not the one opaque slab on it. `frosted` is the same
31566
+ pair turned up, a ground that admits less and a heavier blur.
31567
+
31568
+ The strength is the theme's: `--helix-material-translucent`,
31569
+ `--helix-material-translucent-strong` and `--helix-material-backdrop` are
31570
+ what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
31571
+
31572
+ **No `transparent`, deliberately.** A panel floating over arbitrary page
31573
+ content is only readable because it has a ground. */
31574
+ "prop:material"?: (HelixPopover["material"]) | undefined;
30804
31575
  /** How the panel is set apart from the content under it.
30805
31576
 
30806
31577
  One of the axis's four values, which is all this surface has meaning for: a
@@ -35503,6 +36274,13 @@ shows the bars behind it. Absent is the filled bar, per the rule that a
35503
36274
  reflected property takes no default, and `solid` writes it out. A
35504
36275
  renderer draws the bars the same way.
35505
36276
 
36277
+ **`muted` draws every bar in the neutral ink**, so the one bar whose cell
36278
+ names a tone, such as `data-tone="primary"`, is the bar in color, with a
36279
+ soft glow in its tone: one reading lit among the others, such as today
36280
+ among a week. Each top takes the most ink and each side less, as a
36281
+ colored bar's faces do. A renderer draws the neutral bars and the toned
36282
+ one, without the glow.
36283
+
35506
36284
  It composes with `material`: emphasis decides what is drawn, and material
35507
36285
  how much of it comes through. The outline on the bar the keys rest on
35508
36286
  keeps its own ink. */
@@ -35613,13 +36391,42 @@ press, and the sound is made only then. */
35613
36391
  for no one else. Reflected, because the stylesheet draws it by the
35614
36392
  attribute, and a page that sets the property, as React does, writes none. */
35615
36393
  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
36394
+ /** Grows the bars up from the floor the first time the chart comes into
36395
+ view with readings, each category a little after the one before it, so
36396
+ the drawing arrives the way a page's own picture does. The growth is
36397
+ fast at first, slows to rest, and never passes a bar's value.
36398
+
36399
+ Under `prefers-reduced-motion`, or where the page has paused its motion
36400
+ through `pauseMotion` or `Motion Toggle`, the bars stand at their height
36401
+ from the start. A later table draws the bars it already had at their
36402
+ height, and grows the bars it adds, each from the floor, so a reading that
36403
+ arrives while the chart is in view arrives the same way. */
36404
+ grow?: (HelixSpatialBarChart["grow"]) | undefined;
36405
+ /** Grows the bars again each time the chart comes back into view after it
36406
+ left it, as a pane does when it is opened again, where `grow` alone grows
36407
+ them the first time only. Only a chart that grows takes it.
36408
+
36409
+ While it is out of view the bars stand at the floor, so the first frame
36410
+ after it returns is the start of the growth and never a flash at full
36411
+ height. */
36412
+ "grow-again"?: (HelixSpatialBarChart["growAgain"]) | undefined;
36413
+ /** Grows the bars again each time the chart comes back into view after it
36414
+ left it, as a pane does when it is opened again, where `grow` alone grows
36415
+ them the first time only. Only a chart that grows takes it.
36416
+
36417
+ While it is out of view the bars stand at the floor, so the first frame
36418
+ after it returns is the start of the growth and never a flash at full
36419
+ height. */
36420
+ growAgain?: (HelixSpatialBarChart["growAgain"]) | undefined;
36421
+ /** Draws no box: no edges, grid, numbers, or names, and in a `row` no
36422
+ floor, so the readings stand alone and fill the plot, as a picture on a
36423
+ product's own page does. The
35618
36424
  table, the summary, the tooltip, and the keys still carry every value,
35619
36425
  and a renderer draws no box either. */
35620
36426
  "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
36427
+ /** Draws no box: no edges, grid, numbers, or names, and in a `row` no
36428
+ floor, so the readings stand alone and fill the plot, as a picture on a
36429
+ product's own page does. The
35623
36430
  table, the summary, the tooltip, and the keys still carry every value,
35624
36431
  and a renderer draws no box either. */
35625
36432
  noBox?: (HelixSpatialBarChart["noBox"]) | undefined;
@@ -35633,6 +36440,15 @@ and a renderer draws no box either. */
35633
36440
  "plot-label"?: (HelixSpatialBarChart["plotLabel"]) | undefined;
35634
36441
  /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
35635
36442
  plotLabel?: (HelixSpatialBarChart["plotLabel"]) | undefined;
36443
+ /** Stacks a category's series into one column, each block standing on the
36444
+ ones before it, so the column is as tall as the category's total, as a
36445
+ flat `Bar Chart` stacks them.
36446
+
36447
+ Absent stands the series one behind another in depth. Stacked, every
36448
+ series stands in the front row, so none hides another, and the parts of
36449
+ one total read together. A negative reading hangs below zero on the
36450
+ negatives before it. The scale fits the stacks. */
36451
+ stacked?: (HelixSpatialBarChart["stacked"]) | undefined;
35636
36452
  /** The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
35637
36453
  are the number of bars, series, and categories, written in the locale,
35638
36454
  and `{low}` and `{high}` the lowest and the highest value. */
@@ -35641,6 +36457,38 @@ and `{low}` and `{high}` the lowest and the highest value. */
35641
36457
  are the number of bars, series, and categories, written in the locale,
35642
36458
  and `{low}` and `{high}` the lowest and the highest value. */
35643
36459
  summaryLabel?: (HelixSpatialBarChart["summaryLabel"]) | undefined;
36460
+ /** How the bars stand.
36461
+
36462
+ Unset, they stand on a grid of categories across and series in depth,
36463
+ in a box the camera looks at from a corner, so the grid recedes at an
36464
+ angle. `row` lays the categories in a straight line across the page and
36465
+ turns each bar to the camera, showing its top and two sides, for one row
36466
+ of readings in a small space such as a pane: turning the view turns each
36467
+ bar where it stands, and the row stays level. It is the chart's own
36468
+ drawing that lays the row: a renderer connected through
36469
+ `@fusion.dev/helix-plot` stands the bars on the grid.
36470
+
36471
+ `diagonal` is the same row climbing to the right as it recedes, each
36472
+ place a step further back than the one before, as a row of days on a
36473
+ product's page is drawn: the row rises one part in five across the page
36474
+ from any turn, and its floor and names climb with it. A row whose bars
36475
+ have a size climbs at most a quarter of the plot's height, so the bars
36476
+ of a long row keep theirs.
36477
+
36478
+ **A row draws its floor in place of a box**: each place as an outline a
36479
+ little wider than its bar, and each category's name under it, as many
36480
+ names as fit without touching. A name whose bar names a tone is written
36481
+ first, in that tone. `no-box` leaves the floor and the names out.
36482
+
36483
+ **A `column-gap` on the `fallback` part gives a row's bars one width**,
36484
+ which the styled tier sets from `--spatial-bar-chart-bar-size`: one bar
36485
+ stands as wide as each of twenty, the row is as long as its bars and
36486
+ centered, the tallest bar stands as high as the plot has room for and
36487
+ no taller than the row is long and a quarter again, so one bar stands
36488
+ as a block, and `fits` says how many bars the plot holds, so a page
36489
+ can give it the latest of a longer table. It is read when the plot's
36490
+ size changes. */
36491
+ variant?: (HelixSpatialBarChart["variant"]) | undefined;
35644
36492
  /** The readings as data, in the shape of a table, where the page has no
35645
36493
  table to point `for` at. `for` wins where both are set.
35646
36494
 
@@ -35692,6 +36540,13 @@ shows the bars behind it. Absent is the filled bar, per the rule that a
35692
36540
  reflected property takes no default, and `solid` writes it out. A
35693
36541
  renderer draws the bars the same way.
35694
36542
 
36543
+ **`muted` draws every bar in the neutral ink**, so the one bar whose cell
36544
+ names a tone, such as `data-tone="primary"`, is the bar in color, with a
36545
+ soft glow in its tone: one reading lit among the others, such as today
36546
+ among a week. Each top takes the most ink and each side less, as a
36547
+ colored bar's faces do. A renderer draws the neutral bars and the toned
36548
+ one, without the glow.
36549
+
35695
36550
  It composes with `material`: emphasis decides what is drawn, and material
35696
36551
  how much of it comes through. The outline on the bar the keys rest on
35697
36552
  keeps its own ink. */
@@ -35802,13 +36657,42 @@ press, and the sound is made only then. */
35802
36657
  for no one else. Reflected, because the stylesheet draws it by the
35803
36658
  attribute, and a page that sets the property, as React does, writes none. */
35804
36659
  "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
36660
+ /** Grows the bars up from the floor the first time the chart comes into
36661
+ view with readings, each category a little after the one before it, so
36662
+ the drawing arrives the way a page's own picture does. The growth is
36663
+ fast at first, slows to rest, and never passes a bar's value.
36664
+
36665
+ Under `prefers-reduced-motion`, or where the page has paused its motion
36666
+ through `pauseMotion` or `Motion Toggle`, the bars stand at their height
36667
+ from the start. A later table draws the bars it already had at their
36668
+ height, and grows the bars it adds, each from the floor, so a reading that
36669
+ arrives while the chart is in view arrives the same way. */
36670
+ "prop:grow"?: (HelixSpatialBarChart["grow"]) | undefined;
36671
+ /** Grows the bars again each time the chart comes back into view after it
36672
+ left it, as a pane does when it is opened again, where `grow` alone grows
36673
+ them the first time only. Only a chart that grows takes it.
36674
+
36675
+ While it is out of view the bars stand at the floor, so the first frame
36676
+ after it returns is the start of the growth and never a flash at full
36677
+ height. */
36678
+ "bool:grow-again"?: (HelixSpatialBarChart["growAgain"]) | undefined;
36679
+ /** Grows the bars again each time the chart comes back into view after it
36680
+ left it, as a pane does when it is opened again, where `grow` alone grows
36681
+ them the first time only. Only a chart that grows takes it.
36682
+
36683
+ While it is out of view the bars stand at the floor, so the first frame
36684
+ after it returns is the start of the growth and never a flash at full
36685
+ height. */
36686
+ "prop:growAgain"?: (HelixSpatialBarChart["growAgain"]) | undefined;
36687
+ /** Draws no box: no edges, grid, numbers, or names, and in a `row` no
36688
+ floor, so the readings stand alone and fill the plot, as a picture on a
36689
+ product's own page does. The
35807
36690
  table, the summary, the tooltip, and the keys still carry every value,
35808
36691
  and a renderer draws no box either. */
35809
36692
  "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
36693
+ /** Draws no box: no edges, grid, numbers, or names, and in a `row` no
36694
+ floor, so the readings stand alone and fill the plot, as a picture on a
36695
+ product's own page does. The
35812
36696
  table, the summary, the tooltip, and the keys still carry every value,
35813
36697
  and a renderer draws no box either. */
35814
36698
  "prop:noBox"?: (HelixSpatialBarChart["noBox"]) | undefined;
@@ -35822,6 +36706,15 @@ and a renderer draws no box either. */
35822
36706
  "attr:plot-label"?: (HelixSpatialBarChart["plotLabel"]) | undefined;
35823
36707
  /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
35824
36708
  "prop:plotLabel"?: (HelixSpatialBarChart["plotLabel"]) | undefined;
36709
+ /** Stacks a category's series into one column, each block standing on the
36710
+ ones before it, so the column is as tall as the category's total, as a
36711
+ flat `Bar Chart` stacks them.
36712
+
36713
+ Absent stands the series one behind another in depth. Stacked, every
36714
+ series stands in the front row, so none hides another, and the parts of
36715
+ one total read together. A negative reading hangs below zero on the
36716
+ negatives before it. The scale fits the stacks. */
36717
+ "prop:stacked"?: (HelixSpatialBarChart["stacked"]) | undefined;
35825
36718
  /** The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
35826
36719
  are the number of bars, series, and categories, written in the locale,
35827
36720
  and `{low}` and `{high}` the lowest and the highest value. */
@@ -35830,6 +36723,38 @@ and `{low}` and `{high}` the lowest and the highest value. */
35830
36723
  are the number of bars, series, and categories, written in the locale,
35831
36724
  and `{low}` and `{high}` the lowest and the highest value. */
35832
36725
  "prop:summaryLabel"?: (HelixSpatialBarChart["summaryLabel"]) | undefined;
36726
+ /** How the bars stand.
36727
+
36728
+ Unset, they stand on a grid of categories across and series in depth,
36729
+ in a box the camera looks at from a corner, so the grid recedes at an
36730
+ angle. `row` lays the categories in a straight line across the page and
36731
+ turns each bar to the camera, showing its top and two sides, for one row
36732
+ of readings in a small space such as a pane: turning the view turns each
36733
+ bar where it stands, and the row stays level. It is the chart's own
36734
+ drawing that lays the row: a renderer connected through
36735
+ `@fusion.dev/helix-plot` stands the bars on the grid.
36736
+
36737
+ `diagonal` is the same row climbing to the right as it recedes, each
36738
+ place a step further back than the one before, as a row of days on a
36739
+ product's page is drawn: the row rises one part in five across the page
36740
+ from any turn, and its floor and names climb with it. A row whose bars
36741
+ have a size climbs at most a quarter of the plot's height, so the bars
36742
+ of a long row keep theirs.
36743
+
36744
+ **A row draws its floor in place of a box**: each place as an outline a
36745
+ little wider than its bar, and each category's name under it, as many
36746
+ names as fit without touching. A name whose bar names a tone is written
36747
+ first, in that tone. `no-box` leaves the floor and the names out.
36748
+
36749
+ **A `column-gap` on the `fallback` part gives a row's bars one width**,
36750
+ which the styled tier sets from `--spatial-bar-chart-bar-size`: one bar
36751
+ stands as wide as each of twenty, the row is as long as its bars and
36752
+ centered, the tallest bar stands as high as the plot has room for and
36753
+ no taller than the row is long and a quarter again, so one bar stands
36754
+ as a block, and `fits` says how many bars the plot holds, so a page
36755
+ can give it the latest of a longer table. It is read when the plot's
36756
+ size changes. */
36757
+ "prop:variant"?: (HelixSpatialBarChart["variant"]) | undefined;
35833
36758
  /** The readings as data, in the shape of a table, where the page has no
35834
36759
  table to point `for` at. `for` wins where both are set.
35835
36760
 
@@ -39216,6 +40141,14 @@ own. */
39216
40141
  /** How much the glow around the strands adds, as a multiplier. `0` draws the
39217
40142
  strands alone, crisp and dimmer, and `1` is the default glow. */
39218
40143
  bloom?: (HelixStrands["bloom"]) | undefined;
40144
+ /** Whether the light is drawn alone, without the ground under it, so what is
40145
+ behind the element shows through, such as a translucent pane or a window's
40146
+ glass. The ground still says which way the page runs: light added on a
40147
+ dark one, ink on a light one.
40148
+
40149
+ Reflected because the stylesheet selects on it: the band under the canvas
40150
+ shows only while the element falls back, and loses its ground too. */
40151
+ clear?: (HelixStrands["clear"]) | undefined;
39219
40152
  /** How far apart the brightest and dimmest strands are, from `0`, most of
39220
40153
  them alike, to `1`, a few burning bright over many faint ones. Clamped to
39221
40154
  that range. The ribbon as a whole keeps its strength. */
@@ -39281,6 +40214,14 @@ own. */
39281
40214
  /** How much the glow around the strands adds, as a multiplier. `0` draws the
39282
40215
  strands alone, crisp and dimmer, and `1` is the default glow. */
39283
40216
  "prop:bloom"?: (HelixStrands["bloom"]) | undefined;
40217
+ /** Whether the light is drawn alone, without the ground under it, so what is
40218
+ behind the element shows through, such as a translucent pane or a window's
40219
+ glass. The ground still says which way the page runs: light added on a
40220
+ dark one, ink on a light one.
40221
+
40222
+ Reflected because the stylesheet selects on it: the band under the canvas
40223
+ shows only while the element falls back, and loses its ground too. */
40224
+ "prop:clear"?: (HelixStrands["clear"]) | undefined;
39284
40225
  /** How far apart the brightest and dimmest strands are, from `0`, most of
39285
40226
  them alike, to `1`, a few burning bright over many faint ones. Clamped to
39286
40227
  that range. The ribbon as a whole keeps its strength. */
@@ -40721,6 +41662,33 @@ export type HelixTabsHelixSelectElementEvent =
40721
41662
  HelixTabsElementEvent<HelixSelectEvent>;
40722
41663
 
40723
41664
  export type HelixTabsProps = {
41665
+ /** When the close mark of each `dismissible` tab shows.
41666
+
41667
+ Unset, or `always`, every mark shows. `hover` shows a tab's mark while it
41668
+ is current, under the pointer, or holds focus, and keeps its room on every
41669
+ tab, so the labels do not move as the marks come and go. For a strip of
41670
+ many dismissible tabs, where a mark on each reads as a row of crosses. A
41671
+ keyboard closes a tab with Delete whether its mark shows or not. */
41672
+ "dismiss-marks"?: (HelixTabs["dismissMarks"]) | undefined;
41673
+ /** When the close mark of each `dismissible` tab shows.
41674
+
41675
+ Unset, or `always`, every mark shows. `hover` shows a tab's mark while it
41676
+ is current, under the pointer, or holds focus, and keeps its room on every
41677
+ tab, so the labels do not move as the marks come and go. For a strip of
41678
+ many dismissible tabs, where a mark on each reads as a row of crosses. A
41679
+ keyboard closes a tab with Delete whether its mark shows or not. */
41680
+ dismissMarks?: (HelixTabs["dismissMarks"]) | undefined;
41681
+ /** How loud the mark on the current tab is.
41682
+
41683
+ Unset is the mark `variant` draws at rest. `subtle` is a tint with no
41684
+ edge or shadow: the raised pill becomes a wash, the `segmented` track's
41685
+ pill does the same inside it, and the `underlined` bar takes the
41686
+ foreground's ink in place of the primary color. For tabs inside other
41687
+ chrome, where a raised mark reads as a control laid on top of it.
41688
+
41689
+ Independent of `variant`, since each of its marks has a quiet form: the two
41690
+ answer different questions, which is the test the axis registry applies. */
41691
+ emphasis?: (HelixTabs["emphasis"]) | undefined;
40724
41692
  /** The `value` of the current item.
40725
41693
 
40726
41694
  Not `option.active`, which is the option the keyboard is on: that is a
@@ -40796,6 +41764,33 @@ consumer's server markup does not already have. */
40796
41764
  };
40797
41765
 
40798
41766
  export type HelixTabsSolidJsProps = {
41767
+ /** When the close mark of each `dismissible` tab shows.
41768
+
41769
+ Unset, or `always`, every mark shows. `hover` shows a tab's mark while it
41770
+ is current, under the pointer, or holds focus, and keeps its room on every
41771
+ tab, so the labels do not move as the marks come and go. For a strip of
41772
+ many dismissible tabs, where a mark on each reads as a row of crosses. A
41773
+ keyboard closes a tab with Delete whether its mark shows or not. */
41774
+ "attr:dismiss-marks"?: (HelixTabs["dismissMarks"]) | undefined;
41775
+ /** When the close mark of each `dismissible` tab shows.
41776
+
41777
+ Unset, or `always`, every mark shows. `hover` shows a tab's mark while it
41778
+ is current, under the pointer, or holds focus, and keeps its room on every
41779
+ tab, so the labels do not move as the marks come and go. For a strip of
41780
+ many dismissible tabs, where a mark on each reads as a row of crosses. A
41781
+ keyboard closes a tab with Delete whether its mark shows or not. */
41782
+ "prop:dismissMarks"?: (HelixTabs["dismissMarks"]) | undefined;
41783
+ /** How loud the mark on the current tab is.
41784
+
41785
+ Unset is the mark `variant` draws at rest. `subtle` is a tint with no
41786
+ edge or shadow: the raised pill becomes a wash, the `segmented` track's
41787
+ pill does the same inside it, and the `underlined` bar takes the
41788
+ foreground's ink in place of the primary color. For tabs inside other
41789
+ chrome, where a raised mark reads as a control laid on top of it.
41790
+
41791
+ Independent of `variant`, since each of its marks has a quiet form: the two
41792
+ answer different questions, which is the test the axis registry applies. */
41793
+ "prop:emphasis"?: (HelixTabs["emphasis"]) | undefined;
40799
41794
  /** The `value` of the current item.
40800
41795
 
40801
41796
  Not `option.active`, which is the option the keyboard is on: that is a
@@ -41309,6 +42304,9 @@ export type HelixTerminalElementEvent<E = Event> = TypedEvent<HelixTerminal, E>;
41309
42304
  /** `helix-copy` event type */
41310
42305
  export type HelixTerminalHelixCopyElementEvent =
41311
42306
  HelixTerminalElementEvent<HelixCopyEvent>;
42307
+ /** `helix-found` event type */
42308
+ export type HelixTerminalHelixFoundElementEvent =
42309
+ HelixTerminalElementEvent<HelixFoundEvent>;
41312
42310
  /** `helix-terminal-bell` event type */
41313
42311
  export type HelixTerminalHelixTerminalBellElementEvent =
41314
42312
  HelixTerminalElementEvent<HelixTerminalBellEvent>;
@@ -41482,6 +42480,8 @@ write. Connect it to a setting your reader can turn on. */
41482
42480
 
41483
42481
  /** The copy control or its key put the selection on the clipboard. */
41484
42482
  "onhelix-copy"?: ((e: HelixTerminalHelixCopyElementEvent) => void) | undefined;
42483
+ /** The find bar searched or moved among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none. */
42484
+ "onhelix-found"?: ((e: HelixTerminalHelixFoundElementEvent) => void) | undefined;
41485
42485
  /** The program rang the bell. The frame flashes once. */
41486
42486
  "onhelix-terminal-bell"?: ((
41487
42487
  e: HelixTerminalHelixTerminalBellElementEvent,
@@ -41661,6 +42661,8 @@ write. Connect it to a setting your reader can turn on. */
41661
42661
  "prop:tabTypesLabel"?: (HelixTerminal["tabTypesLabel"]) | undefined;
41662
42662
  /** The copy control or its key put the selection on the clipboard. */
41663
42663
  "on:helix-copy"?: ((e: HelixTerminalHelixCopyElementEvent) => void) | undefined;
42664
+ /** The find bar searched or moved among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none. */
42665
+ "on:helix-found"?: ((e: HelixTerminalHelixFoundElementEvent) => void) | undefined;
41664
42666
  /** The program rang the bell. The frame flashes once. */
41665
42667
  "on:helix-terminal-bell"?: ((
41666
42668
  e: HelixTerminalHelixTerminalBellElementEvent,
@@ -45852,6 +46854,10 @@ appeared in the server's markup for every tree anybody rendered, which is
45852
46854
  the same fault `href` and `target` had on `Button`. The resting arrangement
45853
46855
  is the absence of the attribute, and the stylesheet only asks about `end`.
45854
46856
 
46857
+ `label` sets the chevron against the end of a branch's name, where the name
46858
+ takes only its own width, and leaves the `end` slot at the row's far side.
46859
+ A leaf is unchanged, since it has no chevron.
46860
+
45855
46861
  It is worth owning rather than leaving to `::part(toggle)`, which a
45856
46862
  consumer could reach for: the naive version is `order` plus an auto margin,
45857
46863
  and the row's `end` slot already carries an auto margin of its own, so the
@@ -45874,6 +46880,10 @@ appeared in the server's markup for every tree anybody rendered, which is
45874
46880
  the same fault `href` and `target` had on `Button`. The resting arrangement
45875
46881
  is the absence of the attribute, and the stylesheet only asks about `end`.
45876
46882
 
46883
+ `label` sets the chevron against the end of a branch's name, where the name
46884
+ takes only its own width, and leaves the `end` slot at the row's far side.
46885
+ A leaf is unchanged, since it has no chevron.
46886
+
45877
46887
  It is worth owning rather than leaving to `::part(toggle)`, which a
45878
46888
  consumer could reach for: the naive version is `order` plus an auto margin,
45879
46889
  and the row's `end` slot already carries an auto margin of its own, so the
@@ -46038,6 +47048,10 @@ appeared in the server's markup for every tree anybody rendered, which is
46038
47048
  the same fault `href` and `target` had on `Button`. The resting arrangement
46039
47049
  is the absence of the attribute, and the stylesheet only asks about `end`.
46040
47050
 
47051
+ `label` sets the chevron against the end of a branch's name, where the name
47052
+ takes only its own width, and leaves the `end` slot at the row's far side.
47053
+ A leaf is unchanged, since it has no chevron.
47054
+
46041
47055
  It is worth owning rather than leaving to `::part(toggle)`, which a
46042
47056
  consumer could reach for: the naive version is `order` plus an auto margin,
46043
47057
  and the row's `end` slot already carries an auto margin of its own, so the
@@ -46060,6 +47074,10 @@ appeared in the server's markup for every tree anybody rendered, which is
46060
47074
  the same fault `href` and `target` had on `Button`. The resting arrangement
46061
47075
  is the absence of the attribute, and the stylesheet only asks about `end`.
46062
47076
 
47077
+ `label` sets the chevron against the end of a branch's name, where the name
47078
+ takes only its own width, and leaves the `end` slot at the row's far side.
47079
+ A leaf is unchanged, since it has no chevron.
47080
+
46063
47081
  It is worth owning rather than leaving to `::part(toggle)`, which a
46064
47082
  consumer could reach for: the naive version is `order` plus an auto margin,
46065
47083
  and the row's `end` slot already carries an auto margin of its own, so the
@@ -50436,7 +51454,7 @@ export type CustomElements<F extends Framework = "other"> = {
50436
51454
  * - `expand`: The button after the first crumb of a folded slotted trail, which shows the folded crumbs.
50437
51455
  * - `fold-separator`: The chevron before that button.
50438
51456
  * - `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.
51457
+ * - `separator-mark`: The chevron between crumbs, or the slash under the trail's `separator="slash"`, shown when no separator is slotted.
50440
51458
  *
50441
51459
  * ## CSS States
50442
51460
  *
@@ -50478,6 +51496,18 @@ export type CustomElements<F extends Framework = "other"> = {
50478
51496
  * - `max-items`/`maxItems`: The most crumbs a trail drawn from `items` shows before it folds its middle
50479
51497
  * into one, counting the first and the last. Unset, it never folds. At least
50480
51498
  * 2, so the first crumb and the current page always show.
51499
+ * - `separator`: The mark between one crumb and the next, for the whole trail. Unset is a
51500
+ * chevron; `slash` is a slash, as a path or a repository and its branch is
51501
+ * written.
51502
+ *
51503
+ * **On the trail rather than on each crumb**, because the marks are one
51504
+ * decision: a trail whose separators differ from crumb to crumb is a
51505
+ * mistake, and a trail drawn from `items` has no crumb of yours to set it
51506
+ * on. A crumb's own `separator` slot still replaces its mark, for the rare
51507
+ * crumb that needs something else.
51508
+ *
51509
+ * Optional and reflected, per the rule that a reflected property takes no
51510
+ * default, so a stylesheet can select on it.
50481
51511
  * - `items`: The trail as data, drawn as crumbs before any you slot. The last item is the
50482
51512
  * current page.
50483
51513
  *
@@ -50532,7 +51562,7 @@ export type CustomElements<F extends Framework = "other"> = {
50532
51562
  * - `crumb-fold-separator`: The chevron before that button.
50533
51563
  * - `crumb-link`: The link, or the current page's words, of a crumb drawn from `items`.
50534
51564
  * - `crumb-separator`: The separator before a crumb drawn from `items`.
50535
- * - `crumb-separator-mark`: The chevron before a crumb drawn from `items`.
51565
+ * - `crumb-separator-mark`: The chevron, or the slash under `separator="slash"`, before a crumb drawn from `items`.
50536
51566
  *
50537
51567
  * ## CSS States
50538
51568
  *
@@ -50748,6 +51778,20 @@ export type CustomElements<F extends Framework = "other"> = {
50748
51778
  * name to derive one rather than dash-casing it, and what a consumer writes
50749
51779
  * is the platform's `commandfor`.
50750
51780
  * - `commandfor`/`commandFor`: The id of the element the command is sent to.
51781
+ * - `focusable-when-disabled`/`focusableWhenDisabled`: Whether a disabled button stays in the tab order, so a tooltip around it
51782
+ * can say why it is disabled.
51783
+ *
51784
+ * Set it on a button whose reason a Tooltip gives, such as a Save with no
51785
+ * changes to save. While the button is disabled, it keeps focus and takes
51786
+ * hover, and it refuses every press: a click, Enter and Space, and Enter in
51787
+ * a field of its form. The click does not reach your listeners, and a submit
51788
+ * button submits nothing. The inner control carries `aria-disabled` in place
51789
+ * of the native `disabled`, so a screen reader still says it is unavailable.
51790
+ * The styled button keeps the disabled look.
51791
+ *
51792
+ * Leave it unset on a button with no reason to give. A plain disabled button
51793
+ * leaves the tab order, as a native one does, and a keyboard reader skips a
51794
+ * stop that does nothing. Set `pending` for the wait after a press.
50751
51795
  * - `formaction`/`formAction`: Where this button's submission goes, overriding the form's own.
50752
51796
  *
50753
51797
  * **The five `form*` overrides ride on a native submit button that stands in
@@ -51835,6 +52879,16 @@ export type CustomElements<F extends Framework = "other"> = {
51835
52879
  * - `pan-up-spinner`: The ring `pan-up` turns while it is pending.
51836
52880
  * - `pan-up-text`: The box `pan-up`'s glyph sits in.
51837
52881
  * - `region`: The named region the board is drawn in.
52882
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
52883
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
52884
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
52885
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
52886
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
52887
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
52888
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
52889
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
52890
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
52891
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
51838
52892
  * - `viewport`: The box the board is drawn inside.
51839
52893
  * - `zoom-in`: The button that zooms in.
51840
52894
  * - `zoom-in-button`: `zoom-in`'s inner button.
@@ -52376,15 +53430,36 @@ export type CustomElements<F extends Framework = "other"> = {
52376
53430
  >;
52377
53431
 
52378
53432
  /**
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.
53433
+ * The composer is one box. What the draft carries sits at its top, in a row
53434
+ * that wraps, inset to the line the caret starts on. The field grows with its
53435
+ * text up to a maximum height, through `field-sizing: content`. Where that is
53436
+ * not supported, the field keeps its rows and scrolls. The maximum height
53437
+ * keeps the composer from covering the transcript.
53438
+ *
53439
+ * With two `placeholders` or more, each example rolls into the next: the one
53440
+ * showing rises a little as it fades and blurs, and the next rises into its
53441
+ * place from below as it fades in, the two crossing so the field is never
53442
+ * empty. A box that changes height for the next example changes as it
53443
+ * lands. Where the browser has no CSS anchor
53444
+ * positioning, the examples fade into each other in the field's own
53445
+ * placeholder.
52383
53446
  *
52384
53447
  * ## Attributes & Properties
52385
53448
  *
52386
53449
  * Component attributes and properties that can be applied to the element or by using JavaScript.
52387
53450
  *
53451
+ * - `glow`: Draws the composer's focus as a glow: a light that runs once around the
53452
+ * edge as the composer takes focus, then a soft steady edge while it holds
53453
+ * it, in place of the focus ring.
53454
+ *
53455
+ * **On focus, and only then.** It says the composer is listening. A glow
53456
+ * that ran while a reply was on its way would be a second indicator of what
53457
+ * the conversation already shows, and one that ran all the time would be
53458
+ * decoration that moves. With reduced motion asked for, the edge lights
53459
+ * without the sweep.
53460
+ *
53461
+ * The steady edge is the focus indicator, so the ring is not drawn as well.
53462
+ * Its color is `--chat-composer-glow-color`, the primary color unless set.
52388
53463
  * - `listening-label`/`listeningLabel`: What a screen reader hears as listening starts.
52389
53464
  * - `stopped-listening-label`/`stoppedListeningLabel`: What a screen reader hears as listening stops.
52390
53465
  * - `voice`: Draws a button that listens for dictation and types what it hears at
@@ -52393,6 +53468,16 @@ export type CustomElements<F extends Framework = "other"> = {
52393
53468
  * `email` or `number` draws no button.
52394
53469
  * - `voice-label`/`voiceLabel`: The dictation button's name while it is not listening.
52395
53470
  * - `voice-stop-label`/`voiceStopLabel`: The dictation button's name while it listens.
53471
+ * - `attached`: Whether the draft holds something besides its text, such as an attached
53472
+ * file. The draft then counts as one though the field is empty, so the
53473
+ * send button shows in place of the `idle` slot.
53474
+ * - `busy`: Whether a reply is on its way. While set, the send button is a stop
53475
+ * button that sends `helix-stop`, and the draft does not send.
53476
+ *
53477
+ * **The same button rather than one beside it**, because sending and
53478
+ * stopping are never both possible: while a reply is on its way there is
53479
+ * nothing to send to, and the place the reader's eye goes to act is the
53480
+ * place that can act. The field stays open for the next turn.
52396
53481
  * - `feedback`: A message about the draft, shown under the field. While set, the composer
52397
53482
  * is invalid, does not send, and does not submit, as a field's `feedback`
52398
53483
  * does, and the message is announced as it appears.
@@ -52401,12 +53486,28 @@ export type CustomElements<F extends Framework = "other"> = {
52401
53486
  * - `minlength`/`minLength`: The fewest characters a draft can have, once the reader has written in
52402
53487
  * the field, as on a `<textarea>`.
52403
53488
  * - `placeholder`: Placeholder text shown in an empty field.
53489
+ * - `queue`: Whether Enter sends while `busy`, for a page that queues the turn or
53490
+ * hands it to the reply under way.
53491
+ *
53492
+ * Off by default, because a page that does neither would drop the turn: it
53493
+ * has nowhere to put a message while a reply is coming. The button stays
53494
+ * the stop button either way, since stopping is still the one thing it
53495
+ * should do while a reply is on its way.
52404
53496
  * - `required`: Whether the form needs a draft to submit. An empty draft never sends,
52405
53497
  * required or not.
52406
53498
  * - `rows`: How many rows the field opens at.
52407
53499
  *
52408
53500
  * It grows from there.
53501
+ * - `send-disabled`/`sendDisabled`: Whether the draft waits to be sent, such as while an attachment is still
53502
+ * read. The send button is unavailable and Enter does not send, while the
53503
+ * field stays open. The stop button shown while `busy` still stops.
52409
53504
  * - `send-label`/`sendLabel`: Label for the send button.
53505
+ * - `send-reason`/`sendReason`: Why the draft waits, such as "Reading photo.jpg", shown in a tooltip on
53506
+ * the send button while `send-disabled` is set. The button then stays in
53507
+ * the tab order and takes the pointer, with `aria-disabled` in place of
53508
+ * `disabled`, so the reason can be reached by keyboard and by pointer, as
53509
+ * Button's `focusable-when-disabled` does. A press still sends nothing.
53510
+ * - `stop-label`/`stopLabel`: Label for the stop button shown while `busy`.
52410
53511
  * - `submit-on`/`submitOn`: What sends the turn: `enter` for the Enter key, or `button` for the send
52411
53512
  * button only.
52412
53513
  *
@@ -52446,6 +53547,22 @@ export type CustomElements<F extends Framework = "other"> = {
52446
53547
  * - `speechEngine`: The engine this field listens through, in place of the one
52447
53548
  * `registerSpeechEngine` gave the page, or the browser's own. (property only)
52448
53549
  * - `listening`: Whether the field is listening for dictation now. (property only) (readonly)
53550
+ * - `placeholders`: Examples the empty field shows in turn, in place of `placeholder`, such
53551
+ * as tasks a reader might ask for. Each shows for 6.5 seconds, and a longer
53552
+ * one shows longer, up to 10 seconds.
53553
+ *
53554
+ * **Each is the field's placeholder in its turn**, so a screen reader that
53555
+ * reaches the field hears the one showing. The swap runs through
53556
+ * `:state(example-leaving)`, as one example leaves, and
53557
+ * `:state(example-entering)`, as the next arrives.
53558
+ *
53559
+ * **They move only while nobody is about to write, and while the reader
53560
+ * can see them.** An empty field without focus moves on. Focus or text
53561
+ * holds the example showing, and an example already leaving finishes its
53562
+ * turn. A composer scrolled out of view holds its example, and the example
53563
+ * gets its full time again when the composer comes back. Where the reader
53564
+ * asked for less motion, or the page paused its motion, the first example
53565
+ * stays. (property only)
52449
53566
  * - `typing`: Whether the user is writing: true from their first keystroke until they
52450
53567
  * send, clear the field, or pause for `typing-timeout` milliseconds. (property only) (readonly)
52451
53568
  * - `validity`: Whether the control meets its constraints, and why not. (property only) (readonly)
@@ -52481,6 +53598,7 @@ export type CustomElements<F extends Framework = "other"> = {
52481
53598
  * - `helix-before-listen`: The dictation button was pressed. Cancelable: cancel it to keep the composer from listening.
52482
53599
  * - `helix-listen`: Dictation settled on a phrase and put it in the draft, after the draft's own `input`.
52483
53600
  * - `helix-send`: Fired when the user sends their turn, and cancelable.
53601
+ * - `helix-stop`: Fired when the user presses the stop button, shown in place of the send button while `busy` is set.
52484
53602
  * - `helix-typing`: The user started or stopped writing, with `typing` saying which, as the composer's `typing` does.
52485
53603
  * - `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
53604
  *
@@ -52488,8 +53606,10 @@ export type CustomElements<F extends Framework = "other"> = {
52488
53606
  *
52489
53607
  * Areas where markup can be added to the component.
52490
53608
  *
53609
+ * - `attachments`: What the draft carries, such as images or files, inside the box and above the field.
52491
53610
  * - `end`: Content under the field, beside the send button.
52492
53611
  * - `start`: Content under the field at the leading edge, such as an attachment button or a model picker.
53612
+ * - `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
53613
  *
52494
53614
  * ## Methods
52495
53615
  *
@@ -52562,6 +53682,7 @@ export type CustomElements<F extends Framework = "other"> = {
52562
53682
  *
52563
53683
  * - `--chat-composer-background-color`: Fill behind the composer.
52564
53684
  * - `--chat-composer-border-width`: Width of the composer's edge, so your theme can remove it.
53685
+ * - `--chat-composer-glow-color`: Color of the focus glow under `glow`. Defaults to the primary color.
52565
53686
  * - `--chat-composer-max-block-size`: Maximum height the field grows to.
52566
53687
  * - `--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
53688
  *
@@ -52569,13 +53690,27 @@ export type CustomElements<F extends Framework = "other"> = {
52569
53690
  *
52570
53691
  * Custom selectors for styling elements within the component.
52571
53692
  *
53693
+ * - `attachments`: The row above the field that holds the `attachments` slot, inset to the field's text and hidden while the slot is empty.
53694
+ * - `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.
53695
+ * - `example-leaving`: The example on its way out while the next comes in, for its first 250 milliseconds. Set together with `example`.
52572
53696
  * - `field`: The text field.
52573
53697
  * - `send`: The send button.
52574
53698
  * - `tools`: The row under the field.
52575
53699
  * - `composer`: The whole composer.
52576
53700
  * - `end`: The box around the `end` slot.
52577
53701
  * - `feedback`: The `feedback` message, under the field while it is set.
52578
- * - `mark`: The icon inside the send button.
53702
+ * - `idle`: The box around the `idle` slot, shown in the send button's place while the draft is empty.
53703
+ * - `mark`: The icon inside the send button, a return key, or a square while `busy`.
53704
+ * - `reason-arrow`: The arrow of the bubble that says `send-reason`, forwarded from `Tooltip`.
53705
+ * - `reason-arrow-bottom`: The arrow while the bubble is below the send button, on the bubble's top edge. Set together with `reason-arrow`.
53706
+ * - `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`.
53707
+ * - `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`.
53708
+ * - `reason-arrow-top`: The arrow while the bubble is above the send button, on the bubble's bottom edge. Set together with `reason-arrow`.
53709
+ * - `reason-surface`: The bubble that says `send-reason` over the send button, forwarded from `Tooltip`.
53710
+ * - `reason-surface-bottom`: The bubble while it is below the send button. Set together with `reason-surface`.
53711
+ * - `reason-surface-left`: The bubble while it is left of the send button. Set together with `reason-surface`.
53712
+ * - `reason-surface-right`: The bubble while it is right of the send button. Set together with `reason-surface`.
53713
+ * - `reason-surface-top`: The bubble while it is above the send button. Set together with `reason-surface`.
52579
53714
  * - `start`: The box around the `start` slot.
52580
53715
  * - `voice`: The dictation button, under `voice`, before the send button.
52581
53716
  * - `voice-listening`: The dictation button while it listens. Set alongside `voice`.
@@ -52585,6 +53720,8 @@ export type CustomElements<F extends Framework = "other"> = {
52585
53720
  *
52586
53721
  * These can be used to apply styling when a component is in a given state.
52587
53722
  *
53723
+ * - `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`.
53724
+ * - `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
53725
  * - `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
53726
  * - `listening`: While the composer listens for dictation. The element sets `--dictation-level` on itself meanwhile, from 0 to 1, for a meter.
52590
53727
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -52685,6 +53822,7 @@ export type CustomElements<F extends Framework = "other"> = {
52685
53822
  *
52686
53823
  * - `(default)`: The turn's content.
52687
53824
  * - `actions`: Controls for the turn.
53825
+ * - `attachments`: What the turn carries, such as images or files, above the bubble.
52688
53826
  * - `avatar`: The author's avatar.
52689
53827
  * - `indicator`: The indicator shown before the first token arrives. Replaces the three dots.
52690
53828
  * - `sources`: The turn's sources, such as citations, documents, or a retrieved page.
@@ -52713,6 +53851,7 @@ export type CustomElements<F extends Framework = "other"> = {
52713
53851
  * - `indicator`: The three dots, shown when nothing is in the `indicator` slot.
52714
53852
  * - `meta`: The time and the state together.
52715
53853
  * - `actions`: The controls on the turn, beside its time.
53854
+ * - `attachments`: The box around the `attachments` slot, above the content and outside the bubble.
52716
53855
  * - `avatar`: The box around the `avatar` slot.
52717
53856
  * - `body`: The content and the line under it.
52718
53857
  * - `mark`: The status icon beside a failure.
@@ -52915,6 +54054,7 @@ export type CustomElements<F extends Framework = "other"> = {
52915
54054
  * - `loading`: Shown while the history loads.
52916
54055
  * - `message`: The message drawn for a turn from `turns`, forwarded whole.
52917
54056
  * - `message-actions`: The controls on a turn from `turns`, beside its time.
54057
+ * - `message-attachments`: The attachments above the bubble of a turn from `turns`.
52918
54058
  * - `message-avatar`: The avatar box of a turn from `turns`.
52919
54059
  * - `message-avatar-mine`: The avatar box of a turn from `turns` by `me`.
52920
54060
  * - `message-body`: The content of a turn from `turns`, and the line under it.
@@ -53895,6 +55035,7 @@ export type CustomElements<F extends Framework = "other"> = {
53895
55035
  *
53896
55036
  * - `change`: The reader finished an edit and focus left the code, in the engine or the plain field.
53897
55037
  * - `helix-before-change`: The text is about to change. Cancelable: cancel it to keep the current text.
55038
+ * - `helix-found`: The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none.
53898
55039
  * - `input`: Fired after the text changes.
53899
55040
  *
53900
55041
  * ## Slots
@@ -53998,9 +55139,9 @@ export type CustomElements<F extends Framework = "other"> = {
53998
55139
  * - `diagnostics`: The list of problems under the code, while there are any.
53999
55140
  * - `feedback`: The message that says what is wrong.
54000
55141
  * - `field`: The frame around the header, the code, the problems and the status line.
54001
- * - `find`: The button in the header that opens the find bar.
54002
- * - `find-bar`: The find bar under the header, while it is open.
54003
- * - `find-button`: The Find button's inner button.
55142
+ * - `find`: The find bar under the header, where the reader searches the code: a Find of its own.
55143
+ * - `find-actions`: The find bar's `actions` slot, which the editor fills with nothing.
55144
+ * - `find-bar`: The find bar's strip: the replace toggle, the field, the count, the toolbar, and the replace row while it shows.
54004
55145
  * - `find-close`: The button that closes the find bar.
54005
55146
  * - `find-close-button`: The close button's inner button.
54006
55147
  * - `find-close-live`: The close button's live region, which speaks while the button is pending.
@@ -54010,10 +55151,11 @@ export type CustomElements<F extends Framework = "other"> = {
54010
55151
  * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
54011
55152
  * - `find-count`: Which match is selected, of how many.
54012
55153
  * - `find-field`: The field the search is typed in.
54013
- * - `find-live`: The Find button's live region, which speaks while the button is pending.
55154
+ * - `find-live`: The find bar's live region, which says the count as it changes.
54014
55155
  * - `find-match-case`: The option that finds only the same case. Pressed while it applies.
54015
55156
  * - `find-match-case-button`: The match case button's inner button.
54016
55157
  * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
55158
+ * - `find-match-case-pressed`: The match case option while it applies, beside `find-match-case`.
54017
55159
  * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
54018
55160
  * - `find-match-case-text`: The box the match case button's icon sits in.
54019
55161
  * - `find-next`: The button that selects the next match.
@@ -54029,18 +55171,34 @@ export type CustomElements<F extends Framework = "other"> = {
54029
55171
  * - `find-regex`: The option that reads the search as a regular expression. Pressed while it applies.
54030
55172
  * - `find-regex-button`: The regular expression button's inner button.
54031
55173
  * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
55174
+ * - `find-regex-pressed`: The regular expression option while it applies, beside `find-regex`.
54032
55175
  * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
54033
55176
  * - `find-regex-text`: The box the regular expression button's icon sits in.
54034
- * - `find-replace`: The button that shows the replace field under the find field. Expanded while it shows.
54035
- * - `find-replace-button`: The find and replace button's inner button.
54036
- * - `find-replace-live`: The find and replace button's live region, which speaks while the button is pending.
54037
- * - `find-replace-spinner`: The ring the find and replace button turns while it is pending.
54038
- * - `find-replace-text`: The box the find and replace button's icon sits in.
54039
- * - `find-spinner`: The ring the Find button turns while it is pending.
54040
- * - `find-text`: The box the Find button's icon sits in.
55177
+ * - `find-replace`: The button that replaces the selected match.
55178
+ * - `find-replace-all`: The button that replaces every match.
55179
+ * - `find-replace-all-button`: The Replace all button's inner button.
55180
+ * - `find-replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
55181
+ * - `find-replace-all-spinner`: The ring the Replace all button turns while it is pending.
55182
+ * - `find-replace-all-text`: The box the Replace all button's words sits in.
55183
+ * - `find-replace-button`: The Replace button's inner button.
55184
+ * - `find-replace-field`: The field the replacement is typed in.
55185
+ * - `find-replace-live`: The Replace button's live region, which speaks while the button is pending.
55186
+ * - `find-replace-spinner`: The ring the Replace button turns while it is pending.
55187
+ * - `find-replace-text`: The box the Replace button's words sits in.
55188
+ * - `find-replace-toggle`: The button that shows the replace field under the find field. Expanded while it shows. Not drawn while `readonly`.
55189
+ * - `find-replace-toggle-button`: The find and replace button's inner button.
55190
+ * - `find-replace-toggle-live`: The find and replace button's live region, which speaks while the button is pending.
55191
+ * - `find-replace-toggle-spinner`: The ring the find and replace button turns while it is pending.
55192
+ * - `find-replace-toggle-text`: The box the find and replace button's icon sits in.
55193
+ * - `find-toggle`: The button in the header that opens and closes the find bar. Expanded while it is open.
55194
+ * - `find-toggle-button`: The Find button's inner button.
55195
+ * - `find-toggle-live`: The Find button's live region, which speaks while the button is pending.
55196
+ * - `find-toggle-spinner`: The ring the Find button turns while it is pending.
55197
+ * - `find-toggle-text`: The box the Find button's icon sits in.
54041
55198
  * - `find-whole-word`: The option that finds only whole words. Pressed while it applies.
54042
55199
  * - `find-whole-word-button`: The whole word button's inner button.
54043
55200
  * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
55201
+ * - `find-whole-word-pressed`: The whole word option while it applies, beside `find-whole-word`.
54044
55202
  * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
54045
55203
  * - `find-whole-word-text`: The box the whole word button's icon sits in.
54046
55204
  * - `header`: The strip above the code: the name, the language, and the controls.
@@ -54049,17 +55207,6 @@ export type CustomElements<F extends Framework = "other"> = {
54049
55207
  * - `language`: The language's name in the header.
54050
55208
  * - `position`: The caret's line and column, in the status line.
54051
55209
  * - `problem-count`: How many problems there are, in the status line.
54052
- * - `replace`: The button that replaces the selected match.
54053
- * - `replace-all`: The button that replaces every match.
54054
- * - `replace-all-button`: The Replace all button's inner button.
54055
- * - `replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
54056
- * - `replace-all-spinner`: The ring the Replace all button turns while it is pending.
54057
- * - `replace-all-text`: The box the Replace all button's words sit in.
54058
- * - `replace-button`: The Replace button's inner button.
54059
- * - `replace-field`: The field the replacement is typed in.
54060
- * - `replace-live`: The Replace button's live region, which speaks while the button is pending.
54061
- * - `replace-spinner`: The ring the Replace button turns while it is pending.
54062
- * - `replace-text`: The box the Replace button's words sit in.
54063
55210
  * - `status`: The strip under the code.
54064
55211
  * - `view`: Where an engine draws, while one is connected.
54065
55212
  *
@@ -54070,7 +55217,6 @@ export type CustomElements<F extends Framework = "other"> = {
54070
55217
  * - `connected`: An engine draws the editor.
54071
55218
  * - `find-open`: The find bar is open.
54072
55219
  * - `invalid`: The editor has an error to show, from `required` or your `feedback`.
54073
- * - `replace-open`: The replace field shows under the find field.
54074
55220
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
54075
55221
  */
54076
55222
  "helix-code-editor": Partial<
@@ -54740,7 +55886,7 @@ export type CustomElements<F extends Framework = "other"> = {
54740
55886
  *
54741
55887
  * - `--color-input-background-color`: Fill behind the field.
54742
55888
  * - `--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.
55889
+ * - `--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
55890
  * - `--color-input-panel-size`: Width of the panel, and so of the square.
54745
55891
  * - `--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
55892
  * - `--color-input-swatch-radius`: Corner radius of the swatch in `variant="swatch"`.
@@ -55573,7 +56719,7 @@ export type CustomElements<F extends Framework = "other"> = {
55573
56719
  *
55574
56720
  * - `--combobox-background-color`: Fill behind the field.
55575
56721
  * - `--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.
56722
+ * - `--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
56723
  * - `--combobox-control-size`: Smallest the text field shrinks to once tags share its line.
55578
56724
  * - `--combobox-panel-size`: Width of the panel. Follows the field by default.
55579
56725
  * - `--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 +56790,16 @@ export type CustomElements<F extends Framework = "other"> = {
55644
56790
  *
55645
56791
  * Component attributes and properties that can be applied to the element or by using JavaScript.
55646
56792
  *
56793
+ * - `material`: The panel's surface: `frosted` or `glass`, as on `Dialog`, which the
56794
+ * palette opens in and hands the value to.
56795
+ *
56796
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
56797
+ * ground over the theme's blur, and `frosted` the same pair turned up, so a
56798
+ * page whose panels are frosted has a palette that matches. Its strength is
56799
+ * the theme's, as on `Popover`, `Menu` and `Drawer`.
56800
+ *
56801
+ * **No `transparent`, deliberately.** A palette over arbitrary page content
56802
+ * is only readable because it has a ground.
55647
56803
  * - `default-open`/`defaultOpen`: Whether the element starts open. Ignored once `open` is written.
55648
56804
  * - `open`: Whether the element is open.
55649
56805
  *
@@ -55801,6 +56957,7 @@ export type CustomElements<F extends Framework = "other"> = {
55801
56957
  * CSS variables available for styling the component.
55802
56958
  *
55803
56959
  * - `--command-list-size`: How tall the list grows before it scrolls.
56960
+ * - `--command-radius`: The corners of the palette's panel. Defaults to the dialog's.
55804
56961
  * - `--command-size`: How wide the palette is. Defaults to `40rem`.
55805
56962
  *
55806
56963
  * ## CSS Parts
@@ -55919,6 +57076,20 @@ export type CustomElements<F extends Framework = "other"> = {
55919
57076
  * It replaces `Button.value`, the submit value: a copy button never submits,
55920
57077
  * whatever its `type`. Declared here so its own page says what it holds.
55921
57078
  * - `aria-label`/`undefined`: undefined
57079
+ * - `focusable-when-disabled`/`focusableWhenDisabled`: Whether a disabled button stays in the tab order, so a tooltip around it
57080
+ * can say why it is disabled.
57081
+ *
57082
+ * Set it on a button whose reason a Tooltip gives, such as a Save with no
57083
+ * changes to save. While the button is disabled, it keeps focus and takes
57084
+ * hover, and it refuses every press: a click, Enter and Space, and Enter in
57085
+ * a field of its form. The click does not reach your listeners, and a submit
57086
+ * button submits nothing. The inner control carries `aria-disabled` in place
57087
+ * of the native `disabled`, so a screen reader still says it is unavailable.
57088
+ * The styled button keeps the disabled look.
57089
+ *
57090
+ * Leave it unset on a button with no reason to give. A plain disabled button
57091
+ * leaves the tab order, as a native one does, and a keyboard reader skips a
57092
+ * stop that does nothing. Set `pending` for the wait after a press.
55922
57093
  * - `pending`: Whether the action the button started is still running.
55923
57094
  *
55924
57095
  * A pending button keeps focus and stays in the tab order, and refuses every
@@ -56975,7 +58146,7 @@ export type CustomElements<F extends Framework = "other"> = {
56975
58146
  *
56976
58147
  * - `--date-input-background-color`: The fill behind the field.
56977
58148
  * - `--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.
58149
+ * - `--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
58150
  * - `--date-input-segment-focus-background-color`: The fill behind the segment with focus, in `segmented`. It follows `--helix-color-primary-surface`.
56980
58151
  * - `--date-input-segment-focus-color`: The text of the segment with focus, in `segmented`.
56981
58152
  * - `--date-input-segment-literal-color`: The text the locale writes between two segments, in `segmented`.
@@ -57883,6 +59054,16 @@ export type CustomElements<F extends Framework = "other"> = {
57883
59054
  * - `screenshot-live`: The screenshot button's live region, which speaks while the button is pending.
57884
59055
  * - `screenshot-spinner`: The ring the screenshot button turns while it is pending.
57885
59056
  * - `screenshot-text`: The box the screenshot button's icon sits in.
59057
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
59058
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
59059
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
59060
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
59061
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
59062
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
59063
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
59064
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
59065
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
59066
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
57886
59067
  * - `touch`: A ring where a touch is or was.
57887
59068
  * - `touch-held`: A ring under a finger that is down, beside `touch`, with `show-touches`.
57888
59069
  * - `volume-down`: The Volume down button.
@@ -57921,6 +59102,15 @@ export type CustomElements<F extends Framework = "other"> = {
57921
59102
  *
57922
59103
  * Component attributes and properties that can be applied to the element or by using JavaScript.
57923
59104
  *
59105
+ * - `material`: The panel's surface: `frosted` or `glass`.
59106
+ *
59107
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
59108
+ * ground over the theme's blur, and `frosted` the same pair turned up, as
59109
+ * on `Popover`, `Menu`, `Drawer` and `Tooltip`, so a page whose panels are
59110
+ * frosted has dialogs that match.
59111
+ *
59112
+ * **No `transparent`, deliberately.** A dialog over arbitrary page content
59113
+ * is only readable because it has a ground.
57924
59114
  * - `size`: How wide the panel is allowed to be.
57925
59115
  *
57926
59116
  * Steps rather than a number, because a dialog's width is a fact about what is
@@ -58096,9 +59286,10 @@ export type CustomElements<F extends Framework = "other"> = {
58096
59286
  *
58097
59287
  * CSS variables available for styling the component.
58098
59288
  *
59289
+ * - `--dialog-backdrop`: Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy.
58099
59290
  * - `--dialog-background-color`: The panel's fill. Follows `--helix-color-surface-overlay`.
58100
59291
  * - `--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.
59292
+ * - `--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
59293
  * - `--dialog-color`: Color of the words in the panel. Follows `--helix-color-foreground`.
58103
59294
  * - `--dialog-icon-size`: How big the mark above the title is.
58104
59295
  * - `--dialog-inline-size`: Width of the panel.
@@ -58741,7 +59932,7 @@ export type CustomElements<F extends Framework = "other"> = {
58741
59932
  * - `--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
59933
  * - `--drawer-background-color`: Surface behind the panel.
58743
59934
  * - `--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.
59935
+ * - `--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
59936
  * - `--drawer-padding`: Padding inside the panel.
58746
59937
  * - `--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
59938
  * - `--drawer-radius`: Corner radius on the edges that face the page.
@@ -60232,6 +61423,207 @@ export type CustomElements<F extends Framework = "other"> = {
60232
61423
  HelixFilterInputProps & BaseProps<HelixFilterInput, F> & BaseEvents<HelixFilterInput>
60233
61424
  >;
60234
61425
 
61426
+ /**
61427
+ * Drawn as the find bars of Terminal and Code Editor are: a dense strip on the
61428
+ * raised surface, with a line under it where it meets the content. Place it
61429
+ * above the content it searches, such as at the top of a pane, or make it
61430
+ * sticky with `position: sticky` on the element.
61431
+ *
61432
+ * Every match is painted with `::highlight(helix-find-match)` and the current
61433
+ * one with `::highlight(helix-find-current)`, both in the base layer. Text is
61434
+ * painted from the tree it lives in, so content in a shadow root of your own
61435
+ * needs the two rules in that root's styles.
61436
+ *
61437
+ * ## Attributes & Properties
61438
+ *
61439
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
61440
+ *
61441
+ * - `default-open`/`defaultOpen`: Whether the element starts open. Ignored once `open` is written.
61442
+ * - `open`: Whether the element is open.
61443
+ *
61444
+ * One property, not two, so `dialog.open` answers the question anyone
61445
+ * asking it meant. Writing always applies; `<helix-dialog open>` is the
61446
+ * same statement in markup.
61447
+ *
61448
+ * **Not reflected, and that is required rather than tidy.** Reflection
61449
+ * writes the resolved state back as an attribute, so an element that opened
61450
+ * itself would put `open` on its own host: cloned, serialized for
61451
+ * hydration, or diffed by a framework, it comes back holding whatever the
61452
+ * last reader did rather than what the author wrote. `:state(open)` carries
61453
+ * the resolved state for stylesheets, which is what the mirror is for.
61454
+ * - `close-label`/`closeLabel`: The close button's label.
61455
+ * - `controls-label`/`controlsLabel`: The name of the bar's toolbar, read by screen readers.
61456
+ * - `for`: The id of the element whose text Find searches, in the same tree as Find.
61457
+ * With a finder attached, it names only where the find key opens the bar.
61458
+ * - `invalid-label`/`invalidLabel`: What the count says when the regular expression cannot be read.
61459
+ * - `label`: The field's name and placeholder, and the name of the bar.
61460
+ * - `match-case`/`matchCase`: Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar.
61461
+ * - `match-case-label`/`matchCaseLabel`: The match case button's label.
61462
+ * - `matches-label`/`matchesLabel`: What the count says of the matches. `{index}` is the current match,
61463
+ * counting from 1, and `{count}` how many there are.
61464
+ * - `next-label`/`nextLabel`: The next match button's label.
61465
+ * - `options`: Which options the bar draws, as a list of `match-case`, `whole-word`, and
61466
+ * `regex`, or `none`. They are always drawn in that order.
61467
+ * - `previous-label`/`previousLabel`: The previous match button's label.
61468
+ * - `query`: What the field holds: what the reader typed, or what you set.
61469
+ * - `readonly`/`readOnly`: Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling.
61470
+ * - `regex`: Whether the field reads as a regular expression, in JavaScript's syntax. The reader turns it on and off from the bar.
61471
+ * - `regex-label`/`regexLabel`: The regular expression button's label.
61472
+ * - `replace-all-label`/`replaceAllLabel`: The Replace all button's words.
61473
+ * - `replace-field-label`/`replaceFieldLabel`: The replace field's name and placeholder.
61474
+ * - `replace-label`/`replaceLabel`: The Replace button's words.
61475
+ * - `replacement`: What the replace field holds, which Replace puts in place of a match.
61476
+ * - `replace-toggle-label`/`replaceToggleLabel`: The label of the button that shows the replace row.
61477
+ * - `shortcut`: The key that opens the bar, as a chord such as `mod+f`, where `mod` is
61478
+ * Command on an Apple keyboard and Control elsewhere. Empty turns the key
61479
+ * off, as for a bar the page opens itself.
61480
+ * - `skip`: Elements inside the content whose text is not searched, as a selector,
61481
+ * such as line numbers or the buttons beside each message.
61482
+ * - `whole-word`/`wholeWord`: Whether only whole words match. The reader turns it on and off from the bar.
61483
+ * - `whole-word-label`/`wholeWordLabel`: The whole word button's label.
61484
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
61485
+ *
61486
+ * **Named `whenSettled` because `settled` is taken four times over**, by
61487
+ * Image, Splitter and both color controls, none of them about transitions. A
61488
+ * base class takes the name every subclass then cannot use.
61489
+ *
61490
+ * **The state it reports cannot be watched, which is why this exists.** A
61491
+ * custom state is deliberately not in the DOM, so there is no
61492
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
61493
+ * instead.
61494
+ *
61495
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
61496
+ * the suppression is still active in. That is the distinction `readyToMove`
61497
+ * in `@fusion.dev/helix-testing` is written around.
61498
+ *
61499
+ * It never resolves where `requestAnimationFrame` never fires, which is a
61500
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
61501
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
61502
+ * browser harness's awaits it alone: a browser always runs the frame, and a
61503
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
61504
+ *
61505
+ * ## Events
61506
+ *
61507
+ * Events that will be emitted by the component.
61508
+ *
61509
+ * - `toggle`: Sent when the bar opens or closes, with `newState` and `oldState`.
61510
+ * - `helix-before-close`: Fired before the bar closes, and cancelable.
61511
+ * - `helix-before-open`: Fired before the bar opens, and cancelable. Canceling it keeps the bar closed.
61512
+ * - `helix-found`: Sent after each search and each move among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none.
61513
+ *
61514
+ * ## Slots
61515
+ *
61516
+ * Areas where markup can be added to the component.
61517
+ *
61518
+ * - `actions`: Controls of your own in the bar's toolbar, between its options and the buttons that move between matches.
61519
+ * - `close-icon`: Replaces the glyph inside the close button.
61520
+ * - `match-case-icon`: Replaces the glyph inside the match case button.
61521
+ * - `next-icon`: Replaces the glyph inside the next match button.
61522
+ * - `previous-icon`: Replaces the glyph inside the previous match button.
61523
+ * - `regex-icon`: Replaces the glyph inside the regular expression button.
61524
+ * - `whole-word-icon`: Replaces the glyph inside the whole word button.
61525
+ *
61526
+ * ## Methods
61527
+ *
61528
+ * Methods that can be called to access component functionality.
61529
+ *
61530
+ * - `requestOpen(next: boolean) => boolean`: Requests that the element open or close, and returns whether the change
61531
+ * was applied.
61532
+ *
61533
+ * Announces before it acts, so `preventDefault()` on the `helix-before-open` or
61534
+ * `helix-before-close` is a refusal and nothing moves. Nobody refusing means the
61535
+ * element opens or closes itself, whether or not a consumer declared
61536
+ * `open`: a declared property is a seed and a correction, and a consumer
61537
+ * who wants the decision for themselves refuses it and assigns their own.
61538
+ * - `toggleOpen() => boolean`: Requests the opposite of the current state.
61539
+ * - `attach(finder: Finder) => FindSink`: Searches with `finder` in place of the text finder, and returns how it
61540
+ * reports a search it finishes later. Attaching another lets go of this one.
61541
+ * - `show() => Promise<void>`: Opens the bar and puts focus in its field, with what it holds selected.
61542
+ * Text selected in the content, on one line, becomes the search.
61543
+ * - `hide() => void`: Closes the bar and takes the marks away. Focus in the bar returns to where it was before the bar opened.
61544
+ * - `next() => void`: Moves to the next match, after the last one to the first.
61545
+ * - `previous() => void`: Moves to the previous match, before the first one to the last.
61546
+ * - `refresh() => void`: Searches again, staying on the current match where it still matches, for content changed in a way Find cannot see.
61547
+ *
61548
+ * ## CSS Custom Properties
61549
+ *
61550
+ * CSS variables available for styling the component.
61551
+ *
61552
+ * - `--find-background-color`: The bar's fill. Defaults to the raised surface.
61553
+ * - `--find-border-color`: The line under the bar and the fields' edges.
61554
+ * - `--find-field-background-color`: The fields' fill. Defaults to the page's background.
61555
+ *
61556
+ * ## CSS Parts
61557
+ *
61558
+ * Custom selectors for styling elements within the component.
61559
+ *
61560
+ * - `actions`: The `actions` slot, in the toolbar.
61561
+ * - `bar`: The bar, a search landmark: the field, the count, the toolbar, and the replace row while it shows.
61562
+ * - `close`: The button that closes the bar.
61563
+ * - `close-button`: The close button's inner button.
61564
+ * - `close-live`: The close button's live region, which speaks while the button is pending.
61565
+ * - `close-spinner`: The ring the close button turns while it is pending.
61566
+ * - `close-text`: The box the close button's icon sits in.
61567
+ * - `controls`: The toolbar: the options, your actions, and the buttons that move between matches and close the bar.
61568
+ * - `controls-toolbar`: The box inside the toolbar that lays its buttons out.
61569
+ * - `count`: Which match is current and how many there are, such as "3 of 12 matches".
61570
+ * - `field`: The search field.
61571
+ * - `live`: The live region that says the count as it changes.
61572
+ * - `match-case`: The button that matches case. Pressed while it does.
61573
+ * - `match-case-button`: The match case button's inner button.
61574
+ * - `match-case-live`: The match case button's live region, which speaks while the button is pending.
61575
+ * - `match-case-pressed`: The match case button while case has to match, beside `match-case`.
61576
+ * - `match-case-spinner`: The ring the match case button turns while it is pending.
61577
+ * - `match-case-text`: The box the match case button's icon sits in.
61578
+ * - `next`: The button that moves to the next match.
61579
+ * - `next-button`: The next match button's inner button.
61580
+ * - `next-live`: The next match button's live region, which speaks while the button is pending.
61581
+ * - `next-spinner`: The ring the next match button turns while it is pending.
61582
+ * - `next-text`: The box the next match button's icon sits in.
61583
+ * - `previous`: The button that moves to the previous match.
61584
+ * - `previous-button`: The previous match button's inner button.
61585
+ * - `previous-live`: The previous match button's live region, which speaks while the button is pending.
61586
+ * - `previous-spinner`: The ring the previous match button turns while it is pending.
61587
+ * - `previous-text`: The box the previous match button's icon sits in.
61588
+ * - `regex`: The button that reads the field as a regular expression. Pressed while it does.
61589
+ * - `regex-button`: The regular expression button's inner button.
61590
+ * - `regex-live`: The regular expression button's live region, which speaks while the button is pending.
61591
+ * - `regex-pressed`: The regular expression button while the field reads as one, beside `regex`.
61592
+ * - `regex-spinner`: The ring the regular expression button turns while it is pending.
61593
+ * - `regex-text`: The box the regular expression button's icon sits in.
61594
+ * - `replace`: The button that replaces the current match.
61595
+ * - `replace-all`: The button that replaces every match.
61596
+ * - `replace-all-button`: The Replace all button's inner button.
61597
+ * - `replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
61598
+ * - `replace-all-spinner`: The ring the Replace all button turns while it is pending.
61599
+ * - `replace-all-text`: The box the Replace all button's words sit in.
61600
+ * - `replace-button`: The Replace button's inner button.
61601
+ * - `replace-field`: The field the replacement is typed in.
61602
+ * - `replace-live`: The Replace button's live region, which speaks while the button is pending.
61603
+ * - `replace-spinner`: The ring the Replace button turns while it is pending.
61604
+ * - `replace-text`: The box the Replace button's words sit in.
61605
+ * - `replace-toggle`: The button that shows the replace row. Expanded while it shows.
61606
+ * - `replace-toggle-button`: The replace toggle's inner button.
61607
+ * - `replace-toggle-live`: The replace toggle's live region, which speaks while the button is pending.
61608
+ * - `replace-toggle-spinner`: The ring the replace toggle turns while it is pending.
61609
+ * - `replace-toggle-text`: The box the replace toggle's icon sits in.
61610
+ * - `whole-word`: The button that matches whole words only. Pressed while it does.
61611
+ * - `whole-word-button`: The whole word button's inner button.
61612
+ * - `whole-word-live`: The whole word button's live region, which speaks while the button is pending.
61613
+ * - `whole-word-pressed`: The whole word button while only whole words match, beside `whole-word`.
61614
+ * - `whole-word-spinner`: The ring the whole word button turns while it is pending.
61615
+ * - `whole-word-text`: The box the whole word button's icon sits in.
61616
+ *
61617
+ * ## CSS States
61618
+ *
61619
+ * These can be used to apply styling when a component is in a given state.
61620
+ *
61621
+ * - `open`: While the bar is open.
61622
+ * - `replace-open`: While the replace row shows.
61623
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
61624
+ */
61625
+ "helix-find": Partial<HelixFindProps & BaseProps<HelixFind, F> & BaseEvents<HelixFind>>;
61626
+
60235
61627
  /**
60236
61628
  * The host is the flex container and its only child is a slot, so
60237
61629
  * `<helix-flex>` adds no box beyond the `<div>` it replaces.
@@ -60867,6 +62259,16 @@ export type CustomElements<F extends Framework = "other"> = {
60867
62259
  * - `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
62260
  * - `stage`: The drawing and its controls.
60869
62261
  * - `stop-layout`: The button that stops a layout that has run past five seconds, where the notes stand.
62262
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
62263
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
62264
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
62265
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
62266
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
62267
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
62268
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
62269
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
62270
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
62271
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
60870
62272
  * - `viewport`: The box the renderer draws in.
60871
62273
  * - `zoom-in`: The zoom in button.
60872
62274
  * - `zoom-in-button`: `zoom-in`'s inner button.
@@ -61464,6 +62866,20 @@ export type CustomElements<F extends Framework = "other"> = {
61464
62866
  * name to derive one rather than dash-casing it, and what a consumer writes
61465
62867
  * is the platform's `commandfor`.
61466
62868
  * - `commandfor`/`commandFor`: The id of the element the command is sent to.
62869
+ * - `focusable-when-disabled`/`focusableWhenDisabled`: Whether a disabled button stays in the tab order, so a tooltip around it
62870
+ * can say why it is disabled.
62871
+ *
62872
+ * Set it on a button whose reason a Tooltip gives, such as a Save with no
62873
+ * changes to save. While the button is disabled, it keeps focus and takes
62874
+ * hover, and it refuses every press: a click, Enter and Space, and Enter in
62875
+ * a field of its form. The click does not reach your listeners, and a submit
62876
+ * button submits nothing. The inner control carries `aria-disabled` in place
62877
+ * of the native `disabled`, so a screen reader still says it is unavailable.
62878
+ * The styled button keeps the disabled look.
62879
+ *
62880
+ * Leave it unset on a button with no reason to give. A plain disabled button
62881
+ * leaves the tab order, as a native one does, and a keyboard reader skips a
62882
+ * stop that does nothing. Set `pending` for the wait after a press.
61467
62883
  * - `formaction`/`formAction`: Where this button's submission goes, overriding the form's own.
61468
62884
  *
61469
62885
  * **The five `form*` overrides ride on a native submit button that stands in
@@ -62073,6 +63489,9 @@ export type CustomElements<F extends Framework = "other"> = {
62073
63489
  *
62074
63490
  * Empty leaves the attribute off, which is the browser's default. Set it to
62075
63491
  * a token like `email` or `bday` to ask for autofill, or to `off` to refuse.
63492
+ * - `autocorrect`: Whether the browser corrects words as the reader types, as the platform's
63493
+ * `autocorrect`. Turn it off, with `autocorrect="off"`, for text that is not
63494
+ * prose, such as an address or a code, which corrections would change.
62076
63495
  * - `clearable`: Whether the field shows a button that empties it.
62077
63496
  *
62078
63497
  * Shown only while there is something to clear, because a control that does
@@ -64278,7 +65697,7 @@ export type CustomElements<F extends Framework = "other"> = {
64278
65697
  *
64279
65698
  * Custom selectors for styling elements within the component.
64280
65699
  *
64281
- * - `content`: The lines, hidden while the group is shut.
65700
+ * - `content`: The lines, hidden until found while the group is shut.
64282
65701
  * - `duration`: How long the step took.
64283
65702
  * - `heading`: The heading.
64284
65703
  * - `mark`: The caret that turns as the group opens, an `<svg>` you size.
@@ -64289,7 +65708,9 @@ export type CustomElements<F extends Framework = "other"> = {
64289
65708
  *
64290
65709
  * These can be used to apply styling when a component is in a given state.
64291
65710
  *
65711
+ * - `empty`: The group holds nothing to show, so opening it shows nothing.
64292
65712
  * - `open`: The group shows its lines.
65713
+ * - `steps`: The group holds steps of its own, which a stylesheet draws as a tree.
64293
65714
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
64294
65715
  */
64295
65716
  "helix-log-group": Partial<
@@ -64415,7 +65836,10 @@ export type CustomElements<F extends Framework = "other"> = {
64415
65836
  * - `plain` has no edge, no fill, no inset and no height of its own: the
64416
65837
  * lines start where the text around them does and the log grows with
64417
65838
  * them. For a log inside something that already frames it, such as an
64418
- * agent's work in a chat turn's `work` slot.
65839
+ * agent's work in a chat turn's `work` slot. Each step is a row with its
65840
+ * status mark on that edge and its caret after the heading. A step that
65841
+ * holds steps draws a rule beside them, and a step that holds lines draws
65842
+ * them on a quiet surface that scrolls after `--log-step-max-block-size`.
64419
65843
  *
64420
65844
  * Both are writable, so a page can say which it means rather than relying
64421
65845
  * on the absence of an attribute.
@@ -64573,6 +65997,7 @@ export type CustomElements<F extends Framework = "other"> = {
64573
65997
  * - `--log-radius`: The corners of the log.
64574
65998
  * - `--log-scrollbar-thumb-color`: The thumb of the scrollbar. Defaults to `--helix-scrollbar-thumb-color`.
64575
65999
  * - `--log-scrollbar-track-color`: The track of the scrollbar. Defaults to `--helix-scrollbar-track-color`.
66000
+ * - `--log-step-max-block-size`: How tall a step's lines may get in a `plain` log before they scroll. Defaults to 20rem.
64576
66001
  * - `--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
66002
  * - `--log-ansi-black`: The ANSI color black, which codes `30` and `40` draw.
64578
66003
  * - `--log-ansi-blue`: The ANSI color blue, which codes `34` and `44` draw.
@@ -64600,7 +66025,7 @@ export type CustomElements<F extends Framework = "other"> = {
64600
66025
  * - `after`: The space the rows below the drawn ones would take. Only for lines drawn from data.
64601
66026
  * - `before`: The space the rows above the drawn ones would take. Only for lines drawn from data.
64602
66027
  * - `dropped`: The line above the log that says how many earlier lines `limit` let go.
64603
- * - `empty`: Shown when the log has no lines.
66028
+ * - `empty`: Shown when the log has no lines and no steps.
64604
66029
  * - `group-content`: Not drawn: a group drawn from data stands for its heading, and its lines are rows beside it.
64605
66030
  * - `group-duration`: How long a step drawn from `groups` took.
64606
66031
  * - `group-heading`: The heading of a step drawn from `groups`.
@@ -64646,7 +66071,7 @@ export type CustomElements<F extends Framework = "other"> = {
64646
66071
  * These can be used to apply styling when a component is in a given state.
64647
66072
  *
64648
66073
  * - `done`: The run is over: `done` is set, or `source` ended.
64649
- * - `empty`: The log has no lines.
66074
+ * - `empty`: The log has no lines and no steps.
64650
66075
  * - `filtered`: `query` or `level` is set, so only the lines they keep are shown.
64651
66076
  * - `pinned`: The log follows its newest line.
64652
66077
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -65588,6 +67013,16 @@ export type CustomElements<F extends Framework = "other"> = {
65588
67013
  * - `tilt-live`: `tilt`'s live region, which speaks while it is pending.
65589
67014
  * - `tilt-spinner`: The ring `tilt` turns while it is pending.
65590
67015
  * - `tilt-text`: The box `tilt`'s glyph sits in.
67016
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
67017
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
67018
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
67019
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
67020
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
67021
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
67022
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
67023
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
67024
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
67025
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
65591
67026
  * - `viewport`: The box the map is drawn in.
65592
67027
  * - `zoom-in`: The button that zooms in.
65593
67028
  * - `zoom-in-button`: `zoom-in`'s inner button.
@@ -65968,7 +67403,7 @@ export type CustomElements<F extends Framework = "other"> = {
65968
67403
  *
65969
67404
  * - `--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
67405
  * - `--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.
67406
+ * - `--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
67407
  * - `--megamenu-column-size`: The minimum width of a column before the grid wraps.
65973
67408
  * - `--megamenu-duration`: How long the panel takes to open and close.
65974
67409
  * - `--megamenu-full-size`: The maximum width of the band's contents, which are centered in it.
@@ -66211,6 +67646,19 @@ export type CustomElements<F extends Framework = "other"> = {
66211
67646
  *
66212
67647
  * Component attributes and properties that can be applied to the element or by using JavaScript.
66213
67648
  *
67649
+ * - `material`: The panel's surface: `frosted` or `glass`.
67650
+ *
67651
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
67652
+ * ground over a blur, for a page whose surfaces are glass, so a panel opened
67653
+ * over a glass window is not the one opaque slab on it. `frosted` is the same
67654
+ * pair turned up, a ground that admits less and a heavier blur.
67655
+ *
67656
+ * The strength is the theme's: `--helix-material-translucent`,
67657
+ * `--helix-material-translucent-strong` and `--helix-material-backdrop` are
67658
+ * what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
67659
+ *
67660
+ * **No `transparent`, deliberately.** A panel floating over arbitrary page
67661
+ * content is only readable because it has a ground.
66214
67662
  * - `empty-text`/`emptyText`: The text shown and announced when there are no rows and none are loading.
66215
67663
  * - `loading`: Whether the rows are still loading.
66216
67664
  *
@@ -66360,9 +67808,10 @@ export type CustomElements<F extends Framework = "other"> = {
66360
67808
  *
66361
67809
  * CSS variables available for styling the component.
66362
67810
  *
67811
+ * - `--menu-backdrop`: Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy.
66363
67812
  * - `--menu-background-color`: Fill of the surface.
66364
67813
  * - `--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.
67814
+ * - `--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
67815
  * - `--menu-max-block-size`: The tallest the menu grows before it scrolls.
66367
67816
  * - `--menu-min-inline-size`: The narrowest the menu gets.
66368
67817
  * - `--menu-shadow`: Shadow under the panel. Defaults to `--helix-shadow-floating`, so the panel keeps a shadow over any content below it.
@@ -66456,6 +67905,7 @@ export type CustomElements<F extends Framework = "other"> = {
66456
67905
  *
66457
67906
  * These can be used to apply styling when a component is in a given state.
66458
67907
  *
67908
+ * - `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
67909
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
66460
67910
  */
66461
67911
  "helix-menu-section": Partial<
@@ -66641,6 +68091,7 @@ export type CustomElements<F extends Framework = "other"> = {
66641
68091
  * Areas where markup can be added to the component.
66642
68092
  *
66643
68093
  * - `label`: A visible label, above a bar and under a ring or an arc. Its words name it in place of `label`.
68094
+ * - `(default)`: `Meter.Segment` elements, one for each share of the whole, drawn in the bar.
66644
68095
  *
66645
68096
  * ## CSS Custom Properties
66646
68097
  *
@@ -66662,6 +68113,7 @@ export type CustomElements<F extends Framework = "other"> = {
66662
68113
  * - `--meter-along`: Where a bound sits on the arc, as a length along it.
66663
68114
  * - `--meter-at`: Where a bound sits on a linear track, as a percentage.
66664
68115
  * - `--meter-fraction`: The value as a fraction of the range, 0 to 1.
68116
+ * - `--meter-span`: How much the range holds, `max` less `min`, which a segment divides its own value by to find its width.
66665
68117
  * - `--meter-sweep`: How much of the circle the arc covers, as a path length.
66666
68118
  *
66667
68119
  * ## CSS Parts
@@ -66693,6 +68145,84 @@ export type CustomElements<F extends Framework = "other"> = {
66693
68145
  */
66694
68146
  "helix-meter": Partial<HelixMeterProps & BaseProps<HelixMeter, F> & BaseEvents<HelixMeter>>;
66695
68147
 
68148
+ /**
68149
+ * Each segment takes the next color in the chart series, in the order written, so
68150
+ * two of them are told apart without being given a color. A `tone` is what a
68151
+ * segment means, and takes the place of its turn. A hairline in the track's ground
68152
+ * sits between neighbors, so the boundary is there for a reader who cannot tell
68153
+ * two of the colors apart.
68154
+ *
68155
+ * Write the segments inside a meter, and the page imports the family beside it:
68156
+ *
68157
+ * ```js
68158
+ * import '@fusion.dev/helix/meter'
68159
+ * ```
68160
+ *
68161
+ * ## Attributes & Properties
68162
+ *
68163
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
68164
+ *
68165
+ * - `label`: What the segment is, such as "Tools", which names the slice when a pointer
68166
+ * rests on it.
68167
+ *
68168
+ * Not announced: see the note on a meter's children above.
68169
+ * - `tone`: What the segment means, as it does on a callout. Takes the tone's color in
68170
+ * place of the next color in the series.
68171
+ * - `value`: How much of the meter's range the segment takes, in the units of the meter's
68172
+ * `min` and `max`.
68173
+ *
68174
+ * A value that is not a number, or is below zero, draws nothing.
68175
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
68176
+ *
68177
+ * **Named `whenSettled` because `settled` is taken four times over**, by
68178
+ * Image, Splitter and both color controls, none of them about transitions. A
68179
+ * base class takes the name every subclass then cannot use.
68180
+ *
68181
+ * **The state it reports cannot be watched, which is why this exists.** A
68182
+ * custom state is deliberately not in the DOM, so there is no
68183
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
68184
+ * instead.
68185
+ *
68186
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
68187
+ * the suppression is still active in. That is the distinction `readyToMove`
68188
+ * in `@fusion.dev/helix-testing` is written around.
68189
+ *
68190
+ * It never resolves where `requestAnimationFrame` never fires, which is a
68191
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
68192
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
68193
+ * browser harness's awaits it alone: a browser always runs the frame, and a
68194
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
68195
+ *
68196
+ * ## Slots
68197
+ *
68198
+ * Areas where markup can be added to the component.
68199
+ *
68200
+ * - `(default)`: Nothing. A segment draws its share and has no content.
68201
+ *
68202
+ * ## CSS Custom Properties
68203
+ *
68204
+ * CSS variables available for styling the component.
68205
+ *
68206
+ * - `--meter-segment-color`: The slice's color. Overrides the series and the tone.
68207
+ * - `--meter-segment-gap-color`: The color of the hairline between neighbors.
68208
+ * - `--meter-segment-value`: How much of the range the segment takes, in the meter's own units.
68209
+ *
68210
+ * ## CSS Parts
68211
+ *
68212
+ * Custom selectors for styling elements within the component.
68213
+ *
68214
+ * - `fill`: The slice of the bar the segment takes.
68215
+ *
68216
+ * ## CSS States
68217
+ *
68218
+ * These can be used to apply styling when a component is in a given state.
68219
+ *
68220
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
68221
+ */
68222
+ "helix-meter-segment": Partial<
68223
+ HelixMeterSegmentProps & BaseProps<HelixMeterSegment, F> & BaseEvents<HelixMeterSegment>
68224
+ >;
68225
+
66696
68226
  /**
66697
68227
  * A quiet square button, as the controls over a map are, with the pause icon
66698
68228
  * while motion runs and the play icon while it is paused. Text slotted into
@@ -69335,6 +70865,19 @@ export type CustomElements<F extends Framework = "other"> = {
69335
70865
  *
69336
70866
  * Component attributes and properties that can be applied to the element or by using JavaScript.
69337
70867
  *
70868
+ * - `material`: The panel's surface: `frosted` or `glass`.
70869
+ *
70870
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
70871
+ * ground over a blur, for a page whose surfaces are glass, so a panel opened
70872
+ * over a glass window is not the one opaque slab on it. `frosted` is the same
70873
+ * pair turned up, a ground that admits less and a heavier blur.
70874
+ *
70875
+ * The strength is the theme's: `--helix-material-translucent`,
70876
+ * `--helix-material-translucent-strong` and `--helix-material-backdrop` are
70877
+ * what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
70878
+ *
70879
+ * **No `transparent`, deliberately.** A panel floating over arbitrary page
70880
+ * content is only readable because it has a ground.
69338
70881
  * - `separation`: How the panel is set apart from the content under it.
69339
70882
  *
69340
70883
  * One of the axis's four values, which is all this surface has meaning for: a
@@ -69443,8 +70986,10 @@ export type CustomElements<F extends Framework = "other"> = {
69443
70986
  * CSS variables available for styling the component.
69444
70987
  *
69445
70988
  * - `--popover-arrow-size`: Size of the point drawn with `arrow`. Tooltip's point is the same size.
70989
+ * - `--popover-backdrop`: Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy.
70990
+ * - `--popover-background-color`: Fill of the surface.
69446
70991
  * - `--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.
70992
+ * - `--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
70993
  * - `--popover-inline-size`: Width of the panel.
69449
70994
  * - `--popover-max-block-size`: Maximum height of the panel before it scrolls.
69450
70995
  * - `--popover-padding`: Space between the panel's edge and its contents.
@@ -71860,6 +73405,17 @@ export type CustomElements<F extends Framework = "other"> = {
71860
73405
  * styled to match the design system. The base class measures which edges have
71861
73406
  * content past them.
71862
73407
  *
73408
+ * **The content fades out toward each edge that has more past it.** The fade
73409
+ * is a mask on the viewport, so the surface behind the scroll area shows
73410
+ * through it: the page, a card, or a translucent pane. Set the depth with
73411
+ * `--scroll-area-fade`, or one edge's depth with its own property, and use `0`
73412
+ * to keep an edge from fading. A scrollbar that takes room beside the content
73413
+ * stays out of the mask.
73414
+ *
73415
+ * **Set `--scroll-area-fade-color` to paint the fades.** Each fade is then a
73416
+ * gradient from that color over the content, and there is no mask. Use it for
73417
+ * a scroll area on a solid ground, in the ground's color or one of your own.
73418
+ *
71863
73419
  * Under `scrollbars`, the browser's scrollbar is hidden and the component's own
71864
73420
  * are drawn over the content at the edge, in the same colors.
71865
73421
  *
@@ -71933,10 +73489,10 @@ export type CustomElements<F extends Framework = "other"> = {
71933
73489
  *
71934
73490
  * CSS variables available for styling the component.
71935
73491
  *
71936
- * - `--scroll-area-fade`: The depth of the fades at both edges.
73492
+ * - `--scroll-area-fade`: The depth of the fade at each edge.
71937
73493
  * - `--scroll-area-fade-block-end`: The depth of the bottom fade, or `0` to remove it.
71938
73494
  * - `--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.
73495
+ * - `--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
73496
  * - `--scroll-area-fade-inline-end`: The depth of the fade at the inline end, or `0` to remove it.
71941
73497
  * - `--scroll-area-fade-inline-start`: The depth of the fade at the inline start, or `0` to remove it.
71942
73498
  * - `--scroll-area-scrollbar`: The scrollbar width, as a `scrollbar-width` keyword.
@@ -71945,6 +73501,8 @@ export type CustomElements<F extends Framework = "other"> = {
71945
73501
  * - `--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
73502
  * - `--scroll-area-thumb-min-size`: The shortest a thumb drawn under `scrollbars` gets, however long the content.
71947
73503
  * - `--scroll-area-track-color`: The color of the scrollbar's track. Defaults to `--helix-scrollbar-track-color`.
73504
+ * - `--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.
73505
+ * - `--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
73506
  * - `--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
73507
  * - `--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
73508
  *
@@ -71953,7 +73511,7 @@ export type CustomElements<F extends Framework = "other"> = {
71953
73511
  * Custom selectors for styling elements within the component.
71954
73512
  *
71955
73513
  * - `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.
73514
+ * - `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
73515
  * - `scrollbar`: Each scrollbar, under `scrollbars`. Hidden on an axis that has none.
71958
73516
  * - `scrollbar-horizontal`: The scrollbar along the inline axis, alongside `scrollbar`.
71959
73517
  * - `scrollbar-vertical`: The scrollbar along the block axis, alongside `scrollbar`.
@@ -72303,7 +73861,7 @@ export type CustomElements<F extends Framework = "other"> = {
72303
73861
  * CSS variables available for styling the component.
72304
73862
  *
72305
73863
  * - `--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.
73864
+ * - `--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
73865
  * - `--select-shadow`: Shadow under the panel. Defaults to `--helix-shadow-floating`, because the panel can sit over any content.
72308
73866
  * - `--select-surface-max-block-size`: Maximum height of the panel.
72309
73867
  * - `--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 +74160,7 @@ export type CustomElements<F extends Framework = "other"> = {
72602
74160
  *
72603
74161
  * - `--skip-link-background-color`: The background of the link while it is shown.
72604
74162
  * - `--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.
74163
+ * - `--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
74164
  * - `--skip-link-color`: The text color of the link while it is shown.
72607
74165
  * - `--skip-link-font-size`: The size of the link's text.
72608
74166
  * - `--skip-link-inset-block`: How far the shown link sits from the top of the viewport.
@@ -73225,6 +74783,13 @@ export type CustomElements<F extends Framework = "other"> = {
73225
74783
  * reflected property takes no default, and `solid` writes it out. A
73226
74784
  * renderer draws the bars the same way.
73227
74785
  *
74786
+ * **`muted` draws every bar in the neutral ink**, so the one bar whose cell
74787
+ * names a tone, such as `data-tone="primary"`, is the bar in color, with a
74788
+ * soft glow in its tone: one reading lit among the others, such as today
74789
+ * among a week. Each top takes the most ink and each side less, as a
74790
+ * colored bar's faces do. A renderer draws the neutral bars and the toned
74791
+ * one, without the glow.
74792
+ *
73228
74793
  * It composes with `material`: emphasis decides what is drawn, and material
73229
74794
  * how much of it comes through. The outline on the bar the keys rest on
73230
74795
  * keeps its own ink.
@@ -73287,16 +74852,73 @@ export type CustomElements<F extends Framework = "other"> = {
73287
74852
  * `hidden`, or absent, says the summary to a screen reader and draws it
73288
74853
  * for no one else. Reflected, because the stylesheet draws it by the
73289
74854
  * 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
74855
+ * - `grow`: Grows the bars up from the floor the first time the chart comes into
74856
+ * view with readings, each category a little after the one before it, so
74857
+ * the drawing arrives the way a page's own picture does. The growth is
74858
+ * fast at first, slows to rest, and never passes a bar's value.
74859
+ *
74860
+ * Under `prefers-reduced-motion`, or where the page has paused its motion
74861
+ * through `pauseMotion` or `Motion Toggle`, the bars stand at their height
74862
+ * from the start. A later table draws the bars it already had at their
74863
+ * height, and grows the bars it adds, each from the floor, so a reading that
74864
+ * arrives while the chart is in view arrives the same way.
74865
+ * - `grow-again`/`growAgain`: Grows the bars again each time the chart comes back into view after it
74866
+ * left it, as a pane does when it is opened again, where `grow` alone grows
74867
+ * them the first time only. Only a chart that grows takes it.
74868
+ *
74869
+ * While it is out of view the bars stand at the floor, so the first frame
74870
+ * after it returns is the start of the growth and never a flash at full
74871
+ * height.
74872
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, and in a `row` no
74873
+ * floor, so the readings stand alone and fill the plot, as a picture on a
74874
+ * product's own page does. The
73292
74875
  * table, the summary, the tooltip, and the keys still carry every value,
73293
74876
  * and a renderer draws no box either.
73294
74877
  * - `open-label`/`openLabel`: What the readout says for a place with no value. `{category}` and
73295
74878
  * `{series}` name the place.
73296
74879
  * - `plot-label`/`plotLabel`: The plot's name where the chart has none: no `aria-label`, `label`, or table caption.
74880
+ * - `stacked`: Stacks a category's series into one column, each block standing on the
74881
+ * ones before it, so the column is as tall as the category's total, as a
74882
+ * flat `Bar Chart` stacks them.
74883
+ *
74884
+ * Absent stands the series one behind another in depth. Stacked, every
74885
+ * series stands in the front row, so none hides another, and the parts of
74886
+ * one total read together. A negative reading hangs below zero on the
74887
+ * negatives before it. The scale fits the stacks.
73297
74888
  * - `summary-label`/`summaryLabel`: The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
73298
74889
  * are the number of bars, series, and categories, written in the locale,
73299
74890
  * and `{low}` and `{high}` the lowest and the highest value.
74891
+ * - `variant`: How the bars stand.
74892
+ *
74893
+ * Unset, they stand on a grid of categories across and series in depth,
74894
+ * in a box the camera looks at from a corner, so the grid recedes at an
74895
+ * angle. `row` lays the categories in a straight line across the page and
74896
+ * turns each bar to the camera, showing its top and two sides, for one row
74897
+ * of readings in a small space such as a pane: turning the view turns each
74898
+ * bar where it stands, and the row stays level. It is the chart's own
74899
+ * drawing that lays the row: a renderer connected through
74900
+ * `@fusion.dev/helix-plot` stands the bars on the grid.
74901
+ *
74902
+ * `diagonal` is the same row climbing to the right as it recedes, each
74903
+ * place a step further back than the one before, as a row of days on a
74904
+ * product's page is drawn: the row rises one part in five across the page
74905
+ * from any turn, and its floor and names climb with it. A row whose bars
74906
+ * have a size climbs at most a quarter of the plot's height, so the bars
74907
+ * of a long row keep theirs.
74908
+ *
74909
+ * **A row draws its floor in place of a box**: each place as an outline a
74910
+ * little wider than its bar, and each category's name under it, as many
74911
+ * names as fit without touching. A name whose bar names a tone is written
74912
+ * first, in that tone. `no-box` leaves the floor and the names out.
74913
+ *
74914
+ * **A `column-gap` on the `fallback` part gives a row's bars one width**,
74915
+ * which the styled tier sets from `--spatial-bar-chart-bar-size`: one bar
74916
+ * stands as wide as each of twenty, the row is as long as its bars and
74917
+ * centered, the tallest bar stands as high as the plot has room for and
74918
+ * no taller than the row is long and a quarter again, so one bar stands
74919
+ * as a block, and `fits` says how many bars the plot holds, so a page
74920
+ * can give it the latest of a longer table. It is read when the plot's
74921
+ * size changes.
73300
74922
  * - `sounding`: Whether the chart is playing as sound now. (property only) (readonly)
73301
74923
  * - `data`: The readings as data, in the shape of a table, where the page has no
73302
74924
  * table to point `for` at. `for` wins where both are set.
@@ -73345,6 +74967,11 @@ export type CustomElements<F extends Framework = "other"> = {
73345
74967
  * - `field`: The table read as bars. **Each row is a category, and each numeric
73346
74968
  * column a series.** A renderer reads it. (property only) (readonly)
73347
74969
  * - `active`: The bar the keys or the pointer rest on, as its place in `field.cells`, or `-1`. (property only) (readonly)
74970
+ * - `fits`: How many categories a `row` or a `diagonal` has room for across the
74971
+ * plot at its bar size, measured as it is read, or
74972
+ * `undefined` where there is no row, no bar size, or nothing drawn to
74973
+ * measure. A page with a longer table gives the chart its latest that
74974
+ * many rows, and says so. (property only) (readonly)
73348
74975
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
73349
74976
  *
73350
74977
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -73432,8 +75059,16 @@ export type CustomElements<F extends Framework = "other"> = {
73432
75059
  *
73433
75060
  * CSS variables available for styling the component.
73434
75061
  *
75062
+ * - `--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
75063
  * - `--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.
75064
+ * - `--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
75065
+ * - `--spatial-bar-chart-tone-accent`: The color of a bar whose cell says `data-tone="accent"`.
75066
+ * - `--spatial-bar-chart-tone-danger`: The color of a bar whose cell says `data-tone="danger"`.
75067
+ * - `--spatial-bar-chart-tone-info`: The color of a bar whose cell says `data-tone="info"`.
75068
+ * - `--spatial-bar-chart-tone-muted`: The color of a bar whose cell says `data-tone="muted"`.
75069
+ * - `--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.
75070
+ * - `--spatial-bar-chart-tone-success`: The color of a bar whose cell says `data-tone="success"`.
75071
+ * - `--spatial-bar-chart-tone-warning`: The color of a bar whose cell says `data-tone="warning"`.
73437
75072
  *
73438
75073
  * ## CSS Parts
73439
75074
  *
@@ -73446,6 +75081,8 @@ export type CustomElements<F extends Framework = "other"> = {
73446
75081
  * - `empty`: The words when the table has no readings: the `empty` slot, falling back to `empty-text`.
73447
75082
  * - `face`: One face of a bar the view shows, shaded by which way it faces.
73448
75083
  * - `fallback`: The box the chart's own drawing fills, shown until a renderer has drawn and where none is connected. Hidden from screen readers.
75084
+ * - `floor`: One place on the floor of a `row`, under a bar or where one would stand, drawn as its outline.
75085
+ * - `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
75086
  * - `grid`: The box's edges and its grid, in the chart's own drawing.
73450
75087
  * - `live`: The readout: a polite live region that says the bar the keys moved to. Hide it visually.
73451
75088
  * - `loading`: The words while `loading` is set and there are no readings.
@@ -73457,7 +75094,7 @@ export type CustomElements<F extends Framework = "other"> = {
73457
75094
  * - `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
75095
  * - `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
75096
  * - `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.
75097
+ * - `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
75098
  * - `tooltip-anchor`: The `Tooltip` element itself.
73462
75099
  * - `tooltip-arrow`: The bubble's point, forwarded from `Tooltip`.
73463
75100
  * - `tooltip-arrow-bottom`: The point while the bubble is below the reading, on its top edge. Set alongside `tooltip-arrow`.
@@ -73474,6 +75111,7 @@ export type CustomElements<F extends Framework = "other"> = {
73474
75111
  * - `tooltip-surface-right`: The bubble while it is right of the reading. Set alongside `tooltip-surface`.
73475
75112
  * - `tooltip-surface-top`: The bubble while it is above the reading. Set alongside `tooltip-surface`.
73476
75113
  * - `tooltip-value`: A column's value inside the tooltip.
75114
+ * - `value`: The value of a bar whose cell names a tone, written above it in the chart's own drawing.
73477
75115
  *
73478
75116
  * ## CSS States
73479
75117
  *
@@ -76027,6 +77665,10 @@ export type CustomElements<F extends Framework = "other"> = {
76027
77665
  * `at` is nearer, and crosses in one diagonal to the far side. `waves` is sharp
76028
77666
  * strands crossing the full width.
76029
77667
  *
77668
+ * **Clear, over glass.** Set `clear` and the ribbon is drawn without its
77669
+ * ground, so a translucent pane or a frosted window behind the element shows
77670
+ * through, with the light over it.
77671
+ *
76030
77672
  * **Quiet behind words.** `quiet` names elements, such as a hero's words, that
76031
77673
  * the light dims behind to a faint glow, so a bright ribbon can cross the page
76032
77674
  * under them and they stay crisp.
@@ -76072,6 +77714,13 @@ export type CustomElements<F extends Framework = "other"> = {
76072
77714
  * own.
76073
77715
  * - `bloom`: How much the glow around the strands adds, as a multiplier. `0` draws the
76074
77716
  * strands alone, crisp and dimmer, and `1` is the default glow.
77717
+ * - `clear`: Whether the light is drawn alone, without the ground under it, so what is
77718
+ * behind the element shows through, such as a translucent pane or a window's
77719
+ * glass. The ground still says which way the page runs: light added on a
77720
+ * dark one, ink on a light one.
77721
+ *
77722
+ * Reflected because the stylesheet selects on it: the band under the canvas
77723
+ * shows only while the element falls back, and loses its ground too.
76075
77724
  * - `contrast`: How far apart the brightest and dimmest strands are, from `0`, most of
76076
77725
  * them alike, to `1`, a few burning bright over many faint ones. Clamped to
76077
77726
  * that range. The ribbon as a whole keeps its strength.
@@ -77189,10 +78838,40 @@ export type CustomElements<F extends Framework = "other"> = {
77189
78838
  * - `underlined` makes it a bar along the bottom of the strip, on a rule.
77190
78839
  * - `segmented` makes it the size of the tab's box, inside a sunken track.
77191
78840
  *
78841
+ * `emphasis="subtle"` makes the mark quieter, for tabs inside other chrome
78842
+ * such as a pane's header: a tint with no edge or shadow, the same wash a
78843
+ * subtle button takes.
78844
+ *
78845
+ * **Tabs with no panels are a strip.** Where what each tab stands for lives
78846
+ * outside the set, such as a pane's pages or shells, leave the panels out: the
78847
+ * tabs keep their keys and their selection, `active` and `helix-activate` say
78848
+ * which is current, and the page shows the rest. Put a control that adds a tab,
78849
+ * such as a plus, beside the set rather than in it, so the tab list holds tabs
78850
+ * alone. With `dismissible` tabs, `dismiss-marks="hover"` keeps each close
78851
+ * mark out of sight until the tab is current, under the pointer, or holds
78852
+ * focus, as a browser's tabs do.
78853
+ *
77192
78854
  * ## Attributes & Properties
77193
78855
  *
77194
78856
  * Component attributes and properties that can be applied to the element or by using JavaScript.
77195
78857
  *
78858
+ * - `dismiss-marks`/`dismissMarks`: When the close mark of each `dismissible` tab shows.
78859
+ *
78860
+ * Unset, or `always`, every mark shows. `hover` shows a tab's mark while it
78861
+ * is current, under the pointer, or holds focus, and keeps its room on every
78862
+ * tab, so the labels do not move as the marks come and go. For a strip of
78863
+ * many dismissible tabs, where a mark on each reads as a row of crosses. A
78864
+ * keyboard closes a tab with Delete whether its mark shows or not.
78865
+ * - `emphasis`: How loud the mark on the current tab is.
78866
+ *
78867
+ * Unset is the mark `variant` draws at rest. `subtle` is a tint with no
78868
+ * edge or shadow: the raised pill becomes a wash, the `segmented` track's
78869
+ * pill does the same inside it, and the `underlined` bar takes the
78870
+ * foreground's ink in place of the primary color. For tabs inside other
78871
+ * chrome, where a raised mark reads as a control laid on top of it.
78872
+ *
78873
+ * Independent of `variant`, since each of its marks has a quiet form: the two
78874
+ * answer different questions, which is the test the axis registry applies.
77196
78875
  * - `active`: The `value` of the current item.
77197
78876
  *
77198
78877
  * Not `option.active`, which is the option the keyboard is on: that is a
@@ -77425,6 +79104,7 @@ export type CustomElements<F extends Framework = "other"> = {
77425
79104
  * - `--tabs-tab-font-weight`: The weight of a tab's label.
77426
79105
  * - `--tabs-tab-hover-background-color`: The wash under the pointer.
77427
79106
  * - `--tabs-tab-hover-color`: The label color under the pointer.
79107
+ * - `--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
79108
  * - `--tabs-tab-padding-inline`: The space either side of the label.
77429
79109
  * - `--tabs-tab-radius`: The corners of a tab, which the hover wash takes.
77430
79110
  * - `--tabs-tab-selected-background-color`: The fill of the current tab itself, under the moving mark.
@@ -77436,6 +79116,7 @@ export type CustomElements<F extends Framework = "other"> = {
77436
79116
  *
77437
79117
  * - `dismiss`: The mark a pointer presses to close a `dismissible` tab.
77438
79118
  * - `dismiss-mark`: The glyph on that mark, where none is slotted.
79119
+ * - `label`: The slot the tab's label is in, which shortens with an ellipsis under `--tabs-tab-max-inline-size`.
77439
79120
  * - `tab`: The tab itself.
77440
79121
  *
77441
79122
  * ## CSS States
@@ -77644,7 +79325,7 @@ export type CustomElements<F extends Framework = "other"> = {
77644
79325
  *
77645
79326
  * - `(default)`: The tag's label.
77646
79327
  * - `dismiss-icon`: Replaces the glyph on the remove button.
77647
- * - `start`: The category the label belongs to, shown before it in a heavier weight.
79328
+ * - `start`: The category the label belongs to, shown before it in a heavier weight, or an icon.
77648
79329
  *
77649
79330
  * ## Methods
77650
79331
  *
@@ -77787,6 +79468,7 @@ export type CustomElements<F extends Framework = "other"> = {
77787
79468
  * Events that will be emitted by the component.
77788
79469
  *
77789
79470
  * - `helix-copy`: The copy control or its key put the selection on the clipboard.
79471
+ * - `helix-found`: The find bar searched or moved among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none.
77790
79472
  * - `helix-terminal-bell`: The program rang the bell. The frame flashes once.
77791
79473
  * - `helix-terminal-input`: The reader typed or pasted, with `data` encoded for the program. Write it to the process. Not sent while `readonly`, or once `exit-code` is set.
77792
79474
  * - `helix-terminal-link`: A link in the output was activated, with its `href`. Cancelable: cancel it to open the link yourself. Left alone, a web address opens in a new tab.
@@ -77894,23 +79576,23 @@ export type CustomElements<F extends Framework = "other"> = {
77894
79576
  * - `copy-spinner`: The ring the copy button turns while it is pending.
77895
79577
  * - `copy-text`: The box the copy button's icon sits in.
77896
79578
  * - `exit-actions`: The `exit-actions` slot, beside Restart in the status line.
77897
- * - `find`: The button that opens and closes the find bar. Expanded while it is open.
77898
- * - `find-actions`: The `find-actions` slot, first in the find bar's toolbar.
77899
- * - `find-bar`: The bar under the header where the reader searches the output.
77900
- * - `find-button`: The find button's inner button.
79579
+ * - `find`: The find bar under the header, where the reader searches the output: a Find of its own.
79580
+ * - `find-actions`: The `find-actions` slot, in the find bar's toolbar.
79581
+ * - `find-bar`: The find bar's strip: the field, the count, and the toolbar.
77901
79582
  * - `find-close`: The button that closes the find bar.
77902
79583
  * - `find-close-button`: The find bar's close button's inner button.
77903
79584
  * - `find-close-live`: The find bar's close button's live region, which speaks while the button is pending.
77904
79585
  * - `find-close-spinner`: The ring the find bar's close button turns while it is pending.
77905
79586
  * - `find-close-text`: The box the find bar's close button's icon sits in.
77906
- * - `find-controls`: The toolbar at the end of the find bar: your find actions, then the buttons that move between matches and close the bar.
79587
+ * - `find-controls`: The toolbar at the end of the find bar: the options, your find actions, and the buttons that move between matches and close the bar.
77907
79588
  * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
77908
79589
  * - `find-count`: Which match is current and how many there are, such as "3 of 12 matches".
77909
79590
  * - `find-field`: The search field in the find bar.
77910
- * - `find-live`: The find button's live region, which speaks while the button is pending.
79591
+ * - `find-live`: The find bar's live region, which says the count as it changes.
77911
79592
  * - `find-match-case`: The button that matches case in the find bar. Pressed while it does.
77912
79593
  * - `find-match-case-button`: The match case button's inner button.
77913
79594
  * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
79595
+ * - `find-match-case-pressed`: The match case button while case has to match, beside `find-match-case`.
77914
79596
  * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
77915
79597
  * - `find-match-case-text`: The box the match case button's icon sits in.
77916
79598
  * - `find-next`: The button that moves to the next match.
@@ -77926,13 +79608,34 @@ export type CustomElements<F extends Framework = "other"> = {
77926
79608
  * - `find-regex`: The button that reads the find field as a regular expression. Pressed while it does.
77927
79609
  * - `find-regex-button`: The regular expression button's inner button.
77928
79610
  * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
79611
+ * - `find-regex-pressed`: The regular expression button while the field reads as one, beside `find-regex`.
77929
79612
  * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
77930
79613
  * - `find-regex-text`: The box the regular expression button's icon sits in.
77931
- * - `find-spinner`: The ring the find button turns while it is pending.
77932
- * - `find-text`: The box the find button's icon sits in.
79614
+ * - `find-replace`: The find bar's Replace button, which a terminal does not draw, since its output cannot be changed.
79615
+ * - `find-replace-all`: The find bar's Replace all button, which a terminal does not draw.
79616
+ * - `find-replace-all-button`: The Replace all button's inner button.
79617
+ * - `find-replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
79618
+ * - `find-replace-all-spinner`: The ring the Replace all button turns while it is pending.
79619
+ * - `find-replace-all-text`: The box the Replace all button's words sits in.
79620
+ * - `find-replace-button`: The Replace button's inner button.
79621
+ * - `find-replace-field`: The find bar's replace field, which a terminal does not draw.
79622
+ * - `find-replace-live`: The Replace button's live region, which speaks while the button is pending.
79623
+ * - `find-replace-spinner`: The ring the Replace button turns while it is pending.
79624
+ * - `find-replace-text`: The box the Replace button's words sits in.
79625
+ * - `find-replace-toggle`: The button that shows the find bar's replace row, which a terminal does not draw.
79626
+ * - `find-replace-toggle-button`: The replace toggle's inner button.
79627
+ * - `find-replace-toggle-live`: The replace toggle's live region, which speaks while the button is pending.
79628
+ * - `find-replace-toggle-spinner`: The ring the replace toggle turns while it is pending.
79629
+ * - `find-replace-toggle-text`: The box the replace toggle's icon sits in.
79630
+ * - `find-toggle`: The button in the header that opens and closes the find bar. Expanded while it is open.
79631
+ * - `find-toggle-button`: The find button's inner button.
79632
+ * - `find-toggle-live`: The find button's live region, which speaks while the button is pending.
79633
+ * - `find-toggle-spinner`: The ring the find button turns while it is pending.
79634
+ * - `find-toggle-text`: The box the find button's icon sits in.
77933
79635
  * - `find-whole-word`: The button that matches whole words only in the find bar. Pressed while it does.
77934
79636
  * - `find-whole-word-button`: The whole word button's inner button.
77935
79637
  * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
79638
+ * - `find-whole-word-pressed`: The whole word button while only whole words match, beside `find-whole-word`.
77936
79639
  * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
77937
79640
  * - `find-whole-word-text`: The box the whole word button's icon sits in.
77938
79641
  * - `fullscreen`: The button that makes the terminal fill the screen. Pressed while it does.
@@ -77950,6 +79653,16 @@ export type CustomElements<F extends Framework = "other"> = {
77950
79653
  * - `restart-spinner`: The ring the Restart button turns while it is pending.
77951
79654
  * - `restart-text`: The Restart button's label.
77952
79655
  * - `status`: The line under the terminal that says the process exited, or that Tab moves focus.
79656
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
79657
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
79658
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
79659
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
79660
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
79661
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
79662
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
79663
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
79664
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
79665
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
77953
79666
  * - `viewport`: The box the terminal is drawn in.
77954
79667
  *
77955
79668
  * ## CSS States
@@ -78763,7 +80476,7 @@ export type CustomElements<F extends Framework = "other"> = {
78763
80476
  *
78764
80477
  * - `--time-input-background-color`: Fill behind the field.
78765
80478
  * - `--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.
80479
+ * - `--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
80480
  * - `--time-input-segment-focus-background-color`: The fill behind the segment with focus, in `segmented`. It follows `--helix-color-primary-surface`.
78768
80481
  * - `--time-input-segment-focus-color`: The text of the segment with focus, in `segmented`.
78769
80482
  * - `--time-input-segment-literal-color`: The text the locale writes between two segments, in `segmented`.
@@ -79638,7 +81351,7 @@ export type CustomElements<F extends Framework = "other"> = {
79638
81351
  *
79639
81352
  * - `--toast-background-color`: The panel's color. Follows `--helix-color-surface-overlay`.
79640
81353
  * - `--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.
81354
+ * - `--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
81355
  * - `--toast-color`: Color of the message's text.
79643
81356
  * - `--toast-description-color`: Color of the line in the `description` slot, under the heading.
79644
81357
  * - `--toast-dismiss-color`: Color of the dismiss control's mark at rest.
@@ -80806,7 +82519,7 @@ export type CustomElements<F extends Framework = "other"> = {
80806
82519
  * CSS variables available for styling the component.
80807
82520
  *
80808
82521
  * - `--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.
82522
+ * - `--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
82523
  * - `--tour-bubble-size`: The widest the panel can grow.
80811
82524
  * - `--tour-padding`: The padding inside the panel.
80812
82525
  * - `--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 +82796,10 @@ export type CustomElements<F extends Framework = "other"> = {
81083
82796
  * the same fault `href` and `target` had on `Button`. The resting arrangement
81084
82797
  * is the absence of the attribute, and the stylesheet only asks about `end`.
81085
82798
  *
82799
+ * `label` sets the chevron against the end of a branch's name, where the name
82800
+ * takes only its own width, and leaves the `end` slot at the row's far side.
82801
+ * A leaf is unchanged, since it has no chevron.
82802
+ *
81086
82803
  * It is worth owning rather than leaving to `::part(toggle)`, which a
81087
82804
  * consumer could reach for: the naive version is `order` plus an auto margin,
81088
82805
  * and the row's `end` slot already carries an auto margin of its own, so the
@@ -84726,7 +86443,7 @@ export type CustomElementsSolidJs = {
84726
86443
  * - `expand`: The button after the first crumb of a folded slotted trail, which shows the folded crumbs.
84727
86444
  * - `fold-separator`: The chevron before that button.
84728
86445
  * - `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.
86446
+ * - `separator-mark`: The chevron between crumbs, or the slash under the trail's `separator="slash"`, shown when no separator is slotted.
84730
86447
  *
84731
86448
  * ## CSS States
84732
86449
  *
@@ -84771,6 +86488,18 @@ export type CustomElementsSolidJs = {
84771
86488
  * - `max-items`/`maxItems`: The most crumbs a trail drawn from `items` shows before it folds its middle
84772
86489
  * into one, counting the first and the last. Unset, it never folds. At least
84773
86490
  * 2, so the first crumb and the current page always show.
86491
+ * - `separator`: The mark between one crumb and the next, for the whole trail. Unset is a
86492
+ * chevron; `slash` is a slash, as a path or a repository and its branch is
86493
+ * written.
86494
+ *
86495
+ * **On the trail rather than on each crumb**, because the marks are one
86496
+ * decision: a trail whose separators differ from crumb to crumb is a
86497
+ * mistake, and a trail drawn from `items` has no crumb of yours to set it
86498
+ * on. A crumb's own `separator` slot still replaces its mark, for the rare
86499
+ * crumb that needs something else.
86500
+ *
86501
+ * Optional and reflected, per the rule that a reflected property takes no
86502
+ * default, so a stylesheet can select on it.
84774
86503
  * - `items`: The trail as data, drawn as crumbs before any you slot. The last item is the
84775
86504
  * current page.
84776
86505
  *
@@ -84825,7 +86554,7 @@ export type CustomElementsSolidJs = {
84825
86554
  * - `crumb-fold-separator`: The chevron before that button.
84826
86555
  * - `crumb-link`: The link, or the current page's words, of a crumb drawn from `items`.
84827
86556
  * - `crumb-separator`: The separator before a crumb drawn from `items`.
84828
- * - `crumb-separator-mark`: The chevron before a crumb drawn from `items`.
86557
+ * - `crumb-separator-mark`: The chevron, or the slash under `separator="slash"`, before a crumb drawn from `items`.
84829
86558
  *
84830
86559
  * ## CSS States
84831
86560
  *
@@ -85047,6 +86776,20 @@ export type CustomElementsSolidJs = {
85047
86776
  * name to derive one rather than dash-casing it, and what a consumer writes
85048
86777
  * is the platform's `commandfor`.
85049
86778
  * - `commandfor`/`commandFor`: The id of the element the command is sent to.
86779
+ * - `focusable-when-disabled`/`focusableWhenDisabled`: Whether a disabled button stays in the tab order, so a tooltip around it
86780
+ * can say why it is disabled.
86781
+ *
86782
+ * Set it on a button whose reason a Tooltip gives, such as a Save with no
86783
+ * changes to save. While the button is disabled, it keeps focus and takes
86784
+ * hover, and it refuses every press: a click, Enter and Space, and Enter in
86785
+ * a field of its form. The click does not reach your listeners, and a submit
86786
+ * button submits nothing. The inner control carries `aria-disabled` in place
86787
+ * of the native `disabled`, so a screen reader still says it is unavailable.
86788
+ * The styled button keeps the disabled look.
86789
+ *
86790
+ * Leave it unset on a button with no reason to give. A plain disabled button
86791
+ * leaves the tab order, as a native one does, and a keyboard reader skips a
86792
+ * stop that does nothing. Set `pending` for the wait after a press.
85050
86793
  * - `formaction`/`formAction`: Where this button's submission goes, overriding the form's own.
85051
86794
  *
85052
86795
  * **The five `form*` overrides ride on a native submit button that stands in
@@ -86146,6 +87889,16 @@ export type CustomElementsSolidJs = {
86146
87889
  * - `pan-up-spinner`: The ring `pan-up` turns while it is pending.
86147
87890
  * - `pan-up-text`: The box `pan-up`'s glyph sits in.
86148
87891
  * - `region`: The named region the board is drawn in.
87892
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
87893
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
87894
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
87895
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
87896
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
87897
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
87898
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
87899
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
87900
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
87901
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
86149
87902
  * - `viewport`: The box the board is drawn inside.
86150
87903
  * - `zoom-in`: The button that zooms in.
86151
87904
  * - `zoom-in-button`: `zoom-in`'s inner button.
@@ -86695,15 +88448,36 @@ export type CustomElementsSolidJs = {
86695
88448
  >;
86696
88449
 
86697
88450
  /**
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.
88451
+ * The composer is one box. What the draft carries sits at its top, in a row
88452
+ * that wraps, inset to the line the caret starts on. The field grows with its
88453
+ * text up to a maximum height, through `field-sizing: content`. Where that is
88454
+ * not supported, the field keeps its rows and scrolls. The maximum height
88455
+ * keeps the composer from covering the transcript.
88456
+ *
88457
+ * With two `placeholders` or more, each example rolls into the next: the one
88458
+ * showing rises a little as it fades and blurs, and the next rises into its
88459
+ * place from below as it fades in, the two crossing so the field is never
88460
+ * empty. A box that changes height for the next example changes as it
88461
+ * lands. Where the browser has no CSS anchor
88462
+ * positioning, the examples fade into each other in the field's own
88463
+ * placeholder.
86702
88464
  *
86703
88465
  * ## Attributes & Properties
86704
88466
  *
86705
88467
  * Component attributes and properties that can be applied to the element or by using JavaScript.
86706
88468
  *
88469
+ * - `glow`: Draws the composer's focus as a glow: a light that runs once around the
88470
+ * edge as the composer takes focus, then a soft steady edge while it holds
88471
+ * it, in place of the focus ring.
88472
+ *
88473
+ * **On focus, and only then.** It says the composer is listening. A glow
88474
+ * that ran while a reply was on its way would be a second indicator of what
88475
+ * the conversation already shows, and one that ran all the time would be
88476
+ * decoration that moves. With reduced motion asked for, the edge lights
88477
+ * without the sweep.
88478
+ *
88479
+ * The steady edge is the focus indicator, so the ring is not drawn as well.
88480
+ * Its color is `--chat-composer-glow-color`, the primary color unless set.
86707
88481
  * - `listening-label`/`listeningLabel`: What a screen reader hears as listening starts.
86708
88482
  * - `stopped-listening-label`/`stoppedListeningLabel`: What a screen reader hears as listening stops.
86709
88483
  * - `voice`: Draws a button that listens for dictation and types what it hears at
@@ -86712,6 +88486,16 @@ export type CustomElementsSolidJs = {
86712
88486
  * `email` or `number` draws no button.
86713
88487
  * - `voice-label`/`voiceLabel`: The dictation button's name while it is not listening.
86714
88488
  * - `voice-stop-label`/`voiceStopLabel`: The dictation button's name while it listens.
88489
+ * - `attached`: Whether the draft holds something besides its text, such as an attached
88490
+ * file. The draft then counts as one though the field is empty, so the
88491
+ * send button shows in place of the `idle` slot.
88492
+ * - `busy`: Whether a reply is on its way. While set, the send button is a stop
88493
+ * button that sends `helix-stop`, and the draft does not send.
88494
+ *
88495
+ * **The same button rather than one beside it**, because sending and
88496
+ * stopping are never both possible: while a reply is on its way there is
88497
+ * nothing to send to, and the place the reader's eye goes to act is the
88498
+ * place that can act. The field stays open for the next turn.
86715
88499
  * - `feedback`: A message about the draft, shown under the field. While set, the composer
86716
88500
  * is invalid, does not send, and does not submit, as a field's `feedback`
86717
88501
  * does, and the message is announced as it appears.
@@ -86720,12 +88504,28 @@ export type CustomElementsSolidJs = {
86720
88504
  * - `minlength`/`minLength`: The fewest characters a draft can have, once the reader has written in
86721
88505
  * the field, as on a `<textarea>`.
86722
88506
  * - `placeholder`: Placeholder text shown in an empty field.
88507
+ * - `queue`: Whether Enter sends while `busy`, for a page that queues the turn or
88508
+ * hands it to the reply under way.
88509
+ *
88510
+ * Off by default, because a page that does neither would drop the turn: it
88511
+ * has nowhere to put a message while a reply is coming. The button stays
88512
+ * the stop button either way, since stopping is still the one thing it
88513
+ * should do while a reply is on its way.
86723
88514
  * - `required`: Whether the form needs a draft to submit. An empty draft never sends,
86724
88515
  * required or not.
86725
88516
  * - `rows`: How many rows the field opens at.
86726
88517
  *
86727
88518
  * It grows from there.
88519
+ * - `send-disabled`/`sendDisabled`: Whether the draft waits to be sent, such as while an attachment is still
88520
+ * read. The send button is unavailable and Enter does not send, while the
88521
+ * field stays open. The stop button shown while `busy` still stops.
86728
88522
  * - `send-label`/`sendLabel`: Label for the send button.
88523
+ * - `send-reason`/`sendReason`: Why the draft waits, such as "Reading photo.jpg", shown in a tooltip on
88524
+ * the send button while `send-disabled` is set. The button then stays in
88525
+ * the tab order and takes the pointer, with `aria-disabled` in place of
88526
+ * `disabled`, so the reason can be reached by keyboard and by pointer, as
88527
+ * Button's `focusable-when-disabled` does. A press still sends nothing.
88528
+ * - `stop-label`/`stopLabel`: Label for the stop button shown while `busy`.
86729
88529
  * - `submit-on`/`submitOn`: What sends the turn: `enter` for the Enter key, or `button` for the send
86730
88530
  * button only.
86731
88531
  *
@@ -86765,6 +88565,22 @@ export type CustomElementsSolidJs = {
86765
88565
  * - `speechEngine`: The engine this field listens through, in place of the one
86766
88566
  * `registerSpeechEngine` gave the page, or the browser's own. (property only)
86767
88567
  * - `listening`: Whether the field is listening for dictation now. (property only) (readonly)
88568
+ * - `placeholders`: Examples the empty field shows in turn, in place of `placeholder`, such
88569
+ * as tasks a reader might ask for. Each shows for 6.5 seconds, and a longer
88570
+ * one shows longer, up to 10 seconds.
88571
+ *
88572
+ * **Each is the field's placeholder in its turn**, so a screen reader that
88573
+ * reaches the field hears the one showing. The swap runs through
88574
+ * `:state(example-leaving)`, as one example leaves, and
88575
+ * `:state(example-entering)`, as the next arrives.
88576
+ *
88577
+ * **They move only while nobody is about to write, and while the reader
88578
+ * can see them.** An empty field without focus moves on. Focus or text
88579
+ * holds the example showing, and an example already leaving finishes its
88580
+ * turn. A composer scrolled out of view holds its example, and the example
88581
+ * gets its full time again when the composer comes back. Where the reader
88582
+ * asked for less motion, or the page paused its motion, the first example
88583
+ * stays. (property only)
86768
88584
  * - `typing`: Whether the user is writing: true from their first keystroke until they
86769
88585
  * send, clear the field, or pause for `typing-timeout` milliseconds. (property only) (readonly)
86770
88586
  * - `validity`: Whether the control meets its constraints, and why not. (property only) (readonly)
@@ -86800,6 +88616,7 @@ export type CustomElementsSolidJs = {
86800
88616
  * - `helix-before-listen`: The dictation button was pressed. Cancelable: cancel it to keep the composer from listening.
86801
88617
  * - `helix-listen`: Dictation settled on a phrase and put it in the draft, after the draft's own `input`.
86802
88618
  * - `helix-send`: Fired when the user sends their turn, and cancelable.
88619
+ * - `helix-stop`: Fired when the user presses the stop button, shown in place of the send button while `busy` is set.
86803
88620
  * - `helix-typing`: The user started or stopped writing, with `typing` saying which, as the composer's `typing` does.
86804
88621
  * - `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
88622
  *
@@ -86807,8 +88624,10 @@ export type CustomElementsSolidJs = {
86807
88624
  *
86808
88625
  * Areas where markup can be added to the component.
86809
88626
  *
88627
+ * - `attachments`: What the draft carries, such as images or files, inside the box and above the field.
86810
88628
  * - `end`: Content under the field, beside the send button.
86811
88629
  * - `start`: Content under the field at the leading edge, such as an attachment button or a model picker.
88630
+ * - `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
88631
  *
86813
88632
  * ## Methods
86814
88633
  *
@@ -86881,6 +88700,7 @@ export type CustomElementsSolidJs = {
86881
88700
  *
86882
88701
  * - `--chat-composer-background-color`: Fill behind the composer.
86883
88702
  * - `--chat-composer-border-width`: Width of the composer's edge, so your theme can remove it.
88703
+ * - `--chat-composer-glow-color`: Color of the focus glow under `glow`. Defaults to the primary color.
86884
88704
  * - `--chat-composer-max-block-size`: Maximum height the field grows to.
86885
88705
  * - `--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
88706
  *
@@ -86888,13 +88708,27 @@ export type CustomElementsSolidJs = {
86888
88708
  *
86889
88709
  * Custom selectors for styling elements within the component.
86890
88710
  *
88711
+ * - `attachments`: The row above the field that holds the `attachments` slot, inset to the field's text and hidden while the slot is empty.
88712
+ * - `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.
88713
+ * - `example-leaving`: The example on its way out while the next comes in, for its first 250 milliseconds. Set together with `example`.
86891
88714
  * - `field`: The text field.
86892
88715
  * - `send`: The send button.
86893
88716
  * - `tools`: The row under the field.
86894
88717
  * - `composer`: The whole composer.
86895
88718
  * - `end`: The box around the `end` slot.
86896
88719
  * - `feedback`: The `feedback` message, under the field while it is set.
86897
- * - `mark`: The icon inside the send button.
88720
+ * - `idle`: The box around the `idle` slot, shown in the send button's place while the draft is empty.
88721
+ * - `mark`: The icon inside the send button, a return key, or a square while `busy`.
88722
+ * - `reason-arrow`: The arrow of the bubble that says `send-reason`, forwarded from `Tooltip`.
88723
+ * - `reason-arrow-bottom`: The arrow while the bubble is below the send button, on the bubble's top edge. Set together with `reason-arrow`.
88724
+ * - `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`.
88725
+ * - `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`.
88726
+ * - `reason-arrow-top`: The arrow while the bubble is above the send button, on the bubble's bottom edge. Set together with `reason-arrow`.
88727
+ * - `reason-surface`: The bubble that says `send-reason` over the send button, forwarded from `Tooltip`.
88728
+ * - `reason-surface-bottom`: The bubble while it is below the send button. Set together with `reason-surface`.
88729
+ * - `reason-surface-left`: The bubble while it is left of the send button. Set together with `reason-surface`.
88730
+ * - `reason-surface-right`: The bubble while it is right of the send button. Set together with `reason-surface`.
88731
+ * - `reason-surface-top`: The bubble while it is above the send button. Set together with `reason-surface`.
86898
88732
  * - `start`: The box around the `start` slot.
86899
88733
  * - `voice`: The dictation button, under `voice`, before the send button.
86900
88734
  * - `voice-listening`: The dictation button while it listens. Set alongside `voice`.
@@ -86904,6 +88738,8 @@ export type CustomElementsSolidJs = {
86904
88738
  *
86905
88739
  * These can be used to apply styling when a component is in a given state.
86906
88740
  *
88741
+ * - `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`.
88742
+ * - `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
88743
  * - `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
88744
  * - `listening`: While the composer listens for dictation. The element sets `--dictation-level` on itself meanwhile, from 0 to 1, for a meter.
86909
88745
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -87007,6 +88843,7 @@ export type CustomElementsSolidJs = {
87007
88843
  *
87008
88844
  * - `(default)`: The turn's content.
87009
88845
  * - `actions`: Controls for the turn.
88846
+ * - `attachments`: What the turn carries, such as images or files, above the bubble.
87010
88847
  * - `avatar`: The author's avatar.
87011
88848
  * - `indicator`: The indicator shown before the first token arrives. Replaces the three dots.
87012
88849
  * - `sources`: The turn's sources, such as citations, documents, or a retrieved page.
@@ -87035,6 +88872,7 @@ export type CustomElementsSolidJs = {
87035
88872
  * - `indicator`: The three dots, shown when nothing is in the `indicator` slot.
87036
88873
  * - `meta`: The time and the state together.
87037
88874
  * - `actions`: The controls on the turn, beside its time.
88875
+ * - `attachments`: The box around the `attachments` slot, above the content and outside the bubble.
87038
88876
  * - `avatar`: The box around the `avatar` slot.
87039
88877
  * - `body`: The content and the line under it.
87040
88878
  * - `mark`: The status icon beside a failure.
@@ -87240,6 +89078,7 @@ export type CustomElementsSolidJs = {
87240
89078
  * - `loading`: Shown while the history loads.
87241
89079
  * - `message`: The message drawn for a turn from `turns`, forwarded whole.
87242
89080
  * - `message-actions`: The controls on a turn from `turns`, beside its time.
89081
+ * - `message-attachments`: The attachments above the bubble of a turn from `turns`.
87243
89082
  * - `message-avatar`: The avatar box of a turn from `turns`.
87244
89083
  * - `message-avatar-mine`: The avatar box of a turn from `turns` by `me`.
87245
89084
  * - `message-body`: The content of a turn from `turns`, and the line under it.
@@ -88231,6 +90070,7 @@ export type CustomElementsSolidJs = {
88231
90070
  *
88232
90071
  * - `change`: The reader finished an edit and focus left the code, in the engine or the plain field.
88233
90072
  * - `helix-before-change`: The text is about to change. Cancelable: cancel it to keep the current text.
90073
+ * - `helix-found`: The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none.
88234
90074
  * - `input`: Fired after the text changes.
88235
90075
  *
88236
90076
  * ## Slots
@@ -88334,9 +90174,9 @@ export type CustomElementsSolidJs = {
88334
90174
  * - `diagnostics`: The list of problems under the code, while there are any.
88335
90175
  * - `feedback`: The message that says what is wrong.
88336
90176
  * - `field`: The frame around the header, the code, the problems and the status line.
88337
- * - `find`: The button in the header that opens the find bar.
88338
- * - `find-bar`: The find bar under the header, while it is open.
88339
- * - `find-button`: The Find button's inner button.
90177
+ * - `find`: The find bar under the header, where the reader searches the code: a Find of its own.
90178
+ * - `find-actions`: The find bar's `actions` slot, which the editor fills with nothing.
90179
+ * - `find-bar`: The find bar's strip: the replace toggle, the field, the count, the toolbar, and the replace row while it shows.
88340
90180
  * - `find-close`: The button that closes the find bar.
88341
90181
  * - `find-close-button`: The close button's inner button.
88342
90182
  * - `find-close-live`: The close button's live region, which speaks while the button is pending.
@@ -88346,10 +90186,11 @@ export type CustomElementsSolidJs = {
88346
90186
  * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
88347
90187
  * - `find-count`: Which match is selected, of how many.
88348
90188
  * - `find-field`: The field the search is typed in.
88349
- * - `find-live`: The Find button's live region, which speaks while the button is pending.
90189
+ * - `find-live`: The find bar's live region, which says the count as it changes.
88350
90190
  * - `find-match-case`: The option that finds only the same case. Pressed while it applies.
88351
90191
  * - `find-match-case-button`: The match case button's inner button.
88352
90192
  * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
90193
+ * - `find-match-case-pressed`: The match case option while it applies, beside `find-match-case`.
88353
90194
  * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
88354
90195
  * - `find-match-case-text`: The box the match case button's icon sits in.
88355
90196
  * - `find-next`: The button that selects the next match.
@@ -88365,18 +90206,34 @@ export type CustomElementsSolidJs = {
88365
90206
  * - `find-regex`: The option that reads the search as a regular expression. Pressed while it applies.
88366
90207
  * - `find-regex-button`: The regular expression button's inner button.
88367
90208
  * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
90209
+ * - `find-regex-pressed`: The regular expression option while it applies, beside `find-regex`.
88368
90210
  * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
88369
90211
  * - `find-regex-text`: The box the regular expression button's icon sits in.
88370
- * - `find-replace`: The button that shows the replace field under the find field. Expanded while it shows.
88371
- * - `find-replace-button`: The find and replace button's inner button.
88372
- * - `find-replace-live`: The find and replace button's live region, which speaks while the button is pending.
88373
- * - `find-replace-spinner`: The ring the find and replace button turns while it is pending.
88374
- * - `find-replace-text`: The box the find and replace button's icon sits in.
88375
- * - `find-spinner`: The ring the Find button turns while it is pending.
88376
- * - `find-text`: The box the Find button's icon sits in.
90212
+ * - `find-replace`: The button that replaces the selected match.
90213
+ * - `find-replace-all`: The button that replaces every match.
90214
+ * - `find-replace-all-button`: The Replace all button's inner button.
90215
+ * - `find-replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
90216
+ * - `find-replace-all-spinner`: The ring the Replace all button turns while it is pending.
90217
+ * - `find-replace-all-text`: The box the Replace all button's words sits in.
90218
+ * - `find-replace-button`: The Replace button's inner button.
90219
+ * - `find-replace-field`: The field the replacement is typed in.
90220
+ * - `find-replace-live`: The Replace button's live region, which speaks while the button is pending.
90221
+ * - `find-replace-spinner`: The ring the Replace button turns while it is pending.
90222
+ * - `find-replace-text`: The box the Replace button's words sits in.
90223
+ * - `find-replace-toggle`: The button that shows the replace field under the find field. Expanded while it shows. Not drawn while `readonly`.
90224
+ * - `find-replace-toggle-button`: The find and replace button's inner button.
90225
+ * - `find-replace-toggle-live`: The find and replace button's live region, which speaks while the button is pending.
90226
+ * - `find-replace-toggle-spinner`: The ring the find and replace button turns while it is pending.
90227
+ * - `find-replace-toggle-text`: The box the find and replace button's icon sits in.
90228
+ * - `find-toggle`: The button in the header that opens and closes the find bar. Expanded while it is open.
90229
+ * - `find-toggle-button`: The Find button's inner button.
90230
+ * - `find-toggle-live`: The Find button's live region, which speaks while the button is pending.
90231
+ * - `find-toggle-spinner`: The ring the Find button turns while it is pending.
90232
+ * - `find-toggle-text`: The box the Find button's icon sits in.
88377
90233
  * - `find-whole-word`: The option that finds only whole words. Pressed while it applies.
88378
90234
  * - `find-whole-word-button`: The whole word button's inner button.
88379
90235
  * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
90236
+ * - `find-whole-word-pressed`: The whole word option while it applies, beside `find-whole-word`.
88380
90237
  * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
88381
90238
  * - `find-whole-word-text`: The box the whole word button's icon sits in.
88382
90239
  * - `header`: The strip above the code: the name, the language, and the controls.
@@ -88385,17 +90242,6 @@ export type CustomElementsSolidJs = {
88385
90242
  * - `language`: The language's name in the header.
88386
90243
  * - `position`: The caret's line and column, in the status line.
88387
90244
  * - `problem-count`: How many problems there are, in the status line.
88388
- * - `replace`: The button that replaces the selected match.
88389
- * - `replace-all`: The button that replaces every match.
88390
- * - `replace-all-button`: The Replace all button's inner button.
88391
- * - `replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
88392
- * - `replace-all-spinner`: The ring the Replace all button turns while it is pending.
88393
- * - `replace-all-text`: The box the Replace all button's words sit in.
88394
- * - `replace-button`: The Replace button's inner button.
88395
- * - `replace-field`: The field the replacement is typed in.
88396
- * - `replace-live`: The Replace button's live region, which speaks while the button is pending.
88397
- * - `replace-spinner`: The ring the Replace button turns while it is pending.
88398
- * - `replace-text`: The box the Replace button's words sit in.
88399
90245
  * - `status`: The strip under the code.
88400
90246
  * - `view`: Where an engine draws, while one is connected.
88401
90247
  *
@@ -88406,7 +90252,6 @@ export type CustomElementsSolidJs = {
88406
90252
  * - `connected`: An engine draws the editor.
88407
90253
  * - `find-open`: The find bar is open.
88408
90254
  * - `invalid`: The editor has an error to show, from `required` or your `feedback`.
88409
- * - `replace-open`: The replace field shows under the find field.
88410
90255
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
88411
90256
  */
88412
90257
  "helix-code-editor": Partial<
@@ -89084,7 +90929,7 @@ export type CustomElementsSolidJs = {
89084
90929
  *
89085
90930
  * - `--color-input-background-color`: Fill behind the field.
89086
90931
  * - `--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.
90932
+ * - `--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
90933
  * - `--color-input-panel-size`: Width of the panel, and so of the square.
89089
90934
  * - `--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
90935
  * - `--color-input-swatch-radius`: Corner radius of the swatch in `variant="swatch"`.
@@ -89923,7 +91768,7 @@ export type CustomElementsSolidJs = {
89923
91768
  *
89924
91769
  * - `--combobox-background-color`: Fill behind the field.
89925
91770
  * - `--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.
91771
+ * - `--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
91772
  * - `--combobox-control-size`: Smallest the text field shrinks to once tags share its line.
89928
91773
  * - `--combobox-panel-size`: Width of the panel. Follows the field by default.
89929
91774
  * - `--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 +91842,16 @@ export type CustomElementsSolidJs = {
89997
91842
  *
89998
91843
  * Component attributes and properties that can be applied to the element or by using JavaScript.
89999
91844
  *
91845
+ * - `material`: The panel's surface: `frosted` or `glass`, as on `Dialog`, which the
91846
+ * palette opens in and hands the value to.
91847
+ *
91848
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
91849
+ * ground over the theme's blur, and `frosted` the same pair turned up, so a
91850
+ * page whose panels are frosted has a palette that matches. Its strength is
91851
+ * the theme's, as on `Popover`, `Menu` and `Drawer`.
91852
+ *
91853
+ * **No `transparent`, deliberately.** A palette over arbitrary page content
91854
+ * is only readable because it has a ground.
90000
91855
  * - `default-open`/`defaultOpen`: Whether the element starts open. Ignored once `open` is written.
90001
91856
  * - `open`: Whether the element is open.
90002
91857
  *
@@ -90154,6 +92009,7 @@ export type CustomElementsSolidJs = {
90154
92009
  * CSS variables available for styling the component.
90155
92010
  *
90156
92011
  * - `--command-list-size`: How tall the list grows before it scrolls.
92012
+ * - `--command-radius`: The corners of the palette's panel. Defaults to the dialog's.
90157
92013
  * - `--command-size`: How wide the palette is. Defaults to `40rem`.
90158
92014
  *
90159
92015
  * ## CSS Parts
@@ -90275,6 +92131,20 @@ export type CustomElementsSolidJs = {
90275
92131
  * It replaces `Button.value`, the submit value: a copy button never submits,
90276
92132
  * whatever its `type`. Declared here so its own page says what it holds.
90277
92133
  * - `aria-label`/`undefined`: undefined
92134
+ * - `focusable-when-disabled`/`focusableWhenDisabled`: Whether a disabled button stays in the tab order, so a tooltip around it
92135
+ * can say why it is disabled.
92136
+ *
92137
+ * Set it on a button whose reason a Tooltip gives, such as a Save with no
92138
+ * changes to save. While the button is disabled, it keeps focus and takes
92139
+ * hover, and it refuses every press: a click, Enter and Space, and Enter in
92140
+ * a field of its form. The click does not reach your listeners, and a submit
92141
+ * button submits nothing. The inner control carries `aria-disabled` in place
92142
+ * of the native `disabled`, so a screen reader still says it is unavailable.
92143
+ * The styled button keeps the disabled look.
92144
+ *
92145
+ * Leave it unset on a button with no reason to give. A plain disabled button
92146
+ * leaves the tab order, as a native one does, and a keyboard reader skips a
92147
+ * stop that does nothing. Set `pending` for the wait after a press.
90278
92148
  * - `pending`: Whether the action the button started is still running.
90279
92149
  *
90280
92150
  * A pending button keeps focus and stays in the tab order, and refuses every
@@ -91337,7 +93207,7 @@ export type CustomElementsSolidJs = {
91337
93207
  *
91338
93208
  * - `--date-input-background-color`: The fill behind the field.
91339
93209
  * - `--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.
93210
+ * - `--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
93211
  * - `--date-input-segment-focus-background-color`: The fill behind the segment with focus, in `segmented`. It follows `--helix-color-primary-surface`.
91342
93212
  * - `--date-input-segment-focus-color`: The text of the segment with focus, in `segmented`.
91343
93213
  * - `--date-input-segment-literal-color`: The text the locale writes between two segments, in `segmented`.
@@ -92255,6 +94125,16 @@ export type CustomElementsSolidJs = {
92255
94125
  * - `screenshot-live`: The screenshot button's live region, which speaks while the button is pending.
92256
94126
  * - `screenshot-spinner`: The ring the screenshot button turns while it is pending.
92257
94127
  * - `screenshot-text`: The box the screenshot button's icon sits in.
94128
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
94129
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
94130
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
94131
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
94132
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
94133
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
94134
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
94135
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
94136
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
94137
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
92258
94138
  * - `touch`: A ring where a touch is or was.
92259
94139
  * - `touch-held`: A ring under a finger that is down, beside `touch`, with `show-touches`.
92260
94140
  * - `volume-down`: The Volume down button.
@@ -92296,6 +94176,15 @@ export type CustomElementsSolidJs = {
92296
94176
  *
92297
94177
  * Component attributes and properties that can be applied to the element or by using JavaScript.
92298
94178
  *
94179
+ * - `material`: The panel's surface: `frosted` or `glass`.
94180
+ *
94181
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
94182
+ * ground over the theme's blur, and `frosted` the same pair turned up, as
94183
+ * on `Popover`, `Menu`, `Drawer` and `Tooltip`, so a page whose panels are
94184
+ * frosted has dialogs that match.
94185
+ *
94186
+ * **No `transparent`, deliberately.** A dialog over arbitrary page content
94187
+ * is only readable because it has a ground.
92299
94188
  * - `size`: How wide the panel is allowed to be.
92300
94189
  *
92301
94190
  * Steps rather than a number, because a dialog's width is a fact about what is
@@ -92471,9 +94360,10 @@ export type CustomElementsSolidJs = {
92471
94360
  *
92472
94361
  * CSS variables available for styling the component.
92473
94362
  *
94363
+ * - `--dialog-backdrop`: Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy.
92474
94364
  * - `--dialog-background-color`: The panel's fill. Follows `--helix-color-surface-overlay`.
92475
94365
  * - `--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.
94366
+ * - `--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
94367
  * - `--dialog-color`: Color of the words in the panel. Follows `--helix-color-foreground`.
92478
94368
  * - `--dialog-icon-size`: How big the mark above the title is.
92479
94369
  * - `--dialog-inline-size`: Width of the panel.
@@ -93125,7 +95015,7 @@ export type CustomElementsSolidJs = {
93125
95015
  * - `--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
95016
  * - `--drawer-background-color`: Surface behind the panel.
93127
95017
  * - `--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.
95018
+ * - `--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
95019
  * - `--drawer-padding`: Padding inside the panel.
93130
95020
  * - `--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
95021
  * - `--drawer-radius`: Corner radius on the edges that face the page.
@@ -94648,6 +96538,209 @@ export type CustomElementsSolidJs = {
94648
96538
  BaseEvents<HelixFilterInput>
94649
96539
  >;
94650
96540
 
96541
+ /**
96542
+ * Drawn as the find bars of Terminal and Code Editor are: a dense strip on the
96543
+ * raised surface, with a line under it where it meets the content. Place it
96544
+ * above the content it searches, such as at the top of a pane, or make it
96545
+ * sticky with `position: sticky` on the element.
96546
+ *
96547
+ * Every match is painted with `::highlight(helix-find-match)` and the current
96548
+ * one with `::highlight(helix-find-current)`, both in the base layer. Text is
96549
+ * painted from the tree it lives in, so content in a shadow root of your own
96550
+ * needs the two rules in that root's styles.
96551
+ *
96552
+ * ## Attributes & Properties
96553
+ *
96554
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
96555
+ *
96556
+ * - `default-open`/`defaultOpen`: Whether the element starts open. Ignored once `open` is written.
96557
+ * - `open`: Whether the element is open.
96558
+ *
96559
+ * One property, not two, so `dialog.open` answers the question anyone
96560
+ * asking it meant. Writing always applies; `<helix-dialog open>` is the
96561
+ * same statement in markup.
96562
+ *
96563
+ * **Not reflected, and that is required rather than tidy.** Reflection
96564
+ * writes the resolved state back as an attribute, so an element that opened
96565
+ * itself would put `open` on its own host: cloned, serialized for
96566
+ * hydration, or diffed by a framework, it comes back holding whatever the
96567
+ * last reader did rather than what the author wrote. `:state(open)` carries
96568
+ * the resolved state for stylesheets, which is what the mirror is for.
96569
+ * - `close-label`/`closeLabel`: The close button's label.
96570
+ * - `controls-label`/`controlsLabel`: The name of the bar's toolbar, read by screen readers.
96571
+ * - `for`: The id of the element whose text Find searches, in the same tree as Find.
96572
+ * With a finder attached, it names only where the find key opens the bar.
96573
+ * - `invalid-label`/`invalidLabel`: What the count says when the regular expression cannot be read.
96574
+ * - `label`: The field's name and placeholder, and the name of the bar.
96575
+ * - `match-case`/`matchCase`: Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar.
96576
+ * - `match-case-label`/`matchCaseLabel`: The match case button's label.
96577
+ * - `matches-label`/`matchesLabel`: What the count says of the matches. `{index}` is the current match,
96578
+ * counting from 1, and `{count}` how many there are.
96579
+ * - `next-label`/`nextLabel`: The next match button's label.
96580
+ * - `options`: Which options the bar draws, as a list of `match-case`, `whole-word`, and
96581
+ * `regex`, or `none`. They are always drawn in that order.
96582
+ * - `previous-label`/`previousLabel`: The previous match button's label.
96583
+ * - `query`: What the field holds: what the reader typed, or what you set.
96584
+ * - `readonly`/`readOnly`: Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling.
96585
+ * - `regex`: Whether the field reads as a regular expression, in JavaScript's syntax. The reader turns it on and off from the bar.
96586
+ * - `regex-label`/`regexLabel`: The regular expression button's label.
96587
+ * - `replace-all-label`/`replaceAllLabel`: The Replace all button's words.
96588
+ * - `replace-field-label`/`replaceFieldLabel`: The replace field's name and placeholder.
96589
+ * - `replace-label`/`replaceLabel`: The Replace button's words.
96590
+ * - `replacement`: What the replace field holds, which Replace puts in place of a match.
96591
+ * - `replace-toggle-label`/`replaceToggleLabel`: The label of the button that shows the replace row.
96592
+ * - `shortcut`: The key that opens the bar, as a chord such as `mod+f`, where `mod` is
96593
+ * Command on an Apple keyboard and Control elsewhere. Empty turns the key
96594
+ * off, as for a bar the page opens itself.
96595
+ * - `skip`: Elements inside the content whose text is not searched, as a selector,
96596
+ * such as line numbers or the buttons beside each message.
96597
+ * - `whole-word`/`wholeWord`: Whether only whole words match. The reader turns it on and off from the bar.
96598
+ * - `whole-word-label`/`wholeWordLabel`: The whole word button's label.
96599
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
96600
+ *
96601
+ * **Named `whenSettled` because `settled` is taken four times over**, by
96602
+ * Image, Splitter and both color controls, none of them about transitions. A
96603
+ * base class takes the name every subclass then cannot use.
96604
+ *
96605
+ * **The state it reports cannot be watched, which is why this exists.** A
96606
+ * custom state is deliberately not in the DOM, so there is no
96607
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
96608
+ * instead.
96609
+ *
96610
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
96611
+ * the suppression is still active in. That is the distinction `readyToMove`
96612
+ * in `@fusion.dev/helix-testing` is written around.
96613
+ *
96614
+ * It never resolves where `requestAnimationFrame` never fires, which is a
96615
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
96616
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
96617
+ * browser harness's awaits it alone: a browser always runs the frame, and a
96618
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
96619
+ *
96620
+ * ## Events
96621
+ *
96622
+ * Events that will be emitted by the component.
96623
+ *
96624
+ * - `toggle`: Sent when the bar opens or closes, with `newState` and `oldState`.
96625
+ * - `helix-before-close`: Fired before the bar closes, and cancelable.
96626
+ * - `helix-before-open`: Fired before the bar opens, and cancelable. Canceling it keeps the bar closed.
96627
+ * - `helix-found`: Sent after each search and each move among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none.
96628
+ *
96629
+ * ## Slots
96630
+ *
96631
+ * Areas where markup can be added to the component.
96632
+ *
96633
+ * - `actions`: Controls of your own in the bar's toolbar, between its options and the buttons that move between matches.
96634
+ * - `close-icon`: Replaces the glyph inside the close button.
96635
+ * - `match-case-icon`: Replaces the glyph inside the match case button.
96636
+ * - `next-icon`: Replaces the glyph inside the next match button.
96637
+ * - `previous-icon`: Replaces the glyph inside the previous match button.
96638
+ * - `regex-icon`: Replaces the glyph inside the regular expression button.
96639
+ * - `whole-word-icon`: Replaces the glyph inside the whole word button.
96640
+ *
96641
+ * ## Methods
96642
+ *
96643
+ * Methods that can be called to access component functionality.
96644
+ *
96645
+ * - `requestOpen(next: boolean) => boolean`: Requests that the element open or close, and returns whether the change
96646
+ * was applied.
96647
+ *
96648
+ * Announces before it acts, so `preventDefault()` on the `helix-before-open` or
96649
+ * `helix-before-close` is a refusal and nothing moves. Nobody refusing means the
96650
+ * element opens or closes itself, whether or not a consumer declared
96651
+ * `open`: a declared property is a seed and a correction, and a consumer
96652
+ * who wants the decision for themselves refuses it and assigns their own.
96653
+ * - `toggleOpen() => boolean`: Requests the opposite of the current state.
96654
+ * - `attach(finder: Finder) => FindSink`: Searches with `finder` in place of the text finder, and returns how it
96655
+ * reports a search it finishes later. Attaching another lets go of this one.
96656
+ * - `show() => Promise<void>`: Opens the bar and puts focus in its field, with what it holds selected.
96657
+ * Text selected in the content, on one line, becomes the search.
96658
+ * - `hide() => void`: Closes the bar and takes the marks away. Focus in the bar returns to where it was before the bar opened.
96659
+ * - `next() => void`: Moves to the next match, after the last one to the first.
96660
+ * - `previous() => void`: Moves to the previous match, before the first one to the last.
96661
+ * - `refresh() => void`: Searches again, staying on the current match where it still matches, for content changed in a way Find cannot see.
96662
+ *
96663
+ * ## CSS Custom Properties
96664
+ *
96665
+ * CSS variables available for styling the component.
96666
+ *
96667
+ * - `--find-background-color`: The bar's fill. Defaults to the raised surface.
96668
+ * - `--find-border-color`: The line under the bar and the fields' edges.
96669
+ * - `--find-field-background-color`: The fields' fill. Defaults to the page's background.
96670
+ *
96671
+ * ## CSS Parts
96672
+ *
96673
+ * Custom selectors for styling elements within the component.
96674
+ *
96675
+ * - `actions`: The `actions` slot, in the toolbar.
96676
+ * - `bar`: The bar, a search landmark: the field, the count, the toolbar, and the replace row while it shows.
96677
+ * - `close`: The button that closes the bar.
96678
+ * - `close-button`: The close button's inner button.
96679
+ * - `close-live`: The close button's live region, which speaks while the button is pending.
96680
+ * - `close-spinner`: The ring the close button turns while it is pending.
96681
+ * - `close-text`: The box the close button's icon sits in.
96682
+ * - `controls`: The toolbar: the options, your actions, and the buttons that move between matches and close the bar.
96683
+ * - `controls-toolbar`: The box inside the toolbar that lays its buttons out.
96684
+ * - `count`: Which match is current and how many there are, such as "3 of 12 matches".
96685
+ * - `field`: The search field.
96686
+ * - `live`: The live region that says the count as it changes.
96687
+ * - `match-case`: The button that matches case. Pressed while it does.
96688
+ * - `match-case-button`: The match case button's inner button.
96689
+ * - `match-case-live`: The match case button's live region, which speaks while the button is pending.
96690
+ * - `match-case-pressed`: The match case button while case has to match, beside `match-case`.
96691
+ * - `match-case-spinner`: The ring the match case button turns while it is pending.
96692
+ * - `match-case-text`: The box the match case button's icon sits in.
96693
+ * - `next`: The button that moves to the next match.
96694
+ * - `next-button`: The next match button's inner button.
96695
+ * - `next-live`: The next match button's live region, which speaks while the button is pending.
96696
+ * - `next-spinner`: The ring the next match button turns while it is pending.
96697
+ * - `next-text`: The box the next match button's icon sits in.
96698
+ * - `previous`: The button that moves to the previous match.
96699
+ * - `previous-button`: The previous match button's inner button.
96700
+ * - `previous-live`: The previous match button's live region, which speaks while the button is pending.
96701
+ * - `previous-spinner`: The ring the previous match button turns while it is pending.
96702
+ * - `previous-text`: The box the previous match button's icon sits in.
96703
+ * - `regex`: The button that reads the field as a regular expression. Pressed while it does.
96704
+ * - `regex-button`: The regular expression button's inner button.
96705
+ * - `regex-live`: The regular expression button's live region, which speaks while the button is pending.
96706
+ * - `regex-pressed`: The regular expression button while the field reads as one, beside `regex`.
96707
+ * - `regex-spinner`: The ring the regular expression button turns while it is pending.
96708
+ * - `regex-text`: The box the regular expression button's icon sits in.
96709
+ * - `replace`: The button that replaces the current match.
96710
+ * - `replace-all`: The button that replaces every match.
96711
+ * - `replace-all-button`: The Replace all button's inner button.
96712
+ * - `replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
96713
+ * - `replace-all-spinner`: The ring the Replace all button turns while it is pending.
96714
+ * - `replace-all-text`: The box the Replace all button's words sit in.
96715
+ * - `replace-button`: The Replace button's inner button.
96716
+ * - `replace-field`: The field the replacement is typed in.
96717
+ * - `replace-live`: The Replace button's live region, which speaks while the button is pending.
96718
+ * - `replace-spinner`: The ring the Replace button turns while it is pending.
96719
+ * - `replace-text`: The box the Replace button's words sit in.
96720
+ * - `replace-toggle`: The button that shows the replace row. Expanded while it shows.
96721
+ * - `replace-toggle-button`: The replace toggle's inner button.
96722
+ * - `replace-toggle-live`: The replace toggle's live region, which speaks while the button is pending.
96723
+ * - `replace-toggle-spinner`: The ring the replace toggle turns while it is pending.
96724
+ * - `replace-toggle-text`: The box the replace toggle's icon sits in.
96725
+ * - `whole-word`: The button that matches whole words only. Pressed while it does.
96726
+ * - `whole-word-button`: The whole word button's inner button.
96727
+ * - `whole-word-live`: The whole word button's live region, which speaks while the button is pending.
96728
+ * - `whole-word-pressed`: The whole word button while only whole words match, beside `whole-word`.
96729
+ * - `whole-word-spinner`: The ring the whole word button turns while it is pending.
96730
+ * - `whole-word-text`: The box the whole word button's icon sits in.
96731
+ *
96732
+ * ## CSS States
96733
+ *
96734
+ * These can be used to apply styling when a component is in a given state.
96735
+ *
96736
+ * - `open`: While the bar is open.
96737
+ * - `replace-open`: While the replace row shows.
96738
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
96739
+ */
96740
+ "helix-find": Partial<
96741
+ HelixFindProps & HelixFindSolidJsProps & BaseProps<HelixFind, "solid"> & BaseEvents<HelixFind>
96742
+ >;
96743
+
94651
96744
  /**
94652
96745
  * The host is the flex container and its only child is a slot, so
94653
96746
  * `<helix-flex>` adds no box beyond the `<div>` it replaces.
@@ -95288,6 +97381,16 @@ export type CustomElementsSolidJs = {
95288
97381
  * - `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
97382
  * - `stage`: The drawing and its controls.
95290
97383
  * - `stop-layout`: The button that stops a layout that has run past five seconds, where the notes stand.
97384
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
97385
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
97386
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
97387
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
97388
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
97389
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
97390
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
97391
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
97392
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
97393
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
95291
97394
  * - `viewport`: The box the renderer draws in.
95292
97395
  * - `zoom-in`: The zoom in button.
95293
97396
  * - `zoom-in-button`: `zoom-in`'s inner button.
@@ -95895,6 +97998,20 @@ export type CustomElementsSolidJs = {
95895
97998
  * name to derive one rather than dash-casing it, and what a consumer writes
95896
97999
  * is the platform's `commandfor`.
95897
98000
  * - `commandfor`/`commandFor`: The id of the element the command is sent to.
98001
+ * - `focusable-when-disabled`/`focusableWhenDisabled`: Whether a disabled button stays in the tab order, so a tooltip around it
98002
+ * can say why it is disabled.
98003
+ *
98004
+ * Set it on a button whose reason a Tooltip gives, such as a Save with no
98005
+ * changes to save. While the button is disabled, it keeps focus and takes
98006
+ * hover, and it refuses every press: a click, Enter and Space, and Enter in
98007
+ * a field of its form. The click does not reach your listeners, and a submit
98008
+ * button submits nothing. The inner control carries `aria-disabled` in place
98009
+ * of the native `disabled`, so a screen reader still says it is unavailable.
98010
+ * The styled button keeps the disabled look.
98011
+ *
98012
+ * Leave it unset on a button with no reason to give. A plain disabled button
98013
+ * leaves the tab order, as a native one does, and a keyboard reader skips a
98014
+ * stop that does nothing. Set `pending` for the wait after a press.
95898
98015
  * - `formaction`/`formAction`: Where this button's submission goes, overriding the form's own.
95899
98016
  *
95900
98017
  * **The five `form*` overrides ride on a native submit button that stands in
@@ -96514,6 +98631,9 @@ export type CustomElementsSolidJs = {
96514
98631
  *
96515
98632
  * Empty leaves the attribute off, which is the browser's default. Set it to
96516
98633
  * a token like `email` or `bday` to ask for autofill, or to `off` to refuse.
98634
+ * - `autocorrect`: Whether the browser corrects words as the reader types, as the platform's
98635
+ * `autocorrect`. Turn it off, with `autocorrect="off"`, for text that is not
98636
+ * prose, such as an address or a code, which corrections would change.
96517
98637
  * - `clearable`: Whether the field shows a button that empties it.
96518
98638
  *
96519
98639
  * Shown only while there is something to clear, because a control that does
@@ -98749,7 +100869,7 @@ export type CustomElementsSolidJs = {
98749
100869
  *
98750
100870
  * Custom selectors for styling elements within the component.
98751
100871
  *
98752
- * - `content`: The lines, hidden while the group is shut.
100872
+ * - `content`: The lines, hidden until found while the group is shut.
98753
100873
  * - `duration`: How long the step took.
98754
100874
  * - `heading`: The heading.
98755
100875
  * - `mark`: The caret that turns as the group opens, an `<svg>` you size.
@@ -98760,7 +100880,9 @@ export type CustomElementsSolidJs = {
98760
100880
  *
98761
100881
  * These can be used to apply styling when a component is in a given state.
98762
100882
  *
100883
+ * - `empty`: The group holds nothing to show, so opening it shows nothing.
98763
100884
  * - `open`: The group shows its lines.
100885
+ * - `steps`: The group holds steps of its own, which a stylesheet draws as a tree.
98764
100886
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
98765
100887
  */
98766
100888
  "helix-log-group": Partial<
@@ -98892,7 +101014,10 @@ export type CustomElementsSolidJs = {
98892
101014
  * - `plain` has no edge, no fill, no inset and no height of its own: the
98893
101015
  * lines start where the text around them does and the log grows with
98894
101016
  * them. For a log inside something that already frames it, such as an
98895
- * agent's work in a chat turn's `work` slot.
101017
+ * agent's work in a chat turn's `work` slot. Each step is a row with its
101018
+ * status mark on that edge and its caret after the heading. A step that
101019
+ * holds steps draws a rule beside them, and a step that holds lines draws
101020
+ * them on a quiet surface that scrolls after `--log-step-max-block-size`.
98896
101021
  *
98897
101022
  * Both are writable, so a page can say which it means rather than relying
98898
101023
  * on the absence of an attribute.
@@ -99050,6 +101175,7 @@ export type CustomElementsSolidJs = {
99050
101175
  * - `--log-radius`: The corners of the log.
99051
101176
  * - `--log-scrollbar-thumb-color`: The thumb of the scrollbar. Defaults to `--helix-scrollbar-thumb-color`.
99052
101177
  * - `--log-scrollbar-track-color`: The track of the scrollbar. Defaults to `--helix-scrollbar-track-color`.
101178
+ * - `--log-step-max-block-size`: How tall a step's lines may get in a `plain` log before they scroll. Defaults to 20rem.
99053
101179
  * - `--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
101180
  * - `--log-ansi-black`: The ANSI color black, which codes `30` and `40` draw.
99055
101181
  * - `--log-ansi-blue`: The ANSI color blue, which codes `34` and `44` draw.
@@ -99077,7 +101203,7 @@ export type CustomElementsSolidJs = {
99077
101203
  * - `after`: The space the rows below the drawn ones would take. Only for lines drawn from data.
99078
101204
  * - `before`: The space the rows above the drawn ones would take. Only for lines drawn from data.
99079
101205
  * - `dropped`: The line above the log that says how many earlier lines `limit` let go.
99080
- * - `empty`: Shown when the log has no lines.
101206
+ * - `empty`: Shown when the log has no lines and no steps.
99081
101207
  * - `group-content`: Not drawn: a group drawn from data stands for its heading, and its lines are rows beside it.
99082
101208
  * - `group-duration`: How long a step drawn from `groups` took.
99083
101209
  * - `group-heading`: The heading of a step drawn from `groups`.
@@ -99123,7 +101249,7 @@ export type CustomElementsSolidJs = {
99123
101249
  * These can be used to apply styling when a component is in a given state.
99124
101250
  *
99125
101251
  * - `done`: The run is over: `done` is set, or `source` ended.
99126
- * - `empty`: The log has no lines.
101252
+ * - `empty`: The log has no lines and no steps.
99127
101253
  * - `filtered`: `query` or `level` is set, so only the lines they keep are shown.
99128
101254
  * - `pinned`: The log follows its newest line.
99129
101255
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -100091,6 +102217,16 @@ export type CustomElementsSolidJs = {
100091
102217
  * - `tilt-live`: `tilt`'s live region, which speaks while it is pending.
100092
102218
  * - `tilt-spinner`: The ring `tilt` turns while it is pending.
100093
102219
  * - `tilt-text`: The box `tilt`'s glyph sits in.
102220
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
102221
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
102222
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
102223
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
102224
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
102225
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
102226
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
102227
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
102228
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
102229
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
100094
102230
  * - `viewport`: The box the map is drawn in.
100095
102231
  * - `zoom-in`: The button that zooms in.
100096
102232
  * - `zoom-in-button`: `zoom-in`'s inner button.
@@ -100482,7 +102618,7 @@ export type CustomElementsSolidJs = {
100482
102618
  *
100483
102619
  * - `--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
102620
  * - `--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.
102621
+ * - `--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
102622
  * - `--megamenu-column-size`: The minimum width of a column before the grid wraps.
100487
102623
  * - `--megamenu-duration`: How long the panel takes to open and close.
100488
102624
  * - `--megamenu-full-size`: The maximum width of the band's contents, which are centered in it.
@@ -100731,6 +102867,19 @@ export type CustomElementsSolidJs = {
100731
102867
  *
100732
102868
  * Component attributes and properties that can be applied to the element or by using JavaScript.
100733
102869
  *
102870
+ * - `material`: The panel's surface: `frosted` or `glass`.
102871
+ *
102872
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
102873
+ * ground over a blur, for a page whose surfaces are glass, so a panel opened
102874
+ * over a glass window is not the one opaque slab on it. `frosted` is the same
102875
+ * pair turned up, a ground that admits less and a heavier blur.
102876
+ *
102877
+ * The strength is the theme's: `--helix-material-translucent`,
102878
+ * `--helix-material-translucent-strong` and `--helix-material-backdrop` are
102879
+ * what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
102880
+ *
102881
+ * **No `transparent`, deliberately.** A panel floating over arbitrary page
102882
+ * content is only readable because it has a ground.
100734
102883
  * - `empty-text`/`emptyText`: The text shown and announced when there are no rows and none are loading.
100735
102884
  * - `loading`: Whether the rows are still loading.
100736
102885
  *
@@ -100880,9 +103029,10 @@ export type CustomElementsSolidJs = {
100880
103029
  *
100881
103030
  * CSS variables available for styling the component.
100882
103031
  *
103032
+ * - `--menu-backdrop`: Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy.
100883
103033
  * - `--menu-background-color`: Fill of the surface.
100884
103034
  * - `--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.
103035
+ * - `--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
103036
  * - `--menu-max-block-size`: The tallest the menu grows before it scrolls.
100887
103037
  * - `--menu-min-inline-size`: The narrowest the menu gets.
100888
103038
  * - `--menu-shadow`: Shadow under the panel. Defaults to `--helix-shadow-floating`, so the panel keeps a shadow over any content below it.
@@ -100978,6 +103128,7 @@ export type CustomElementsSolidJs = {
100978
103128
  *
100979
103129
  * These can be used to apply styling when a component is in a given state.
100980
103130
  *
103131
+ * - `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
103132
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
100982
103133
  */
100983
103134
  "helix-menu-section": Partial<
@@ -101166,6 +103317,7 @@ export type CustomElementsSolidJs = {
101166
103317
  * Areas where markup can be added to the component.
101167
103318
  *
101168
103319
  * - `label`: A visible label, above a bar and under a ring or an arc. Its words name it in place of `label`.
103320
+ * - `(default)`: `Meter.Segment` elements, one for each share of the whole, drawn in the bar.
101169
103321
  *
101170
103322
  * ## CSS Custom Properties
101171
103323
  *
@@ -101187,6 +103339,7 @@ export type CustomElementsSolidJs = {
101187
103339
  * - `--meter-along`: Where a bound sits on the arc, as a length along it.
101188
103340
  * - `--meter-at`: Where a bound sits on a linear track, as a percentage.
101189
103341
  * - `--meter-fraction`: The value as a fraction of the range, 0 to 1.
103342
+ * - `--meter-span`: How much the range holds, `max` less `min`, which a segment divides its own value by to find its width.
101190
103343
  * - `--meter-sweep`: How much of the circle the arc covers, as a path length.
101191
103344
  *
101192
103345
  * ## CSS Parts
@@ -101223,6 +103376,87 @@ export type CustomElementsSolidJs = {
101223
103376
  BaseEvents<HelixMeter>
101224
103377
  >;
101225
103378
 
103379
+ /**
103380
+ * Each segment takes the next color in the chart series, in the order written, so
103381
+ * two of them are told apart without being given a color. A `tone` is what a
103382
+ * segment means, and takes the place of its turn. A hairline in the track's ground
103383
+ * sits between neighbors, so the boundary is there for a reader who cannot tell
103384
+ * two of the colors apart.
103385
+ *
103386
+ * Write the segments inside a meter, and the page imports the family beside it:
103387
+ *
103388
+ * ```js
103389
+ * import '@fusion.dev/helix/meter'
103390
+ * ```
103391
+ *
103392
+ * ## Attributes & Properties
103393
+ *
103394
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
103395
+ *
103396
+ * - `label`: What the segment is, such as "Tools", which names the slice when a pointer
103397
+ * rests on it.
103398
+ *
103399
+ * Not announced: see the note on a meter's children above.
103400
+ * - `tone`: What the segment means, as it does on a callout. Takes the tone's color in
103401
+ * place of the next color in the series.
103402
+ * - `value`: How much of the meter's range the segment takes, in the units of the meter's
103403
+ * `min` and `max`.
103404
+ *
103405
+ * A value that is not a number, or is below zero, draws nothing.
103406
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
103407
+ *
103408
+ * **Named `whenSettled` because `settled` is taken four times over**, by
103409
+ * Image, Splitter and both color controls, none of them about transitions. A
103410
+ * base class takes the name every subclass then cannot use.
103411
+ *
103412
+ * **The state it reports cannot be watched, which is why this exists.** A
103413
+ * custom state is deliberately not in the DOM, so there is no
103414
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
103415
+ * instead.
103416
+ *
103417
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
103418
+ * the suppression is still active in. That is the distinction `readyToMove`
103419
+ * in `@fusion.dev/helix-testing` is written around.
103420
+ *
103421
+ * It never resolves where `requestAnimationFrame` never fires, which is a
103422
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
103423
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
103424
+ * browser harness's awaits it alone: a browser always runs the frame, and a
103425
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
103426
+ *
103427
+ * ## Slots
103428
+ *
103429
+ * Areas where markup can be added to the component.
103430
+ *
103431
+ * - `(default)`: Nothing. A segment draws its share and has no content.
103432
+ *
103433
+ * ## CSS Custom Properties
103434
+ *
103435
+ * CSS variables available for styling the component.
103436
+ *
103437
+ * - `--meter-segment-color`: The slice's color. Overrides the series and the tone.
103438
+ * - `--meter-segment-gap-color`: The color of the hairline between neighbors.
103439
+ * - `--meter-segment-value`: How much of the range the segment takes, in the meter's own units.
103440
+ *
103441
+ * ## CSS Parts
103442
+ *
103443
+ * Custom selectors for styling elements within the component.
103444
+ *
103445
+ * - `fill`: The slice of the bar the segment takes.
103446
+ *
103447
+ * ## CSS States
103448
+ *
103449
+ * These can be used to apply styling when a component is in a given state.
103450
+ *
103451
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
103452
+ */
103453
+ "helix-meter-segment": Partial<
103454
+ HelixMeterSegmentProps &
103455
+ HelixMeterSegmentSolidJsProps &
103456
+ BaseProps<HelixMeterSegment, "solid"> &
103457
+ BaseEvents<HelixMeterSegment>
103458
+ >;
103459
+
101226
103460
  /**
101227
103461
  * A quiet square button, as the controls over a map are, with the pause icon
101228
103462
  * while motion runs and the play icon while it is paused. Text slotted into
@@ -103912,6 +106146,19 @@ export type CustomElementsSolidJs = {
103912
106146
  *
103913
106147
  * Component attributes and properties that can be applied to the element or by using JavaScript.
103914
106148
  *
106149
+ * - `material`: The panel's surface: `frosted` or `glass`.
106150
+ *
106151
+ * Absent is the opaque overlay surface. `glass` is the page's translucent
106152
+ * ground over a blur, for a page whose surfaces are glass, so a panel opened
106153
+ * over a glass window is not the one opaque slab on it. `frosted` is the same
106154
+ * pair turned up, a ground that admits less and a heavier blur.
106155
+ *
106156
+ * The strength is the theme's: `--helix-material-translucent`,
106157
+ * `--helix-material-translucent-strong` and `--helix-material-backdrop` are
106158
+ * what the policy moves. `Drawer` and `Tooltip` carry the same attribute.
106159
+ *
106160
+ * **No `transparent`, deliberately.** A panel floating over arbitrary page
106161
+ * content is only readable because it has a ground.
103915
106162
  * - `separation`: How the panel is set apart from the content under it.
103916
106163
  *
103917
106164
  * One of the axis's four values, which is all this surface has meaning for: a
@@ -104020,8 +106267,10 @@ export type CustomElementsSolidJs = {
104020
106267
  * CSS variables available for styling the component.
104021
106268
  *
104022
106269
  * - `--popover-arrow-size`: Size of the point drawn with `arrow`. Tooltip's point is the same size.
106270
+ * - `--popover-backdrop`: Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy.
106271
+ * - `--popover-background-color`: Fill of the surface.
104023
106272
  * - `--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.
106273
+ * - `--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
106274
  * - `--popover-inline-size`: Width of the panel.
104026
106275
  * - `--popover-max-block-size`: Maximum height of the panel before it scrolls.
104027
106276
  * - `--popover-padding`: Space between the panel's edge and its contents.
@@ -106483,6 +108732,17 @@ export type CustomElementsSolidJs = {
106483
108732
  * styled to match the design system. The base class measures which edges have
106484
108733
  * content past them.
106485
108734
  *
108735
+ * **The content fades out toward each edge that has more past it.** The fade
108736
+ * is a mask on the viewport, so the surface behind the scroll area shows
108737
+ * through it: the page, a card, or a translucent pane. Set the depth with
108738
+ * `--scroll-area-fade`, or one edge's depth with its own property, and use `0`
108739
+ * to keep an edge from fading. A scrollbar that takes room beside the content
108740
+ * stays out of the mask.
108741
+ *
108742
+ * **Set `--scroll-area-fade-color` to paint the fades.** Each fade is then a
108743
+ * gradient from that color over the content, and there is no mask. Use it for
108744
+ * a scroll area on a solid ground, in the ground's color or one of your own.
108745
+ *
106486
108746
  * Under `scrollbars`, the browser's scrollbar is hidden and the component's own
106487
108747
  * are drawn over the content at the edge, in the same colors.
106488
108748
  *
@@ -106556,10 +108816,10 @@ export type CustomElementsSolidJs = {
106556
108816
  *
106557
108817
  * CSS variables available for styling the component.
106558
108818
  *
106559
- * - `--scroll-area-fade`: The depth of the fades at both edges.
108819
+ * - `--scroll-area-fade`: The depth of the fade at each edge.
106560
108820
  * - `--scroll-area-fade-block-end`: The depth of the bottom fade, or `0` to remove it.
106561
108821
  * - `--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.
108822
+ * - `--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
108823
  * - `--scroll-area-fade-inline-end`: The depth of the fade at the inline end, or `0` to remove it.
106564
108824
  * - `--scroll-area-fade-inline-start`: The depth of the fade at the inline start, or `0` to remove it.
106565
108825
  * - `--scroll-area-scrollbar`: The scrollbar width, as a `scrollbar-width` keyword.
@@ -106568,6 +108828,8 @@ export type CustomElementsSolidJs = {
106568
108828
  * - `--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
108829
  * - `--scroll-area-thumb-min-size`: The shortest a thumb drawn under `scrollbars` gets, however long the content.
106570
108830
  * - `--scroll-area-track-color`: The color of the scrollbar's track. Defaults to `--helix-scrollbar-track-color`.
108831
+ * - `--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.
108832
+ * - `--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
108833
  * - `--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
108834
  * - `--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
108835
  *
@@ -106576,7 +108838,7 @@ export type CustomElementsSolidJs = {
106576
108838
  * Custom selectors for styling elements within the component.
106577
108839
  *
106578
108840
  * - `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.
108841
+ * - `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
108842
  * - `scrollbar`: Each scrollbar, under `scrollbars`. Hidden on an axis that has none.
106581
108843
  * - `scrollbar-horizontal`: The scrollbar along the inline axis, alongside `scrollbar`.
106582
108844
  * - `scrollbar-vertical`: The scrollbar along the block axis, alongside `scrollbar`.
@@ -106929,7 +109191,7 @@ export type CustomElementsSolidJs = {
106929
109191
  * CSS variables available for styling the component.
106930
109192
  *
106931
109193
  * - `--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.
109194
+ * - `--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
109195
  * - `--select-shadow`: Shadow under the panel. Defaults to `--helix-shadow-floating`, because the panel can sit over any content.
106934
109196
  * - `--select-surface-max-block-size`: Maximum height of the panel.
106935
109197
  * - `--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 +109499,7 @@ export type CustomElementsSolidJs = {
107237
109499
  *
107238
109500
  * - `--skip-link-background-color`: The background of the link while it is shown.
107239
109501
  * - `--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.
109502
+ * - `--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
109503
  * - `--skip-link-color`: The text color of the link while it is shown.
107242
109504
  * - `--skip-link-font-size`: The size of the link's text.
107243
109505
  * - `--skip-link-inset-block`: How far the shown link sits from the top of the viewport.
@@ -107869,6 +110131,13 @@ export type CustomElementsSolidJs = {
107869
110131
  * reflected property takes no default, and `solid` writes it out. A
107870
110132
  * renderer draws the bars the same way.
107871
110133
  *
110134
+ * **`muted` draws every bar in the neutral ink**, so the one bar whose cell
110135
+ * names a tone, such as `data-tone="primary"`, is the bar in color, with a
110136
+ * soft glow in its tone: one reading lit among the others, such as today
110137
+ * among a week. Each top takes the most ink and each side less, as a
110138
+ * colored bar's faces do. A renderer draws the neutral bars and the toned
110139
+ * one, without the glow.
110140
+ *
107872
110141
  * It composes with `material`: emphasis decides what is drawn, and material
107873
110142
  * how much of it comes through. The outline on the bar the keys rest on
107874
110143
  * keeps its own ink.
@@ -107931,16 +110200,73 @@ export type CustomElementsSolidJs = {
107931
110200
  * `hidden`, or absent, says the summary to a screen reader and draws it
107932
110201
  * for no one else. Reflected, because the stylesheet draws it by the
107933
110202
  * 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
110203
+ * - `grow`: Grows the bars up from the floor the first time the chart comes into
110204
+ * view with readings, each category a little after the one before it, so
110205
+ * the drawing arrives the way a page's own picture does. The growth is
110206
+ * fast at first, slows to rest, and never passes a bar's value.
110207
+ *
110208
+ * Under `prefers-reduced-motion`, or where the page has paused its motion
110209
+ * through `pauseMotion` or `Motion Toggle`, the bars stand at their height
110210
+ * from the start. A later table draws the bars it already had at their
110211
+ * height, and grows the bars it adds, each from the floor, so a reading that
110212
+ * arrives while the chart is in view arrives the same way.
110213
+ * - `grow-again`/`growAgain`: Grows the bars again each time the chart comes back into view after it
110214
+ * left it, as a pane does when it is opened again, where `grow` alone grows
110215
+ * them the first time only. Only a chart that grows takes it.
110216
+ *
110217
+ * While it is out of view the bars stand at the floor, so the first frame
110218
+ * after it returns is the start of the growth and never a flash at full
110219
+ * height.
110220
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, and in a `row` no
110221
+ * floor, so the readings stand alone and fill the plot, as a picture on a
110222
+ * product's own page does. The
107936
110223
  * table, the summary, the tooltip, and the keys still carry every value,
107937
110224
  * and a renderer draws no box either.
107938
110225
  * - `open-label`/`openLabel`: What the readout says for a place with no value. `{category}` and
107939
110226
  * `{series}` name the place.
107940
110227
  * - `plot-label`/`plotLabel`: The plot's name where the chart has none: no `aria-label`, `label`, or table caption.
110228
+ * - `stacked`: Stacks a category's series into one column, each block standing on the
110229
+ * ones before it, so the column is as tall as the category's total, as a
110230
+ * flat `Bar Chart` stacks them.
110231
+ *
110232
+ * Absent stands the series one behind another in depth. Stacked, every
110233
+ * series stands in the front row, so none hides another, and the parts of
110234
+ * one total read together. A negative reading hangs below zero on the
110235
+ * negatives before it. The scale fits the stacks.
107941
110236
  * - `summary-label`/`summaryLabel`: The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
107942
110237
  * are the number of bars, series, and categories, written in the locale,
107943
110238
  * and `{low}` and `{high}` the lowest and the highest value.
110239
+ * - `variant`: How the bars stand.
110240
+ *
110241
+ * Unset, they stand on a grid of categories across and series in depth,
110242
+ * in a box the camera looks at from a corner, so the grid recedes at an
110243
+ * angle. `row` lays the categories in a straight line across the page and
110244
+ * turns each bar to the camera, showing its top and two sides, for one row
110245
+ * of readings in a small space such as a pane: turning the view turns each
110246
+ * bar where it stands, and the row stays level. It is the chart's own
110247
+ * drawing that lays the row: a renderer connected through
110248
+ * `@fusion.dev/helix-plot` stands the bars on the grid.
110249
+ *
110250
+ * `diagonal` is the same row climbing to the right as it recedes, each
110251
+ * place a step further back than the one before, as a row of days on a
110252
+ * product's page is drawn: the row rises one part in five across the page
110253
+ * from any turn, and its floor and names climb with it. A row whose bars
110254
+ * have a size climbs at most a quarter of the plot's height, so the bars
110255
+ * of a long row keep theirs.
110256
+ *
110257
+ * **A row draws its floor in place of a box**: each place as an outline a
110258
+ * little wider than its bar, and each category's name under it, as many
110259
+ * names as fit without touching. A name whose bar names a tone is written
110260
+ * first, in that tone. `no-box` leaves the floor and the names out.
110261
+ *
110262
+ * **A `column-gap` on the `fallback` part gives a row's bars one width**,
110263
+ * which the styled tier sets from `--spatial-bar-chart-bar-size`: one bar
110264
+ * stands as wide as each of twenty, the row is as long as its bars and
110265
+ * centered, the tallest bar stands as high as the plot has room for and
110266
+ * no taller than the row is long and a quarter again, so one bar stands
110267
+ * as a block, and `fits` says how many bars the plot holds, so a page
110268
+ * can give it the latest of a longer table. It is read when the plot's
110269
+ * size changes.
107944
110270
  * - `sounding`: Whether the chart is playing as sound now. (property only) (readonly)
107945
110271
  * - `data`: The readings as data, in the shape of a table, where the page has no
107946
110272
  * table to point `for` at. `for` wins where both are set.
@@ -107989,6 +110315,11 @@ export type CustomElementsSolidJs = {
107989
110315
  * - `field`: The table read as bars. **Each row is a category, and each numeric
107990
110316
  * column a series.** A renderer reads it. (property only) (readonly)
107991
110317
  * - `active`: The bar the keys or the pointer rest on, as its place in `field.cells`, or `-1`. (property only) (readonly)
110318
+ * - `fits`: How many categories a `row` or a `diagonal` has room for across the
110319
+ * plot at its bar size, measured as it is read, or
110320
+ * `undefined` where there is no row, no bar size, or nothing drawn to
110321
+ * measure. A page with a longer table gives the chart its latest that
110322
+ * many rows, and says so. (property only) (readonly)
107992
110323
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
107993
110324
  *
107994
110325
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -108076,8 +110407,16 @@ export type CustomElementsSolidJs = {
108076
110407
  *
108077
110408
  * CSS variables available for styling the component.
108078
110409
  *
110410
+ * - `--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
110411
  * - `--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.
110412
+ * - `--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
110413
+ * - `--spatial-bar-chart-tone-accent`: The color of a bar whose cell says `data-tone="accent"`.
110414
+ * - `--spatial-bar-chart-tone-danger`: The color of a bar whose cell says `data-tone="danger"`.
110415
+ * - `--spatial-bar-chart-tone-info`: The color of a bar whose cell says `data-tone="info"`.
110416
+ * - `--spatial-bar-chart-tone-muted`: The color of a bar whose cell says `data-tone="muted"`.
110417
+ * - `--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.
110418
+ * - `--spatial-bar-chart-tone-success`: The color of a bar whose cell says `data-tone="success"`.
110419
+ * - `--spatial-bar-chart-tone-warning`: The color of a bar whose cell says `data-tone="warning"`.
108081
110420
  *
108082
110421
  * ## CSS Parts
108083
110422
  *
@@ -108090,6 +110429,8 @@ export type CustomElementsSolidJs = {
108090
110429
  * - `empty`: The words when the table has no readings: the `empty` slot, falling back to `empty-text`.
108091
110430
  * - `face`: One face of a bar the view shows, shaded by which way it faces.
108092
110431
  * - `fallback`: The box the chart's own drawing fills, shown until a renderer has drawn and where none is connected. Hidden from screen readers.
110432
+ * - `floor`: One place on the floor of a `row`, under a bar or where one would stand, drawn as its outline.
110433
+ * - `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
110434
  * - `grid`: The box's edges and its grid, in the chart's own drawing.
108094
110435
  * - `live`: The readout: a polite live region that says the bar the keys moved to. Hide it visually.
108095
110436
  * - `loading`: The words while `loading` is set and there are no readings.
@@ -108101,7 +110442,7 @@ export type CustomElementsSolidJs = {
108101
110442
  * - `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
110443
  * - `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
110444
  * - `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.
110445
+ * - `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
110446
  * - `tooltip-anchor`: The `Tooltip` element itself.
108106
110447
  * - `tooltip-arrow`: The bubble's point, forwarded from `Tooltip`.
108107
110448
  * - `tooltip-arrow-bottom`: The point while the bubble is below the reading, on its top edge. Set alongside `tooltip-arrow`.
@@ -108118,6 +110459,7 @@ export type CustomElementsSolidJs = {
108118
110459
  * - `tooltip-surface-right`: The bubble while it is right of the reading. Set alongside `tooltip-surface`.
108119
110460
  * - `tooltip-surface-top`: The bubble while it is above the reading. Set alongside `tooltip-surface`.
108120
110461
  * - `tooltip-value`: A column's value inside the tooltip.
110462
+ * - `value`: The value of a bar whose cell names a tone, written above it in the chart's own drawing.
108121
110463
  *
108122
110464
  * ## CSS States
108123
110465
  *
@@ -110707,6 +113049,10 @@ export type CustomElementsSolidJs = {
110707
113049
  * `at` is nearer, and crosses in one diagonal to the far side. `waves` is sharp
110708
113050
  * strands crossing the full width.
110709
113051
  *
113052
+ * **Clear, over glass.** Set `clear` and the ribbon is drawn without its
113053
+ * ground, so a translucent pane or a frosted window behind the element shows
113054
+ * through, with the light over it.
113055
+ *
110710
113056
  * **Quiet behind words.** `quiet` names elements, such as a hero's words, that
110711
113057
  * the light dims behind to a faint glow, so a bright ribbon can cross the page
110712
113058
  * under them and they stay crisp.
@@ -110752,6 +113098,13 @@ export type CustomElementsSolidJs = {
110752
113098
  * own.
110753
113099
  * - `bloom`: How much the glow around the strands adds, as a multiplier. `0` draws the
110754
113100
  * strands alone, crisp and dimmer, and `1` is the default glow.
113101
+ * - `clear`: Whether the light is drawn alone, without the ground under it, so what is
113102
+ * behind the element shows through, such as a translucent pane or a window's
113103
+ * glass. The ground still says which way the page runs: light added on a
113104
+ * dark one, ink on a light one.
113105
+ *
113106
+ * Reflected because the stylesheet selects on it: the band under the canvas
113107
+ * shows only while the element falls back, and loses its ground too.
110755
113108
  * - `contrast`: How far apart the brightest and dimmest strands are, from `0`, most of
110756
113109
  * them alike, to `1`, a few burning bright over many faint ones. Clamped to
110757
113110
  * that range. The ribbon as a whole keeps its strength.
@@ -111895,10 +114248,40 @@ export type CustomElementsSolidJs = {
111895
114248
  * - `underlined` makes it a bar along the bottom of the strip, on a rule.
111896
114249
  * - `segmented` makes it the size of the tab's box, inside a sunken track.
111897
114250
  *
114251
+ * `emphasis="subtle"` makes the mark quieter, for tabs inside other chrome
114252
+ * such as a pane's header: a tint with no edge or shadow, the same wash a
114253
+ * subtle button takes.
114254
+ *
114255
+ * **Tabs with no panels are a strip.** Where what each tab stands for lives
114256
+ * outside the set, such as a pane's pages or shells, leave the panels out: the
114257
+ * tabs keep their keys and their selection, `active` and `helix-activate` say
114258
+ * which is current, and the page shows the rest. Put a control that adds a tab,
114259
+ * such as a plus, beside the set rather than in it, so the tab list holds tabs
114260
+ * alone. With `dismissible` tabs, `dismiss-marks="hover"` keeps each close
114261
+ * mark out of sight until the tab is current, under the pointer, or holds
114262
+ * focus, as a browser's tabs do.
114263
+ *
111898
114264
  * ## Attributes & Properties
111899
114265
  *
111900
114266
  * Component attributes and properties that can be applied to the element or by using JavaScript.
111901
114267
  *
114268
+ * - `dismiss-marks`/`dismissMarks`: When the close mark of each `dismissible` tab shows.
114269
+ *
114270
+ * Unset, or `always`, every mark shows. `hover` shows a tab's mark while it
114271
+ * is current, under the pointer, or holds focus, and keeps its room on every
114272
+ * tab, so the labels do not move as the marks come and go. For a strip of
114273
+ * many dismissible tabs, where a mark on each reads as a row of crosses. A
114274
+ * keyboard closes a tab with Delete whether its mark shows or not.
114275
+ * - `emphasis`: How loud the mark on the current tab is.
114276
+ *
114277
+ * Unset is the mark `variant` draws at rest. `subtle` is a tint with no
114278
+ * edge or shadow: the raised pill becomes a wash, the `segmented` track's
114279
+ * pill does the same inside it, and the `underlined` bar takes the
114280
+ * foreground's ink in place of the primary color. For tabs inside other
114281
+ * chrome, where a raised mark reads as a control laid on top of it.
114282
+ *
114283
+ * Independent of `variant`, since each of its marks has a quiet form: the two
114284
+ * answer different questions, which is the test the axis registry applies.
111902
114285
  * - `active`: The `value` of the current item.
111903
114286
  *
111904
114287
  * Not `option.active`, which is the option the keyboard is on: that is a
@@ -112133,6 +114516,7 @@ export type CustomElementsSolidJs = {
112133
114516
  * - `--tabs-tab-font-weight`: The weight of a tab's label.
112134
114517
  * - `--tabs-tab-hover-background-color`: The wash under the pointer.
112135
114518
  * - `--tabs-tab-hover-color`: The label color under the pointer.
114519
+ * - `--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
114520
  * - `--tabs-tab-padding-inline`: The space either side of the label.
112137
114521
  * - `--tabs-tab-radius`: The corners of a tab, which the hover wash takes.
112138
114522
  * - `--tabs-tab-selected-background-color`: The fill of the current tab itself, under the moving mark.
@@ -112144,6 +114528,7 @@ export type CustomElementsSolidJs = {
112144
114528
  *
112145
114529
  * - `dismiss`: The mark a pointer presses to close a `dismissible` tab.
112146
114530
  * - `dismiss-mark`: The glyph on that mark, where none is slotted.
114531
+ * - `label`: The slot the tab's label is in, which shortens with an ellipsis under `--tabs-tab-max-inline-size`.
112147
114532
  * - `tab`: The tab itself.
112148
114533
  *
112149
114534
  * ## CSS States
@@ -112357,7 +114742,7 @@ export type CustomElementsSolidJs = {
112357
114742
  *
112358
114743
  * - `(default)`: The tag's label.
112359
114744
  * - `dismiss-icon`: Replaces the glyph on the remove button.
112360
- * - `start`: The category the label belongs to, shown before it in a heavier weight.
114745
+ * - `start`: The category the label belongs to, shown before it in a heavier weight, or an icon.
112361
114746
  *
112362
114747
  * ## Methods
112363
114748
  *
@@ -112502,6 +114887,7 @@ export type CustomElementsSolidJs = {
112502
114887
  * Events that will be emitted by the component.
112503
114888
  *
112504
114889
  * - `helix-copy`: The copy control or its key put the selection on the clipboard.
114890
+ * - `helix-found`: The find bar searched or moved among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none.
112505
114891
  * - `helix-terminal-bell`: The program rang the bell. The frame flashes once.
112506
114892
  * - `helix-terminal-input`: The reader typed or pasted, with `data` encoded for the program. Write it to the process. Not sent while `readonly`, or once `exit-code` is set.
112507
114893
  * - `helix-terminal-link`: A link in the output was activated, with its `href`. Cancelable: cancel it to open the link yourself. Left alone, a web address opens in a new tab.
@@ -112609,23 +114995,23 @@ export type CustomElementsSolidJs = {
112609
114995
  * - `copy-spinner`: The ring the copy button turns while it is pending.
112610
114996
  * - `copy-text`: The box the copy button's icon sits in.
112611
114997
  * - `exit-actions`: The `exit-actions` slot, beside Restart in the status line.
112612
- * - `find`: The button that opens and closes the find bar. Expanded while it is open.
112613
- * - `find-actions`: The `find-actions` slot, first in the find bar's toolbar.
112614
- * - `find-bar`: The bar under the header where the reader searches the output.
112615
- * - `find-button`: The find button's inner button.
114998
+ * - `find`: The find bar under the header, where the reader searches the output: a Find of its own.
114999
+ * - `find-actions`: The `find-actions` slot, in the find bar's toolbar.
115000
+ * - `find-bar`: The find bar's strip: the field, the count, and the toolbar.
112616
115001
  * - `find-close`: The button that closes the find bar.
112617
115002
  * - `find-close-button`: The find bar's close button's inner button.
112618
115003
  * - `find-close-live`: The find bar's close button's live region, which speaks while the button is pending.
112619
115004
  * - `find-close-spinner`: The ring the find bar's close button turns while it is pending.
112620
115005
  * - `find-close-text`: The box the find bar's close button's icon sits in.
112621
- * - `find-controls`: The toolbar at the end of the find bar: your find actions, then the buttons that move between matches and close the bar.
115006
+ * - `find-controls`: The toolbar at the end of the find bar: the options, your find actions, and the buttons that move between matches and close the bar.
112622
115007
  * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
112623
115008
  * - `find-count`: Which match is current and how many there are, such as "3 of 12 matches".
112624
115009
  * - `find-field`: The search field in the find bar.
112625
- * - `find-live`: The find button's live region, which speaks while the button is pending.
115010
+ * - `find-live`: The find bar's live region, which says the count as it changes.
112626
115011
  * - `find-match-case`: The button that matches case in the find bar. Pressed while it does.
112627
115012
  * - `find-match-case-button`: The match case button's inner button.
112628
115013
  * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
115014
+ * - `find-match-case-pressed`: The match case button while case has to match, beside `find-match-case`.
112629
115015
  * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
112630
115016
  * - `find-match-case-text`: The box the match case button's icon sits in.
112631
115017
  * - `find-next`: The button that moves to the next match.
@@ -112641,13 +115027,34 @@ export type CustomElementsSolidJs = {
112641
115027
  * - `find-regex`: The button that reads the find field as a regular expression. Pressed while it does.
112642
115028
  * - `find-regex-button`: The regular expression button's inner button.
112643
115029
  * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
115030
+ * - `find-regex-pressed`: The regular expression button while the field reads as one, beside `find-regex`.
112644
115031
  * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
112645
115032
  * - `find-regex-text`: The box the regular expression button's icon sits in.
112646
- * - `find-spinner`: The ring the find button turns while it is pending.
112647
- * - `find-text`: The box the find button's icon sits in.
115033
+ * - `find-replace`: The find bar's Replace button, which a terminal does not draw, since its output cannot be changed.
115034
+ * - `find-replace-all`: The find bar's Replace all button, which a terminal does not draw.
115035
+ * - `find-replace-all-button`: The Replace all button's inner button.
115036
+ * - `find-replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
115037
+ * - `find-replace-all-spinner`: The ring the Replace all button turns while it is pending.
115038
+ * - `find-replace-all-text`: The box the Replace all button's words sits in.
115039
+ * - `find-replace-button`: The Replace button's inner button.
115040
+ * - `find-replace-field`: The find bar's replace field, which a terminal does not draw.
115041
+ * - `find-replace-live`: The Replace button's live region, which speaks while the button is pending.
115042
+ * - `find-replace-spinner`: The ring the Replace button turns while it is pending.
115043
+ * - `find-replace-text`: The box the Replace button's words sits in.
115044
+ * - `find-replace-toggle`: The button that shows the find bar's replace row, which a terminal does not draw.
115045
+ * - `find-replace-toggle-button`: The replace toggle's inner button.
115046
+ * - `find-replace-toggle-live`: The replace toggle's live region, which speaks while the button is pending.
115047
+ * - `find-replace-toggle-spinner`: The ring the replace toggle turns while it is pending.
115048
+ * - `find-replace-toggle-text`: The box the replace toggle's icon sits in.
115049
+ * - `find-toggle`: The button in the header that opens and closes the find bar. Expanded while it is open.
115050
+ * - `find-toggle-button`: The find button's inner button.
115051
+ * - `find-toggle-live`: The find button's live region, which speaks while the button is pending.
115052
+ * - `find-toggle-spinner`: The ring the find button turns while it is pending.
115053
+ * - `find-toggle-text`: The box the find button's icon sits in.
112648
115054
  * - `find-whole-word`: The button that matches whole words only in the find bar. Pressed while it does.
112649
115055
  * - `find-whole-word-button`: The whole word button's inner button.
112650
115056
  * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
115057
+ * - `find-whole-word-pressed`: The whole word button while only whole words match, beside `find-whole-word`.
112651
115058
  * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
112652
115059
  * - `find-whole-word-text`: The box the whole word button's icon sits in.
112653
115060
  * - `fullscreen`: The button that makes the terminal fill the screen. Pressed while it does.
@@ -112665,6 +115072,16 @@ export type CustomElementsSolidJs = {
112665
115072
  * - `restart-spinner`: The ring the Restart button turns while it is pending.
112666
115073
  * - `restart-text`: The Restart button's label.
112667
115074
  * - `status`: The line under the terminal that says the process exited, or that Tab moves focus.
115075
+ * - `tooltip-arrow`: The arrow of the tooltip that names each button, forwarded from `Tooltip`.
115076
+ * - `tooltip-arrow-bottom`: The arrow while the bubble is below its button, on the bubble's top edge. Set together with `tooltip-arrow`.
115077
+ * - `tooltip-arrow-left`: The arrow while the bubble is left of its button, on the bubble's right edge. Set together with `tooltip-arrow`.
115078
+ * - `tooltip-arrow-right`: The arrow while the bubble is right of its button, on the bubble's left edge. Set together with `tooltip-arrow`.
115079
+ * - `tooltip-arrow-top`: The arrow while the bubble is above its button, on the bubble's bottom edge. Set together with `tooltip-arrow`.
115080
+ * - `tooltip-surface`: The bubble of the tooltip that names each button, forwarded from `Tooltip`.
115081
+ * - `tooltip-surface-bottom`: The bubble while it is below its button. Set together with `tooltip-surface`.
115082
+ * - `tooltip-surface-left`: The bubble while it is left of its button. Set together with `tooltip-surface`.
115083
+ * - `tooltip-surface-right`: The bubble while it is right of its button. Set together with `tooltip-surface`.
115084
+ * - `tooltip-surface-top`: The bubble while it is above its button. Set together with `tooltip-surface`.
112668
115085
  * - `viewport`: The box the terminal is drawn in.
112669
115086
  *
112670
115087
  * ## CSS States
@@ -113486,7 +115903,7 @@ export type CustomElementsSolidJs = {
113486
115903
  *
113487
115904
  * - `--time-input-background-color`: Fill behind the field.
113488
115905
  * - `--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.
115906
+ * - `--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
115907
  * - `--time-input-segment-focus-background-color`: The fill behind the segment with focus, in `segmented`. It follows `--helix-color-primary-surface`.
113491
115908
  * - `--time-input-segment-focus-color`: The text of the segment with focus, in `segmented`.
113492
115909
  * - `--time-input-segment-literal-color`: The text the locale writes between two segments, in `segmented`.
@@ -114376,7 +116793,7 @@ export type CustomElementsSolidJs = {
114376
116793
  *
114377
116794
  * - `--toast-background-color`: The panel's color. Follows `--helix-color-surface-overlay`.
114378
116795
  * - `--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.
116796
+ * - `--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
116797
  * - `--toast-color`: Color of the message's text.
114381
116798
  * - `--toast-description-color`: Color of the line in the `description` slot, under the heading.
114382
116799
  * - `--toast-dismiss-color`: Color of the dismiss control's mark at rest.
@@ -115566,7 +117983,7 @@ export type CustomElementsSolidJs = {
115566
117983
  * CSS variables available for styling the component.
115567
117984
  *
115568
117985
  * - `--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.
117986
+ * - `--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
117987
  * - `--tour-bubble-size`: The widest the panel can grow.
115571
117988
  * - `--tour-padding`: The padding inside the panel.
115572
117989
  * - `--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 +118266,10 @@ export type CustomElementsSolidJs = {
115849
118266
  * the same fault `href` and `target` had on `Button`. The resting arrangement
115850
118267
  * is the absence of the attribute, and the stylesheet only asks about `end`.
115851
118268
  *
118269
+ * `label` sets the chevron against the end of a branch's name, where the name
118270
+ * takes only its own width, and leaves the `end` slot at the row's far side.
118271
+ * A leaf is unchanged, since it has no chevron.
118272
+ *
115852
118273
  * It is worth owning rather than leaving to `::part(toggle)`, which a
115853
118274
  * consumer could reach for: the naive version is `order` plus an auto margin,
115854
118275
  * and the row's `end` slot already carries an auto margin of its own, so the
@@ -117702,6 +120123,8 @@ export type CustomCssProperties = {
117702
120123
  "--chat-composer-background-color"?: (string) | undefined;
117703
120124
  /** Width of the composer's edge, so your theme can remove it. */
117704
120125
  "--chat-composer-border-width"?: (string) | undefined;
120126
+ /** Color of the focus glow under `glow`. Defaults to the primary color. */
120127
+ "--chat-composer-glow-color"?: (string) | undefined;
117705
120128
  /** Maximum height the field grows to. */
117706
120129
  "--chat-composer-max-block-size"?: (string) | undefined;
117707
120130
  /** 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 +120273,7 @@ export type CustomCssProperties = {
117850
120273
  "--color-input-background-color"?: (string) | undefined;
117851
120274
  /** Color of the panel's edge. */
117852
120275
  "--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. */
120276
+ /** 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
120277
  "--color-input-border-width"?: (string) | undefined;
117855
120278
  /** Width of the panel, and so of the square. */
117856
120279
  "--color-input-panel-size"?: (string) | undefined;
@@ -117894,7 +120317,7 @@ export type CustomCssProperties = {
117894
120317
  "--combobox-background-color"?: (string) | undefined;
117895
120318
  /** Color of the panel's edge. */
117896
120319
  "--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. */
120320
+ /** 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
120321
  "--combobox-border-width"?: (string) | undefined;
117899
120322
  /** Smallest the text field shrinks to once tags share its line. */
117900
120323
  "--combobox-control-size"?: (string) | undefined;
@@ -117904,6 +120327,8 @@ export type CustomCssProperties = {
117904
120327
  "--combobox-shadow"?: (string) | undefined;
117905
120328
  /** How tall the list grows before it scrolls. */
117906
120329
  "--command-list-size"?: (string) | undefined;
120330
+ /** The corners of the palette's panel. Defaults to the dialog's. */
120331
+ "--command-radius"?: (string) | undefined;
117907
120332
  /** How wide the palette is. Defaults to `40rem`. */
117908
120333
  "--command-size"?: (string) | undefined;
117909
120334
  /** The icon's color at rest. A `tone` keeps its own. */
@@ -118024,7 +120449,7 @@ export type CustomCssProperties = {
118024
120449
  "--date-input-background-color"?: (string) | undefined;
118025
120450
  /** The color of the panel's border. */
118026
120451
  "--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. */
120452
+ /** 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
120453
  "--date-input-border-width"?: (string) | undefined;
118029
120454
  /** The fill behind the segment with focus, in `segmented`. It follows `--helix-color-primary-surface`. */
118030
120455
  "--date-input-segment-focus-background-color"?: (string) | undefined;
@@ -118106,11 +120531,13 @@ export type CustomCssProperties = {
118106
120531
  "--device-screen-touch-x"?: (string) | undefined;
118107
120532
  /** Where a ring is, down the screen, as a percentage. Written on each ring. */
118108
120533
  "--device-screen-touch-y"?: (string) | undefined;
120534
+ /** Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy. */
120535
+ "--dialog-backdrop"?: (string) | undefined;
118109
120536
  /** The panel's fill. Follows `--helix-color-surface-overlay`. */
118110
120537
  "--dialog-background-color"?: (string) | undefined;
118111
120538
  /** Color of the panel's edge. */
118112
120539
  "--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. */
120540
+ /** 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
120541
  "--dialog-border-width"?: (string) | undefined;
118115
120542
  /** Color of the words in the panel. Follows `--helix-color-foreground`. */
118116
120543
  "--dialog-color"?: (string) | undefined;
@@ -118172,7 +120599,7 @@ export type CustomCssProperties = {
118172
120599
  "--drawer-background-color"?: (string) | undefined;
118173
120600
  /** Color of the panel's edge. */
118174
120601
  "--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. */
120602
+ /** 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
120603
  "--drawer-border-width"?: (string) | undefined;
118177
120604
  /** Padding inside the panel. */
118178
120605
  "--drawer-padding"?: (string) | undefined;
@@ -118320,6 +120747,12 @@ export type CustomCssProperties = {
118320
120747
  "--filter-input-shadow"?: (string) | undefined;
118321
120748
  /** The height of the empty field. The field grows from this height. */
118322
120749
  "--filter-input-size"?: (string) | undefined;
120750
+ /** The bar's fill. Defaults to the raised surface. */
120751
+ "--find-background-color"?: (string) | undefined;
120752
+ /** The line under the bar and the fields' edges. */
120753
+ "--find-border-color"?: (string) | undefined;
120754
+ /** The fields' fill. Defaults to the page's background. */
120755
+ "--find-field-background-color"?: (string) | undefined;
118323
120756
  /** The narrowest the growing item of a `flank` layout gets before the two stack, as a share of the row. Defaults to `50%`. */
118324
120757
  "--flex-flank-min"?: (string) | undefined;
118325
120758
  /** The width of the fixed item of a `flank` layout. Defaults to its own width. */
@@ -118646,6 +121079,8 @@ export type CustomCssProperties = {
118646
121079
  "--log-scrollbar-thumb-color"?: (string) | undefined;
118647
121080
  /** The track of the scrollbar. Defaults to `--helix-scrollbar-track-color`. */
118648
121081
  "--log-scrollbar-track-color"?: (string) | undefined;
121082
+ /** How tall a step's lines may get in a `plain` log before they scroll. Defaults to 20rem. */
121083
+ "--log-step-max-block-size"?: (string) | undefined;
118649
121084
  /** 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
121085
  "--log-ansi-background"?: (string) | undefined;
118651
121086
  /** The ANSI color black, which codes `30` and `40` draw. */
@@ -118760,7 +121195,7 @@ export type CustomCssProperties = {
118760
121195
  "--megamenu-backdrop"?: (string) | undefined;
118761
121196
  /** The panel's fill. */
118762
121197
  "--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. */
121198
+ /** 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
121199
  "--megamenu-border-width"?: (string) | undefined;
118765
121200
  /** The minimum width of a column before the grid wraps. */
118766
121201
  "--megamenu-column-size"?: (string) | undefined;
@@ -118812,11 +121247,13 @@ export type CustomCssProperties = {
118812
121247
  "--menu-item-hover-color"?: (string) | undefined;
118813
121248
  /** 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
121249
  "--menu-item-start"?: (string) | undefined;
121250
+ /** Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy. */
121251
+ "--menu-backdrop"?: (string) | undefined;
118815
121252
  /** Fill of the surface. */
118816
121253
  "--menu-background-color"?: (string) | undefined;
118817
121254
  /** Color of the panel's edge. */
118818
121255
  "--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. */
121256
+ /** 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
121257
  "--menu-border-width"?: (string) | undefined;
118821
121258
  /** The tallest the menu grows before it scrolls. */
118822
121259
  "--menu-max-block-size"?: (string) | undefined;
@@ -118862,8 +121299,16 @@ export type CustomCssProperties = {
118862
121299
  "--meter-at"?: (string) | undefined;
118863
121300
  /** The value as a fraction of the range, 0 to 1. */
118864
121301
  "--meter-fraction"?: (string) | undefined;
121302
+ /** How much the range holds, `max` less `min`, which a segment divides its own value by to find its width. */
121303
+ "--meter-span"?: (string) | undefined;
118865
121304
  /** How much of the circle the arc covers, as a path length. */
118866
121305
  "--meter-sweep"?: (string) | undefined;
121306
+ /** The slice's color. Overrides the series and the tone. */
121307
+ "--meter-segment-color"?: (string) | undefined;
121308
+ /** The color of the hairline between neighbors. */
121309
+ "--meter-segment-gap-color"?: (string) | undefined;
121310
+ /** How much of the range the segment takes, in the meter's own units. */
121311
+ "--meter-segment-value"?: (string) | undefined;
118867
121312
  /** The button's fill. Defaults to the floating overlay surface. */
118868
121313
  "--motion-toggle-background-color"?: (string) | undefined;
118869
121314
  /** Height of the bar in a row. Each destination fills it. */
@@ -119086,9 +121531,13 @@ export type CustomCssProperties = {
119086
121531
  "--pin-input-separator-color"?: (string) | undefined;
119087
121532
  /** Size of the point drawn with `arrow`. Tooltip's point is the same size. */
119088
121533
  "--popover-arrow-size"?: (string) | undefined;
121534
+ /** Filter applied behind a `frosted` or `glass` panel. Follows the theme's material policy. */
121535
+ "--popover-backdrop"?: (string) | undefined;
121536
+ /** Fill of the surface. */
121537
+ "--popover-background-color"?: (string) | undefined;
119089
121538
  /** Color of the panel's edge. */
119090
121539
  "--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. */
121540
+ /** 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
121541
  "--popover-border-width"?: (string) | undefined;
119093
121542
  /** Width of the panel. */
119094
121543
  "--popover-inline-size"?: (string) | undefined;
@@ -119264,13 +121713,13 @@ export type CustomCssProperties = {
119264
121713
  "--chart-point-y"?: (string) | undefined;
119265
121714
  /** A tick's position along its axis, as a percentage. The component writes it. */
119266
121715
  "--chart-tick"?: (string) | undefined;
119267
- /** The depth of the fades at both edges. */
121716
+ /** The depth of the fade at each edge. */
119268
121717
  "--scroll-area-fade"?: (string) | undefined;
119269
121718
  /** The depth of the bottom fade, or `0` to remove it. */
119270
121719
  "--scroll-area-fade-block-end"?: (string) | undefined;
119271
121720
  /** The depth of the top fade, or `0` to remove it. */
119272
121721
  "--scroll-area-fade-block-start"?: (string) | undefined;
119273
- /** The color the fades blend into, which is the background behind the box. */
121722
+ /** The color to paint the fades in, as a gradient over the content at each edge. Unset, the fades are a mask. */
119274
121723
  "--scroll-area-fade-color"?: (string) | undefined;
119275
121724
  /** The depth of the fade at the inline end, or `0` to remove it. */
119276
121725
  "--scroll-area-fade-inline-end"?: (string) | undefined;
@@ -119288,13 +121737,17 @@ export type CustomCssProperties = {
119288
121737
  "--scroll-area-thumb-min-size"?: (string) | undefined;
119289
121738
  /** The color of the scrollbar's track. Defaults to `--helix-scrollbar-track-color`. */
119290
121739
  "--scroll-area-track-color"?: (string) | undefined;
121740
+ /** 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. */
121741
+ "--scroll-area-gutter-block-end"?: (string) | undefined;
121742
+ /** 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. */
121743
+ "--scroll-area-gutter-inline-end"?: (string) | undefined;
119291
121744
  /** 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
121745
  "--scroll-area-scroll-fraction"?: (string) | undefined;
119293
121746
  /** 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
121747
  "--scroll-area-thumb-fraction"?: (string) | undefined;
119295
121748
  /** Color of the panel's edge. */
119296
121749
  "--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. */
121750
+ /** 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
121751
  "--select-border-width"?: (string) | undefined;
119299
121752
  /** Shadow under the panel. Defaults to `--helix-shadow-floating`, because the panel can sit over any content. */
119300
121753
  "--select-shadow"?: (string) | undefined;
@@ -119328,7 +121781,7 @@ export type CustomCssProperties = {
119328
121781
  "--skip-link-background-color"?: (string) | undefined;
119329
121782
  /** The border color of the link while it is shown. */
119330
121783
  "--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. */
121784
+ /** 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
121785
  "--skip-link-border-width"?: (string) | undefined;
119333
121786
  /** The text color of the link while it is shown. */
119334
121787
  "--skip-link-color"?: (string) | undefined;
@@ -119414,10 +121867,26 @@ export type CustomCssProperties = {
119414
121867
  "--sparkline-readout-font-size"?: (string) | undefined;
119415
121868
  /** Thickness of the line, overriding `weight`. */
119416
121869
  "--sparkline-width"?: (string) | undefined;
121870
+ /** 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. */
121871
+ "--spatial-bar-chart-bar-size"?: (string) | undefined;
119417
121872
  /** How tall the plot is. By default, three quarters of its width and 22em at most. */
119418
121873
  "--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;
121874
+ /** */
121875
+ "--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;
121876
+ /** The color of a bar whose cell says `data-tone="accent"`. */
121877
+ "--spatial-bar-chart-tone-accent"?: (string) | undefined;
121878
+ /** The color of a bar whose cell says `data-tone="danger"`. */
121879
+ "--spatial-bar-chart-tone-danger"?: (string) | undefined;
121880
+ /** The color of a bar whose cell says `data-tone="info"`. */
121881
+ "--spatial-bar-chart-tone-info"?: (string) | undefined;
121882
+ /** The color of a bar whose cell says `data-tone="muted"`. */
121883
+ "--spatial-bar-chart-tone-muted"?: (string) | undefined;
121884
+ /** 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. */
121885
+ "--spatial-bar-chart-tone-primary"?: (string) | undefined;
121886
+ /** The color of a bar whose cell says `data-tone="success"`. */
121887
+ "--spatial-bar-chart-tone-success"?: (string) | undefined;
121888
+ /** The color of a bar whose cell says `data-tone="warning"`. */
121889
+ "--spatial-bar-chart-tone-warning"?: (string) | undefined;
119421
121890
  /** The largest a cell grows, along its edge. The strip is never wider than its box, and draws smaller cells to fit. */
119422
121891
  "--spatial-heatmap-cell-size"?: (string) | undefined;
119423
121892
  /** 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 +122127,8 @@ export type CustomCssProperties = {
119658
122127
  "--tabs-tab-hover-background-color"?: (string) | undefined;
119659
122128
  /** The label color under the pointer. */
119660
122129
  "--tabs-tab-hover-color"?: (string) | undefined;
122130
+ /** 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. */
122131
+ "--tabs-tab-max-inline-size"?: (string) | undefined;
119661
122132
  /** The space either side of the label. */
119662
122133
  "--tabs-tab-padding-inline"?: (string) | undefined;
119663
122134
  /** The corners of a tab, which the hover wash takes. */
@@ -119768,7 +122239,7 @@ export type CustomCssProperties = {
119768
122239
  "--time-input-background-color"?: (string) | undefined;
119769
122240
  /** Color of the panel's edge. */
119770
122241
  "--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. */
122242
+ /** 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
122243
  "--time-input-border-width"?: (string) | undefined;
119773
122244
  /** The fill behind the segment with focus, in `segmented`. It follows `--helix-color-primary-surface`. */
119774
122245
  "--time-input-segment-focus-background-color"?: (string) | undefined;
@@ -119828,7 +122299,7 @@ export type CustomCssProperties = {
119828
122299
  "--toast-background-color"?: (string) | undefined;
119829
122300
  /** Color of the panel's edge. */
119830
122301
  "--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. */
122302
+ /** 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
122303
  "--toast-border-width"?: (string) | undefined;
119833
122304
  /** Color of the message's text. */
119834
122305
  "--toast-color"?: (string) | undefined;
@@ -119930,7 +122401,7 @@ export type CustomCssProperties = {
119930
122401
  "--tour-spotlight-y"?: (string) | undefined;
119931
122402
  /** The size of the arrow's box, before it is rotated. */
119932
122403
  "--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. */
122404
+ /** 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
122405
  "--tour-border-width"?: (string) | undefined;
119935
122406
  /** The widest the panel can grow. */
119936
122407
  "--tour-bubble-size"?: (string) | undefined;