@fusion.dev/helix 0.165.0 → 0.167.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.
Files changed (37) hide show
  1. package/custom-elements.json +3391 -481
  2. package/dist/canvas/root/canvas-root.css.js +1 -1
  3. package/dist/canvas/root/canvas-root.d.ts +2 -0
  4. package/dist/canvas/root/canvas-root.js +1 -0
  5. package/dist/chat/composer/chat-composer.css.js +1 -1
  6. package/dist/code-block/root/code-block-root.css.js +2 -1
  7. package/dist/color-picker/root/color-picker-root.css.js +2 -2
  8. package/dist/combobox/root/combobox-root.d.ts +1 -1
  9. package/dist/combobox/root/combobox-root.js +1 -1
  10. package/dist/command/root/command-root.css.js +1 -1
  11. package/dist/element-events.generated.js +17 -2
  12. package/dist/file-input/root/file-input-root.d.ts +1 -1
  13. package/dist/file-input/root/file-input-root.js +1 -1
  14. package/dist/graph/root/graph-root.css.js +1 -1
  15. package/dist/listbox/root/listbox-root.css.js +1 -1
  16. package/dist/menu/item/menu-item.css.js +3 -0
  17. package/dist/menu/root/menu-root.css.js +1 -1
  18. package/dist/object-inspector/root/object-inspector-root.css.js +1 -1
  19. package/dist/sandbox/root/sandbox-root.d.ts +26 -0
  20. package/dist/sandbox/root/sandbox-root.js +28 -3
  21. package/dist/sandbox/source/sandbox-source.css.js +1 -1
  22. package/dist/sandbox/source/sandbox-source.d.ts +6 -0
  23. package/dist/sandbox/source/sandbox-source.js +9 -2
  24. package/dist/sandbox/terminal/sandbox-terminal.css.js +1 -1
  25. package/dist/shared/field/field-frame.css.js +1 -1
  26. package/dist/shared/field/field-segments.css.js +1 -1
  27. package/dist/table/root/table-root.css.js +7 -1
  28. package/dist/table/root/table-root.d.ts +4 -0
  29. package/dist/time-picker/root/time-picker-root.css.js +1 -1
  30. package/dist/time-picker/root/time-picker-root.d.ts +1 -0
  31. package/dist/virtual-list/root/virtual-list-root.css.js +1 -1
  32. package/dist/virtual-list/root/virtual-list-root.d.ts +1 -1
  33. package/lint.json +1 -1
  34. package/package.json +6 -6
  35. package/types/jsx.d.ts +643 -65
  36. package/types/vue.d.ts +164 -5
  37. package/types/words.d.ts +47 -0
