@fusion.dev/helix-headless 0.208.1 → 0.210.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
@@ -177,6 +177,7 @@ import type {
177
177
  HelixHeadlessTabs,
178
178
  HelixHeadlessTag,
179
179
  HelixHeadlessTagGroup,
180
+ HelixHeadlessTerminal,
180
181
  HelixHeadlessTextarea,
181
182
  HelixHeadlessTimeInput,
182
183
  HelixHeadlessTimePicker,
@@ -240,6 +241,12 @@ import type {
240
241
  HelixShortcutEvent,
241
242
  HelixSortEvent,
242
243
  HelixSortedEvent,
244
+ HelixTerminalBellEvent,
245
+ HelixTerminalInputEvent,
246
+ HelixTerminalLinkEvent,
247
+ HelixTerminalResizeEvent,
248
+ HelixTerminalRestartEvent,
249
+ HelixTerminalTitleEvent,
243
250
  HelixToggleEvent,
244
251
  HelixTourAskEvent,
245
252
  HelixTourStatusEvent,
@@ -33904,6 +33911,319 @@ select. */
33904
33911
  textContent?: (string | number) | undefined;
33905
33912
  };
33906
33913
 
33914
+ /** `HelixHeadlessTerminal` component event */
33915
+ export type HelixHeadlessTerminalElementEvent<E = Event> = TypedEvent<
33916
+ HelixHeadlessTerminal,
33917
+ E
33918
+ >;
33919
+ /** `helix-copy` event type */
33920
+ export type HelixHeadlessTerminalHelixCopyElementEvent =
33921
+ HelixHeadlessTerminalElementEvent<HelixCopyEvent>;
33922
+ /** `helix-terminal-bell` event type */
33923
+ export type HelixHeadlessTerminalHelixTerminalBellElementEvent =
33924
+ HelixHeadlessTerminalElementEvent<HelixTerminalBellEvent>;
33925
+ /** `helix-terminal-input` event type */
33926
+ export type HelixHeadlessTerminalHelixTerminalInputElementEvent =
33927
+ HelixHeadlessTerminalElementEvent<HelixTerminalInputEvent>;
33928
+ /** `helix-terminal-link` event type */
33929
+ export type HelixHeadlessTerminalHelixTerminalLinkElementEvent =
33930
+ HelixHeadlessTerminalElementEvent<HelixTerminalLinkEvent>;
33931
+ /** `helix-terminal-resize` event type */
33932
+ export type HelixHeadlessTerminalHelixTerminalResizeElementEvent =
33933
+ HelixHeadlessTerminalElementEvent<HelixTerminalResizeEvent>;
33934
+ /** `helix-terminal-restart` event type */
33935
+ export type HelixHeadlessTerminalHelixTerminalRestartElementEvent =
33936
+ HelixHeadlessTerminalElementEvent<HelixTerminalRestartEvent>;
33937
+ /** `helix-terminal-title` event type */
33938
+ export type HelixHeadlessTerminalHelixTerminalTitleElementEvent =
33939
+ HelixHeadlessTerminalElementEvent<HelixTerminalTitleEvent>;
33940
+
33941
+ export type HelixHeadlessTerminalProps = {
33942
+ /** The clear button's label. */
33943
+ "clear-label"?: (HelixHeadlessTerminal["clearLabel"]) | undefined;
33944
+ /** The clear button's label. */
33945
+ clearLabel?: (HelixHeadlessTerminal["clearLabel"]) | undefined;
33946
+ /** The grid's width in character cells. Set it with `rows` to fix the grid's size; unset, the grid fills the frame. */
33947
+ columns?: (HelixHeadlessTerminal["columns"]) | undefined;
33948
+ /** Which built-in controls the header shows, as a list of `find`, `copy`,
33949
+ `clear`, and `fullscreen`, or `none`. Absent is `find clear`. */
33950
+ controls?: (HelixHeadlessTerminal["controls"]) | undefined;
33951
+ /** The name of the row of controls, read by screen readers. */
33952
+ "controls-label"?: (HelixHeadlessTerminal["controlsLabel"]) | undefined;
33953
+ /** The name of the row of controls, read by screen readers. */
33954
+ controlsLabel?: (HelixHeadlessTerminal["controlsLabel"]) | undefined;
33955
+ /** What screen readers hear after a copy. */
33956
+ "copied-label"?: (HelixHeadlessTerminal["copiedLabel"]) | undefined;
33957
+ /** What screen readers hear after a copy. */
33958
+ copiedLabel?: (HelixHeadlessTerminal["copiedLabel"]) | undefined;
33959
+ /** The copy button's label. */
33960
+ "copy-label"?: (HelixHeadlessTerminal["copyLabel"]) | undefined;
33961
+ /** The copy button's label. */
33962
+ copyLabel?: (HelixHeadlessTerminal["copyLabel"]) | undefined;
33963
+ /** How the process exited, which the page sets when it does. While it is set,
33964
+ the status line says it, the frame sends no input, and Restart is shown.
33965
+ Clear it when a new process starts. */
33966
+ "exit-code"?: (HelixHeadlessTerminal["exitCode"] | `${number}`) | undefined;
33967
+ /** How the process exited, which the page sets when it does. While it is set,
33968
+ the status line says it, the frame sends no input, and Restart is shown.
33969
+ Clear it when a new process starts. */
33970
+ exitCode?: (HelixHeadlessTerminal["exitCode"]) | undefined;
33971
+ /** What the status line says once the process has exited. `{code}` is its
33972
+ exit code, written as the process gave it, and code `0` is a clean exit. */
33973
+ "exited-label"?: (HelixHeadlessTerminal["exitedLabel"]) | undefined;
33974
+ /** What the status line says once the process has exited. `{code}` is its
33975
+ exit code, written as the process gave it, and code `0` is a clean exit. */
33976
+ exitedLabel?: (HelixHeadlessTerminal["exitedLabel"]) | undefined;
33977
+ /** The terminal's name where `label` is empty and the host has no `aria-label`. */
33978
+ "fallback-label"?: (HelixHeadlessTerminal["fallbackLabel"]) | undefined;
33979
+ /** The terminal's name where `label` is empty and the host has no `aria-label`. */
33980
+ fallbackLabel?: (HelixHeadlessTerminal["fallbackLabel"]) | undefined;
33981
+ /** The label of the button that closes the find bar. */
33982
+ "find-close-label"?: (HelixHeadlessTerminal["findCloseLabel"]) | undefined;
33983
+ /** The label of the button that closes the find bar. */
33984
+ findCloseLabel?: (HelixHeadlessTerminal["findCloseLabel"]) | undefined;
33985
+ /** The name of the find bar's row of buttons, read by screen readers. */
33986
+ "find-controls-label"?: (HelixHeadlessTerminal["findControlsLabel"]) | undefined;
33987
+ /** The name of the find bar's row of buttons, read by screen readers. */
33988
+ findControlsLabel?: (HelixHeadlessTerminal["findControlsLabel"]) | undefined;
33989
+ /** The find button's label, and the find field's name and placeholder. */
33990
+ "find-label"?: (HelixHeadlessTerminal["findLabel"]) | undefined;
33991
+ /** The find button's label, and the find field's name and placeholder. */
33992
+ findLabel?: (HelixHeadlessTerminal["findLabel"]) | undefined;
33993
+ /** The next match button's label. */
33994
+ "find-next-label"?: (HelixHeadlessTerminal["findNextLabel"]) | undefined;
33995
+ /** The next match button's label. */
33996
+ findNextLabel?: (HelixHeadlessTerminal["findNextLabel"]) | undefined;
33997
+ /** The previous match button's label. */
33998
+ "find-previous-label"?: (HelixHeadlessTerminal["findPreviousLabel"]) | undefined;
33999
+ /** The previous match button's label. */
34000
+ findPreviousLabel?: (HelixHeadlessTerminal["findPreviousLabel"]) | undefined;
34001
+ /** The fullscreen button's label. */
34002
+ "fullscreen-label"?: (HelixHeadlessTerminal["fullscreenLabel"]) | undefined;
34003
+ /** The fullscreen button's label. */
34004
+ fullscreenLabel?: (HelixHeadlessTerminal["fullscreenLabel"]) | undefined;
34005
+ /** The name of the element the reader types into, which the renderer draws. */
34006
+ "input-label"?: (HelixHeadlessTerminal["inputLabel"]) | undefined;
34007
+ /** The name of the element the reader types into, which the renderer draws. */
34008
+ inputLabel?: (HelixHeadlessTerminal["inputLabel"]) | undefined;
34009
+ /** The terminal's name, in the header and for screen readers, such as the
34010
+ shell or the folder it runs in. Several terminals on a page need names
34011
+ that tell them apart. */
34012
+ label?: (HelixHeadlessTerminal["label"]) | undefined;
34013
+ /** What the find bar says of its matches. `{index}` is the current match,
34014
+ counting from 1, and `{count}` how many there are. */
34015
+ "matches-label"?: (HelixHeadlessTerminal["matchesLabel"]) | undefined;
34016
+ /** What the find bar says of its matches. `{index}` is the current match,
34017
+ counting from 1, and `{count}` how many there are. */
34018
+ matchesLabel?: (HelixHeadlessTerminal["matchesLabel"]) | undefined;
34019
+ /** Draws the output and sends no input, with no cursor, for a transcript or
34020
+ a command an agent ran. The attribute is `readonly`, the platform's
34021
+ spelling. */
34022
+ readonly?: (HelixHeadlessTerminal["readOnly"]) | undefined;
34023
+ /** Draws the output and sends no input, with no cursor, for a transcript or
34024
+ a command an agent ran. The attribute is `readonly`, the platform's
34025
+ spelling. */
34026
+ readOnly?: (HelixHeadlessTerminal["readOnly"]) | undefined;
34027
+ /** The Restart button's label. */
34028
+ "restart-label"?: (HelixHeadlessTerminal["restartLabel"]) | undefined;
34029
+ /** The Restart button's label. */
34030
+ restartLabel?: (HelixHeadlessTerminal["restartLabel"]) | undefined;
34031
+ /** The grid's height in lines. Set it with `columns` to fix the grid's size; unset, the grid fills the frame. */
34032
+ rows?: (HelixHeadlessTerminal["rows"]) | undefined;
34033
+ /** Keeps the grid as lines a screen reader moves through, and says new
34034
+ output as it arrives. Off by default, since it costs time on every
34035
+ write. Connect it to a setting your reader can turn on. */
34036
+ "screen-reader-mode"?: (HelixHeadlessTerminal["screenReaderMode"]) | undefined;
34037
+ /** Keeps the grid as lines a screen reader moves through, and says new
34038
+ output as it arrives. Off by default, since it costs time on every
34039
+ write. Connect it to a setting your reader can turn on. */
34040
+ screenReaderMode?: (HelixHeadlessTerminal["screenReaderMode"]) | undefined;
34041
+ /** What the terminal's input describes to a screen reader. `{key}` is the key that switches Tab. */
34042
+ "tab-hint-label"?: (HelixHeadlessTerminal["tabHintLabel"]) | undefined;
34043
+ /** What the terminal's input describes to a screen reader. `{key}` is the key that switches Tab. */
34044
+ tabHintLabel?: (HelixHeadlessTerminal["tabHintLabel"]) | undefined;
34045
+ /** What the status line says while Tab moves focus. `{key}` is the key that switches it back. */
34046
+ "tab-moves-focus-label"?: (HelixHeadlessTerminal["tabMovesFocusLabel"]) | undefined;
34047
+ /** What the status line says while Tab moves focus. `{key}` is the key that switches it back. */
34048
+ tabMovesFocusLabel?: (HelixHeadlessTerminal["tabMovesFocusLabel"]) | undefined;
34049
+ /** What screen readers hear when Tab goes back to typing in the terminal. */
34050
+ "tab-types-label"?: (HelixHeadlessTerminal["tabTypesLabel"]) | undefined;
34051
+ /** What screen readers hear when Tab goes back to typing in the terminal. */
34052
+ tabTypesLabel?: (HelixHeadlessTerminal["tabTypesLabel"]) | undefined;
34053
+
34054
+ /** The copy control or its key put the selection on the clipboard. */
34055
+ "onhelix-copy"?: ((e: HelixHeadlessTerminalHelixCopyElementEvent) => void) | undefined;
34056
+ /** The program rang the bell. The frame flashes once. */
34057
+ "onhelix-terminal-bell"?: ((
34058
+ e: HelixHeadlessTerminalHelixTerminalBellElementEvent,
34059
+ ) => void) | undefined;
34060
+ /** 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. */
34061
+ "onhelix-terminal-input"?: ((
34062
+ e: HelixHeadlessTerminalHelixTerminalInputElementEvent,
34063
+ ) => void) | undefined;
34064
+ /** 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. */
34065
+ "onhelix-terminal-link"?: ((
34066
+ e: HelixHeadlessTerminalHelixTerminalLinkElementEvent,
34067
+ ) => void) | undefined;
34068
+ /** The grid changed size, with `columns`, `rows`, `width`, and `height`. Resize the process's pseudo-terminal to match. */
34069
+ "onhelix-terminal-resize"?: ((
34070
+ e: HelixHeadlessTerminalHelixTerminalResizeElementEvent,
34071
+ ) => void) | undefined;
34072
+ /** The Restart button was pressed after the process exited. Start a new process and clear `exit-code`. */
34073
+ "onhelix-terminal-restart"?: ((
34074
+ e: HelixHeadlessTerminalHelixTerminalRestartElementEvent,
34075
+ ) => void) | undefined;
34076
+ /** The program set its title, with `title`. The frame keeps its own `label`. */
34077
+ "onhelix-terminal-title"?: ((
34078
+ e: HelixHeadlessTerminalHelixTerminalTitleElementEvent,
34079
+ ) => void) | undefined;
34080
+ };
34081
+
34082
+ export type HelixHeadlessTerminalSolidJsProps = {
34083
+ /** The clear button's label. */
34084
+ "attr:clear-label"?: (HelixHeadlessTerminal["clearLabel"]) | undefined;
34085
+ /** The clear button's label. */
34086
+ "prop:clearLabel"?: (HelixHeadlessTerminal["clearLabel"]) | undefined;
34087
+ /** The grid's width in character cells. Set it with `rows` to fix the grid's size; unset, the grid fills the frame. */
34088
+ "prop:columns"?: (HelixHeadlessTerminal["columns"]) | undefined;
34089
+ /** Which built-in controls the header shows, as a list of `find`, `copy`,
34090
+ `clear`, and `fullscreen`, or `none`. Absent is `find clear`. */
34091
+ "prop:controls"?: (HelixHeadlessTerminal["controls"]) | undefined;
34092
+ /** The name of the row of controls, read by screen readers. */
34093
+ "attr:controls-label"?: (HelixHeadlessTerminal["controlsLabel"]) | undefined;
34094
+ /** The name of the row of controls, read by screen readers. */
34095
+ "prop:controlsLabel"?: (HelixHeadlessTerminal["controlsLabel"]) | undefined;
34096
+ /** What screen readers hear after a copy. */
34097
+ "attr:copied-label"?: (HelixHeadlessTerminal["copiedLabel"]) | undefined;
34098
+ /** What screen readers hear after a copy. */
34099
+ "prop:copiedLabel"?: (HelixHeadlessTerminal["copiedLabel"]) | undefined;
34100
+ /** The copy button's label. */
34101
+ "attr:copy-label"?: (HelixHeadlessTerminal["copyLabel"]) | undefined;
34102
+ /** The copy button's label. */
34103
+ "prop:copyLabel"?: (HelixHeadlessTerminal["copyLabel"]) | undefined;
34104
+ /** How the process exited, which the page sets when it does. While it is set,
34105
+ the status line says it, the frame sends no input, and Restart is shown.
34106
+ Clear it when a new process starts. */
34107
+ "attr:exit-code"?: (HelixHeadlessTerminal["exitCode"] | `${number}`) | undefined;
34108
+ /** How the process exited, which the page sets when it does. While it is set,
34109
+ the status line says it, the frame sends no input, and Restart is shown.
34110
+ Clear it when a new process starts. */
34111
+ "prop:exitCode"?: (HelixHeadlessTerminal["exitCode"]) | undefined;
34112
+ /** What the status line says once the process has exited. `{code}` is its
34113
+ exit code, written as the process gave it, and code `0` is a clean exit. */
34114
+ "attr:exited-label"?: (HelixHeadlessTerminal["exitedLabel"]) | undefined;
34115
+ /** What the status line says once the process has exited. `{code}` is its
34116
+ exit code, written as the process gave it, and code `0` is a clean exit. */
34117
+ "prop:exitedLabel"?: (HelixHeadlessTerminal["exitedLabel"]) | undefined;
34118
+ /** The terminal's name where `label` is empty and the host has no `aria-label`. */
34119
+ "attr:fallback-label"?: (HelixHeadlessTerminal["fallbackLabel"]) | undefined;
34120
+ /** The terminal's name where `label` is empty and the host has no `aria-label`. */
34121
+ "prop:fallbackLabel"?: (HelixHeadlessTerminal["fallbackLabel"]) | undefined;
34122
+ /** The label of the button that closes the find bar. */
34123
+ "attr:find-close-label"?: (HelixHeadlessTerminal["findCloseLabel"]) | undefined;
34124
+ /** The label of the button that closes the find bar. */
34125
+ "prop:findCloseLabel"?: (HelixHeadlessTerminal["findCloseLabel"]) | undefined;
34126
+ /** The name of the find bar's row of buttons, read by screen readers. */
34127
+ "attr:find-controls-label"?: (HelixHeadlessTerminal["findControlsLabel"]) | undefined;
34128
+ /** The name of the find bar's row of buttons, read by screen readers. */
34129
+ "prop:findControlsLabel"?: (HelixHeadlessTerminal["findControlsLabel"]) | undefined;
34130
+ /** The find button's label, and the find field's name and placeholder. */
34131
+ "attr:find-label"?: (HelixHeadlessTerminal["findLabel"]) | undefined;
34132
+ /** The find button's label, and the find field's name and placeholder. */
34133
+ "prop:findLabel"?: (HelixHeadlessTerminal["findLabel"]) | undefined;
34134
+ /** The next match button's label. */
34135
+ "attr:find-next-label"?: (HelixHeadlessTerminal["findNextLabel"]) | undefined;
34136
+ /** The next match button's label. */
34137
+ "prop:findNextLabel"?: (HelixHeadlessTerminal["findNextLabel"]) | undefined;
34138
+ /** The previous match button's label. */
34139
+ "attr:find-previous-label"?: (HelixHeadlessTerminal["findPreviousLabel"]) | undefined;
34140
+ /** The previous match button's label. */
34141
+ "prop:findPreviousLabel"?: (HelixHeadlessTerminal["findPreviousLabel"]) | undefined;
34142
+ /** The fullscreen button's label. */
34143
+ "attr:fullscreen-label"?: (HelixHeadlessTerminal["fullscreenLabel"]) | undefined;
34144
+ /** The fullscreen button's label. */
34145
+ "prop:fullscreenLabel"?: (HelixHeadlessTerminal["fullscreenLabel"]) | undefined;
34146
+ /** The name of the element the reader types into, which the renderer draws. */
34147
+ "attr:input-label"?: (HelixHeadlessTerminal["inputLabel"]) | undefined;
34148
+ /** The name of the element the reader types into, which the renderer draws. */
34149
+ "prop:inputLabel"?: (HelixHeadlessTerminal["inputLabel"]) | undefined;
34150
+ /** The terminal's name, in the header and for screen readers, such as the
34151
+ shell or the folder it runs in. Several terminals on a page need names
34152
+ that tell them apart. */
34153
+ "prop:label"?: (HelixHeadlessTerminal["label"]) | undefined;
34154
+ /** What the find bar says of its matches. `{index}` is the current match,
34155
+ counting from 1, and `{count}` how many there are. */
34156
+ "attr:matches-label"?: (HelixHeadlessTerminal["matchesLabel"]) | undefined;
34157
+ /** What the find bar says of its matches. `{index}` is the current match,
34158
+ counting from 1, and `{count}` how many there are. */
34159
+ "prop:matchesLabel"?: (HelixHeadlessTerminal["matchesLabel"]) | undefined;
34160
+ /** Draws the output and sends no input, with no cursor, for a transcript or
34161
+ a command an agent ran. The attribute is `readonly`, the platform's
34162
+ spelling. */
34163
+ "bool:readonly"?: (HelixHeadlessTerminal["readOnly"]) | undefined;
34164
+ /** Draws the output and sends no input, with no cursor, for a transcript or
34165
+ a command an agent ran. The attribute is `readonly`, the platform's
34166
+ spelling. */
34167
+ "prop:readOnly"?: (HelixHeadlessTerminal["readOnly"]) | undefined;
34168
+ /** The Restart button's label. */
34169
+ "attr:restart-label"?: (HelixHeadlessTerminal["restartLabel"]) | undefined;
34170
+ /** The Restart button's label. */
34171
+ "prop:restartLabel"?: (HelixHeadlessTerminal["restartLabel"]) | undefined;
34172
+ /** The grid's height in lines. Set it with `columns` to fix the grid's size; unset, the grid fills the frame. */
34173
+ "prop:rows"?: (HelixHeadlessTerminal["rows"]) | undefined;
34174
+ /** Keeps the grid as lines a screen reader moves through, and says new
34175
+ output as it arrives. Off by default, since it costs time on every
34176
+ write. Connect it to a setting your reader can turn on. */
34177
+ "bool:screen-reader-mode"?: (HelixHeadlessTerminal["screenReaderMode"]) | undefined;
34178
+ /** Keeps the grid as lines a screen reader moves through, and says new
34179
+ output as it arrives. Off by default, since it costs time on every
34180
+ write. Connect it to a setting your reader can turn on. */
34181
+ "prop:screenReaderMode"?: (HelixHeadlessTerminal["screenReaderMode"]) | undefined;
34182
+ /** What the terminal's input describes to a screen reader. `{key}` is the key that switches Tab. */
34183
+ "attr:tab-hint-label"?: (HelixHeadlessTerminal["tabHintLabel"]) | undefined;
34184
+ /** What the terminal's input describes to a screen reader. `{key}` is the key that switches Tab. */
34185
+ "prop:tabHintLabel"?: (HelixHeadlessTerminal["tabHintLabel"]) | undefined;
34186
+ /** What the status line says while Tab moves focus. `{key}` is the key that switches it back. */
34187
+ "attr:tab-moves-focus-label"?: (HelixHeadlessTerminal["tabMovesFocusLabel"]) | undefined;
34188
+ /** What the status line says while Tab moves focus. `{key}` is the key that switches it back. */
34189
+ "prop:tabMovesFocusLabel"?: (HelixHeadlessTerminal["tabMovesFocusLabel"]) | undefined;
34190
+ /** What screen readers hear when Tab goes back to typing in the terminal. */
34191
+ "attr:tab-types-label"?: (HelixHeadlessTerminal["tabTypesLabel"]) | undefined;
34192
+ /** What screen readers hear when Tab goes back to typing in the terminal. */
34193
+ "prop:tabTypesLabel"?: (HelixHeadlessTerminal["tabTypesLabel"]) | undefined;
34194
+ /** The copy control or its key put the selection on the clipboard. */
34195
+ "on:helix-copy"?: ((e: HelixHeadlessTerminalHelixCopyElementEvent) => void) | undefined;
34196
+ /** The program rang the bell. The frame flashes once. */
34197
+ "on:helix-terminal-bell"?: ((
34198
+ e: HelixHeadlessTerminalHelixTerminalBellElementEvent,
34199
+ ) => void) | undefined;
34200
+ /** 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. */
34201
+ "on:helix-terminal-input"?: ((
34202
+ e: HelixHeadlessTerminalHelixTerminalInputElementEvent,
34203
+ ) => void) | undefined;
34204
+ /** 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. */
34205
+ "on:helix-terminal-link"?: ((
34206
+ e: HelixHeadlessTerminalHelixTerminalLinkElementEvent,
34207
+ ) => void) | undefined;
34208
+ /** The grid changed size, with `columns`, `rows`, `width`, and `height`. Resize the process's pseudo-terminal to match. */
34209
+ "on:helix-terminal-resize"?: ((
34210
+ e: HelixHeadlessTerminalHelixTerminalResizeElementEvent,
34211
+ ) => void) | undefined;
34212
+ /** The Restart button was pressed after the process exited. Start a new process and clear `exit-code`. */
34213
+ "on:helix-terminal-restart"?: ((
34214
+ e: HelixHeadlessTerminalHelixTerminalRestartElementEvent,
34215
+ ) => void) | undefined;
34216
+ /** The program set its title, with `title`. The frame keeps its own `label`. */
34217
+ "on:helix-terminal-title"?: ((
34218
+ e: HelixHeadlessTerminalHelixTerminalTitleElementEvent,
34219
+ ) => void) | undefined;
34220
+
34221
+ /** Set the innerHTML of the element */
34222
+ innerHTML?: (string) | undefined;
34223
+ /** Set the textContent of the element */
34224
+ textContent?: (string | number) | undefined;
34225
+ };
34226
+
33907
34227
  /** `HelixHeadlessTextarea` component event */
33908
34228
  export type HelixHeadlessTextareaElementEvent<E = Event> = TypedEvent<
33909
34229
  HelixHeadlessTextarea,
@@ -42763,6 +43083,9 @@ export type CustomElements<F extends Framework = "other"> = {
42763
43083
  * board, where the arrow keys pan it.
42764
43084
  * - Plus and minus zoom the board, on the board and on a card or a
42765
43085
  * connection.
43086
+ * - The pan and zoom buttons are a toolbar and one tab stop. The arrow keys
43087
+ * move between them by where they sit, Right from the up arrow to zoom in,
43088
+ * and Enter or Space presses one.
42766
43089
  * - The arrow keys move through the cards in reading order. The card you land
42767
43090
  * on scrolls into view, and its connections are announced with it.
42768
43091
  * - The card you land on is selected. Control or Command with an arrow key,
@@ -43203,7 +43526,7 @@ export type CustomElements<F extends Framework = "other"> = {
43203
43526
  *
43204
43527
  * - `arrow`: The arrowhead at an end of a connection that has one.
43205
43528
  * - `board`: The plane the cards are placed on, which pans and zooms.
43206
- * - `controls`: The group the pan and zoom buttons sit in.
43529
+ * - `controls`: The toolbar the pan and zoom buttons sit in, one tab stop.
43207
43530
  * - `draft`: The connection being drawn, before `helix-connect` is sent.
43208
43531
  * - `edge`: One connector between two cards.
43209
43532
  * - `edge-end`: An end of a selected connection. Drag it, or click it to pick it up.
@@ -51302,7 +51625,9 @@ export type CustomElements<F extends Framework = "other"> = {
51302
51625
  * or hides its notes. `hiddenGroups` holds the groups turned off, and the
51303
51626
  * list holds only what the drawing shows. The legend is a toolbar and one tab
51304
51627
  * stop: the arrow keys, Home, End and a group's first letters move between
51305
- * its buttons, and Space or Enter presses one.
51628
+ * its buttons, and Space or Enter presses one. The pan and zoom buttons are
51629
+ * a toolbar and one tab stop too, the arrow keys moving between them by where
51630
+ * they sit on screen.
51306
51631
  *
51307
51632
  * `nodes` and `links` are properties, never markup: a graph of ten thousand
51308
51633
  * notes as ten thousand elements would cost what the renderer exists to save.
@@ -51576,7 +51901,7 @@ export type CustomElements<F extends Framework = "other"> = {
51576
51901
  * - `after`: The room the notes after those drawn would take, so the list scrolls its whole length.
51577
51902
  * - `before`: The room the notes before those drawn would take.
51578
51903
  * - `body`: The drawing beside the list, or above it where the frame is narrow.
51579
- * - `controls`: The group the pan and zoom buttons sit in.
51904
+ * - `controls`: The toolbar the pan and zoom buttons sit in, one tab stop.
51580
51905
  * - `count`: How many notes the list holds, which a search narrows, at the end of the search bar.
51581
51906
  * - `empty`: The box in place of the list when it holds no notes, holding the `empty` slot.
51582
51907
  * - `filter-icon`: The icon beside the search field.
@@ -55955,7 +56280,9 @@ export type CustomElements<F extends Framework = "other"> = {
55955
56280
  * map. Dragging is otherwise the only way a pointer moves the map, so add them
55956
56281
  * where the map has to be usable without dragging, as WCAG 2.2 asks at level
55957
56282
  * AA. The arrow keys pan the map and Shift with Left or Right turns it either
55958
- * way.
56283
+ * way. The buttons are a toolbar and one tab stop: on them, the arrow keys
56284
+ * move between the buttons by where they sit, and Shift with an arrow still
56285
+ * turns or tilts the map.
55959
56286
  *
55960
56287
  * The pan and zoom buttons and the arrow keys send `helix-map-pan` and
55961
56288
  * `helix-map-zoom`. Move your map in response, or connect it with
@@ -56226,7 +56553,7 @@ export type CustomElements<F extends Framework = "other"> = {
56226
56553
  *
56227
56554
  * - `attribution`: The strip under the map that holds the credit.
56228
56555
  * - `compass`: The compass and the pan and rotate buttons around it.
56229
- * - `controls`: The column of buttons that move the map.
56556
+ * - `controls`: The column of buttons that move the map, a toolbar and one tab stop.
56230
56557
  * - `face-north`: The compass: its needle points north as the map turns, and pressing it turns the map to face north.
56231
56558
  * - `footer`: The strip below the map.
56232
56559
  * - `fullscreen`: The button that makes the map fill the screen.
@@ -67579,6 +67906,266 @@ export type CustomElements<F extends Framework = "other"> = {
67579
67906
  HelixHeadlessTagProps & BaseProps<HelixHeadlessTag, F> & BaseEvents<HelixHeadlessTag>
67580
67907
  >;
67581
67908
 
67909
+ /**
67910
+ * Wraps a terminal drawn by xterm.js or another emulator. The frame adds a
67911
+ * header with the terminal's name and its controls, a find bar, and a status
67912
+ * line. `connectTerminal` in `@fusion.dev/helix-terminal` connects it to the
67913
+ * emulator and draws the terminal in the colors the `--terminal-*` properties
67914
+ * set, which the styled tier sets from your theme. Helix does not start a
67915
+ * process: you connect the stream. Write the program's output with `write()`, send what the
67916
+ * reader types to the process from `helix-terminal-input`, and resize the
67917
+ * process's pseudo-terminal from `helix-terminal-resize`.
67918
+ *
67919
+ * Output written before a renderer is connected is held and written first, so
67920
+ * the process can start before the emulator loads. `write()` resolves once
67921
+ * the renderer has parsed the output, which is how a page pauses a process
67922
+ * that writes faster than the terminal draws.
67923
+ *
67924
+ * The controls are a row in the header, and `controls` names which ones:
67925
+ * `find`, `copy`, `clear`, and `fullscreen`. `find clear` by default. A control
67926
+ * the renderer cannot answer is left out once it is connected. Set `exit-code`
67927
+ * when the process exits: the frame says how it exited, stops sending input,
67928
+ * and shows a Restart button that sends `helix-terminal-restart`.
67929
+ *
67930
+ * **Keyboard.** Every key goes to the program, Tab, Shift+Tab, and Escape
67931
+ * included, except these:
67932
+ *
67933
+ * - Control+Shift+F, or Command+F on a Mac, opens the find bar. Enter and
67934
+ * Shift+Enter move between the matches, and Escape closes the bar and
67935
+ * returns focus to the terminal.
67936
+ * - Control+Shift+C copies the selection. On a Mac, Command+C does.
67937
+ * - Control+M, or Control+Shift+M on a Mac, switches Tab between typing in the
67938
+ * terminal and moving focus out of it. The status line says when Tab moves
67939
+ * focus, and the terminal's input describes the key to a screen reader.
67940
+ *
67941
+ * **Screen readers.** A terminal draws its grid as a picture of text, so a
67942
+ * screen reader reads nothing in it by default. Set `screen-reader-mode` to
67943
+ * have the renderer keep the grid as lines a screen reader can move through
67944
+ * and announce new output as it arrives, which xterm.js calls screen reader
67945
+ * mode. It costs time on every write, so it is off by default: connect it to
67946
+ * a setting your reader can turn on.
67947
+ *
67948
+ * ## Attributes & Properties
67949
+ *
67950
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
67951
+ *
67952
+ * - `clear-label`/`clearLabel`: The clear button's label.
67953
+ * - `columns`: The grid's width in character cells. Set it with `rows` to fix the grid's size; unset, the grid fills the frame.
67954
+ * - `controls`: Which built-in controls the header shows, as a list of `find`, `copy`,
67955
+ * `clear`, and `fullscreen`, or `none`. Absent is `find clear`.
67956
+ * - `controls-label`/`controlsLabel`: The name of the row of controls, read by screen readers.
67957
+ * - `copied-label`/`copiedLabel`: What screen readers hear after a copy.
67958
+ * - `copy-label`/`copyLabel`: The copy button's label.
67959
+ * - `exit-code`/`exitCode`: How the process exited, which the page sets when it does. While it is set,
67960
+ * the status line says it, the frame sends no input, and Restart is shown.
67961
+ * Clear it when a new process starts.
67962
+ * - `exited-label`/`exitedLabel`: What the status line says once the process has exited. `{code}` is its
67963
+ * exit code, written as the process gave it, and code `0` is a clean exit.
67964
+ * - `fallback-label`/`fallbackLabel`: The terminal's name where `label` is empty and the host has no `aria-label`.
67965
+ * - `find-close-label`/`findCloseLabel`: The label of the button that closes the find bar.
67966
+ * - `find-controls-label`/`findControlsLabel`: The name of the find bar's row of buttons, read by screen readers.
67967
+ * - `find-label`/`findLabel`: The find button's label, and the find field's name and placeholder.
67968
+ * - `find-next-label`/`findNextLabel`: The next match button's label.
67969
+ * - `find-previous-label`/`findPreviousLabel`: The previous match button's label.
67970
+ * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
67971
+ * - `input-label`/`inputLabel`: The name of the element the reader types into, which the renderer draws.
67972
+ * - `label`: The terminal's name, in the header and for screen readers, such as the
67973
+ * shell or the folder it runs in. Several terminals on a page need names
67974
+ * that tell them apart.
67975
+ * - `matches-label`/`matchesLabel`: What the find bar says of its matches. `{index}` is the current match,
67976
+ * counting from 1, and `{count}` how many there are.
67977
+ * - `readonly`/`readOnly`: Draws the output and sends no input, with no cursor, for a transcript or
67978
+ * a command an agent ran. The attribute is `readonly`, the platform's
67979
+ * spelling.
67980
+ * - `restart-label`/`restartLabel`: The Restart button's label.
67981
+ * - `rows`: The grid's height in lines. Set it with `columns` to fix the grid's size; unset, the grid fills the frame.
67982
+ * - `screen-reader-mode`/`screenReaderMode`: Keeps the grid as lines a screen reader moves through, and says new
67983
+ * output as it arrives. Off by default, since it costs time on every
67984
+ * write. Connect it to a setting your reader can turn on.
67985
+ * - `tab-hint-label`/`tabHintLabel`: What the terminal's input describes to a screen reader. `{key}` is the key that switches Tab.
67986
+ * - `tab-moves-focus-label`/`tabMovesFocusLabel`: What the status line says while Tab moves focus. `{key}` is the key that switches it back.
67987
+ * - `tab-types-label`/`tabTypesLabel`: What screen readers hear when Tab goes back to typing in the terminal.
67988
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
67989
+ *
67990
+ * **Named `whenSettled` because `settled` is taken four times over**, by
67991
+ * Image, Splitter and both color controls, none of them about transitions. A
67992
+ * base class takes the name every subclass then cannot use.
67993
+ *
67994
+ * **The state it reports cannot be watched, which is why this exists.** A
67995
+ * custom state is deliberately not in the DOM, so there is no
67996
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
67997
+ * instead.
67998
+ *
67999
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
68000
+ * the suppression is still active in. That is the distinction `readyToMove`
68001
+ * in `@fusion.dev/helix-testing` is written around.
68002
+ *
68003
+ * It never resolves where `requestAnimationFrame` never fires, which is a
68004
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
68005
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
68006
+ * browser harness's awaits it alone: a browser always runs the frame, and a
68007
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
68008
+ *
68009
+ * ## Events
68010
+ *
68011
+ * Events that will be emitted by the component.
68012
+ *
68013
+ * - `helix-copy`: The copy control or its key put the selection on the clipboard.
68014
+ * - `helix-terminal-bell`: The program rang the bell. The frame flashes once.
68015
+ * - `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.
68016
+ * - `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.
68017
+ * - `helix-terminal-resize`: The grid changed size, with `columns`, `rows`, `width`, and `height`. Resize the process's pseudo-terminal to match.
68018
+ * - `helix-terminal-restart`: The Restart button was pressed after the process exited. Start a new process and clear `exit-code`.
68019
+ * - `helix-terminal-title`: The program set its title, with `title`. The frame keeps its own `label`.
68020
+ *
68021
+ * ## Slots
68022
+ *
68023
+ * Areas where markup can be added to the component.
68024
+ *
68025
+ * - `(default)`: The element your renderer draws the terminal in.
68026
+ * - `actions`: Controls of your own in the header, before the built-in ones, such as a button that splits the pane.
68027
+ * - `clear-icon`: Replaces the glyph inside the clear button.
68028
+ * - `copy-icon`: Replaces the glyph inside the copy button.
68029
+ * - `exit-actions`: Controls of your own beside Restart, shown once the process exits, such as a button that opens the whole log.
68030
+ * - `find-actions`: Controls of your own in the find bar, between the count and the buttons that move between matches.
68031
+ * - `find-close-icon`: Replaces the glyph inside the button that closes the find bar.
68032
+ * - `find-icon`: Replaces the glyph inside the find button.
68033
+ * - `find-next-icon`: Replaces the glyph inside the next match button.
68034
+ * - `find-previous-icon`: Replaces the glyph inside the previous match button.
68035
+ * - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
68036
+ * - `label`: The terminal's name in the header, such as an icon beside the shell's name. Replaces `label` there.
68037
+ * - `restart-icon`: Replaces the glyph inside the Restart button.
68038
+ *
68039
+ * ## Methods
68040
+ *
68041
+ * Methods that can be called to access component functionality.
68042
+ *
68043
+ * - `write(data: string | Uint8Array) => Promise<void>`: Writes the program's output. Resolves once the renderer has parsed it,
68044
+ * which is how a page pauses a process that writes faster than the
68045
+ * terminal draws. Output written before a renderer is attached is held and
68046
+ * written first.
68047
+ * - `paste(text: string) => void`: Inputs text as a paste does, in bracketed paste mode where the program
68048
+ * asked for it. It arrives as `helix-terminal-input`, like typed text.
68049
+ * - `clear() => void`: Clears the scrollback, keeping the line the cursor is on.
68050
+ * - `reset() => void`: Resets the emulator: its modes, its colors, and its screen.
68051
+ * - `text(scope: 'all' | 'screen' = 'screen') => string`: The terminal as plain text, as the renderer drew it: the lines on screen,
68052
+ * or with `all`, every line the scrollback holds. Empty before a renderer is
68053
+ * attached.
68054
+ * - `look() => TerminalLook`: The colors and the face the terminal is to be drawn in, as the
68055
+ * `--terminal-*` properties resolve where the frame is. `connectTerminal`
68056
+ * themes the renderer from it. A color nothing sets is left out, so the
68057
+ * renderer keeps its own: the headless tier sets none, and the styled tier
68058
+ * sets every one from the theme.
68059
+ * - `focus(options?: FocusOptions) => void`: Focuses the terminal's input, where a renderer is attached.
68060
+ * - `attach(renderer: TerminalRenderer) => TerminalSink`: Attaches what draws the terminal, and returns how it tells the frame what
68061
+ * happened. `connectTerminal` calls it; a page drawing its own terminal calls
68062
+ * it with its own renderer. Attaching another detaches the first.
68063
+ *
68064
+ * ## CSS Custom Properties
68065
+ *
68066
+ * CSS variables available for styling the component.
68067
+ *
68068
+ * - `--terminal-active-match-background-color`: The ground of the current match of a search.
68069
+ * - `--terminal-active-match-border-color`: The edge of the current match of a search.
68070
+ * - `--terminal-ansi-black`: ANSI black, which codes `30` and `40` draw.
68071
+ * - `--terminal-ansi-blue`: ANSI blue, which codes `34` and `44` draw.
68072
+ * - `--terminal-ansi-bright-black`: ANSI bright black, which codes `90` and `100` draw.
68073
+ * - `--terminal-ansi-bright-blue`: ANSI bright blue, which codes `94` and `104` draw.
68074
+ * - `--terminal-ansi-bright-cyan`: ANSI bright cyan, which codes `96` and `106` draw.
68075
+ * - `--terminal-ansi-bright-green`: ANSI bright green, which codes `92` and `102` draw.
68076
+ * - `--terminal-ansi-bright-magenta`: ANSI bright magenta, which codes `95` and `105` draw.
68077
+ * - `--terminal-ansi-bright-red`: ANSI bright red, which codes `91` and `101` draw.
68078
+ * - `--terminal-ansi-bright-white`: ANSI bright white, which codes `97` and `107` draw.
68079
+ * - `--terminal-ansi-bright-yellow`: ANSI bright yellow, which codes `93` and `103` draw.
68080
+ * - `--terminal-ansi-cyan`: ANSI cyan, which codes `36` and `46` draw.
68081
+ * - `--terminal-ansi-green`: ANSI green, which codes `32` and `42` draw.
68082
+ * - `--terminal-ansi-magenta`: ANSI magenta, which codes `35` and `45` draw.
68083
+ * - `--terminal-ansi-red`: ANSI red, which codes `31` and `41` draw.
68084
+ * - `--terminal-ansi-white`: ANSI white, which codes `37` and `47` draw.
68085
+ * - `--terminal-ansi-yellow`: ANSI yellow, which codes `33` and `43` draw.
68086
+ * - `--terminal-background-color`: The ground of the grid.
68087
+ * - `--terminal-color`: The text of the grid where the program sets no color.
68088
+ * - `--terminal-cursor-color`: The cursor.
68089
+ * - `--terminal-match-background-color`: The ground of every match of a search but the current one.
68090
+ * - `--terminal-scrollbar-thumb-color`: The grid's scrollbar.
68091
+ * - `--terminal-selection-background-color`: The ground of selected text. See-through, so the text keeps its color.
68092
+ *
68093
+ * ## CSS Parts
68094
+ *
68095
+ * Custom selectors for styling elements within the component.
68096
+ *
68097
+ * - `actions`: The `actions` slot, first in the header's toolbar.
68098
+ * - `clear`: The button that clears the scrollback.
68099
+ * - `clear-button`: The clear button's inner button.
68100
+ * - `clear-live`: The clear button's live region, which speaks while the button is pending.
68101
+ * - `clear-spinner`: The ring the clear button turns while it is pending.
68102
+ * - `clear-text`: The box the clear button's icon sits in.
68103
+ * - `controls`: The toolbar at the end of the header: your actions, then the built-in buttons, one tab stop that the arrows move along.
68104
+ * - `controls-toolbar`: The box inside the header's toolbar that lays its buttons out.
68105
+ * - `copy`: The button that copies the selection. Disabled while nothing is selected.
68106
+ * - `copy-button`: The copy button's inner button.
68107
+ * - `copy-live`: The copy button's live region, which speaks while the button is pending.
68108
+ * - `copy-spinner`: The ring the copy button turns while it is pending.
68109
+ * - `copy-text`: The box the copy button's icon sits in.
68110
+ * - `exit-actions`: The `exit-actions` slot, beside Restart in the status line.
68111
+ * - `find`: The button that opens and closes the find bar. Expanded while it is open.
68112
+ * - `find-actions`: The `find-actions` slot, first in the find bar's toolbar.
68113
+ * - `find-bar`: The bar under the header where the reader searches the output.
68114
+ * - `find-button`: The find button's inner button.
68115
+ * - `find-close`: The button that closes the find bar.
68116
+ * - `find-close-button`: The find bar's close button's inner button.
68117
+ * - `find-close-live`: The find bar's close button's live region, which speaks while the button is pending.
68118
+ * - `find-close-spinner`: The ring the find bar's close button turns while it is pending.
68119
+ * - `find-close-text`: The box the find bar's close button's icon sits in.
68120
+ * - `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.
68121
+ * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
68122
+ * - `find-count`: Which match is current and how many there are, such as "3 of 12 matches".
68123
+ * - `find-field`: The search field in the find bar.
68124
+ * - `find-live`: The find button's live region, which speaks while the button is pending.
68125
+ * - `find-next`: The button that moves to the next match.
68126
+ * - `find-next-button`: The next match button's inner button.
68127
+ * - `find-next-live`: The next match button's live region, which speaks while the button is pending.
68128
+ * - `find-next-spinner`: The ring the next match button turns while it is pending.
68129
+ * - `find-next-text`: The box the next match button's icon sits in.
68130
+ * - `find-previous`: The button that moves to the previous match.
68131
+ * - `find-previous-button`: The previous match button's inner button.
68132
+ * - `find-previous-live`: The previous match button's live region, which speaks while the button is pending.
68133
+ * - `find-previous-spinner`: The ring the previous match button turns while it is pending.
68134
+ * - `find-previous-text`: The box the previous match button's icon sits in.
68135
+ * - `find-spinner`: The ring the find button turns while it is pending.
68136
+ * - `find-text`: The box the find button's icon sits in.
68137
+ * - `fullscreen`: The button that makes the terminal fill the screen. Pressed while it does.
68138
+ * - `fullscreen-button`: The fullscreen button's inner button.
68139
+ * - `fullscreen-live`: The fullscreen button's live region, which speaks while the button is pending.
68140
+ * - `fullscreen-spinner`: The ring the fullscreen button turns while it is pending.
68141
+ * - `fullscreen-text`: The box the fullscreen button's icon sits in.
68142
+ * - `header`: The strip above the terminal, with its name, your actions, and the controls.
68143
+ * - `label`: The terminal's name in the header.
68144
+ * - `live`: What screen readers hear after the frame acts: a match count, a copy, or a change to what Tab does. Visually hidden in the styled tier.
68145
+ * - `region`: The named group the terminal sits in.
68146
+ * - `restart`: The button in the status line that asks for a new process after the last one exited.
68147
+ * - `restart-button`: The Restart button's inner button.
68148
+ * - `restart-live`: The Restart button's live region, which speaks while the button is pending.
68149
+ * - `restart-spinner`: The ring the Restart button turns while it is pending.
68150
+ * - `restart-text`: The Restart button's label.
68151
+ * - `status`: The line under the terminal that says the process exited, or that Tab moves focus.
68152
+ * - `viewport`: The box the terminal is drawn in.
68153
+ *
68154
+ * ## CSS States
68155
+ *
68156
+ * These can be used to apply styling when a component is in a given state.
68157
+ *
68158
+ * - `bell`: The program rang the bell, held for a moment for a visual bell.
68159
+ * - `exited`: The process has exited, by `exit-code`.
68160
+ * - `find-open`: The find bar is open.
68161
+ * - `fullscreen`: The terminal fills the screen.
68162
+ * - `tab-moves-focus`: Tab moves focus out of the terminal, after Control+M.
68163
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
68164
+ */
68165
+ "helix-headless-terminal": Partial<
68166
+ HelixHeadlessTerminalProps & BaseProps<HelixHeadlessTerminal, F> & BaseEvents<HelixHeadlessTerminal>
68167
+ >;
68168
+
67582
68169
  /**
67583
68170
  * Renders a `<textarea>`, so the caret, selection, spellcheck, resize handle,
67584
68171
  * and phone keyboard come from the platform. It is in the server markup, so the
@@ -69853,6 +70440,10 @@ export type CustomElements<F extends Framework = "other"> = {
69853
70440
  * tab stop while the toolbar's is elsewhere, so Tab stops once in the
69854
70441
  * toolbar. A composite without one keeps its own tab stop.
69855
70442
  *
70443
+ * A `<slot>` in the toolbar counts as the controls assigned to it, for a
70444
+ * toolbar a component draws in its own shadow root with your controls passed
70445
+ * into it: they share its tab stop and its arrows with the component's own.
70446
+ *
69856
70447
  * A toolbar inside another toolbar, a Helix one or the page's own
69857
70448
  * `role="toolbar"`, is a `group` of the outer one, as React Aria's is: the
69858
70449
  * outer toolbar's arrows walk through its controls and on past them, and it
@@ -75194,6 +75785,9 @@ export type CustomElementsSolidJs = {
75194
75785
  * board, where the arrow keys pan it.
75195
75786
  * - Plus and minus zoom the board, on the board and on a card or a
75196
75787
  * connection.
75788
+ * - The pan and zoom buttons are a toolbar and one tab stop. The arrow keys
75789
+ * move between them by where they sit, Right from the up arrow to zoom in,
75790
+ * and Enter or Space presses one.
75197
75791
  * - The arrow keys move through the cards in reading order. The card you land
75198
75792
  * on scrolls into view, and its connections are announced with it.
75199
75793
  * - The card you land on is selected. Control or Command with an arrow key,
@@ -75634,7 +76228,7 @@ export type CustomElementsSolidJs = {
75634
76228
  *
75635
76229
  * - `arrow`: The arrowhead at an end of a connection that has one.
75636
76230
  * - `board`: The plane the cards are placed on, which pans and zooms.
75637
- * - `controls`: The group the pan and zoom buttons sit in.
76231
+ * - `controls`: The toolbar the pan and zoom buttons sit in, one tab stop.
75638
76232
  * - `draft`: The connection being drawn, before `helix-connect` is sent.
75639
76233
  * - `edge`: One connector between two cards.
75640
76234
  * - `edge-end`: An end of a selected connection. Drag it, or click it to pick it up.
@@ -83801,7 +84395,9 @@ export type CustomElementsSolidJs = {
83801
84395
  * or hides its notes. `hiddenGroups` holds the groups turned off, and the
83802
84396
  * list holds only what the drawing shows. The legend is a toolbar and one tab
83803
84397
  * stop: the arrow keys, Home, End and a group's first letters move between
83804
- * its buttons, and Space or Enter presses one.
84398
+ * its buttons, and Space or Enter presses one. The pan and zoom buttons are
84399
+ * a toolbar and one tab stop too, the arrow keys moving between them by where
84400
+ * they sit on screen.
83805
84401
  *
83806
84402
  * `nodes` and `links` are properties, never markup: a graph of ten thousand
83807
84403
  * notes as ten thousand elements would cost what the renderer exists to save.
@@ -84075,7 +84671,7 @@ export type CustomElementsSolidJs = {
84075
84671
  * - `after`: The room the notes after those drawn would take, so the list scrolls its whole length.
84076
84672
  * - `before`: The room the notes before those drawn would take.
84077
84673
  * - `body`: The drawing beside the list, or above it where the frame is narrow.
84078
- * - `controls`: The group the pan and zoom buttons sit in.
84674
+ * - `controls`: The toolbar the pan and zoom buttons sit in, one tab stop.
84079
84675
  * - `count`: How many notes the list holds, which a search narrows, at the end of the search bar.
84080
84676
  * - `empty`: The box in place of the list when it holds no notes, holding the `empty` slot.
84081
84677
  * - `filter-icon`: The icon beside the search field.
@@ -88520,7 +89116,9 @@ export type CustomElementsSolidJs = {
88520
89116
  * map. Dragging is otherwise the only way a pointer moves the map, so add them
88521
89117
  * where the map has to be usable without dragging, as WCAG 2.2 asks at level
88522
89118
  * AA. The arrow keys pan the map and Shift with Left or Right turns it either
88523
- * way.
89119
+ * way. The buttons are a toolbar and one tab stop: on them, the arrow keys
89120
+ * move between the buttons by where they sit, and Shift with an arrow still
89121
+ * turns or tilts the map.
88524
89122
  *
88525
89123
  * The pan and zoom buttons and the arrow keys send `helix-map-pan` and
88526
89124
  * `helix-map-zoom`. Move your map in response, or connect it with
@@ -88791,7 +89389,7 @@ export type CustomElementsSolidJs = {
88791
89389
  *
88792
89390
  * - `attribution`: The strip under the map that holds the credit.
88793
89391
  * - `compass`: The compass and the pan and rotate buttons around it.
88794
- * - `controls`: The column of buttons that move the map.
89392
+ * - `controls`: The column of buttons that move the map, a toolbar and one tab stop.
88795
89393
  * - `face-north`: The compass: its needle points north as the map turns, and pressing it turns the map to face north.
88796
89394
  * - `footer`: The strip below the map.
88797
89395
  * - `fullscreen`: The button that makes the map fill the screen.
@@ -100275,6 +100873,269 @@ export type CustomElementsSolidJs = {
100275
100873
  BaseEvents<HelixHeadlessTag>
100276
100874
  >;
100277
100875
 
100876
+ /**
100877
+ * Wraps a terminal drawn by xterm.js or another emulator. The frame adds a
100878
+ * header with the terminal's name and its controls, a find bar, and a status
100879
+ * line. `connectTerminal` in `@fusion.dev/helix-terminal` connects it to the
100880
+ * emulator and draws the terminal in the colors the `--terminal-*` properties
100881
+ * set, which the styled tier sets from your theme. Helix does not start a
100882
+ * process: you connect the stream. Write the program's output with `write()`, send what the
100883
+ * reader types to the process from `helix-terminal-input`, and resize the
100884
+ * process's pseudo-terminal from `helix-terminal-resize`.
100885
+ *
100886
+ * Output written before a renderer is connected is held and written first, so
100887
+ * the process can start before the emulator loads. `write()` resolves once
100888
+ * the renderer has parsed the output, which is how a page pauses a process
100889
+ * that writes faster than the terminal draws.
100890
+ *
100891
+ * The controls are a row in the header, and `controls` names which ones:
100892
+ * `find`, `copy`, `clear`, and `fullscreen`. `find clear` by default. A control
100893
+ * the renderer cannot answer is left out once it is connected. Set `exit-code`
100894
+ * when the process exits: the frame says how it exited, stops sending input,
100895
+ * and shows a Restart button that sends `helix-terminal-restart`.
100896
+ *
100897
+ * **Keyboard.** Every key goes to the program, Tab, Shift+Tab, and Escape
100898
+ * included, except these:
100899
+ *
100900
+ * - Control+Shift+F, or Command+F on a Mac, opens the find bar. Enter and
100901
+ * Shift+Enter move between the matches, and Escape closes the bar and
100902
+ * returns focus to the terminal.
100903
+ * - Control+Shift+C copies the selection. On a Mac, Command+C does.
100904
+ * - Control+M, or Control+Shift+M on a Mac, switches Tab between typing in the
100905
+ * terminal and moving focus out of it. The status line says when Tab moves
100906
+ * focus, and the terminal's input describes the key to a screen reader.
100907
+ *
100908
+ * **Screen readers.** A terminal draws its grid as a picture of text, so a
100909
+ * screen reader reads nothing in it by default. Set `screen-reader-mode` to
100910
+ * have the renderer keep the grid as lines a screen reader can move through
100911
+ * and announce new output as it arrives, which xterm.js calls screen reader
100912
+ * mode. It costs time on every write, so it is off by default: connect it to
100913
+ * a setting your reader can turn on.
100914
+ *
100915
+ * ## Attributes & Properties
100916
+ *
100917
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
100918
+ *
100919
+ * - `clear-label`/`clearLabel`: The clear button's label.
100920
+ * - `columns`: The grid's width in character cells. Set it with `rows` to fix the grid's size; unset, the grid fills the frame.
100921
+ * - `controls`: Which built-in controls the header shows, as a list of `find`, `copy`,
100922
+ * `clear`, and `fullscreen`, or `none`. Absent is `find clear`.
100923
+ * - `controls-label`/`controlsLabel`: The name of the row of controls, read by screen readers.
100924
+ * - `copied-label`/`copiedLabel`: What screen readers hear after a copy.
100925
+ * - `copy-label`/`copyLabel`: The copy button's label.
100926
+ * - `exit-code`/`exitCode`: How the process exited, which the page sets when it does. While it is set,
100927
+ * the status line says it, the frame sends no input, and Restart is shown.
100928
+ * Clear it when a new process starts.
100929
+ * - `exited-label`/`exitedLabel`: What the status line says once the process has exited. `{code}` is its
100930
+ * exit code, written as the process gave it, and code `0` is a clean exit.
100931
+ * - `fallback-label`/`fallbackLabel`: The terminal's name where `label` is empty and the host has no `aria-label`.
100932
+ * - `find-close-label`/`findCloseLabel`: The label of the button that closes the find bar.
100933
+ * - `find-controls-label`/`findControlsLabel`: The name of the find bar's row of buttons, read by screen readers.
100934
+ * - `find-label`/`findLabel`: The find button's label, and the find field's name and placeholder.
100935
+ * - `find-next-label`/`findNextLabel`: The next match button's label.
100936
+ * - `find-previous-label`/`findPreviousLabel`: The previous match button's label.
100937
+ * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
100938
+ * - `input-label`/`inputLabel`: The name of the element the reader types into, which the renderer draws.
100939
+ * - `label`: The terminal's name, in the header and for screen readers, such as the
100940
+ * shell or the folder it runs in. Several terminals on a page need names
100941
+ * that tell them apart.
100942
+ * - `matches-label`/`matchesLabel`: What the find bar says of its matches. `{index}` is the current match,
100943
+ * counting from 1, and `{count}` how many there are.
100944
+ * - `readonly`/`readOnly`: Draws the output and sends no input, with no cursor, for a transcript or
100945
+ * a command an agent ran. The attribute is `readonly`, the platform's
100946
+ * spelling.
100947
+ * - `restart-label`/`restartLabel`: The Restart button's label.
100948
+ * - `rows`: The grid's height in lines. Set it with `columns` to fix the grid's size; unset, the grid fills the frame.
100949
+ * - `screen-reader-mode`/`screenReaderMode`: Keeps the grid as lines a screen reader moves through, and says new
100950
+ * output as it arrives. Off by default, since it costs time on every
100951
+ * write. Connect it to a setting your reader can turn on.
100952
+ * - `tab-hint-label`/`tabHintLabel`: What the terminal's input describes to a screen reader. `{key}` is the key that switches Tab.
100953
+ * - `tab-moves-focus-label`/`tabMovesFocusLabel`: What the status line says while Tab moves focus. `{key}` is the key that switches it back.
100954
+ * - `tab-types-label`/`tabTypesLabel`: What screen readers hear when Tab goes back to typing in the terminal.
100955
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
100956
+ *
100957
+ * **Named `whenSettled` because `settled` is taken four times over**, by
100958
+ * Image, Splitter and both color controls, none of them about transitions. A
100959
+ * base class takes the name every subclass then cannot use.
100960
+ *
100961
+ * **The state it reports cannot be watched, which is why this exists.** A
100962
+ * custom state is deliberately not in the DOM, so there is no
100963
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
100964
+ * instead.
100965
+ *
100966
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
100967
+ * the suppression is still active in. That is the distinction `readyToMove`
100968
+ * in `@fusion.dev/helix-testing` is written around.
100969
+ *
100970
+ * It never resolves where `requestAnimationFrame` never fires, which is a
100971
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
100972
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
100973
+ * browser harness's awaits it alone: a browser always runs the frame, and a
100974
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
100975
+ *
100976
+ * ## Events
100977
+ *
100978
+ * Events that will be emitted by the component.
100979
+ *
100980
+ * - `helix-copy`: The copy control or its key put the selection on the clipboard.
100981
+ * - `helix-terminal-bell`: The program rang the bell. The frame flashes once.
100982
+ * - `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.
100983
+ * - `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.
100984
+ * - `helix-terminal-resize`: The grid changed size, with `columns`, `rows`, `width`, and `height`. Resize the process's pseudo-terminal to match.
100985
+ * - `helix-terminal-restart`: The Restart button was pressed after the process exited. Start a new process and clear `exit-code`.
100986
+ * - `helix-terminal-title`: The program set its title, with `title`. The frame keeps its own `label`.
100987
+ *
100988
+ * ## Slots
100989
+ *
100990
+ * Areas where markup can be added to the component.
100991
+ *
100992
+ * - `(default)`: The element your renderer draws the terminal in.
100993
+ * - `actions`: Controls of your own in the header, before the built-in ones, such as a button that splits the pane.
100994
+ * - `clear-icon`: Replaces the glyph inside the clear button.
100995
+ * - `copy-icon`: Replaces the glyph inside the copy button.
100996
+ * - `exit-actions`: Controls of your own beside Restart, shown once the process exits, such as a button that opens the whole log.
100997
+ * - `find-actions`: Controls of your own in the find bar, between the count and the buttons that move between matches.
100998
+ * - `find-close-icon`: Replaces the glyph inside the button that closes the find bar.
100999
+ * - `find-icon`: Replaces the glyph inside the find button.
101000
+ * - `find-next-icon`: Replaces the glyph inside the next match button.
101001
+ * - `find-previous-icon`: Replaces the glyph inside the previous match button.
101002
+ * - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
101003
+ * - `label`: The terminal's name in the header, such as an icon beside the shell's name. Replaces `label` there.
101004
+ * - `restart-icon`: Replaces the glyph inside the Restart button.
101005
+ *
101006
+ * ## Methods
101007
+ *
101008
+ * Methods that can be called to access component functionality.
101009
+ *
101010
+ * - `write(data: string | Uint8Array) => Promise<void>`: Writes the program's output. Resolves once the renderer has parsed it,
101011
+ * which is how a page pauses a process that writes faster than the
101012
+ * terminal draws. Output written before a renderer is attached is held and
101013
+ * written first.
101014
+ * - `paste(text: string) => void`: Inputs text as a paste does, in bracketed paste mode where the program
101015
+ * asked for it. It arrives as `helix-terminal-input`, like typed text.
101016
+ * - `clear() => void`: Clears the scrollback, keeping the line the cursor is on.
101017
+ * - `reset() => void`: Resets the emulator: its modes, its colors, and its screen.
101018
+ * - `text(scope: 'all' | 'screen' = 'screen') => string`: The terminal as plain text, as the renderer drew it: the lines on screen,
101019
+ * or with `all`, every line the scrollback holds. Empty before a renderer is
101020
+ * attached.
101021
+ * - `look() => TerminalLook`: The colors and the face the terminal is to be drawn in, as the
101022
+ * `--terminal-*` properties resolve where the frame is. `connectTerminal`
101023
+ * themes the renderer from it. A color nothing sets is left out, so the
101024
+ * renderer keeps its own: the headless tier sets none, and the styled tier
101025
+ * sets every one from the theme.
101026
+ * - `focus(options?: FocusOptions) => void`: Focuses the terminal's input, where a renderer is attached.
101027
+ * - `attach(renderer: TerminalRenderer) => TerminalSink`: Attaches what draws the terminal, and returns how it tells the frame what
101028
+ * happened. `connectTerminal` calls it; a page drawing its own terminal calls
101029
+ * it with its own renderer. Attaching another detaches the first.
101030
+ *
101031
+ * ## CSS Custom Properties
101032
+ *
101033
+ * CSS variables available for styling the component.
101034
+ *
101035
+ * - `--terminal-active-match-background-color`: The ground of the current match of a search.
101036
+ * - `--terminal-active-match-border-color`: The edge of the current match of a search.
101037
+ * - `--terminal-ansi-black`: ANSI black, which codes `30` and `40` draw.
101038
+ * - `--terminal-ansi-blue`: ANSI blue, which codes `34` and `44` draw.
101039
+ * - `--terminal-ansi-bright-black`: ANSI bright black, which codes `90` and `100` draw.
101040
+ * - `--terminal-ansi-bright-blue`: ANSI bright blue, which codes `94` and `104` draw.
101041
+ * - `--terminal-ansi-bright-cyan`: ANSI bright cyan, which codes `96` and `106` draw.
101042
+ * - `--terminal-ansi-bright-green`: ANSI bright green, which codes `92` and `102` draw.
101043
+ * - `--terminal-ansi-bright-magenta`: ANSI bright magenta, which codes `95` and `105` draw.
101044
+ * - `--terminal-ansi-bright-red`: ANSI bright red, which codes `91` and `101` draw.
101045
+ * - `--terminal-ansi-bright-white`: ANSI bright white, which codes `97` and `107` draw.
101046
+ * - `--terminal-ansi-bright-yellow`: ANSI bright yellow, which codes `93` and `103` draw.
101047
+ * - `--terminal-ansi-cyan`: ANSI cyan, which codes `36` and `46` draw.
101048
+ * - `--terminal-ansi-green`: ANSI green, which codes `32` and `42` draw.
101049
+ * - `--terminal-ansi-magenta`: ANSI magenta, which codes `35` and `45` draw.
101050
+ * - `--terminal-ansi-red`: ANSI red, which codes `31` and `41` draw.
101051
+ * - `--terminal-ansi-white`: ANSI white, which codes `37` and `47` draw.
101052
+ * - `--terminal-ansi-yellow`: ANSI yellow, which codes `33` and `43` draw.
101053
+ * - `--terminal-background-color`: The ground of the grid.
101054
+ * - `--terminal-color`: The text of the grid where the program sets no color.
101055
+ * - `--terminal-cursor-color`: The cursor.
101056
+ * - `--terminal-match-background-color`: The ground of every match of a search but the current one.
101057
+ * - `--terminal-scrollbar-thumb-color`: The grid's scrollbar.
101058
+ * - `--terminal-selection-background-color`: The ground of selected text. See-through, so the text keeps its color.
101059
+ *
101060
+ * ## CSS Parts
101061
+ *
101062
+ * Custom selectors for styling elements within the component.
101063
+ *
101064
+ * - `actions`: The `actions` slot, first in the header's toolbar.
101065
+ * - `clear`: The button that clears the scrollback.
101066
+ * - `clear-button`: The clear button's inner button.
101067
+ * - `clear-live`: The clear button's live region, which speaks while the button is pending.
101068
+ * - `clear-spinner`: The ring the clear button turns while it is pending.
101069
+ * - `clear-text`: The box the clear button's icon sits in.
101070
+ * - `controls`: The toolbar at the end of the header: your actions, then the built-in buttons, one tab stop that the arrows move along.
101071
+ * - `controls-toolbar`: The box inside the header's toolbar that lays its buttons out.
101072
+ * - `copy`: The button that copies the selection. Disabled while nothing is selected.
101073
+ * - `copy-button`: The copy button's inner button.
101074
+ * - `copy-live`: The copy button's live region, which speaks while the button is pending.
101075
+ * - `copy-spinner`: The ring the copy button turns while it is pending.
101076
+ * - `copy-text`: The box the copy button's icon sits in.
101077
+ * - `exit-actions`: The `exit-actions` slot, beside Restart in the status line.
101078
+ * - `find`: The button that opens and closes the find bar. Expanded while it is open.
101079
+ * - `find-actions`: The `find-actions` slot, first in the find bar's toolbar.
101080
+ * - `find-bar`: The bar under the header where the reader searches the output.
101081
+ * - `find-button`: The find button's inner button.
101082
+ * - `find-close`: The button that closes the find bar.
101083
+ * - `find-close-button`: The find bar's close button's inner button.
101084
+ * - `find-close-live`: The find bar's close button's live region, which speaks while the button is pending.
101085
+ * - `find-close-spinner`: The ring the find bar's close button turns while it is pending.
101086
+ * - `find-close-text`: The box the find bar's close button's icon sits in.
101087
+ * - `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.
101088
+ * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
101089
+ * - `find-count`: Which match is current and how many there are, such as "3 of 12 matches".
101090
+ * - `find-field`: The search field in the find bar.
101091
+ * - `find-live`: The find button's live region, which speaks while the button is pending.
101092
+ * - `find-next`: The button that moves to the next match.
101093
+ * - `find-next-button`: The next match button's inner button.
101094
+ * - `find-next-live`: The next match button's live region, which speaks while the button is pending.
101095
+ * - `find-next-spinner`: The ring the next match button turns while it is pending.
101096
+ * - `find-next-text`: The box the next match button's icon sits in.
101097
+ * - `find-previous`: The button that moves to the previous match.
101098
+ * - `find-previous-button`: The previous match button's inner button.
101099
+ * - `find-previous-live`: The previous match button's live region, which speaks while the button is pending.
101100
+ * - `find-previous-spinner`: The ring the previous match button turns while it is pending.
101101
+ * - `find-previous-text`: The box the previous match button's icon sits in.
101102
+ * - `find-spinner`: The ring the find button turns while it is pending.
101103
+ * - `find-text`: The box the find button's icon sits in.
101104
+ * - `fullscreen`: The button that makes the terminal fill the screen. Pressed while it does.
101105
+ * - `fullscreen-button`: The fullscreen button's inner button.
101106
+ * - `fullscreen-live`: The fullscreen button's live region, which speaks while the button is pending.
101107
+ * - `fullscreen-spinner`: The ring the fullscreen button turns while it is pending.
101108
+ * - `fullscreen-text`: The box the fullscreen button's icon sits in.
101109
+ * - `header`: The strip above the terminal, with its name, your actions, and the controls.
101110
+ * - `label`: The terminal's name in the header.
101111
+ * - `live`: What screen readers hear after the frame acts: a match count, a copy, or a change to what Tab does. Visually hidden in the styled tier.
101112
+ * - `region`: The named group the terminal sits in.
101113
+ * - `restart`: The button in the status line that asks for a new process after the last one exited.
101114
+ * - `restart-button`: The Restart button's inner button.
101115
+ * - `restart-live`: The Restart button's live region, which speaks while the button is pending.
101116
+ * - `restart-spinner`: The ring the Restart button turns while it is pending.
101117
+ * - `restart-text`: The Restart button's label.
101118
+ * - `status`: The line under the terminal that says the process exited, or that Tab moves focus.
101119
+ * - `viewport`: The box the terminal is drawn in.
101120
+ *
101121
+ * ## CSS States
101122
+ *
101123
+ * These can be used to apply styling when a component is in a given state.
101124
+ *
101125
+ * - `bell`: The program rang the bell, held for a moment for a visual bell.
101126
+ * - `exited`: The process has exited, by `exit-code`.
101127
+ * - `find-open`: The find bar is open.
101128
+ * - `fullscreen`: The terminal fills the screen.
101129
+ * - `tab-moves-focus`: Tab moves focus out of the terminal, after Control+M.
101130
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
101131
+ */
101132
+ "helix-headless-terminal": Partial<
101133
+ HelixHeadlessTerminalProps &
101134
+ HelixHeadlessTerminalSolidJsProps &
101135
+ BaseProps<HelixHeadlessTerminal, "solid"> &
101136
+ BaseEvents<HelixHeadlessTerminal>
101137
+ >;
101138
+
100278
101139
  /**
100279
101140
  * Renders a `<textarea>`, so the caret, selection, spellcheck, resize handle,
100280
101141
  * and phone keyboard come from the platform. It is in the server markup, so the
@@ -102571,6 +103432,10 @@ export type CustomElementsSolidJs = {
102571
103432
  * tab stop while the toolbar's is elsewhere, so Tab stops once in the
102572
103433
  * toolbar. A composite without one keeps its own tab stop.
102573
103434
  *
103435
+ * A `<slot>` in the toolbar counts as the controls assigned to it, for a
103436
+ * toolbar a component draws in its own shadow root with your controls passed
103437
+ * into it: they share its tab stop and its arrows with the component's own.
103438
+ *
102574
103439
  * A toolbar inside another toolbar, a Helix one or the page's own
102575
103440
  * `role="toolbar"`, is a `group` of the outer one, as React Aria's is: the
102576
103441
  * outer toolbar's arrows walk through its controls and on past them, and it
@@ -105305,6 +106170,54 @@ export type CustomCssProperties = {
105305
106170
  "--table-template"?: (string) | undefined;
105306
106171
  /** Written by the row on its `expand` cell: how deep the row sits, from 1. Do not set it. */
105307
106172
  "--table-row-level"?: (string) | undefined;
106173
+ /** The ground of the current match of a search. */
106174
+ "--terminal-active-match-background-color"?: (string) | undefined;
106175
+ /** The edge of the current match of a search. */
106176
+ "--terminal-active-match-border-color"?: (string) | undefined;
106177
+ /** ANSI black, which codes `30` and `40` draw. */
106178
+ "--terminal-ansi-black"?: (string) | undefined;
106179
+ /** ANSI blue, which codes `34` and `44` draw. */
106180
+ "--terminal-ansi-blue"?: (string) | undefined;
106181
+ /** ANSI bright black, which codes `90` and `100` draw. */
106182
+ "--terminal-ansi-bright-black"?: (string) | undefined;
106183
+ /** ANSI bright blue, which codes `94` and `104` draw. */
106184
+ "--terminal-ansi-bright-blue"?: (string) | undefined;
106185
+ /** ANSI bright cyan, which codes `96` and `106` draw. */
106186
+ "--terminal-ansi-bright-cyan"?: (string) | undefined;
106187
+ /** ANSI bright green, which codes `92` and `102` draw. */
106188
+ "--terminal-ansi-bright-green"?: (string) | undefined;
106189
+ /** ANSI bright magenta, which codes `95` and `105` draw. */
106190
+ "--terminal-ansi-bright-magenta"?: (string) | undefined;
106191
+ /** ANSI bright red, which codes `91` and `101` draw. */
106192
+ "--terminal-ansi-bright-red"?: (string) | undefined;
106193
+ /** ANSI bright white, which codes `97` and `107` draw. */
106194
+ "--terminal-ansi-bright-white"?: (string) | undefined;
106195
+ /** ANSI bright yellow, which codes `93` and `103` draw. */
106196
+ "--terminal-ansi-bright-yellow"?: (string) | undefined;
106197
+ /** ANSI cyan, which codes `36` and `46` draw. */
106198
+ "--terminal-ansi-cyan"?: (string) | undefined;
106199
+ /** ANSI green, which codes `32` and `42` draw. */
106200
+ "--terminal-ansi-green"?: (string) | undefined;
106201
+ /** ANSI magenta, which codes `35` and `45` draw. */
106202
+ "--terminal-ansi-magenta"?: (string) | undefined;
106203
+ /** ANSI red, which codes `31` and `41` draw. */
106204
+ "--terminal-ansi-red"?: (string) | undefined;
106205
+ /** ANSI white, which codes `37` and `47` draw. */
106206
+ "--terminal-ansi-white"?: (string) | undefined;
106207
+ /** ANSI yellow, which codes `33` and `43` draw. */
106208
+ "--terminal-ansi-yellow"?: (string) | undefined;
106209
+ /** The ground of the grid. */
106210
+ "--terminal-background-color"?: (string) | undefined;
106211
+ /** The text of the grid where the program sets no color. */
106212
+ "--terminal-color"?: (string) | undefined;
106213
+ /** The cursor. */
106214
+ "--terminal-cursor-color"?: (string) | undefined;
106215
+ /** The ground of every match of a search but the current one. */
106216
+ "--terminal-match-background-color"?: (string) | undefined;
106217
+ /** The grid's scrollbar. */
106218
+ "--terminal-scrollbar-thumb-color"?: (string) | undefined;
106219
+ /** The ground of selected text. See-through, so the text keeps its color. */
106220
+ "--terminal-selection-background-color"?: (string) | undefined;
105308
106221
  /** How long this message stays, in milliseconds, for a progress hint. */
105309
106222
  "--toast-duration"?: (string) | undefined;
105310
106223
  /** How far a swipe has moved the message across, in pixels, toward the right. */