@fusion.dev/helix 0.219.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.
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,
@@ -8895,6 +8897,9 @@ export type HelixCodeEditorElementEvent<E = Event> = TypedEvent<
8895
8897
  /** `helix-before-change` event type */
8896
8898
  export type HelixCodeEditorHelixBeforeChangeElementEvent =
8897
8899
  HelixCodeEditorElementEvent<HelixBeforeChangeEvent>;
8900
+ /** `helix-found` event type */
8901
+ export type HelixCodeEditorHelixFoundElementEvent =
8902
+ HelixCodeEditorElementEvent<HelixFoundEvent>;
8898
8903
 
8899
8904
  export type HelixCodeEditorProps = {
8900
8905
  /** Covers the container instead of taking a height of its own, for an
@@ -9098,6 +9103,8 @@ Here rather than on each control. */
9098
9103
  "onhelix-before-change"?: ((
9099
9104
  e: HelixCodeEditorHelixBeforeChangeElementEvent,
9100
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;
9101
9108
  /** Fired after the text changes. */
9102
9109
  oninput?: ((e: HelixCodeEditorElementEvent) => void) | undefined;
9103
9110
  };
@@ -9303,6 +9310,8 @@ Here rather than on each control. */
9303
9310
  "on:helix-before-change"?: ((
9304
9311
  e: HelixCodeEditorHelixBeforeChangeElementEvent,
9305
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;
9306
9315
  /** Fired after the text changes. */
9307
9316
  "on:input"?: ((e: HelixCodeEditorElementEvent) => void) | undefined;
9308
9317
 
@@ -18647,6 +18656,256 @@ write a function in markup. See the class description. */
18647
18656
  textContent?: (string | number) | undefined;
18648
18657
  };
18649
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
+
18650
18909
  export type HelixFlexProps = {
18651
18910
  /** How the lines of a wrapping row share the space across it, set as
18652
18911
  `align-content`.
@@ -42045,6 +42304,9 @@ export type HelixTerminalElementEvent<E = Event> = TypedEvent<HelixTerminal, E>;
42045
42304
  /** `helix-copy` event type */
42046
42305
  export type HelixTerminalHelixCopyElementEvent =
42047
42306
  HelixTerminalElementEvent<HelixCopyEvent>;
42307
+ /** `helix-found` event type */
42308
+ export type HelixTerminalHelixFoundElementEvent =
42309
+ HelixTerminalElementEvent<HelixFoundEvent>;
42048
42310
  /** `helix-terminal-bell` event type */
42049
42311
  export type HelixTerminalHelixTerminalBellElementEvent =
42050
42312
  HelixTerminalElementEvent<HelixTerminalBellEvent>;
@@ -42218,6 +42480,8 @@ write. Connect it to a setting your reader can turn on. */
42218
42480
 
42219
42481
  /** The copy control or its key put the selection on the clipboard. */
42220
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;
42221
42485
  /** The program rang the bell. The frame flashes once. */
42222
42486
  "onhelix-terminal-bell"?: ((
42223
42487
  e: HelixTerminalHelixTerminalBellElementEvent,
@@ -42397,6 +42661,8 @@ write. Connect it to a setting your reader can turn on. */
42397
42661
  "prop:tabTypesLabel"?: (HelixTerminal["tabTypesLabel"]) | undefined;
42398
42662
  /** The copy control or its key put the selection on the clipboard. */
42399
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;
42400
42666
  /** The program rang the bell. The frame flashes once. */
42401
42667
  "on:helix-terminal-bell"?: ((
42402
42668
  e: HelixTerminalHelixTerminalBellElementEvent,
@@ -54769,6 +55035,7 @@ export type CustomElements<F extends Framework = "other"> = {
54769
55035
  *
54770
55036
  * - `change`: The reader finished an edit and focus left the code, in the engine or the plain field.
54771
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.
54772
55039
  * - `input`: Fired after the text changes.
54773
55040
  *
54774
55041
  * ## Slots
@@ -54872,9 +55139,9 @@ export type CustomElements<F extends Framework = "other"> = {
54872
55139
  * - `diagnostics`: The list of problems under the code, while there are any.
54873
55140
  * - `feedback`: The message that says what is wrong.
54874
55141
  * - `field`: The frame around the header, the code, the problems and the status line.
54875
- * - `find`: The button in the header that opens the find bar.
54876
- * - `find-bar`: The find bar under the header, while it is open.
54877
- * - `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.
54878
55145
  * - `find-close`: The button that closes the find bar.
54879
55146
  * - `find-close-button`: The close button's inner button.
54880
55147
  * - `find-close-live`: The close button's live region, which speaks while the button is pending.
@@ -54884,10 +55151,11 @@ export type CustomElements<F extends Framework = "other"> = {
54884
55151
  * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
54885
55152
  * - `find-count`: Which match is selected, of how many.
54886
55153
  * - `find-field`: The field the search is typed in.
54887
- * - `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.
54888
55155
  * - `find-match-case`: The option that finds only the same case. Pressed while it applies.
54889
55156
  * - `find-match-case-button`: The match case button's inner button.
54890
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`.
54891
55159
  * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
54892
55160
  * - `find-match-case-text`: The box the match case button's icon sits in.
54893
55161
  * - `find-next`: The button that selects the next match.
@@ -54903,18 +55171,34 @@ export type CustomElements<F extends Framework = "other"> = {
54903
55171
  * - `find-regex`: The option that reads the search as a regular expression. Pressed while it applies.
54904
55172
  * - `find-regex-button`: The regular expression button's inner button.
54905
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`.
54906
55175
  * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
54907
55176
  * - `find-regex-text`: The box the regular expression button's icon sits in.
54908
- * - `find-replace`: The button that shows the replace field under the find field. Expanded while it shows.
54909
- * - `find-replace-button`: The find and replace button's inner button.
54910
- * - `find-replace-live`: The find and replace button's live region, which speaks while the button is pending.
54911
- * - `find-replace-spinner`: The ring the find and replace button turns while it is pending.
54912
- * - `find-replace-text`: The box the find and replace button's icon sits in.
54913
- * - `find-spinner`: The ring the Find button turns while it is pending.
54914
- * - `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.
54915
55198
  * - `find-whole-word`: The option that finds only whole words. Pressed while it applies.
54916
55199
  * - `find-whole-word-button`: The whole word button's inner button.
54917
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`.
54918
55202
  * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
54919
55203
  * - `find-whole-word-text`: The box the whole word button's icon sits in.
54920
55204
  * - `header`: The strip above the code: the name, the language, and the controls.
@@ -54923,17 +55207,6 @@ export type CustomElements<F extends Framework = "other"> = {
54923
55207
  * - `language`: The language's name in the header.
54924
55208
  * - `position`: The caret's line and column, in the status line.
54925
55209
  * - `problem-count`: How many problems there are, in the status line.
54926
- * - `replace`: The button that replaces the selected match.
54927
- * - `replace-all`: The button that replaces every match.
54928
- * - `replace-all-button`: The Replace all button's inner button.
54929
- * - `replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
54930
- * - `replace-all-spinner`: The ring the Replace all button turns while it is pending.
54931
- * - `replace-all-text`: The box the Replace all button's words sit in.
54932
- * - `replace-button`: The Replace button's inner button.
54933
- * - `replace-field`: The field the replacement is typed in.
54934
- * - `replace-live`: The Replace button's live region, which speaks while the button is pending.
54935
- * - `replace-spinner`: The ring the Replace button turns while it is pending.
54936
- * - `replace-text`: The box the Replace button's words sit in.
54937
55210
  * - `status`: The strip under the code.
54938
55211
  * - `view`: Where an engine draws, while one is connected.
54939
55212
  *
@@ -54944,7 +55217,6 @@ export type CustomElements<F extends Framework = "other"> = {
54944
55217
  * - `connected`: An engine draws the editor.
54945
55218
  * - `find-open`: The find bar is open.
54946
55219
  * - `invalid`: The editor has an error to show, from `required` or your `feedback`.
54947
- * - `replace-open`: The replace field shows under the find field.
54948
55220
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
54949
55221
  */
54950
55222
  "helix-code-editor": Partial<
@@ -61151,6 +61423,207 @@ export type CustomElements<F extends Framework = "other"> = {
61151
61423
  HelixFilterInputProps & BaseProps<HelixFilterInput, F> & BaseEvents<HelixFilterInput>
61152
61424
  >;
61153
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
+
61154
61627
  /**
61155
61628
  * The host is the flex container and its only child is a slot, so
61156
61629
  * `<helix-flex>` adds no box beyond the `<div>` it replaces.
@@ -65224,7 +65697,7 @@ export type CustomElements<F extends Framework = "other"> = {
65224
65697
  *
65225
65698
  * Custom selectors for styling elements within the component.
65226
65699
  *
65227
- * - `content`: The lines, hidden while the group is shut.
65700
+ * - `content`: The lines, hidden until found while the group is shut.
65228
65701
  * - `duration`: How long the step took.
65229
65702
  * - `heading`: The heading.
65230
65703
  * - `mark`: The caret that turns as the group opens, an `<svg>` you size.
@@ -78995,6 +79468,7 @@ export type CustomElements<F extends Framework = "other"> = {
78995
79468
  * Events that will be emitted by the component.
78996
79469
  *
78997
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.
78998
79472
  * - `helix-terminal-bell`: The program rang the bell. The frame flashes once.
78999
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.
79000
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.
@@ -79102,23 +79576,23 @@ export type CustomElements<F extends Framework = "other"> = {
79102
79576
  * - `copy-spinner`: The ring the copy button turns while it is pending.
79103
79577
  * - `copy-text`: The box the copy button's icon sits in.
79104
79578
  * - `exit-actions`: The `exit-actions` slot, beside Restart in the status line.
79105
- * - `find`: The button that opens and closes the find bar. Expanded while it is open.
79106
- * - `find-actions`: The `find-actions` slot, first in the find bar's toolbar.
79107
- * - `find-bar`: The bar under the header where the reader searches the output.
79108
- * - `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.
79109
79582
  * - `find-close`: The button that closes the find bar.
79110
79583
  * - `find-close-button`: The find bar's close button's inner button.
79111
79584
  * - `find-close-live`: The find bar's close button's live region, which speaks while the button is pending.
79112
79585
  * - `find-close-spinner`: The ring the find bar's close button turns while it is pending.
79113
79586
  * - `find-close-text`: The box the find bar's close button's icon sits in.
79114
- * - `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.
79115
79588
  * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
79116
79589
  * - `find-count`: Which match is current and how many there are, such as "3 of 12 matches".
79117
79590
  * - `find-field`: The search field in the find bar.
79118
- * - `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.
79119
79592
  * - `find-match-case`: The button that matches case in the find bar. Pressed while it does.
79120
79593
  * - `find-match-case-button`: The match case button's inner button.
79121
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`.
79122
79596
  * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
79123
79597
  * - `find-match-case-text`: The box the match case button's icon sits in.
79124
79598
  * - `find-next`: The button that moves to the next match.
@@ -79134,13 +79608,34 @@ export type CustomElements<F extends Framework = "other"> = {
79134
79608
  * - `find-regex`: The button that reads the find field as a regular expression. Pressed while it does.
79135
79609
  * - `find-regex-button`: The regular expression button's inner button.
79136
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`.
79137
79612
  * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
79138
79613
  * - `find-regex-text`: The box the regular expression button's icon sits in.
79139
- * - `find-spinner`: The ring the find button turns while it is pending.
79140
- * - `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.
79141
79635
  * - `find-whole-word`: The button that matches whole words only in the find bar. Pressed while it does.
79142
79636
  * - `find-whole-word-button`: The whole word button's inner button.
79143
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`.
79144
79639
  * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
79145
79640
  * - `find-whole-word-text`: The box the whole word button's icon sits in.
79146
79641
  * - `fullscreen`: The button that makes the terminal fill the screen. Pressed while it does.
@@ -89575,6 +90070,7 @@ export type CustomElementsSolidJs = {
89575
90070
  *
89576
90071
  * - `change`: The reader finished an edit and focus left the code, in the engine or the plain field.
89577
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.
89578
90074
  * - `input`: Fired after the text changes.
89579
90075
  *
89580
90076
  * ## Slots
@@ -89678,9 +90174,9 @@ export type CustomElementsSolidJs = {
89678
90174
  * - `diagnostics`: The list of problems under the code, while there are any.
89679
90175
  * - `feedback`: The message that says what is wrong.
89680
90176
  * - `field`: The frame around the header, the code, the problems and the status line.
89681
- * - `find`: The button in the header that opens the find bar.
89682
- * - `find-bar`: The find bar under the header, while it is open.
89683
- * - `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.
89684
90180
  * - `find-close`: The button that closes the find bar.
89685
90181
  * - `find-close-button`: The close button's inner button.
89686
90182
  * - `find-close-live`: The close button's live region, which speaks while the button is pending.
@@ -89690,10 +90186,11 @@ export type CustomElementsSolidJs = {
89690
90186
  * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
89691
90187
  * - `find-count`: Which match is selected, of how many.
89692
90188
  * - `find-field`: The field the search is typed in.
89693
- * - `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.
89694
90190
  * - `find-match-case`: The option that finds only the same case. Pressed while it applies.
89695
90191
  * - `find-match-case-button`: The match case button's inner button.
89696
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`.
89697
90194
  * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
89698
90195
  * - `find-match-case-text`: The box the match case button's icon sits in.
89699
90196
  * - `find-next`: The button that selects the next match.
@@ -89709,18 +90206,34 @@ export type CustomElementsSolidJs = {
89709
90206
  * - `find-regex`: The option that reads the search as a regular expression. Pressed while it applies.
89710
90207
  * - `find-regex-button`: The regular expression button's inner button.
89711
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`.
89712
90210
  * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
89713
90211
  * - `find-regex-text`: The box the regular expression button's icon sits in.
89714
- * - `find-replace`: The button that shows the replace field under the find field. Expanded while it shows.
89715
- * - `find-replace-button`: The find and replace button's inner button.
89716
- * - `find-replace-live`: The find and replace button's live region, which speaks while the button is pending.
89717
- * - `find-replace-spinner`: The ring the find and replace button turns while it is pending.
89718
- * - `find-replace-text`: The box the find and replace button's icon sits in.
89719
- * - `find-spinner`: The ring the Find button turns while it is pending.
89720
- * - `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.
89721
90233
  * - `find-whole-word`: The option that finds only whole words. Pressed while it applies.
89722
90234
  * - `find-whole-word-button`: The whole word button's inner button.
89723
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`.
89724
90237
  * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
89725
90238
  * - `find-whole-word-text`: The box the whole word button's icon sits in.
89726
90239
  * - `header`: The strip above the code: the name, the language, and the controls.
@@ -89729,17 +90242,6 @@ export type CustomElementsSolidJs = {
89729
90242
  * - `language`: The language's name in the header.
89730
90243
  * - `position`: The caret's line and column, in the status line.
89731
90244
  * - `problem-count`: How many problems there are, in the status line.
89732
- * - `replace`: The button that replaces the selected match.
89733
- * - `replace-all`: The button that replaces every match.
89734
- * - `replace-all-button`: The Replace all button's inner button.
89735
- * - `replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
89736
- * - `replace-all-spinner`: The ring the Replace all button turns while it is pending.
89737
- * - `replace-all-text`: The box the Replace all button's words sit in.
89738
- * - `replace-button`: The Replace button's inner button.
89739
- * - `replace-field`: The field the replacement is typed in.
89740
- * - `replace-live`: The Replace button's live region, which speaks while the button is pending.
89741
- * - `replace-spinner`: The ring the Replace button turns while it is pending.
89742
- * - `replace-text`: The box the Replace button's words sit in.
89743
90245
  * - `status`: The strip under the code.
89744
90246
  * - `view`: Where an engine draws, while one is connected.
89745
90247
  *
@@ -89750,7 +90252,6 @@ export type CustomElementsSolidJs = {
89750
90252
  * - `connected`: An engine draws the editor.
89751
90253
  * - `find-open`: The find bar is open.
89752
90254
  * - `invalid`: The editor has an error to show, from `required` or your `feedback`.
89753
- * - `replace-open`: The replace field shows under the find field.
89754
90255
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
89755
90256
  */
89756
90257
  "helix-code-editor": Partial<
@@ -96037,6 +96538,209 @@ export type CustomElementsSolidJs = {
96037
96538
  BaseEvents<HelixFilterInput>
96038
96539
  >;
96039
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
+
96040
96744
  /**
96041
96745
  * The host is the flex container and its only child is a slot, so
96042
96746
  * `<helix-flex>` adds no box beyond the `<div>` it replaces.
@@ -100165,7 +100869,7 @@ export type CustomElementsSolidJs = {
100165
100869
  *
100166
100870
  * Custom selectors for styling elements within the component.
100167
100871
  *
100168
- * - `content`: The lines, hidden while the group is shut.
100872
+ * - `content`: The lines, hidden until found while the group is shut.
100169
100873
  * - `duration`: How long the step took.
100170
100874
  * - `heading`: The heading.
100171
100875
  * - `mark`: The caret that turns as the group opens, an `<svg>` you size.
@@ -114183,6 +114887,7 @@ export type CustomElementsSolidJs = {
114183
114887
  * Events that will be emitted by the component.
114184
114888
  *
114185
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.
114186
114891
  * - `helix-terminal-bell`: The program rang the bell. The frame flashes once.
114187
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.
114188
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.
@@ -114290,23 +114995,23 @@ export type CustomElementsSolidJs = {
114290
114995
  * - `copy-spinner`: The ring the copy button turns while it is pending.
114291
114996
  * - `copy-text`: The box the copy button's icon sits in.
114292
114997
  * - `exit-actions`: The `exit-actions` slot, beside Restart in the status line.
114293
- * - `find`: The button that opens and closes the find bar. Expanded while it is open.
114294
- * - `find-actions`: The `find-actions` slot, first in the find bar's toolbar.
114295
- * - `find-bar`: The bar under the header where the reader searches the output.
114296
- * - `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.
114297
115001
  * - `find-close`: The button that closes the find bar.
114298
115002
  * - `find-close-button`: The find bar's close button's inner button.
114299
115003
  * - `find-close-live`: The find bar's close button's live region, which speaks while the button is pending.
114300
115004
  * - `find-close-spinner`: The ring the find bar's close button turns while it is pending.
114301
115005
  * - `find-close-text`: The box the find bar's close button's icon sits in.
114302
- * - `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.
114303
115007
  * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
114304
115008
  * - `find-count`: Which match is current and how many there are, such as "3 of 12 matches".
114305
115009
  * - `find-field`: The search field in the find bar.
114306
- * - `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.
114307
115011
  * - `find-match-case`: The button that matches case in the find bar. Pressed while it does.
114308
115012
  * - `find-match-case-button`: The match case button's inner button.
114309
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`.
114310
115015
  * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
114311
115016
  * - `find-match-case-text`: The box the match case button's icon sits in.
114312
115017
  * - `find-next`: The button that moves to the next match.
@@ -114322,13 +115027,34 @@ export type CustomElementsSolidJs = {
114322
115027
  * - `find-regex`: The button that reads the find field as a regular expression. Pressed while it does.
114323
115028
  * - `find-regex-button`: The regular expression button's inner button.
114324
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`.
114325
115031
  * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
114326
115032
  * - `find-regex-text`: The box the regular expression button's icon sits in.
114327
- * - `find-spinner`: The ring the find button turns while it is pending.
114328
- * - `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.
114329
115054
  * - `find-whole-word`: The button that matches whole words only in the find bar. Pressed while it does.
114330
115055
  * - `find-whole-word-button`: The whole word button's inner button.
114331
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`.
114332
115058
  * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
114333
115059
  * - `find-whole-word-text`: The box the whole word button's icon sits in.
114334
115060
  * - `fullscreen`: The button that makes the terminal fill the screen. Pressed while it does.
@@ -120021,6 +120747,12 @@ export type CustomCssProperties = {
120021
120747
  "--filter-input-shadow"?: (string) | undefined;
120022
120748
  /** The height of the empty field. The field grows from this height. */
120023
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;
120024
120756
  /** The narrowest the growing item of a `flank` layout gets before the two stack, as a share of the row. Defaults to `50%`. */
120025
120757
  "--flex-flank-min"?: (string) | undefined;
120026
120758
  /** The width of the fixed item of a `flank` layout. Defaults to its own width. */