@fusion.dev/helix-headless 0.159.0 → 0.160.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/custom-elements.json +1252 -140
- package/dist/date-input/root/date-input-root.d.ts +108 -19
- package/dist/date-input/root/date-input-root.js +112 -13
- package/dist/date-picker/root/date-picker-root.d.ts +81 -16
- package/dist/date-picker/root/date-picker-root.js +140 -36
- package/dist/element-events.generated.js +2 -0
- package/dist/format-date/fields.js +1 -0
- package/dist/format-date/options.d.ts +3 -1
- package/dist/format-date/options.js +4 -1
- package/dist/format-date/root/format-date-root.d.ts +27 -11
- package/dist/format-date/root/format-date-root.js +6 -0
- package/dist/listbox/root/listbox-root.js +5 -0
- package/dist/notifications/notification/notification.d.ts +1 -0
- package/dist/notifications/notification/notification.js +2 -1
- package/dist/slider/root/slider-root.d.ts +54 -3
- package/dist/slider/root/slider-root.js +124 -2
- package/dist/time-input/root/time-input-root.d.ts +55 -7
- package/dist/time-input/root/time-input-root.js +70 -10
- package/dist/time-picker/root/time-picker-root.d.ts +27 -5
- package/dist/time-picker/root/time-picker-root.js +52 -13
- package/dist/toggle/group/toggle-group.d.ts +18 -1
- package/dist/toggle/group/toggle-group.js +8 -2
- package/dist/toggle/root/toggle-root.d.ts +2 -2
- package/dist/toggle/root/toggle-root.js +2 -1
- package/lint.json +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +660 -156
- package/types/vue.d.ts +178 -37
- package/types/words.d.ts +72 -0
package/types/vue.d.ts
CHANGED
|
@@ -215,6 +215,7 @@ import type {
|
|
|
215
215
|
HelixSelectedEvent,
|
|
216
216
|
HelixSortEvent,
|
|
217
217
|
HelixSortedEvent,
|
|
218
|
+
HelixClearEvent,
|
|
218
219
|
HelixRejectEvent,
|
|
219
220
|
HelixFacetEvent,
|
|
220
221
|
HelixBeforeActivateEvent,
|
|
@@ -226,7 +227,6 @@ import type {
|
|
|
226
227
|
HelixGraphSignalEvent,
|
|
227
228
|
HelixGraphZoomEvent,
|
|
228
229
|
HelixResizeEvent,
|
|
229
|
-
HelixClearEvent,
|
|
230
230
|
HelixShortcutEvent,
|
|
231
231
|
HelixActionEvent,
|
|
232
232
|
HelixMapPartChangeEvent,
|
|
@@ -5078,37 +5078,56 @@ export type HelixHeadlessDateInputHelixBeforeCloseElementEvent =
|
|
|
5078
5078
|
/** `helix-before-open` event type */
|
|
5079
5079
|
export type HelixHeadlessDateInputHelixBeforeOpenElementEvent =
|
|
5080
5080
|
HelixHeadlessDateInputElementEvent<HelixBeforeOpenEvent>;
|
|
5081
|
+
/** `helix-clear` event type */
|
|
5082
|
+
export type HelixHeadlessDateInputHelixClearElementEvent =
|
|
5083
|
+
HelixHeadlessDateInputElementEvent<HelixClearEvent>;
|
|
5081
5084
|
/** `toggle` event type */
|
|
5082
5085
|
export type HelixHeadlessDateInputToggleElementEvent =
|
|
5083
5086
|
HelixHeadlessDateInputElementEvent<ToggleEvent>;
|
|
5084
5087
|
|
|
5085
5088
|
export type HelixHeadlessDateInputVueProps = {
|
|
5086
|
-
/** What the browser may autofill here, as one of the platform's own tokens
|
|
5089
|
+
/** What the browser may autofill here, as one of the platform's own tokens,
|
|
5090
|
+
such as `bday`.
|
|
5087
5091
|
|
|
5088
5092
|
Empty leaves the attribute off, which is the browser's default and is what
|
|
5089
5093
|
lets autofill work at all: hardcoding `off` here means a birthday or a
|
|
5090
|
-
postal code can never be filled in for a reader.
|
|
5094
|
+
postal code can never be filled in for a reader. With `segmented`, a
|
|
5095
|
+
hidden native date input carries it, since no browser fills the segments. */
|
|
5091
5096
|
autocomplete?: (HelixHeadlessDateInput["autocomplete"]) | undefined;
|
|
5092
|
-
/** The calendar the written date and the calendar's days are
|
|
5093
|
-
`buddhist`, `japanese`, `roc`, or `iso8601
|
|
5094
|
-
|
|
5095
|
-
|
|
5096
|
-
|
|
5097
|
-
|
|
5098
|
-
`
|
|
5099
|
-
|
|
5097
|
+
/** The calendar the written date, the segments, and the calendar's days are
|
|
5098
|
+
in: `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, or a calendar
|
|
5099
|
+
with months of its own that Date Picker's `calendar` names, such as
|
|
5100
|
+
`persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`.
|
|
5101
|
+
|
|
5102
|
+
Absent is the locale's own where its months are the Gregorian months, and
|
|
5103
|
+
`gregory` for every other, as Date Picker's `calendar` is. The value is
|
|
5104
|
+
`YYYY-MM-DD` in every calendar, and a focused text field is ISO in every
|
|
5105
|
+
calendar. In `segmented`, the segments are the day, month, and year as
|
|
5106
|
+
the calendar counts them, in the order the locale writes them: Mehr 14,
|
|
5107
|
+
1405 is month 7 and day 14 of 1405 under `persian`. Under the five with
|
|
5108
|
+
Gregorian months they are the Gregorian day, month, and year, or ISO order
|
|
5109
|
+
for `iso8601`. */
|
|
5100
5110
|
calendar?: (HelixHeadlessDateInput["calendar"]) | undefined;
|
|
5101
5111
|
/** The name of the calendar's grid of days, read by screen readers. */
|
|
5102
5112
|
"calendar-label"?: (HelixHeadlessDateInput["calendarLabel"]) | undefined;
|
|
5103
5113
|
/** The name of the calendar's grid of days, read by screen readers. */
|
|
5104
5114
|
calendarLabel?: (HelixHeadlessDateInput["calendarLabel"]) | undefined;
|
|
5115
|
+
/** Whether the field shows a button that empties it, as Input's `clearable`
|
|
5116
|
+
does. Shown only while the field holds something to clear and is neither
|
|
5117
|
+
disabled nor read-only. */
|
|
5118
|
+
clearable?: (HelixHeadlessDateInput["clearable"]) | undefined;
|
|
5119
|
+
/** The accessible name of the clear button, which shows only an icon. */
|
|
5120
|
+
"clear-label"?: (HelixHeadlessDateInput["clearLabel"]) | undefined;
|
|
5121
|
+
/** The accessible name of the clear button, which shows only an icon. */
|
|
5122
|
+
clearLabel?: (HelixHeadlessDateInput["clearLabel"]) | undefined;
|
|
5105
5123
|
/** How a date is written in the field: `short` through `full`, or ISO.
|
|
5106
5124
|
|
|
5107
5125
|
**The field renders when it is idle and holds the value when it is being
|
|
5108
5126
|
edited.** A written date is a rendering, and a document being edited must
|
|
5109
5127
|
not be a rendering of something else: `Intl.DateTimeFormat` formats and does
|
|
5110
|
-
not parse, so
|
|
5111
|
-
|
|
5128
|
+
not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
|
|
5129
|
+
edit. The field does read a date typed in the locale's order and digits as
|
|
5130
|
+
you leave it, which covers what a reader types.
|
|
5112
5131
|
|
|
5113
5132
|
The way out is not to choose between the two but to separate them in time.
|
|
5114
5133
|
Idle, the field shows `4 August 2026`, which is what a date is for reading.
|
|
@@ -5130,8 +5149,9 @@ submits and what `min` and `max` compare against. */
|
|
|
5130
5149
|
**The field renders when it is idle and holds the value when it is being
|
|
5131
5150
|
edited.** A written date is a rendering, and a document being edited must
|
|
5132
5151
|
not be a rendering of something else: `Intl.DateTimeFormat` formats and does
|
|
5133
|
-
not parse, so
|
|
5134
|
-
|
|
5152
|
+
not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
|
|
5153
|
+
edit. The field does read a date typed in the locale's order and digits as
|
|
5154
|
+
you leave it, which covers what a reader types.
|
|
5135
5155
|
|
|
5136
5156
|
The way out is not to choose between the two but to separate them in time.
|
|
5137
5157
|
Idle, the field shows `4 August 2026`, which is what a date is for reading.
|
|
@@ -5269,6 +5289,14 @@ the date.
|
|
|
5269
5289
|
**The name goes in**, so a row of them is heard as which one each
|
|
5270
5290
|
removes rather than as "Remove" said once per date. */
|
|
5271
5291
|
removeLabel?: (HelixHeadlessDateInput["removeLabel"]) | undefined;
|
|
5292
|
+
/** What a screen reader hears about the dates chosen in the calendar, with
|
|
5293
|
+
`{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
|
|
5294
|
+
`selection-label` says. */
|
|
5295
|
+
"selection-label"?: (HelixHeadlessDateInput["selectionLabel"]) | undefined;
|
|
5296
|
+
/** What a screen reader hears about the dates chosen in the calendar, with
|
|
5297
|
+
`{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
|
|
5298
|
+
`selection-label` says. */
|
|
5299
|
+
selectionLabel?: (HelixHeadlessDateInput["selectionLabel"]) | undefined;
|
|
5272
5300
|
/** How far apart the selectable dates are, in days.
|
|
5273
5301
|
|
|
5274
5302
|
`<input type="date" step>`'s own unit, handed to the calendar this renders
|
|
@@ -5280,6 +5308,14 @@ platform's base. */
|
|
|
5280
5308
|
"step-mismatch-message"?: (HelixHeadlessDateInput["stepMismatchMessage"]) | undefined;
|
|
5281
5309
|
/** The message shown when a date is not on `step`. */
|
|
5282
5310
|
stepMismatchMessage?: (HelixHeadlessDateInput["stepMismatchMessage"]) | undefined;
|
|
5311
|
+
/** The time zone today is read in, such as `America/New_York`, handed to the
|
|
5312
|
+
calendar: the day marked today, and the month an empty field opens on.
|
|
5313
|
+
Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone. */
|
|
5314
|
+
"time-zone"?: (HelixHeadlessDateInput["timeZone"]) | undefined;
|
|
5315
|
+
/** The time zone today is read in, such as `America/New_York`, handed to the
|
|
5316
|
+
calendar: the day marked today, and the month an empty field opens on.
|
|
5317
|
+
Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone. */
|
|
5318
|
+
timeZone?: (HelixHeadlessDateInput["timeZone"]) | undefined;
|
|
5283
5319
|
/** The name of the button that opens the calendar, read by screen readers. */
|
|
5284
5320
|
"trigger-label"?: (HelixHeadlessDateInput["triggerLabel"]) | undefined;
|
|
5285
5321
|
/** The name of the button that opens the calendar, read by screen readers. */
|
|
@@ -5288,6 +5324,12 @@ platform's base. */
|
|
|
5288
5324
|
"unavailable-message"?: (HelixHeadlessDateInput["unavailableMessage"]) | undefined;
|
|
5289
5325
|
/** The message shown when `disable-dates` or `disable-days` bars a date. */
|
|
5290
5326
|
unavailableMessage?: (HelixHeadlessDateInput["unavailableMessage"]) | undefined;
|
|
5327
|
+
/** The message for text that is no date, where `bad-input-message` is not
|
|
5328
|
+
set. `{mode}` is `single`, `range`, or `multiple`. */
|
|
5329
|
+
"unreadable-message"?: (HelixHeadlessDateInput["unreadableMessage"]) | undefined;
|
|
5330
|
+
/** The message for text that is no date, where `bad-input-message` is not
|
|
5331
|
+
set. `{mode}` is `single`, `range`, or `multiple`. */
|
|
5332
|
+
unreadableMessage?: (HelixHeadlessDateInput["unreadableMessage"]) | undefined;
|
|
5291
5333
|
/** The name of the calendar's heading where it shows a page of years, with
|
|
5292
5334
|
`{heading}` filled in. */
|
|
5293
5335
|
"year-view-label"?: (HelixHeadlessDateInput["yearViewLabel"]) | undefined;
|
|
@@ -5316,6 +5358,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
|
|
|
5316
5358
|
are not, where `bad-input-message` is not set. `{kind}` is `date` or
|
|
5317
5359
|
`time`. */
|
|
5318
5360
|
incompleteMessage?: (HelixHeadlessDateInput["incompleteMessage"]) | undefined;
|
|
5361
|
+
/** What a screen reader hears before the segments of a range's second date
|
|
5362
|
+
or time, after each segment's own name. */
|
|
5363
|
+
"range-end-label"?: (HelixHeadlessDateInput["rangeEndLabel"]) | undefined;
|
|
5364
|
+
/** What a screen reader hears before the segments of a range's second date
|
|
5365
|
+
or time, after each segment's own name. */
|
|
5366
|
+
rangeEndLabel?: (HelixHeadlessDateInput["rangeEndLabel"]) | undefined;
|
|
5367
|
+
/** What a screen reader hears before the segments of a range's first date
|
|
5368
|
+
or time, after each segment's own name: "month, Start, Stay". */
|
|
5369
|
+
"range-start-label"?: (HelixHeadlessDateInput["rangeStartLabel"]) | undefined;
|
|
5370
|
+
/** What a screen reader hears before the segments of a range's first date
|
|
5371
|
+
or time, after each segment's own name: "month, Start, Stay". */
|
|
5372
|
+
rangeStartLabel?: (HelixHeadlessDateInput["rangeStartLabel"]) | undefined;
|
|
5319
5373
|
/** Whether the field is a row of segments, one for each part of the date or
|
|
5320
5374
|
time, in place of a line of text.
|
|
5321
5375
|
|
|
@@ -5539,6 +5593,8 @@ export type HelixHeadlessDateInputVueEvents = {
|
|
|
5539
5593
|
"helix-before-close": HelixHeadlessDateInputHelixBeforeCloseElementEvent;
|
|
5540
5594
|
/** Fired before the calendar opens. Cancelable: call `preventDefault()` to keep it closed. */
|
|
5541
5595
|
"helix-before-open": HelixHeadlessDateInputHelixBeforeOpenElementEvent;
|
|
5596
|
+
/** Fired after the clear button has emptied the field, after `input` and `change`. */
|
|
5597
|
+
"helix-clear": HelixHeadlessDateInputHelixClearElementEvent;
|
|
5542
5598
|
/** Fired after the value changes. */
|
|
5543
5599
|
input: HelixHeadlessDateInputElementEvent;
|
|
5544
5600
|
/** Fired when the calendar opens or closes, with `newState` and `oldState`. */
|
|
@@ -5582,14 +5638,16 @@ it is one of the five, such as `buddhist` for `th-TH` or `japanese` for
|
|
|
5582
5638
|
`ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
|
|
5583
5639
|
for `fa-IR`.
|
|
5584
5640
|
|
|
5585
|
-
`persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`,
|
|
5586
|
-
`
|
|
5587
|
-
|
|
5588
|
-
|
|
5589
|
-
|
|
5641
|
+
`persian`, `hebrew`, `islamic`, `islamic-umalqura`, `islamic-civil`,
|
|
5642
|
+
`islamic-tbla`, `islamic-rgsa`, `ethiopic`, `ethioaa`, `coptic`,
|
|
5643
|
+
`indian`, `chinese`, and `dangi` draw a calendar with months of its own,
|
|
5644
|
+
as React Aria's calendars do: each grid is one of that calendar's months,
|
|
5645
|
+
the Hebrew and Chinese leap months and Ethiopia's five-day thirteenth
|
|
5646
|
+
month included, and Previous, Next and the page keys move by those
|
|
5647
|
+
months. With `max-view`, the months view shows that calendar's year, of
|
|
5648
|
+
twelve or thirteen months, and the years view its years. `month` and
|
|
5590
5649
|
`helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
|
|
5591
|
-
|
|
5592
|
-
months only. The value is `YYYY-MM-DD` in every calendar. */
|
|
5650
|
+
value is `YYYY-MM-DD` in every calendar. */
|
|
5593
5651
|
calendar?: (HelixHeadlessDatePicker["calendar"]) | undefined;
|
|
5594
5652
|
/** The month to open on when `month` is not set. */
|
|
5595
5653
|
"default-month"?: (HelixHeadlessDatePicker["defaultMonth"]) | undefined;
|
|
@@ -5736,6 +5794,18 @@ else set needs. */
|
|
|
5736
5794
|
readOnly?: (HelixHeadlessDatePicker["readOnly"]) | undefined;
|
|
5737
5795
|
/** Stops the form from submitting while no date is chosen. */
|
|
5738
5796
|
required?: (HelixHeadlessDatePicker["required"]) | undefined;
|
|
5797
|
+
/** What a screen reader hears about the chosen dates: the grid's
|
|
5798
|
+
description, said again whenever the dates change. `{kind}` is `date`,
|
|
5799
|
+
`start` while a range holds one end, `range`, or `dates` for `multiple`.
|
|
5800
|
+
`{start}` and `{end}` are dates written in `locale`, and `{count}` is how
|
|
5801
|
+
many dates are chosen. */
|
|
5802
|
+
"selection-label"?: (HelixHeadlessDatePicker["selectionLabel"]) | undefined;
|
|
5803
|
+
/** What a screen reader hears about the chosen dates: the grid's
|
|
5804
|
+
description, said again whenever the dates change. `{kind}` is `date`,
|
|
5805
|
+
`start` while a range holds one end, `range`, or `dates` for `multiple`.
|
|
5806
|
+
`{start}` and `{end}` are dates written in `locale`, and `{count}` is how
|
|
5807
|
+
many dates are chosen. */
|
|
5808
|
+
selectionLabel?: (HelixHeadlessDatePicker["selectionLabel"]) | undefined;
|
|
5739
5809
|
/** How far apart the selectable dates are, in days.
|
|
5740
5810
|
|
|
5741
5811
|
`<input type="date" step>`'s own unit, counted from `min` where there is
|
|
@@ -7080,12 +7150,14 @@ export type HelixHeadlessFilterInputVueEvents = {
|
|
|
7080
7150
|
|
|
7081
7151
|
export type HelixHeadlessFormatDateVueProps = {
|
|
7082
7152
|
/** The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
|
|
7083
|
-
`roc`, or `iso8601`,
|
|
7084
|
-
|
|
7085
|
-
|
|
7086
|
-
|
|
7087
|
-
|
|
7088
|
-
|
|
7153
|
+
`roc`, or `iso8601`, or a calendar with months of its own, such as
|
|
7154
|
+
`persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`: every
|
|
7155
|
+
calendar Date Picker and Date Input draw.
|
|
7156
|
+
|
|
7157
|
+
Absent is the locale's own where its months are the Gregorian months,
|
|
7158
|
+
such as `buddhist` for `th-TH`, and `gregory` for every other, such as
|
|
7159
|
+
`persian` for `fa-IR`, so a date written here reads as the same date a
|
|
7160
|
+
Date Picker beside it shows. Write `calendar="persian"` for Mehr 14, 1405. */
|
|
7089
7161
|
calendar?: (HelixHeadlessFormatDate["calendar"]) | undefined;
|
|
7090
7162
|
/** The timestamp, in any format `Date` can parse.
|
|
7091
7163
|
|
|
@@ -7111,6 +7183,14 @@ browser may use either. */
|
|
|
7111
7183
|
dateStyle?: (HelixHeadlessFormatDate["dateStyle"]) | undefined;
|
|
7112
7184
|
/** How the day of the month is written, where a date is shown. */
|
|
7113
7185
|
day?: (HelixHeadlessFormatDate["day"]) | undefined;
|
|
7186
|
+
/** Writes the part of the day in words, such as "in the morning" or "at
|
|
7187
|
+
night", in its `long`, `short`, or `narrow` form, where `hour` is on a
|
|
7188
|
+
twelve-hour clock. */
|
|
7189
|
+
"day-period"?: (HelixHeadlessFormatDate["dayPeriod"]) | undefined;
|
|
7190
|
+
/** Writes the part of the day in words, such as "in the morning" or "at
|
|
7191
|
+
night", in its `long`, `short`, or `narrow` form, where `hour` is on a
|
|
7192
|
+
twelve-hour clock. */
|
|
7193
|
+
dayPeriod?: (HelixHeadlessFormatDate["dayPeriod"]) | undefined;
|
|
7114
7194
|
/** Shows how long ago the timestamp was, in a compact form such as "3h", in
|
|
7115
7195
|
place of the date.
|
|
7116
7196
|
|
|
@@ -7128,6 +7208,12 @@ Off by default, which draws the date as one run of text, as Shoelace and
|
|
|
7128
7208
|
Web Awesome do. An `elapsed` or `relative` reading is one phrase either
|
|
7129
7209
|
way. */
|
|
7130
7210
|
fields?: (HelixHeadlessFormatDate["fields"]) | undefined;
|
|
7211
|
+
/** How many digits of a fraction of a second to write after `second`: 1, 2,
|
|
7212
|
+
or 3, as in 09:41:07.250. */
|
|
7213
|
+
"fractional-second-digits"?: (HelixHeadlessFormatDate["fractionalSecondDigits"]) | undefined;
|
|
7214
|
+
/** How many digits of a fraction of a second to write after `second`: 1, 2,
|
|
7215
|
+
or 3, as in 09:41:07.250. */
|
|
7216
|
+
fractionalSecondDigits?: (HelixHeadlessFormatDate["fractionalSecondDigits"]) | undefined;
|
|
7131
7217
|
/** Draws an `elapsed` or `relative` reading once and leaves it, where it
|
|
7132
7218
|
would otherwise move on as it goes stale.
|
|
7133
7219
|
|
|
@@ -7190,9 +7276,13 @@ Empty is the runtime's own. */
|
|
|
7190
7276
|
|
|
7191
7277
|
Empty is the runtime's own. */
|
|
7192
7278
|
timeZone?: (HelixHeadlessFormatDate["timeZone"]) | undefined;
|
|
7193
|
-
/** Shows the name of the time zone
|
|
7279
|
+
/** Shows the name of the time zone: `long` or `short`, as Pacific Daylight
|
|
7280
|
+
Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
|
|
7281
|
+
`longGeneric` or `shortGeneric`, as Pacific Time or PT. */
|
|
7194
7282
|
"time-zone-name"?: (HelixHeadlessFormatDate["timeZoneName"]) | undefined;
|
|
7195
|
-
/** Shows the name of the time zone
|
|
7283
|
+
/** Shows the name of the time zone: `long` or `short`, as Pacific Daylight
|
|
7284
|
+
Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
|
|
7285
|
+
`longGeneric` or `shortGeneric`, as Pacific Time or PT. */
|
|
7196
7286
|
timeZoneName?: (HelixHeadlessFormatDate["timeZoneName"]) | undefined;
|
|
7197
7287
|
/** How the weekday is written, where one is shown. */
|
|
7198
7288
|
weekday?: (HelixHeadlessFormatDate["weekday"]) | undefined;
|
|
@@ -13527,6 +13617,14 @@ rather than a thumb sitting on nothing. */
|
|
|
13527
13617
|
middle of the track, or `end` at `max`. Absent is `start`. A range fills
|
|
13528
13618
|
between its thumbs and ignores it. */
|
|
13529
13619
|
origin?: (HelixHeadlessSlider["origin"]) | undefined;
|
|
13620
|
+
/** How far Page Up and Page Down move a thumb, in the slider's own units, as
|
|
13621
|
+
React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
|
|
13622
|
+
to the platform, which moves a tenth of the track. */
|
|
13623
|
+
"page-step"?: (HelixHeadlessSlider["pageStep"] | `${number}`) | undefined;
|
|
13624
|
+
/** How far Page Up and Page Down move a thumb, in the slider's own units, as
|
|
13625
|
+
React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
|
|
13626
|
+
to the platform, which moves a tenth of the track. */
|
|
13627
|
+
pageStep?: (HelixHeadlessSlider["pageStep"]) | undefined;
|
|
13530
13628
|
/** Adds a second thumb, so the value is a pair.
|
|
13531
13629
|
|
|
13532
13630
|
The pair is one string, `"10,50"`, which is what `value` and
|
|
@@ -15463,6 +15561,9 @@ export type HelixHeadlessTimeInputHelixBeforeCloseElementEvent =
|
|
|
15463
15561
|
/** `helix-before-open` event type */
|
|
15464
15562
|
export type HelixHeadlessTimeInputHelixBeforeOpenElementEvent =
|
|
15465
15563
|
HelixHeadlessTimeInputElementEvent<HelixBeforeOpenEvent>;
|
|
15564
|
+
/** `helix-clear` event type */
|
|
15565
|
+
export type HelixHeadlessTimeInputHelixClearElementEvent =
|
|
15566
|
+
HelixHeadlessTimeInputElementEvent<HelixClearEvent>;
|
|
15466
15567
|
/** `toggle` event type */
|
|
15467
15568
|
export type HelixHeadlessTimeInputToggleElementEvent =
|
|
15468
15569
|
HelixHeadlessTimeInputElementEvent<ToggleEvent>;
|
|
@@ -15473,6 +15574,14 @@ export type HelixHeadlessTimeInputVueProps = {
|
|
|
15473
15574
|
Empty leaves the attribute off, which is the browser's default and is what
|
|
15474
15575
|
lets autofill work at all. */
|
|
15475
15576
|
autocomplete?: (HelixHeadlessTimeInput["autocomplete"]) | undefined;
|
|
15577
|
+
/** Whether the field shows a button that empties it, as Input's `clearable`
|
|
15578
|
+
does. Shown only while the field holds something to clear and is neither
|
|
15579
|
+
disabled nor read-only. */
|
|
15580
|
+
clearable?: (HelixHeadlessTimeInput["clearable"]) | undefined;
|
|
15581
|
+
/** The accessible name of the clear button, which shows only an icon. */
|
|
15582
|
+
"clear-label"?: (HelixHeadlessTimeInput["clearLabel"]) | undefined;
|
|
15583
|
+
/** The accessible name of the clear button, which shows only an icon. */
|
|
15584
|
+
clearLabel?: (HelixHeadlessTimeInput["clearLabel"]) | undefined;
|
|
15476
15585
|
/** Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
|
|
15477
15586
|
|
|
15478
15587
|
Handed to the list, which offers them as unavailable, and checked against
|
|
@@ -15576,6 +15685,12 @@ never something this element would refuse to read back. */
|
|
|
15576
15685
|
"unavailable-message"?: (HelixHeadlessTimeInput["unavailableMessage"]) | undefined;
|
|
15577
15686
|
/** The message shown when `disable-times` bars a time. */
|
|
15578
15687
|
unavailableMessage?: (HelixHeadlessTimeInput["unavailableMessage"]) | undefined;
|
|
15688
|
+
/** The message for text that is no time, where `bad-input-message` is not
|
|
15689
|
+
set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`. */
|
|
15690
|
+
"unreadable-message"?: (HelixHeadlessTimeInput["unreadableMessage"]) | undefined;
|
|
15691
|
+
/** The message for text that is no time, where `bad-input-message` is not
|
|
15692
|
+
set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`. */
|
|
15693
|
+
unreadableMessage?: (HelixHeadlessTimeInput["unreadableMessage"]) | undefined;
|
|
15579
15694
|
/** Whether the panel shows one list of times or a column for each part of the
|
|
15580
15695
|
time.
|
|
15581
15696
|
|
|
@@ -15613,6 +15728,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
|
|
|
15613
15728
|
are not, where `bad-input-message` is not set. `{kind}` is `date` or
|
|
15614
15729
|
`time`. */
|
|
15615
15730
|
incompleteMessage?: (HelixHeadlessTimeInput["incompleteMessage"]) | undefined;
|
|
15731
|
+
/** What a screen reader hears before the segments of a range's second date
|
|
15732
|
+
or time, after each segment's own name. */
|
|
15733
|
+
"range-end-label"?: (HelixHeadlessTimeInput["rangeEndLabel"]) | undefined;
|
|
15734
|
+
/** What a screen reader hears before the segments of a range's second date
|
|
15735
|
+
or time, after each segment's own name. */
|
|
15736
|
+
rangeEndLabel?: (HelixHeadlessTimeInput["rangeEndLabel"]) | undefined;
|
|
15737
|
+
/** What a screen reader hears before the segments of a range's first date
|
|
15738
|
+
or time, after each segment's own name: "month, Start, Stay". */
|
|
15739
|
+
"range-start-label"?: (HelixHeadlessTimeInput["rangeStartLabel"]) | undefined;
|
|
15740
|
+
/** What a screen reader hears before the segments of a range's first date
|
|
15741
|
+
or time, after each segment's own name: "month, Start, Stay". */
|
|
15742
|
+
rangeStartLabel?: (HelixHeadlessTimeInput["rangeStartLabel"]) | undefined;
|
|
15616
15743
|
/** Whether the field is a row of segments, one for each part of the date or
|
|
15617
15744
|
time, in place of a line of text.
|
|
15618
15745
|
|
|
@@ -15825,6 +15952,8 @@ export type HelixHeadlessTimeInputVueEvents = {
|
|
|
15825
15952
|
"helix-before-close": HelixHeadlessTimeInputHelixBeforeCloseElementEvent;
|
|
15826
15953
|
/** Fired before the list opens. Cancelable: canceling it keeps the list closed and leaves the decision to you. */
|
|
15827
15954
|
"helix-before-open": HelixHeadlessTimeInputHelixBeforeOpenElementEvent;
|
|
15955
|
+
/** Fired after the clear button has emptied the field, after `input` and `change`. */
|
|
15956
|
+
"helix-clear": HelixHeadlessTimeInputHelixClearElementEvent;
|
|
15828
15957
|
/** Fired after the value changes. */
|
|
15829
15958
|
input: HelixHeadlessTimeInputElementEvent;
|
|
15830
15959
|
/** Fired after the list opens or closes, with `newState` and `oldState`. */
|
|
@@ -16337,6 +16466,18 @@ export type HelixHeadlessToggleGroupHelixSelectElementEvent =
|
|
|
16337
16466
|
HelixHeadlessToggleGroupElementEvent<HelixSelectEvent>;
|
|
16338
16467
|
|
|
16339
16468
|
export type HelixHeadlessToggleGroupVueProps = {
|
|
16469
|
+
/** Whether a press on the chosen item, or Space or Enter on it, takes it
|
|
16470
|
+
back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
|
|
16471
|
+
Radix's `ToggleGroup` do in a single group. Absent, a single group always
|
|
16472
|
+
keeps its choice once it has one, as a radio group does. A multiple group
|
|
16473
|
+
releases a pressed item either way. */
|
|
16474
|
+
"allow-empty-selection"?: (HelixHeadlessToggleGroup["allowEmptySelection"]) | undefined;
|
|
16475
|
+
/** Whether a press on the chosen item, or Space or Enter on it, takes it
|
|
16476
|
+
back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
|
|
16477
|
+
Radix's `ToggleGroup` do in a single group. Absent, a single group always
|
|
16478
|
+
keeps its choice once it has one, as a radio group does. A multiple group
|
|
16479
|
+
releases a pressed item either way. */
|
|
16480
|
+
allowEmptySelection?: (HelixHeadlessToggleGroup["allowEmptySelection"]) | undefined;
|
|
16340
16481
|
/** Where the group's label sits. `start` puts it on the track's line.
|
|
16341
16482
|
|
|
16342
16483
|
Absent is above, which is what a field looks like and what almost every
|
|
@@ -18434,13 +18575,13 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
18434
18575
|
HelixHeadlessDataTableVueProps,
|
|
18435
18576
|
HelixHeadlessDataTableVueEvents
|
|
18436
18577
|
>;
|
|
18437
|
-
/** The calendar is 'DatePicker', which handles months, ranges, disabled days, the first day of the week, and the grid's keyboard behavior. The date input adds the field, the overlay, and the connection between them. You can type a date as well as pick one. The native '<input type="date">' gives a picker and locale formatting but allows almost no styling, so the field is a text field. Typing sends 'input' on each keystroke and 'change' when you leave the field, as a text field does. A date picked from the calendar sends both. The trigger and ArrowDown open the calendar with focus on the selected day, Tab moves between the calendar's controls without leaving it, and Escape closes it and returns focus to the field. A press into the field opens the calendar too. Tab into the field opens nothing, and Tab out of the field closes the calendar. With 'segmented', the field is a row of segments in place of the text: a month, a day and a year in the order the locale writes them, each set with digits or the arrow keys. Alt+Down opens the calendar from a segment. Text that is not a date gives the form an empty value, as a native date field does, and 'value' keeps the text so it can be corrected. **Keyboard.** The field is one tab stop, or each segment is with 'segmented', and the trigger is one more. | Key | What it does | |---|---| | Down | In the text field, opens the calendar with focus on the chosen day. | | Alt with Down | Opens the calendar, from the text field or a segment. | | Enter | In the text field, takes the typed date and submits the form, as a native field does. | | Escape | Closes the calendar and puts focus back in the field. | | Tab | In the open calendar, moves between its controls. Out of the field, closes it. | | Up, Down on a segment | Steps the segment by one, round from its last value to its first. | | Page Up, Page Down on a segment | Steps by a page: a week of days, two months, or five years. | | Home, End on a segment | Goes to the segment's first or last value. | | Digits on a segment | Fill it, and move to the next once it can take no more. | | Backspace, Delete on a segment | Empty the segment. | | Left, Right on a segment | Move to the previous or the next segment, along the line of text. | In the calendar, the keys are 'DatePicker''s: the arrows move by a day or a week, Page Up and Page Down by a month, with Shift by a year, and Home and End to the start and the end of the week. */
|
|
18578
|
+
/** The calendar is 'DatePicker', which handles months, ranges, disabled days, the first day of the week, and the grid's keyboard behavior. The date input adds the field, the overlay, and the connection between them. You can type a date as well as pick one. The native '<input type="date">' gives a picker and locale formatting but allows almost no styling, so the field is a text field. Typing sends 'input' on each keystroke and 'change' when you leave the field, as a text field does. A date picked from the calendar sends both. The field reads ISO, '2026-08-04', and a date written in the order, the digits, and the month names of 'locale', '8/4/2026' or 'Aug 4, 2026' in 'en-US' and '4.8.2026' in 'de-DE', which becomes the value as you leave the field. The trigger and ArrowDown open the calendar with focus on the selected day, Tab moves between the calendar's controls without leaving it, and Escape closes it and returns focus to the field. A press into the field opens the calendar too. Tab into the field opens nothing, and Tab out of the field closes the calendar. The text field is a 'combobox' with 'aria-haspopup="dialog"', 'aria-expanded', and 'aria-controls', as in the APG date picker combobox, since Down opens the calendar from it. With 'segmented', the field is a row of segments in place of the text: a month, a day and a year in the order the locale writes them, each set with digits or the arrow keys. Alt+Down opens the calendar from a segment. A 'range' is two rows with a dash between them, the start and the end, as React Aria's DateRangePicker draws them, and 'multiple' keeps the text. Text that is not a date gives the form an empty value, as a native date field does, and 'value' keeps the text so it can be corrected. **Keyboard.** The field is one tab stop, or each segment is with 'segmented', and the trigger is one more. | Key | What it does | |---|---| | Down | In the text field, opens the calendar with focus on the chosen day. | | Alt with Down | Opens the calendar, from the text field or a segment. | | Enter | In the text field, takes the typed date and submits the form, as a native field does. | | Escape | Closes the calendar and puts focus back in the field. | | Tab | In the open calendar, moves between its controls. Out of the field, closes it. | | Up, Down on a segment | Steps the segment by one, round from its last value to its first. | | Page Up, Page Down on a segment | Steps by a page: a week of days, two months, or five years. | | Home, End on a segment | Goes to the segment's first or last value. | | Digits on a segment | Fill it, and move to the next once it can take no more. | | Backspace, Delete on a segment | Empty the segment. | | Left, Right on a segment | Move to the previous or the next segment, along the line of text. | In the calendar, the keys are 'DatePicker''s: the arrows move by a day or a week, Page Up and Page Down by a month, with Shift by a year, and Home and End to the start and the end of the week. */
|
|
18438
18579
|
"helix-headless-date-input": DefineCustomElement<
|
|
18439
18580
|
HelixHeadlessDateInput,
|
|
18440
18581
|
HelixHeadlessDateInputVueProps,
|
|
18441
18582
|
HelixHeadlessDateInputVueEvents
|
|
18442
18583
|
>;
|
|
18443
|
-
/** A grid of days that follows the APG date grid pattern: - The grid is one tab stop. Only the focused cell is in the tab sequence. - Arrow keys move by day and by week. - 'PageUp' and 'PageDown' move by month. - 'Home' and 'End' move to the start and end of the week. **Dates are 'YYYY-MM-DD' strings, and every calculation is in UTC**, because a local-time 'Date' shifts across a time zone or daylight-saving boundary. **The
|
|
18584
|
+
/** A grid of days that follows the APG date grid pattern: - The grid is one tab stop. Only the focused cell is in the tab sequence. - Arrow keys move by day and by week. - 'PageUp' and 'PageDown' move by month. - 'Home' and 'End' move to the start and end of the week. **Dates are 'YYYY-MM-DD' strings, and every calculation is in UTC**, because a local-time 'Date' shifts across a time zone or daylight-saving boundary. **The months are the ones 'calendar' counts**: the Gregorian months for the locale's own calendar where its months are the Gregorian months, as 'th-TH' writes 2569 for 2026, and 'gregory' where they are not, as for 'fa-IR' with no 'calendar'. Name a calendar with months of its own, such as 'persian', and every view counts its days, months, and years from 'Intl'. 'month' sets which month the grid shows, separately from 'value', so paging selects nothing and you can control the view. When unset, it follows the first selected date, then the current month. 'mode' sets how many dates are held. Unset holds one, 'range' holds two and marks the dates between them, and 'multiple' toggles each date. All three read and write the same comma-separated 'value'. With a 'mode', the grid carries 'aria-multiselectable'. While a range holds one end, the grid draws the range to the day under the pointer or the focus, marking those cells 'data-range-preview'. The chosen date, range, or count of dates is the grid's description, in a region screen readers announce when it changes, as React Aria's calendars do. 'selection-label' words it. 'max-view' makes the heading a button that steps back to the months of the year, and with 'year' to a page of years, as Zag's date picker does. The arrows, Home, End and the page keys move there, Enter or a press chooses, and Escape goes back to the days. 'isDateUnavailable' and 'dayContent' are properties for a script: a rule that bars dates, and what each day shows in place of its number. The month heading is a live region, so a screen reader hears the new month when Previous or Next is pressed. Neither moves past 'min' or 'max', and the keys stop at them too. A value outside the bounds, on a barred day, or off 'step' reports 'rangeUnderflow', 'rangeOverflow', 'badInput' or 'stepMismatch', so a form does not submit it. */
|
|
18444
18585
|
"helix-headless-date-picker": DefineCustomElement<
|
|
18445
18586
|
HelixHeadlessDatePicker,
|
|
18446
18587
|
HelixHeadlessDatePickerVueProps,
|
|
@@ -18536,7 +18677,7 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
18536
18677
|
HelixHeadlessFilterInputVueProps,
|
|
18537
18678
|
HelixHeadlessFilterInputVueEvents
|
|
18538
18679
|
>;
|
|
18539
|
-
/** Formats a date with 'Intl' where it is shown, so you do not write the same 'Intl' call and options in your own code. **'elapsed' shows compact relative time for a feed**, such as "42m", "3h", or "1d". After six days it shows a date. In en-US, 'Intl.NumberFormat' narrow renders both 'minute' and 'month' as 'm', so a compact "3m" could mean three minutes or three months. 'elapsedTime' in 'helix/core' does the measurement. **'relative' shows the same reading in words**, such as "3 hours ago" at 'long', "3 hr. ago" at 'short' and "3h ago" at 'narrow', the styles 'sl-relative-time' offers. 'numeric="always"' says "1 day ago" where the default says "yesterday". **'date-style' and 'time-style' take each locale's own pattern**, such as "Tuesday, August 4, 2026" at 'full', and stand in for the separate fields, which 'Intl' refuses beside them. 'hour-cycle' sets a twelve or twenty-four hour clock either way. **The text refreshes on one timer shared by the page.** Each element schedules an update for when its current reading expires, and an element showing a date schedules none, so a long feed left open costs almost nothing. 'frozen' draws the reading once and leaves it. **'fields' draws each field of a date as a part of its own**, such as 'day', 'month' and 'year', so a stylesheet can set the year in a lighter ink or the weekday in capitals with '::part()'. The text between the fields is the locale's own and has no part. An 'elapsed' or 'relative' reading is one phrase, with no parts inside it. **The output is always '<time datetime>'**, so copy and paste and scripts parsing the page get the exact instant, whatever the visible text says. A screen reader reads the text, so an 'elapsed' reading is named in full, such as "3 hours ago", and carries the whole date as its title. **A date with no time, such as '2026-08-04', is that day everywhere.** It is formatted in UTC unless 'time-zone' says otherwise, as Date Input and Date Picker format their dates, so a reader west of UTC sees August 4 and not August 3. **A date is written in a calendar Date Picker draws**: the locale's own where its months are the Gregorian months, as 'th-TH' writes 2569 for 2026, and 'gregory' where they are not, as for 'fa-IR'. 'calendar' picks
|
|
18680
|
+
/** Formats a date with 'Intl' where it is shown, so you do not write the same 'Intl' call and options in your own code. **'elapsed' shows compact relative time for a feed**, such as "42m", "3h", or "1d". After six days it shows a date. In en-US, 'Intl.NumberFormat' narrow renders both 'minute' and 'month' as 'm', so a compact "3m" could mean three minutes or three months. 'elapsedTime' in 'helix/core' does the measurement. **'relative' shows the same reading in words**, such as "3 hours ago" at 'long', "3 hr. ago" at 'short' and "3h ago" at 'narrow', the styles 'sl-relative-time' offers. 'numeric="always"' says "1 day ago" where the default says "yesterday". **'date-style' and 'time-style' take each locale's own pattern**, such as "Tuesday, August 4, 2026" at 'full', and stand in for the separate fields, which 'Intl' refuses beside them. 'hour-cycle' sets a twelve or twenty-four hour clock either way. **The text refreshes on one timer shared by the page.** Each element schedules an update for when its current reading expires, and an element showing a date schedules none, so a long feed left open costs almost nothing. 'frozen' draws the reading once and leaves it. **'fields' draws each field of a date as a part of its own**, such as 'day', 'month' and 'year', so a stylesheet can set the year in a lighter ink or the weekday in capitals with '::part()'. The text between the fields is the locale's own and has no part. An 'elapsed' or 'relative' reading is one phrase, with no parts inside it. **The output is always '<time datetime>'**, so copy and paste and scripts parsing the page get the exact instant, whatever the visible text says. A screen reader reads the text, so an 'elapsed' reading is named in full, such as "3 hours ago", and carries the whole date as its title. **A date with no time, such as '2026-08-04', is that day everywhere.** It is formatted in UTC unless 'time-zone' says otherwise, as Date Input and Date Picker format their dates, so a reader west of UTC sees August 4 and not August 3. **A date is written in a calendar Date Picker draws**: the locale's own where its months are the Gregorian months, as 'th-TH' writes 2569 for 2026, and 'gregory' where they are not, as for 'fa-IR'. 'calendar' picks any of them, 'persian' and 'hebrew' included. */
|
|
18540
18681
|
"helix-headless-format-date": DefineCustomElement<
|
|
18541
18682
|
HelixHeadlessFormatDate,
|
|
18542
18683
|
HelixHeadlessFormatDateVueProps,
|
|
@@ -18884,7 +19025,7 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
18884
19025
|
HelixHeadlessSkipLinkVueProps,
|
|
18885
19026
|
HelixHeadlessSkipLinkVueEvents
|
|
18886
19027
|
>;
|
|
18887
|
-
/** Renders a native '<input type="range">', so the drag, the arrow keys, Home, End, the page keys, and the touch target come from the platform. A native range has a hit area larger than its thumb, sized for a finger. The value is a string, like every other form control's, and 'MixinControllerValue' holds text. Use 'valueAsNumber' for arithmetic. Marks are drawn by the component. The ticks of a '<datalist>' cannot be styled, and Firefox does not render them for a range. Marks are decoration. 'step' sets where the value can land, and the input enforces it whether or not marks are drawn. 'markers' is a count, so a slider from zero to a hundred does not draw a hundred and one marks by accident. A range with two thumbs is two inputs stacked on one track, because there is no native two-thumb range. Each thumb keeps its own value, and a named range submits one entry per thumb under its name, the lowest first. A range given more than two values, such as 'default-value="20,50,80"', has a thumb for each, as React Aria's slider takes any number of thumbs: each stops at its neighbors, and the ones between the first and the last are named by 'thumb-label'. 'min-steps-between-thumbs' keeps them that many steps apart, and the readout joins the two as 'range-text' writes them. 'origin' sets where a single thumb's fill starts: at 'min', at the middle of the track, or at 'max'. A balance or an offset from zero fills from the middle, as Zag's slider 'origin' does. The fill's ends are published as '--slider-from' and '--slider-to'. 'format-options' writes the value with 'Intl.NumberFormat' in 'locale', as a currency, a percent or a unit, and 'formatter' writes it with a function of your own, such as words for a scale. Either one is what a screen reader hears, what the readout shows and what the marker labels say. 'value-text' still wraps it in a sentence, with the formatted value in its place. 'required' comes with the field mixin and cannot fail. A range is never empty: the platform shows its midpoint when no value is set, and 'willUpdate' seeds that midpoint into 'defaultValue', so the value matches the handle from the first render. HTML does not apply 'required' to a range either, so it is not set on the input. It only adds the marker beside the label. **Keyboard.** Each thumb is one tab stop, and its keys are the native range's. | Key | What it does | |---|---| | Right, Up | Moves the thumb up by 'step'. | | Left, Down | Moves the thumb down by 'step'. | | Page Up, Page Down | Moves the thumb by
|
|
19028
|
+
/** Renders a native '<input type="range">', so the drag, the arrow keys, Home, End, the page keys, and the touch target come from the platform. A native range has a hit area larger than its thumb, sized for a finger. The value is a string, like every other form control's, and 'MixinControllerValue' holds text. Use 'valueAsNumber' for arithmetic. Marks are drawn by the component. The ticks of a '<datalist>' cannot be styled, and Firefox does not render them for a range. Marks are decoration. 'step' sets where the value can land, and the input enforces it whether or not marks are drawn. 'markers' is a count, so a slider from zero to a hundred does not draw a hundred and one marks by accident. A range with two thumbs is two inputs stacked on one track, because there is no native two-thumb range. Each thumb keeps its own value, and a named range submits one entry per thumb under its name, the lowest first. A range given more than two values, such as 'default-value="20,50,80"', has a thumb for each, as React Aria's slider takes any number of thumbs: each stops at its neighbors, and the ones between the first and the last are named by 'thumb-label'. 'min-steps-between-thumbs' keeps them that many steps apart, and the readout joins the two as 'range-text' writes them. A press on a range's track takes the nearest thumb to the point pressed, and moving the pointer drags it, as React Aria's and Web Awesome's sliders do. The thumb takes focus, and 'change' is sent as the press ends. 'origin' sets where a single thumb's fill starts: at 'min', at the middle of the track, or at 'max'. A balance or an offset from zero fills from the middle, as Zag's slider 'origin' does. The fill's ends are published as '--slider-from' and '--slider-to'. 'format-options' writes the value with 'Intl.NumberFormat' in 'locale', as a currency, a percent or a unit, and 'formatter' writes it with a function of your own, such as words for a scale. Either one is what a screen reader hears, what the readout shows and what the marker labels say. 'value-text' still wraps it in a sentence, with the formatted value in its place. 'required' comes with the field mixin and cannot fail. A range is never empty: the platform shows its midpoint when no value is set, and 'willUpdate' seeds that midpoint into 'defaultValue', so the value matches the handle from the first render. HTML does not apply 'required' to a range either, so it is not set on the input. It only adds the marker beside the label. **Keyboard.** Each thumb is one tab stop, and its keys are the native range's. | Key | What it does | |---|---| | Right, Up | Moves the thumb up by 'step'. | | Left, Down | Moves the thumb down by 'step'. | | Page Up, Page Down | Moves the thumb by 'page-step', or by the platform's larger step where it is not set. | | Home, End | Moves the thumb to its lowest or highest value. | Under 'readonly' none of these move the thumb, and Tab still reaches it. Each thumb is an '<input type="range">' with 'aria-valuetext' where the value is formatted or worded. A range's thumbs say they stop at each other with 'aria-valuemin' and 'aria-valuemax'. */
|
|
18888
19029
|
"helix-headless-slider": DefineCustomElement<
|
|
18889
19030
|
HelixHeadlessSlider,
|
|
18890
19031
|
HelixHeadlessSliderVueProps,
|
|
@@ -19010,13 +19151,13 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
19010
19151
|
HelixHeadlessTextareaVueProps,
|
|
19011
19152
|
HelixHeadlessTextareaVueEvents
|
|
19012
19153
|
>;
|
|
19013
|
-
/** The list is a 'TimePicker', which you can also use on its own, for example in a settings pane. This element adds the field, the overlay, and the form association, the same arrangement Date Input has with 'DatePicker' and Color Input has with 'ColorPicker'. You can type a time or pick one. The list offers times at a step, and the field lets you enter any time, such as '09:07'. The value is always 'HH:mm' on a 24-hour clock, or 'HH:mm:ss' with 'seconds', because that is what the form submits, what 'min' and 'max' compare against, and what sorts correctly as a string. While idle, the field shows the time in the user's locale format. Once the caret is in the field, it shows the value itself,
|
|
19154
|
+
/** The list is a 'TimePicker', which you can also use on its own, for example in a settings pane. This element adds the field, the overlay, and the form association, the same arrangement Date Input has with 'DatePicker' and Color Input has with 'ColorPicker'. You can type a time or pick one. The list offers times at a step, and the field lets you enter any time, such as '09:07'. The value is always 'HH:mm' on a 24-hour clock, or 'HH:mm:ss' with 'seconds', because that is what the form submits, what 'min' and 'max' compare against, and what sorts correctly as a string. While idle, the field shows the time in the user's locale format. Once the caret is in the field, it shows the value itself. You can type '14:30', or a time as you write one, such as '2:30 PM', '2.30pm', or '14h30', and the field reads it as you leave it, with AM and PM in the locale's words. Typing sends 'input' on each keystroke and 'change' when you leave the field. The trigger and ArrowDown open the list, and so does a press into the field; Tab into the field opens nothing. The text field is a 'combobox' with 'aria-haspopup="dialog"', 'aria-expanded', and 'aria-controls', since Down opens the list from it. In the list, the arrow keys, typed digits and PageUp and PageDown move through the times, and Enter, Space or a click chooses one and closes the panel. With 'variant="wheels"' each wheel moves the time as you turn it, the panel stays open, and Enter or Escape closes it. With 'segmented', the field is a row of segments in place of the text: an hour, a minute, and AM or PM where the clock has them, each set with digits or the arrow keys. Alt+Down opens the list from a segment. A 'range' is two rows with a dash between them, the start and the end, and 'multiple' keeps the text. Text that is not a time gives the form an empty value, as a native time field does, and 'value' keeps the text so it can be corrected. **Keyboard.** The field is one tab stop, or each segment is with 'segmented', and the trigger is one more. | Key | What it does | |---|---| | Down | In the text field, opens the list on the chosen time. | | Alt with Down | Opens the list, from the text field or a segment. | | Enter | In the text field, takes the typed time and submits the form, as a native field does. In the list, chooses the highlighted time. | | Escape | Closes the list and puts focus back in the field. | | Up, Down on a segment | Steps the segment by one, round from its last value to its first. | | Page Up, Page Down on a segment | Steps by a page: two hours, or fifteen minutes or seconds. | | Home, End on a segment | Goes to the segment's first or last value. | | Digits on a segment | Fill it, and move to the next once it can take no more. | | A letter on the half of the day | Picks the half whose name starts with it, such as A for AM. | | Backspace, Delete on a segment | Empty the segment. | | Left, Right on a segment | Move to the previous or the next segment, along the line of text. | In the list, the keys are 'TimePicker''s. */
|
|
19014
19155
|
"helix-headless-time-input": DefineCustomElement<
|
|
19015
19156
|
HelixHeadlessTimeInput,
|
|
19016
19157
|
HelixHeadlessTimeInputVueProps,
|
|
19017
19158
|
HelixHeadlessTimeInputVueEvents
|
|
19018
19159
|
>;
|
|
19019
|
-
/** Shows the times at each 'step' as a 'Listbox', which provides the keyboard behavior, typeahead, scrolling into view, and announcements for a set of options. 'variant="wheels"' shows a column each for the hour, the minute, and the meridiem, and one for the second with 'seconds'. Left and Right move between the wheels, and Tab does too. 'hour-cycle' writes every time on a twelve or a twenty-four hour clock whatever the locale, and 'seconds' holds times to the second. The step keeps the list usable. At the default of 15 minutes a day is 96 rows, which people can scroll or type into. At 1 minute it is 1,440. Use the list for the times your product offers, and Time Input for any time, the same way Date Input separates typing a date from picking one on the calendar. The value is always 'HH:mm' on a 24-hour clock, or 'HH:mm:ss' with 'seconds'. A form submits that shape, 'min' and 'max' compare against it, and it sorts as a string. Each row's text follows the person's own conventions, from 'Intl'. The chosen row is marked in the served markup. The listbox gets the answer as '.value', and Lit SSR serializes no property binding, so without more the 96 served rows would carry no mark until the listbox upgrades and runs 'place'. Each option also gets 'selected', an attribute binding that does serialize, and 'place' then writes the same answer from the same value. This is the same 'selected' you write on 'Option' elsewhere in Helix, and Date Picker marks its choice in markup for the same reason. The list and the wheels both do this, because each wheel is also a listbox. **Keyboard.** The list is one tab stop, and each wheel is one. | Key | What it does | |---|---| | Down, Up | Moves to the next or the previous time, or in a wheel to the next or the previous hour, minute, second, or half of the day. | | Home, End | Moves to the first or the last time, or the first or the last in a wheel. | | Page Down, Page Up | Moves by as many times as the list shows at once. | | Digits | Moves to the next time that starts with what you typed, such as '9' for 9:00. | | Enter, Space | Chooses the highlighted time. Moving chooses too, except under 'manual' or with a 'mode'. With a 'mode', Space adds or removes the time. | | Right, Left | In the wheels, moves to the next or the previous wheel, mirrored right to left. | | Tab | Moves to the next wheel, then out of the picker. | **ARIA.** The list is a 'listbox' named by 'label', a slotted label, the host's 'aria-label' or its 'aria-labelledby'. A development build warns where all four are empty. The list is described by the hint, or by the message in 'feedback' in its place, and carries 'aria-multiselectable' with a 'mode'
|
|
19160
|
+
/** Shows the times at each 'step' as a 'Listbox', which provides the keyboard behavior, typeahead, scrolling into view, and announcements for a set of options. 'variant="wheels"' shows a column each for the hour, the minute, and the meridiem, and one for the second with 'seconds'. Left and Right move between the wheels, and Tab does too. 'hour-cycle' writes every time on a twelve or a twenty-four hour clock whatever the locale, and 'seconds' holds times to the second. The step keeps the list usable. At the default of 15 minutes a day is 96 rows, which people can scroll or type into. At 1 minute it is 1,440. Use the list for the times your product offers, and Time Input for any time, the same way Date Input separates typing a date from picking one on the calendar. The value is always 'HH:mm' on a 24-hour clock, or 'HH:mm:ss' with 'seconds'. A form submits that shape, 'min' and 'max' compare against it, and it sorts as a string. Each row's text follows the person's own conventions, from 'Intl'. The chosen row is marked in the served markup. The listbox gets the answer as '.value', and Lit SSR serializes no property binding, so without more the 96 served rows would carry no mark until the listbox upgrades and runs 'place'. Each option also gets 'selected', an attribute binding that does serialize, and 'place' then writes the same answer from the same value. This is the same 'selected' you write on 'Option' elsewhere in Helix, and Date Picker marks its choice in markup for the same reason. The list and the wheels both do this, because each wheel is also a listbox. **Keyboard.** The list is one tab stop, and each wheel is one. | Key | What it does | |---|---| | Down, Up | Moves to the next or the previous time, or in a wheel to the next or the previous hour, minute, second, or half of the day. | | Home, End | Moves to the first or the last time, or the first or the last in a wheel. | | Page Down, Page Up | Moves by as many times as the list shows at once. | | Digits | Moves to the next time that starts with what you typed, such as '9' for 9:00. | | Enter, Space | Chooses the highlighted time. Moving chooses too, except under 'manual' or with a 'mode'. With a 'mode', Space adds or removes the time. | | Right, Left | In the wheels, moves to the next or the previous wheel, mirrored right to left. | | Tab | Moves to the next wheel, then out of the picker. | **ARIA.** The list is a 'listbox' named by 'label', a slotted label, the host's 'aria-label' or its 'aria-labelledby'. A development build warns where all four are empty. The list is described by the hint, or by the message in 'feedback' in its place, and carries 'aria-multiselectable' with a 'mode'. It carries 'aria-invalid' while 'feedback' says what is wrong, while it holds a time outside 'min' and 'max' or one the picker does not offer, and, for a 'required' picker with no time, once the reader has chosen one or a form has refused the picker. The wheels are a 'group' with that name, holding one 'listbox' per wheel, named "Hour", "Minute", "Second" and "AM/PM" in the page's language, and each described the same way. */
|
|
19020
19161
|
"helix-headless-time-picker": DefineCustomElement<
|
|
19021
19162
|
HelixHeadlessTimePicker,
|
|
19022
19163
|
HelixHeadlessTimePickerVueProps,
|
|
@@ -19052,7 +19193,7 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
19052
19193
|
HelixHeadlessToastVueProps,
|
|
19053
19194
|
HelixHeadlessToastVueEvents
|
|
19054
19195
|
>;
|
|
19055
|
-
/** The indicator is one element that moves to the selected item. A single moving object is easier to follow than a fill that swaps, and it shows where the selection came from. Its size and position are measured from the selected item and written to the indicator as custom properties, because labels have different lengths. Measurement happens on the client, so the server renders the indicator hidden and it fades in once measured. 'selection-mode="multiple"' makes the group a toolbar of buttons that each say whether they are pressed with 'aria-pressed', as React Aria's ToggleButtonGroup and Radix's ToggleGroup do. A press presses or releases one item, the arrow keys move focus without pressing, and 'value' is the pressed values, comma separated, which 'values' also gives as a list. Use 'values' where an item's value holds a comma. The form receives one entry per pressed value, and a page the browser brings back presses the same items again. The indicator stays hidden, and each pressed item is marked with ':state(pressed)'. Inside a toolbar it is a named group of that toolbar's controls instead, so a reader meets one toolbar. 'orientation="vertical"' runs the items down a column, says so to the accessibility tree, and the up and down arrows move between them. **Keyboard.** The group is one tab stop: the chosen item, or the first that can be chosen, as in a radio group, and in a multiple group the item focus was last on. | Key | What it does | |---|---| | Right, Down | Moves to the next item, from the last back to the first. In a single group, chooses it. | | Left, Up | Moves to the item before, from the first round to the last. In a single group, chooses it. | | Home, End | Moves to the first or the last item. In a single group, chooses it. | | Space, Enter | Chooses the focused item, or presses or releases it in a multiple group. | Left and Right swap on a right-to-left page, and a disabled item is passed over. A single group is a 'radiogroup' of items with 'role="radio"' and 'aria-checked'. A multiple group is a 'toolbar' of buttons with 'aria-pressed', or a 'group' inside a toolbar. The group is named by 'label' and carries 'aria-orientation' under 'orientation'. */
|
|
19196
|
+
/** The indicator is one element that moves to the selected item. A single moving object is easier to follow than a fill that swaps, and it shows where the selection came from. Its size and position are measured from the selected item and written to the indicator as custom properties, because labels have different lengths. Measurement happens on the client, so the server renders the indicator hidden and it fades in once measured. 'selection-mode="multiple"' makes the group a toolbar of buttons that each say whether they are pressed with 'aria-pressed', as React Aria's ToggleButtonGroup and Radix's ToggleGroup do. A press presses or releases one item, the arrow keys move focus without pressing, and 'value' is the pressed values, comma separated, which 'values' also gives as a list. Use 'values' where an item's value holds a comma. The form receives one entry per pressed value, and a page the browser brings back presses the same items again. The indicator stays hidden, and each pressed item is marked with ':state(pressed)'. Inside a toolbar it is a named group of that toolbar's controls instead, so a reader meets one toolbar. 'orientation="vertical"' runs the items down a column, says so to the accessibility tree, and the up and down arrows move between them. **Keyboard.** The group is one tab stop: the chosen item, or the first that can be chosen, as in a radio group, and in a multiple group the item focus was last on. | Key | What it does | |---|---| | Right, Down | Moves to the next item, from the last back to the first. In a single group, chooses it. | | Left, Up | Moves to the item before, from the first round to the last. In a single group, chooses it. | | Home, End | Moves to the first or the last item. In a single group, chooses it. | | Space, Enter | Chooses the focused item, or presses or releases it in a multiple group. With 'allow-empty-selection', takes back the chosen item. | Left and Right swap on a right-to-left page, and a disabled item is passed over. A single group is a 'radiogroup' of items with 'role="radio"' and 'aria-checked'. A multiple group is a 'toolbar' of buttons with 'aria-pressed', or a 'group' inside a toolbar. The group is named by 'label' and carries 'aria-orientation' under 'orientation'. */
|
|
19056
19197
|
"helix-headless-toggle-group": DefineCustomElement<
|
|
19057
19198
|
HelixHeadlessToggleGroup,
|
|
19058
19199
|
HelixHeadlessToggleGroupVueProps,
|