package/types/vue.d.ts CHANGED
@@ -174,6 +174,7 @@ import type {
174
174
  HelixBeforeChangeEvent,
175
175
  HelixPressEvent,
176
176
  HelixBeforeMoveEvent,
177
+ HelixBeforePasteEvent,
177
178
  HelixBeforeReconnectEvent,
178
179
  HelixBeforeRelabelEvent,
179
180
  HelixCanvasEditEvent,
@@ -182,6 +183,7 @@ import type {
182
183
  HelixCanvasZoomEvent,
183
184
  HelixConnectEvent,
184
185
  HelixMoveEvent,
186
+ HelixPastedEvent,
185
187
  HelixReconnectEvent,
186
188
  HelixRelabelEvent,
187
189
  HelixRemoveEvent,
@@ -192,14 +194,14 @@ import type {
192
194
  HelixHistoryEvent,
193
195
  HelixPinEvent,
194
196
  HelixBeforeToggleEvent,
195
- HelixToggleEvent,
196
197
  HelixCopyEvent,
198
+ HelixCopyErrorEvent,
199
+ HelixToggleEvent,
197
200
  HelixSampleEndEvent,
198
201
  HelixSampleStartEvent,
199
202
  HelixCreateEvent,
200
203
  HelixFilterEvent,
201
204
  HelixLoadMoreEvent,
202
- HelixCopyErrorEvent,
203
205
  HelixBeforeReorderEvent,
204
206
  HelixExpandEvent,
205
207
  HelixFilteredEvent,
@@ -2230,6 +2232,9 @@ export type HelixCanvasElementEvent<E = Event> = TypedEvent<HelixCanvas, E>;
2230
2232
  /** `helix-before-move` event type */
2231
2233
  export type HelixCanvasHelixBeforeMoveElementEvent =
2232
2234
  HelixCanvasElementEvent<HelixBeforeMoveEvent>;
2235
+ /** `helix-before-paste` event type */
2236
+ export type HelixCanvasHelixBeforePasteElementEvent =
2237
+ HelixCanvasElementEvent<HelixBeforePasteEvent>;
2233
2238
  /** `helix-before-reconnect` event type */
2234
2239
  export type HelixCanvasHelixBeforeReconnectElementEvent =
2235
2240
  HelixCanvasElementEvent<HelixBeforeReconnectEvent>;
@@ -2254,6 +2259,9 @@ export type HelixCanvasHelixConnectElementEvent =
2254
2259
  /** `helix-move` event type */
2255
2260
  export type HelixCanvasHelixMoveElementEvent =
2256
2261
  HelixCanvasElementEvent<HelixMoveEvent>;
2262
+ /** `helix-pasted` event type */
2263
+ export type HelixCanvasHelixPastedElementEvent =
2264
+ HelixCanvasElementEvent<HelixPastedEvent>;
2257
2265
  /** `helix-reconnect` event type */
2258
2266
  export type HelixCanvasHelixReconnectElementEvent =
2259
2267
  HelixCanvasElementEvent<HelixReconnectEvent>;
@@ -2426,6 +2434,10 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
2426
2434
  /** The hint shown when the board, waiting to be pressed with
2427
2435
  `gestures="activate"`, is scrolled or swiped over. */
2428
2436
  activateHintLabel?: (HelixCanvas["activateHintLabel"]) | undefined;
2437
+ /** What screen readers hear after `arrange()` moves the cards. */
2438
+ "arranged-label"?: (HelixCanvas["arrangedLabel"]) | undefined;
2439
+ /** What screen readers hear after `arrange()` moves the cards. */
2440
+ arrangedLabel?: (HelixCanvas["arrangedLabel"]) | undefined;
2429
2441
  /** The text read with a card to say where its connections come from, with `{cards}`. */
2430
2442
  "comes-from-label"?: (HelixCanvas["comesFromLabel"]) | undefined;
2431
2443
  /** The text read with a card to say where its connections come from, with `{cards}`. */
@@ -2524,6 +2536,10 @@ on a board that is a flow is the order its author meant.
2524
2536
  Absent is spatial, a resting value being an attribute's absence: a default
2525
2537
  that reflected would write a choice onto every host that no server sent. */
2526
2538
  order?: (HelixCanvas["order"]) | undefined;
2539
+ /** What screen readers hear after a paste, with `{count}` for the cards pasted. */
2540
+ "pasted-label"?: (HelixCanvas["pastedLabel"]) | undefined;
2541
+ /** What screen readers hear after a paste, with `{count}` for the cards pasted. */
2542
+ pastedLabel?: (HelixCanvas["pastedLabel"]) | undefined;
2527
2543
  /** The route every connection takes when it sets no `path` of its own:
2528
2544
  `straight`, or `step` for right angles.
2529
2545
 
@@ -2557,6 +2573,14 @@ walk the cards. */
2557
2573
  "redone-label"?: (HelixCanvas["redoneLabel"]) | undefined;
2558
2574
  /** What screen readers hear after a move or a resize is made again. */
2559
2575
  redoneLabel?: (HelixCanvas["redoneLabel"]) | undefined;
2576
+ /** What screen readers hear when Delete asks to remove what is selected, with
2577
+ `{count}` for how many cards and connections, and `{name}` for the one
2578
+ where there is one. */
2579
+ "removed-label"?: (HelixCanvas["removedLabel"]) | undefined;
2580
+ /** What screen readers hear when Delete asks to remove what is selected, with
2581
+ `{count}` for how many cards and connections, and `{name}` for the one
2582
+ where there is one. */
2583
+ removedLabel?: (HelixCanvas["removedLabel"]) | undefined;
2560
2584
  /** What screen readers hear after a key resizes a card, with `{name}` for the
2561
2585
  card and `{width}` and `{height}` for its new size, in the document's
2562
2586
  units. */
@@ -2702,6 +2726,8 @@ it rather than fitting the board again. */
2702
2726
  export type HelixCanvasVueEvents = {
2703
2727
  /** Cards are about to move. Cancelable: cancel it to keep the positions in your own state. */
2704
2728
  "helix-before-move": HelixCanvasHelixBeforeMoveElementEvent;
2729
+ /** Cards and connections are about to be pasted. Cancelable: cancel it to add the detail's document to your own state. */
2730
+ "helix-before-paste": HelixCanvasHelixBeforePasteElementEvent;
2705
2731
  /** A connection's end is about to move to another card or side. Cancelable: cancel it to keep connections in your own state. */
2706
2732
  "helix-before-reconnect": HelixCanvasHelixBeforeReconnectElementEvent;
2707
2733
  /** A connection's label or a group's name is about to change. Cancelable: cancel it to keep labels in your own state. */
@@ -2718,6 +2744,8 @@ export type HelixCanvasVueEvents = {
2718
2744
  "helix-connect": HelixCanvasHelixConnectElementEvent;
2719
2745
  /** Cards moved and the move is finished: a drag was released, a click put a card down, or a key was pressed. */
2720
2746
  "helix-move": HelixCanvasHelixMoveElementEvent;
2747
+ /** Cards and connections were pasted, and the board holds them. */
2748
+ "helix-pasted": HelixCanvasHelixPastedElementEvent;
2721
2749
  /** A connection's end moved, and the move is finished. */
2722
2750
  "helix-reconnect": HelixCanvasHelixReconnectElementEvent;
2723
2751
  /** A connection's label or a group's name changed. */
@@ -3958,9 +3986,18 @@ export type HelixCodeBlockElementEvent<E = Event> = TypedEvent<
3958
3986
  HelixCodeBlock,
3959
3987
  E
3960
3988
  >;
3989
+ /** `helix-before-change` event type */
3990
+ export type HelixCodeBlockHelixBeforeChangeElementEvent =
3991
+ HelixCodeBlockElementEvent<HelixBeforeChangeEvent>;
3961
3992
  /** `helix-before-toggle` event type */
3962
3993
  export type HelixCodeBlockHelixBeforeToggleElementEvent =
3963
3994
  HelixCodeBlockElementEvent<HelixBeforeToggleEvent>;
3995
+ /** `helix-copy` event type */
3996
+ export type HelixCodeBlockHelixCopyElementEvent =
3997
+ HelixCodeBlockElementEvent<HelixCopyEvent>;
3998
+ /** `helix-copy-error` event type */
3999
+ export type HelixCodeBlockHelixCopyErrorElementEvent =
4000
+ HelixCodeBlockElementEvent<HelixCopyErrorEvent>;
3964
4001
  /** `helix-toggle` event type */
3965
4002
  export type HelixCodeBlockHelixToggleElementEvent =
3966
4003
  HelixCodeBlockElementEvent<HelixToggleEvent>;
@@ -4032,6 +4069,15 @@ block lays out. Not for a diff, whose files each scroll on their own. */
4032
4069
  "expand-label"?: (HelixCodeBlock["expandLabel"]) | undefined;
4033
4070
  /** The expand button's words while the cap hides lines. */
4034
4071
  expandLabel?: (HelixCodeBlock["expandLabel"]) | undefined;
4072
+ /** The name of the file shown, where the block holds several Code Blocks:
4073
+ the `label` of one, or its `language` without one.
4074
+
4075
+ Unset, or a name no file has, shows the first. */
4076
+ file?: (HelixCodeBlock["file"]) | undefined;
4077
+ /** The name of the file tabs, read by screen readers. */
4078
+ "files-label"?: (HelixCodeBlock["filesLabel"]) | undefined;
4079
+ /** The name of the file tabs, read by screen readers. */
4080
+ filesLabel?: (HelixCodeBlock["filesLabel"]) | undefined;
4035
4081
  /** The words of a button that hides a run of unchanged lines it showed, in a
4036
4082
  diff with `context-lines`. `{count}` is how many, and each language
4037
4083
  writes the forms it has. */
@@ -4168,8 +4214,16 @@ read, nor for a diff. */
4168
4214
  };
4169
4215
 
4170
4216
  export type HelixCodeBlockVueEvents = {
4217
+ /** A file tab showed its file, whose name `file` now holds. */
4218
+ change: HelixCodeBlockElementEvent;
4219
+ /** A file tab is about to show its file, with the file's name in `detail.value`. Cancelable: cancel it to keep the file shown. */
4220
+ "helix-before-change": HelixCodeBlockHelixBeforeChangeElementEvent;
4171
4221
  /** The wrap button was pressed, with the `wrap` it asks for in `detail.checked`. Cancelable: cancel it to keep the lines as they are. */
4172
4222
  "helix-before-toggle": HelixCodeBlockHelixBeforeToggleElementEvent;
4223
+ /** The copy button put the code on the clipboard, with the text in `detail.value`. */
4224
+ "helix-copy": HelixCodeBlockHelixCopyElementEvent;
4225
+ /** A press on the copy button put nothing on the clipboard: the browser did not allow the write, or there was no code. */
4226
+ "helix-copy-error": HelixCodeBlockHelixCopyErrorElementEvent;
4173
4227
  /** Fired after the wrap button changed `wrap`, with the new value in `detail.checked`. */
4174
4228
  "helix-toggle": HelixCodeBlockHelixToggleElementEvent;
4175
4229
  };
@@ -8344,7 +8398,8 @@ such as `buddhist` for `th-TH`, and `gregory` for every other, such as
8344
8398
  `persian` for `fa-IR`, so a date written here reads as the same date a
8345
8399
  Date Picker beside it shows. Write `calendar="persian"` for Mehr 14, 1405. */
8346
8400
  calendar?: (HelixFormatDate["calendar"]) | undefined;
8347
- /** The timestamp, in any format `Date` can parse.
8401
+ /** The timestamp: a `Date`, milliseconds since the epoch, or a string in any
8402
+ format `Date` can parse. The attribute is the string.
8348
8403
 
8349
8404
  An ISO string is what an API sends and what `<time datetime>` takes, so it
8350
8405
  is the shape that needs no translation at either end. Left unset this
@@ -12087,6 +12142,9 @@ export type HelixMenuHelixBeforeCloseElementEvent =
12087
12142
  /** `helix-before-open` event type */
12088
12143
  export type HelixMenuHelixBeforeOpenElementEvent =
12089
12144
  HelixMenuElementEvent<HelixBeforeOpenEvent>;
12145
+ /** `helix-filter` event type */
12146
+ export type HelixMenuHelixFilterElementEvent =
12147
+ HelixMenuElementEvent<HelixFilterEvent>;
12090
12148
  /** `helix-select` event type */
12091
12149
  export type HelixMenuHelixSelectElementEvent =
12092
12150
  HelixMenuElementEvent<HelixSelectEvent>;
@@ -12142,6 +12200,18 @@ Ark UI's `closeOnSelect` does. A row's own `close-on-select` wins over this. */
12142
12200
  /** Whether the menu is the trigger's context menu: it opens where the reader
12143
12201
  asks for one, with a right-click, a long press, Shift+F10 or the menu key. */
12144
12202
  context?: (HelixMenu["context"]) | undefined;
12203
+ /** The text the rows are filtered by, which the filter field holds.
12204
+
12205
+ Cleared as the menu closes and as a submenu opens or closes, so each page
12206
+ starts with every row showing. */
12207
+ filter?: (HelixMenu["filter"]) | undefined;
12208
+ /** Whether the menu shows a field above its rows that narrows them as the
12209
+ reader types, with focus staying in the field. */
12210
+ filterable?: (HelixMenu["filterable"]) | undefined;
12211
+ /** The filter field's name and placeholder. */
12212
+ "filter-label"?: (HelixMenu["filterLabel"]) | undefined;
12213
+ /** The filter field's name and placeholder. */
12214
+ filterLabel?: (HelixMenu["filterLabel"]) | undefined;
12145
12215
  /** Accessible name for the surface.
12146
12216
 
12147
12217
  Empty by default, which names the surface by its trigger, so a menu opened
@@ -12154,6 +12224,10 @@ to open the menu. Translate it with the rest of your interface. */
12154
12224
  /** The description a trigger gives under `open-on="long-press"`, saying how
12155
12225
  to open the menu. Translate it with the rest of your interface. */
12156
12226
  longPressLabel?: (HelixMenu["longPressLabel"]) | undefined;
12227
+ /** The text shown when the filter keeps no rows. */
12228
+ "no-results-text"?: (HelixMenu["noResultsText"]) | undefined;
12229
+ /** The text shown when the filter keeps no rows. */
12230
+ noResultsText?: (HelixMenu["noResultsText"]) | undefined;
12157
12231
  /** Space between the trigger and the surface, in pixels. */
12158
12232
  offset?: (HelixMenu["offset"]) | undefined;
12159
12233
  /** What opens the menu from its trigger. `long-press` leaves a press to the
@@ -12171,6 +12245,13 @@ It moves if that side does not fit. */
12171
12245
  /** How a submenu opens. `drill` shows it in place of the page showing, with
12172
12246
  a way back. `flyout` opens it in a panel of its own beside its row. */
12173
12247
  submenus?: (HelixMenu["submenus"]) | undefined;
12248
+ /** Whether a row is kept by the filter: a function given the row's words and
12249
+ the filter, trimmed, that returns `true` to keep it showing, as React
12250
+ Aria's `Autocomplete` takes `filter`. See Listbox's `filterMatch`.
12251
+
12252
+ Absent, a row is kept where its words hold the filter, in any case. A
12253
+ property only, there being no way to write a function in markup. */
12254
+ filterMatch?: (HelixMenu["filterMatch"]) | undefined;
12174
12255
  };
12175
12256
 
12176
12257
  export type HelixMenuVueEvents = {
@@ -12180,6 +12261,8 @@ export type HelixMenuVueEvents = {
12180
12261
  "helix-before-close": HelixMenuHelixBeforeCloseElementEvent;
12181
12262
  /** The menu is about to open. Cancelable: cancel it to keep it closed. */
12182
12263
  "helix-before-open": HelixMenuHelixBeforeOpenElementEvent;
12264
+ /** The text in the filter field changed, with the new text in `detail.value`. Cancelable: cancel it to keep every row showing and narrow the rows yourself. */
12265
+ "helix-filter": HelixMenuHelixFilterElementEvent;
12183
12266
  /** An item was chosen. Cancelable: cancel it to keep the menu open. */
12184
12267
  "helix-select": HelixMenuHelixSelectElementEvent;
12185
12268
  };
@@ -15041,6 +15124,16 @@ gives. */
15041
15124
  "panel-size"?: (HelixSandbox["panelSize"] | `${number}`) | undefined;
15042
15125
  /** Height of the panel, in pixels. */
15043
15126
  panelSize?: (HelixSandbox["panelSize"]) | undefined;
15127
+ /** How long typing rests before the preview runs the new source, in
15128
+ milliseconds, as Sandpack's `recompileDelay` does. The preview reloads its
15129
+ frame on each run, so a word typed runs it once. `0` runs it on every
15130
+ edit. */
15131
+ "preview-delay"?: (HelixSandbox["previewDelay"] | `${number}`) | undefined;
15132
+ /** How long typing rests before the preview runs the new source, in
15133
+ milliseconds, as Sandpack's `recompileDelay` does. The preview reloads its
15134
+ frame on each run, so a word typed runs it once. `0` runs it on every
15135
+ edit. */
15136
+ previewDelay?: (HelixSandbox["previewDelay"]) | undefined;
15044
15137
  /** The name of the divider between the panes, read by screen readers.
15045
15138
  `{pane}` is the lead pane, `source` or `preview`, whose share the
15046
15139
  divider's value is, so each is a whole sentence: "Resize source pane" or
@@ -15101,6 +15194,14 @@ export type HelixSandboxSourceVueProps = {
15101
15194
  "field-label"?: (HelixSandboxSource["fieldLabel"]) | undefined;
15102
15195
  /** The editable region's name, read by screen readers. */
15103
15196
  fieldLabel?: (HelixSandboxSource["fieldLabel"]) | undefined;
15197
+ /** The editable region's name where the pane has a `label`, so each file's
15198
+ field says which file it holds. `{field}` is `field-label` and `{name}`
15199
+ the pane's `label`. */
15200
+ "field-name-label"?: (HelixSandboxSource["fieldNameLabel"]) | undefined;
15201
+ /** The editable region's name where the pane has a `label`, so each file's
15202
+ field says which file it holds. `{field}` is `field-label` and `{name}`
15203
+ the pane's `label`. */
15204
+ fieldNameLabel?: (HelixSandboxSource["fieldNameLabel"]) | undefined;
15104
15205
  /** The field's description, read by screen readers while Tab indents. */
15105
15206
  "keys-description"?: (HelixSandboxSource["keysDescription"]) | undefined;
15106
15207
  /** The field's description, read by screen readers while Tab indents. */
@@ -17435,6 +17536,15 @@ order has its whole sentence. `{order}` is the deprecated
17435
17536
  "unsorted-label"?: (HelixTable["unsortedLabel"]) | undefined;
17436
17537
  /** What screen readers hear when the table stops being sorted. */
17437
17538
  unsortedLabel?: (HelixTable["unsortedLabel"]) | undefined;
17539
+ /** Draws only the rows in view, with empty space in place of the rest, as
17540
+ Data Table's `windowed` does. The table's box then scrolls, at the
17541
+ height `--table-block-size` gives it in the styled tier, and the
17542
+ headings stick to its top.
17543
+
17544
+ Off by default. Windowing costs a scroll listener, a measurement per row
17545
+ drawn, and a height on the table, and a table of twenty rows should pay
17546
+ none of them. */
17547
+ windowed?: (HelixTable["windowed"]) | undefined;
17438
17548
  };
17439
17549
 
17440
17550
  export type HelixTableVueEvents = {
@@ -18722,6 +18832,12 @@ and a wheel has exactly one value by construction. Rather than draw
18722
18832
  something that cannot say what it holds, `wheels` renders as a list
18723
18833
  whenever a mode is set. */
18724
18834
  mode?: (HelixTimePicker["mode"]) | undefined;
18835
+ /** The words on the button that chooses the current time, drawn with
18836
+ `show-now`. */
18837
+ "now-label"?: (HelixTimePicker["nowLabel"]) | undefined;
18838
+ /** The words on the button that chooses the current time, drawn with
18839
+ `show-now`. */
18840
+ nowLabel?: (HelixTimePicker["nowLabel"]) | undefined;
18725
18841
  /** The validation message for a time after `max`. `{max}` is replaced with
18726
18842
  `max`, written in `locale`. */
18727
18843
  "range-overflow-message"?: (HelixTimePicker["rangeOverflowMessage"]) | undefined;
@@ -18778,6 +18894,22 @@ wheels take a column of seconds, and `step` counts seconds, the unit
18778
18894
  rows, so give `seconds` a `step` and bounds that keep it a list, or use
18779
18895
  the wheels. */
18780
18896
  seconds?: (HelixTimePicker["seconds"]) | undefined;
18897
+ /** Draws a button under the times that chooses the current time, as
18898
+ `selectNow()` does.
18899
+
18900
+ For a form about something happening now, such as a shift starting or a
18901
+ dose taken, where the reader would otherwise scroll to the time on the
18902
+ clock. The button is a tab stop after the times, and its words are
18903
+ `now-label`. */
18904
+ "show-now"?: (HelixTimePicker["showNow"]) | undefined;
18905
+ /** Draws a button under the times that chooses the current time, as
18906
+ `selectNow()` does.
18907
+
18908
+ For a form about something happening now, such as a shift starting or a
18909
+ dose taken, where the reader would otherwise scroll to the time on the
18910
+ clock. The button is a tab stop after the times, and its words are
18911
+ `now-label`. */
18912
+ showNow?: (HelixTimePicker["showNow"]) | undefined;
18781
18913
  /** How far apart the offered times are, in minutes, or in seconds with
18782
18914
  `seconds`.
18783
18915
 
@@ -20932,6 +21064,23 @@ follows the box as it resizes, which `columns` then does not decide. */
20932
21064
  out as many columns as fit the box at that width, at least one, and
20933
21065
  follows the box as it resizes, which `columns` then does not decide. */
20934
21066
  minColumnWidth?: (HelixVirtualList["minColumnWidth"]) | undefined;
21067
+ /** Which way the list runs. `horizontal` lays the items out along a line
21068
+ and scrolls it sideways: Left and Right move between items, the other
21069
+ way round on a right-to-left page, and `estimate` is an item's width. A
21070
+ grid always runs down. */
21071
+ orientation?: (HelixVirtualList["orientation"]) | undefined;
21072
+ /** The field of each item that names its section, as a key or a path of
21073
+ keys. Set, the items are drawn in sections: a header, then the items, in
21074
+ an element with the `group` role that the header names. A section starts
21075
+ wherever the field changes, so give the items in order. A list of one
21076
+ column only. */
21077
+ "section-field"?: (HelixVirtualList["sectionField"]) | undefined;
21078
+ /** The field of each item that names its section, as a key or a path of
21079
+ keys. Set, the items are drawn in sections: a header, then the items, in
21080
+ an element with the `group` role that the header names. A section starts
21081
+ wherever the field changes, so give the items in order. A list of one
21082
+ column only. */
21083
+ sectionField?: (HelixVirtualList["sectionField"]) | undefined;
20935
21084
  /** What a press does to the items already chosen: `toggle` adds or takes out
20936
21085
  the item, and `replace` selects it alone and lets the arrow keys carry the
20937
21086
  selection, with Control or Command adding or taking out one item. */
@@ -20974,6 +21123,10 @@ It returns what Lit renders: a template from `html`, a string, or a DOM
20974
21123
  node. The list wraps each result in a `<div>` that carries the row's role
20975
21124
  and place in the set. Where it is unset, the row `<template>` is used. */
20976
21125
  renderItem?: (HelixVirtualList["renderItem"]) | undefined;
21126
+ /** Draws each section's header, given its name and its place among the
21127
+ sections, for a list given `section-field`. Set it as a property. Where
21128
+ it is unset, the header is the name as text. */
21129
+ renderSection?: (HelixVirtualList["renderSection"]) | undefined;
20977
21130
  };
20978
21131
 
20979
21132
  export type HelixVirtualListVueEvents = {
@@ -23012,6 +23165,8 @@ export type CustomCssProperties = {
23012
23165
  "--switch-thumb-color"?: (string) | undefined;
23013
23166
  /** The text alignment of the column above the cell: `start`, `center`, or `end`, and unset when the column sets none. The table writes it, and the stylesheet that draws the cell reads it for `justify-content` and `text-align`, which both follow the writing direction. */
23014
23167
  "--table-cell-align"?: (string) | undefined;
23168
+ /** How tall the table's box is while `windowed`, when it scrolls its rows. 24em by default. */
23169
+ "--table-block-size"?: (string) | undefined;
23015
23170
  /** Track list for the columns. It overrides the track list worked out from the columns. */
23016
23171
  "--table-columns"?: (string) | undefined;
23017
23172
  /** The fill behind the copy of a row a pointer drags. */
@@ -23028,6 +23183,8 @@ export type CustomCssProperties = {
23028
23183
  "--table-drag-preview-shadow"?: (string) | undefined;
23029
23184
  /** The color of the words in the line shown while `error-text` is set. */
23030
23185
  "--table-error-color"?: (string) | undefined;
23186
+ /** The fill behind the headings while `windowed`, which the rows scroll under. The page's background by default. */
23187
+ "--table-heading-background-color"?: (string) | undefined;
23031
23188
  /** The color of the words in the `heading` slot. */
23032
23189
  "--table-title-color"?: (string) | undefined;
23033
23190
  /** The space between the `heading` slot and the grid. */
@@ -23160,6 +23317,8 @@ export type CustomCssProperties = {
23160
23317
  "--time-picker-list-block-size"?: (string) | undefined;
23161
23318
  /** The corners of the mark on a wheel's row. */
23162
23319
  "--time-picker-mark-radius"?: (string) | undefined;
23320
+ /** The ink of the button that chooses the current time, with `show-now`. */
23321
+ "--time-picker-now-color"?: (string) | undefined;
23163
23322
  /** Fill behind the times inside a range. */
23164
23323
  "--time-picker-range-color"?: (string) | undefined;
23165
23324
  /** Height and minimum width of one row in a wheel. */
@@ -23446,7 +23605,7 @@ export type CustomCssProperties = {
23446
23605
  "--video-level"?: (string) | undefined;
23447
23606
  /** How far playback has reached, as a fraction of the duration. */
23448
23607
  "--video-progress"?: (string) | undefined;
23449
- /** How tall the scrolling box is. */
23608
+ /** How tall the scrolling box is. A list that runs across is as tall as its rows unless you set it. */
23450
23609
  "--virtual-list-block-size"?: (string) | undefined;
23451
23610
  /** How faint a row `disabled-keys` names is drawn. */
23452
23611
  "--virtual-list-disabled-opacity"?: (string) | undefined;
@@ -24122,7 +24281,7 @@ export interface WcToolkitVueGlobalComponents {
24122
24281
  HelixSandboxPreviewVueProps,
24123
24282
  HelixSandboxPreviewVueEvents
24124
24283
  >;
24125
- /** A source pane dispatches 'helix-before-edit', which bubbles, and the sandbox passes the value to the preview slotted into it. The source pane and the preview do not reference each other, so you can replace either one or use it alone. The event carries the pane's 'name', so one sandbox can hold several panes. 'html' sets the preview's markup, 'css' sets its stylesheet, and 'js' sets a script that runs as a module after the markup. The sandbox ignores a pane with any other name, so that pane can show content without changing the preview. **The dividers are two nested 'helix-splitter' elements**, which handle the pointer, the keyboard, and the corner. The inner splitter holds the panes and the outer one holds the panel, so the panel spans the full width. **Several source panes are files**, one shown at a time under a row of tabs, each named by the pane's 'label' or, without one, its 'name'. 'file' holds the 'name' of the pane shown. The tabs are a tab list: the arrow keys move between them and show each pane, and 'Home' and 'End' go to the first and the last. Choosing one sends 'helix-before-change' with the pane's 'name', which you can cancel, and 'change' once 'file' holds it. The panes not shown carry 'hidden'. One pane draws no tabs. **Any editor can be the source pane**: an element in the 'source' slot with a 'name' that dispatches 'helix-before-edit' with its text, which bubbles. A wrapper around CodeMirror or Monaco sends one on each change and is a pane like 'helix-sandbox-source', and the sandbox reads its 'value' to seed the preview. Dispatch 'helix-caret' from it too for the status bar's position. On a focused divider, the arrow keys move it, and 'Home' and 'End' move it to its ends. 'Enter' on the panes divider shuts the lead pane, and pressed again it opens the pane where it was. 'Enter' on the panel divider shuts the panel to 'panel-collapsed-size', and pressed again it opens the panel to its last height. */
24284
+ /** A source pane dispatches 'helix-before-edit', which bubbles, and the sandbox passes the value to the preview slotted into it. The source pane and the preview do not reference each other, so you can replace either one or use it alone. The preview runs an edit once typing has rested for 'preview-delay', 300 milliseconds by default, so a word typed reloads it once. A pane's text when the sandbox starts reaches it at once. The event carries the pane's 'name', so one sandbox can hold several panes. 'html' sets the preview's markup, 'css' sets its stylesheet, and 'js' sets a script that runs as a module after the markup. The sandbox ignores a pane with any other name, so that pane can show content without changing the preview. **The dividers are two nested 'helix-splitter' elements**, which handle the pointer, the keyboard, and the corner. The inner splitter holds the panes and the outer one holds the panel, so the panel spans the full width. **Several source panes are files**, one shown at a time under a row of tabs, each named by the pane's 'label' or, without one, its 'name'. 'file' holds the 'name' of the pane shown. The tabs are a tab list: the arrow keys move between them and show each pane, and 'Home' and 'End' go to the first and the last. Choosing one sends 'helix-before-change' with the pane's 'name', which you can cancel, and 'change' once 'file' holds it. The panes not shown carry 'hidden'. One pane draws no tabs. **Any editor can be the source pane**: an element in the 'source' slot with a 'name' that dispatches 'helix-before-edit' with its text, which bubbles. A wrapper around CodeMirror or Monaco sends one on each change and is a pane like 'helix-sandbox-source', and the sandbox reads its 'value' to seed the preview. Dispatch 'helix-caret' from it too for the status bar's position. Sandbox is styled only and has behavior, as 'Aura' is. Its behavior is the hand-off from a source pane to a preview frame, which works with any pane that sends 'helix-before-edit', and what it draws is the layout around them: dividers, file tabs, and a panel. A page that wants another look slots its own panes and keeps the hand-off, so there is nothing for a headless version to hold. A development build warns about a source pane with no 'label' and no 'name', whose file tab would have no words. On a focused divider, the arrow keys move it, and 'Home' and 'End' move it to its ends. 'Enter' on the panes divider shuts the lead pane, and pressed again it opens the pane where it was. 'Enter' on the panel divider shuts the panel to 'panel-collapsed-size', and pressed again it opens the panel to its last height. */
24126
24285
  "helix-sandbox": DefineCustomElement<
24127
24286
  HelixSandbox,
24128
24287
  HelixSandboxVueProps,
package/types/words.d.ts CHANGED
@@ -16,6 +16,12 @@ declare module '@fusion.dev/helix-core' {
16
16
  * English: `Press the board to use it`
17
17
  */
18
18
  activateHintLabel: Message
19
+ /**
20
+ * What screen readers hear after `arrange()` moves the cards.
21
+ *
22
+ * English: `Cards arranged`
23
+ */
24
+ arrangedLabel: Message
19
25
  /**
20
26
  * What a screen reader hears when a turn arrives. `{author}` is who wrote
21
27
  * it, as its name says it, and `{text}` its words. A turn with no author a
@@ -464,6 +470,12 @@ declare module '@fusion.dev/helix-core' {
464
470
  * English: `Later years`
465
471
  */
466
472
  nextYearsLabel: Message
473
+ /**
474
+ * The text shown when the filter keeps no rows.
475
+ *
476
+ * English: `No matches`
477
+ */
478
+ noResultsText: Message
467
479
  /**
468
480
  * What screen readers hear when the map is turned back to face north.
469
481
  *
@@ -522,6 +534,12 @@ declare module '@fusion.dev/helix-core' {
522
534
  * English: `Pan up`
523
535
  */
524
536
  panUpLabel: Message
537
+ /**
538
+ * What screen readers hear after a paste, with `{count}` for the cards pasted.
539
+ *
540
+ * English: `{count, plural, one {# card pasted} other {# cards pasted}}`
541
+ */
542
+ pastedLabel: Message
525
543
  /**
526
544
  * What screen readers hear when a key or a click picks up a row, with
527
545
  * `reorderable-rows`. `{name}` is the row's name.
@@ -616,6 +634,14 @@ declare module '@fusion.dev/helix-core' {
616
634
  * English: `Move made again`
617
635
  */
618
636
  redoneLabel: Message
637
+ /**
638
+ * What screen readers hear when Delete asks to remove what is selected, with
639
+ * `{count}` for how many cards and connections, and `{name}` for the one
640
+ * where there is one.
641
+ *
642
+ * English: `{count, plural, one {Asked to remove {name}.} other {Asked to remove # items.}}`
643
+ */
644
+ removedLabel: Message
619
645
  /**
620
646
  * The name of the control that removes one chosen option, with `{name}`
621
647
  * filled in.
@@ -1157,6 +1183,12 @@ declare module '@fusion.dev/helix-core' {
1157
1183
  * English: `Show all lines`
1158
1184
  */
1159
1185
  expandLabel: Message
1186
+ /**
1187
+ * The name of the file tabs, read by screen readers.
1188
+ *
1189
+ * English: `Files`
1190
+ */
1191
+ filesLabel: Message
1160
1192
  /**
1161
1193
  * The words of a button that hides a run of unchanged lines it showed, in a
1162
1194
  * diff with `context-lines`. `{count}` is how many, and each language
@@ -2187,6 +2219,14 @@ declare module '@fusion.dev/helix-core' {
2187
2219
  * English: `Example source`
2188
2220
  */
2189
2221
  fieldLabel: Message
2222
+ /**
2223
+ * The editable region's name where the pane has a `label`, so each file's
2224
+ * field says which file it holds. `{field}` is `field-label` and `{name}`
2225
+ * the pane's `label`.
2226
+ *
2227
+ * English: `{field}, {name}`
2228
+ */
2229
+ fieldNameLabel: Message
2190
2230
  /**
2191
2231
  * The field's description, read by screen readers while Tab indents.
2192
2232
  *
@@ -2489,6 +2529,13 @@ declare module '@fusion.dev/helix-core' {
2489
2529
  * English: `Time`
2490
2530
  */
2491
2531
  label: Message
2532
+ /**
2533
+ * The words on the button that chooses the current time, drawn with
2534
+ * `show-now`.
2535
+ *
2536
+ * English: `Now`
2537
+ */
2538
+ nowLabel: Message
2492
2539
  /**
2493
2540
  * The validation message for a time after `max`. `{max}` is replaced with
2494
2541
  * `max`, written in `locale`.