@fusion.dev/helix 0.159.0 → 0.161.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/vue.d.ts CHANGED
@@ -190,6 +190,7 @@ import type {
190
190
  HelixHistoryEvent,
191
191
  HelixPinEvent,
192
192
  HelixBeforeToggleEvent,
193
+ HelixToggleEvent,
193
194
  HelixCopyEvent,
194
195
  HelixSampleEndEvent,
195
196
  HelixSampleStartEvent,
@@ -206,6 +207,7 @@ import type {
206
207
  HelixSelectedEvent,
207
208
  HelixSortEvent,
208
209
  HelixSortedEvent,
210
+ HelixClearEvent,
209
211
  HelixRejectEvent,
210
212
  HelixFacetEvent,
211
213
  HelixBeforeActivateEvent,
@@ -217,7 +219,6 @@ import type {
217
219
  HelixGraphSignalEvent,
218
220
  HelixGraphZoomEvent,
219
221
  HelixResizeEvent,
220
- HelixClearEvent,
221
222
  HelixShortcutEvent,
222
223
  HelixActionEvent,
223
224
  HelixMapPartChangeEvent,
@@ -227,7 +228,6 @@ import type {
227
228
  HelixMapRotateEvent,
228
229
  HelixMapTiltEvent,
229
230
  HelixMapZoomEvent,
230
- HelixToggleEvent,
231
231
  HelixBandEvent,
232
232
  HelixReadEvent,
233
233
  HelixCompleteEvent,
@@ -2454,6 +2454,10 @@ what the controls drive rather than the mechanism. */
2454
2454
  /** The name of the group of controls, read by screen readers, which names
2455
2455
  what the controls drive rather than the mechanism. */
2456
2456
  controlsLabel?: (HelixCanvas["controlsLabel"]) | undefined;
2457
+ /** What screen readers hear after a copy, with `{count}` for the cards copied. */
2458
+ "copied-label"?: (HelixCanvas["copiedLabel"]) | undefined;
2459
+ /** What screen readers hear after a copy, with `{count}` for the cards copied. */
2460
+ copiedLabel?: (HelixCanvas["copiedLabel"]) | undefined;
2457
2461
  /** The board's name where `label` is empty. */
2458
2462
  "fallback-label"?: (HelixCanvas["fallbackLabel"]) | undefined;
2459
2463
  /** The board's name where `label` is empty. */
@@ -2541,6 +2545,10 @@ walk the cards. */
2541
2545
  /** The text announced when a connection's end is picked up, with `{from}` and
2542
2546
  `{to}`. */
2543
2547
  reconnectingLabel?: (HelixCanvas["reconnectingLabel"]) | undefined;
2548
+ /** What screen readers hear after a move or a resize is made again. */
2549
+ "redone-label"?: (HelixCanvas["redoneLabel"]) | undefined;
2550
+ /** What screen readers hear after a move or a resize is made again. */
2551
+ redoneLabel?: (HelixCanvas["redoneLabel"]) | undefined;
2544
2552
  /** What screen readers hear after a key resizes a card, with `{name}` for the
2545
2553
  card and `{width}` and `{height}` for its new size, in the document's
2546
2554
  units. */
@@ -2643,6 +2651,10 @@ told the same. A tone left out is not read. */
2643
2651
  "two-finger-hint-label"?: (HelixCanvas["twoFingerHintLabel"]) | undefined;
2644
2652
  /** The hint shown when one finger swipes over the board with `gestures="cooperative"`. */
2645
2653
  twoFingerHintLabel?: (HelixCanvas["twoFingerHintLabel"]) | undefined;
2654
+ /** What screen readers hear after a move or a resize is undone. */
2655
+ "undone-label"?: (HelixCanvas["undoneLabel"]) | undefined;
2656
+ /** What screen readers hear after a move or a resize is undone. */
2657
+ undoneLabel?: (HelixCanvas["undoneLabel"]) | undefined;
2646
2658
  /** The line shown while the board, with `gestures="activate"`, has the gestures. */
2647
2659
  "using-label"?: (HelixCanvas["usingLabel"]) | undefined;
2648
2660
  /** The line shown while the board, with `gestures="activate"`, has the gestures. */
@@ -3563,6 +3575,10 @@ is the way back, and that is a part inside the shadow tree where a
3563
3575
  stylesheet can already reach it. Measured rather than assumed: `label,
3564
3576
  pinned` after upgrade against `label` from the server. */
3565
3577
  pinned?: (HelixChat["pinned"]) | undefined;
3578
+ /** The words on the button that returns to the newest turn, where `resume` is empty. */
3579
+ "resume-label"?: (HelixChat["resumeLabel"]) | undefined;
3580
+ /** The words on the button that returns to the newest turn, where `resume` is empty. */
3581
+ resumeLabel?: (HelixChat["resumeLabel"]) | undefined;
3566
3582
  /** How near the bottom still counts as being at it, in pixels.
3567
3583
 
3568
3584
  A hook rather than a constant, because the right number depends on how tall
@@ -3922,14 +3938,19 @@ export type HelixCheckboxVueEvents = {
3922
3938
  "helix-before-toggle": HelixCheckboxHelixBeforeToggleElementEvent;
3923
3939
  };
3924
3940
 
3925
- export type HelixCodeBlockVueProps = {
3926
- /** Whether long lines wrap.
3941
+ /** `HelixCodeBlock` component event */
3942
+ export type HelixCodeBlockElementEvent<E = Event> = TypedEvent<
3943
+ HelixCodeBlock,
3944
+ E
3945
+ >;
3946
+ /** `helix-before-toggle` event type */
3947
+ export type HelixCodeBlockHelixBeforeToggleElementEvent =
3948
+ HelixCodeBlockElementEvent<HelixBeforeToggleEvent>;
3949
+ /** `helix-toggle` event type */
3950
+ export type HelixCodeBlockHelixToggleElementEvent =
3951
+ HelixCodeBlockElementEvent<HelixToggleEvent>;
3927
3952
 
3928
- Off by default, so long lines scroll, because a line break can be
3929
- significant in code and a wrapped line reads as two. For prose-like code, such as a long command or
3930
- a log line, a wrap reads better than a scroll. Line numbers keep the lines
3931
- unwrapped, since a wrapped line would take one number and several rows. */
3932
- wrap?: (HelixCodeBlock["wrap"]) | undefined;
3953
+ export type HelixCodeBlockVueProps = {
3933
3954
  /** The name of a block that scrolls, which is a tab stop while it does.
3934
3955
 
3935
3956
  Where the block has a name, the scroller says it too, such as "Code,
@@ -4015,6 +4036,14 @@ copy, which takes the code alone. Reflected, because the stylesheet lays
4015
4036
  the gutter out beside the code. A diff numbers its lines from its hunks
4016
4037
  whether or not this is set. */
4017
4038
  lineNumbers?: (HelixCodeBlock["lineNumbers"]) | undefined;
4039
+ /** The lines to mark, as numbers and ranges counted from 1, such as `2, 4-6`.
4040
+ Each run is drawn as a band behind its lines. Not for a diff, which marks
4041
+ its own changes. */
4042
+ "mark-lines"?: (HelixCodeBlock["markLines"]) | undefined;
4043
+ /** The lines to mark, as numbers and ranges counted from 1, such as `2, 4-6`.
4044
+ Each run is drawn as a band behind its lines. Not for a diff, which marks
4045
+ its own changes. */
4046
+ markLines?: (HelixCodeBlock["markLines"]) | undefined;
4018
4047
  /** Whether to leave the copy button off.
4019
4048
 
4020
4049
  Negative, which is not a style choice. A boolean attribute is true whenever
@@ -4061,6 +4090,22 @@ Absent is unified, each removal above its replacement, which fits any
4061
4090
  width. `split` sets the old version beside the new one. Optional rather
4062
4091
  than defaulted, so the host carries no attribute the consumer did not write. */
4063
4092
  variant?: (HelixCodeBlock["variant"]) | undefined;
4093
+ /** Whether long lines wrap. Without it they scroll.
4094
+
4095
+ Off by default, so long lines scroll, because a line break can be
4096
+ significant in code and a wrapped line reads as two. For prose-like code,
4097
+ such as a long command or a log line, a wrap reads better than a scroll.
4098
+ With `line-numbers`, each number stands beside the line it numbers
4099
+ however many rows that line takes. Reflected, because the stylesheet
4100
+ wraps the lines. */
4101
+ wrap?: (HelixCodeBlock["wrap"]) | undefined;
4102
+ /** The wrap button's name, which it keeps whether it is pressed or not. */
4103
+ "wrap-label"?: (HelixCodeBlock["wrapLabel"]) | undefined;
4104
+ /** The wrap button's name, which it keeps whether it is pressed or not. */
4105
+ wrapLabel?: (HelixCodeBlock["wrapLabel"]) | undefined;
4106
+ /** Whether the header has a button that wraps the lines and unwraps them. The
4107
+ block draws a header for it even with no name. */
4108
+ wrappable?: (HelixCodeBlock["wrappable"]) | undefined;
4064
4109
  /** Turns the code into highlighted markup, which the block draws in place of
4065
4110
  the plain text.
4066
4111
 
@@ -4085,7 +4130,12 @@ read, nor for a diff. */
4085
4130
  highlight?: (HelixCodeBlock["highlight"]) | undefined;
4086
4131
  };
4087
4132
 
4088
- export type HelixCodeBlockVueEvents = {};
4133
+ export type HelixCodeBlockVueEvents = {
4134
+ /** The wrap button was pressed, with the `wrap` it asks for in `detail.checked`. Cancelable: cancel it to keep the lines as they are. */
4135
+ "helix-before-toggle": HelixCodeBlockHelixBeforeToggleElementEvent;
4136
+ /** Fired after the wrap button changed `wrap`, with the new value in `detail.checked`. */
4137
+ "helix-toggle": HelixCodeBlockHelixToggleElementEvent;
4138
+ };
4089
4139
 
4090
4140
  export type HelixCodeVueProps = {};
4091
4141
 
@@ -5924,6 +5974,9 @@ export type HelixDateInputHelixBeforeCloseElementEvent =
5924
5974
  /** `helix-before-open` event type */
5925
5975
  export type HelixDateInputHelixBeforeOpenElementEvent =
5926
5976
  HelixDateInputElementEvent<HelixBeforeOpenEvent>;
5977
+ /** `helix-clear` event type */
5978
+ export type HelixDateInputHelixClearElementEvent =
5979
+ HelixDateInputElementEvent<HelixClearEvent>;
5927
5980
 
5928
5981
  export type HelixDateInputVueProps = {
5929
5982
  /** What a row of segments reports when the field is required and every
@@ -5948,6 +6001,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
5948
6001
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
5949
6002
  `time`. */
5950
6003
  incompleteMessage?: (HelixDateInput["incompleteMessage"]) | undefined;
6004
+ /** What a screen reader hears before the segments of a range's second date
6005
+ or time, after each segment's own name. */
6006
+ "range-end-label"?: (HelixDateInput["rangeEndLabel"]) | undefined;
6007
+ /** What a screen reader hears before the segments of a range's second date
6008
+ or time, after each segment's own name. */
6009
+ rangeEndLabel?: (HelixDateInput["rangeEndLabel"]) | undefined;
6010
+ /** What a screen reader hears before the segments of a range's first date
6011
+ or time, after each segment's own name: "month, Start, Stay". */
6012
+ "range-start-label"?: (HelixDateInput["rangeStartLabel"]) | undefined;
6013
+ /** What a screen reader hears before the segments of a range's first date
6014
+ or time, after each segment's own name: "month, Start, Stay". */
6015
+ rangeStartLabel?: (HelixDateInput["rangeStartLabel"]) | undefined;
5951
6016
  /** Whether the field is a row of segments, one for each part of the date or
5952
6017
  time, in place of a line of text.
5953
6018
 
@@ -6112,32 +6177,48 @@ and this one was the English a form in another language still spoke in
6112
6177
  the bubble it raises on submit: `feedback` replaces the message under
6113
6178
  the field and does not reach that one. */
6114
6179
  valueMissingMessage?: (HelixDateInput["valueMissingMessage"]) | undefined;
6115
- /** What the browser may autofill here, as one of the platform's own tokens.
6180
+ /** What the browser may autofill here, as one of the platform's own tokens,
6181
+ such as `bday`.
6116
6182
 
6117
6183
  Empty leaves the attribute off, which is the browser's default and is what
6118
6184
  lets autofill work at all: hardcoding `off` here means a birthday or a
6119
- postal code can never be filled in for a reader. */
6185
+ postal code can never be filled in for a reader. With `segmented`, a
6186
+ hidden native date input carries it, since no browser fills the segments. */
6120
6187
  autocomplete?: (HelixDateInput["autocomplete"]) | undefined;
6121
- /** The calendar the written date and the calendar's days are in: `gregory`,
6122
- `buddhist`, `japanese`, `roc`, or `iso8601`.
6123
-
6124
- Absent is the locale's own where it is one of the five, and `gregory` for
6125
- every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
6126
- every calendar, and a focused field is ISO in every calendar. In
6127
- `segmented`, the segments are the Gregorian day, month, and year, in the
6128
- order the locale writes them, or ISO order for `iso8601`. */
6188
+ /** The calendar the written date, the segments, and the calendar's days are
6189
+ in: `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, or a calendar
6190
+ with months of its own that Date Picker's `calendar` names, such as
6191
+ `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`.
6192
+
6193
+ Absent is the locale's own where its months are the Gregorian months, and
6194
+ `gregory` for every other, as Date Picker's `calendar` is. The value is
6195
+ `YYYY-MM-DD` in every calendar, and a focused text field is ISO in every
6196
+ calendar. In `segmented`, the segments are the day, month, and year as
6197
+ the calendar counts them, in the order the locale writes them: Mehr 14,
6198
+ 1405 is month 7 and day 14 of 1405 under `persian`. Under the five with
6199
+ Gregorian months they are the Gregorian day, month, and year, or ISO order
6200
+ for `iso8601`. */
6129
6201
  calendar?: (HelixDateInput["calendar"]) | undefined;
6130
6202
  /** The name of the calendar's grid of days, read by screen readers. */
6131
6203
  "calendar-label"?: (HelixDateInput["calendarLabel"]) | undefined;
6132
6204
  /** The name of the calendar's grid of days, read by screen readers. */
6133
6205
  calendarLabel?: (HelixDateInput["calendarLabel"]) | undefined;
6206
+ /** Whether the field shows a button that empties it, as Input's `clearable`
6207
+ does. Shown only while the field holds something to clear and is neither
6208
+ disabled nor read-only. */
6209
+ clearable?: (HelixDateInput["clearable"]) | undefined;
6210
+ /** The accessible name of the clear button, which shows only an icon. */
6211
+ "clear-label"?: (HelixDateInput["clearLabel"]) | undefined;
6212
+ /** The accessible name of the clear button, which shows only an icon. */
6213
+ clearLabel?: (HelixDateInput["clearLabel"]) | undefined;
6134
6214
  /** How a date is written in the field: `short` through `full`, or ISO.
6135
6215
 
6136
6216
  **The field renders when it is idle and holds the value when it is being
6137
6217
  edited.** A written date is a rendering, and a document being edited must
6138
6218
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
6139
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
6140
- locale is how a field ends up rejecting what it just displayed.
6219
+ not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
6220
+ edit. The field does read a date typed in the locale's order and digits as
6221
+ you leave it, which covers what a reader types.
6141
6222
 
6142
6223
  The way out is not to choose between the two but to separate them in time.
6143
6224
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -6159,8 +6240,9 @@ submits and what `min` and `max` compare against. */
6159
6240
  **The field renders when it is idle and holds the value when it is being
6160
6241
  edited.** A written date is a rendering, and a document being edited must
6161
6242
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
6162
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
6163
- locale is how a field ends up rejecting what it just displayed.
6243
+ not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
6244
+ edit. The field does read a date typed in the locale's order and digits as
6245
+ you leave it, which covers what a reader types.
6164
6246
 
6165
6247
  The way out is not to choose between the two but to separate them in time.
6166
6248
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -6298,6 +6380,14 @@ the date.
6298
6380
  **The name goes in**, so a row of them is heard as which one each
6299
6381
  removes rather than as "Remove" said once per date. */
6300
6382
  removeLabel?: (HelixDateInput["removeLabel"]) | undefined;
6383
+ /** What a screen reader hears about the dates chosen in the calendar, with
6384
+ `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
6385
+ `selection-label` says. */
6386
+ "selection-label"?: (HelixDateInput["selectionLabel"]) | undefined;
6387
+ /** What a screen reader hears about the dates chosen in the calendar, with
6388
+ `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
6389
+ `selection-label` says. */
6390
+ selectionLabel?: (HelixDateInput["selectionLabel"]) | undefined;
6301
6391
  /** How far apart the selectable dates are, in days.
6302
6392
 
6303
6393
  `<input type="date" step>`'s own unit, handed to the calendar this renders
@@ -6309,6 +6399,14 @@ platform's base. */
6309
6399
  "step-mismatch-message"?: (HelixDateInput["stepMismatchMessage"]) | undefined;
6310
6400
  /** The message shown when a date is not on `step`. */
6311
6401
  stepMismatchMessage?: (HelixDateInput["stepMismatchMessage"]) | undefined;
6402
+ /** The time zone today is read in, such as `America/New_York`, handed to the
6403
+ calendar: the day marked today, and the month an empty field opens on.
6404
+ Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone. */
6405
+ "time-zone"?: (HelixDateInput["timeZone"]) | undefined;
6406
+ /** The time zone today is read in, such as `America/New_York`, handed to the
6407
+ calendar: the day marked today, and the month an empty field opens on.
6408
+ Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone. */
6409
+ timeZone?: (HelixDateInput["timeZone"]) | undefined;
6312
6410
  /** The name of the button that opens the calendar, read by screen readers. */
6313
6411
  "trigger-label"?: (HelixDateInput["triggerLabel"]) | undefined;
6314
6412
  /** The name of the button that opens the calendar, read by screen readers. */
@@ -6317,6 +6415,12 @@ platform's base. */
6317
6415
  "unavailable-message"?: (HelixDateInput["unavailableMessage"]) | undefined;
6318
6416
  /** The message shown when `disable-dates` or `disable-days` bars a date. */
6319
6417
  unavailableMessage?: (HelixDateInput["unavailableMessage"]) | undefined;
6418
+ /** The message for text that is no date, where `bad-input-message` is not
6419
+ set. `{mode}` is `single`, `range`, or `multiple`. */
6420
+ "unreadable-message"?: (HelixDateInput["unreadableMessage"]) | undefined;
6421
+ /** The message for text that is no date, where `bad-input-message` is not
6422
+ set. `{mode}` is `single`, `range`, or `multiple`. */
6423
+ unreadableMessage?: (HelixDateInput["unreadableMessage"]) | undefined;
6320
6424
  /** The name of the calendar's heading where it shows a page of years, with
6321
6425
  `{heading}` filled in. */
6322
6426
  "year-view-label"?: (HelixDateInput["yearViewLabel"]) | undefined;
@@ -6384,6 +6488,8 @@ export type HelixDateInputVueEvents = {
6384
6488
  "helix-before-close": HelixDateInputHelixBeforeCloseElementEvent;
6385
6489
  /** Fired before the calendar opens. Cancelable: call `preventDefault()` to keep it closed. */
6386
6490
  "helix-before-open": HelixDateInputHelixBeforeOpenElementEvent;
6491
+ /** Fired after the clear button has emptied the field, after `input` and `change`. */
6492
+ "helix-clear": HelixDateInputHelixClearElementEvent;
6387
6493
  /** Fired after the value changes. */
6388
6494
  input: HelixDateInputElementEvent;
6389
6495
  };
@@ -6453,14 +6559,16 @@ it is one of the five, such as `buddhist` for `th-TH` or `japanese` for
6453
6559
  `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
6454
6560
  for `fa-IR`.
6455
6561
 
6456
- `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
6457
- `coptic`, and `indian` draw a calendar with months of its own, as React
6458
- Aria's calendars do: each grid is one of that calendar's months, the
6459
- Hebrew leap month and Ethiopia's five-day thirteenth month included, and
6460
- Previous, Next and the page keys move by those months. `month` and
6562
+ `persian`, `hebrew`, `islamic`, `islamic-umalqura`, `islamic-civil`,
6563
+ `islamic-tbla`, `islamic-rgsa`, `ethiopic`, `ethioaa`, `coptic`,
6564
+ `indian`, `chinese`, and `dangi` draw a calendar with months of its own,
6565
+ as React Aria's calendars do: each grid is one of that calendar's months,
6566
+ the Hebrew and Chinese leap months and Ethiopia's five-day thirteenth
6567
+ month included, and Previous, Next and the page keys move by those
6568
+ months. With `max-view`, the months view shows that calendar's year, of
6569
+ twelve or thirteen months, and the years view its years. `month` and
6461
6570
  `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
6462
- heading stays text, as the months and years views are drawn in Gregorian
6463
- months only. The value is `YYYY-MM-DD` in every calendar. */
6571
+ value is `YYYY-MM-DD` in every calendar. */
6464
6572
  calendar?: (HelixDatePicker["calendar"]) | undefined;
6465
6573
  /** The month to open on when `month` is not set. */
6466
6574
  "default-month"?: (HelixDatePicker["defaultMonth"]) | undefined;
@@ -6607,6 +6715,18 @@ else set needs. */
6607
6715
  readOnly?: (HelixDatePicker["readOnly"]) | undefined;
6608
6716
  /** Stops the form from submitting while no date is chosen. */
6609
6717
  required?: (HelixDatePicker["required"]) | undefined;
6718
+ /** What a screen reader hears about the chosen dates: the grid's
6719
+ description, said again whenever the dates change. `{kind}` is `date`,
6720
+ `start` while a range holds one end, `range`, or `dates` for `multiple`.
6721
+ `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
6722
+ many dates are chosen. */
6723
+ "selection-label"?: (HelixDatePicker["selectionLabel"]) | undefined;
6724
+ /** What a screen reader hears about the chosen dates: the grid's
6725
+ description, said again whenever the dates change. `{kind}` is `date`,
6726
+ `start` while a range holds one end, `range`, or `dates` for `multiple`.
6727
+ `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
6728
+ many dates are chosen. */
6729
+ selectionLabel?: (HelixDatePicker["selectionLabel"]) | undefined;
6610
6730
  /** How far apart the selectable dates are, in days.
6611
6731
 
6612
6732
  `<input type="date" step>`'s own unit, counted from `min` where there is
@@ -8178,12 +8298,14 @@ export type HelixFlexVueEvents = {};
8178
8298
 
8179
8299
  export type HelixFormatDateVueProps = {
8180
8300
  /** The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
8181
- `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
8182
-
8183
- Absent is the locale's own where it is one of the five, such as
8184
- `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
8185
- for `fa-IR`, so a date written here reads as the same date a Date Picker
8186
- beside it shows. */
8301
+ `roc`, or `iso8601`, or a calendar with months of its own, such as
8302
+ `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`: every
8303
+ calendar Date Picker and Date Input draw.
8304
+
8305
+ Absent is the locale's own where its months are the Gregorian months,
8306
+ such as `buddhist` for `th-TH`, and `gregory` for every other, such as
8307
+ `persian` for `fa-IR`, so a date written here reads as the same date a
8308
+ Date Picker beside it shows. Write `calendar="persian"` for Mehr 14, 1405. */
8187
8309
  calendar?: (HelixFormatDate["calendar"]) | undefined;
8188
8310
  /** The timestamp, in any format `Date` can parse.
8189
8311
 
@@ -8209,6 +8331,14 @@ browser may use either. */
8209
8331
  dateStyle?: (HelixFormatDate["dateStyle"]) | undefined;
8210
8332
  /** How the day of the month is written, where a date is shown. */
8211
8333
  day?: (HelixFormatDate["day"]) | undefined;
8334
+ /** Writes the part of the day in words, such as "in the morning" or "at
8335
+ night", in its `long`, `short`, or `narrow` form, where `hour` is on a
8336
+ twelve-hour clock. */
8337
+ "day-period"?: (HelixFormatDate["dayPeriod"]) | undefined;
8338
+ /** Writes the part of the day in words, such as "in the morning" or "at
8339
+ night", in its `long`, `short`, or `narrow` form, where `hour` is on a
8340
+ twelve-hour clock. */
8341
+ dayPeriod?: (HelixFormatDate["dayPeriod"]) | undefined;
8212
8342
  /** Shows how long ago the timestamp was, in a compact form such as "3h", in
8213
8343
  place of the date.
8214
8344
 
@@ -8226,6 +8356,12 @@ Off by default, which draws the date as one run of text, as Shoelace and
8226
8356
  Web Awesome do. An `elapsed` or `relative` reading is one phrase either
8227
8357
  way. */
8228
8358
  fields?: (HelixFormatDate["fields"]) | undefined;
8359
+ /** How many digits of a fraction of a second to write after `second`: 1, 2,
8360
+ or 3, as in 09:41:07.250. */
8361
+ "fractional-second-digits"?: (HelixFormatDate["fractionalSecondDigits"]) | undefined;
8362
+ /** How many digits of a fraction of a second to write after `second`: 1, 2,
8363
+ or 3, as in 09:41:07.250. */
8364
+ fractionalSecondDigits?: (HelixFormatDate["fractionalSecondDigits"]) | undefined;
8229
8365
  /** Draws an `elapsed` or `relative` reading once and leaves it, where it
8230
8366
  would otherwise move on as it goes stale.
8231
8367
 
@@ -8288,9 +8424,13 @@ Empty is the runtime's own. */
8288
8424
 
8289
8425
  Empty is the runtime's own. */
8290
8426
  timeZone?: (HelixFormatDate["timeZone"]) | undefined;
8291
- /** Shows the name of the time zone, in its `long` or `short` form. */
8427
+ /** Shows the name of the time zone: `long` or `short`, as Pacific Daylight
8428
+ Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
8429
+ `longGeneric` or `shortGeneric`, as Pacific Time or PT. */
8292
8430
  "time-zone-name"?: (HelixFormatDate["timeZoneName"]) | undefined;
8293
- /** Shows the name of the time zone, in its `long` or `short` form. */
8431
+ /** Shows the name of the time zone: `long` or `short`, as Pacific Daylight
8432
+ Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
8433
+ `longGeneric` or `shortGeneric`, as Pacific Time or PT. */
8294
8434
  timeZoneName?: (HelixFormatDate["timeZoneName"]) | undefined;
8295
8435
  /** How the weekday is written, where one is shown. */
8296
8436
  weekday?: (HelixFormatDate["weekday"]) | undefined;
@@ -15693,6 +15833,14 @@ rather than a thumb sitting on nothing. */
15693
15833
  middle of the track, or `end` at `max`. Absent is `start`. A range fills
15694
15834
  between its thumbs and ignores it. */
15695
15835
  origin?: (HelixSlider["origin"]) | undefined;
15836
+ /** How far Page Up and Page Down move a thumb, in the slider's own units, as
15837
+ React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
15838
+ to the platform, which moves a tenth of the track. */
15839
+ "page-step"?: (HelixSlider["pageStep"] | `${number}`) | undefined;
15840
+ /** How far Page Up and Page Down move a thumb, in the slider's own units, as
15841
+ React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
15842
+ to the platform, which moves a tenth of the track. */
15843
+ pageStep?: (HelixSlider["pageStep"]) | undefined;
15696
15844
  /** Adds a second thumb, so the value is a pair.
15697
15845
 
15698
15846
  The pair is one string, `"10,50"`, which is what `value` and
@@ -16184,6 +16332,22 @@ consumer's to set. */
16184
16332
  "corner-label"?: (HelixSplitter["cornerLabel"]) | undefined;
16185
16333
  /** The name of the handle where two dividers cross, read by screen readers. */
16186
16334
  cornerLabel?: (HelixSplitter["cornerLabel"]) | undefined;
16335
+ /** What the handle where two dividers cross says it is set to, both dividers
16336
+ at once: `{across}` is where the divider that runs down stands, and
16337
+ `{down}` where the one that runs across stands, each a percentage.
16338
+
16339
+ **Both, because the handle moves both**, and a number names one: the
16340
+ handle's `aria-valuenow` is the divider its `aria-orientation` names, and
16341
+ these words are the whole of where it is. */
16342
+ "corner-value-label"?: (HelixSplitter["cornerValueLabel"]) | undefined;
16343
+ /** What the handle where two dividers cross says it is set to, both dividers
16344
+ at once: `{across}` is where the divider that runs down stands, and
16345
+ `{down}` where the one that runs across stands, each a percentage.
16346
+
16347
+ **Both, because the handle moves both**, and a number names one: the
16348
+ handle's `aria-valuenow` is the divider its `aria-orientation` names, and
16349
+ these words are the whole of where it is. */
16350
+ cornerValueLabel?: (HelixSplitter["cornerValueLabel"]) | undefined;
16187
16351
  /** Which pane starts shut, when `collapsed` is not set. */
16188
16352
  "default-collapsed"?: (HelixSplitter["defaultCollapsed"]) | undefined;
16189
16353
  /** Which pane starts shut, when `collapsed` is not set. */
@@ -16850,6 +17014,12 @@ export type HelixTableElementEvent<E = Event> = TypedEvent<HelixTable, E>;
16850
17014
  /** `helix-before-reorder` event type */
16851
17015
  export type HelixTableHelixBeforeReorderElementEvent =
16852
17016
  HelixTableElementEvent<HelixBeforeReorderEvent>;
17017
+ /** `helix-before-toggle` event type */
17018
+ export type HelixTableHelixBeforeToggleElementEvent =
17019
+ HelixTableElementEvent<HelixBeforeToggleEvent>;
17020
+ /** `helix-load-more` event type */
17021
+ export type HelixTableHelixLoadMoreElementEvent =
17022
+ HelixTableElementEvent<HelixLoadMoreEvent>;
16853
17023
  /** `helix-reorder` event type */
16854
17024
  export type HelixTableHelixReorderElementEvent =
16855
17025
  HelixTableElementEvent<HelixReorderEvent>;
@@ -16865,6 +17035,9 @@ export type HelixTableHelixSortElementEvent =
16865
17035
  /** `helix-sorted` event type */
16866
17036
  export type HelixTableHelixSortedElementEvent =
16867
17037
  HelixTableElementEvent<HelixSortedEvent>;
17038
+ /** `helix-toggle` event type */
17039
+ export type HelixTableHelixToggleElementEvent =
17040
+ HelixTableElementEvent<HelixToggleEvent>;
16868
17041
 
16869
17042
  export type HelixTableVueProps = {
16870
17043
  /** The text shown and announced when there are no rows and none are loading. */
@@ -16920,6 +17093,12 @@ and a list here would be a second way to say what that says. This table's
16920
17093
  cells are markup, and a table written as rows of cells with no column
16921
17094
  declared in it has nowhere else to be sized from. */
16922
17095
  columns?: (HelixTable["columns"]) | undefined;
17096
+ /** The keys of the rows whose rows are shown at the start, separated by
17097
+ commas. Used until `expanded` is set. */
17098
+ "default-expanded"?: (HelixTable["defaultExpanded"]) | undefined;
17099
+ /** The keys of the rows whose rows are shown at the start, separated by
17100
+ commas. Used until `expanded` is set. */
17101
+ defaultExpanded?: (HelixTable["defaultExpanded"]) | undefined;
16923
17102
  /** The keys selected at the start, separated by commas. Used until `selected`
16924
17103
  is set. */
16925
17104
  "default-selected"?: (HelixTable["defaultSelected"]) | undefined;
@@ -16954,6 +17133,18 @@ While it is set, a line after the rows shows it, or your own content in the
16954
17133
  `error` slot, in place of the empty and loading lines, and the live region
16955
17134
  says it. */
16956
17135
  errorText?: (HelixTable["errorText"]) | undefined;
17136
+ /** The name of the heading over the disclosure buttons. */
17137
+ "expand-column-label"?: (HelixTable["expandColumnLabel"]) | undefined;
17138
+ /** The name of the heading over the disclosure buttons. */
17139
+ expandColumnLabel?: (HelixTable["expandColumnLabel"]) | undefined;
17140
+ /** The keys of the rows whose rows are shown, separated by commas, in a table
17141
+ whose rows nest. A press on a row's disclosure button asks first, and
17142
+ `default-expanded` seeds what this element then owns. */
17143
+ expanded?: (HelixTable["expanded"]) | undefined;
17144
+ /** The name of a row's disclosure button. `{row}` is the words of the row's first cell. */
17145
+ "expand-row-label"?: (HelixTable["expandRowLabel"]) | undefined;
17146
+ /** The name of a row's disclosure button. `{row}` is the words of the row's first cell. */
17147
+ expandRowLabel?: (HelixTable["expandRowLabel"]) | undefined;
16957
17148
  /** The table's name where neither `label` nor an `aria-label` or
16958
17149
  `aria-labelledby` on the host gives it one. */
16959
17150
  "fallback-label"?: (HelixTable["fallbackLabel"]) | undefined;
@@ -16973,6 +17164,12 @@ cells, which is the one way a cell of your markup can take focus. */
16973
17164
  An `aria-label` or `aria-labelledby` on the host names the table too, and
16974
17165
  wins over this. */
16975
17166
  label?: (HelixTable["label"]) | undefined;
17167
+ /** Sends `helix-load-more` once the end of the table comes within a screen
17168
+ of view, so you can add the next rows as a reader nears them. */
17169
+ "load-more"?: (HelixTable["loadMore"]) | undefined;
17170
+ /** Sends `helix-load-more` once the end of the table comes within a screen
17171
+ of view, so you can add the next rows as a reader nears them. */
17172
+ loadMore?: (HelixTable["loadMore"]) | undefined;
16976
17173
  /** What screen readers hear each time a key moves a held row, in a
16977
17174
  `reorderable` table. `{name}` is the row's words, `{position}` the place it
16978
17175
  would go, counting from 1, and `{count}` the number of rows. */
@@ -17007,6 +17204,12 @@ table moves no row itself: you move your rows on `helix-reorder`. */
17007
17204
  "select-all-label"?: (HelixTable["selectAllLabel"]) | undefined;
17008
17205
  /** The name of the checkbox in the heading that selects every row. */
17009
17206
  selectAllLabel?: (HelixTable["selectAllLabel"]) | undefined;
17207
+ /** The name of the heading over the checkboxes under
17208
+ `selection-mode="single"`, where it holds no checkbox of its own. */
17209
+ "select-column-label"?: (HelixTable["selectColumnLabel"]) | undefined;
17210
+ /** The name of the heading over the checkboxes under
17211
+ `selection-mode="single"`, where it holds no checkbox of its own. */
17212
+ selectColumnLabel?: (HelixTable["selectColumnLabel"]) | undefined;
17010
17213
  /** The keys of the selected rows, separated by commas.
17011
17214
 
17012
17215
  A reader's press fires `helix-select` first, and refusing it leaves the
@@ -17023,6 +17226,20 @@ rows are chosen, written in the locale, and a language that needs plural
17023
17226
  forms writes them: `{count, plural, one {# wybrany} few {# wybrane} many
17024
17227
  {# wybranych} other {# wybranego}}`. */
17025
17228
  selectedLabel?: (HelixTable["selectedLabel"]) | undefined;
17229
+ /** What a press on a row, or in a `grid` table a key that moves to one, does
17230
+ to the rows already selected: `toggle`, the default, leaves them to the
17231
+ checkboxes, and `replace` selects the row alone. */
17232
+ "selection-behavior"?: (HelixTable["selectionBehavior"]) | undefined;
17233
+ /** What a press on a row, or in a `grid` table a key that moves to one, does
17234
+ to the rows already selected: `toggle`, the default, leaves them to the
17235
+ checkboxes, and `replace` selects the row alone. */
17236
+ selectionBehavior?: (HelixTable["selectionBehavior"]) | undefined;
17237
+ /** How many rows a `selectable` table selects: `multiple`, the default, or
17238
+ `single`, one at a time. */
17239
+ "selection-mode"?: (HelixTable["selectionMode"]) | undefined;
17240
+ /** How many rows a `selectable` table selects: `multiple`, the default, or
17241
+ `single`, one at a time. */
17242
+ selectionMode?: (HelixTable["selectionMode"]) | undefined;
17026
17243
  /** The name of a row's checkbox. `{row}` is replaced with the words of the
17027
17244
  row's first cell. */
17028
17245
  "select-row-label"?: (HelixTable["selectRowLabel"]) | undefined;
@@ -17056,6 +17273,10 @@ order has its whole sentence. `{order}` is the deprecated
17056
17273
  export type HelixTableVueEvents = {
17057
17274
  /** Fired when a row is dropped at a new place, in a `reorderable` table, with every row's key in the new order. Cancelable: cancel it to keep the row where it is. */
17058
17275
  "helix-before-reorder": HelixTableHelixBeforeReorderElementEvent;
17276
+ /** Fired from a row when its disclosure button is pressed, with whether it would be open in `detail.checked`. Cancelable: cancel it to keep the row as it is. */
17277
+ "helix-before-toggle": HelixTableHelixBeforeToggleElementEvent;
17278
+ /** Fired, in a table with `load-more`, when the end of the table comes within a screen of view, once for each number of rows. */
17279
+ "helix-load-more": HelixTableHelixLoadMoreElementEvent;
17059
17280
  /** Fired after `helix-before-reorder` when nobody canceled it. Move your rows to the order in `keys`. Cancelable: cancel it to say the move did not happen. */
17060
17281
  "helix-reorder": HelixTableHelixReorderElementEvent;
17061
17282
  /** The selection is about to change. The event carries every selected key, separated by commas. Cancelable: cancel it to keep the current selection. */
@@ -17066,6 +17287,8 @@ export type HelixTableVueEvents = {
17066
17287
  "helix-sort": HelixTableHelixSortElementEvent;
17067
17288
  /** Fired after the sort order changes, with the new order. */
17068
17289
  "helix-sorted": HelixTableHelixSortedElementEvent;
17290
+ /** Fired from a row once the rows under it are shown or hidden, with whether it is open in `detail.checked`. */
17291
+ "helix-toggle": HelixTableHelixToggleElementEvent;
17069
17292
  };
17070
17293
 
17071
17294
  export type HelixTableRowVueProps = {
@@ -17079,6 +17302,10 @@ reached. */
17079
17302
  /** The URL a press on the row follows, which makes the whole row a link.
17080
17303
  Empty, the default, leaves presses to the row's cells. */
17081
17304
  href?: (HelixTableRow["href"]) | undefined;
17305
+ /** The key of the row this one sits under, in a table whose rows nest: that
17306
+ row's `value`, or its place among the rows where it has none. Empty, the
17307
+ default, is a row at the top. */
17308
+ parent?: (HelixTableRow["parent"]) | undefined;
17082
17309
  /** The `rel` of the row's link. You set it yourself, as on an anchor. */
17083
17310
  rel?: (HelixTableRow["rel"]) | undefined;
17084
17311
  /** Where the row's link opens, such as `_blank`. */
@@ -17757,6 +17984,9 @@ export type HelixTimeInputHelixBeforeCloseElementEvent =
17757
17984
  /** `helix-before-open` event type */
17758
17985
  export type HelixTimeInputHelixBeforeOpenElementEvent =
17759
17986
  HelixTimeInputElementEvent<HelixBeforeOpenEvent>;
17987
+ /** `helix-clear` event type */
17988
+ export type HelixTimeInputHelixClearElementEvent =
17989
+ HelixTimeInputElementEvent<HelixClearEvent>;
17760
17990
 
17761
17991
  export type HelixTimeInputVueProps = {
17762
17992
  /** What a row of segments reports when the field is required and every
@@ -17781,6 +18011,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
17781
18011
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
17782
18012
  `time`. */
17783
18013
  incompleteMessage?: (HelixTimeInput["incompleteMessage"]) | undefined;
18014
+ /** What a screen reader hears before the segments of a range's second date
18015
+ or time, after each segment's own name. */
18016
+ "range-end-label"?: (HelixTimeInput["rangeEndLabel"]) | undefined;
18017
+ /** What a screen reader hears before the segments of a range's second date
18018
+ or time, after each segment's own name. */
18019
+ rangeEndLabel?: (HelixTimeInput["rangeEndLabel"]) | undefined;
18020
+ /** What a screen reader hears before the segments of a range's first date
18021
+ or time, after each segment's own name: "month, Start, Stay". */
18022
+ "range-start-label"?: (HelixTimeInput["rangeStartLabel"]) | undefined;
18023
+ /** What a screen reader hears before the segments of a range's first date
18024
+ or time, after each segment's own name: "month, Start, Stay". */
18025
+ rangeStartLabel?: (HelixTimeInput["rangeStartLabel"]) | undefined;
17784
18026
  /** Whether the field is a row of segments, one for each part of the date or
17785
18027
  time, in place of a line of text.
17786
18028
 
@@ -17950,6 +18192,14 @@ the field and does not reach that one. */
17950
18192
  Empty leaves the attribute off, which is the browser's default and is what
17951
18193
  lets autofill work at all. */
17952
18194
  autocomplete?: (HelixTimeInput["autocomplete"]) | undefined;
18195
+ /** Whether the field shows a button that empties it, as Input's `clearable`
18196
+ does. Shown only while the field holds something to clear and is neither
18197
+ disabled nor read-only. */
18198
+ clearable?: (HelixTimeInput["clearable"]) | undefined;
18199
+ /** The accessible name of the clear button, which shows only an icon. */
18200
+ "clear-label"?: (HelixTimeInput["clearLabel"]) | undefined;
18201
+ /** The accessible name of the clear button, which shows only an icon. */
18202
+ clearLabel?: (HelixTimeInput["clearLabel"]) | undefined;
17953
18203
  /** Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
17954
18204
 
17955
18205
  Handed to the list, which offers them as unavailable, and checked against
@@ -18053,6 +18303,12 @@ never something this element would refuse to read back. */
18053
18303
  "unavailable-message"?: (HelixTimeInput["unavailableMessage"]) | undefined;
18054
18304
  /** The message shown when `disable-times` bars a time. */
18055
18305
  unavailableMessage?: (HelixTimeInput["unavailableMessage"]) | undefined;
18306
+ /** The message for text that is no time, where `bad-input-message` is not
18307
+ set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`. */
18308
+ "unreadable-message"?: (HelixTimeInput["unreadableMessage"]) | undefined;
18309
+ /** The message for text that is no time, where `bad-input-message` is not
18310
+ set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`. */
18311
+ unreadableMessage?: (HelixTimeInput["unreadableMessage"]) | undefined;
18056
18312
  /** Whether the panel shows one list of times or a column for each part of the
18057
18313
  time.
18058
18314
 
@@ -18118,6 +18374,8 @@ export type HelixTimeInputVueEvents = {
18118
18374
  "helix-before-close": HelixTimeInputHelixBeforeCloseElementEvent;
18119
18375
  /** Fired before the list opens. Cancelable: canceling it keeps the list closed and leaves the decision to you. */
18120
18376
  "helix-before-open": HelixTimeInputHelixBeforeOpenElementEvent;
18377
+ /** Fired after the clear button has emptied the field, after `input` and `change`. */
18378
+ "helix-clear": HelixTimeInputHelixClearElementEvent;
18121
18379
  /** Fired after the value changes. */
18122
18380
  input: HelixTimeInputElementEvent;
18123
18381
  };
@@ -18466,13 +18724,35 @@ Whatever `<time>` accepts, which is a date, a time, both, a duration or a
18466
18724
  week. Unset, the label is written as it was given and nothing claims to
18467
18725
  know what instant it names. */
18468
18726
  datetime?: (HelixTimelineItem["datetime"]) | undefined;
18727
+ /** Marks an event that has not happened yet, such as one that is scheduled.
18728
+ The mark is the open circle, and a screen reader hears `pending-label`. */
18729
+ pending?: (HelixTimelineItem["pending"]) | undefined;
18730
+ /** What a screen reader hears for an entry that is `pending`. */
18731
+ "pending-label"?: (HelixTimelineItem["pendingLabel"]) | undefined;
18732
+ /** What a screen reader hears for an entry that is `pending`. */
18733
+ pendingLabel?: (HelixTimelineItem["pendingLabel"]) | undefined;
18469
18734
  /** Writes the time as how long ago it was, or how long until it, from
18470
18735
  `datetime`, where the `time` slot is empty: `long` ("3 hours ago"),
18471
18736
  `short` ("3 hr. ago") or `narrow` ("3h ago"). Set with no value, it is
18472
18737
  `long`. The words move on as they go stale. */
18473
18738
  relative?: (HelixTimelineItem["relative"]) | undefined;
18474
- /** The kind of event. It sets the color of the mark and nothing else. */
18739
+ /** The kind of event. It sets the color of the mark, and a screen reader
18740
+ hears it as the word `tone-labels` gives it. */
18475
18741
  tone?: (HelixTimelineItem["tone"]) | undefined;
18742
+ /** What a screen reader is told this entry's tone is, such as "Failed".
18743
+ Absent is the tone's word in `tone-labels`. */
18744
+ "tone-label"?: (HelixTimelineItem["toneLabel"]) | undefined;
18745
+ /** What a screen reader is told this entry's tone is, such as "Failed".
18746
+ Absent is the tone's word in `tone-labels`. */
18747
+ toneLabel?: (HelixTimelineItem["toneLabel"]) | undefined;
18748
+ /** What a screen reader is told each tone is, by the tone's name, written as
18749
+ JSON in the attribute: `tone-labels='{"danger":"Failed"}'`. A tone with no
18750
+ word is not read, which is `neutral` and `primary` in English. */
18751
+ "tone-labels"?: (HelixTimelineItem["toneLabels"]) | undefined;
18752
+ /** What a screen reader is told each tone is, by the tone's name, written as
18753
+ JSON in the attribute: `tone-labels='{"danger":"Failed"}'`. A tone with no
18754
+ word is not read, which is `neutral` and `primary` in English. */
18755
+ toneLabels?: (HelixTimelineItem["toneLabels"]) | undefined;
18476
18756
  };
18477
18757
 
18478
18758
  export type HelixTimelineItemVueEvents = {};
@@ -18726,6 +19006,18 @@ and this one was the English a form in another language still spoke in
18726
19006
  the bubble it raises on submit: `feedback` replaces the message under
18727
19007
  the field and does not reach that one. */
18728
19008
  valueMissingMessage?: (HelixToggleGroup["valueMissingMessage"]) | undefined;
19009
+ /** Whether a press on the chosen item, or Space or Enter on it, takes it
19010
+ back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
19011
+ Radix's `ToggleGroup` do in a single group. Absent, a single group always
19012
+ keeps its choice once it has one, as a radio group does. A multiple group
19013
+ releases a pressed item either way. */
19014
+ "allow-empty-selection"?: (HelixToggleGroup["allowEmptySelection"]) | undefined;
19015
+ /** Whether a press on the chosen item, or Space or Enter on it, takes it
19016
+ back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
19017
+ Radix's `ToggleGroup` do in a single group. Absent, a single group always
19018
+ keeps its choice once it has one, as a radio group does. A multiple group
19019
+ releases a pressed item either way. */
19020
+ allowEmptySelection?: (HelixToggleGroup["allowEmptySelection"]) | undefined;
18729
19021
  /** Where the group's label sits. `start` puts it on the track's line.
18730
19022
 
18731
19023
  Absent is above, which is what a field looks like and what almost every
@@ -19712,6 +20004,13 @@ Written by the playlist rather than by the entry, the way an option's
19712
20004
  selection is: an entry that made itself current would be a second answer to
19713
20005
  which one is playing. */
19714
20006
  current?: (HelixVideoPlaylistItem["current"]) | undefined;
20007
+ /** Whether the entry holds the playlist's tab stop. Unset, every entry is in
20008
+ the tab order, which is what a server renders.
20009
+
20010
+ **Written by the playlist, with no attribute, and it reaches the button.**
20011
+ The playlist gives the stop to the entry a reader last focused, or to the
20012
+ current one, and the arrow keys reach the rest. */
20013
+ focusable?: (HelixVideoPlaylistItem["focusable"]) | undefined;
19715
20014
  };
19716
20015
 
19717
20016
  export type HelixVideoPlaylistItemVueEvents = {
@@ -19779,8 +20078,20 @@ Ignored once `active` is written. */
19779
20078
 
19780
20079
  Ignored once `active` is written. */
19781
20080
  defaultActive?: (HelixVideoPlaylist["defaultActive"]) | undefined;
20081
+ /** What the playlist says while it has no entries. The `empty` slot replaces it. */
20082
+ "empty-label"?: (HelixVideoPlaylist["emptyLabel"]) | undefined;
20083
+ /** What the playlist says while it has no entries. The `empty` slot replaces it. */
20084
+ emptyLabel?: (HelixVideoPlaylist["emptyLabel"]) | undefined;
19782
20085
  /** The list's name, read by screen readers. */
19783
20086
  label?: (HelixVideoPlaylist["label"]) | undefined;
20087
+ /** Stays on an entry when its clip ends, where the playlist would otherwise
20088
+ play the next one. The player's controls, a press, and `next()` still
20089
+ move. `repeat="one"` still plays the entry again. */
20090
+ "no-advance"?: (HelixVideoPlaylist["noAdvance"]) | undefined;
20091
+ /** Stays on an entry when its clip ends, where the playlist would otherwise
20092
+ play the next one. The player's controls, a press, and `next()` still
20093
+ move. `repeat="one"` still plays the entry again. */
20094
+ noAdvance?: (HelixVideoPlaylist["noAdvance"]) | undefined;
19784
20095
  /** What the live region says when the playlist moves to another entry.
19785
20096
  `{title}` is the entry's name.
19786
20097
 
@@ -19812,7 +20123,7 @@ arrives or leaves, so previous goes back through what has played. */
19812
20123
  export type HelixVideoPlaylistVueEvents = {
19813
20124
  /** The current entry changed. The playlist already holds the new entry when this is sent, and `detail.previous` is the entry it left. `currentEntry` is the entry itself, with its `src`, `poster` and name. */
19814
20125
  "helix-activate": HelixVideoPlaylistHelixActivateElementEvent;
19815
- /** The current entry is about to change. Cancelable: cancel it to keep the current entry. */
20126
+ /** The current entry is about to change, and `detail.cause` says why: `press`, `next`, `previous`, `ended`, or `removed`. Cancelable: cancel it to keep the current entry. */
19816
20127
  "helix-before-activate": HelixVideoPlaylistHelixBeforeActivateElementEvent;
19817
20128
  /** The last entry finished playing, and the playlist stopped there. Not sent while `repeat` is set. */
19818
20129
  "helix-end": HelixVideoPlaylistHelixEndElementEvent;
@@ -20346,6 +20657,12 @@ export type HelixVirtualListVueProps = {
20346
20657
  items out as a grid of that many equal columns, windowed a line at a
20347
20658
  time, with Left and Right moving along a line. */
20348
20659
  columns?: (HelixVirtualList["columns"]) | undefined;
20660
+ /** The keys of the items a reader cannot choose or move to, separated by
20661
+ commas, as `value` writes keys. Their rows carry `aria-disabled`. */
20662
+ "disabled-keys"?: (HelixVirtualList["disabledKeys"]) | undefined;
20663
+ /** The keys of the items a reader cannot choose or move to, separated by
20664
+ commas, as `value` writes keys. Their rows carry `aria-disabled`. */
20665
+ disabledKeys?: (HelixVirtualList["disabledKeys"]) | undefined;
20349
20666
  /** The text of the row shown when there are no items and none are loading,
20350
20667
  where the `empty` slot is empty. Empty, the default, shows no row. */
20351
20668
  "empty-label"?: (HelixVirtualList["emptyLabel"]) | undefined;
@@ -20360,6 +20677,11 @@ right whenever the rows really are one height and is the cheaper of the two. */
20360
20677
  /** The id of the script element that holds the items as JSON. `items` wins
20361
20678
  where both are set. */
20362
20679
  for?: (HelixVirtualList["for"]) | undefined;
20680
+ /** The space between two rows, and between two columns in a grid, in
20681
+ pixels. The list counts it in each row's place, so a gap does not walk
20682
+ the rows away from the scroll position the way a margin on each row
20683
+ would. */
20684
+ gap?: (HelixVirtualList["gap"]) | undefined;
20363
20685
  /** The field of each item that is its key in `value`, as a key or a path of
20364
20686
  keys. Empty reads a string or a number item as its own key, and any
20365
20687
  other item by its place in the set. */
@@ -20395,6 +20717,22 @@ disagree with itself; measuring is what a set of genuinely different
20395
20717
  heights needs and costs a read of each row as it renders. A list of
20396
20718
  one-line rows should leave this alone. */
20397
20719
  measured?: (HelixVirtualList["measured"]) | undefined;
20720
+ /** The narrowest a column of a grid may be, in pixels. Set, the list lays
20721
+ out as many columns as fit the box at that width, at least one, and
20722
+ follows the box as it resizes, which `columns` then does not decide. */
20723
+ "min-column-width"?: (HelixVirtualList["minColumnWidth"] | `${number}`) | undefined;
20724
+ /** The narrowest a column of a grid may be, in pixels. Set, the list lays
20725
+ out as many columns as fit the box at that width, at least one, and
20726
+ follows the box as it resizes, which `columns` then does not decide. */
20727
+ minColumnWidth?: (HelixVirtualList["minColumnWidth"]) | undefined;
20728
+ /** What a press does to the items already chosen: `toggle` adds or takes out
20729
+ the item, and `replace` selects it alone and lets the arrow keys carry the
20730
+ selection, with Control or Command adding or taking out one item. */
20731
+ "selection-behavior"?: (HelixVirtualList["selectionBehavior"]) | undefined;
20732
+ /** What a press does to the items already chosen: `toggle` adds or takes out
20733
+ the item, and `replace` selects it alone and lets the arrow keys carry the
20734
+ selection, with Control or Command adding or taking out one item. */
20735
+ selectionBehavior?: (HelixVirtualList["selectionBehavior"]) | undefined;
20398
20736
  /** Makes the list a list box a reader chooses from: `single` selects one
20399
20737
  item, and `multiple` any number. Unset is a list a reader reads. */
20400
20738
  "selection-mode"?: (HelixVirtualList["selectionMode"]) | undefined;
@@ -20877,12 +21215,24 @@ export type CustomCssProperties = {
20877
21215
  "--code-block-label-color"?: (string) | undefined;
20878
21216
  /** The line height of the code and its line numbers, as a number or a length. */
20879
21217
  "--code-block-line-height"?: (string) | undefined;
21218
+ /** The band behind the lines `mark-lines` names. The primary color at a wash by default. */
21219
+ "--code-block-mark-color"?: (string) | undefined;
21220
+ /** The edge at the start of a band behind marked lines. The primary color by default. */
21221
+ "--code-block-mark-edge-color"?: (string) | undefined;
20880
21222
  /** The tallest the code grows before it scrolls, or until `expandable`'s button shows every line. The default is no limit. */
20881
21223
  "--code-block-max-block-size"?: (string) | undefined;
20882
21224
  /** The corner radius of the header's top and the block's bottom, which form one shape. */
20883
21225
  "--code-block-radius"?: (string) | undefined;
20884
21226
  /** The color a diff's removed lines are tinted in and their `-` is drawn in. The danger color by default. */
20885
21227
  "--code-block-removed-color"?: (string) | undefined;
21228
+ /** Written by the block on each `number` in a `wrap` block with `line-numbers`: how tall the line it numbers is laid out. Do not set it. */
21229
+ "--code-block-line-size"?: (string) | undefined;
21230
+ /** Written by the block on each `mark`: how wide the code is, scrolled part included. Do not set it. */
21231
+ "--code-block-mark-inline-size"?: (string) | undefined;
21232
+ /** Written by the block on each `mark`: how tall its run of lines is. Do not set it. */
21233
+ "--code-block-mark-size"?: (string) | undefined;
21234
+ /** Written by the block on each `mark`: how far down the code its run of lines starts. Do not set it. */
21235
+ "--code-block-mark-start"?: (string) | undefined;
20886
21236
  /** Fill behind the fragment. Defaults to the foreground color at 6%, which looks the same on a light page and a dark one. */
20887
21237
  "--code-background-color"?: (string) | undefined;
20888
21238
  /** The fragment's typeface. Defaults to the mono face. */
@@ -21089,6 +21439,8 @@ export type CustomCssProperties = {
21089
21439
  "--date-picker-period-size"?: (string) | undefined;
21090
21440
  /** Band behind the days in a range. */
21091
21441
  "--date-picker-range-color"?: (string) | undefined;
21442
+ /** Band behind the days a waiting range is drawn to, before its second end is chosen. */
21443
+ "--date-picker-range-preview-color"?: (string) | undefined;
21092
21444
  /** Height of a week row. */
21093
21445
  "--date-picker-row-size"?: (string) | undefined;
21094
21446
  /** Fill behind a selected day. */
@@ -22471,14 +22823,20 @@ export type CustomCssProperties = {
22471
22823
  "--table-drop-indicator-color"?: (string) | undefined;
22472
22824
  /** The thickness of the line where a moved row would land. */
22473
22825
  "--table-drop-indicator-size"?: (string) | undefined;
22826
+ /** The color of a row's disclosure button, in a table whose rows nest. */
22827
+ "--table-expand-color"?: (string) | undefined;
22474
22828
  /** The color of a row's grip, in a `reorderable` table. */
22475
22829
  "--table-grip-color"?: (string) | undefined;
22476
22830
  /** The opacity of a row's grip while a sort decides the order. */
22477
22831
  "--table-grip-disabled-opacity"?: (string) | undefined;
22832
+ /** How far each step of depth sets a nested row's disclosure cell in. */
22833
+ "--table-indent"?: (string) | undefined;
22478
22834
  /** The opacity of the cells of a `disabled` row. */
22479
22835
  "--table-row-disabled-opacity"?: (string) | undefined;
22480
22836
  /** The wash across the cells of a row with `href` under the pointer. */
22481
22837
  "--table-row-hover-background-color"?: (string) | undefined;
22838
+ /** Written by the row on its `expand` cell: how deep the row sits, from 1. Do not set it. */
22839
+ "--table-row-level"?: (string) | undefined;
22482
22840
  /** The space between the tab row and the panel's content. */
22483
22841
  "--tabs-panel-padding-block-start"?: (string) | undefined;
22484
22842
  /** The space between tabs. */
@@ -22837,6 +23195,10 @@ export type CustomCssProperties = {
22837
23195
  "--video-playlist-menu-poster"?: (string) | undefined;
22838
23196
  /** The size of the trigger's icon. */
22839
23197
  "--video-playlist-menu-size"?: (string) | undefined;
23198
+ /** The color of the words shown while there are no entries. */
23199
+ "--video-playlist-empty-color"?: (string) | undefined;
23200
+ /** The space around the words shown while there are no entries. */
23201
+ "--video-playlist-empty-padding"?: (string) | undefined;
22840
23202
  /** The space between the player and the list. */
22841
23203
  "--video-playlist-gap"?: (string) | undefined;
22842
23204
  /** The space between the entries. */
@@ -22867,6 +23229,8 @@ export type CustomCssProperties = {
22867
23229
  "--video-progress"?: (string) | undefined;
22868
23230
  /** How tall the scrolling box is. */
22869
23231
  "--virtual-list-block-size"?: (string) | undefined;
23232
+ /** How faint a row `disabled-keys` names is drawn. */
23233
+ "--virtual-list-disabled-opacity"?: (string) | undefined;
22870
23234
  /** The color of the text in the row shown when there are no items. */
22871
23235
  "--virtual-list-empty-color"?: (string) | undefined;
22872
23236
  /** The space around the text in the row shown when there are no items. */
@@ -23047,7 +23411,7 @@ export interface WcToolkitVueGlobalComponents {
23047
23411
  HelixCheckboxVueProps,
23048
23412
  HelixCheckboxVueEvents
23049
23413
  >;
23050
- /** The header sits above the code with the copy button at its end, so the button never covers the first line. A block with no name has no header. The button then sits beside the code in space the block keeps clear: an end gutter for code, and a band above the first hunk for a diff. A diff draws one block per file in the same frame. Each changed line is tinted in its tone at Tag's resting strength, with its '+' or '-' in the tone's ink color, so you can see the change without comparing two pale backgrounds. A split diff stacks its two versions when the file is narrower than about 40rem. Long lines scroll by default. Set 'wrap' to wrap them instead, for prose-like code such as a long command, and set '--code-block-max-block-size' to cap the height of a long file, which then scrolls. */
23414
+ /** The header sits above the code with the copy button at its end, so the button never covers the first line. A block with no name has no header. The button then sits beside the code in space the block keeps clear: an end gutter for code, and a band above the first hunk for a diff. A diff draws one block per file in the same frame. Each changed line is tinted in its tone at Tag's resting strength, with its '+' or '-' in the tone's ink color, so you can see the change without comparing two pale backgrounds. A split diff stacks its two versions when the file is narrower than about 40rem. Long lines scroll by default. Set 'wrap' to wrap them instead, for prose-like code such as a long command, and set '--code-block-max-block-size' to cap the height of a long file, which then scrolls. A line 'mark-lines' names takes a band in the primary color, with an edge at its start. */
23051
23415
  "helix-code-block": DefineCustomElement<
23052
23416
  HelixCodeBlock,
23053
23417
  HelixCodeBlockVueProps,