@fusion.dev/helix 0.212.2 → 0.213.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
@@ -202,10 +202,10 @@ import type {
202
202
  HelixSampleEndEvent,
203
203
  HelixSampleStartEvent,
204
204
  HelixSandbox,
205
+ HelixSandboxConsole,
205
206
  HelixSandboxPreview,
206
207
  HelixSandboxSource,
207
208
  HelixSandboxStatusBar,
208
- HelixSandboxTerminal,
209
209
  HelixSandboxToolbar,
210
210
  HelixScatterChart,
211
211
  HelixScrollArea,
@@ -22959,10 +22959,28 @@ export type HelixLogLineProps = {
22959
22959
  at?: (HelixLogLine["at"]) | undefined;
22960
22960
  /** How much the line matters. Absent is `info`. */
22961
22961
  level?: (HelixLogLine["level"]) | undefined;
22962
+ /** What a screen reader hears before the text of a line at each level, for a
22963
+ page in another language, keyed by level, such as `{ warn: 'Warnung:' }`.
22964
+ A line at `info` or `log` hears nothing extra, and nor does a line whose
22965
+ text already starts with its words, such as `Error: Cannot find module`.
22966
+ As an attribute it is that object as JSON. */
22967
+ "level-words"?: (HelixLogLine["levelWords"]) | undefined;
22968
+ /** What a screen reader hears before the text of a line at each level, for a
22969
+ page in another language, keyed by level, such as `{ warn: 'Warnung:' }`.
22970
+ A line at `info` or `log` hears nothing extra, and nor does a line whose
22971
+ text already starts with its words, such as `Error: Cannot find module`.
22972
+ As an attribute it is that object as JSON. */
22973
+ levelWords?: (HelixLogLine["levelWords"]) | undefined;
22962
22974
  /** What a screen reader hears for the link on a line's number. `{number}` is the number. */
22963
22975
  "line-label"?: (HelixLogLine["lineLabel"]) | undefined;
22964
22976
  /** What a screen reader hears for the link on a line's number. `{number}` is the number. */
22965
22977
  lineLabel?: (HelixLogLine["lineLabel"]) | undefined;
22978
+ /** What a screen reader hears after a line written more than once in a row.
22979
+ `{count}` is how many times, in the locale. */
22980
+ "times-label"?: (HelixLogLine["timesLabel"]) | undefined;
22981
+ /** What a screen reader hears after a line written more than once in a row.
22982
+ `{count}` is how many times, in the locale. */
22983
+ timesLabel?: (HelixLogLine["timesLabel"]) | undefined;
22966
22984
  };
22967
22985
 
22968
22986
  export type HelixLogLineSolidJsProps = {
@@ -22970,10 +22988,28 @@ export type HelixLogLineSolidJsProps = {
22970
22988
  "prop:at"?: (HelixLogLine["at"]) | undefined;
22971
22989
  /** How much the line matters. Absent is `info`. */
22972
22990
  "prop:level"?: (HelixLogLine["level"]) | undefined;
22991
+ /** What a screen reader hears before the text of a line at each level, for a
22992
+ page in another language, keyed by level, such as `{ warn: 'Warnung:' }`.
22993
+ A line at `info` or `log` hears nothing extra, and nor does a line whose
22994
+ text already starts with its words, such as `Error: Cannot find module`.
22995
+ As an attribute it is that object as JSON. */
22996
+ "attr:level-words"?: (HelixLogLine["levelWords"]) | undefined;
22997
+ /** What a screen reader hears before the text of a line at each level, for a
22998
+ page in another language, keyed by level, such as `{ warn: 'Warnung:' }`.
22999
+ A line at `info` or `log` hears nothing extra, and nor does a line whose
23000
+ text already starts with its words, such as `Error: Cannot find module`.
23001
+ As an attribute it is that object as JSON. */
23002
+ "prop:levelWords"?: (HelixLogLine["levelWords"]) | undefined;
22973
23003
  /** What a screen reader hears for the link on a line's number. `{number}` is the number. */
22974
23004
  "attr:line-label"?: (HelixLogLine["lineLabel"]) | undefined;
22975
23005
  /** What a screen reader hears for the link on a line's number. `{number}` is the number. */
22976
23006
  "prop:lineLabel"?: (HelixLogLine["lineLabel"]) | undefined;
23007
+ /** What a screen reader hears after a line written more than once in a row.
23008
+ `{count}` is how many times, in the locale. */
23009
+ "attr:times-label"?: (HelixLogLine["timesLabel"]) | undefined;
23010
+ /** What a screen reader hears after a line written more than once in a row.
23011
+ `{count}` is how many times, in the locale. */
23012
+ "prop:timesLabel"?: (HelixLogLine["timesLabel"]) | undefined;
22977
23013
 
22978
23014
  /** Set the innerHTML of the element */
22979
23015
  innerHTML?: (string) | undefined;
@@ -23025,6 +23061,11 @@ say that without the component knowing what a row looks like. */
23025
23061
  "loading-text"?: (HelixLog["loadingText"]) | undefined;
23026
23062
  /** The text shown and announced while the rows load. */
23027
23063
  loadingText?: (HelixLog["loadingText"]) | undefined;
23064
+ /** Folds a line written again straight after itself into it, with a count,
23065
+ as a browser's console does, so a loop writing one warning a thousand
23066
+ times is one line. For lines written or given as data, read as they
23067
+ arrive; numbers, `line-href` and the selection count a folded line once. */
23068
+ collapse?: (HelixLog["collapse"]) | undefined;
23028
23069
  /** Whether the log opens following its newest line, when `pinned` is not set.
23029
23070
  `default-pinned="false"` opens it where it starts. */
23030
23071
  "default-pinned"?: (HelixLog["defaultPinned"]) | undefined;
@@ -23067,6 +23108,11 @@ the step's heading and `{status}` is `done` or `failed`. */
23067
23108
  groupLabel?: (HelixLog["groupLabel"]) | undefined;
23068
23109
  /** The log's name, read by screen readers. */
23069
23110
  label?: (HelixLog["label"]) | undefined;
23111
+ /** The quietest level shown: `info` hides `debug` and `log` lines, `warn`
23112
+ shows warnings and errors, and `error` errors only. Unset shows every line.
23113
+ Lines it hides are kept, so lowering it shows them again, and a step shows
23114
+ while it holds a line that shows. */
23115
+ level?: (HelixLog["level"]) | undefined;
23070
23116
  /** The most lines kept, or 0 to keep them all. Past it the oldest lines are
23071
23117
  let go, and the line above the log says how many. */
23072
23118
  limit?: (HelixLog["limit"]) | undefined;
@@ -23190,6 +23236,11 @@ say that without the component knowing what a row looks like. */
23190
23236
  "attr:loading-text"?: (HelixLog["loadingText"]) | undefined;
23191
23237
  /** The text shown and announced while the rows load. */
23192
23238
  "prop:loadingText"?: (HelixLog["loadingText"]) | undefined;
23239
+ /** Folds a line written again straight after itself into it, with a count,
23240
+ as a browser's console does, so a loop writing one warning a thousand
23241
+ times is one line. For lines written or given as data, read as they
23242
+ arrive; numbers, `line-href` and the selection count a folded line once. */
23243
+ "prop:collapse"?: (HelixLog["collapse"]) | undefined;
23193
23244
  /** Whether the log opens following its newest line, when `pinned` is not set.
23194
23245
  `default-pinned="false"` opens it where it starts. */
23195
23246
  "bool:default-pinned"?: (HelixLog["defaultPinned"]) | undefined;
@@ -23232,6 +23283,11 @@ the step's heading and `{status}` is `done` or `failed`. */
23232
23283
  "prop:groupLabel"?: (HelixLog["groupLabel"]) | undefined;
23233
23284
  /** The log's name, read by screen readers. */
23234
23285
  "prop:label"?: (HelixLog["label"]) | undefined;
23286
+ /** The quietest level shown: `info` hides `debug` and `log` lines, `warn`
23287
+ shows warnings and errors, and `error` errors only. Unset shows every line.
23288
+ Lines it hides are kept, so lowering it shows them again, and a step shows
23289
+ while it holds a line that shows. */
23290
+ "prop:level"?: (HelixLog["level"]) | undefined;
23235
23291
  /** The most lines kept, or 0 to keep them all. Past it the oldest lines are
23236
23292
  let go, and the line above the log says how many. */
23237
23293
  "prop:limit"?: (HelixLog["limit"]) | undefined;
@@ -30764,6 +30820,137 @@ form would submit it. */
30764
30820
  textContent?: (string | number) | undefined;
30765
30821
  };
30766
30822
 
30823
+ /** `HelixSandboxConsole` component event */
30824
+ export type HelixSandboxConsoleElementEvent<E = Event> = TypedEvent<
30825
+ HelixSandboxConsole,
30826
+ E
30827
+ >;
30828
+ /** `helix-before-change` event type */
30829
+ export type HelixSandboxConsoleHelixBeforeChangeElementEvent =
30830
+ HelixSandboxConsoleElementEvent<HelixBeforeChangeEvent>;
30831
+
30832
+ export type HelixSandboxConsoleProps = {
30833
+ /** The clear button's text, under `controls`. */
30834
+ "clear-label"?: (HelixSandboxConsole["clearLabel"]) | undefined;
30835
+ /** The clear button's text, under `controls`. */
30836
+ clearLabel?: (HelixSandboxConsole["clearLabel"]) | undefined;
30837
+ /** Shows a level filter and a clear button above the log.
30838
+
30839
+ Off by default, because a sandbox that puts the console in a panel often
30840
+ has a toolbar of its own for them. */
30841
+ controls?: (HelixSandboxConsole["controls"]) | undefined;
30842
+ /** Text shown before anything has been written, and while the level filter
30843
+ hides every line. */
30844
+ "empty-label"?: (HelixSandboxConsole["emptyLabel"]) | undefined;
30845
+ /** Text shown before anything has been written, and while the level filter
30846
+ hides every line. */
30847
+ emptyLabel?: (HelixSandboxConsole["emptyLabel"]) | undefined;
30848
+ /** The log's name, read by screen readers. */
30849
+ label?: (HelixSandboxConsole["label"]) | undefined;
30850
+ /** The quietest level shown: `info` hides plain logs, `warn` shows warnings
30851
+ and errors, and `error` shows errors only. Absent shows every line.
30852
+
30853
+ Lines it hides are kept, so lowering it shows them again. The filter under
30854
+ `controls` sets it. */
30855
+ level?: (HelixSandboxConsole["level"]) | undefined;
30856
+ /** The level filter's name, read by screen readers, under `controls`. */
30857
+ "level-label"?: (HelixSandboxConsole["levelLabel"]) | undefined;
30858
+ /** The level filter's name, read by screen readers, under `controls`. */
30859
+ levelLabel?: (HelixSandboxConsole["levelLabel"]) | undefined;
30860
+ /** What each choice of the level filter reads, for a page in another
30861
+ language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
30862
+ its English words. As an attribute it is that object as JSON, and JSON
30863
+ that does not parse is no words. */
30864
+ "level-words"?: (HelixSandboxConsole["levelWords"]) | undefined;
30865
+ /** What each choice of the level filter reads, for a page in another
30866
+ language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
30867
+ its English words. As an attribute it is that object as JSON, and JSON
30868
+ that does not parse is no words. */
30869
+ levelWords?: (HelixSandboxConsole["levelWords"]) | undefined;
30870
+ /** What a screen reader hears before a new line at each level, keyed by
30871
+ level, such as `{ warn: 'Warnung:' }`. A plain `log` hears nothing before
30872
+ its text, and nor does a line whose text already starts with its words,
30873
+ such as `Error: Boom` from `console.error(error)`. As an attribute it is
30874
+ that object as JSON. */
30875
+ "spoken-words"?: (HelixSandboxConsole["spokenWords"]) | undefined;
30876
+ /** What a screen reader hears before a new line at each level, keyed by
30877
+ level, such as `{ warn: 'Warnung:' }`. A plain `log` hears nothing before
30878
+ its text, and nor does a line whose text already starts with its words,
30879
+ such as `Error: Boom` from `console.error(error)`. As an attribute it is
30880
+ that object as JSON. */
30881
+ spokenWords?: (HelixSandboxConsole["spokenWords"]) | undefined;
30882
+
30883
+ /** Fired after the reader chose another level in the filter. `level` holds it. */
30884
+ onchange?: ((e: HelixSandboxConsoleElementEvent) => void) | undefined;
30885
+ /** Fired before the level filter changes, with the level chosen, `log` for every level. Cancelable: cancel it to keep the current level. */
30886
+ "onhelix-before-change"?: ((
30887
+ e: HelixSandboxConsoleHelixBeforeChangeElementEvent,
30888
+ ) => void) | undefined;
30889
+ };
30890
+
30891
+ export type HelixSandboxConsoleSolidJsProps = {
30892
+ /** The clear button's text, under `controls`. */
30893
+ "attr:clear-label"?: (HelixSandboxConsole["clearLabel"]) | undefined;
30894
+ /** The clear button's text, under `controls`. */
30895
+ "prop:clearLabel"?: (HelixSandboxConsole["clearLabel"]) | undefined;
30896
+ /** Shows a level filter and a clear button above the log.
30897
+
30898
+ Off by default, because a sandbox that puts the console in a panel often
30899
+ has a toolbar of its own for them. */
30900
+ "prop:controls"?: (HelixSandboxConsole["controls"]) | undefined;
30901
+ /** Text shown before anything has been written, and while the level filter
30902
+ hides every line. */
30903
+ "attr:empty-label"?: (HelixSandboxConsole["emptyLabel"]) | undefined;
30904
+ /** Text shown before anything has been written, and while the level filter
30905
+ hides every line. */
30906
+ "prop:emptyLabel"?: (HelixSandboxConsole["emptyLabel"]) | undefined;
30907
+ /** The log's name, read by screen readers. */
30908
+ "prop:label"?: (HelixSandboxConsole["label"]) | undefined;
30909
+ /** The quietest level shown: `info` hides plain logs, `warn` shows warnings
30910
+ and errors, and `error` shows errors only. Absent shows every line.
30911
+
30912
+ Lines it hides are kept, so lowering it shows them again. The filter under
30913
+ `controls` sets it. */
30914
+ "prop:level"?: (HelixSandboxConsole["level"]) | undefined;
30915
+ /** The level filter's name, read by screen readers, under `controls`. */
30916
+ "attr:level-label"?: (HelixSandboxConsole["levelLabel"]) | undefined;
30917
+ /** The level filter's name, read by screen readers, under `controls`. */
30918
+ "prop:levelLabel"?: (HelixSandboxConsole["levelLabel"]) | undefined;
30919
+ /** What each choice of the level filter reads, for a page in another
30920
+ language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
30921
+ its English words. As an attribute it is that object as JSON, and JSON
30922
+ that does not parse is no words. */
30923
+ "attr:level-words"?: (HelixSandboxConsole["levelWords"]) | undefined;
30924
+ /** What each choice of the level filter reads, for a page in another
30925
+ language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
30926
+ its English words. As an attribute it is that object as JSON, and JSON
30927
+ that does not parse is no words. */
30928
+ "prop:levelWords"?: (HelixSandboxConsole["levelWords"]) | undefined;
30929
+ /** What a screen reader hears before a new line at each level, keyed by
30930
+ level, such as `{ warn: 'Warnung:' }`. A plain `log` hears nothing before
30931
+ its text, and nor does a line whose text already starts with its words,
30932
+ such as `Error: Boom` from `console.error(error)`. As an attribute it is
30933
+ that object as JSON. */
30934
+ "attr:spoken-words"?: (HelixSandboxConsole["spokenWords"]) | undefined;
30935
+ /** What a screen reader hears before a new line at each level, keyed by
30936
+ level, such as `{ warn: 'Warnung:' }`. A plain `log` hears nothing before
30937
+ its text, and nor does a line whose text already starts with its words,
30938
+ such as `Error: Boom` from `console.error(error)`. As an attribute it is
30939
+ that object as JSON. */
30940
+ "prop:spokenWords"?: (HelixSandboxConsole["spokenWords"]) | undefined;
30941
+ /** Fired after the reader chose another level in the filter. `level` holds it. */
30942
+ "on:change"?: ((e: HelixSandboxConsoleElementEvent) => void) | undefined;
30943
+ /** Fired before the level filter changes, with the level chosen, `log` for every level. Cancelable: cancel it to keep the current level. */
30944
+ "on:helix-before-change"?: ((
30945
+ e: HelixSandboxConsoleHelixBeforeChangeElementEvent,
30946
+ ) => void) | undefined;
30947
+
30948
+ /** Set the innerHTML of the element */
30949
+ innerHTML?: (string) | undefined;
30950
+ /** Set the textContent of the element */
30951
+ textContent?: (string | number) | undefined;
30952
+ };
30953
+
30767
30954
  /** `HelixSandboxPreview` component event */
30768
30955
  export type HelixSandboxPreviewElementEvent<E = Event> = TypedEvent<
30769
30956
  HelixSandboxPreview,
@@ -31599,125 +31786,6 @@ the column, written as an editor writes them, without grouping. */
31599
31786
  textContent?: (string | number) | undefined;
31600
31787
  };
31601
31788
 
31602
- /** `HelixSandboxTerminal` component event */
31603
- export type HelixSandboxTerminalElementEvent<E = Event> = TypedEvent<
31604
- HelixSandboxTerminal,
31605
- E
31606
- >;
31607
- /** `helix-before-change` event type */
31608
- export type HelixSandboxTerminalHelixBeforeChangeElementEvent =
31609
- HelixSandboxTerminalElementEvent<HelixBeforeChangeEvent>;
31610
-
31611
- export type HelixSandboxTerminalProps = {
31612
- /** The clear button's text, under `controls`. */
31613
- "clear-label"?: (HelixSandboxTerminal["clearLabel"]) | undefined;
31614
- /** The clear button's text, under `controls`. */
31615
- clearLabel?: (HelixSandboxTerminal["clearLabel"]) | undefined;
31616
- /** Shows a clear button and a level filter above the log.
31617
-
31618
- Off by default, because a sandbox that puts the terminal in a panel often
31619
- has a toolbar of its own for them. */
31620
- controls?: (HelixSandboxTerminal["controls"]) | undefined;
31621
- /** Text shown before anything has been written. */
31622
- "empty-label"?: (HelixSandboxTerminal["emptyLabel"]) | undefined;
31623
- /** Text shown before anything has been written. */
31624
- emptyLabel?: (HelixSandboxTerminal["emptyLabel"]) | undefined;
31625
- /** The log's name, read by screen readers. */
31626
- label?: (HelixSandboxTerminal["label"]) | undefined;
31627
- /** The quietest level shown: `info` hides plain logs, `warn` shows warnings
31628
- and errors, and `error` shows errors only. Absent shows every line.
31629
-
31630
- Lines it hides are kept, so lowering it shows them again. The filter under
31631
- `controls` sets it. */
31632
- level?: (HelixSandboxTerminal["level"]) | undefined;
31633
- /** The level filter's name, read by screen readers, under `controls`. */
31634
- "level-label"?: (HelixSandboxTerminal["levelLabel"]) | undefined;
31635
- /** The level filter's name, read by screen readers, under `controls`. */
31636
- levelLabel?: (HelixSandboxTerminal["levelLabel"]) | undefined;
31637
- /** What each choice of the level filter reads, for a page in another
31638
- language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
31639
- its English words. As an attribute it is that object as JSON, and JSON
31640
- that does not parse is no words. */
31641
- "level-words"?: (HelixSandboxTerminal["levelWords"]) | undefined;
31642
- /** What each choice of the level filter reads, for a page in another
31643
- language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
31644
- its English words. As an attribute it is that object as JSON, and JSON
31645
- that does not parse is no words. */
31646
- levelWords?: (HelixSandboxTerminal["levelWords"]) | undefined;
31647
- /** What a screen reader is told a repeated line's count is. `{count}` is how
31648
- many times it was written, two or more, in the locale, and a language
31649
- writes the forms it has: `{count, plural, few {# razy} other {# razy}}`. */
31650
- "times-label"?: (HelixSandboxTerminal["timesLabel"]) | undefined;
31651
- /** What a screen reader is told a repeated line's count is. `{count}` is how
31652
- many times it was written, two or more, in the locale, and a language
31653
- writes the forms it has: `{count, plural, few {# razy} other {# razy}}`. */
31654
- timesLabel?: (HelixSandboxTerminal["timesLabel"]) | undefined;
31655
-
31656
- /** Fired after the reader chose another level in the filter. `level` holds it. */
31657
- onchange?: ((e: HelixSandboxTerminalElementEvent) => void) | undefined;
31658
- /** Fired before the level filter changes, with the level chosen, `log` for every level. Cancelable: cancel it to keep the current level. */
31659
- "onhelix-before-change"?: ((
31660
- e: HelixSandboxTerminalHelixBeforeChangeElementEvent,
31661
- ) => void) | undefined;
31662
- };
31663
-
31664
- export type HelixSandboxTerminalSolidJsProps = {
31665
- /** The clear button's text, under `controls`. */
31666
- "attr:clear-label"?: (HelixSandboxTerminal["clearLabel"]) | undefined;
31667
- /** The clear button's text, under `controls`. */
31668
- "prop:clearLabel"?: (HelixSandboxTerminal["clearLabel"]) | undefined;
31669
- /** Shows a clear button and a level filter above the log.
31670
-
31671
- Off by default, because a sandbox that puts the terminal in a panel often
31672
- has a toolbar of its own for them. */
31673
- "prop:controls"?: (HelixSandboxTerminal["controls"]) | undefined;
31674
- /** Text shown before anything has been written. */
31675
- "attr:empty-label"?: (HelixSandboxTerminal["emptyLabel"]) | undefined;
31676
- /** Text shown before anything has been written. */
31677
- "prop:emptyLabel"?: (HelixSandboxTerminal["emptyLabel"]) | undefined;
31678
- /** The log's name, read by screen readers. */
31679
- "prop:label"?: (HelixSandboxTerminal["label"]) | undefined;
31680
- /** The quietest level shown: `info` hides plain logs, `warn` shows warnings
31681
- and errors, and `error` shows errors only. Absent shows every line.
31682
-
31683
- Lines it hides are kept, so lowering it shows them again. The filter under
31684
- `controls` sets it. */
31685
- "prop:level"?: (HelixSandboxTerminal["level"]) | undefined;
31686
- /** The level filter's name, read by screen readers, under `controls`. */
31687
- "attr:level-label"?: (HelixSandboxTerminal["levelLabel"]) | undefined;
31688
- /** The level filter's name, read by screen readers, under `controls`. */
31689
- "prop:levelLabel"?: (HelixSandboxTerminal["levelLabel"]) | undefined;
31690
- /** What each choice of the level filter reads, for a page in another
31691
- language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
31692
- its English words. As an attribute it is that object as JSON, and JSON
31693
- that does not parse is no words. */
31694
- "attr:level-words"?: (HelixSandboxTerminal["levelWords"]) | undefined;
31695
- /** What each choice of the level filter reads, for a page in another
31696
- language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
31697
- its English words. As an attribute it is that object as JSON, and JSON
31698
- that does not parse is no words. */
31699
- "prop:levelWords"?: (HelixSandboxTerminal["levelWords"]) | undefined;
31700
- /** What a screen reader is told a repeated line's count is. `{count}` is how
31701
- many times it was written, two or more, in the locale, and a language
31702
- writes the forms it has: `{count, plural, few {# razy} other {# razy}}`. */
31703
- "attr:times-label"?: (HelixSandboxTerminal["timesLabel"]) | undefined;
31704
- /** What a screen reader is told a repeated line's count is. `{count}` is how
31705
- many times it was written, two or more, in the locale, and a language
31706
- writes the forms it has: `{count, plural, few {# razy} other {# razy}}`. */
31707
- "prop:timesLabel"?: (HelixSandboxTerminal["timesLabel"]) | undefined;
31708
- /** Fired after the reader chose another level in the filter. `level` holds it. */
31709
- "on:change"?: ((e: HelixSandboxTerminalElementEvent) => void) | undefined;
31710
- /** Fired before the level filter changes, with the level chosen, `log` for every level. Cancelable: cancel it to keep the current level. */
31711
- "on:helix-before-change"?: ((
31712
- e: HelixSandboxTerminalHelixBeforeChangeElementEvent,
31713
- ) => void) | undefined;
31714
-
31715
- /** Set the innerHTML of the element */
31716
- innerHTML?: (string) | undefined;
31717
- /** Set the textContent of the element */
31718
- textContent?: (string | number) | undefined;
31719
- };
31720
-
31721
31789
  export type HelixSandboxToolbarProps = {};
31722
31790
 
31723
31791
  export type HelixSandboxToolbarSolidJsProps = {
@@ -39329,10 +39397,24 @@ exit code, written as the process gave it, and code `0` is a clean exit. */
39329
39397
  "find-controls-label"?: (HelixTerminal["findControlsLabel"]) | undefined;
39330
39398
  /** The name of the find bar's row of buttons, read by screen readers. */
39331
39399
  findControlsLabel?: (HelixTerminal["findControlsLabel"]) | undefined;
39400
+ /** What the find bar says when its regular expression cannot be read. */
39401
+ "find-invalid-label"?: (HelixTerminal["findInvalidLabel"]) | undefined;
39402
+ /** What the find bar says when its regular expression cannot be read. */
39403
+ findInvalidLabel?: (HelixTerminal["findInvalidLabel"]) | undefined;
39332
39404
  /** The find button's label, and the find field's name and placeholder. */
39333
39405
  "find-label"?: (HelixTerminal["findLabel"]) | undefined;
39334
39406
  /** The find button's label, and the find field's name and placeholder. */
39335
39407
  findLabel?: (HelixTerminal["findLabel"]) | undefined;
39408
+ /** Whether the find bar matches case, so "Error" does not find "error". The
39409
+ reader turns it on and off from the bar. */
39410
+ "find-match-case"?: (HelixTerminal["findMatchCase"]) | undefined;
39411
+ /** Whether the find bar matches case, so "Error" does not find "error". The
39412
+ reader turns it on and off from the bar. */
39413
+ findMatchCase?: (HelixTerminal["findMatchCase"]) | undefined;
39414
+ /** The match case button's label. */
39415
+ "find-match-case-label"?: (HelixTerminal["findMatchCaseLabel"]) | undefined;
39416
+ /** The match case button's label. */
39417
+ findMatchCaseLabel?: (HelixTerminal["findMatchCaseLabel"]) | undefined;
39336
39418
  /** The next match button's label. */
39337
39419
  "find-next-label"?: (HelixTerminal["findNextLabel"]) | undefined;
39338
39420
  /** The next match button's label. */
@@ -39341,6 +39423,24 @@ exit code, written as the process gave it, and code `0` is a clean exit. */
39341
39423
  "find-previous-label"?: (HelixTerminal["findPreviousLabel"]) | undefined;
39342
39424
  /** The previous match button's label. */
39343
39425
  findPreviousLabel?: (HelixTerminal["findPreviousLabel"]) | undefined;
39426
+ /** Whether the find bar reads what the reader types as a regular expression,
39427
+ in JavaScript's syntax. The reader turns it on and off from the bar. */
39428
+ "find-regex"?: (HelixTerminal["findRegex"]) | undefined;
39429
+ /** Whether the find bar reads what the reader types as a regular expression,
39430
+ in JavaScript's syntax. The reader turns it on and off from the bar. */
39431
+ findRegex?: (HelixTerminal["findRegex"]) | undefined;
39432
+ /** The regular expression button's label. */
39433
+ "find-regex-label"?: (HelixTerminal["findRegexLabel"]) | undefined;
39434
+ /** The regular expression button's label. */
39435
+ findRegexLabel?: (HelixTerminal["findRegexLabel"]) | undefined;
39436
+ /** Whether the find bar matches whole words only. The reader turns it on and off from the bar. */
39437
+ "find-whole-word"?: (HelixTerminal["findWholeWord"]) | undefined;
39438
+ /** Whether the find bar matches whole words only. The reader turns it on and off from the bar. */
39439
+ findWholeWord?: (HelixTerminal["findWholeWord"]) | undefined;
39440
+ /** The whole word button's label. */
39441
+ "find-whole-word-label"?: (HelixTerminal["findWholeWordLabel"]) | undefined;
39442
+ /** The whole word button's label. */
39443
+ findWholeWordLabel?: (HelixTerminal["findWholeWordLabel"]) | undefined;
39344
39444
  /** The fullscreen button's label. */
39345
39445
  "fullscreen-label"?: (HelixTerminal["fullscreenLabel"]) | undefined;
39346
39446
  /** The fullscreen button's label. */
@@ -39477,10 +39577,24 @@ exit code, written as the process gave it, and code `0` is a clean exit. */
39477
39577
  "attr:find-controls-label"?: (HelixTerminal["findControlsLabel"]) | undefined;
39478
39578
  /** The name of the find bar's row of buttons, read by screen readers. */
39479
39579
  "prop:findControlsLabel"?: (HelixTerminal["findControlsLabel"]) | undefined;
39580
+ /** What the find bar says when its regular expression cannot be read. */
39581
+ "attr:find-invalid-label"?: (HelixTerminal["findInvalidLabel"]) | undefined;
39582
+ /** What the find bar says when its regular expression cannot be read. */
39583
+ "prop:findInvalidLabel"?: (HelixTerminal["findInvalidLabel"]) | undefined;
39480
39584
  /** The find button's label, and the find field's name and placeholder. */
39481
39585
  "attr:find-label"?: (HelixTerminal["findLabel"]) | undefined;
39482
39586
  /** The find button's label, and the find field's name and placeholder. */
39483
39587
  "prop:findLabel"?: (HelixTerminal["findLabel"]) | undefined;
39588
+ /** Whether the find bar matches case, so "Error" does not find "error". The
39589
+ reader turns it on and off from the bar. */
39590
+ "bool:find-match-case"?: (HelixTerminal["findMatchCase"]) | undefined;
39591
+ /** Whether the find bar matches case, so "Error" does not find "error". The
39592
+ reader turns it on and off from the bar. */
39593
+ "prop:findMatchCase"?: (HelixTerminal["findMatchCase"]) | undefined;
39594
+ /** The match case button's label. */
39595
+ "attr:find-match-case-label"?: (HelixTerminal["findMatchCaseLabel"]) | undefined;
39596
+ /** The match case button's label. */
39597
+ "prop:findMatchCaseLabel"?: (HelixTerminal["findMatchCaseLabel"]) | undefined;
39484
39598
  /** The next match button's label. */
39485
39599
  "attr:find-next-label"?: (HelixTerminal["findNextLabel"]) | undefined;
39486
39600
  /** The next match button's label. */
@@ -39489,6 +39603,24 @@ exit code, written as the process gave it, and code `0` is a clean exit. */
39489
39603
  "attr:find-previous-label"?: (HelixTerminal["findPreviousLabel"]) | undefined;
39490
39604
  /** The previous match button's label. */
39491
39605
  "prop:findPreviousLabel"?: (HelixTerminal["findPreviousLabel"]) | undefined;
39606
+ /** Whether the find bar reads what the reader types as a regular expression,
39607
+ in JavaScript's syntax. The reader turns it on and off from the bar. */
39608
+ "bool:find-regex"?: (HelixTerminal["findRegex"]) | undefined;
39609
+ /** Whether the find bar reads what the reader types as a regular expression,
39610
+ in JavaScript's syntax. The reader turns it on and off from the bar. */
39611
+ "prop:findRegex"?: (HelixTerminal["findRegex"]) | undefined;
39612
+ /** The regular expression button's label. */
39613
+ "attr:find-regex-label"?: (HelixTerminal["findRegexLabel"]) | undefined;
39614
+ /** The regular expression button's label. */
39615
+ "prop:findRegexLabel"?: (HelixTerminal["findRegexLabel"]) | undefined;
39616
+ /** Whether the find bar matches whole words only. The reader turns it on and off from the bar. */
39617
+ "bool:find-whole-word"?: (HelixTerminal["findWholeWord"]) | undefined;
39618
+ /** Whether the find bar matches whole words only. The reader turns it on and off from the bar. */
39619
+ "prop:findWholeWord"?: (HelixTerminal["findWholeWord"]) | undefined;
39620
+ /** The whole word button's label. */
39621
+ "attr:find-whole-word-label"?: (HelixTerminal["findWholeWordLabel"]) | undefined;
39622
+ /** The whole word button's label. */
39623
+ "prop:findWholeWordLabel"?: (HelixTerminal["findWholeWordLabel"]) | undefined;
39492
39624
  /** The fullscreen button's label. */
39493
39625
  "attr:fullscreen-label"?: (HelixTerminal["fullscreenLabel"]) | undefined;
39494
39626
  /** The fullscreen button's label. */
@@ -61127,7 +61259,14 @@ export type CustomElements<F extends Framework = "other"> = {
61127
61259
  *
61128
61260
  * - `at`: When the line was written: milliseconds since the epoch, or anything `Date` parses.
61129
61261
  * - `level`: How much the line matters. Absent is `info`.
61262
+ * - `level-words`/`levelWords`: What a screen reader hears before the text of a line at each level, for a
61263
+ * page in another language, keyed by level, such as `{ warn: 'Warnung:' }`.
61264
+ * A line at `info` or `log` hears nothing extra, and nor does a line whose
61265
+ * text already starts with its words, such as `Error: Cannot find module`.
61266
+ * As an attribute it is that object as JSON.
61130
61267
  * - `line-label`/`lineLabel`: What a screen reader hears for the link on a line's number. `{number}` is the number.
61268
+ * - `times-label`/`timesLabel`: What a screen reader hears after a line written more than once in a row.
61269
+ * `{count}` is how many times, in the locale.
61131
61270
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
61132
61271
  *
61133
61272
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -61171,6 +61310,9 @@ export type CustomElements<F extends Framework = "other"> = {
61171
61310
  *
61172
61311
  * Custom selectors for styling elements within the component.
61173
61312
  *
61313
+ * - `count`: How many times a line written again straight after itself was written, where the log's `collapse` folds repeats. Hidden from screen readers, which hear `count-label`.
61314
+ * - `count-label`: What a screen reader hears for the count, such as "3 times". Visually hidden in the styled tier.
61315
+ * - `level`: What a screen reader hears before the text for a line at `debug`, `warn` or `error`, such as "Warning:". Visually hidden in the styled tier.
61174
61316
  * - `line`: The row the number, the time, and the text sit in.
61175
61317
  * - `line-debug`: The row of a line at `debug`.
61176
61318
  * - `line-error`: The row of a line at `error`.
@@ -61193,7 +61335,7 @@ export type CustomElements<F extends Framework = "other"> = {
61193
61335
  *
61194
61336
  * These can be used to apply styling when a component is in a given state.
61195
61337
  *
61196
- * - `filtered`: The log's `query` does not match the line, so it draws nothing.
61338
+ * - `filtered`: The log's `query` does not match the line, or its `level` is quieter than the log shows, so it draws nothing.
61197
61339
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
61198
61340
  */
61199
61341
  "helix-log-line": Partial<
@@ -61236,6 +61378,10 @@ export type CustomElements<F extends Framework = "other"> = {
61236
61378
  * are dimmed rather than removed while a new set arrives, and only CSS can
61237
61379
  * say that without the component knowing what a row looks like.
61238
61380
  * - `loading-text`/`loadingText`: The text shown and announced while the rows load.
61381
+ * - `collapse`: Folds a line written again straight after itself into it, with a count,
61382
+ * as a browser's console does, so a loop writing one warning a thousand
61383
+ * times is one line. For lines written or given as data, read as they
61384
+ * arrive; numbers, `line-href` and the selection count a folded line once.
61239
61385
  * - `default-pinned`/`defaultPinned`: Whether the log opens following its newest line, when `pinned` is not set.
61240
61386
  * `default-pinned="false"` opens it where it starts.
61241
61387
  * - `done`: Whether the run is over, which a screen reader is told once.
@@ -61254,6 +61400,10 @@ export type CustomElements<F extends Framework = "other"> = {
61254
61400
  * - `group-label`/`groupLabel`: What a screen reader hears when a step finishes or fails. `{heading}` is
61255
61401
  * the step's heading and `{status}` is `done` or `failed`.
61256
61402
  * - `label`: The log's name, read by screen readers.
61403
+ * - `level`: The quietest level shown: `info` hides `debug` and `log` lines, `warn`
61404
+ * shows warnings and errors, and `error` errors only. Unset shows every line.
61405
+ * Lines it hides are kept, so lowering it shows them again, and a step shows
61406
+ * while it holds a line that shows.
61257
61407
  * - `limit`: The most lines kept, or 0 to keep them all. Past it the oldest lines are
61258
61408
  * let go, and the line above the log says how many.
61259
61409
  * - `line-href`/`lineHref`: A link for each line number, with `{n}` where the number goes, such as
@@ -61348,6 +61498,10 @@ export type CustomElements<F extends Framework = "other"> = {
61348
61498
  *
61349
61499
  * - `write(chunk: string) => void`: Adds text as it arrives. A line ends at each line break, and the text
61350
61500
  * after the last one is the line still being written.
61501
+ * - `writeLine(line: LogLine) => void`: Adds one line as data, after the lines the log holds: its text, and its
61502
+ * level, time and group where it has them. For lines that arrive one at a
61503
+ * time with a level of their own, such as a console's, where `write` takes
61504
+ * text.
61351
61505
  * - `clear() => void`: Lets every line go, and forgets which groups the reader opened, keeping
61352
61506
  * `groups`, `parse`, and `limit`.
61353
61507
  * - `resume() => void`: Puts the log back at its newest line, and follows it again.
@@ -61411,9 +61565,12 @@ export type CustomElements<F extends Framework = "other"> = {
61411
61565
  * - `group-summary-running`: The button of a step drawn from `groups` that is `running`.
61412
61566
  * - `group-summary-skipped`: The button of a step drawn from `groups` that was `skipped`.
61413
61567
  * - `line`: The row of a line drawn from data.
61568
+ * - `line-count`: How many times a folded line was written, under `collapse`. Hidden from screen readers, which hear `line-count-label`.
61569
+ * - `line-count-label`: What a screen reader hears for a folded line's count, such as "3 times". Visually hidden in the styled tier.
61414
61570
  * - `line-debug`: The row of a line drawn from data at `debug`.
61415
61571
  * - `line-error`: The row of a line drawn from data at `error`.
61416
61572
  * - `line-grouped`: The row of a line drawn from data that belongs to a step.
61573
+ * - `line-level`: What a screen reader hears before the text of a line drawn from data at `debug`, `warn` or `error`. Visually hidden in the styled tier.
61417
61574
  * - `line-marked`: The row of a line drawn from data that `mark-lines` names.
61418
61575
  * - `line-match`: Text in a line drawn from data that matches `query`.
61419
61576
  * - `line-number`: The number of a line drawn from data.
@@ -61442,7 +61599,7 @@ export type CustomElements<F extends Framework = "other"> = {
61442
61599
  *
61443
61600
  * - `done`: The run is over: `done` is set, or `source` ended.
61444
61601
  * - `empty`: The log has no lines.
61445
- * - `filtered`: `query` is set, so only matching lines are shown.
61602
+ * - `filtered`: `query` or `level` is set, so only the lines they keep are shown.
61446
61603
  * - `pinned`: The log follows its newest line.
61447
61604
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
61448
61605
  */
@@ -67325,6 +67482,166 @@ export type CustomElements<F extends Framework = "other"> = {
67325
67482
  HelixRatingProps & BaseProps<HelixRating, F> & BaseEvents<HelixRating>
67326
67483
  >;
67327
67484
 
67485
+ /**
67486
+ * The sandbox receives `helix-console` events from the preview and passes them
67487
+ * to the console. The preview is a separate document, so messages cross
67488
+ * `postMessage` and arrive as text.
67489
+ *
67490
+ * **Drawn by a Log**, which keeps the newest line in view while a reader
67491
+ * stays at the end, holds the last 200 lines, and folds a line written again
67492
+ * straight after itself into one line with a count, so an example with a
67493
+ * render loop does not fill the panel with the same warning. Each line keeps
67494
+ * its console level, and a warning or an error is drawn apart.
67495
+ *
67496
+ * **What a screen reader hears.** Each new line is read as it arrives, its
67497
+ * level first except a plain `log`, so an error does not sound like any other
67498
+ * line. A repeat of the line before it is not read again. A reader moving
67499
+ * through the lines hears a debug, warning or error line's level too.
67500
+ *
67501
+ * **`controls` adds a level filter and a clear button** above the log. Both
67502
+ * are also yours to drive without them: `clear()` empties the console, and
67503
+ * `level` hides the quieter lines.
67504
+ *
67505
+ * ## Attributes & Properties
67506
+ *
67507
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
67508
+ *
67509
+ * - `clear-label`/`clearLabel`: The clear button's text, under `controls`.
67510
+ * - `controls`: Shows a level filter and a clear button above the log.
67511
+ *
67512
+ * Off by default, because a sandbox that puts the console in a panel often
67513
+ * has a toolbar of its own for them.
67514
+ * - `empty-label`/`emptyLabel`: Text shown before anything has been written, and while the level filter
67515
+ * hides every line.
67516
+ * - `label`: The log's name, read by screen readers.
67517
+ * - `level`: The quietest level shown: `info` hides plain logs, `warn` shows warnings
67518
+ * and errors, and `error` shows errors only. Absent shows every line.
67519
+ *
67520
+ * Lines it hides are kept, so lowering it shows them again. The filter under
67521
+ * `controls` sets it.
67522
+ * - `level-label`/`levelLabel`: The level filter's name, read by screen readers, under `controls`.
67523
+ * - `level-words`/`levelWords`: What each choice of the level filter reads, for a page in another
67524
+ * language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
67525
+ * its English words. As an attribute it is that object as JSON, and JSON
67526
+ * that does not parse is no words.
67527
+ * - `spoken-words`/`spokenWords`: What a screen reader hears before a new line at each level, keyed by
67528
+ * level, such as `{ warn: 'Warnung:' }`. A plain `log` hears nothing before
67529
+ * its text, and nor does a line whose text already starts with its words,
67530
+ * such as `Error: Boom` from `console.error(error)`. As an attribute it is
67531
+ * that object as JSON.
67532
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
67533
+ *
67534
+ * **Named `whenSettled` because `settled` is taken four times over**, by
67535
+ * Image, Splitter and both color controls, none of them about transitions. A
67536
+ * base class takes the name every subclass then cannot use.
67537
+ *
67538
+ * **The state it reports cannot be watched, which is why this exists.** A
67539
+ * custom state is deliberately not in the DOM, so there is no
67540
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
67541
+ * instead.
67542
+ *
67543
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
67544
+ * the suppression is still active in. That is the distinction `readyToMove`
67545
+ * in `@fusion.dev/helix-testing` is written around.
67546
+ *
67547
+ * It never resolves where `requestAnimationFrame` never fires, which is a
67548
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
67549
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
67550
+ * browser harness's awaits it alone: a browser always runs the frame, and a
67551
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
67552
+ *
67553
+ * ## Events
67554
+ *
67555
+ * Events that will be emitted by the component.
67556
+ *
67557
+ * - `change`: Fired after the reader chose another level in the filter. `level` holds it.
67558
+ * - `helix-before-change`: Fired before the level filter changes, with the level chosen, `log` for every level. Cancelable: cancel it to keep the current level.
67559
+ *
67560
+ * ## Methods
67561
+ *
67562
+ * Methods that can be called to access component functionality.
67563
+ *
67564
+ * - `write(detail: ConsoleDetail) => void`: Adds a line, which the log folds into the one above where they are the
67565
+ * same, and tells a screen reader, unless it repeats the line before it.
67566
+ *
67567
+ * `write` rather than `append`, which every element already has from
67568
+ * `ParentNode` and which takes nodes. Shadowing it would break
67569
+ * `console.append(node)` for anyone who reasonably expected the DOM method.
67570
+ * - `clear() => void`: Empties the console.
67571
+ *
67572
+ * ## CSS Custom Properties
67573
+ *
67574
+ * CSS variables available for styling the component.
67575
+ *
67576
+ * - `--sandbox-console-size`: Height of the console.
67577
+ *
67578
+ * ## CSS Parts
67579
+ *
67580
+ * Custom selectors for styling elements within the component.
67581
+ *
67582
+ * - `clear`: The button that empties the console, under `controls`.
67583
+ * - `clear-button`: The clear button's inner button.
67584
+ * - `clear-live`: The clear button's live region, which speaks while the button is pending.
67585
+ * - `clear-spinner`: The ring the clear button turns while it is pending.
67586
+ * - `clear-text`: The clear button's words.
67587
+ * - `controls`: The row holding the level filter and the clear button, under `controls`.
67588
+ * - `filter`: The level filter, a native select, under `controls`.
67589
+ * - `live`: Where screen readers hear each new line. Visually hidden.
67590
+ * - `output`: The Log the lines are drawn in.
67591
+ * - `output-after`: The log's `after` part.
67592
+ * - `output-before`: The log's `before` part.
67593
+ * - `output-dropped`: The log's `dropped` part.
67594
+ * - `output-empty`: The log's `empty` part.
67595
+ * - `output-group-content`: The log's `group-content` part.
67596
+ * - `output-group-duration`: The log's `group-duration` part.
67597
+ * - `output-group-heading`: The log's `group-heading` part.
67598
+ * - `output-group-mark`: The log's `group-mark` part.
67599
+ * - `output-group-status`: The log's `group-status` part.
67600
+ * - `output-group-summary`: The log's `group-summary` part.
67601
+ * - `output-group-summary-done`: The log's `group-summary-done` part.
67602
+ * - `output-group-summary-failed`: The log's `group-summary-failed` part.
67603
+ * - `output-group-summary-pending`: The log's `group-summary-pending` part.
67604
+ * - `output-group-summary-running`: The log's `group-summary-running` part.
67605
+ * - `output-group-summary-skipped`: The log's `group-summary-skipped` part.
67606
+ * - `output-line`: The log's `line` part.
67607
+ * - `output-line-count`: The log's `line-count` part.
67608
+ * - `output-line-count-label`: The log's `line-count-label` part.
67609
+ * - `output-line-debug`: The log's `line-debug` part.
67610
+ * - `output-line-error`: The log's `line-error` part.
67611
+ * - `output-line-grouped`: The log's `line-grouped` part.
67612
+ * - `output-line-level`: The log's `line-level` part.
67613
+ * - `output-line-marked`: The log's `line-marked` part.
67614
+ * - `output-line-match`: The log's `line-match` part.
67615
+ * - `output-line-number`: The log's `line-number` part.
67616
+ * - `output-line-run`: The log's `line-run` part.
67617
+ * - `output-line-run-bold`: The log's `line-run-bold` part.
67618
+ * - `output-line-run-dim`: The log's `line-run-dim` part.
67619
+ * - `output-line-run-italic`: The log's `line-run-italic` part.
67620
+ * - `output-line-run-strike`: The log's `line-run-strike` part.
67621
+ * - `output-line-run-underline`: The log's `line-run-underline` part.
67622
+ * - `output-line-selected`: The log's `line-selected` part.
67623
+ * - `output-line-text`: The log's `line-text` part.
67624
+ * - `output-line-time`: The log's `line-time` part.
67625
+ * - `output-line-warn`: The log's `line-warn` part.
67626
+ * - `output-live`: The log's `live` part.
67627
+ * - `output-loading`: The log's `loading` part.
67628
+ * - `output-log`: The log's `log` part.
67629
+ * - `output-resume`: The log's `resume` part.
67630
+ * - `output-resume-button`: The log's `resume-button` part.
67631
+ * - `output-resume-mark`: The log's `resume-mark` part.
67632
+ * - `output-row`: The log's `row` part.
67633
+ * - `output-toolbar`: The log's `toolbar` part.
67634
+ *
67635
+ * ## CSS States
67636
+ *
67637
+ * These can be used to apply styling when a component is in a given state.
67638
+ *
67639
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
67640
+ */
67641
+ "helix-sandbox-console": Partial<
67642
+ HelixSandboxConsoleProps & BaseProps<HelixSandboxConsole, F> & BaseEvents<HelixSandboxConsole>
67643
+ >;
67644
+
67328
67645
  /**
67329
67646
  * A sandboxed `<iframe>` that loads `src`, a document you provide. That
67330
67647
  * document imports what the examples need, listens for a render message, and
@@ -67383,7 +67700,7 @@ export type CustomElements<F extends Framework = "other"> = {
67383
67700
  * sibling shown by `helix-sandbox-preview:state(failed) + .message`.
67384
67701
  *
67385
67702
  * **A failed preview shows the error over the example**, in the `error` part,
67386
- * until the next source is sent. The terminal says it too, so the part is not
67703
+ * until the next source is sent. The console says it too, so the part is not
67387
67704
  * announced, and it is the frame's description while it shows, so a screen
67388
67705
  * reader reads it with the frame. Hide it with `::part(error) { display: none }`
67389
67706
  * where the page draws its own.
@@ -67726,7 +68043,7 @@ export type CustomElements<F extends Framework = "other"> = {
67726
68043
  *
67727
68044
  * Areas where markup can be added to the component.
67728
68045
  *
67729
- * - `panel`: A panel under both panes, usually a terminal.
68046
+ * - `panel`: A panel under both panes, usually a console.
67730
68047
  * - `preview`: The live preview. It comes second unless `lead` is `preview`.
67731
68048
  * - `source`: The editable source pane. It comes first unless `lead` is `preview`.
67732
68049
  * - `status`: A status bar, spanning both panes at the bottom.
@@ -68039,117 +68356,6 @@ export type CustomElements<F extends Framework = "other"> = {
68039
68356
  HelixSandboxStatusBarProps & BaseProps<HelixSandboxStatusBar, F> & BaseEvents<HelixSandboxStatusBar>
68040
68357
  >;
68041
68358
 
68042
- /**
68043
- * The sandbox receives `helix-console` events from the preview and passes them
68044
- * to the terminal. The preview is a separate document, so messages cross
68045
- * `postMessage` and arrive as text.
68046
- *
68047
- * **Repeats collapse.** Consecutive identical lines show as one line with a
68048
- * count, so an example with a render loop does not fill the panel with the same
68049
- * warning. Only consecutive repeats collapse, so the order of messages is kept.
68050
- *
68051
- * The panel has `role="log"`, the role for an append-only stream. Screen
68052
- * readers announce new output without reading the whole panel again. A line's
68053
- * level is read before it, except a plain `log`, so an error does not sound
68054
- * like any other line.
68055
- *
68056
- * **`controls` adds a clear button and a level filter** above the log. Both
68057
- * are also yours to drive without them: `clear()` empties the log, and
68058
- * `level` hides the quieter lines.
68059
- *
68060
- * ## Attributes & Properties
68061
- *
68062
- * Component attributes and properties that can be applied to the element or by using JavaScript.
68063
- *
68064
- * - `clear-label`/`clearLabel`: The clear button's text, under `controls`.
68065
- * - `controls`: Shows a clear button and a level filter above the log.
68066
- *
68067
- * Off by default, because a sandbox that puts the terminal in a panel often
68068
- * has a toolbar of its own for them.
68069
- * - `empty-label`/`emptyLabel`: Text shown before anything has been written.
68070
- * - `label`: The log's name, read by screen readers.
68071
- * - `level`: The quietest level shown: `info` hides plain logs, `warn` shows warnings
68072
- * and errors, and `error` shows errors only. Absent shows every line.
68073
- *
68074
- * Lines it hides are kept, so lowering it shows them again. The filter under
68075
- * `controls` sets it.
68076
- * - `level-label`/`levelLabel`: The level filter's name, read by screen readers, under `controls`.
68077
- * - `level-words`/`levelWords`: What each choice of the level filter reads, for a page in another
68078
- * language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
68079
- * its English words. As an attribute it is that object as JSON, and JSON
68080
- * that does not parse is no words.
68081
- * - `times-label`/`timesLabel`: What a screen reader is told a repeated line's count is. `{count}` is how
68082
- * many times it was written, two or more, in the locale, and a language
68083
- * writes the forms it has: `{count, plural, few {# razy} other {# razy}}`.
68084
- * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
68085
- *
68086
- * **Named `whenSettled` because `settled` is taken four times over**, by
68087
- * Image, Splitter and both color controls, none of them about transitions. A
68088
- * base class takes the name every subclass then cannot use.
68089
- *
68090
- * **The state it reports cannot be watched, which is why this exists.** A
68091
- * custom state is deliberately not in the DOM, so there is no
68092
- * `MutationObserver` equivalent for `ElementInternals.states`. Await this
68093
- * instead.
68094
- *
68095
- * Separate from `updateComplete`, which resolves in the microtask checkpoint
68096
- * the suppression is still active in. That is the distinction `readyToMove`
68097
- * in `@fusion.dev/helix-testing` is written around.
68098
- *
68099
- * It never resolves where `requestAnimationFrame` never fires, which is a
68100
- * server, a hidden tab, and happy-dom. Callers that must not hang there race
68101
- * it against a timeout, as the happy-dom harness's `readyToMove` does. The
68102
- * browser harness's awaits it alone: a browser always runs the frame, and a
68103
- * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
68104
- *
68105
- * ## Events
68106
- *
68107
- * Events that will be emitted by the component.
68108
- *
68109
- * - `change`: Fired after the reader chose another level in the filter. `level` holds it.
68110
- * - `helix-before-change`: Fired before the level filter changes, with the level chosen, `log` for every level. Cancelable: cancel it to keep the current level.
68111
- *
68112
- * ## Methods
68113
- *
68114
- * Methods that can be called to access component functionality.
68115
- *
68116
- * - `write(detail: ConsoleDetail) => void`: Adds a line, collapsing it into the one above when they are identical.
68117
- *
68118
- * `write` rather than `append`, which every element already has from
68119
- * `ParentNode` and which takes nodes. Shadowing it would break
68120
- * `terminal.append(node)` for anyone who reasonably expected the DOM method.
68121
- * - `clear() => void`: Empties the log.
68122
- *
68123
- * ## CSS Custom Properties
68124
- *
68125
- * CSS variables available for styling the component.
68126
- *
68127
- * - `--sandbox-terminal-size`: Height of the scrolling region.
68128
- *
68129
- * ## CSS Parts
68130
- *
68131
- * Custom selectors for styling elements within the component.
68132
- *
68133
- * - `clear`: The button that empties the log, under `controls`.
68134
- * - `controls`: The row holding the clear button and the level filter, under `controls`.
68135
- * - `count`: How many times a repeated line was written.
68136
- * - `empty`: Shown while nothing has been written, or while the level filter hides every line.
68137
- * - `entry`: One line.
68138
- * - `filter`: The level filter, a native select, under `controls`.
68139
- * - `level`: The console level a line was written at.
68140
- * - `log`: The scrolling region.
68141
- * - `message`: The text of a line.
68142
- *
68143
- * ## CSS States
68144
- *
68145
- * These can be used to apply styling when a component is in a given state.
68146
- *
68147
- * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
68148
- */
68149
- "helix-sandbox-terminal": Partial<
68150
- HelixSandboxTerminalProps & BaseProps<HelixSandboxTerminal, F> & BaseEvents<HelixSandboxTerminal>
68151
- >;
68152
-
68153
68359
  /**
68154
68360
  * Spans the source pane and the preview, and holds controls for the whole
68155
68361
  * sandbox. Files go at the start and menus at the end, as in most editors.
@@ -74159,9 +74365,18 @@ export type CustomElements<F extends Framework = "other"> = {
74159
74365
  * - `fallback-label`/`fallbackLabel`: The terminal's name where `label` is empty and the host has no `aria-label`.
74160
74366
  * - `find-close-label`/`findCloseLabel`: The label of the button that closes the find bar.
74161
74367
  * - `find-controls-label`/`findControlsLabel`: The name of the find bar's row of buttons, read by screen readers.
74368
+ * - `find-invalid-label`/`findInvalidLabel`: What the find bar says when its regular expression cannot be read.
74162
74369
  * - `find-label`/`findLabel`: The find button's label, and the find field's name and placeholder.
74370
+ * - `find-match-case`/`findMatchCase`: Whether the find bar matches case, so "Error" does not find "error". The
74371
+ * reader turns it on and off from the bar.
74372
+ * - `find-match-case-label`/`findMatchCaseLabel`: The match case button's label.
74163
74373
  * - `find-next-label`/`findNextLabel`: The next match button's label.
74164
74374
  * - `find-previous-label`/`findPreviousLabel`: The previous match button's label.
74375
+ * - `find-regex`/`findRegex`: Whether the find bar reads what the reader types as a regular expression,
74376
+ * in JavaScript's syntax. The reader turns it on and off from the bar.
74377
+ * - `find-regex-label`/`findRegexLabel`: The regular expression button's label.
74378
+ * - `find-whole-word`/`findWholeWord`: Whether the find bar matches whole words only. The reader turns it on and off from the bar.
74379
+ * - `find-whole-word-label`/`findWholeWordLabel`: The whole word button's label.
74165
74380
  * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
74166
74381
  * - `input-label`/`inputLabel`: The name of the element the reader types into, which the renderer draws.
74167
74382
  * - `label`: The terminal's name, in the header and for screen readers, such as the
@@ -74222,11 +74437,14 @@ export type CustomElements<F extends Framework = "other"> = {
74222
74437
  * - `clear-icon`: Replaces the glyph inside the clear button.
74223
74438
  * - `copy-icon`: Replaces the glyph inside the copy button.
74224
74439
  * - `exit-actions`: Controls of your own beside Restart, shown once the process exits, such as a button that opens the whole log.
74225
- * - `find-actions`: Controls of your own in the find bar, between the count and the buttons that move between matches.
74440
+ * - `find-actions`: Controls of your own in the find bar, between its options and the buttons that move between matches.
74226
74441
  * - `find-close-icon`: Replaces the glyph inside the button that closes the find bar.
74227
74442
  * - `find-icon`: Replaces the glyph inside the find button.
74443
+ * - `find-match-case-icon`: Replaces the glyph inside the match case button.
74228
74444
  * - `find-next-icon`: Replaces the glyph inside the next match button.
74229
74445
  * - `find-previous-icon`: Replaces the glyph inside the previous match button.
74446
+ * - `find-regex-icon`: Replaces the glyph inside the regular expression button.
74447
+ * - `find-whole-word-icon`: Replaces the glyph inside the whole word button.
74230
74448
  * - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
74231
74449
  * - `label`: The terminal's name in the header, such as an icon beside the shell's name. Replaces `label` there.
74232
74450
  * - `restart-icon`: Replaces the glyph inside the Restart button.
@@ -74324,6 +74542,11 @@ export type CustomElements<F extends Framework = "other"> = {
74324
74542
  * - `find-count`: Which match is current and how many there are, such as "3 of 12 matches".
74325
74543
  * - `find-field`: The search field in the find bar.
74326
74544
  * - `find-live`: The find button's live region, which speaks while the button is pending.
74545
+ * - `find-match-case`: The button that matches case in the find bar. Pressed while it does.
74546
+ * - `find-match-case-button`: The match case button's inner button.
74547
+ * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
74548
+ * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
74549
+ * - `find-match-case-text`: The box the match case button's icon sits in.
74327
74550
  * - `find-next`: The button that moves to the next match.
74328
74551
  * - `find-next-button`: The next match button's inner button.
74329
74552
  * - `find-next-live`: The next match button's live region, which speaks while the button is pending.
@@ -74334,8 +74557,18 @@ export type CustomElements<F extends Framework = "other"> = {
74334
74557
  * - `find-previous-live`: The previous match button's live region, which speaks while the button is pending.
74335
74558
  * - `find-previous-spinner`: The ring the previous match button turns while it is pending.
74336
74559
  * - `find-previous-text`: The box the previous match button's icon sits in.
74560
+ * - `find-regex`: The button that reads the find field as a regular expression. Pressed while it does.
74561
+ * - `find-regex-button`: The regular expression button's inner button.
74562
+ * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
74563
+ * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
74564
+ * - `find-regex-text`: The box the regular expression button's icon sits in.
74337
74565
  * - `find-spinner`: The ring the find button turns while it is pending.
74338
74566
  * - `find-text`: The box the find button's icon sits in.
74567
+ * - `find-whole-word`: The button that matches whole words only in the find bar. Pressed while it does.
74568
+ * - `find-whole-word-button`: The whole word button's inner button.
74569
+ * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
74570
+ * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
74571
+ * - `find-whole-word-text`: The box the whole word button's icon sits in.
74339
74572
  * - `fullscreen`: The button that makes the terminal fill the screen. Pressed while it does.
74340
74573
  * - `fullscreen-button`: The fullscreen button's inner button.
74341
74574
  * - `fullscreen-live`: The fullscreen button's live region, which speaks while the button is pending.
@@ -94139,7 +94372,14 @@ export type CustomElementsSolidJs = {
94139
94372
  *
94140
94373
  * - `at`: When the line was written: milliseconds since the epoch, or anything `Date` parses.
94141
94374
  * - `level`: How much the line matters. Absent is `info`.
94375
+ * - `level-words`/`levelWords`: What a screen reader hears before the text of a line at each level, for a
94376
+ * page in another language, keyed by level, such as `{ warn: 'Warnung:' }`.
94377
+ * A line at `info` or `log` hears nothing extra, and nor does a line whose
94378
+ * text already starts with its words, such as `Error: Cannot find module`.
94379
+ * As an attribute it is that object as JSON.
94142
94380
  * - `line-label`/`lineLabel`: What a screen reader hears for the link on a line's number. `{number}` is the number.
94381
+ * - `times-label`/`timesLabel`: What a screen reader hears after a line written more than once in a row.
94382
+ * `{count}` is how many times, in the locale.
94143
94383
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
94144
94384
  *
94145
94385
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -94183,6 +94423,9 @@ export type CustomElementsSolidJs = {
94183
94423
  *
94184
94424
  * Custom selectors for styling elements within the component.
94185
94425
  *
94426
+ * - `count`: How many times a line written again straight after itself was written, where the log's `collapse` folds repeats. Hidden from screen readers, which hear `count-label`.
94427
+ * - `count-label`: What a screen reader hears for the count, such as "3 times". Visually hidden in the styled tier.
94428
+ * - `level`: What a screen reader hears before the text for a line at `debug`, `warn` or `error`, such as "Warning:". Visually hidden in the styled tier.
94186
94429
  * - `line`: The row the number, the time, and the text sit in.
94187
94430
  * - `line-debug`: The row of a line at `debug`.
94188
94431
  * - `line-error`: The row of a line at `error`.
@@ -94205,7 +94448,7 @@ export type CustomElementsSolidJs = {
94205
94448
  *
94206
94449
  * These can be used to apply styling when a component is in a given state.
94207
94450
  *
94208
- * - `filtered`: The log's `query` does not match the line, so it draws nothing.
94451
+ * - `filtered`: The log's `query` does not match the line, or its `level` is quieter than the log shows, so it draws nothing.
94209
94452
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
94210
94453
  */
94211
94454
  "helix-log-line": Partial<
@@ -94251,6 +94494,10 @@ export type CustomElementsSolidJs = {
94251
94494
  * are dimmed rather than removed while a new set arrives, and only CSS can
94252
94495
  * say that without the component knowing what a row looks like.
94253
94496
  * - `loading-text`/`loadingText`: The text shown and announced while the rows load.
94497
+ * - `collapse`: Folds a line written again straight after itself into it, with a count,
94498
+ * as a browser's console does, so a loop writing one warning a thousand
94499
+ * times is one line. For lines written or given as data, read as they
94500
+ * arrive; numbers, `line-href` and the selection count a folded line once.
94254
94501
  * - `default-pinned`/`defaultPinned`: Whether the log opens following its newest line, when `pinned` is not set.
94255
94502
  * `default-pinned="false"` opens it where it starts.
94256
94503
  * - `done`: Whether the run is over, which a screen reader is told once.
@@ -94269,6 +94516,10 @@ export type CustomElementsSolidJs = {
94269
94516
  * - `group-label`/`groupLabel`: What a screen reader hears when a step finishes or fails. `{heading}` is
94270
94517
  * the step's heading and `{status}` is `done` or `failed`.
94271
94518
  * - `label`: The log's name, read by screen readers.
94519
+ * - `level`: The quietest level shown: `info` hides `debug` and `log` lines, `warn`
94520
+ * shows warnings and errors, and `error` errors only. Unset shows every line.
94521
+ * Lines it hides are kept, so lowering it shows them again, and a step shows
94522
+ * while it holds a line that shows.
94272
94523
  * - `limit`: The most lines kept, or 0 to keep them all. Past it the oldest lines are
94273
94524
  * let go, and the line above the log says how many.
94274
94525
  * - `line-href`/`lineHref`: A link for each line number, with `{n}` where the number goes, such as
@@ -94363,6 +94614,10 @@ export type CustomElementsSolidJs = {
94363
94614
  *
94364
94615
  * - `write(chunk: string) => void`: Adds text as it arrives. A line ends at each line break, and the text
94365
94616
  * after the last one is the line still being written.
94617
+ * - `writeLine(line: LogLine) => void`: Adds one line as data, after the lines the log holds: its text, and its
94618
+ * level, time and group where it has them. For lines that arrive one at a
94619
+ * time with a level of their own, such as a console's, where `write` takes
94620
+ * text.
94366
94621
  * - `clear() => void`: Lets every line go, and forgets which groups the reader opened, keeping
94367
94622
  * `groups`, `parse`, and `limit`.
94368
94623
  * - `resume() => void`: Puts the log back at its newest line, and follows it again.
@@ -94426,9 +94681,12 @@ export type CustomElementsSolidJs = {
94426
94681
  * - `group-summary-running`: The button of a step drawn from `groups` that is `running`.
94427
94682
  * - `group-summary-skipped`: The button of a step drawn from `groups` that was `skipped`.
94428
94683
  * - `line`: The row of a line drawn from data.
94684
+ * - `line-count`: How many times a folded line was written, under `collapse`. Hidden from screen readers, which hear `line-count-label`.
94685
+ * - `line-count-label`: What a screen reader hears for a folded line's count, such as "3 times". Visually hidden in the styled tier.
94429
94686
  * - `line-debug`: The row of a line drawn from data at `debug`.
94430
94687
  * - `line-error`: The row of a line drawn from data at `error`.
94431
94688
  * - `line-grouped`: The row of a line drawn from data that belongs to a step.
94689
+ * - `line-level`: What a screen reader hears before the text of a line drawn from data at `debug`, `warn` or `error`. Visually hidden in the styled tier.
94432
94690
  * - `line-marked`: The row of a line drawn from data that `mark-lines` names.
94433
94691
  * - `line-match`: Text in a line drawn from data that matches `query`.
94434
94692
  * - `line-number`: The number of a line drawn from data.
@@ -94457,7 +94715,7 @@ export type CustomElementsSolidJs = {
94457
94715
  *
94458
94716
  * - `done`: The run is over: `done` is set, or `source` ended.
94459
94717
  * - `empty`: The log has no lines.
94460
- * - `filtered`: `query` is set, so only matching lines are shown.
94718
+ * - `filtered`: `query` or `level` is set, so only the lines they keep are shown.
94461
94719
  * - `pinned`: The log follows its newest line.
94462
94720
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
94463
94721
  */
@@ -100462,6 +100720,169 @@ export type CustomElementsSolidJs = {
100462
100720
  BaseEvents<HelixRating>
100463
100721
  >;
100464
100722
 
100723
+ /**
100724
+ * The sandbox receives `helix-console` events from the preview and passes them
100725
+ * to the console. The preview is a separate document, so messages cross
100726
+ * `postMessage` and arrive as text.
100727
+ *
100728
+ * **Drawn by a Log**, which keeps the newest line in view while a reader
100729
+ * stays at the end, holds the last 200 lines, and folds a line written again
100730
+ * straight after itself into one line with a count, so an example with a
100731
+ * render loop does not fill the panel with the same warning. Each line keeps
100732
+ * its console level, and a warning or an error is drawn apart.
100733
+ *
100734
+ * **What a screen reader hears.** Each new line is read as it arrives, its
100735
+ * level first except a plain `log`, so an error does not sound like any other
100736
+ * line. A repeat of the line before it is not read again. A reader moving
100737
+ * through the lines hears a debug, warning or error line's level too.
100738
+ *
100739
+ * **`controls` adds a level filter and a clear button** above the log. Both
100740
+ * are also yours to drive without them: `clear()` empties the console, and
100741
+ * `level` hides the quieter lines.
100742
+ *
100743
+ * ## Attributes & Properties
100744
+ *
100745
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
100746
+ *
100747
+ * - `clear-label`/`clearLabel`: The clear button's text, under `controls`.
100748
+ * - `controls`: Shows a level filter and a clear button above the log.
100749
+ *
100750
+ * Off by default, because a sandbox that puts the console in a panel often
100751
+ * has a toolbar of its own for them.
100752
+ * - `empty-label`/`emptyLabel`: Text shown before anything has been written, and while the level filter
100753
+ * hides every line.
100754
+ * - `label`: The log's name, read by screen readers.
100755
+ * - `level`: The quietest level shown: `info` hides plain logs, `warn` shows warnings
100756
+ * and errors, and `error` shows errors only. Absent shows every line.
100757
+ *
100758
+ * Lines it hides are kept, so lowering it shows them again. The filter under
100759
+ * `controls` sets it.
100760
+ * - `level-label`/`levelLabel`: The level filter's name, read by screen readers, under `controls`.
100761
+ * - `level-words`/`levelWords`: What each choice of the level filter reads, for a page in another
100762
+ * language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
100763
+ * its English words. As an attribute it is that object as JSON, and JSON
100764
+ * that does not parse is no words.
100765
+ * - `spoken-words`/`spokenWords`: What a screen reader hears before a new line at each level, keyed by
100766
+ * level, such as `{ warn: 'Warnung:' }`. A plain `log` hears nothing before
100767
+ * its text, and nor does a line whose text already starts with its words,
100768
+ * such as `Error: Boom` from `console.error(error)`. As an attribute it is
100769
+ * that object as JSON.
100770
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
100771
+ *
100772
+ * **Named `whenSettled` because `settled` is taken four times over**, by
100773
+ * Image, Splitter and both color controls, none of them about transitions. A
100774
+ * base class takes the name every subclass then cannot use.
100775
+ *
100776
+ * **The state it reports cannot be watched, which is why this exists.** A
100777
+ * custom state is deliberately not in the DOM, so there is no
100778
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
100779
+ * instead.
100780
+ *
100781
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
100782
+ * the suppression is still active in. That is the distinction `readyToMove`
100783
+ * in `@fusion.dev/helix-testing` is written around.
100784
+ *
100785
+ * It never resolves where `requestAnimationFrame` never fires, which is a
100786
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
100787
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
100788
+ * browser harness's awaits it alone: a browser always runs the frame, and a
100789
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
100790
+ *
100791
+ * ## Events
100792
+ *
100793
+ * Events that will be emitted by the component.
100794
+ *
100795
+ * - `change`: Fired after the reader chose another level in the filter. `level` holds it.
100796
+ * - `helix-before-change`: Fired before the level filter changes, with the level chosen, `log` for every level. Cancelable: cancel it to keep the current level.
100797
+ *
100798
+ * ## Methods
100799
+ *
100800
+ * Methods that can be called to access component functionality.
100801
+ *
100802
+ * - `write(detail: ConsoleDetail) => void`: Adds a line, which the log folds into the one above where they are the
100803
+ * same, and tells a screen reader, unless it repeats the line before it.
100804
+ *
100805
+ * `write` rather than `append`, which every element already has from
100806
+ * `ParentNode` and which takes nodes. Shadowing it would break
100807
+ * `console.append(node)` for anyone who reasonably expected the DOM method.
100808
+ * - `clear() => void`: Empties the console.
100809
+ *
100810
+ * ## CSS Custom Properties
100811
+ *
100812
+ * CSS variables available for styling the component.
100813
+ *
100814
+ * - `--sandbox-console-size`: Height of the console.
100815
+ *
100816
+ * ## CSS Parts
100817
+ *
100818
+ * Custom selectors for styling elements within the component.
100819
+ *
100820
+ * - `clear`: The button that empties the console, under `controls`.
100821
+ * - `clear-button`: The clear button's inner button.
100822
+ * - `clear-live`: The clear button's live region, which speaks while the button is pending.
100823
+ * - `clear-spinner`: The ring the clear button turns while it is pending.
100824
+ * - `clear-text`: The clear button's words.
100825
+ * - `controls`: The row holding the level filter and the clear button, under `controls`.
100826
+ * - `filter`: The level filter, a native select, under `controls`.
100827
+ * - `live`: Where screen readers hear each new line. Visually hidden.
100828
+ * - `output`: The Log the lines are drawn in.
100829
+ * - `output-after`: The log's `after` part.
100830
+ * - `output-before`: The log's `before` part.
100831
+ * - `output-dropped`: The log's `dropped` part.
100832
+ * - `output-empty`: The log's `empty` part.
100833
+ * - `output-group-content`: The log's `group-content` part.
100834
+ * - `output-group-duration`: The log's `group-duration` part.
100835
+ * - `output-group-heading`: The log's `group-heading` part.
100836
+ * - `output-group-mark`: The log's `group-mark` part.
100837
+ * - `output-group-status`: The log's `group-status` part.
100838
+ * - `output-group-summary`: The log's `group-summary` part.
100839
+ * - `output-group-summary-done`: The log's `group-summary-done` part.
100840
+ * - `output-group-summary-failed`: The log's `group-summary-failed` part.
100841
+ * - `output-group-summary-pending`: The log's `group-summary-pending` part.
100842
+ * - `output-group-summary-running`: The log's `group-summary-running` part.
100843
+ * - `output-group-summary-skipped`: The log's `group-summary-skipped` part.
100844
+ * - `output-line`: The log's `line` part.
100845
+ * - `output-line-count`: The log's `line-count` part.
100846
+ * - `output-line-count-label`: The log's `line-count-label` part.
100847
+ * - `output-line-debug`: The log's `line-debug` part.
100848
+ * - `output-line-error`: The log's `line-error` part.
100849
+ * - `output-line-grouped`: The log's `line-grouped` part.
100850
+ * - `output-line-level`: The log's `line-level` part.
100851
+ * - `output-line-marked`: The log's `line-marked` part.
100852
+ * - `output-line-match`: The log's `line-match` part.
100853
+ * - `output-line-number`: The log's `line-number` part.
100854
+ * - `output-line-run`: The log's `line-run` part.
100855
+ * - `output-line-run-bold`: The log's `line-run-bold` part.
100856
+ * - `output-line-run-dim`: The log's `line-run-dim` part.
100857
+ * - `output-line-run-italic`: The log's `line-run-italic` part.
100858
+ * - `output-line-run-strike`: The log's `line-run-strike` part.
100859
+ * - `output-line-run-underline`: The log's `line-run-underline` part.
100860
+ * - `output-line-selected`: The log's `line-selected` part.
100861
+ * - `output-line-text`: The log's `line-text` part.
100862
+ * - `output-line-time`: The log's `line-time` part.
100863
+ * - `output-line-warn`: The log's `line-warn` part.
100864
+ * - `output-live`: The log's `live` part.
100865
+ * - `output-loading`: The log's `loading` part.
100866
+ * - `output-log`: The log's `log` part.
100867
+ * - `output-resume`: The log's `resume` part.
100868
+ * - `output-resume-button`: The log's `resume-button` part.
100869
+ * - `output-resume-mark`: The log's `resume-mark` part.
100870
+ * - `output-row`: The log's `row` part.
100871
+ * - `output-toolbar`: The log's `toolbar` part.
100872
+ *
100873
+ * ## CSS States
100874
+ *
100875
+ * These can be used to apply styling when a component is in a given state.
100876
+ *
100877
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
100878
+ */
100879
+ "helix-sandbox-console": Partial<
100880
+ HelixSandboxConsoleProps &
100881
+ HelixSandboxConsoleSolidJsProps &
100882
+ BaseProps<HelixSandboxConsole, "solid"> &
100883
+ BaseEvents<HelixSandboxConsole>
100884
+ >;
100885
+
100465
100886
  /**
100466
100887
  * A sandboxed `<iframe>` that loads `src`, a document you provide. That
100467
100888
  * document imports what the examples need, listens for a render message, and
@@ -100520,7 +100941,7 @@ export type CustomElementsSolidJs = {
100520
100941
  * sibling shown by `helix-sandbox-preview:state(failed) + .message`.
100521
100942
  *
100522
100943
  * **A failed preview shows the error over the example**, in the `error` part,
100523
- * until the next source is sent. The terminal says it too, so the part is not
100944
+ * until the next source is sent. The console says it too, so the part is not
100524
100945
  * announced, and it is the frame's description while it shows, so a screen
100525
100946
  * reader reads it with the frame. Hide it with `::part(error) { display: none }`
100526
100947
  * where the page draws its own.
@@ -100866,7 +101287,7 @@ export type CustomElementsSolidJs = {
100866
101287
  *
100867
101288
  * Areas where markup can be added to the component.
100868
101289
  *
100869
- * - `panel`: A panel under both panes, usually a terminal.
101290
+ * - `panel`: A panel under both panes, usually a console.
100870
101291
  * - `preview`: The live preview. It comes second unless `lead` is `preview`.
100871
101292
  * - `source`: The editable source pane. It comes first unless `lead` is `preview`.
100872
101293
  * - `status`: A status bar, spanning both panes at the bottom.
@@ -101188,120 +101609,6 @@ export type CustomElementsSolidJs = {
101188
101609
  BaseEvents<HelixSandboxStatusBar>
101189
101610
  >;
101190
101611
 
101191
- /**
101192
- * The sandbox receives `helix-console` events from the preview and passes them
101193
- * to the terminal. The preview is a separate document, so messages cross
101194
- * `postMessage` and arrive as text.
101195
- *
101196
- * **Repeats collapse.** Consecutive identical lines show as one line with a
101197
- * count, so an example with a render loop does not fill the panel with the same
101198
- * warning. Only consecutive repeats collapse, so the order of messages is kept.
101199
- *
101200
- * The panel has `role="log"`, the role for an append-only stream. Screen
101201
- * readers announce new output without reading the whole panel again. A line's
101202
- * level is read before it, except a plain `log`, so an error does not sound
101203
- * like any other line.
101204
- *
101205
- * **`controls` adds a clear button and a level filter** above the log. Both
101206
- * are also yours to drive without them: `clear()` empties the log, and
101207
- * `level` hides the quieter lines.
101208
- *
101209
- * ## Attributes & Properties
101210
- *
101211
- * Component attributes and properties that can be applied to the element or by using JavaScript.
101212
- *
101213
- * - `clear-label`/`clearLabel`: The clear button's text, under `controls`.
101214
- * - `controls`: Shows a clear button and a level filter above the log.
101215
- *
101216
- * Off by default, because a sandbox that puts the terminal in a panel often
101217
- * has a toolbar of its own for them.
101218
- * - `empty-label`/`emptyLabel`: Text shown before anything has been written.
101219
- * - `label`: The log's name, read by screen readers.
101220
- * - `level`: The quietest level shown: `info` hides plain logs, `warn` shows warnings
101221
- * and errors, and `error` shows errors only. Absent shows every line.
101222
- *
101223
- * Lines it hides are kept, so lowering it shows them again. The filter under
101224
- * `controls` sets it.
101225
- * - `level-label`/`levelLabel`: The level filter's name, read by screen readers, under `controls`.
101226
- * - `level-words`/`levelWords`: What each choice of the level filter reads, for a page in another
101227
- * language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
101228
- * its English words. As an attribute it is that object as JSON, and JSON
101229
- * that does not parse is no words.
101230
- * - `times-label`/`timesLabel`: What a screen reader is told a repeated line's count is. `{count}` is how
101231
- * many times it was written, two or more, in the locale, and a language
101232
- * writes the forms it has: `{count, plural, few {# razy} other {# razy}}`.
101233
- * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
101234
- *
101235
- * **Named `whenSettled` because `settled` is taken four times over**, by
101236
- * Image, Splitter and both color controls, none of them about transitions. A
101237
- * base class takes the name every subclass then cannot use.
101238
- *
101239
- * **The state it reports cannot be watched, which is why this exists.** A
101240
- * custom state is deliberately not in the DOM, so there is no
101241
- * `MutationObserver` equivalent for `ElementInternals.states`. Await this
101242
- * instead.
101243
- *
101244
- * Separate from `updateComplete`, which resolves in the microtask checkpoint
101245
- * the suppression is still active in. That is the distinction `readyToMove`
101246
- * in `@fusion.dev/helix-testing` is written around.
101247
- *
101248
- * It never resolves where `requestAnimationFrame` never fires, which is a
101249
- * server, a hidden tab, and happy-dom. Callers that must not hang there race
101250
- * it against a timeout, as the happy-dom harness's `readyToMove` does. The
101251
- * browser harness's awaits it alone: a browser always runs the frame, and a
101252
- * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
101253
- *
101254
- * ## Events
101255
- *
101256
- * Events that will be emitted by the component.
101257
- *
101258
- * - `change`: Fired after the reader chose another level in the filter. `level` holds it.
101259
- * - `helix-before-change`: Fired before the level filter changes, with the level chosen, `log` for every level. Cancelable: cancel it to keep the current level.
101260
- *
101261
- * ## Methods
101262
- *
101263
- * Methods that can be called to access component functionality.
101264
- *
101265
- * - `write(detail: ConsoleDetail) => void`: Adds a line, collapsing it into the one above when they are identical.
101266
- *
101267
- * `write` rather than `append`, which every element already has from
101268
- * `ParentNode` and which takes nodes. Shadowing it would break
101269
- * `terminal.append(node)` for anyone who reasonably expected the DOM method.
101270
- * - `clear() => void`: Empties the log.
101271
- *
101272
- * ## CSS Custom Properties
101273
- *
101274
- * CSS variables available for styling the component.
101275
- *
101276
- * - `--sandbox-terminal-size`: Height of the scrolling region.
101277
- *
101278
- * ## CSS Parts
101279
- *
101280
- * Custom selectors for styling elements within the component.
101281
- *
101282
- * - `clear`: The button that empties the log, under `controls`.
101283
- * - `controls`: The row holding the clear button and the level filter, under `controls`.
101284
- * - `count`: How many times a repeated line was written.
101285
- * - `empty`: Shown while nothing has been written, or while the level filter hides every line.
101286
- * - `entry`: One line.
101287
- * - `filter`: The level filter, a native select, under `controls`.
101288
- * - `level`: The console level a line was written at.
101289
- * - `log`: The scrolling region.
101290
- * - `message`: The text of a line.
101291
- *
101292
- * ## CSS States
101293
- *
101294
- * These can be used to apply styling when a component is in a given state.
101295
- *
101296
- * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
101297
- */
101298
- "helix-sandbox-terminal": Partial<
101299
- HelixSandboxTerminalProps &
101300
- HelixSandboxTerminalSolidJsProps &
101301
- BaseProps<HelixSandboxTerminal, "solid"> &
101302
- BaseEvents<HelixSandboxTerminal>
101303
- >;
101304
-
101305
101612
  /**
101306
101613
  * Spans the source pane and the preview, and holds controls for the whole
101307
101614
  * sandbox. Files go at the start and menus at the end, as in most editors.
@@ -107406,9 +107713,18 @@ export type CustomElementsSolidJs = {
107406
107713
  * - `fallback-label`/`fallbackLabel`: The terminal's name where `label` is empty and the host has no `aria-label`.
107407
107714
  * - `find-close-label`/`findCloseLabel`: The label of the button that closes the find bar.
107408
107715
  * - `find-controls-label`/`findControlsLabel`: The name of the find bar's row of buttons, read by screen readers.
107716
+ * - `find-invalid-label`/`findInvalidLabel`: What the find bar says when its regular expression cannot be read.
107409
107717
  * - `find-label`/`findLabel`: The find button's label, and the find field's name and placeholder.
107718
+ * - `find-match-case`/`findMatchCase`: Whether the find bar matches case, so "Error" does not find "error". The
107719
+ * reader turns it on and off from the bar.
107720
+ * - `find-match-case-label`/`findMatchCaseLabel`: The match case button's label.
107410
107721
  * - `find-next-label`/`findNextLabel`: The next match button's label.
107411
107722
  * - `find-previous-label`/`findPreviousLabel`: The previous match button's label.
107723
+ * - `find-regex`/`findRegex`: Whether the find bar reads what the reader types as a regular expression,
107724
+ * in JavaScript's syntax. The reader turns it on and off from the bar.
107725
+ * - `find-regex-label`/`findRegexLabel`: The regular expression button's label.
107726
+ * - `find-whole-word`/`findWholeWord`: Whether the find bar matches whole words only. The reader turns it on and off from the bar.
107727
+ * - `find-whole-word-label`/`findWholeWordLabel`: The whole word button's label.
107412
107728
  * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
107413
107729
  * - `input-label`/`inputLabel`: The name of the element the reader types into, which the renderer draws.
107414
107730
  * - `label`: The terminal's name, in the header and for screen readers, such as the
@@ -107469,11 +107785,14 @@ export type CustomElementsSolidJs = {
107469
107785
  * - `clear-icon`: Replaces the glyph inside the clear button.
107470
107786
  * - `copy-icon`: Replaces the glyph inside the copy button.
107471
107787
  * - `exit-actions`: Controls of your own beside Restart, shown once the process exits, such as a button that opens the whole log.
107472
- * - `find-actions`: Controls of your own in the find bar, between the count and the buttons that move between matches.
107788
+ * - `find-actions`: Controls of your own in the find bar, between its options and the buttons that move between matches.
107473
107789
  * - `find-close-icon`: Replaces the glyph inside the button that closes the find bar.
107474
107790
  * - `find-icon`: Replaces the glyph inside the find button.
107791
+ * - `find-match-case-icon`: Replaces the glyph inside the match case button.
107475
107792
  * - `find-next-icon`: Replaces the glyph inside the next match button.
107476
107793
  * - `find-previous-icon`: Replaces the glyph inside the previous match button.
107794
+ * - `find-regex-icon`: Replaces the glyph inside the regular expression button.
107795
+ * - `find-whole-word-icon`: Replaces the glyph inside the whole word button.
107477
107796
  * - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
107478
107797
  * - `label`: The terminal's name in the header, such as an icon beside the shell's name. Replaces `label` there.
107479
107798
  * - `restart-icon`: Replaces the glyph inside the Restart button.
@@ -107571,6 +107890,11 @@ export type CustomElementsSolidJs = {
107571
107890
  * - `find-count`: Which match is current and how many there are, such as "3 of 12 matches".
107572
107891
  * - `find-field`: The search field in the find bar.
107573
107892
  * - `find-live`: The find button's live region, which speaks while the button is pending.
107893
+ * - `find-match-case`: The button that matches case in the find bar. Pressed while it does.
107894
+ * - `find-match-case-button`: The match case button's inner button.
107895
+ * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
107896
+ * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
107897
+ * - `find-match-case-text`: The box the match case button's icon sits in.
107574
107898
  * - `find-next`: The button that moves to the next match.
107575
107899
  * - `find-next-button`: The next match button's inner button.
107576
107900
  * - `find-next-live`: The next match button's live region, which speaks while the button is pending.
@@ -107581,8 +107905,18 @@ export type CustomElementsSolidJs = {
107581
107905
  * - `find-previous-live`: The previous match button's live region, which speaks while the button is pending.
107582
107906
  * - `find-previous-spinner`: The ring the previous match button turns while it is pending.
107583
107907
  * - `find-previous-text`: The box the previous match button's icon sits in.
107908
+ * - `find-regex`: The button that reads the find field as a regular expression. Pressed while it does.
107909
+ * - `find-regex-button`: The regular expression button's inner button.
107910
+ * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
107911
+ * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
107912
+ * - `find-regex-text`: The box the regular expression button's icon sits in.
107584
107913
  * - `find-spinner`: The ring the find button turns while it is pending.
107585
107914
  * - `find-text`: The box the find button's icon sits in.
107915
+ * - `find-whole-word`: The button that matches whole words only in the find bar. Pressed while it does.
107916
+ * - `find-whole-word-button`: The whole word button's inner button.
107917
+ * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
107918
+ * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
107919
+ * - `find-whole-word-text`: The box the whole word button's icon sits in.
107586
107920
  * - `fullscreen`: The button that makes the terminal fill the screen. Pressed while it does.
107587
107921
  * - `fullscreen-button`: The fullscreen button's inner button.
107588
107922
  * - `fullscreen-live`: The fullscreen button's live region, which speaks while the button is pending.
@@ -113928,6 +114262,8 @@ export type CustomCssProperties = {
113928
114262
  "--rating-step"?: (string) | undefined;
113929
114263
  /** The number of steps in the whole row: `max` divided by `step`. */
113930
114264
  "--rating-steps"?: (string) | undefined;
114265
+ /** Height of the console. */
114266
+ "--sandbox-console-size"?: (string) | undefined;
113931
114267
  /** The invisible width of a divider's drag target. */
113932
114268
  "--sandbox-grab"?: (string) | undefined;
113933
114269
  /** Minimum height of the sandbox. */
@@ -113964,8 +114300,6 @@ export type CustomCssProperties = {
113964
114300
  "--sandbox-source-tag-color"?: (string) | undefined;
113965
114301
  /** Color of the bar's text. */
113966
114302
  "--sandbox-status-bar-color"?: (string) | undefined;
113967
- /** Height of the scrolling region. */
113968
- "--sandbox-terminal-size"?: (string) | undefined;
113969
114303
  /** Space between items. */
113970
114304
  "--sandbox-toolbar-gap"?: (string) | undefined;
113971
114305
  /** The bar's height. Defaults to the height of a large control. */