@fusion.dev/helix 0.219.0 → 0.221.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/svelte.d.ts CHANGED
@@ -76,6 +76,7 @@ declare module 'svelte/elements' {
76
76
  'helix-drawer': Helix<'helix-drawer'>
77
77
  'helix-drilldown-item': Helix<'helix-drilldown-item'>
78
78
  'helix-drilldown': Helix<'helix-drilldown'>
79
+ 'helix-editor': Helix<'helix-editor'>
79
80
  'helix-empty': Helix<'helix-empty'>
80
81
  'helix-file-input': Helix<'helix-file-input'>
81
82
  'helix-filter-chip': Helix<'helix-filter-chip'>
@@ -83,6 +84,7 @@ declare module 'svelte/elements' {
83
84
  'helix-filter-menu': Helix<'helix-filter-menu'>
84
85
  'helix-filter-operator': Helix<'helix-filter-operator'>
85
86
  'helix-filter-input': Helix<'helix-filter-input'>
87
+ 'helix-find': Helix<'helix-find'>
86
88
  'helix-flex': Helix<'helix-flex'>
87
89
  'helix-format-date': Helix<'helix-format-date'>
88
90
  'helix-graph': Helix<'helix-graph'>
package/types/vue.d.ts CHANGED
@@ -90,6 +90,7 @@ import type {
90
90
  HelixDrilldown,
91
91
  HelixDrilldownItem,
92
92
  HelixEditEvent,
93
+ HelixEditor,
93
94
  HelixEmpty,
94
95
  HelixEndEvent,
95
96
  HelixExpandEvent,
@@ -102,8 +103,10 @@ import type {
102
103
  HelixFilterMenu,
103
104
  HelixFilterOperator,
104
105
  HelixFilteredEvent,
106
+ HelixFind,
105
107
  HelixFlex,
106
108
  HelixFormatDate,
109
+ HelixFoundEvent,
107
110
  HelixGraph,
108
111
  HelixGraphFilterEvent,
109
112
  HelixGraphLayoutEvent,
@@ -4565,6 +4568,9 @@ export type HelixCodeEditorElementEvent<E = Event> = TypedEvent<
4565
4568
  /** `helix-before-change` event type */
4566
4569
  export type HelixCodeEditorHelixBeforeChangeElementEvent =
4567
4570
  HelixCodeEditorElementEvent<HelixBeforeChangeEvent>;
4571
+ /** `helix-found` event type */
4572
+ export type HelixCodeEditorHelixFoundElementEvent =
4573
+ HelixCodeEditorElementEvent<HelixFoundEvent>;
4568
4574
 
4569
4575
  export type HelixCodeEditorVueProps = {
4570
4576
  /** Covers the container instead of taking a height of its own, for an
@@ -4759,7 +4765,7 @@ Here rather than on each control. */
4759
4765
  /** The problems in the text, each underlined and listed under the editor. */
4760
4766
  diagnostics?: (HelixCodeEditor["diagnostics"]) | undefined;
4761
4767
  /** What draws the editor, such as `codeMirrorEngine()` from
4762
- `@fusion.dev/helix-editor`. Absent, the editor is a plain text field. */
4768
+ `@fusion.dev/helix-code-editor`. Absent, the editor is a plain text field. */
4763
4769
  engine?: (HelixCodeEditor["engine"]) | undefined;
4764
4770
  };
4765
4771
 
@@ -4768,6 +4774,8 @@ export type HelixCodeEditorVueEvents = {
4768
4774
  change: HelixCodeEditorElementEvent;
4769
4775
  /** The text is about to change. Cancelable: cancel it to keep the current text. */
4770
4776
  "helix-before-change": HelixCodeEditorHelixBeforeChangeElementEvent;
4777
+ /** The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none. */
4778
+ "helix-found": HelixCodeEditorHelixFoundElementEvent;
4771
4779
  /** Fired after the text changes. */
4772
4780
  input: HelixCodeEditorElementEvent;
4773
4781
  };
@@ -8838,6 +8846,138 @@ export type HelixDrilldownVueEvents = {
8838
8846
  "helix-select": HelixDrilldownHelixSelectElementEvent;
8839
8847
  };
8840
8848
 
8849
+ /** `HelixEditor` component event */
8850
+ export type HelixEditorElementEvent<E = Event> = TypedEvent<HelixEditor, E>;
8851
+ /** `helix-found` event type */
8852
+ export type HelixEditorHelixFoundElementEvent =
8853
+ HelixEditorElementEvent<HelixFoundEvent>;
8854
+
8855
+ export type HelixEditorVueProps = {
8856
+ /** Covers the container instead of growing with the document, for an editor
8857
+ that fills a pane, such as one side of a split view. The document scrolls
8858
+ inside the frame. The container needs a position, such as
8859
+ `position: relative`. */
8860
+ fill?: (HelixEditor["fill"]) | undefined;
8861
+ /** How the frame stands off the page. Unset, it is outlined. `plain` draws
8862
+ no edge or corners, for a document that fills a page or a pane of its own. */
8863
+ separation?: (HelixEditor["separation"]) | undefined;
8864
+ /** The block menu button's name. `{name}` is the block type at the selection. */
8865
+ "block-chosen-label"?: (HelixEditor["blockChosenLabel"]) | undefined;
8866
+ /** The block menu button's name. `{name}` is the block type at the selection. */
8867
+ blockChosenLabel?: (HelixEditor["blockChosenLabel"]) | undefined;
8868
+ /** The block menu's name, read by screen readers. */
8869
+ "block-label"?: (HelixEditor["blockLabel"]) | undefined;
8870
+ /** The block menu's name, read by screen readers. */
8871
+ blockLabel?: (HelixEditor["blockLabel"]) | undefined;
8872
+ /** The Bold button's label. */
8873
+ "bold-label"?: (HelixEditor["boldLabel"]) | undefined;
8874
+ /** The Bold button's label. */
8875
+ boldLabel?: (HelixEditor["boldLabel"]) | undefined;
8876
+ /** The Bulleted list button's label. */
8877
+ "bullet-list-label"?: (HelixEditor["bulletListLabel"]) | undefined;
8878
+ /** The Bulleted list button's label. */
8879
+ bulletListLabel?: (HelixEditor["bulletListLabel"]) | undefined;
8880
+ /** The Code block row's label in the block menu. */
8881
+ "code-block-label"?: (HelixEditor["codeBlockLabel"]) | undefined;
8882
+ /** The Code block row's label in the block menu. */
8883
+ codeBlockLabel?: (HelixEditor["codeBlockLabel"]) | undefined;
8884
+ /** The Code button's label. */
8885
+ "code-label"?: (HelixEditor["codeLabel"]) | undefined;
8886
+ /** The Code button's label. */
8887
+ codeLabel?: (HelixEditor["codeLabel"]) | undefined;
8888
+ /** The toolbar's name, read by screen readers. */
8889
+ "controls-label"?: (HelixEditor["controlsLabel"]) | undefined;
8890
+ /** The toolbar's name, read by screen readers. */
8891
+ controlsLabel?: (HelixEditor["controlsLabel"]) | undefined;
8892
+ /** The document's name where `label` is empty and the host has no `aria-label`. */
8893
+ "fallback-label"?: (HelixEditor["fallbackLabel"]) | undefined;
8894
+ /** The document's name where `label` is empty and the host has no `aria-label`. */
8895
+ fallbackLabel?: (HelixEditor["fallbackLabel"]) | undefined;
8896
+ /** The Find button's label, and the find bar's name. */
8897
+ "find-label"?: (HelixEditor["findLabel"]) | undefined;
8898
+ /** The Find button's label, and the find bar's name. */
8899
+ findLabel?: (HelixEditor["findLabel"]) | undefined;
8900
+ /** A heading's name in the block menu. `{level}` is its level, 1 to 3. */
8901
+ "heading-label"?: (HelixEditor["headingLabel"]) | undefined;
8902
+ /** A heading's name in the block menu. `{level}` is its level, 1 to 3. */
8903
+ headingLabel?: (HelixEditor["headingLabel"]) | undefined;
8904
+ /** The Italic button's label. */
8905
+ "italic-label"?: (HelixEditor["italicLabel"]) | undefined;
8906
+ /** The Italic button's label. */
8907
+ italicLabel?: (HelixEditor["italicLabel"]) | undefined;
8908
+ /** The document's name, read by screen readers. Name what it holds, such as
8909
+ "Release notes", so that several editors on one page can be told apart.
8910
+ Required. */
8911
+ label?: (HelixEditor["label"]) | undefined;
8912
+ /** The Apply button's label in the address bar. */
8913
+ "link-apply-label"?: (HelixEditor["linkApplyLabel"]) | undefined;
8914
+ /** The Apply button's label in the address bar. */
8915
+ linkApplyLabel?: (HelixEditor["linkApplyLabel"]) | undefined;
8916
+ /** The close button's label in the address bar. */
8917
+ "link-close-label"?: (HelixEditor["linkCloseLabel"]) | undefined;
8918
+ /** The close button's label in the address bar. */
8919
+ linkCloseLabel?: (HelixEditor["linkCloseLabel"]) | undefined;
8920
+ /** The name of the address bar's toolbar, read by screen readers. */
8921
+ "link-controls-label"?: (HelixEditor["linkControlsLabel"]) | undefined;
8922
+ /** The name of the address bar's toolbar, read by screen readers. */
8923
+ linkControlsLabel?: (HelixEditor["linkControlsLabel"]) | undefined;
8924
+ /** The address field's name, which it also shows while it is empty. */
8925
+ "link-field-label"?: (HelixEditor["linkFieldLabel"]) | undefined;
8926
+ /** The address field's name, which it also shows while it is empty. */
8927
+ linkFieldLabel?: (HelixEditor["linkFieldLabel"]) | undefined;
8928
+ /** The Link button's label, and the address bar's name. */
8929
+ "link-label"?: (HelixEditor["linkLabel"]) | undefined;
8930
+ /** The Link button's label, and the address bar's name. */
8931
+ linkLabel?: (HelixEditor["linkLabel"]) | undefined;
8932
+ /** The Remove button's label in the address bar. */
8933
+ "link-remove-label"?: (HelixEditor["linkRemoveLabel"]) | undefined;
8934
+ /** The Remove button's label in the address bar. */
8935
+ linkRemoveLabel?: (HelixEditor["linkRemoveLabel"]) | undefined;
8936
+ /** The Numbered list button's label. */
8937
+ "ordered-list-label"?: (HelixEditor["orderedListLabel"]) | undefined;
8938
+ /** The Numbered list button's label. */
8939
+ orderedListLabel?: (HelixEditor["orderedListLabel"]) | undefined;
8940
+ /** The Paragraph row's label in the block menu. */
8941
+ "paragraph-label"?: (HelixEditor["paragraphLabel"]) | undefined;
8942
+ /** The Paragraph row's label in the block menu. */
8943
+ paragraphLabel?: (HelixEditor["paragraphLabel"]) | undefined;
8944
+ /** The words shown in an empty document, such as "Write the release notes". */
8945
+ placeholder?: (HelixEditor["placeholder"]) | undefined;
8946
+ /** The Quote button's label. */
8947
+ "quote-label"?: (HelixEditor["quoteLabel"]) | undefined;
8948
+ /** The Quote button's label. */
8949
+ quoteLabel?: (HelixEditor["quoteLabel"]) | undefined;
8950
+ /** Shows the document and takes no edits, with no toolbar, for a document
8951
+ someone reads, or one an agent is writing. The attribute is `readonly`,
8952
+ the platform's spelling. */
8953
+ readonly?: (HelixEditor["readOnly"]) | undefined;
8954
+ /** Shows the document and takes no edits, with no toolbar, for a document
8955
+ someone reads, or one an agent is writing. The attribute is `readonly`,
8956
+ the platform's spelling. */
8957
+ readOnly?: (HelixEditor["readOnly"]) | undefined;
8958
+ /** The Redo button's label. */
8959
+ "redo-label"?: (HelixEditor["redoLabel"]) | undefined;
8960
+ /** The Redo button's label. */
8961
+ redoLabel?: (HelixEditor["redoLabel"]) | undefined;
8962
+ /** The Strikethrough button's label. */
8963
+ "strike-label"?: (HelixEditor["strikeLabel"]) | undefined;
8964
+ /** The Strikethrough button's label. */
8965
+ strikeLabel?: (HelixEditor["strikeLabel"]) | undefined;
8966
+ /** Which groups of tools the toolbar draws, as a list of `history`, `block`,
8967
+ `marks`, `link`, `lists`, and `quote`, or `none`. They are drawn in that
8968
+ order, whatever order the list is in. Absent is all six. */
8969
+ tools?: (HelixEditor["tools"]) | undefined;
8970
+ /** The Undo button's label. */
8971
+ "undo-label"?: (HelixEditor["undoLabel"]) | undefined;
8972
+ /** The Undo button's label. */
8973
+ undoLabel?: (HelixEditor["undoLabel"]) | undefined;
8974
+ };
8975
+
8976
+ export type HelixEditorVueEvents = {
8977
+ /** The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none. */
8978
+ "helix-found": HelixEditorHelixFoundElementEvent;
8979
+ };
8980
+
8841
8981
  export type HelixEmptyVueProps = {
8842
8982
  /** The heading as words, such as "No results", drawn as a heading when
8843
8983
  nothing is slotted into `heading`.
@@ -9541,6 +9681,138 @@ export type HelixFilterInputVueEvents = {
9541
9681
  input: HelixFilterInputElementEvent;
9542
9682
  };
9543
9683
 
9684
+ /** `HelixFind` component event */
9685
+ export type HelixFindElementEvent<E = Event> = TypedEvent<HelixFind, E>;
9686
+ /** `toggle` event type */
9687
+ export type HelixFindToggleElementEvent = HelixFindElementEvent<ToggleEvent>;
9688
+ /** `helix-before-close` event type */
9689
+ export type HelixFindHelixBeforeCloseElementEvent =
9690
+ HelixFindElementEvent<HelixBeforeCloseEvent>;
9691
+ /** `helix-before-open` event type */
9692
+ export type HelixFindHelixBeforeOpenElementEvent =
9693
+ HelixFindElementEvent<HelixBeforeOpenEvent>;
9694
+ /** `helix-found` event type */
9695
+ export type HelixFindHelixFoundElementEvent =
9696
+ HelixFindElementEvent<HelixFoundEvent>;
9697
+
9698
+ export type HelixFindVueProps = {
9699
+ /** Whether the element starts open. Ignored once `open` is written. */
9700
+ "default-open"?: (HelixFind["defaultOpen"]) | undefined;
9701
+ /** Whether the element starts open. Ignored once `open` is written. */
9702
+ defaultOpen?: (HelixFind["defaultOpen"]) | undefined;
9703
+ /** Whether the element is open.
9704
+
9705
+ One property, not two, so `dialog.open` answers the question anyone
9706
+ asking it meant. Writing always applies; `<helix-dialog open>` is the
9707
+ same statement in markup.
9708
+
9709
+ **Not reflected, and that is required rather than tidy.** Reflection
9710
+ writes the resolved state back as an attribute, so an element that opened
9711
+ itself would put `open` on its own host: cloned, serialized for
9712
+ hydration, or diffed by a framework, it comes back holding whatever the
9713
+ last reader did rather than what the author wrote. `:state(open)` carries
9714
+ the resolved state for stylesheets, which is what the mirror is for. */
9715
+ open?: (HelixFind["open"]) | undefined;
9716
+ /** The close button's label. */
9717
+ "close-label"?: (HelixFind["closeLabel"]) | undefined;
9718
+ /** The close button's label. */
9719
+ closeLabel?: (HelixFind["closeLabel"]) | undefined;
9720
+ /** The name of the bar's toolbar, read by screen readers. */
9721
+ "controls-label"?: (HelixFind["controlsLabel"]) | undefined;
9722
+ /** The name of the bar's toolbar, read by screen readers. */
9723
+ controlsLabel?: (HelixFind["controlsLabel"]) | undefined;
9724
+ /** The id of the element whose text Find searches, in the same tree as Find.
9725
+ With a finder attached, it names only where the find key opens the bar. */
9726
+ for?: (HelixFind["for"]) | undefined;
9727
+ /** What the count says when the regular expression cannot be read. */
9728
+ "invalid-label"?: (HelixFind["invalidLabel"]) | undefined;
9729
+ /** What the count says when the regular expression cannot be read. */
9730
+ invalidLabel?: (HelixFind["invalidLabel"]) | undefined;
9731
+ /** The field's name and placeholder, and the name of the bar. */
9732
+ label?: (HelixFind["label"]) | undefined;
9733
+ /** Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar. */
9734
+ "match-case"?: (HelixFind["matchCase"]) | undefined;
9735
+ /** Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar. */
9736
+ matchCase?: (HelixFind["matchCase"]) | undefined;
9737
+ /** The match case button's label. */
9738
+ "match-case-label"?: (HelixFind["matchCaseLabel"]) | undefined;
9739
+ /** The match case button's label. */
9740
+ matchCaseLabel?: (HelixFind["matchCaseLabel"]) | undefined;
9741
+ /** What the count says of the matches. `{index}` is the current match,
9742
+ counting from 1, and `{count}` how many there are. */
9743
+ "matches-label"?: (HelixFind["matchesLabel"]) | undefined;
9744
+ /** What the count says of the matches. `{index}` is the current match,
9745
+ counting from 1, and `{count}` how many there are. */
9746
+ matchesLabel?: (HelixFind["matchesLabel"]) | undefined;
9747
+ /** The next match button's label. */
9748
+ "next-label"?: (HelixFind["nextLabel"]) | undefined;
9749
+ /** The next match button's label. */
9750
+ nextLabel?: (HelixFind["nextLabel"]) | undefined;
9751
+ /** Which options the bar draws, as a list of `match-case`, `whole-word`, and
9752
+ `regex`, or `none`. They are always drawn in that order. */
9753
+ options?: (HelixFind["options"]) | undefined;
9754
+ /** The previous match button's label. */
9755
+ "previous-label"?: (HelixFind["previousLabel"]) | undefined;
9756
+ /** The previous match button's label. */
9757
+ previousLabel?: (HelixFind["previousLabel"]) | undefined;
9758
+ /** What the field holds: what the reader typed, or what you set. */
9759
+ query?: (HelixFind["query"]) | undefined;
9760
+ /** Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling. */
9761
+ readonly?: (HelixFind["readOnly"]) | undefined;
9762
+ /** Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling. */
9763
+ readOnly?: (HelixFind["readOnly"]) | undefined;
9764
+ /** Whether the field reads as a regular expression, in JavaScript's syntax. The reader turns it on and off from the bar. */
9765
+ regex?: (HelixFind["regex"]) | undefined;
9766
+ /** The regular expression button's label. */
9767
+ "regex-label"?: (HelixFind["regexLabel"]) | undefined;
9768
+ /** The regular expression button's label. */
9769
+ regexLabel?: (HelixFind["regexLabel"]) | undefined;
9770
+ /** The Replace all button's words. */
9771
+ "replace-all-label"?: (HelixFind["replaceAllLabel"]) | undefined;
9772
+ /** The Replace all button's words. */
9773
+ replaceAllLabel?: (HelixFind["replaceAllLabel"]) | undefined;
9774
+ /** The replace field's name and placeholder. */
9775
+ "replace-field-label"?: (HelixFind["replaceFieldLabel"]) | undefined;
9776
+ /** The replace field's name and placeholder. */
9777
+ replaceFieldLabel?: (HelixFind["replaceFieldLabel"]) | undefined;
9778
+ /** The Replace button's words. */
9779
+ "replace-label"?: (HelixFind["replaceLabel"]) | undefined;
9780
+ /** The Replace button's words. */
9781
+ replaceLabel?: (HelixFind["replaceLabel"]) | undefined;
9782
+ /** What the replace field holds, which Replace puts in place of a match. */
9783
+ replacement?: (HelixFind["replacement"]) | undefined;
9784
+ /** The label of the button that shows the replace row. */
9785
+ "replace-toggle-label"?: (HelixFind["replaceToggleLabel"]) | undefined;
9786
+ /** The label of the button that shows the replace row. */
9787
+ replaceToggleLabel?: (HelixFind["replaceToggleLabel"]) | undefined;
9788
+ /** The key that opens the bar, as a chord such as `mod+f`, where `mod` is
9789
+ Command on an Apple keyboard and Control elsewhere. Empty turns the key
9790
+ off, as for a bar the page opens itself. */
9791
+ shortcut?: (HelixFind["shortcut"]) | undefined;
9792
+ /** Elements inside the content whose text is not searched, as a selector,
9793
+ such as line numbers or the buttons beside each message. */
9794
+ skip?: (HelixFind["skip"]) | undefined;
9795
+ /** Whether only whole words match. The reader turns it on and off from the bar. */
9796
+ "whole-word"?: (HelixFind["wholeWord"]) | undefined;
9797
+ /** Whether only whole words match. The reader turns it on and off from the bar. */
9798
+ wholeWord?: (HelixFind["wholeWord"]) | undefined;
9799
+ /** The whole word button's label. */
9800
+ "whole-word-label"?: (HelixFind["wholeWordLabel"]) | undefined;
9801
+ /** The whole word button's label. */
9802
+ wholeWordLabel?: (HelixFind["wholeWordLabel"]) | undefined;
9803
+ };
9804
+
9805
+ export type HelixFindVueEvents = {
9806
+ /** Sent when the bar opens or closes, with `newState` and `oldState`. */
9807
+ toggle: HelixFindToggleElementEvent;
9808
+ /** Fired before the bar closes, and cancelable. */
9809
+ "helix-before-close": HelixFindHelixBeforeCloseElementEvent;
9810
+ /** Fired before the bar opens, and cancelable. Canceling it keeps the bar closed. */
9811
+ "helix-before-open": HelixFindHelixBeforeOpenElementEvent;
9812
+ /** 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. */
9813
+ "helix-found": HelixFindHelixFoundElementEvent;
9814
+ };
9815
+
9544
9816
  export type HelixFlexVueProps = {
9545
9817
  /** How the lines of a wrapping row share the space across it, set as
9546
9818
  `align-content`.
@@ -21506,6 +21778,9 @@ export type HelixTerminalElementEvent<E = Event> = TypedEvent<HelixTerminal, E>;
21506
21778
  /** `helix-copy` event type */
21507
21779
  export type HelixTerminalHelixCopyElementEvent =
21508
21780
  HelixTerminalElementEvent<HelixCopyEvent>;
21781
+ /** `helix-found` event type */
21782
+ export type HelixTerminalHelixFoundElementEvent =
21783
+ HelixTerminalElementEvent<HelixFoundEvent>;
21509
21784
  /** `helix-terminal-bell` event type */
21510
21785
  export type HelixTerminalHelixTerminalBellElementEvent =
21511
21786
  HelixTerminalElementEvent<HelixTerminalBellEvent>;
@@ -21681,6 +21956,8 @@ write. Connect it to a setting your reader can turn on. */
21681
21956
  export type HelixTerminalVueEvents = {
21682
21957
  /** The copy control or its key put the selection on the clipboard. */
21683
21958
  "helix-copy": HelixTerminalHelixCopyElementEvent;
21959
+ /** The find bar searched or moved among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none. */
21960
+ "helix-found": HelixTerminalHelixFoundElementEvent;
21684
21961
  /** The program rang the bell. The frame flashes once. */
21685
21962
  "helix-terminal-bell": HelixTerminalHelixTerminalBellElementEvent;
21686
21963
  /** 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. */
@@ -25974,6 +26251,22 @@ export type CustomCssProperties = {
25974
26251
  "--drilldown-title-font-weight"?: (string) | undefined;
25975
26252
  /** How far a page slides as it arrives, along the line of text. */
25976
26253
  "--drilldown-travel"?: (string) | undefined;
26254
+ /** The ground the document is drawn on. Defaults to the page's background. */
26255
+ "--editor-background-color"?: (string) | undefined;
26256
+ /** The frame's edge and the line under the toolbar. */
26257
+ "--editor-border-color"?: (string) | undefined;
26258
+ /** The fill of the toolbar's strip. */
26259
+ "--editor-header-background-color"?: (string) | undefined;
26260
+ /** How far below the top of the page the toolbar stays while the document scrolls, such as the height of your own fixed header. `0` unless set. */
26261
+ "--editor-header-offset"?: (string) | undefined;
26262
+ /** The longest a line of the document runs, as a length: `72ch` unless set. */
26263
+ "--editor-measure"?: (string) | undefined;
26264
+ /** The frame's least height, which it grows from with the document: `12rem` unless set. Ignored with `fill`. */
26265
+ "--editor-min-block-size"?: (string) | undefined;
26266
+ /** The space around the document, inside the frame. */
26267
+ "--editor-padding"?: (string) | undefined;
26268
+ /** The frame's corner radius. */
26269
+ "--editor-radius"?: (string) | undefined;
25977
26270
  /** Space added above the actions. */
25978
26271
  "--empty-actions-gap"?: (string) | undefined;
25979
26272
  /** Space between the icon, the heading, the message and the actions. */
@@ -26064,6 +26357,12 @@ export type CustomCssProperties = {
26064
26357
  "--filter-input-shadow"?: (string) | undefined;
26065
26358
  /** The height of the empty field. The field grows from this height. */
26066
26359
  "--filter-input-size"?: (string) | undefined;
26360
+ /** The bar's fill. Defaults to the raised surface. */
26361
+ "--find-background-color"?: (string) | undefined;
26362
+ /** The line under the bar and the fields' edges. */
26363
+ "--find-border-color"?: (string) | undefined;
26364
+ /** The fields' fill. Defaults to the page's background. */
26365
+ "--find-field-background-color"?: (string) | undefined;
26067
26366
  /** The narrowest the growing item of a `flank` layout gets before the two stack, as a share of the row. Defaults to `50%`. */
26068
26367
  "--flex-flank-min"?: (string) | undefined;
26069
26368
  /** The width of the fixed item of a `flank` layout. Defaults to its own width. */
@@ -28086,7 +28385,7 @@ export interface WcToolkitVueGlobalComponents {
28086
28385
  HelixCodeBlockVueProps,
28087
28386
  HelixCodeBlockVueEvents
28088
28387
  >;
28089
- /** Drawn as Terminal and Code Block are: the code on the page's ground, with a header, a find bar and a status line each a strip on the raised surface, one frame around them. It is 24rem tall unless 'fill' is set or '--code-editor-block-size' says otherwise. An engine draws inside it: '@fusion.dev/helix-editor' themes CodeMirror's gutter, caret, selection and syntax from your tokens, and draws a problem's line number in its tone. Set 'fill' for an editor that fills a pane, such as one side of a split view. */
28388
+ /** Drawn as Terminal and Code Block are: the code on the page's ground, with a header, a find bar and a status line each a strip on the raised surface, one frame around them. It is 24rem tall unless 'fill' is set or '--code-editor-block-size' says otherwise. An engine draws inside it: '@fusion.dev/helix-code-editor' themes CodeMirror's gutter, caret, selection and syntax from your tokens, and draws a problem's line number in its tone. Set 'fill' for an editor that fills a pane, such as one side of a split view. */
28090
28389
  "helix-code-editor": DefineCustomElement<
28091
28390
  HelixCodeEditor,
28092
28391
  HelixCodeEditorVueProps,
@@ -28206,6 +28505,12 @@ export interface WcToolkitVueGlobalComponents {
28206
28505
  HelixDrilldownVueProps,
28207
28506
  HelixDrilldownVueEvents
28208
28507
  >;
28508
+ /** Drawn as Code Editor is: the document on the page's ground, and the toolbar a strip on the raised surface, one frame around them. The strip stays at the top of the page while a long document scrolls under it, and the frame grows with the document from '--editor-min-block-size'. Set 'fill' for an editor that fills a pane, where the document scrolls inside the frame. The document's headings, lists, quotes, code, and tables are drawn by the base layer's 'data-prose' rules, so it reads as your docs and chat replies do. Write 'data-prose' on the document so the base layer draws it before a renderer connects, and 'connectEditor' writes it too. Its lines keep to a readable length, '--editor-measure', centered in a wide frame. */
28509
+ "helix-editor": DefineCustomElement<
28510
+ HelixEditor,
28511
+ HelixEditorVueProps,
28512
+ HelixEditorVueEvents
28513
+ >;
28209
28514
  /** Centered with space around it. An empty view is the only thing on screen, and pressed against the top edge it looks broken. */
28210
28515
  "helix-empty": DefineCustomElement<
28211
28516
  HelixEmpty,
@@ -28248,6 +28553,12 @@ export interface WcToolkitVueGlobalComponents {
28248
28553
  HelixFilterInputVueProps,
28249
28554
  HelixFilterInputVueEvents
28250
28555
  >;
28556
+ /** Drawn as the find bars of Terminal and Code Editor are: a dense strip on the raised surface, with a line under it where it meets the content. Place it above the content it searches, such as at the top of a pane, or make it sticky with 'position: sticky' on the element. Every match is painted with '::highlight(helix-find-match)' and the current one with '::highlight(helix-find-current)', both in the base layer. Text is painted from the tree it lives in, so content in a shadow root of your own needs the two rules in that root's styles. */
28557
+ "helix-find": DefineCustomElement<
28558
+ HelixFind,
28559
+ HelixFindVueProps,
28560
+ HelixFindVueEvents
28561
+ >;
28251
28562
  /** The host is the flex container and its only child is a slot, so '<helix-flex>' adds no box beyond the '<div>' it replaces. There is no separate Stack component. For a stack, set 'direction="column"'. 'gap' takes a space token name, so spacing stays on the scale. 'row-gap' and 'column-gap' set one axis each and win over 'gap' on theirs. 'layout' sets up a common pattern, and any attribute you also write wins over the pattern's own value: - 'cluster': items in a wrapping row, centered on one line, such as tags. - 'split': the first item at the start, the last at the end, and any between them spaced evenly, such as a title and its actions. Put several actions in a flex of their own so they stay together at the end. Wraps when there is no room. - 'flank' and 'flank-end': a fixed item beside one that takes the rest, such as an icon and its text, or a field and its button. The item that takes the rest stays at least '--flex-flank-min' wide, and the pair stacks once it cannot. - 'switch': the items share a row while the flex is at least '--flex-switch-at' wide, and each takes a line of its own below that, such as cards that stack on a narrow screen. It answers the width the flex is given, wherever it sits, with no breakpoint to maintain. Flex is presentation only, so it has no headless tier. */
28252
28563
  "helix-flex": DefineCustomElement<
28253
28564
  HelixFlex,
package/types/words.d.ts CHANGED
@@ -1897,6 +1897,146 @@ declare module '@fusion.dev/helix-core' {
1897
1897
  */
1898
1898
  loadingText: Message
1899
1899
  }
1900
+ 'helix-editor': {
1901
+ /**
1902
+ * The block menu button's name. `{name}` is the block type at the selection.
1903
+ *
1904
+ * English: `Text style: {name}`
1905
+ */
1906
+ blockChosenLabel: Message
1907
+ /**
1908
+ * The block menu's name, read by screen readers.
1909
+ *
1910
+ * English: `Text style`
1911
+ */
1912
+ blockLabel: Message
1913
+ /**
1914
+ * The Bold button's label.
1915
+ *
1916
+ * English: `Bold`
1917
+ */
1918
+ boldLabel: Message
1919
+ /**
1920
+ * The Bulleted list button's label.
1921
+ *
1922
+ * English: `Bulleted list`
1923
+ */
1924
+ bulletListLabel: Message
1925
+ /**
1926
+ * The Code block row's label in the block menu.
1927
+ *
1928
+ * English: `Code block`
1929
+ */
1930
+ codeBlockLabel: Message
1931
+ /**
1932
+ * The Code button's label.
1933
+ *
1934
+ * English: `Code`
1935
+ */
1936
+ codeLabel: Message
1937
+ /**
1938
+ * The toolbar's name, read by screen readers.
1939
+ *
1940
+ * English: `Formatting`
1941
+ */
1942
+ controlsLabel: Message
1943
+ /**
1944
+ * The document's name where `label` is empty and the host has no `aria-label`.
1945
+ *
1946
+ * English: `Editor`
1947
+ */
1948
+ fallbackLabel: Message
1949
+ /**
1950
+ * The Find button's label, and the find bar's name.
1951
+ *
1952
+ * English: `Find`
1953
+ */
1954
+ findLabel: Message
1955
+ /**
1956
+ * A heading's name in the block menu. `{level}` is its level, 1 to 3.
1957
+ *
1958
+ * English: `Heading {level}`
1959
+ */
1960
+ headingLabel: Message
1961
+ /**
1962
+ * The Italic button's label.
1963
+ *
1964
+ * English: `Italic`
1965
+ */
1966
+ italicLabel: Message
1967
+ /**
1968
+ * The Apply button's label in the address bar.
1969
+ *
1970
+ * English: `Apply link`
1971
+ */
1972
+ linkApplyLabel: Message
1973
+ /**
1974
+ * The close button's label in the address bar.
1975
+ *
1976
+ * English: `Close`
1977
+ */
1978
+ linkCloseLabel: Message
1979
+ /**
1980
+ * The name of the address bar's toolbar, read by screen readers.
1981
+ *
1982
+ * English: `Link controls`
1983
+ */
1984
+ linkControlsLabel: Message
1985
+ /**
1986
+ * The address field's name, which it also shows while it is empty.
1987
+ *
1988
+ * English: `Address`
1989
+ */
1990
+ linkFieldLabel: Message
1991
+ /**
1992
+ * The Link button's label, and the address bar's name.
1993
+ *
1994
+ * English: `Link`
1995
+ */
1996
+ linkLabel: Message
1997
+ /**
1998
+ * The Remove button's label in the address bar.
1999
+ *
2000
+ * English: `Remove link`
2001
+ */
2002
+ linkRemoveLabel: Message
2003
+ /**
2004
+ * The Numbered list button's label.
2005
+ *
2006
+ * English: `Numbered list`
2007
+ */
2008
+ orderedListLabel: Message
2009
+ /**
2010
+ * The Paragraph row's label in the block menu.
2011
+ *
2012
+ * English: `Paragraph`
2013
+ */
2014
+ paragraphLabel: Message
2015
+ /**
2016
+ * The Quote button's label.
2017
+ *
2018
+ * English: `Quote`
2019
+ */
2020
+ quoteLabel: Message
2021
+ /**
2022
+ * The Redo button's label.
2023
+ *
2024
+ * English: `Redo`
2025
+ */
2026
+ redoLabel: Message
2027
+ /**
2028
+ * The Strikethrough button's label.
2029
+ *
2030
+ * English: `Strikethrough`
2031
+ */
2032
+ strikeLabel: Message
2033
+ /**
2034
+ * The Undo button's label.
2035
+ *
2036
+ * English: `Undo`
2037
+ */
2038
+ undoLabel: Message
2039
+ }
1900
2040
  'helix-file-input': {
1901
2041
  /**
1902
2042
  * What a reader hears when a drop or a paste adds files, with `{names}` and
@@ -2030,6 +2170,93 @@ declare module '@fusion.dev/helix-core' {
2030
2170
  */
2031
2171
  label: Message
2032
2172
  }
2173
+ 'helix-find': {
2174
+ /**
2175
+ * The close button's label.
2176
+ *
2177
+ * English: `Close find`
2178
+ */
2179
+ closeLabel: Message
2180
+ /**
2181
+ * The name of the bar's toolbar, read by screen readers.
2182
+ *
2183
+ * English: `Find controls`
2184
+ */
2185
+ controlsLabel: Message
2186
+ /**
2187
+ * What the count says when the regular expression cannot be read.
2188
+ *
2189
+ * English: `Not a valid regular expression`
2190
+ */
2191
+ invalidLabel: Message
2192
+ /**
2193
+ * The field's name and placeholder, and the name of the bar.
2194
+ *
2195
+ * English: `Find`
2196
+ */
2197
+ label: Message
2198
+ /**
2199
+ * The match case button's label.
2200
+ *
2201
+ * English: `Match case`
2202
+ */
2203
+ matchCaseLabel: Message
2204
+ /**
2205
+ * What the count says of the matches. `{index}` is the current match,
2206
+ * counting from 1, and `{count}` how many there are.
2207
+ *
2208
+ * English: `{count, plural, =0 {No matches} one {{index} of # match} other {{index} of # matches}}`
2209
+ */
2210
+ matchesLabel: Message
2211
+ /**
2212
+ * The next match button's label.
2213
+ *
2214
+ * English: `Next match`
2215
+ */
2216
+ nextLabel: Message
2217
+ /**
2218
+ * The previous match button's label.
2219
+ *
2220
+ * English: `Previous match`
2221
+ */
2222
+ previousLabel: Message
2223
+ /**
2224
+ * The regular expression button's label.
2225
+ *
2226
+ * English: `Use regular expression`
2227
+ */
2228
+ regexLabel: Message
2229
+ /**
2230
+ * The Replace all button's words.
2231
+ *
2232
+ * English: `Replace all`
2233
+ */
2234
+ replaceAllLabel: Message
2235
+ /**
2236
+ * The replace field's name and placeholder.
2237
+ *
2238
+ * English: `Replace with`
2239
+ */
2240
+ replaceFieldLabel: Message
2241
+ /**
2242
+ * The Replace button's words.
2243
+ *
2244
+ * English: `Replace`
2245
+ */
2246
+ replaceLabel: Message
2247
+ /**
2248
+ * The label of the button that shows the replace row.
2249
+ *
2250
+ * English: `Find and replace`
2251
+ */
2252
+ replaceToggleLabel: Message
2253
+ /**
2254
+ * The whole word button's label.
2255
+ *
2256
+ * English: `Match whole word`
2257
+ */
2258
+ wholeWordLabel: Message
2259
+ }
2033
2260
  'helix-graph': {
2034
2261
  /**
2035
2262
  * The hint shown when a surface waiting to be pressed is scrolled or