@fusion.dev/helix-headless 0.199.0 → 0.200.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/types/svelte.d.ts CHANGED
@@ -95,6 +95,9 @@ declare module 'svelte/elements' {
95
95
  'helix-headless-list': Helix<'helix-headless-list'>
96
96
  'helix-headless-listbox': Helix<'helix-headless-listbox'>
97
97
  'helix-headless-loader': Helix<'helix-headless-loader'>
98
+ 'helix-headless-log-group': Helix<'helix-headless-log-group'>
99
+ 'helix-headless-log-line': Helix<'helix-headless-log-line'>
100
+ 'helix-headless-log': Helix<'helix-headless-log'>
98
101
  'helix-headless-map-area': Helix<'helix-headless-map-area'>
99
102
  'helix-headless-map-buildings': Helix<'helix-headless-map-buildings'>
100
103
  'helix-headless-map-contours': Helix<'helix-headless-map-contours'>
package/types/vue.d.ts CHANGED
@@ -83,6 +83,10 @@ import type {
83
83
  HelixHeadlessList,
84
84
  HelixHeadlessListbox,
85
85
  HelixHeadlessLoader,
86
+ HelixHeadlessLogGroup,
87
+ timeOf,
88
+ HelixHeadlessLogLine,
89
+ HelixHeadlessLog,
86
90
  HelixHeadlessMapArea,
87
91
  HelixHeadlessMapBuildings,
88
92
  HelixHeadlessMapContours,
@@ -10050,6 +10054,221 @@ progress. */
10050
10054
 
10051
10055
  export type HelixHeadlessLoaderVueEvents = {};
10052
10056
 
10057
+ /** `HelixHeadlessLogGroup` component event */
10058
+ export type HelixHeadlessLogGroupElementEvent<E = Event> = TypedEvent<
10059
+ HelixHeadlessLogGroup,
10060
+ E
10061
+ >;
10062
+ /** `helix-before-close` event type */
10063
+ export type HelixHeadlessLogGroupHelixBeforeCloseElementEvent =
10064
+ HelixHeadlessLogGroupElementEvent<HelixBeforeCloseEvent>;
10065
+ /** `helix-before-open` event type */
10066
+ export type HelixHeadlessLogGroupHelixBeforeOpenElementEvent =
10067
+ HelixHeadlessLogGroupElementEvent<HelixBeforeOpenEvent>;
10068
+ /** `toggle` event type */
10069
+ export type HelixHeadlessLogGroupToggleElementEvent =
10070
+ HelixHeadlessLogGroupElementEvent<ToggleEvent>;
10071
+
10072
+ export type HelixHeadlessLogGroupVueProps = {
10073
+ /** How long the step took, as it should read, such as `12s`. */
10074
+ duration?: (HelixHeadlessLogGroup["duration"]) | undefined;
10075
+ /** What the step is called. The `heading` slot replaces it. */
10076
+ heading?: (HelixHeadlessLogGroup["heading"]) | undefined;
10077
+ /** Where the step stands, which draws a mark before the heading. */
10078
+ status?: (HelixHeadlessLogGroup["status"]) | undefined;
10079
+ /** What a screen reader hears for the status, after the heading.
10080
+ `{status}` is one of `pending`, `running`, `done`, `failed`, and `skipped`. */
10081
+ "status-label"?: (HelixHeadlessLogGroup["statusLabel"]) | undefined;
10082
+ /** What a screen reader hears for the status, after the heading.
10083
+ `{status}` is one of `pending`, `running`, `done`, `failed`, and `skipped`. */
10084
+ statusLabel?: (HelixHeadlessLogGroup["statusLabel"]) | undefined;
10085
+ /** Whether the element starts open. Ignored once `open` is written. */
10086
+ "default-open"?: (HelixHeadlessLogGroup["defaultOpen"]) | undefined;
10087
+ /** Whether the element starts open. Ignored once `open` is written. */
10088
+ defaultOpen?: (HelixHeadlessLogGroup["defaultOpen"]) | undefined;
10089
+ /** Whether the element is open.
10090
+
10091
+ One property, not two, so `dialog.open` answers the question anyone
10092
+ asking it meant. Writing always applies; `<helix-dialog open>` is the
10093
+ same statement in markup.
10094
+
10095
+ **Not reflected, and that is required rather than tidy.** Reflection
10096
+ writes the resolved state back as an attribute, so an element that opened
10097
+ itself would put `open` on its own host: cloned, serialized for
10098
+ hydration, or diffed by a framework, it comes back holding whatever the
10099
+ last reader did rather than what the author wrote. `:state(open)` carries
10100
+ the resolved state for stylesheets, which is what the mirror is for. */
10101
+ open?: (HelixHeadlessLogGroup["open"]) | undefined;
10102
+ };
10103
+
10104
+ export type HelixHeadlessLogGroupVueEvents = {
10105
+ /** Fired before the group closes. Cancelable. */
10106
+ "helix-before-close": HelixHeadlessLogGroupHelixBeforeCloseElementEvent;
10107
+ /** Fired before the group opens. Cancelable. */
10108
+ "helix-before-open": HelixHeadlessLogGroupHelixBeforeOpenElementEvent;
10109
+ /** Fired after the group opens or closes, with `newState` and `oldState`. */
10110
+ toggle: HelixHeadlessLogGroupToggleElementEvent;
10111
+ };
10112
+
10113
+ export type HelixHeadlessLogLineVueProps = {
10114
+ /** When the line was written: milliseconds since the epoch, or anything `Date` parses. */
10115
+ at?: (HelixHeadlessLogLine["at"]) | undefined;
10116
+ /** How much the line matters. Absent is `info`. */
10117
+ level?: (HelixHeadlessLogLine["level"]) | undefined;
10118
+ /** What a screen reader hears for the link on a line's number. `{number}` is the number. */
10119
+ "line-label"?: (HelixHeadlessLogLine["lineLabel"]) | undefined;
10120
+ /** What a screen reader hears for the link on a line's number. `{number}` is the number. */
10121
+ lineLabel?: (HelixHeadlessLogLine["lineLabel"]) | undefined;
10122
+ };
10123
+
10124
+ export type HelixHeadlessLogLineVueEvents = {};
10125
+
10126
+ /** `HelixHeadlessLog` component event */
10127
+ export type HelixHeadlessLogElementEvent<E = Event> = TypedEvent<
10128
+ HelixHeadlessLog,
10129
+ E
10130
+ >;
10131
+ /** `helix-before-pin` event type */
10132
+ export type HelixHeadlessLogHelixBeforePinElementEvent =
10133
+ HelixHeadlessLogElementEvent<HelixBeforePinEvent>;
10134
+ /** `helix-expand` event type */
10135
+ export type HelixHeadlessLogHelixExpandElementEvent =
10136
+ HelixHeadlessLogElementEvent<HelixExpandEvent>;
10137
+ /** `helix-pin` event type */
10138
+ export type HelixHeadlessLogHelixPinElementEvent =
10139
+ HelixHeadlessLogElementEvent<HelixPinEvent>;
10140
+
10141
+ export type HelixHeadlessLogVueProps = {
10142
+ /** Whether the log opens following its newest line, when `pinned` is not set.
10143
+ `default-pinned="false"` opens it where it starts. */
10144
+ "default-pinned"?: (HelixHeadlessLog["defaultPinned"]) | undefined;
10145
+ /** Whether the log opens following its newest line, when `pinned` is not set.
10146
+ `default-pinned="false"` opens it where it starts. */
10147
+ defaultPinned?: (HelixHeadlessLog["defaultPinned"]) | undefined;
10148
+ /** Whether the run is over, which a screen reader is told once.
10149
+
10150
+ Set it when output you `write` is complete. A `source` sets it when the
10151
+ stream ends. */
10152
+ done?: (HelixHeadlessLog["done"]) | undefined;
10153
+ /** What a screen reader hears when the run is over. */
10154
+ "done-label"?: (HelixHeadlessLog["doneLabel"]) | undefined;
10155
+ /** What a screen reader hears when the run is over. */
10156
+ doneLabel?: (HelixHeadlessLog["doneLabel"]) | undefined;
10157
+ /** What the line above the log says once `limit` has let lines go. `{count}` is how many. */
10158
+ "dropped-label"?: (HelixHeadlessLog["droppedLabel"]) | undefined;
10159
+ /** What the line above the log says once `limit` has let lines go. `{count}` is how many. */
10160
+ droppedLabel?: (HelixHeadlessLog["droppedLabel"]) | undefined;
10161
+ /** The text shown and announced when the log has no lines. */
10162
+ "empty-text"?: (HelixHeadlessLog["emptyText"]) | undefined;
10163
+ /** The text shown and announced when the log has no lines. */
10164
+ emptyText?: (HelixHeadlessLog["emptyText"]) | undefined;
10165
+ /** What a screen reader hears when lines at `error` arrive. `{count}` is how
10166
+ many arrived together and `{text}` is the first of them. */
10167
+ "error-label"?: (HelixHeadlessLog["errorLabel"]) | undefined;
10168
+ /** What a screen reader hears when lines at `error` arrive. `{count}` is how
10169
+ many arrived together and `{text}` is the first of them. */
10170
+ errorLabel?: (HelixHeadlessLog["errorLabel"]) | undefined;
10171
+ /** The log's name, read by screen readers, where `label` is empty. */
10172
+ "fallback-label"?: (HelixHeadlessLog["fallbackLabel"]) | undefined;
10173
+ /** The log's name, read by screen readers, where `label` is empty. */
10174
+ fallbackLabel?: (HelixHeadlessLog["fallbackLabel"]) | undefined;
10175
+ /** What a screen reader hears when a step finishes or fails. `{heading}` is
10176
+ the step's heading and `{status}` is `done` or `failed`. */
10177
+ "group-label"?: (HelixHeadlessLog["groupLabel"]) | undefined;
10178
+ /** What a screen reader hears when a step finishes or fails. `{heading}` is
10179
+ the step's heading and `{status}` is `done` or `failed`. */
10180
+ groupLabel?: (HelixHeadlessLog["groupLabel"]) | undefined;
10181
+ /** The log's name, read by screen readers. */
10182
+ label?: (HelixHeadlessLog["label"]) | undefined;
10183
+ /** The most lines kept, or 0 to keep them all. Past it the oldest lines are
10184
+ let go, and the line above the log says how many. */
10185
+ limit?: (HelixHeadlessLog["limit"]) | undefined;
10186
+ /** A link for each line number, with `{n}` where the number goes, such as
10187
+ `#L{n}`. Empty leaves the numbers as text. */
10188
+ "line-href"?: (HelixHeadlessLog["lineHref"]) | undefined;
10189
+ /** A link for each line number, with `{n}` where the number goes, such as
10190
+ `#L{n}`. Empty leaves the numbers as text. */
10191
+ lineHref?: (HelixHeadlessLog["lineHref"]) | undefined;
10192
+ /** What a screen reader hears for the link on a line's number, handed to each
10193
+ line the log draws. `{number}` is the number. */
10194
+ "line-label"?: (HelixHeadlessLog["lineLabel"]) | undefined;
10195
+ /** What a screen reader hears for the link on a line's number, handed to each
10196
+ line the log draws. `{number}` is the number. */
10197
+ lineLabel?: (HelixHeadlessLog["lineLabel"]) | undefined;
10198
+ /** Whether each line shows its number. */
10199
+ "line-numbers"?: (HelixHeadlessLog["lineNumbers"]) | undefined;
10200
+ /** Whether each line shows its number. */
10201
+ lineNumbers?: (HelixHeadlessLog["lineNumbers"]) | undefined;
10202
+ /** Lines to mark, as numbers and ranges such as `12, 40-44`. */
10203
+ "mark-lines"?: (HelixHeadlessLog["markLines"]) | undefined;
10204
+ /** Lines to mark, as numbers and ranges such as `12, 40-44`. */
10205
+ markLines?: (HelixHeadlessLog["markLines"]) | undefined;
10206
+ /** What a screen reader hears when `query` changes. `{count}` is how many lines match. */
10207
+ "matches-label"?: (HelixHeadlessLog["matchesLabel"]) | undefined;
10208
+ /** What a screen reader hears when `query` changes. `{count}` is how many lines match. */
10209
+ matchesLabel?: (HelixHeadlessLog["matchesLabel"]) | undefined;
10210
+ /** Whether the log follows its newest line.
10211
+
10212
+ The reader's scrolling asks first: `helix-before-pin` is cancelable, so a
10213
+ consumer refusing it takes the decision and assigns their own value. Not
10214
+ reflected, for the reason `Chat` gives at its own `pinned`: a default of
10215
+ true would write the attribute on upgrade. */
10216
+ pinned?: (HelixHeadlessLog["pinned"]) | undefined;
10217
+ /** Text a line has to hold to be shown, ignoring case. Empty shows every line. */
10218
+ query?: (HelixHeadlessLog["query"]) | undefined;
10219
+ /** The words on the button that returns to the newest line, where `resume` is empty. */
10220
+ "resume-label"?: (HelixHeadlessLog["resumeLabel"]) | undefined;
10221
+ /** The words on the button that returns to the newest line, where `resume` is empty. */
10222
+ resumeLabel?: (HelixHeadlessLog["resumeLabel"]) | undefined;
10223
+ /** How near the newest line still counts as being at it, in pixels. */
10224
+ threshold?: (HelixHeadlessLog["threshold"]) | undefined;
10225
+ /** How each line shows its `at`: `absolute` on the clock, `relative` as the
10226
+ time since the first line. Absent shows no time. */
10227
+ timestamps?: (HelixHeadlessLog["timestamps"]) | undefined;
10228
+ /** Whether a line longer than the box wraps onto the next row. Otherwise the log scrolls sideways. */
10229
+ wrap?: (HelixHeadlessLog["wrap"]) | undefined;
10230
+ /** Whether the rows are still loading.
10231
+
10232
+ Reflected, because a stylesheet needs it: the rows that are already there
10233
+ are dimmed rather than removed while a new set arrives, and only CSS can
10234
+ say that without the component knowing what a row looks like. */
10235
+ loading?: (HelixHeadlessLog["loading"]) | undefined;
10236
+ /** The text shown and announced while the rows load. */
10237
+ "loading-text"?: (HelixHeadlessLog["loadingText"]) | undefined;
10238
+ /** The text shown and announced while the rows load. */
10239
+ loadingText?: (HelixHeadlessLog["loadingText"]) | undefined;
10240
+ /** The steps the lines from data name in `group`. A step stands where its
10241
+ first line is, and one with no line yet stands at the end.
10242
+
10243
+ Replaced rather than mutated, as `lines` is: a step finishing is a new
10244
+ array with its `status` changed. */
10245
+ groups?: (HelixHeadlessLog["groups"]) | undefined;
10246
+ /** The lines as data. Reading it gives every line kept, oldest first, with
10247
+ the line still being written left out.
10248
+
10249
+ Replaced rather than mutated: setting it starts the log over with these
10250
+ lines, and `write` adds to them. Set it or write children, not both. */
10251
+ lines?: (HelixHeadlessLog["lines"]) | undefined;
10252
+ /** Reads each finished line of written text: return the fields to set, such
10253
+ as `level` or `group`, or `null` to drop the line. Lines in `lines` are
10254
+ taken as they are. */
10255
+ parse?: (HelixHeadlessLog["parse"]) | undefined;
10256
+ /** Text to read as it arrives, to the end: a `ReadableStream` of text or
10257
+ bytes, such as a `fetch` response's body, or an async iterable. Bytes are
10258
+ read as UTF-8. The log sets `done` when it ends, and a new source stops
10259
+ reading the last one. */
10260
+ source?: (HelixHeadlessLog["source"]) | undefined;
10261
+ };
10262
+
10263
+ export type HelixHeadlessLogVueEvents = {
10264
+ /** Fired when the reader leaves the newest line by scrolling, or comes back to it. Cancelable. */
10265
+ "helix-before-pin": HelixHeadlessLogHelixBeforePinElementEvent;
10266
+ /** Fired after a reader opens or closes a group drawn from `groups`, with the `id` of every open group in `detail.value`, separated by commas. */
10267
+ "helix-expand": HelixHeadlessLogHelixExpandElementEvent;
10268
+ /** Fired after the log follows the newest line or lets go of it, with `true` or `false` in `detail.value`. */
10269
+ "helix-pin": HelixHeadlessLogHelixPinElementEvent;
10270
+ };
10271
+
10053
10272
  /** `HelixHeadlessMapArea` component event */
10054
10273
  export type HelixHeadlessMapAreaElementEvent<E = Event> = TypedEvent<
10055
10274
  HelixHeadlessMapArea,
@@ -20229,6 +20448,48 @@ export type CustomCssProperties = {
20229
20448
  "--list-first"?: (string) | undefined;
20230
20449
  /** What each row adds to the number before it: `1`, or `-1` where `reversed`. */
20231
20450
  "--list-step"?: (string) | undefined;
20451
+ /** Written on a `run` with a background, in the same form as `--log-run-color`. */
20452
+ "--log-run-background-color"?: (string) | undefined;
20453
+ /** Written on a `run` with a text color: one of the sixteen `--log-ansi-*` colors the log publishes, or the color itself. */
20454
+ "--log-run-color"?: (string) | undefined;
20455
+ /** The background a run takes where ANSI swaps the colors and named none. Defaults to the log's own background on the styled tier. */
20456
+ "--log-ansi-background"?: (string) | undefined;
20457
+ /** The ANSI color black, which codes `30` and `40` draw. */
20458
+ "--log-ansi-black"?: (string) | undefined;
20459
+ /** The ANSI color blue, which codes `34` and `44` draw. */
20460
+ "--log-ansi-blue"?: (string) | undefined;
20461
+ /** The ANSI color bright black, which codes `90` and `100` draw. */
20462
+ "--log-ansi-bright-black"?: (string) | undefined;
20463
+ /** The ANSI color bright blue, which codes `94` and `104` draw. */
20464
+ "--log-ansi-bright-blue"?: (string) | undefined;
20465
+ /** The ANSI color bright cyan, which codes `96` and `106` draw. */
20466
+ "--log-ansi-bright-cyan"?: (string) | undefined;
20467
+ /** The ANSI color bright green, which codes `92` and `102` draw. */
20468
+ "--log-ansi-bright-green"?: (string) | undefined;
20469
+ /** The ANSI color bright magenta, which codes `95` and `105` draw. */
20470
+ "--log-ansi-bright-magenta"?: (string) | undefined;
20471
+ /** The ANSI color bright red, which codes `91` and `101` draw. */
20472
+ "--log-ansi-bright-red"?: (string) | undefined;
20473
+ /** The ANSI color bright white, which codes `97` and `107` draw. */
20474
+ "--log-ansi-bright-white"?: (string) | undefined;
20475
+ /** The ANSI color bright yellow, which codes `93` and `103` draw. */
20476
+ "--log-ansi-bright-yellow"?: (string) | undefined;
20477
+ /** The ANSI color cyan, which codes `36` and `46` draw. */
20478
+ "--log-ansi-cyan"?: (string) | undefined;
20479
+ /** The text color a run takes where ANSI swaps the colors and named none. Defaults to the log's own text color on the styled tier. */
20480
+ "--log-ansi-foreground"?: (string) | undefined;
20481
+ /** The ANSI color green, which codes `32` and `42` draw. */
20482
+ "--log-ansi-green"?: (string) | undefined;
20483
+ /** The ANSI color magenta, which codes `35` and `45` draw. */
20484
+ "--log-ansi-magenta"?: (string) | undefined;
20485
+ /** The ANSI color red, which codes `31` and `41` draw. */
20486
+ "--log-ansi-red"?: (string) | undefined;
20487
+ /** The ANSI color white, which codes `37` and `47` draw. */
20488
+ "--log-ansi-white"?: (string) | undefined;
20489
+ /** The ANSI color yellow, which codes `33` and `43` draw. */
20490
+ "--log-ansi-yellow"?: (string) | undefined;
20491
+ /** Written on the `log`: how many digits the largest line number has, while `line-numbers` is set, so a stylesheet can size the column of numbers. */
20492
+ "--log-digits"?: (string) | undefined;
20232
20493
  /** How far the needle turns to point north, as an angle. The frame writes it from `bearing`. */
20233
20494
  "--map-needle-turn"?: (string) | undefined;
20234
20495
  /** The height of the panel this one took over from, written on the surface while it is open. */
@@ -20739,6 +21000,24 @@ export interface WcToolkitVueGlobalComponents {
20739
21000
  HelixHeadlessLoaderVueProps,
20740
21001
  HelixHeadlessLoaderVueEvents
20741
21002
  >;
21003
+ /** A group is a disclosure: its heading is a button that shows and hides the lines inside it, and says whether they are shown with 'aria-expanded'. Put 'Log.Line' elements inside it, and nest groups for steps within steps. 'status' draws a mark before the heading, and a screen reader hears the status after the heading ('status-label'). 'duration' stands at the end of the heading, as you write it, such as '12s'. A group starts shut. Write 'default-open' on the step a reader should see, such as the one that failed. */
21004
+ "helix-headless-log-group": DefineCustomElement<
21005
+ HelixHeadlessLogGroup,
21006
+ HelixHeadlessLogGroupVueProps,
21007
+ HelixHeadlessLogGroupVueEvents
21008
+ >;
21009
+ /** Write one for each line of a log you serve whole, inside a 'Log' or a 'Log.Group'. The log numbers each line, counting the lines of every group, and tells it whether to show its number and its time. 'level' says how much a line matters, and the styled tier draws 'warn' and 'error' lines apart. The text is the line's own content, so you can mark it up yourself. */
21010
+ "helix-headless-log-line": DefineCustomElement<
21011
+ HelixHeadlessLogLine,
21012
+ HelixHeadlessLogLineVueProps,
21013
+ HelixHeadlessLogLineVueEvents
21014
+ >;
21015
+ /** A log holds lines in the order they were written and keeps the reader at the newest one, until they scroll up to read. It stays where they left it while lines keep arriving, and a button returns them to the end ('resume-label', "Jump to latest"). **Lines arrive two ways.** For a log you serve whole, write 'Log.Line' elements as children, inside 'Log.Group' elements for the steps. For a log that is still being written, hand it text: 'write(chunk)' takes text as it arrives, in pieces that need not end at a line break, and 'source' takes a 'ReadableStream' or an async iterable and reads it to the end. 'lines' takes the lines as data. Text drawn from data is drawn one window at a time, so a log of a hundred thousand lines holds a screenful of elements, and the log needs a block size of its own. Do not use both ways at once. **Written text is read the way a terminal shows it.** A carriage return starts the line over, so a progress bar stays one line, and the line still being written is shown as it stands. ANSI colors and weights are drawn, in the sixteen colors the styled tier takes from your theme, and every other escape code is dropped. Give 'parse' a function to read each finished line, such as a level off its prefix or a group off a marker. **Steps fold.** Lines that name a group in 'groups' stand under its heading, which shows its status and how long it took and opens and closes the lines. A group a reader opens or closes fires 'helix-expand' with every open group. **Search with 'query'.** The log shows only the lines that hold it, marks each match, opens the groups that hold one, and says how many lines match. 'line-numbers' numbers the lines from the first ever written, so a number still names its line once 'limit' has let older lines go, and 'line-href' makes each number a link, such as '#L{n}'. 'scrollToLine(n)' takes a reader to one. 'timestamps' shows each line's 'at', on the clock or as the time into the run. 'mark-lines' marks lines, such as '12, 40-44'. **What a screen reader hears.** The log is a 'log' and stays quiet as lines arrive, since reading a build aloud line by line helps nobody. A separate status region says each line at 'error' once it arrives, each step once it finishes or fails, and the end of the run once 'done' is set or 'source' ends. Set 'done' yourself when output you 'write' is complete. The log scrolls on this tier. It carries 'data-scroller', so following the newest line and drawing a window work with no stylesheet. Give the log a block size, such as 'helix-headless-log::part(log) { block-size: 20rem }'. '''js import '@fusion.dev/helix/log' ''' */
21016
+ "helix-headless-log": DefineCustomElement<
21017
+ HelixHeadlessLog,
21018
+ HelixHeadlessLogVueProps,
21019
+ HelixHeadlessLogVueEvents
21020
+ >;
20742
21021
  /** 'connectMap' fills the shape as a layer of the map, under its place names. The frame lists each area by its 'label' and 'description' for screen readers. Set 'caption' to draw words on the map with the area, such as a letter for a search sector, in a color that reads on the map. It is drawn rather than focusable, so it adds nothing to the tab order, and a screen reader reads the area's 'label' in the frame's list. */
20743
21022
  "helix-headless-map-area": DefineCustomElement<
20744
21023
  HelixHeadlessMapArea,
package/types/words.d.ts CHANGED
@@ -2115,6 +2115,77 @@ declare module '@fusion.dev/helix-core' {
2115
2115
  */
2116
2116
  label: Message
2117
2117
  }
2118
+ 'helix-log': {
2119
+ /**
2120
+ * What a screen reader hears when the run is over.
2121
+ *
2122
+ * English: `Finished`
2123
+ */
2124
+ doneLabel: Message
2125
+ /**
2126
+ * What the line above the log says once `limit` has let lines go. `{count}` is how many.
2127
+ *
2128
+ * English: `{count, plural, one {# earlier line is} other {# earlier lines are}} not kept`
2129
+ */
2130
+ droppedLabel: Message
2131
+ /**
2132
+ * The text shown and announced when the log has no lines.
2133
+ *
2134
+ * English: `No output yet`
2135
+ */
2136
+ emptyText: Message
2137
+ /**
2138
+ * What a screen reader hears when lines at `error` arrive. `{count}` is how
2139
+ * many arrived together and `{text}` is the first of them.
2140
+ *
2141
+ * English: `{count, plural, one {Error} other {# errors}}: {text}`
2142
+ */
2143
+ errorLabel: Message
2144
+ /**
2145
+ * The log's name, read by screen readers, where `label` is empty.
2146
+ *
2147
+ * English: `Log`
2148
+ */
2149
+ fallbackLabel: Message
2150
+ /**
2151
+ * What a screen reader hears when a step finishes or fails. `{heading}` is
2152
+ * the step's heading and `{status}` is `done` or `failed`.
2153
+ *
2154
+ * English: `{status, select, failed {{heading} failed} other {{heading} finished}}`
2155
+ */
2156
+ groupLabel: Message
2157
+ /**
2158
+ * What a screen reader hears for the link on a line's number. `{number}` is the number.
2159
+ *
2160
+ * English: `Line {number}`
2161
+ */
2162
+ lineLabel: Message
2163
+ /**
2164
+ * The text shown and announced while the rows load.
2165
+ *
2166
+ * English: `Loading`
2167
+ */
2168
+ loadingText: Message
2169
+ /**
2170
+ * What a screen reader hears when `query` changes. `{count}` is how many lines match.
2171
+ *
2172
+ * English: `{count, plural, =0 {No lines match} one {# line matches} other {# lines match}}`
2173
+ */
2174
+ matchesLabel: Message
2175
+ /**
2176
+ * The words on the button that returns to the newest line, where `resume` is empty.
2177
+ *
2178
+ * English: `Jump to latest`
2179
+ */
2180
+ resumeLabel: Message
2181
+ /**
2182
+ * What a screen reader hears for the status, after the heading.
2183
+ * `{status}` is one of `pending`, `running`, `done`, `failed`, and `skipped`.
2184
+ *
2185
+ * English: `{status, select, pending {waiting} running {running} done {finished} failed {failed} skipped {skipped} other {}}`
2186
+ */
2187
+ statusLabel: Message
2188
+ }
2118
2189
  'helix-map': {
2119
2190
  /**
2120
2191
  * The hint shown when the map, waiting to be pressed with