@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/types/jsx.d.ts CHANGED
@@ -9877,37 +9877,56 @@ export type HelixHeadlessDateInputHelixBeforeCloseElementEvent =
9877
9877
  /** `helix-before-open` event type */
9878
9878
  export type HelixHeadlessDateInputHelixBeforeOpenElementEvent =
9879
9879
  HelixHeadlessDateInputElementEvent<HelixBeforeOpenEvent>;
9880
+ /** `helix-clear` event type */
9881
+ export type HelixHeadlessDateInputHelixClearElementEvent =
9882
+ HelixHeadlessDateInputElementEvent<HelixClearEvent>;
9880
9883
  /** `toggle` event type */
9881
9884
  export type HelixHeadlessDateInputToggleElementEvent =
9882
9885
  HelixHeadlessDateInputElementEvent<ToggleEvent>;
9883
9886
 
9884
9887
  export type HelixHeadlessDateInputProps = {
9885
- /** What the browser may autofill here, as one of the platform's own tokens.
9888
+ /** What the browser may autofill here, as one of the platform's own tokens,
9889
+ such as `bday`.
9886
9890
 
9887
9891
  Empty leaves the attribute off, which is the browser's default and is what
9888
9892
  lets autofill work at all: hardcoding `off` here means a birthday or a
9889
- postal code can never be filled in for a reader. */
9893
+ postal code can never be filled in for a reader. With `segmented`, a
9894
+ hidden native date input carries it, since no browser fills the segments. */
9890
9895
  autocomplete?: (HelixHeadlessDateInput["autocomplete"]) | undefined;
9891
- /** The calendar the written date and the calendar's days are in: `gregory`,
9892
- `buddhist`, `japanese`, `roc`, or `iso8601`.
9893
-
9894
- Absent is the locale's own where it is one of the five, and `gregory` for
9895
- every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
9896
- every calendar, and a focused field is ISO in every calendar. In
9897
- `segmented`, the segments are the Gregorian day, month, and year, in the
9898
- order the locale writes them, or ISO order for `iso8601`. */
9896
+ /** The calendar the written date, the segments, and the calendar's days are
9897
+ in: `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, or a calendar
9898
+ with months of its own that Date Picker's `calendar` names, such as
9899
+ `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`.
9900
+
9901
+ Absent is the locale's own where its months are the Gregorian months, and
9902
+ `gregory` for every other, as Date Picker's `calendar` is. The value is
9903
+ `YYYY-MM-DD` in every calendar, and a focused text field is ISO in every
9904
+ calendar. In `segmented`, the segments are the day, month, and year as
9905
+ the calendar counts them, in the order the locale writes them: Mehr 14,
9906
+ 1405 is month 7 and day 14 of 1405 under `persian`. Under the five with
9907
+ Gregorian months they are the Gregorian day, month, and year, or ISO order
9908
+ for `iso8601`. */
9899
9909
  calendar?: (HelixHeadlessDateInput["calendar"]) | undefined;
9900
9910
  /** The name of the calendar's grid of days, read by screen readers. */
9901
9911
  "calendar-label"?: (HelixHeadlessDateInput["calendarLabel"]) | undefined;
9902
9912
  /** The name of the calendar's grid of days, read by screen readers. */
9903
9913
  calendarLabel?: (HelixHeadlessDateInput["calendarLabel"]) | undefined;
9914
+ /** Whether the field shows a button that empties it, as Input's `clearable`
9915
+ does. Shown only while the field holds something to clear and is neither
9916
+ disabled nor read-only. */
9917
+ clearable?: (HelixHeadlessDateInput["clearable"]) | undefined;
9918
+ /** The accessible name of the clear button, which shows only an icon. */
9919
+ "clear-label"?: (HelixHeadlessDateInput["clearLabel"]) | undefined;
9920
+ /** The accessible name of the clear button, which shows only an icon. */
9921
+ clearLabel?: (HelixHeadlessDateInput["clearLabel"]) | undefined;
9904
9922
  /** How a date is written in the field: `short` through `full`, or ISO.
9905
9923
 
9906
9924
  **The field renders when it is idle and holds the value when it is being
9907
9925
  edited.** A written date is a rendering, and a document being edited must
9908
9926
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
9909
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
9910
- locale is how a field ends up rejecting what it just displayed.
9927
+ not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
9928
+ edit. The field does read a date typed in the locale's order and digits as
9929
+ you leave it, which covers what a reader types.
9911
9930
 
9912
9931
  The way out is not to choose between the two but to separate them in time.
9913
9932
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -9929,8 +9948,9 @@ submits and what `min` and `max` compare against. */
9929
9948
  **The field renders when it is idle and holds the value when it is being
9930
9949
  edited.** A written date is a rendering, and a document being edited must
9931
9950
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
9932
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
9933
- locale is how a field ends up rejecting what it just displayed.
9951
+ not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
9952
+ edit. The field does read a date typed in the locale's order and digits as
9953
+ you leave it, which covers what a reader types.
9934
9954
 
9935
9955
  The way out is not to choose between the two but to separate them in time.
9936
9956
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -10068,6 +10088,14 @@ the date.
10068
10088
  **The name goes in**, so a row of them is heard as which one each
10069
10089
  removes rather than as "Remove" said once per date. */
10070
10090
  removeLabel?: (HelixHeadlessDateInput["removeLabel"]) | undefined;
10091
+ /** What a screen reader hears about the dates chosen in the calendar, with
10092
+ `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
10093
+ `selection-label` says. */
10094
+ "selection-label"?: (HelixHeadlessDateInput["selectionLabel"]) | undefined;
10095
+ /** What a screen reader hears about the dates chosen in the calendar, with
10096
+ `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
10097
+ `selection-label` says. */
10098
+ selectionLabel?: (HelixHeadlessDateInput["selectionLabel"]) | undefined;
10071
10099
  /** How far apart the selectable dates are, in days.
10072
10100
 
10073
10101
  `<input type="date" step>`'s own unit, handed to the calendar this renders
@@ -10079,6 +10107,14 @@ platform's base. */
10079
10107
  "step-mismatch-message"?: (HelixHeadlessDateInput["stepMismatchMessage"]) | undefined;
10080
10108
  /** The message shown when a date is not on `step`. */
10081
10109
  stepMismatchMessage?: (HelixHeadlessDateInput["stepMismatchMessage"]) | undefined;
10110
+ /** The time zone today is read in, such as `America/New_York`, handed to the
10111
+ calendar: the day marked today, and the month an empty field opens on.
10112
+ Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone. */
10113
+ "time-zone"?: (HelixHeadlessDateInput["timeZone"]) | undefined;
10114
+ /** The time zone today is read in, such as `America/New_York`, handed to the
10115
+ calendar: the day marked today, and the month an empty field opens on.
10116
+ Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone. */
10117
+ timeZone?: (HelixHeadlessDateInput["timeZone"]) | undefined;
10082
10118
  /** The name of the button that opens the calendar, read by screen readers. */
10083
10119
  "trigger-label"?: (HelixHeadlessDateInput["triggerLabel"]) | undefined;
10084
10120
  /** The name of the button that opens the calendar, read by screen readers. */
@@ -10087,6 +10123,12 @@ platform's base. */
10087
10123
  "unavailable-message"?: (HelixHeadlessDateInput["unavailableMessage"]) | undefined;
10088
10124
  /** The message shown when `disable-dates` or `disable-days` bars a date. */
10089
10125
  unavailableMessage?: (HelixHeadlessDateInput["unavailableMessage"]) | undefined;
10126
+ /** The message for text that is no date, where `bad-input-message` is not
10127
+ set. `{mode}` is `single`, `range`, or `multiple`. */
10128
+ "unreadable-message"?: (HelixHeadlessDateInput["unreadableMessage"]) | undefined;
10129
+ /** The message for text that is no date, where `bad-input-message` is not
10130
+ set. `{mode}` is `single`, `range`, or `multiple`. */
10131
+ unreadableMessage?: (HelixHeadlessDateInput["unreadableMessage"]) | undefined;
10090
10132
  /** The name of the calendar's heading where it shows a page of years, with
10091
10133
  `{heading}` filled in. */
10092
10134
  "year-view-label"?: (HelixHeadlessDateInput["yearViewLabel"]) | undefined;
@@ -10115,6 +10157,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
10115
10157
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
10116
10158
  `time`. */
10117
10159
  incompleteMessage?: (HelixHeadlessDateInput["incompleteMessage"]) | undefined;
10160
+ /** What a screen reader hears before the segments of a range's second date
10161
+ or time, after each segment's own name. */
10162
+ "range-end-label"?: (HelixHeadlessDateInput["rangeEndLabel"]) | undefined;
10163
+ /** What a screen reader hears before the segments of a range's second date
10164
+ or time, after each segment's own name. */
10165
+ rangeEndLabel?: (HelixHeadlessDateInput["rangeEndLabel"]) | undefined;
10166
+ /** What a screen reader hears before the segments of a range's first date
10167
+ or time, after each segment's own name: "month, Start, Stay". */
10168
+ "range-start-label"?: (HelixHeadlessDateInput["rangeStartLabel"]) | undefined;
10169
+ /** What a screen reader hears before the segments of a range's first date
10170
+ or time, after each segment's own name: "month, Start, Stay". */
10171
+ rangeStartLabel?: (HelixHeadlessDateInput["rangeStartLabel"]) | undefined;
10118
10172
  /** Whether the field is a row of segments, one for each part of the date or
10119
10173
  time, in place of a line of text.
10120
10174
 
@@ -10342,6 +10396,8 @@ reader makes in one of these. */
10342
10396
  "onhelix-before-open"?: ((
10343
10397
  e: HelixHeadlessDateInputHelixBeforeOpenElementEvent,
10344
10398
  ) => void) | undefined;
10399
+ /** Fired after the clear button has emptied the field, after `input` and `change`. */
10400
+ "onhelix-clear"?: ((e: HelixHeadlessDateInputHelixClearElementEvent) => void) | undefined;
10345
10401
  /** Fired after the value changes. */
10346
10402
  oninput?: ((e: HelixHeadlessDateInputElementEvent) => void) | undefined;
10347
10403
  /** Fired when the calendar opens or closes, with `newState` and `oldState`. */
@@ -10349,32 +10405,48 @@ reader makes in one of these. */
10349
10405
  };
10350
10406
 
10351
10407
  export type HelixHeadlessDateInputSolidJsProps = {
10352
- /** What the browser may autofill here, as one of the platform's own tokens.
10408
+ /** What the browser may autofill here, as one of the platform's own tokens,
10409
+ such as `bday`.
10353
10410
 
10354
10411
  Empty leaves the attribute off, which is the browser's default and is what
10355
10412
  lets autofill work at all: hardcoding `off` here means a birthday or a
10356
- postal code can never be filled in for a reader. */
10413
+ postal code can never be filled in for a reader. With `segmented`, a
10414
+ hidden native date input carries it, since no browser fills the segments. */
10357
10415
  "prop:autocomplete"?: (HelixHeadlessDateInput["autocomplete"]) | undefined;
10358
- /** The calendar the written date and the calendar's days are in: `gregory`,
10359
- `buddhist`, `japanese`, `roc`, or `iso8601`.
10360
-
10361
- Absent is the locale's own where it is one of the five, and `gregory` for
10362
- every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
10363
- every calendar, and a focused field is ISO in every calendar. In
10364
- `segmented`, the segments are the Gregorian day, month, and year, in the
10365
- order the locale writes them, or ISO order for `iso8601`. */
10416
+ /** The calendar the written date, the segments, and the calendar's days are
10417
+ in: `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, or a calendar
10418
+ with months of its own that Date Picker's `calendar` names, such as
10419
+ `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`.
10420
+
10421
+ Absent is the locale's own where its months are the Gregorian months, and
10422
+ `gregory` for every other, as Date Picker's `calendar` is. The value is
10423
+ `YYYY-MM-DD` in every calendar, and a focused text field is ISO in every
10424
+ calendar. In `segmented`, the segments are the day, month, and year as
10425
+ the calendar counts them, in the order the locale writes them: Mehr 14,
10426
+ 1405 is month 7 and day 14 of 1405 under `persian`. Under the five with
10427
+ Gregorian months they are the Gregorian day, month, and year, or ISO order
10428
+ for `iso8601`. */
10366
10429
  "prop:calendar"?: (HelixHeadlessDateInput["calendar"]) | undefined;
10367
10430
  /** The name of the calendar's grid of days, read by screen readers. */
10368
10431
  "attr:calendar-label"?: (HelixHeadlessDateInput["calendarLabel"]) | undefined;
10369
10432
  /** The name of the calendar's grid of days, read by screen readers. */
10370
10433
  "prop:calendarLabel"?: (HelixHeadlessDateInput["calendarLabel"]) | undefined;
10434
+ /** Whether the field shows a button that empties it, as Input's `clearable`
10435
+ does. Shown only while the field holds something to clear and is neither
10436
+ disabled nor read-only. */
10437
+ "prop:clearable"?: (HelixHeadlessDateInput["clearable"]) | undefined;
10438
+ /** The accessible name of the clear button, which shows only an icon. */
10439
+ "attr:clear-label"?: (HelixHeadlessDateInput["clearLabel"]) | undefined;
10440
+ /** The accessible name of the clear button, which shows only an icon. */
10441
+ "prop:clearLabel"?: (HelixHeadlessDateInput["clearLabel"]) | undefined;
10371
10442
  /** How a date is written in the field: `short` through `full`, or ISO.
10372
10443
 
10373
10444
  **The field renders when it is idle and holds the value when it is being
10374
10445
  edited.** A written date is a rendering, and a document being edited must
10375
10446
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
10376
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
10377
- locale is how a field ends up rejecting what it just displayed.
10447
+ not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
10448
+ edit. The field does read a date typed in the locale's order and digits as
10449
+ you leave it, which covers what a reader types.
10378
10450
 
10379
10451
  The way out is not to choose between the two but to separate them in time.
10380
10452
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -10396,8 +10468,9 @@ submits and what `min` and `max` compare against. */
10396
10468
  **The field renders when it is idle and holds the value when it is being
10397
10469
  edited.** A written date is a rendering, and a document being edited must
10398
10470
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
10399
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
10400
- locale is how a field ends up rejecting what it just displayed.
10471
+ not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
10472
+ edit. The field does read a date typed in the locale's order and digits as
10473
+ you leave it, which covers what a reader types.
10401
10474
 
10402
10475
  The way out is not to choose between the two but to separate them in time.
10403
10476
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -10535,6 +10608,14 @@ the date.
10535
10608
  **The name goes in**, so a row of them is heard as which one each
10536
10609
  removes rather than as "Remove" said once per date. */
10537
10610
  "prop:removeLabel"?: (HelixHeadlessDateInput["removeLabel"]) | undefined;
10611
+ /** What a screen reader hears about the dates chosen in the calendar, with
10612
+ `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
10613
+ `selection-label` says. */
10614
+ "attr:selection-label"?: (HelixHeadlessDateInput["selectionLabel"]) | undefined;
10615
+ /** What a screen reader hears about the dates chosen in the calendar, with
10616
+ `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
10617
+ `selection-label` says. */
10618
+ "prop:selectionLabel"?: (HelixHeadlessDateInput["selectionLabel"]) | undefined;
10538
10619
  /** How far apart the selectable dates are, in days.
10539
10620
 
10540
10621
  `<input type="date" step>`'s own unit, handed to the calendar this renders
@@ -10546,6 +10627,14 @@ platform's base. */
10546
10627
  "attr:step-mismatch-message"?: (HelixHeadlessDateInput["stepMismatchMessage"]) | undefined;
10547
10628
  /** The message shown when a date is not on `step`. */
10548
10629
  "prop:stepMismatchMessage"?: (HelixHeadlessDateInput["stepMismatchMessage"]) | undefined;
10630
+ /** The time zone today is read in, such as `America/New_York`, handed to the
10631
+ calendar: the day marked today, and the month an empty field opens on.
10632
+ Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone. */
10633
+ "attr:time-zone"?: (HelixHeadlessDateInput["timeZone"]) | undefined;
10634
+ /** The time zone today is read in, such as `America/New_York`, handed to the
10635
+ calendar: the day marked today, and the month an empty field opens on.
10636
+ Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone. */
10637
+ "prop:timeZone"?: (HelixHeadlessDateInput["timeZone"]) | undefined;
10549
10638
  /** The name of the button that opens the calendar, read by screen readers. */
10550
10639
  "attr:trigger-label"?: (HelixHeadlessDateInput["triggerLabel"]) | undefined;
10551
10640
  /** The name of the button that opens the calendar, read by screen readers. */
@@ -10554,6 +10643,12 @@ platform's base. */
10554
10643
  "attr:unavailable-message"?: (HelixHeadlessDateInput["unavailableMessage"]) | undefined;
10555
10644
  /** The message shown when `disable-dates` or `disable-days` bars a date. */
10556
10645
  "prop:unavailableMessage"?: (HelixHeadlessDateInput["unavailableMessage"]) | undefined;
10646
+ /** The message for text that is no date, where `bad-input-message` is not
10647
+ set. `{mode}` is `single`, `range`, or `multiple`. */
10648
+ "attr:unreadable-message"?: (HelixHeadlessDateInput["unreadableMessage"]) | undefined;
10649
+ /** The message for text that is no date, where `bad-input-message` is not
10650
+ set. `{mode}` is `single`, `range`, or `multiple`. */
10651
+ "prop:unreadableMessage"?: (HelixHeadlessDateInput["unreadableMessage"]) | undefined;
10557
10652
  /** The name of the calendar's heading where it shows a page of years, with
10558
10653
  `{heading}` filled in. */
10559
10654
  "attr:year-view-label"?: (HelixHeadlessDateInput["yearViewLabel"]) | undefined;
@@ -10582,6 +10677,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
10582
10677
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
10583
10678
  `time`. */
10584
10679
  "prop:incompleteMessage"?: (HelixHeadlessDateInput["incompleteMessage"]) | undefined;
10680
+ /** What a screen reader hears before the segments of a range's second date
10681
+ or time, after each segment's own name. */
10682
+ "attr:range-end-label"?: (HelixHeadlessDateInput["rangeEndLabel"]) | undefined;
10683
+ /** What a screen reader hears before the segments of a range's second date
10684
+ or time, after each segment's own name. */
10685
+ "prop:rangeEndLabel"?: (HelixHeadlessDateInput["rangeEndLabel"]) | undefined;
10686
+ /** What a screen reader hears before the segments of a range's first date
10687
+ or time, after each segment's own name: "month, Start, Stay". */
10688
+ "attr:range-start-label"?: (HelixHeadlessDateInput["rangeStartLabel"]) | undefined;
10689
+ /** What a screen reader hears before the segments of a range's first date
10690
+ or time, after each segment's own name: "month, Start, Stay". */
10691
+ "prop:rangeStartLabel"?: (HelixHeadlessDateInput["rangeStartLabel"]) | undefined;
10585
10692
  /** Whether the field is a row of segments, one for each part of the date or
10586
10693
  time, in place of a line of text.
10587
10694
 
@@ -10808,6 +10915,8 @@ reader makes in one of these. */
10808
10915
  "on:helix-before-open"?: ((
10809
10916
  e: HelixHeadlessDateInputHelixBeforeOpenElementEvent,
10810
10917
  ) => void) | undefined;
10918
+ /** Fired after the clear button has emptied the field, after `input` and `change`. */
10919
+ "on:helix-clear"?: ((e: HelixHeadlessDateInputHelixClearElementEvent) => void) | undefined;
10811
10920
  /** Fired after the value changes. */
10812
10921
  "on:input"?: ((e: HelixHeadlessDateInputElementEvent) => void) | undefined;
10813
10922
  /** Fired when the calendar opens or closes, with `newState` and `oldState`. */
@@ -10856,14 +10965,16 @@ it is one of the five, such as `buddhist` for `th-TH` or `japanese` for
10856
10965
  `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
10857
10966
  for `fa-IR`.
10858
10967
 
10859
- `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
10860
- `coptic`, and `indian` draw a calendar with months of its own, as React
10861
- Aria's calendars do: each grid is one of that calendar's months, the
10862
- Hebrew leap month and Ethiopia's five-day thirteenth month included, and
10863
- Previous, Next and the page keys move by those months. `month` and
10968
+ `persian`, `hebrew`, `islamic`, `islamic-umalqura`, `islamic-civil`,
10969
+ `islamic-tbla`, `islamic-rgsa`, `ethiopic`, `ethioaa`, `coptic`,
10970
+ `indian`, `chinese`, and `dangi` draw a calendar with months of its own,
10971
+ as React Aria's calendars do: each grid is one of that calendar's months,
10972
+ the Hebrew and Chinese leap months and Ethiopia's five-day thirteenth
10973
+ month included, and Previous, Next and the page keys move by those
10974
+ months. With `max-view`, the months view shows that calendar's year, of
10975
+ twelve or thirteen months, and the years view its years. `month` and
10864
10976
  `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
10865
- heading stays text, as the months and years views are drawn in Gregorian
10866
- months only. The value is `YYYY-MM-DD` in every calendar. */
10977
+ value is `YYYY-MM-DD` in every calendar. */
10867
10978
  calendar?: (HelixHeadlessDatePicker["calendar"]) | undefined;
10868
10979
  /** The month to open on when `month` is not set. */
10869
10980
  "default-month"?: (HelixHeadlessDatePicker["defaultMonth"]) | undefined;
@@ -11010,6 +11121,18 @@ else set needs. */
11010
11121
  readOnly?: (HelixHeadlessDatePicker["readOnly"]) | undefined;
11011
11122
  /** Stops the form from submitting while no date is chosen. */
11012
11123
  required?: (HelixHeadlessDatePicker["required"]) | undefined;
11124
+ /** What a screen reader hears about the chosen dates: the grid's
11125
+ description, said again whenever the dates change. `{kind}` is `date`,
11126
+ `start` while a range holds one end, `range`, or `dates` for `multiple`.
11127
+ `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
11128
+ many dates are chosen. */
11129
+ "selection-label"?: (HelixHeadlessDatePicker["selectionLabel"]) | undefined;
11130
+ /** What a screen reader hears about the chosen dates: the grid's
11131
+ description, said again whenever the dates change. `{kind}` is `date`,
11132
+ `start` while a range holds one end, `range`, or `dates` for `multiple`.
11133
+ `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
11134
+ many dates are chosen. */
11135
+ selectionLabel?: (HelixHeadlessDatePicker["selectionLabel"]) | undefined;
11013
11136
  /** How far apart the selectable dates are, in days.
11014
11137
 
11015
11138
  `<input type="date" step>`'s own unit, counted from `min` where there is
@@ -11189,14 +11312,16 @@ it is one of the five, such as `buddhist` for `th-TH` or `japanese` for
11189
11312
  `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
11190
11313
  for `fa-IR`.
11191
11314
 
11192
- `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
11193
- `coptic`, and `indian` draw a calendar with months of its own, as React
11194
- Aria's calendars do: each grid is one of that calendar's months, the
11195
- Hebrew leap month and Ethiopia's five-day thirteenth month included, and
11196
- Previous, Next and the page keys move by those months. `month` and
11315
+ `persian`, `hebrew`, `islamic`, `islamic-umalqura`, `islamic-civil`,
11316
+ `islamic-tbla`, `islamic-rgsa`, `ethiopic`, `ethioaa`, `coptic`,
11317
+ `indian`, `chinese`, and `dangi` draw a calendar with months of its own,
11318
+ as React Aria's calendars do: each grid is one of that calendar's months,
11319
+ the Hebrew and Chinese leap months and Ethiopia's five-day thirteenth
11320
+ month included, and Previous, Next and the page keys move by those
11321
+ months. With `max-view`, the months view shows that calendar's year, of
11322
+ twelve or thirteen months, and the years view its years. `month` and
11197
11323
  `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
11198
- heading stays text, as the months and years views are drawn in Gregorian
11199
- months only. The value is `YYYY-MM-DD` in every calendar. */
11324
+ value is `YYYY-MM-DD` in every calendar. */
11200
11325
  "prop:calendar"?: (HelixHeadlessDatePicker["calendar"]) | undefined;
11201
11326
  /** The month to open on when `month` is not set. */
11202
11327
  "attr:default-month"?: (HelixHeadlessDatePicker["defaultMonth"]) | undefined;
@@ -11343,6 +11468,18 @@ else set needs. */
11343
11468
  "prop:readOnly"?: (HelixHeadlessDatePicker["readOnly"]) | undefined;
11344
11469
  /** Stops the form from submitting while no date is chosen. */
11345
11470
  "prop:required"?: (HelixHeadlessDatePicker["required"]) | undefined;
11471
+ /** What a screen reader hears about the chosen dates: the grid's
11472
+ description, said again whenever the dates change. `{kind}` is `date`,
11473
+ `start` while a range holds one end, `range`, or `dates` for `multiple`.
11474
+ `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
11475
+ many dates are chosen. */
11476
+ "attr:selection-label"?: (HelixHeadlessDatePicker["selectionLabel"]) | undefined;
11477
+ /** What a screen reader hears about the chosen dates: the grid's
11478
+ description, said again whenever the dates change. `{kind}` is `date`,
11479
+ `start` while a range holds one end, `range`, or `dates` for `multiple`.
11480
+ `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
11481
+ many dates are chosen. */
11482
+ "prop:selectionLabel"?: (HelixHeadlessDatePicker["selectionLabel"]) | undefined;
11346
11483
  /** How far apart the selectable dates are, in days.
11347
11484
 
11348
11485
  `<input type="date" step>`'s own unit, counted from `min` where there is
@@ -13840,12 +13977,14 @@ Here rather than on each control. */
13840
13977
 
13841
13978
  export type HelixHeadlessFormatDateProps = {
13842
13979
  /** The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
13843
- `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
13844
-
13845
- Absent is the locale's own where it is one of the five, such as
13846
- `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
13847
- for `fa-IR`, so a date written here reads as the same date a Date Picker
13848
- beside it shows. */
13980
+ `roc`, or `iso8601`, or a calendar with months of its own, such as
13981
+ `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`: every
13982
+ calendar Date Picker and Date Input draw.
13983
+
13984
+ Absent is the locale's own where its months are the Gregorian months,
13985
+ such as `buddhist` for `th-TH`, and `gregory` for every other, such as
13986
+ `persian` for `fa-IR`, so a date written here reads as the same date a
13987
+ Date Picker beside it shows. Write `calendar="persian"` for Mehr 14, 1405. */
13849
13988
  calendar?: (HelixHeadlessFormatDate["calendar"]) | undefined;
13850
13989
  /** The timestamp, in any format `Date` can parse.
13851
13990
 
@@ -13871,6 +14010,14 @@ browser may use either. */
13871
14010
  dateStyle?: (HelixHeadlessFormatDate["dateStyle"]) | undefined;
13872
14011
  /** How the day of the month is written, where a date is shown. */
13873
14012
  day?: (HelixHeadlessFormatDate["day"]) | undefined;
14013
+ /** Writes the part of the day in words, such as "in the morning" or "at
14014
+ night", in its `long`, `short`, or `narrow` form, where `hour` is on a
14015
+ twelve-hour clock. */
14016
+ "day-period"?: (HelixHeadlessFormatDate["dayPeriod"]) | undefined;
14017
+ /** Writes the part of the day in words, such as "in the morning" or "at
14018
+ night", in its `long`, `short`, or `narrow` form, where `hour` is on a
14019
+ twelve-hour clock. */
14020
+ dayPeriod?: (HelixHeadlessFormatDate["dayPeriod"]) | undefined;
13874
14021
  /** Shows how long ago the timestamp was, in a compact form such as "3h", in
13875
14022
  place of the date.
13876
14023
 
@@ -13888,6 +14035,12 @@ Off by default, which draws the date as one run of text, as Shoelace and
13888
14035
  Web Awesome do. An `elapsed` or `relative` reading is one phrase either
13889
14036
  way. */
13890
14037
  fields?: (HelixHeadlessFormatDate["fields"]) | undefined;
14038
+ /** How many digits of a fraction of a second to write after `second`: 1, 2,
14039
+ or 3, as in 09:41:07.250. */
14040
+ "fractional-second-digits"?: (HelixHeadlessFormatDate["fractionalSecondDigits"]) | undefined;
14041
+ /** How many digits of a fraction of a second to write after `second`: 1, 2,
14042
+ or 3, as in 09:41:07.250. */
14043
+ fractionalSecondDigits?: (HelixHeadlessFormatDate["fractionalSecondDigits"]) | undefined;
13891
14044
  /** Draws an `elapsed` or `relative` reading once and leaves it, where it
13892
14045
  would otherwise move on as it goes stale.
13893
14046
 
@@ -13950,9 +14103,13 @@ Empty is the runtime's own. */
13950
14103
 
13951
14104
  Empty is the runtime's own. */
13952
14105
  timeZone?: (HelixHeadlessFormatDate["timeZone"]) | undefined;
13953
- /** Shows the name of the time zone, in its `long` or `short` form. */
14106
+ /** Shows the name of the time zone: `long` or `short`, as Pacific Daylight
14107
+ Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
14108
+ `longGeneric` or `shortGeneric`, as Pacific Time or PT. */
13954
14109
  "time-zone-name"?: (HelixHeadlessFormatDate["timeZoneName"]) | undefined;
13955
- /** Shows the name of the time zone, in its `long` or `short` form. */
14110
+ /** Shows the name of the time zone: `long` or `short`, as Pacific Daylight
14111
+ Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
14112
+ `longGeneric` or `shortGeneric`, as Pacific Time or PT. */
13956
14113
  timeZoneName?: (HelixHeadlessFormatDate["timeZoneName"]) | undefined;
13957
14114
  /** How the weekday is written, where one is shown. */
13958
14115
  weekday?: (HelixHeadlessFormatDate["weekday"]) | undefined;
@@ -13962,12 +14119,14 @@ Empty is the runtime's own. */
13962
14119
 
13963
14120
  export type HelixHeadlessFormatDateSolidJsProps = {
13964
14121
  /** The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
13965
- `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
13966
-
13967
- Absent is the locale's own where it is one of the five, such as
13968
- `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
13969
- for `fa-IR`, so a date written here reads as the same date a Date Picker
13970
- beside it shows. */
14122
+ `roc`, or `iso8601`, or a calendar with months of its own, such as
14123
+ `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`: every
14124
+ calendar Date Picker and Date Input draw.
14125
+
14126
+ Absent is the locale's own where its months are the Gregorian months,
14127
+ such as `buddhist` for `th-TH`, and `gregory` for every other, such as
14128
+ `persian` for `fa-IR`, so a date written here reads as the same date a
14129
+ Date Picker beside it shows. Write `calendar="persian"` for Mehr 14, 1405. */
13971
14130
  "prop:calendar"?: (HelixHeadlessFormatDate["calendar"]) | undefined;
13972
14131
  /** The timestamp, in any format `Date` can parse.
13973
14132
 
@@ -13993,6 +14152,14 @@ browser may use either. */
13993
14152
  "prop:dateStyle"?: (HelixHeadlessFormatDate["dateStyle"]) | undefined;
13994
14153
  /** How the day of the month is written, where a date is shown. */
13995
14154
  "prop:day"?: (HelixHeadlessFormatDate["day"]) | undefined;
14155
+ /** Writes the part of the day in words, such as "in the morning" or "at
14156
+ night", in its `long`, `short`, or `narrow` form, where `hour` is on a
14157
+ twelve-hour clock. */
14158
+ "attr:day-period"?: (HelixHeadlessFormatDate["dayPeriod"]) | undefined;
14159
+ /** Writes the part of the day in words, such as "in the morning" or "at
14160
+ night", in its `long`, `short`, or `narrow` form, where `hour` is on a
14161
+ twelve-hour clock. */
14162
+ "prop:dayPeriod"?: (HelixHeadlessFormatDate["dayPeriod"]) | undefined;
13996
14163
  /** Shows how long ago the timestamp was, in a compact form such as "3h", in
13997
14164
  place of the date.
13998
14165
 
@@ -14010,6 +14177,12 @@ Off by default, which draws the date as one run of text, as Shoelace and
14010
14177
  Web Awesome do. An `elapsed` or `relative` reading is one phrase either
14011
14178
  way. */
14012
14179
  "prop:fields"?: (HelixHeadlessFormatDate["fields"]) | undefined;
14180
+ /** How many digits of a fraction of a second to write after `second`: 1, 2,
14181
+ or 3, as in 09:41:07.250. */
14182
+ "attr:fractional-second-digits"?: (HelixHeadlessFormatDate["fractionalSecondDigits"]) | undefined;
14183
+ /** How many digits of a fraction of a second to write after `second`: 1, 2,
14184
+ or 3, as in 09:41:07.250. */
14185
+ "prop:fractionalSecondDigits"?: (HelixHeadlessFormatDate["fractionalSecondDigits"]) | undefined;
14013
14186
  /** Draws an `elapsed` or `relative` reading once and leaves it, where it
14014
14187
  would otherwise move on as it goes stale.
14015
14188
 
@@ -14072,9 +14245,13 @@ Empty is the runtime's own. */
14072
14245
 
14073
14246
  Empty is the runtime's own. */
14074
14247
  "prop:timeZone"?: (HelixHeadlessFormatDate["timeZone"]) | undefined;
14075
- /** Shows the name of the time zone, in its `long` or `short` form. */
14248
+ /** Shows the name of the time zone: `long` or `short`, as Pacific Daylight
14249
+ Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
14250
+ `longGeneric` or `shortGeneric`, as Pacific Time or PT. */
14076
14251
  "attr:time-zone-name"?: (HelixHeadlessFormatDate["timeZoneName"]) | undefined;
14077
- /** Shows the name of the time zone, in its `long` or `short` form. */
14252
+ /** Shows the name of the time zone: `long` or `short`, as Pacific Daylight
14253
+ Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
14254
+ `longGeneric` or `shortGeneric`, as Pacific Time or PT. */
14078
14255
  "prop:timeZoneName"?: (HelixHeadlessFormatDate["timeZoneName"]) | undefined;
14079
14256
  /** How the weekday is written, where one is shown. */
14080
14257
  "prop:weekday"?: (HelixHeadlessFormatDate["weekday"]) | undefined;
@@ -26355,6 +26532,14 @@ rather than a thumb sitting on nothing. */
26355
26532
  middle of the track, or `end` at `max`. Absent is `start`. A range fills
26356
26533
  between its thumbs and ignores it. */
26357
26534
  origin?: (HelixHeadlessSlider["origin"]) | undefined;
26535
+ /** How far Page Up and Page Down move a thumb, in the slider's own units, as
26536
+ React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
26537
+ to the platform, which moves a tenth of the track. */
26538
+ "page-step"?: (HelixHeadlessSlider["pageStep"] | `${number}`) | undefined;
26539
+ /** How far Page Up and Page Down move a thumb, in the slider's own units, as
26540
+ React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
26541
+ to the platform, which moves a tenth of the track. */
26542
+ pageStep?: (HelixHeadlessSlider["pageStep"]) | undefined;
26358
26543
  /** Adds a second thumb, so the value is a pair.
26359
26544
 
26360
26545
  The pair is one string, `"10,50"`, which is what `value` and
@@ -26609,6 +26794,14 @@ rather than a thumb sitting on nothing. */
26609
26794
  middle of the track, or `end` at `max`. Absent is `start`. A range fills
26610
26795
  between its thumbs and ignores it. */
26611
26796
  "prop:origin"?: (HelixHeadlessSlider["origin"]) | undefined;
26797
+ /** How far Page Up and Page Down move a thumb, in the slider's own units, as
26798
+ React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
26799
+ to the platform, which moves a tenth of the track. */
26800
+ "attr:page-step"?: (HelixHeadlessSlider["pageStep"] | `${number}`) | undefined;
26801
+ /** How far Page Up and Page Down move a thumb, in the slider's own units, as
26802
+ React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
26803
+ to the platform, which moves a tenth of the track. */
26804
+ "prop:pageStep"?: (HelixHeadlessSlider["pageStep"]) | undefined;
26612
26805
  /** Adds a second thumb, so the value is a pair.
26613
26806
 
26614
26807
  The pair is one string, `"10,50"`, which is what `value` and
@@ -30193,6 +30386,9 @@ export type HelixHeadlessTimeInputHelixBeforeCloseElementEvent =
30193
30386
  /** `helix-before-open` event type */
30194
30387
  export type HelixHeadlessTimeInputHelixBeforeOpenElementEvent =
30195
30388
  HelixHeadlessTimeInputElementEvent<HelixBeforeOpenEvent>;
30389
+ /** `helix-clear` event type */
30390
+ export type HelixHeadlessTimeInputHelixClearElementEvent =
30391
+ HelixHeadlessTimeInputElementEvent<HelixClearEvent>;
30196
30392
  /** `toggle` event type */
30197
30393
  export type HelixHeadlessTimeInputToggleElementEvent =
30198
30394
  HelixHeadlessTimeInputElementEvent<ToggleEvent>;
@@ -30203,6 +30399,14 @@ export type HelixHeadlessTimeInputProps = {
30203
30399
  Empty leaves the attribute off, which is the browser's default and is what
30204
30400
  lets autofill work at all. */
30205
30401
  autocomplete?: (HelixHeadlessTimeInput["autocomplete"]) | undefined;
30402
+ /** Whether the field shows a button that empties it, as Input's `clearable`
30403
+ does. Shown only while the field holds something to clear and is neither
30404
+ disabled nor read-only. */
30405
+ clearable?: (HelixHeadlessTimeInput["clearable"]) | undefined;
30406
+ /** The accessible name of the clear button, which shows only an icon. */
30407
+ "clear-label"?: (HelixHeadlessTimeInput["clearLabel"]) | undefined;
30408
+ /** The accessible name of the clear button, which shows only an icon. */
30409
+ clearLabel?: (HelixHeadlessTimeInput["clearLabel"]) | undefined;
30206
30410
  /** Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
30207
30411
 
30208
30412
  Handed to the list, which offers them as unavailable, and checked against
@@ -30306,6 +30510,12 @@ never something this element would refuse to read back. */
30306
30510
  "unavailable-message"?: (HelixHeadlessTimeInput["unavailableMessage"]) | undefined;
30307
30511
  /** The message shown when `disable-times` bars a time. */
30308
30512
  unavailableMessage?: (HelixHeadlessTimeInput["unavailableMessage"]) | undefined;
30513
+ /** The message for text that is no time, where `bad-input-message` is not
30514
+ set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`. */
30515
+ "unreadable-message"?: (HelixHeadlessTimeInput["unreadableMessage"]) | undefined;
30516
+ /** The message for text that is no time, where `bad-input-message` is not
30517
+ set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`. */
30518
+ unreadableMessage?: (HelixHeadlessTimeInput["unreadableMessage"]) | undefined;
30309
30519
  /** Whether the panel shows one list of times or a column for each part of the
30310
30520
  time.
30311
30521
 
@@ -30343,6 +30553,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
30343
30553
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
30344
30554
  `time`. */
30345
30555
  incompleteMessage?: (HelixHeadlessTimeInput["incompleteMessage"]) | undefined;
30556
+ /** What a screen reader hears before the segments of a range's second date
30557
+ or time, after each segment's own name. */
30558
+ "range-end-label"?: (HelixHeadlessTimeInput["rangeEndLabel"]) | undefined;
30559
+ /** What a screen reader hears before the segments of a range's second date
30560
+ or time, after each segment's own name. */
30561
+ rangeEndLabel?: (HelixHeadlessTimeInput["rangeEndLabel"]) | undefined;
30562
+ /** What a screen reader hears before the segments of a range's first date
30563
+ or time, after each segment's own name: "month, Start, Stay". */
30564
+ "range-start-label"?: (HelixHeadlessTimeInput["rangeStartLabel"]) | undefined;
30565
+ /** What a screen reader hears before the segments of a range's first date
30566
+ or time, after each segment's own name: "month, Start, Stay". */
30567
+ rangeStartLabel?: (HelixHeadlessTimeInput["rangeStartLabel"]) | undefined;
30346
30568
  /** Whether the field is a row of segments, one for each part of the date or
30347
30569
  time, in place of a line of text.
30348
30570
 
@@ -30559,6 +30781,8 @@ a consumer handing over `new Date()` gets the time of day they expected. */
30559
30781
  "onhelix-before-open"?: ((
30560
30782
  e: HelixHeadlessTimeInputHelixBeforeOpenElementEvent,
30561
30783
  ) => void) | undefined;
30784
+ /** Fired after the clear button has emptied the field, after `input` and `change`. */
30785
+ "onhelix-clear"?: ((e: HelixHeadlessTimeInputHelixClearElementEvent) => void) | undefined;
30562
30786
  /** Fired after the value changes. */
30563
30787
  oninput?: ((e: HelixHeadlessTimeInputElementEvent) => void) | undefined;
30564
30788
  /** Fired after the list opens or closes, with `newState` and `oldState`. */
@@ -30571,6 +30795,14 @@ export type HelixHeadlessTimeInputSolidJsProps = {
30571
30795
  Empty leaves the attribute off, which is the browser's default and is what
30572
30796
  lets autofill work at all. */
30573
30797
  "prop:autocomplete"?: (HelixHeadlessTimeInput["autocomplete"]) | undefined;
30798
+ /** Whether the field shows a button that empties it, as Input's `clearable`
30799
+ does. Shown only while the field holds something to clear and is neither
30800
+ disabled nor read-only. */
30801
+ "prop:clearable"?: (HelixHeadlessTimeInput["clearable"]) | undefined;
30802
+ /** The accessible name of the clear button, which shows only an icon. */
30803
+ "attr:clear-label"?: (HelixHeadlessTimeInput["clearLabel"]) | undefined;
30804
+ /** The accessible name of the clear button, which shows only an icon. */
30805
+ "prop:clearLabel"?: (HelixHeadlessTimeInput["clearLabel"]) | undefined;
30574
30806
  /** Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
30575
30807
 
30576
30808
  Handed to the list, which offers them as unavailable, and checked against
@@ -30674,6 +30906,12 @@ never something this element would refuse to read back. */
30674
30906
  "attr:unavailable-message"?: (HelixHeadlessTimeInput["unavailableMessage"]) | undefined;
30675
30907
  /** The message shown when `disable-times` bars a time. */
30676
30908
  "prop:unavailableMessage"?: (HelixHeadlessTimeInput["unavailableMessage"]) | undefined;
30909
+ /** The message for text that is no time, where `bad-input-message` is not
30910
+ set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`. */
30911
+ "attr:unreadable-message"?: (HelixHeadlessTimeInput["unreadableMessage"]) | undefined;
30912
+ /** The message for text that is no time, where `bad-input-message` is not
30913
+ set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`. */
30914
+ "prop:unreadableMessage"?: (HelixHeadlessTimeInput["unreadableMessage"]) | undefined;
30677
30915
  /** Whether the panel shows one list of times or a column for each part of the
30678
30916
  time.
30679
30917
 
@@ -30711,6 +30949,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
30711
30949
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
30712
30950
  `time`. */
30713
30951
  "prop:incompleteMessage"?: (HelixHeadlessTimeInput["incompleteMessage"]) | undefined;
30952
+ /** What a screen reader hears before the segments of a range's second date
30953
+ or time, after each segment's own name. */
30954
+ "attr:range-end-label"?: (HelixHeadlessTimeInput["rangeEndLabel"]) | undefined;
30955
+ /** What a screen reader hears before the segments of a range's second date
30956
+ or time, after each segment's own name. */
30957
+ "prop:rangeEndLabel"?: (HelixHeadlessTimeInput["rangeEndLabel"]) | undefined;
30958
+ /** What a screen reader hears before the segments of a range's first date
30959
+ or time, after each segment's own name: "month, Start, Stay". */
30960
+ "attr:range-start-label"?: (HelixHeadlessTimeInput["rangeStartLabel"]) | undefined;
30961
+ /** What a screen reader hears before the segments of a range's first date
30962
+ or time, after each segment's own name: "month, Start, Stay". */
30963
+ "prop:rangeStartLabel"?: (HelixHeadlessTimeInput["rangeStartLabel"]) | undefined;
30714
30964
  /** Whether the field is a row of segments, one for each part of the date or
30715
30965
  time, in place of a line of text.
30716
30966
 
@@ -30926,6 +31176,8 @@ a consumer handing over `new Date()` gets the time of day they expected. */
30926
31176
  "on:helix-before-open"?: ((
30927
31177
  e: HelixHeadlessTimeInputHelixBeforeOpenElementEvent,
30928
31178
  ) => void) | undefined;
31179
+ /** Fired after the clear button has emptied the field, after `input` and `change`. */
31180
+ "on:helix-clear"?: ((e: HelixHeadlessTimeInputHelixClearElementEvent) => void) | undefined;
30929
31181
  /** Fired after the value changes. */
30930
31182
  "on:input"?: ((e: HelixHeadlessTimeInputElementEvent) => void) | undefined;
30931
31183
  /** Fired after the list opens or closes, with `newState` and `oldState`. */
@@ -31920,6 +32172,18 @@ export type HelixHeadlessToggleGroupHelixSelectElementEvent =
31920
32172
  HelixHeadlessToggleGroupElementEvent<HelixSelectEvent>;
31921
32173
 
31922
32174
  export type HelixHeadlessToggleGroupProps = {
32175
+ /** Whether a press on the chosen item, or Space or Enter on it, takes it
32176
+ back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
32177
+ Radix's `ToggleGroup` do in a single group. Absent, a single group always
32178
+ keeps its choice once it has one, as a radio group does. A multiple group
32179
+ releases a pressed item either way. */
32180
+ "allow-empty-selection"?: (HelixHeadlessToggleGroup["allowEmptySelection"]) | undefined;
32181
+ /** Whether a press on the chosen item, or Space or Enter on it, takes it
32182
+ back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
32183
+ Radix's `ToggleGroup` do in a single group. Absent, a single group always
32184
+ keeps its choice once it has one, as a radio group does. A multiple group
32185
+ releases a pressed item either way. */
32186
+ allowEmptySelection?: (HelixHeadlessToggleGroup["allowEmptySelection"]) | undefined;
31923
32187
  /** Where the group's label sits. `start` puts it on the track's line.
31924
32188
 
31925
32189
  Absent is above, which is what a field looks like and what almost every
@@ -32098,6 +32362,18 @@ Where one item is chosen, it is that one value, or none. */
32098
32362
  };
32099
32363
 
32100
32364
  export type HelixHeadlessToggleGroupSolidJsProps = {
32365
+ /** Whether a press on the chosen item, or Space or Enter on it, takes it
32366
+ back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
32367
+ Radix's `ToggleGroup` do in a single group. Absent, a single group always
32368
+ keeps its choice once it has one, as a radio group does. A multiple group
32369
+ releases a pressed item either way. */
32370
+ "bool:allow-empty-selection"?: (HelixHeadlessToggleGroup["allowEmptySelection"]) | undefined;
32371
+ /** Whether a press on the chosen item, or Space or Enter on it, takes it
32372
+ back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
32373
+ Radix's `ToggleGroup` do in a single group. Absent, a single group always
32374
+ keeps its choice once it has one, as a radio group does. A multiple group
32375
+ releases a pressed item either way. */
32376
+ "prop:allowEmptySelection"?: (HelixHeadlessToggleGroup["allowEmptySelection"]) | undefined;
32101
32377
  /** Where the group's label sits. `start` puts it on the track's line.
32102
32378
 
32103
32379
  Absent is above, which is what a field looks like and what almost every
@@ -42319,17 +42595,24 @@ export type CustomElements = {
42319
42595
  * gives a picker and locale formatting but allows almost no styling, so the
42320
42596
  * field is a text field. Typing sends `input` on each keystroke and `change`
42321
42597
  * when you leave the field, as a text field does. A date picked from the
42322
- * calendar sends both.
42598
+ * calendar sends both. The field reads ISO, `2026-08-04`, and a date written
42599
+ * in the order, the digits, and the month names of `locale`, `8/4/2026` or
42600
+ * `Aug 4, 2026` in `en-US` and `4.8.2026` in `de-DE`, which becomes the value
42601
+ * as you leave the field.
42323
42602
  *
42324
42603
  * The trigger and ArrowDown open the calendar with focus on the selected day,
42325
42604
  * Tab moves between the calendar's controls without leaving it, and Escape
42326
42605
  * closes it and returns focus to the field. A press into the field opens the
42327
42606
  * calendar too. Tab into the field opens nothing, and Tab out of the field
42328
- * closes the calendar.
42607
+ * closes the calendar. The text field is a `combobox` with
42608
+ * `aria-haspopup="dialog"`, `aria-expanded`, and `aria-controls`, as in the
42609
+ * APG date picker combobox, since Down opens the calendar from it.
42329
42610
  *
42330
42611
  * With `segmented`, the field is a row of segments in place of the text: a
42331
42612
  * month, a day and a year in the order the locale writes them, each set with
42332
- * digits or the arrow keys. Alt+Down opens the calendar from a segment.
42613
+ * digits or the arrow keys. Alt+Down opens the calendar from a segment. A
42614
+ * `range` is two rows with a dash between them, the start and the end, as
42615
+ * React Aria's DateRangePicker draws them, and `multiple` keeps the text.
42333
42616
  *
42334
42617
  * Text that is not a date gives the form an empty value, as a native date
42335
42618
  * field does, and `value` keeps the text so it can be corrected.
@@ -42359,27 +42642,39 @@ export type CustomElements = {
42359
42642
  *
42360
42643
  * Component attributes and properties that can be applied to the element or by using JavaScript.
42361
42644
  *
42362
- * - `autocomplete`: What the browser may autofill here, as one of the platform's own tokens.
42645
+ * - `autocomplete`: What the browser may autofill here, as one of the platform's own tokens,
42646
+ * such as `bday`.
42363
42647
  *
42364
42648
  * Empty leaves the attribute off, which is the browser's default and is what
42365
42649
  * lets autofill work at all: hardcoding `off` here means a birthday or a
42366
- * postal code can never be filled in for a reader.
42367
- * - `calendar`: The calendar the written date and the calendar's days are in: `gregory`,
42368
- * `buddhist`, `japanese`, `roc`, or `iso8601`.
42369
- *
42370
- * Absent is the locale's own where it is one of the five, and `gregory` for
42371
- * every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
42372
- * every calendar, and a focused field is ISO in every calendar. In
42373
- * `segmented`, the segments are the Gregorian day, month, and year, in the
42374
- * order the locale writes them, or ISO order for `iso8601`.
42650
+ * postal code can never be filled in for a reader. With `segmented`, a
42651
+ * hidden native date input carries it, since no browser fills the segments.
42652
+ * - `calendar`: The calendar the written date, the segments, and the calendar's days are
42653
+ * in: `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, or a calendar
42654
+ * with months of its own that Date Picker's `calendar` names, such as
42655
+ * `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`.
42656
+ *
42657
+ * Absent is the locale's own where its months are the Gregorian months, and
42658
+ * `gregory` for every other, as Date Picker's `calendar` is. The value is
42659
+ * `YYYY-MM-DD` in every calendar, and a focused text field is ISO in every
42660
+ * calendar. In `segmented`, the segments are the day, month, and year as
42661
+ * the calendar counts them, in the order the locale writes them: Mehr 14,
42662
+ * 1405 is month 7 and day 14 of 1405 under `persian`. Under the five with
42663
+ * Gregorian months they are the Gregorian day, month, and year, or ISO order
42664
+ * for `iso8601`.
42375
42665
  * - `calendar-label`/`calendarLabel`: The name of the calendar's grid of days, read by screen readers.
42666
+ * - `clearable`: Whether the field shows a button that empties it, as Input's `clearable`
42667
+ * does. Shown only while the field holds something to clear and is neither
42668
+ * disabled nor read-only.
42669
+ * - `clear-label`/`clearLabel`: The accessible name of the clear button, which shows only an icon.
42376
42670
  * - `date-style`/`dateStyle`: How a date is written in the field: `short` through `full`, or ISO.
42377
42671
  *
42378
42672
  * **The field renders when it is idle and holds the value when it is being
42379
42673
  * edited.** A written date is a rendering, and a document being edited must
42380
42674
  * not be a rendering of something else: `Intl.DateTimeFormat` formats and does
42381
- * not parse, so `4 August 2026` cannot be typed back, and writing a parser per
42382
- * locale is how a field ends up rejecting what it just displayed.
42675
+ * not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
42676
+ * edit. The field does read a date typed in the locale's order and digits as
42677
+ * you leave it, which covers what a reader types.
42383
42678
  *
42384
42679
  * The way out is not to choose between the two but to separate them in time.
42385
42680
  * Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -42447,6 +42742,9 @@ export type CustomElements = {
42447
42742
  *
42448
42743
  * **The name goes in**, so a row of them is heard as which one each
42449
42744
  * removes rather than as "Remove" said once per date.
42745
+ * - `selection-label`/`selectionLabel`: What a screen reader hears about the dates chosen in the calendar, with
42746
+ * `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
42747
+ * `selection-label` says.
42450
42748
  * - `step`: How far apart the selectable dates are, in days.
42451
42749
  *
42452
42750
  * `<input type="date" step>`'s own unit, handed to the calendar this renders
@@ -42454,8 +42752,13 @@ export type CustomElements = {
42454
42752
  * where there is one and from 1 January 1970 where there is not, which is the
42455
42753
  * platform's base.
42456
42754
  * - `step-mismatch-message`/`stepMismatchMessage`: The message shown when a date is not on `step`.
42755
+ * - `time-zone`/`timeZone`: The time zone today is read in, such as `America/New_York`, handed to the
42756
+ * calendar: the day marked today, and the month an empty field opens on.
42757
+ * Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone.
42457
42758
  * - `trigger-label`/`triggerLabel`: The name of the button that opens the calendar, read by screen readers.
42458
42759
  * - `unavailable-message`/`unavailableMessage`: The message shown when `disable-dates` or `disable-days` bars a date.
42760
+ * - `unreadable-message`/`unreadableMessage`: The message for text that is no date, where `bad-input-message` is not
42761
+ * set. `{mode}` is `single`, `range`, or `multiple`.
42459
42762
  * - `year-view-label`/`yearViewLabel`: The name of the calendar's heading where it shows a page of years, with
42460
42763
  * `{heading}` filled in.
42461
42764
  * - `empty-message`/`emptyMessage`: What a row of segments reports when the field is required and every
@@ -42466,6 +42769,10 @@ export type CustomElements = {
42466
42769
  * - `incomplete-message`/`incompleteMessage`: What a row of segments reports while some segments are set and others
42467
42770
  * are not, where `bad-input-message` is not set. `{kind}` is `date` or
42468
42771
  * `time`.
42772
+ * - `range-end-label`/`rangeEndLabel`: What a screen reader hears before the segments of a range's second date
42773
+ * or time, after each segment's own name.
42774
+ * - `range-start-label`/`rangeStartLabel`: What a screen reader hears before the segments of a range's first date
42775
+ * or time, after each segment's own name: "month, Start, Stay".
42469
42776
  * - `segmented`: Whether the field is a row of segments, one for each part of the date or
42470
42777
  * time, in place of a line of text.
42471
42778
  *
@@ -42626,6 +42933,7 @@ export type CustomElements = {
42626
42933
  * - `helix-before-change`: Fired before the date changes. Cancelable: call `preventDefault()` to keep the current date.
42627
42934
  * - `helix-before-close`: Fired before the calendar closes. Cancelable: call `preventDefault()` to keep it open.
42628
42935
  * - `helix-before-open`: Fired before the calendar opens. Cancelable: call `preventDefault()` to keep it closed.
42936
+ * - `helix-clear`: Fired after the clear button has emptied the field, after `input` and `change`.
42629
42937
  * - `input`: Fired after the value changes.
42630
42938
  * - `toggle`: Fired when the calendar opens or closes, with `newState` and `oldState`.
42631
42939
  *
@@ -42633,6 +42941,7 @@ export type CustomElements = {
42633
42941
  *
42634
42942
  * Areas where markup can be added to the component.
42635
42943
  *
42944
+ * - `clear-icon`: Replaces the cross on the clear button, under `clearable`.
42636
42945
  * - `end`: Content after the date, before the trigger, such as a clear button.
42637
42946
  * - `feedback`: The error message under the field.
42638
42947
  * - `hint`: The help text under the field.
@@ -42708,6 +43017,7 @@ export type CustomElements = {
42708
43017
  *
42709
43018
  * Custom selectors for styling elements within the component.
42710
43019
  *
43020
+ * - `clear`: The button that empties the field, under `clearable`, while it holds a date.
42711
43021
  * - `control`: The text input.
42712
43022
  * - `date`: One held date, as a tag, in `multiple`.
42713
43023
  * - `date-cell`: The tag's grid cell, which a tag draws only inside a tag group.
@@ -42749,8 +43059,10 @@ export type CustomElements = {
42749
43059
  * - `picker-periods`: The grid of months or years.
42750
43060
  * - `picker-previous`: The control that moves to the previous month.
42751
43061
  * - `picker-previous-mark`: The icon on the previous month control.
43062
+ * - `picker-selection`: The chosen date or range in words, which screen readers hear when it changes. Drawn for screen readers only.
42752
43063
  * - `picker-week`: One row of days.
42753
43064
  * - `picker-weekday`: A column header naming a day of the week.
43065
+ * - `range-separator`: The dash between a range's two rows of segments, in `segmented`, beside `literal`.
42754
43066
  * - `rest`: The count of dates beyond the ones shown. It is a `<button>` with `expandable` and a `<span>` without it.
42755
43067
  * - `segment`: One part of the date, a year, a month or a day, in `segmented`.
42756
43068
  * - `segment-placeholder`: A segment with nothing in it yet. Applied with `segment`.
@@ -42764,6 +43076,7 @@ export type CustomElements = {
42764
43076
  *
42765
43077
  * These can be used to apply styling when a component is in a given state.
42766
43078
  *
43079
+ * - `blank`: The field holds no date.
42767
43080
  * - `invalid`: The field has an error to show, from the browser's validation or from your `feedback`.
42768
43081
  * - `open`: The calendar is open.
42769
43082
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -42783,9 +43096,11 @@ export type CustomElements = {
42783
43096
  * **Dates are `YYYY-MM-DD` strings, and every calculation is in UTC**, because
42784
43097
  * a local-time `Date` shifts across a time zone or daylight-saving boundary.
42785
43098
  *
42786
- * **The days are the Gregorian calendar's**, written in `calendar`: the
42787
- * locale's own where its months are the Gregorian months, as `th-TH` writes
42788
- * 2569 for 2026, and `gregory` where they are not, as for `fa-IR`.
43099
+ * **The months are the ones `calendar` counts**: the Gregorian months for the
43100
+ * locale's own calendar where its months are the Gregorian months, as `th-TH`
43101
+ * writes 2569 for 2026, and `gregory` where they are not, as for `fa-IR`
43102
+ * with no `calendar`. Name a calendar with months of its own, such as
43103
+ * `persian`, and every view counts its days, months, and years from `Intl`.
42789
43104
  *
42790
43105
  * `month` sets which month the grid shows, separately from `value`, so paging
42791
43106
  * selects nothing and you can control the view. When unset, it follows the
@@ -42793,7 +43108,14 @@ export type CustomElements = {
42793
43108
  *
42794
43109
  * `mode` sets how many dates are held. Unset holds one, `range` holds two and
42795
43110
  * marks the dates between them, and `multiple` toggles each date. All three
42796
- * read and write the same comma-separated `value`.
43111
+ * read and write the same comma-separated `value`. With a `mode`, the grid
43112
+ * carries `aria-multiselectable`. While a range holds one end, the grid draws
43113
+ * the range to the day under the pointer or the focus, marking those cells
43114
+ * `data-range-preview`.
43115
+ *
43116
+ * The chosen date, range, or count of dates is the grid's description, in a
43117
+ * region screen readers announce when it changes, as React Aria's calendars
43118
+ * do. `selection-label` words it.
42797
43119
  *
42798
43120
  * `max-view` makes the heading a button that steps back to the months of the
42799
43121
  * year, and with `year` to a page of years, as Zag's date picker does. The
@@ -42828,14 +43150,16 @@ export type CustomElements = {
42828
43150
  * `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
42829
43151
  * for `fa-IR`.
42830
43152
  *
42831
- * `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
42832
- * `coptic`, and `indian` draw a calendar with months of its own, as React
42833
- * Aria's calendars do: each grid is one of that calendar's months, the
42834
- * Hebrew leap month and Ethiopia's five-day thirteenth month included, and
42835
- * Previous, Next and the page keys move by those months. `month` and
43153
+ * `persian`, `hebrew`, `islamic`, `islamic-umalqura`, `islamic-civil`,
43154
+ * `islamic-tbla`, `islamic-rgsa`, `ethiopic`, `ethioaa`, `coptic`,
43155
+ * `indian`, `chinese`, and `dangi` draw a calendar with months of its own,
43156
+ * as React Aria's calendars do: each grid is one of that calendar's months,
43157
+ * the Hebrew and Chinese leap months and Ethiopia's five-day thirteenth
43158
+ * month included, and Previous, Next and the page keys move by those
43159
+ * months. With `max-view`, the months view shows that calendar's year, of
43160
+ * twelve or thirteen months, and the years view its years. `month` and
42836
43161
  * `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
42837
- * heading stays text, as the months and years views are drawn in Gregorian
42838
- * months only. The value is `YYYY-MM-DD` in every calendar.
43162
+ * value is `YYYY-MM-DD` in every calendar.
42839
43163
  * - `default-month`/`defaultMonth`: The month to open on when `month` is not set.
42840
43164
  * - `disable-dates`/`disableDates`: Dates that cannot be chosen, as `YYYY-MM-DD`, separated by commas or
42841
43165
  * spaces.
@@ -42898,6 +43222,11 @@ export type CustomElements = {
42898
43222
  * value and stays reachable, which is what a form showing a value somebody
42899
43223
  * else set needs.
42900
43224
  * - `required`: Stops the form from submitting while no date is chosen.
43225
+ * - `selection-label`/`selectionLabel`: What a screen reader hears about the chosen dates: the grid's
43226
+ * description, said again whenever the dates change. `{kind}` is `date`,
43227
+ * `start` while a range holds one end, `range`, or `dates` for `multiple`.
43228
+ * `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
43229
+ * many dates are chosen.
42901
43230
  * - `step`: How far apart the selectable dates are, in days.
42902
43231
  *
42903
43232
  * `<input type="date" step>`'s own unit, counted from `min` where there is
@@ -43052,6 +43381,13 @@ export type CustomElements = {
43052
43381
  * Date Input calls this when its trigger opens the calendar, which is where
43053
43382
  * the APG date picker dialog puts focus. The host is not focusable, so a
43054
43383
  * plain `focus()` on it did nothing and focus stayed on the trigger.
43384
+ * - `showChosen() => void`: Shows the days again, on the month of the chosen date, with the tab stop
43385
+ * on that date, forgetting the month and the day the reader browsed to.
43386
+ *
43387
+ * Date Input calls it each time its panel opens, which is where the APG
43388
+ * date picker dialog puts focus. Measured before this: from August 4, two
43389
+ * presses of Page Down, Escape, and Down again opened on October 4.
43390
+ * A `month` you set stays until the reader pages away from it.
43055
43391
  * - `requestValue(next: string) => boolean`: Refuses every change while read-only. See `readOnly`.
43056
43392
  * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
43057
43393
  * where there is no `default-value`.
@@ -43115,7 +43451,7 @@ export type CustomElements = {
43115
43451
  * Custom selectors for styling elements within the component.
43116
43452
  *
43117
43453
  * - `cell`: One column of a week row. A range is painted on the cells.
43118
- * - `cell-range-end`: The cell of a range's last day, beside `cell`.
43454
+ * - `cell-range-end`: The cell of a range's last day, beside `cell`, or of the day a waiting range is drawn to.
43119
43455
  * - `cell-range-middle`: A cell between a range's ends, beside `cell`.
43120
43456
  * - `cell-range-start`: The cell of a range's first day, beside `cell`.
43121
43457
  * - `day`: The shape inside a cell. A single chosen date is painted on it.
@@ -43141,6 +43477,7 @@ export type CustomElements = {
43141
43477
  * - `periods`: The grid of months or years.
43142
43478
  * - `previous`: The control that moves to the previous month.
43143
43479
  * - `previous-mark`: The glyph on the previous month control, where none is slotted.
43480
+ * - `selection`: The chosen date or range in words, which screen readers hear when it changes. Drawn for screen readers only.
43144
43481
  * - `week`: One row of days.
43145
43482
  * - `weekday`: A column header naming a day of the week. It shows the short name and says the full one.
43146
43483
  *
@@ -43148,7 +43485,11 @@ export type CustomElements = {
43148
43485
  *
43149
43486
  * These can be used to apply styling when a component is in a given state.
43150
43487
  *
43151
- * - `invalid`: While `invalid` is set or `feedback` says what is wrong.
43488
+ * - `blank`: While no date is chosen.
43489
+ * - `invalid`: While `invalid` is set, `feedback` says what is wrong, the picker holds a date outside `min` and `max` or one it bars, or it is `required`, holds no date, and the reader has answered once or a form has refused it.
43490
+ * - `month-view`: While the months of a year are shown, where `max-view` is set.
43491
+ * - `range-pending`: While a `range` holds its first end and waits for the second.
43492
+ * - `year-view`: While a page of years is shown, where `max-view` is `year`.
43152
43493
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
43153
43494
  */
43154
43495
  "helix-headless-date-picker": Partial<
@@ -45762,20 +46103,22 @@ export type CustomElements = {
45762
46103
  *
45763
46104
  * **A date is written in a calendar Date Picker draws**: the locale's own
45764
46105
  * where its months are the Gregorian months, as `th-TH` writes 2569 for 2026,
45765
- * and `gregory` where they are not, as for `fa-IR`. `calendar` picks one of
45766
- * the five.
46106
+ * and `gregory` where they are not, as for `fa-IR`. `calendar` picks any of
46107
+ * them, `persian` and `hebrew` included.
45767
46108
  *
45768
46109
  * ## Attributes & Properties
45769
46110
  *
45770
46111
  * Component attributes and properties that can be applied to the element or by using JavaScript.
45771
46112
  *
45772
46113
  * - `calendar`: The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
45773
- * `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
45774
- *
45775
- * Absent is the locale's own where it is one of the five, such as
45776
- * `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
45777
- * for `fa-IR`, so a date written here reads as the same date a Date Picker
45778
- * beside it shows.
46114
+ * `roc`, or `iso8601`, or a calendar with months of its own, such as
46115
+ * `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`: every
46116
+ * calendar Date Picker and Date Input draw.
46117
+ *
46118
+ * Absent is the locale's own where its months are the Gregorian months,
46119
+ * such as `buddhist` for `th-TH`, and `gregory` for every other, such as
46120
+ * `persian` for `fa-IR`, so a date written here reads as the same date a
46121
+ * Date Picker beside it shows. Write `calendar="persian"` for Mehr 14, 1405.
45779
46122
  * - `date`: The timestamp, in any format `Date` can parse.
45780
46123
  *
45781
46124
  * An ISO string is what an API sends and what `<time datetime>` takes, so it
@@ -45794,6 +46137,9 @@ export type CustomElements = {
45794
46137
  * - `date-style`/`dateStyle`: The locale's own pattern for the date: `full`, `long`, `medium`, or
45795
46138
  * `short`. Set, it stands in for `weekday`, `day`, `month`, `year` and `era`.
45796
46139
  * - `day`: How the day of the month is written, where a date is shown.
46140
+ * - `day-period`/`dayPeriod`: Writes the part of the day in words, such as "in the morning" or "at
46141
+ * night", in its `long`, `short`, or `narrow` form, where `hour` is on a
46142
+ * twelve-hour clock.
45797
46143
  * - `elapsed`: Shows how long ago the timestamp was, in a compact form such as "3h", in
45798
46144
  * place of the date.
45799
46145
  *
@@ -45808,6 +46154,8 @@ export type CustomElements = {
45808
46154
  * Off by default, which draws the date as one run of text, as Shoelace and
45809
46155
  * Web Awesome do. An `elapsed` or `relative` reading is one phrase either
45810
46156
  * way.
46157
+ * - `fractional-second-digits`/`fractionalSecondDigits`: How many digits of a fraction of a second to write after `second`: 1, 2,
46158
+ * or 3, as in 09:41:07.250.
45811
46159
  * - `frozen`: Draws an `elapsed` or `relative` reading once and leaves it, where it
45812
46160
  * would otherwise move on as it goes stale.
45813
46161
  *
@@ -45845,7 +46193,9 @@ export type CustomElements = {
45845
46193
  * - `time-zone`/`timeZone`: The time zone to read the timestamp in.
45846
46194
  *
45847
46195
  * Empty is the runtime's own.
45848
- * - `time-zone-name`/`timeZoneName`: Shows the name of the time zone, in its `long` or `short` form.
46196
+ * - `time-zone-name`/`timeZoneName`: Shows the name of the time zone: `long` or `short`, as Pacific Daylight
46197
+ * Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
46198
+ * `longGeneric` or `shortGeneric`, as Pacific Time or PT.
45849
46199
  * - `weekday`: How the weekday is written, where one is shown.
45850
46200
  * - `year`: How the year is written, where a date is shown.
45851
46201
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
@@ -45876,6 +46226,7 @@ export type CustomElements = {
45876
46226
  * - `day`: The day of the month, with `fields`.
45877
46227
  * - `day-period`: AM or PM, or the locale's word for the part of the day, with `fields`.
45878
46228
  * - `era`: The era, such as AD, with `fields` and `era`.
46229
+ * - `fractional-second`: The fraction of a second, with `fields` and `fractional-second-digits`.
45879
46230
  * - `hour`: The hour, with `fields`.
45880
46231
  * - `minute`: The minute, with `fields`.
45881
46232
  * - `month`: The month, with `fields`.
@@ -51633,6 +51984,7 @@ export type CustomElements = {
51633
51984
  * - `time-day`: Format Date's `day`, forwarded for a time drawn as fields. An elapsed time draws none.
51634
51985
  * - `time-day-period`: Format Date's `day-period`, forwarded for a time drawn as fields. An elapsed time draws none.
51635
51986
  * - `time-era`: Format Date's `era`, forwarded for a time drawn as fields. An elapsed time draws none.
51987
+ * - `time-fractional-second`: Format Date's `fractional-second`, forwarded for a time drawn as fields. An elapsed time draws none.
51636
51988
  * - `time-hour`: Format Date's `hour`, forwarded for a time drawn as fields. An elapsed time draws none.
51637
51989
  * - `time-minute`: Format Date's `minute`, forwarded for a time drawn as fields. An elapsed time draws none.
51638
51990
  * - `time-month`: Format Date's `month`, forwarded for a time drawn as fields. An elapsed time draws none.
@@ -56010,6 +56362,10 @@ export type CustomElements = {
56010
56362
  * `min-steps-between-thumbs` keeps them that many steps apart, and the readout
56011
56363
  * joins the two as `range-text` writes them.
56012
56364
  *
56365
+ * A press on a range's track takes the nearest thumb to the point pressed,
56366
+ * and moving the pointer drags it, as React Aria's and Web Awesome's sliders
56367
+ * do. The thumb takes focus, and `change` is sent as the press ends.
56368
+ *
56013
56369
  * `origin` sets where a single thumb's fill starts: at `min`, at the middle of
56014
56370
  * the track, or at `max`. A balance or an offset from zero fills from the
56015
56371
  * middle, as Zag's slider `origin` does. The fill's ends are published as
@@ -56034,7 +56390,7 @@ export type CustomElements = {
56034
56390
  * |---|---|
56035
56391
  * | Right, Up | Moves the thumb up by `step`. |
56036
56392
  * | Left, Down | Moves the thumb down by `step`. |
56037
- * | Page Up, Page Down | Moves the thumb by a larger step. |
56393
+ * | Page Up, Page Down | Moves the thumb by `page-step`, or by the platform's larger step where it is not set. |
56038
56394
  * | Home, End | Moves the thumb to its lowest or highest value. |
56039
56395
  *
56040
56396
  * Under `readonly` none of these move the thumb, and Tab still reaches it.
@@ -56095,6 +56451,9 @@ export type CustomElements = {
56095
56451
  * - `origin`: Where a single thumb's fill starts: `start` at `min`, `center` at the
56096
56452
  * middle of the track, or `end` at `max`. Absent is `start`. A range fills
56097
56453
  * between its thumbs and ignores it.
56454
+ * - `page-step`/`pageStep`: How far Page Up and Page Down move a thumb, in the slider's own units, as
56455
+ * React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
56456
+ * to the platform, which moves a tenth of the track.
56098
56457
  * - `range`: Adds a second thumb, so the value is a pair.
56099
56458
  *
56100
56459
  * The pair is one string, `"10,50"`, which is what `value` and
@@ -56327,6 +56686,8 @@ export type CustomElements = {
56327
56686
  *
56328
56687
  * These can be used to apply styling when a component is in a given state.
56329
56688
  *
56689
+ * - `dragging`: A thumb is being dragged, by its thumb or from a press on the track.
56690
+ * - `focus-visible`: A thumb has focus that the keyboard brought, where the browser draws a focus ring.
56330
56691
  * - `invalid`: The slider has an error to show, from the browser's validation or from your `feedback`.
56331
56692
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
56332
56693
  */
@@ -59451,20 +59812,25 @@ export type CustomElements = {
59451
59812
  * `seconds`, because that is what the form
59452
59813
  * submits, what `min` and `max` compare against, and what sorts correctly as a
59453
59814
  * string. While idle, the field shows the time in the user's locale format.
59454
- * Once the caret is in the field, it shows the value itself, because a
59455
- * formatted time such as `2:30 PM` cannot be typed back and `Intl` has no
59456
- * parser for it.
59815
+ * Once the caret is in the field, it shows the value itself. You can type
59816
+ * `14:30`, or a time as you write one, such as `2:30 PM`, `2.30pm`, or
59817
+ * `14h30`, and the field reads it as you leave it, with AM and PM in the
59818
+ * locale's words.
59457
59819
  *
59458
59820
  * Typing sends `input` on each keystroke and `change` when you leave the
59459
59821
  * field. The trigger and ArrowDown open the list, and so does a press into the
59460
- * field; Tab into the field opens nothing. In the list, the arrow keys, typed digits and PageUp and PageDown
59822
+ * field; Tab into the field opens nothing. The text field is a `combobox`
59823
+ * with `aria-haspopup="dialog"`, `aria-expanded`, and `aria-controls`, since
59824
+ * Down opens the list from it. In the list, the arrow keys, typed digits and PageUp and PageDown
59461
59825
  * move through the times, and Enter, Space or a click chooses one and closes
59462
59826
  * the panel. With `variant="wheels"` each wheel moves the time as you turn it,
59463
59827
  * the panel stays open, and Enter or Escape closes it.
59464
59828
  *
59465
59829
  * With `segmented`, the field is a row of segments in place of the text: an
59466
59830
  * hour, a minute, and AM or PM where the clock has them, each set with digits
59467
- * or the arrow keys. Alt+Down opens the list from a segment.
59831
+ * or the arrow keys. Alt+Down opens the list from a segment. A `range` is two
59832
+ * rows with a dash between them, the start and the end, and `multiple` keeps
59833
+ * the text.
59468
59834
  *
59469
59835
  * Text that is not a time gives the form an empty value, as a native time
59470
59836
  * field does, and `value` keeps the text so it can be corrected.
@@ -59496,6 +59862,10 @@ export type CustomElements = {
59496
59862
  *
59497
59863
  * Empty leaves the attribute off, which is the browser's default and is what
59498
59864
  * lets autofill work at all.
59865
+ * - `clearable`: Whether the field shows a button that empties it, as Input's `clearable`
59866
+ * does. Shown only while the field holds something to clear and is neither
59867
+ * disabled nor read-only.
59868
+ * - `clear-label`/`clearLabel`: The accessible name of the clear button, which shows only an icon.
59499
59869
  * - `disable-times`/`disableTimes`: Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
59500
59870
  *
59501
59871
  * Handed to the list, which offers them as unavailable, and checked against
@@ -59544,6 +59914,8 @@ export type CustomElements = {
59544
59914
  * never something this element would refuse to read back.
59545
59915
  * - `trigger-label`/`triggerLabel`: The name of the button that opens the list, read by screen readers.
59546
59916
  * - `unavailable-message`/`unavailableMessage`: The message shown when `disable-times` bars a time.
59917
+ * - `unreadable-message`/`unreadableMessage`: The message for text that is no time, where `bad-input-message` is not
59918
+ * set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`.
59547
59919
  * - `variant`: Whether the panel shows one list of times or a column for each part of the
59548
59920
  * time.
59549
59921
  *
@@ -59566,6 +59938,10 @@ export type CustomElements = {
59566
59938
  * - `incomplete-message`/`incompleteMessage`: What a row of segments reports while some segments are set and others
59567
59939
  * are not, where `bad-input-message` is not set. `{kind}` is `date` or
59568
59940
  * `time`.
59941
+ * - `range-end-label`/`rangeEndLabel`: What a screen reader hears before the segments of a range's second date
59942
+ * or time, after each segment's own name.
59943
+ * - `range-start-label`/`rangeStartLabel`: What a screen reader hears before the segments of a range's first date
59944
+ * or time, after each segment's own name: "month, Start, Stay".
59569
59945
  * - `segmented`: Whether the field is a row of segments, one for each part of the date or
59570
59946
  * time, in place of a line of text.
59571
59947
  *
@@ -59717,6 +60093,7 @@ export type CustomElements = {
59717
60093
  * - `helix-before-change`: Fired before the time changes. Cancelable: canceling it stops the change and leaves the decision to you.
59718
60094
  * - `helix-before-close`: Fired before the list closes. Cancelable: canceling it keeps the list open and leaves the decision to you.
59719
60095
  * - `helix-before-open`: Fired before the list opens. Cancelable: canceling it keeps the list closed and leaves the decision to you.
60096
+ * - `helix-clear`: Fired after the clear button has emptied the field, after `input` and `change`.
59720
60097
  * - `input`: Fired after the value changes.
59721
60098
  * - `toggle`: Fired after the list opens or closes, with `newState` and `oldState`.
59722
60099
  *
@@ -59724,6 +60101,7 @@ export type CustomElements = {
59724
60101
  *
59725
60102
  * Areas where markup can be added to the component.
59726
60103
  *
60104
+ * - `clear-icon`: Replaces the cross on the clear button, under `clearable`.
59727
60105
  * - `end`: Content after the time, before the trigger, such as a clear button.
59728
60106
  * - `feedback`: The message that says what is wrong with the value.
59729
60107
  * - `hint`: Help under the field.
@@ -59797,6 +60175,7 @@ export type CustomElements = {
59797
60175
  *
59798
60176
  * Custom selectors for styling elements within the component.
59799
60177
  *
60178
+ * - `clear`: The button that empties the field, under `clearable`, while it holds a time.
59800
60179
  * - `control`: The text input.
59801
60180
  * - `feedback`: The message that says what is wrong with the value.
59802
60181
  * - `field`: The box that holds the text and the trigger.
@@ -59842,6 +60221,7 @@ export type CustomElements = {
59842
60221
  * - `picker-option-item-selected`: The row of a chosen time: the one time, or either end of a range.
59843
60222
  * - `picker-option-label`: The option's label.
59844
60223
  * - `picker-option-text`: The label and the caption, as one column.
60224
+ * - `range-separator`: The dash between a range's two rows of segments, in `segmented`, beside `literal`.
59845
60225
  * - `rest`: The count of times held beyond the ones shown. A `<button>` with `expandable`, and a `<span>` without it.
59846
60226
  * - `segment`: One part of the time, an hour, a minute, a second or AM and PM, in `segmented`.
59847
60227
  * - `segment-placeholder`: A segment with nothing in it yet. Applied with `segment`.
@@ -59862,6 +60242,7 @@ export type CustomElements = {
59862
60242
  *
59863
60243
  * These can be used to apply styling when a component is in a given state.
59864
60244
  *
60245
+ * - `blank`: The field holds no time.
59865
60246
  * - `invalid`: The control has an error to show, from the browser's validation or from your `feedback`.
59866
60247
  * - `open`: While the clock is open.
59867
60248
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -59915,7 +60296,10 @@ export type CustomElements = {
59915
60296
  * host's `aria-label` or its `aria-labelledby`. A development build warns
59916
60297
  * where all four are empty. The list is described by the hint, or by the
59917
60298
  * message in `feedback` in its place, and carries `aria-multiselectable` with
59918
- * a `mode` and `aria-invalid` while `feedback` says what is wrong. The wheels
60299
+ * a `mode`. It carries `aria-invalid` while `feedback` says what is wrong,
60300
+ * while it holds a time outside `min` and `max` or one the picker does not
60301
+ * offer, and, for a `required` picker with no time, once the reader has
60302
+ * chosen one or a form has refused the picker. The wheels
59919
60303
  * are a `group` with that name, holding one `listbox` per wheel, named "Hour",
59920
60304
  * "Minute", "Second" and "AM/PM" in the page's language, and each described
59921
60305
  * the same way.
@@ -60273,7 +60657,7 @@ export type CustomElements = {
60273
60657
  * - `list-loading`: The text shown while the options load.
60274
60658
  * - `list-search`: The region that holds the filter field.
60275
60659
  * - `list-search-field`: The filter field.
60276
- * - `option`: One time in the list. It carries `data-between` inside a range.
60660
+ * - `option`: One time in the list. It carries `data-between` inside a range, and inside the run to the time under the pointer while a range waits for its second end.
60277
60661
  * - `option-between`: A time inside a chosen range, excluding its ends, beside `option`.
60278
60662
  * - `option-description`: The caption under the time's label, when there is one.
60279
60663
  * - `option-item`: The row.
@@ -60287,7 +60671,8 @@ export type CustomElements = {
60287
60671
  * These can be used to apply styling when a component is in a given state.
60288
60672
  *
60289
60673
  * - `blank`: While no time is chosen.
60290
- * - `invalid`: While `invalid` is set or `feedback` says what is wrong.
60674
+ * - `invalid`: While `invalid` is set, `feedback` says what is wrong, or the list carries `aria-invalid`.
60675
+ * - `range-pending`: While a `range` holds its first time and waits for the second.
60291
60676
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
60292
60677
  */
60293
60678
  "helix-headless-time-picker": Partial<
@@ -60871,7 +61256,7 @@ export type CustomElements = {
60871
61256
  * | Right, Down | Moves to the next item, from the last back to the first. In a single group, chooses it. |
60872
61257
  * | Left, Up | Moves to the item before, from the first round to the last. In a single group, chooses it. |
60873
61258
  * | Home, End | Moves to the first or the last item. In a single group, chooses it. |
60874
- * | Space, Enter | Chooses the focused item, or presses or releases it in a multiple group. |
61259
+ * | Space, Enter | Chooses the focused item, or presses or releases it in a multiple group. With `allow-empty-selection`, takes back the chosen item. |
60875
61260
  *
60876
61261
  * Left and Right swap on a right-to-left page, and a disabled item is passed
60877
61262
  * over. A single group is a `radiogroup` of items with `role="radio"` and
@@ -60883,6 +61268,11 @@ export type CustomElements = {
60883
61268
  *
60884
61269
  * Component attributes and properties that can be applied to the element or by using JavaScript.
60885
61270
  *
61271
+ * - `allow-empty-selection`/`allowEmptySelection`: Whether a press on the chosen item, or Space or Enter on it, takes it
61272
+ * back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
61273
+ * Radix's `ToggleGroup` do in a single group. Absent, a single group always
61274
+ * keeps its choice once it has one, as a radio group does. A multiple group
61275
+ * releases a pressed item either way.
60886
61276
  * - `label-placement`/`labelPlacement`: Where the group's label sits. `start` puts it on the track's line.
60887
61277
  *
60888
61278
  * Absent is above, which is what a field looks like and what almost every
@@ -61227,13 +61617,13 @@ export type CustomElements = {
61227
61617
  *
61228
61618
  * Custom selectors for styling elements within the component.
61229
61619
  *
61230
- * - `item`: The radio button.
61620
+ * - `item`: The button: a radio in a group where one is chosen, and a button with `aria-pressed` on its own or in a group where several can be.
61231
61621
  *
61232
61622
  * ## CSS States
61233
61623
  *
61234
61624
  * These can be used to apply styling when a component is in a given state.
61235
61625
  *
61236
- * - `pressed`: The item is pressed, in a group where several can be.
61626
+ * - `pressed`: The item is pressed, on its own or in a group where several can be.
61237
61627
  * - `selected`: The item is chosen.
61238
61628
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
61239
61629
  */
@@ -70673,17 +71063,24 @@ export type CustomElementsSolidJs = {
70673
71063
  * gives a picker and locale formatting but allows almost no styling, so the
70674
71064
  * field is a text field. Typing sends `input` on each keystroke and `change`
70675
71065
  * when you leave the field, as a text field does. A date picked from the
70676
- * calendar sends both.
71066
+ * calendar sends both. The field reads ISO, `2026-08-04`, and a date written
71067
+ * in the order, the digits, and the month names of `locale`, `8/4/2026` or
71068
+ * `Aug 4, 2026` in `en-US` and `4.8.2026` in `de-DE`, which becomes the value
71069
+ * as you leave the field.
70677
71070
  *
70678
71071
  * The trigger and ArrowDown open the calendar with focus on the selected day,
70679
71072
  * Tab moves between the calendar's controls without leaving it, and Escape
70680
71073
  * closes it and returns focus to the field. A press into the field opens the
70681
71074
  * calendar too. Tab into the field opens nothing, and Tab out of the field
70682
- * closes the calendar.
71075
+ * closes the calendar. The text field is a `combobox` with
71076
+ * `aria-haspopup="dialog"`, `aria-expanded`, and `aria-controls`, as in the
71077
+ * APG date picker combobox, since Down opens the calendar from it.
70683
71078
  *
70684
71079
  * With `segmented`, the field is a row of segments in place of the text: a
70685
71080
  * month, a day and a year in the order the locale writes them, each set with
70686
- * digits or the arrow keys. Alt+Down opens the calendar from a segment.
71081
+ * digits or the arrow keys. Alt+Down opens the calendar from a segment. A
71082
+ * `range` is two rows with a dash between them, the start and the end, as
71083
+ * React Aria's DateRangePicker draws them, and `multiple` keeps the text.
70687
71084
  *
70688
71085
  * Text that is not a date gives the form an empty value, as a native date
70689
71086
  * field does, and `value` keeps the text so it can be corrected.
@@ -70713,27 +71110,39 @@ export type CustomElementsSolidJs = {
70713
71110
  *
70714
71111
  * Component attributes and properties that can be applied to the element or by using JavaScript.
70715
71112
  *
70716
- * - `autocomplete`: What the browser may autofill here, as one of the platform's own tokens.
71113
+ * - `autocomplete`: What the browser may autofill here, as one of the platform's own tokens,
71114
+ * such as `bday`.
70717
71115
  *
70718
71116
  * Empty leaves the attribute off, which is the browser's default and is what
70719
71117
  * lets autofill work at all: hardcoding `off` here means a birthday or a
70720
- * postal code can never be filled in for a reader.
70721
- * - `calendar`: The calendar the written date and the calendar's days are in: `gregory`,
70722
- * `buddhist`, `japanese`, `roc`, or `iso8601`.
70723
- *
70724
- * Absent is the locale's own where it is one of the five, and `gregory` for
70725
- * every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
70726
- * every calendar, and a focused field is ISO in every calendar. In
70727
- * `segmented`, the segments are the Gregorian day, month, and year, in the
70728
- * order the locale writes them, or ISO order for `iso8601`.
71118
+ * postal code can never be filled in for a reader. With `segmented`, a
71119
+ * hidden native date input carries it, since no browser fills the segments.
71120
+ * - `calendar`: The calendar the written date, the segments, and the calendar's days are
71121
+ * in: `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, or a calendar
71122
+ * with months of its own that Date Picker's `calendar` names, such as
71123
+ * `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`.
71124
+ *
71125
+ * Absent is the locale's own where its months are the Gregorian months, and
71126
+ * `gregory` for every other, as Date Picker's `calendar` is. The value is
71127
+ * `YYYY-MM-DD` in every calendar, and a focused text field is ISO in every
71128
+ * calendar. In `segmented`, the segments are the day, month, and year as
71129
+ * the calendar counts them, in the order the locale writes them: Mehr 14,
71130
+ * 1405 is month 7 and day 14 of 1405 under `persian`. Under the five with
71131
+ * Gregorian months they are the Gregorian day, month, and year, or ISO order
71132
+ * for `iso8601`.
70729
71133
  * - `calendar-label`/`calendarLabel`: The name of the calendar's grid of days, read by screen readers.
71134
+ * - `clearable`: Whether the field shows a button that empties it, as Input's `clearable`
71135
+ * does. Shown only while the field holds something to clear and is neither
71136
+ * disabled nor read-only.
71137
+ * - `clear-label`/`clearLabel`: The accessible name of the clear button, which shows only an icon.
70730
71138
  * - `date-style`/`dateStyle`: How a date is written in the field: `short` through `full`, or ISO.
70731
71139
  *
70732
71140
  * **The field renders when it is idle and holds the value when it is being
70733
71141
  * edited.** A written date is a rendering, and a document being edited must
70734
71142
  * not be a rendering of something else: `Intl.DateTimeFormat` formats and does
70735
- * not parse, so `4 August 2026` cannot be typed back, and writing a parser per
70736
- * locale is how a field ends up rejecting what it just displayed.
71143
+ * not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
71144
+ * edit. The field does read a date typed in the locale's order and digits as
71145
+ * you leave it, which covers what a reader types.
70737
71146
  *
70738
71147
  * The way out is not to choose between the two but to separate them in time.
70739
71148
  * Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -70801,6 +71210,9 @@ export type CustomElementsSolidJs = {
70801
71210
  *
70802
71211
  * **The name goes in**, so a row of them is heard as which one each
70803
71212
  * removes rather than as "Remove" said once per date.
71213
+ * - `selection-label`/`selectionLabel`: What a screen reader hears about the dates chosen in the calendar, with
71214
+ * `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
71215
+ * `selection-label` says.
70804
71216
  * - `step`: How far apart the selectable dates are, in days.
70805
71217
  *
70806
71218
  * `<input type="date" step>`'s own unit, handed to the calendar this renders
@@ -70808,8 +71220,13 @@ export type CustomElementsSolidJs = {
70808
71220
  * where there is one and from 1 January 1970 where there is not, which is the
70809
71221
  * platform's base.
70810
71222
  * - `step-mismatch-message`/`stepMismatchMessage`: The message shown when a date is not on `step`.
71223
+ * - `time-zone`/`timeZone`: The time zone today is read in, such as `America/New_York`, handed to the
71224
+ * calendar: the day marked today, and the month an empty field opens on.
71225
+ * Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone.
70811
71226
  * - `trigger-label`/`triggerLabel`: The name of the button that opens the calendar, read by screen readers.
70812
71227
  * - `unavailable-message`/`unavailableMessage`: The message shown when `disable-dates` or `disable-days` bars a date.
71228
+ * - `unreadable-message`/`unreadableMessage`: The message for text that is no date, where `bad-input-message` is not
71229
+ * set. `{mode}` is `single`, `range`, or `multiple`.
70813
71230
  * - `year-view-label`/`yearViewLabel`: The name of the calendar's heading where it shows a page of years, with
70814
71231
  * `{heading}` filled in.
70815
71232
  * - `empty-message`/`emptyMessage`: What a row of segments reports when the field is required and every
@@ -70820,6 +71237,10 @@ export type CustomElementsSolidJs = {
70820
71237
  * - `incomplete-message`/`incompleteMessage`: What a row of segments reports while some segments are set and others
70821
71238
  * are not, where `bad-input-message` is not set. `{kind}` is `date` or
70822
71239
  * `time`.
71240
+ * - `range-end-label`/`rangeEndLabel`: What a screen reader hears before the segments of a range's second date
71241
+ * or time, after each segment's own name.
71242
+ * - `range-start-label`/`rangeStartLabel`: What a screen reader hears before the segments of a range's first date
71243
+ * or time, after each segment's own name: "month, Start, Stay".
70823
71244
  * - `segmented`: Whether the field is a row of segments, one for each part of the date or
70824
71245
  * time, in place of a line of text.
70825
71246
  *
@@ -70980,6 +71401,7 @@ export type CustomElementsSolidJs = {
70980
71401
  * - `helix-before-change`: Fired before the date changes. Cancelable: call `preventDefault()` to keep the current date.
70981
71402
  * - `helix-before-close`: Fired before the calendar closes. Cancelable: call `preventDefault()` to keep it open.
70982
71403
  * - `helix-before-open`: Fired before the calendar opens. Cancelable: call `preventDefault()` to keep it closed.
71404
+ * - `helix-clear`: Fired after the clear button has emptied the field, after `input` and `change`.
70983
71405
  * - `input`: Fired after the value changes.
70984
71406
  * - `toggle`: Fired when the calendar opens or closes, with `newState` and `oldState`.
70985
71407
  *
@@ -70987,6 +71409,7 @@ export type CustomElementsSolidJs = {
70987
71409
  *
70988
71410
  * Areas where markup can be added to the component.
70989
71411
  *
71412
+ * - `clear-icon`: Replaces the cross on the clear button, under `clearable`.
70990
71413
  * - `end`: Content after the date, before the trigger, such as a clear button.
70991
71414
  * - `feedback`: The error message under the field.
70992
71415
  * - `hint`: The help text under the field.
@@ -71062,6 +71485,7 @@ export type CustomElementsSolidJs = {
71062
71485
  *
71063
71486
  * Custom selectors for styling elements within the component.
71064
71487
  *
71488
+ * - `clear`: The button that empties the field, under `clearable`, while it holds a date.
71065
71489
  * - `control`: The text input.
71066
71490
  * - `date`: One held date, as a tag, in `multiple`.
71067
71491
  * - `date-cell`: The tag's grid cell, which a tag draws only inside a tag group.
@@ -71103,8 +71527,10 @@ export type CustomElementsSolidJs = {
71103
71527
  * - `picker-periods`: The grid of months or years.
71104
71528
  * - `picker-previous`: The control that moves to the previous month.
71105
71529
  * - `picker-previous-mark`: The icon on the previous month control.
71530
+ * - `picker-selection`: The chosen date or range in words, which screen readers hear when it changes. Drawn for screen readers only.
71106
71531
  * - `picker-week`: One row of days.
71107
71532
  * - `picker-weekday`: A column header naming a day of the week.
71533
+ * - `range-separator`: The dash between a range's two rows of segments, in `segmented`, beside `literal`.
71108
71534
  * - `rest`: The count of dates beyond the ones shown. It is a `<button>` with `expandable` and a `<span>` without it.
71109
71535
  * - `segment`: One part of the date, a year, a month or a day, in `segmented`.
71110
71536
  * - `segment-placeholder`: A segment with nothing in it yet. Applied with `segment`.
@@ -71118,6 +71544,7 @@ export type CustomElementsSolidJs = {
71118
71544
  *
71119
71545
  * These can be used to apply styling when a component is in a given state.
71120
71546
  *
71547
+ * - `blank`: The field holds no date.
71121
71548
  * - `invalid`: The field has an error to show, from the browser's validation or from your `feedback`.
71122
71549
  * - `open`: The calendar is open.
71123
71550
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -71140,9 +71567,11 @@ export type CustomElementsSolidJs = {
71140
71567
  * **Dates are `YYYY-MM-DD` strings, and every calculation is in UTC**, because
71141
71568
  * a local-time `Date` shifts across a time zone or daylight-saving boundary.
71142
71569
  *
71143
- * **The days are the Gregorian calendar's**, written in `calendar`: the
71144
- * locale's own where its months are the Gregorian months, as `th-TH` writes
71145
- * 2569 for 2026, and `gregory` where they are not, as for `fa-IR`.
71570
+ * **The months are the ones `calendar` counts**: the Gregorian months for the
71571
+ * locale's own calendar where its months are the Gregorian months, as `th-TH`
71572
+ * writes 2569 for 2026, and `gregory` where they are not, as for `fa-IR`
71573
+ * with no `calendar`. Name a calendar with months of its own, such as
71574
+ * `persian`, and every view counts its days, months, and years from `Intl`.
71146
71575
  *
71147
71576
  * `month` sets which month the grid shows, separately from `value`, so paging
71148
71577
  * selects nothing and you can control the view. When unset, it follows the
@@ -71150,7 +71579,14 @@ export type CustomElementsSolidJs = {
71150
71579
  *
71151
71580
  * `mode` sets how many dates are held. Unset holds one, `range` holds two and
71152
71581
  * marks the dates between them, and `multiple` toggles each date. All three
71153
- * read and write the same comma-separated `value`.
71582
+ * read and write the same comma-separated `value`. With a `mode`, the grid
71583
+ * carries `aria-multiselectable`. While a range holds one end, the grid draws
71584
+ * the range to the day under the pointer or the focus, marking those cells
71585
+ * `data-range-preview`.
71586
+ *
71587
+ * The chosen date, range, or count of dates is the grid's description, in a
71588
+ * region screen readers announce when it changes, as React Aria's calendars
71589
+ * do. `selection-label` words it.
71154
71590
  *
71155
71591
  * `max-view` makes the heading a button that steps back to the months of the
71156
71592
  * year, and with `year` to a page of years, as Zag's date picker does. The
@@ -71185,14 +71621,16 @@ export type CustomElementsSolidJs = {
71185
71621
  * `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
71186
71622
  * for `fa-IR`.
71187
71623
  *
71188
- * `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
71189
- * `coptic`, and `indian` draw a calendar with months of its own, as React
71190
- * Aria's calendars do: each grid is one of that calendar's months, the
71191
- * Hebrew leap month and Ethiopia's five-day thirteenth month included, and
71192
- * Previous, Next and the page keys move by those months. `month` and
71624
+ * `persian`, `hebrew`, `islamic`, `islamic-umalqura`, `islamic-civil`,
71625
+ * `islamic-tbla`, `islamic-rgsa`, `ethiopic`, `ethioaa`, `coptic`,
71626
+ * `indian`, `chinese`, and `dangi` draw a calendar with months of its own,
71627
+ * as React Aria's calendars do: each grid is one of that calendar's months,
71628
+ * the Hebrew and Chinese leap months and Ethiopia's five-day thirteenth
71629
+ * month included, and Previous, Next and the page keys move by those
71630
+ * months. With `max-view`, the months view shows that calendar's year, of
71631
+ * twelve or thirteen months, and the years view its years. `month` and
71193
71632
  * `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
71194
- * heading stays text, as the months and years views are drawn in Gregorian
71195
- * months only. The value is `YYYY-MM-DD` in every calendar.
71633
+ * value is `YYYY-MM-DD` in every calendar.
71196
71634
  * - `default-month`/`defaultMonth`: The month to open on when `month` is not set.
71197
71635
  * - `disable-dates`/`disableDates`: Dates that cannot be chosen, as `YYYY-MM-DD`, separated by commas or
71198
71636
  * spaces.
@@ -71255,6 +71693,11 @@ export type CustomElementsSolidJs = {
71255
71693
  * value and stays reachable, which is what a form showing a value somebody
71256
71694
  * else set needs.
71257
71695
  * - `required`: Stops the form from submitting while no date is chosen.
71696
+ * - `selection-label`/`selectionLabel`: What a screen reader hears about the chosen dates: the grid's
71697
+ * description, said again whenever the dates change. `{kind}` is `date`,
71698
+ * `start` while a range holds one end, `range`, or `dates` for `multiple`.
71699
+ * `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
71700
+ * many dates are chosen.
71258
71701
  * - `step`: How far apart the selectable dates are, in days.
71259
71702
  *
71260
71703
  * `<input type="date" step>`'s own unit, counted from `min` where there is
@@ -71409,6 +71852,13 @@ export type CustomElementsSolidJs = {
71409
71852
  * Date Input calls this when its trigger opens the calendar, which is where
71410
71853
  * the APG date picker dialog puts focus. The host is not focusable, so a
71411
71854
  * plain `focus()` on it did nothing and focus stayed on the trigger.
71855
+ * - `showChosen() => void`: Shows the days again, on the month of the chosen date, with the tab stop
71856
+ * on that date, forgetting the month and the day the reader browsed to.
71857
+ *
71858
+ * Date Input calls it each time its panel opens, which is where the APG
71859
+ * date picker dialog puts focus. Measured before this: from August 4, two
71860
+ * presses of Page Down, Escape, and Down again opened on October 4.
71861
+ * A `month` you set stays until the reader pages away from it.
71412
71862
  * - `requestValue(next: string) => boolean`: Refuses every change while read-only. See `readOnly`.
71413
71863
  * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
71414
71864
  * where there is no `default-value`.
@@ -71472,7 +71922,7 @@ export type CustomElementsSolidJs = {
71472
71922
  * Custom selectors for styling elements within the component.
71473
71923
  *
71474
71924
  * - `cell`: One column of a week row. A range is painted on the cells.
71475
- * - `cell-range-end`: The cell of a range's last day, beside `cell`.
71925
+ * - `cell-range-end`: The cell of a range's last day, beside `cell`, or of the day a waiting range is drawn to.
71476
71926
  * - `cell-range-middle`: A cell between a range's ends, beside `cell`.
71477
71927
  * - `cell-range-start`: The cell of a range's first day, beside `cell`.
71478
71928
  * - `day`: The shape inside a cell. A single chosen date is painted on it.
@@ -71498,6 +71948,7 @@ export type CustomElementsSolidJs = {
71498
71948
  * - `periods`: The grid of months or years.
71499
71949
  * - `previous`: The control that moves to the previous month.
71500
71950
  * - `previous-mark`: The glyph on the previous month control, where none is slotted.
71951
+ * - `selection`: The chosen date or range in words, which screen readers hear when it changes. Drawn for screen readers only.
71501
71952
  * - `week`: One row of days.
71502
71953
  * - `weekday`: A column header naming a day of the week. It shows the short name and says the full one.
71503
71954
  *
@@ -71505,7 +71956,11 @@ export type CustomElementsSolidJs = {
71505
71956
  *
71506
71957
  * These can be used to apply styling when a component is in a given state.
71507
71958
  *
71508
- * - `invalid`: While `invalid` is set or `feedback` says what is wrong.
71959
+ * - `blank`: While no date is chosen.
71960
+ * - `invalid`: While `invalid` is set, `feedback` says what is wrong, the picker holds a date outside `min` and `max` or one it bars, or it is `required`, holds no date, and the reader has answered once or a form has refused it.
71961
+ * - `month-view`: While the months of a year are shown, where `max-view` is set.
71962
+ * - `range-pending`: While a `range` holds its first end and waits for the second.
71963
+ * - `year-view`: While a page of years is shown, where `max-view` is `year`.
71509
71964
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
71510
71965
  */
71511
71966
  "helix-headless-date-picker": Partial<
@@ -74147,20 +74602,22 @@ export type CustomElementsSolidJs = {
74147
74602
  *
74148
74603
  * **A date is written in a calendar Date Picker draws**: the locale's own
74149
74604
  * where its months are the Gregorian months, as `th-TH` writes 2569 for 2026,
74150
- * and `gregory` where they are not, as for `fa-IR`. `calendar` picks one of
74151
- * the five.
74605
+ * and `gregory` where they are not, as for `fa-IR`. `calendar` picks any of
74606
+ * them, `persian` and `hebrew` included.
74152
74607
  *
74153
74608
  * ## Attributes & Properties
74154
74609
  *
74155
74610
  * Component attributes and properties that can be applied to the element or by using JavaScript.
74156
74611
  *
74157
74612
  * - `calendar`: The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
74158
- * `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
74159
- *
74160
- * Absent is the locale's own where it is one of the five, such as
74161
- * `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
74162
- * for `fa-IR`, so a date written here reads as the same date a Date Picker
74163
- * beside it shows.
74613
+ * `roc`, or `iso8601`, or a calendar with months of its own, such as
74614
+ * `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`: every
74615
+ * calendar Date Picker and Date Input draw.
74616
+ *
74617
+ * Absent is the locale's own where its months are the Gregorian months,
74618
+ * such as `buddhist` for `th-TH`, and `gregory` for every other, such as
74619
+ * `persian` for `fa-IR`, so a date written here reads as the same date a
74620
+ * Date Picker beside it shows. Write `calendar="persian"` for Mehr 14, 1405.
74164
74621
  * - `date`: The timestamp, in any format `Date` can parse.
74165
74622
  *
74166
74623
  * An ISO string is what an API sends and what `<time datetime>` takes, so it
@@ -74179,6 +74636,9 @@ export type CustomElementsSolidJs = {
74179
74636
  * - `date-style`/`dateStyle`: The locale's own pattern for the date: `full`, `long`, `medium`, or
74180
74637
  * `short`. Set, it stands in for `weekday`, `day`, `month`, `year` and `era`.
74181
74638
  * - `day`: How the day of the month is written, where a date is shown.
74639
+ * - `day-period`/`dayPeriod`: Writes the part of the day in words, such as "in the morning" or "at
74640
+ * night", in its `long`, `short`, or `narrow` form, where `hour` is on a
74641
+ * twelve-hour clock.
74182
74642
  * - `elapsed`: Shows how long ago the timestamp was, in a compact form such as "3h", in
74183
74643
  * place of the date.
74184
74644
  *
@@ -74193,6 +74653,8 @@ export type CustomElementsSolidJs = {
74193
74653
  * Off by default, which draws the date as one run of text, as Shoelace and
74194
74654
  * Web Awesome do. An `elapsed` or `relative` reading is one phrase either
74195
74655
  * way.
74656
+ * - `fractional-second-digits`/`fractionalSecondDigits`: How many digits of a fraction of a second to write after `second`: 1, 2,
74657
+ * or 3, as in 09:41:07.250.
74196
74658
  * - `frozen`: Draws an `elapsed` or `relative` reading once and leaves it, where it
74197
74659
  * would otherwise move on as it goes stale.
74198
74660
  *
@@ -74230,7 +74692,9 @@ export type CustomElementsSolidJs = {
74230
74692
  * - `time-zone`/`timeZone`: The time zone to read the timestamp in.
74231
74693
  *
74232
74694
  * Empty is the runtime's own.
74233
- * - `time-zone-name`/`timeZoneName`: Shows the name of the time zone, in its `long` or `short` form.
74695
+ * - `time-zone-name`/`timeZoneName`: Shows the name of the time zone: `long` or `short`, as Pacific Daylight
74696
+ * Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
74697
+ * `longGeneric` or `shortGeneric`, as Pacific Time or PT.
74234
74698
  * - `weekday`: How the weekday is written, where one is shown.
74235
74699
  * - `year`: How the year is written, where a date is shown.
74236
74700
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
@@ -74261,6 +74725,7 @@ export type CustomElementsSolidJs = {
74261
74725
  * - `day`: The day of the month, with `fields`.
74262
74726
  * - `day-period`: AM or PM, or the locale's word for the part of the day, with `fields`.
74263
74727
  * - `era`: The era, such as AD, with `fields` and `era`.
74728
+ * - `fractional-second`: The fraction of a second, with `fields` and `fractional-second-digits`.
74264
74729
  * - `hour`: The hour, with `fields`.
74265
74730
  * - `minute`: The minute, with `fields`.
74266
74731
  * - `month`: The month, with `fields`.
@@ -80098,6 +80563,7 @@ export type CustomElementsSolidJs = {
80098
80563
  * - `time-day`: Format Date's `day`, forwarded for a time drawn as fields. An elapsed time draws none.
80099
80564
  * - `time-day-period`: Format Date's `day-period`, forwarded for a time drawn as fields. An elapsed time draws none.
80100
80565
  * - `time-era`: Format Date's `era`, forwarded for a time drawn as fields. An elapsed time draws none.
80566
+ * - `time-fractional-second`: Format Date's `fractional-second`, forwarded for a time drawn as fields. An elapsed time draws none.
80101
80567
  * - `time-hour`: Format Date's `hour`, forwarded for a time drawn as fields. An elapsed time draws none.
80102
80568
  * - `time-minute`: Format Date's `minute`, forwarded for a time drawn as fields. An elapsed time draws none.
80103
80569
  * - `time-month`: Format Date's `month`, forwarded for a time drawn as fields. An elapsed time draws none.
@@ -84523,6 +84989,10 @@ export type CustomElementsSolidJs = {
84523
84989
  * `min-steps-between-thumbs` keeps them that many steps apart, and the readout
84524
84990
  * joins the two as `range-text` writes them.
84525
84991
  *
84992
+ * A press on a range's track takes the nearest thumb to the point pressed,
84993
+ * and moving the pointer drags it, as React Aria's and Web Awesome's sliders
84994
+ * do. The thumb takes focus, and `change` is sent as the press ends.
84995
+ *
84526
84996
  * `origin` sets where a single thumb's fill starts: at `min`, at the middle of
84527
84997
  * the track, or at `max`. A balance or an offset from zero fills from the
84528
84998
  * middle, as Zag's slider `origin` does. The fill's ends are published as
@@ -84547,7 +85017,7 @@ export type CustomElementsSolidJs = {
84547
85017
  * |---|---|
84548
85018
  * | Right, Up | Moves the thumb up by `step`. |
84549
85019
  * | Left, Down | Moves the thumb down by `step`. |
84550
- * | Page Up, Page Down | Moves the thumb by a larger step. |
85020
+ * | Page Up, Page Down | Moves the thumb by `page-step`, or by the platform's larger step where it is not set. |
84551
85021
  * | Home, End | Moves the thumb to its lowest or highest value. |
84552
85022
  *
84553
85023
  * Under `readonly` none of these move the thumb, and Tab still reaches it.
@@ -84608,6 +85078,9 @@ export type CustomElementsSolidJs = {
84608
85078
  * - `origin`: Where a single thumb's fill starts: `start` at `min`, `center` at the
84609
85079
  * middle of the track, or `end` at `max`. Absent is `start`. A range fills
84610
85080
  * between its thumbs and ignores it.
85081
+ * - `page-step`/`pageStep`: How far Page Up and Page Down move a thumb, in the slider's own units, as
85082
+ * React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
85083
+ * to the platform, which moves a tenth of the track.
84611
85084
  * - `range`: Adds a second thumb, so the value is a pair.
84612
85085
  *
84613
85086
  * The pair is one string, `"10,50"`, which is what `value` and
@@ -84840,6 +85313,8 @@ export type CustomElementsSolidJs = {
84840
85313
  *
84841
85314
  * These can be used to apply styling when a component is in a given state.
84842
85315
  *
85316
+ * - `dragging`: A thumb is being dragged, by its thumb or from a press on the track.
85317
+ * - `focus-visible`: A thumb has focus that the keyboard brought, where the browser draws a focus ring.
84843
85318
  * - `invalid`: The slider has an error to show, from the browser's validation or from your `feedback`.
84844
85319
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
84845
85320
  */
@@ -88021,20 +88496,25 @@ export type CustomElementsSolidJs = {
88021
88496
  * `seconds`, because that is what the form
88022
88497
  * submits, what `min` and `max` compare against, and what sorts correctly as a
88023
88498
  * string. While idle, the field shows the time in the user's locale format.
88024
- * Once the caret is in the field, it shows the value itself, because a
88025
- * formatted time such as `2:30 PM` cannot be typed back and `Intl` has no
88026
- * parser for it.
88499
+ * Once the caret is in the field, it shows the value itself. You can type
88500
+ * `14:30`, or a time as you write one, such as `2:30 PM`, `2.30pm`, or
88501
+ * `14h30`, and the field reads it as you leave it, with AM and PM in the
88502
+ * locale's words.
88027
88503
  *
88028
88504
  * Typing sends `input` on each keystroke and `change` when you leave the
88029
88505
  * field. The trigger and ArrowDown open the list, and so does a press into the
88030
- * field; Tab into the field opens nothing. In the list, the arrow keys, typed digits and PageUp and PageDown
88506
+ * field; Tab into the field opens nothing. The text field is a `combobox`
88507
+ * with `aria-haspopup="dialog"`, `aria-expanded`, and `aria-controls`, since
88508
+ * Down opens the list from it. In the list, the arrow keys, typed digits and PageUp and PageDown
88031
88509
  * move through the times, and Enter, Space or a click chooses one and closes
88032
88510
  * the panel. With `variant="wheels"` each wheel moves the time as you turn it,
88033
88511
  * the panel stays open, and Enter or Escape closes it.
88034
88512
  *
88035
88513
  * With `segmented`, the field is a row of segments in place of the text: an
88036
88514
  * hour, a minute, and AM or PM where the clock has them, each set with digits
88037
- * or the arrow keys. Alt+Down opens the list from a segment.
88515
+ * or the arrow keys. Alt+Down opens the list from a segment. A `range` is two
88516
+ * rows with a dash between them, the start and the end, and `multiple` keeps
88517
+ * the text.
88038
88518
  *
88039
88519
  * Text that is not a time gives the form an empty value, as a native time
88040
88520
  * field does, and `value` keeps the text so it can be corrected.
@@ -88066,6 +88546,10 @@ export type CustomElementsSolidJs = {
88066
88546
  *
88067
88547
  * Empty leaves the attribute off, which is the browser's default and is what
88068
88548
  * lets autofill work at all.
88549
+ * - `clearable`: Whether the field shows a button that empties it, as Input's `clearable`
88550
+ * does. Shown only while the field holds something to clear and is neither
88551
+ * disabled nor read-only.
88552
+ * - `clear-label`/`clearLabel`: The accessible name of the clear button, which shows only an icon.
88069
88553
  * - `disable-times`/`disableTimes`: Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
88070
88554
  *
88071
88555
  * Handed to the list, which offers them as unavailable, and checked against
@@ -88114,6 +88598,8 @@ export type CustomElementsSolidJs = {
88114
88598
  * never something this element would refuse to read back.
88115
88599
  * - `trigger-label`/`triggerLabel`: The name of the button that opens the list, read by screen readers.
88116
88600
  * - `unavailable-message`/`unavailableMessage`: The message shown when `disable-times` bars a time.
88601
+ * - `unreadable-message`/`unreadableMessage`: The message for text that is no time, where `bad-input-message` is not
88602
+ * set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`.
88117
88603
  * - `variant`: Whether the panel shows one list of times or a column for each part of the
88118
88604
  * time.
88119
88605
  *
@@ -88136,6 +88622,10 @@ export type CustomElementsSolidJs = {
88136
88622
  * - `incomplete-message`/`incompleteMessage`: What a row of segments reports while some segments are set and others
88137
88623
  * are not, where `bad-input-message` is not set. `{kind}` is `date` or
88138
88624
  * `time`.
88625
+ * - `range-end-label`/`rangeEndLabel`: What a screen reader hears before the segments of a range's second date
88626
+ * or time, after each segment's own name.
88627
+ * - `range-start-label`/`rangeStartLabel`: What a screen reader hears before the segments of a range's first date
88628
+ * or time, after each segment's own name: "month, Start, Stay".
88139
88629
  * - `segmented`: Whether the field is a row of segments, one for each part of the date or
88140
88630
  * time, in place of a line of text.
88141
88631
  *
@@ -88287,6 +88777,7 @@ export type CustomElementsSolidJs = {
88287
88777
  * - `helix-before-change`: Fired before the time changes. Cancelable: canceling it stops the change and leaves the decision to you.
88288
88778
  * - `helix-before-close`: Fired before the list closes. Cancelable: canceling it keeps the list open and leaves the decision to you.
88289
88779
  * - `helix-before-open`: Fired before the list opens. Cancelable: canceling it keeps the list closed and leaves the decision to you.
88780
+ * - `helix-clear`: Fired after the clear button has emptied the field, after `input` and `change`.
88290
88781
  * - `input`: Fired after the value changes.
88291
88782
  * - `toggle`: Fired after the list opens or closes, with `newState` and `oldState`.
88292
88783
  *
@@ -88294,6 +88785,7 @@ export type CustomElementsSolidJs = {
88294
88785
  *
88295
88786
  * Areas where markup can be added to the component.
88296
88787
  *
88788
+ * - `clear-icon`: Replaces the cross on the clear button, under `clearable`.
88297
88789
  * - `end`: Content after the time, before the trigger, such as a clear button.
88298
88790
  * - `feedback`: The message that says what is wrong with the value.
88299
88791
  * - `hint`: Help under the field.
@@ -88367,6 +88859,7 @@ export type CustomElementsSolidJs = {
88367
88859
  *
88368
88860
  * Custom selectors for styling elements within the component.
88369
88861
  *
88862
+ * - `clear`: The button that empties the field, under `clearable`, while it holds a time.
88370
88863
  * - `control`: The text input.
88371
88864
  * - `feedback`: The message that says what is wrong with the value.
88372
88865
  * - `field`: The box that holds the text and the trigger.
@@ -88412,6 +88905,7 @@ export type CustomElementsSolidJs = {
88412
88905
  * - `picker-option-item-selected`: The row of a chosen time: the one time, or either end of a range.
88413
88906
  * - `picker-option-label`: The option's label.
88414
88907
  * - `picker-option-text`: The label and the caption, as one column.
88908
+ * - `range-separator`: The dash between a range's two rows of segments, in `segmented`, beside `literal`.
88415
88909
  * - `rest`: The count of times held beyond the ones shown. A `<button>` with `expandable`, and a `<span>` without it.
88416
88910
  * - `segment`: One part of the time, an hour, a minute, a second or AM and PM, in `segmented`.
88417
88911
  * - `segment-placeholder`: A segment with nothing in it yet. Applied with `segment`.
@@ -88432,6 +88926,7 @@ export type CustomElementsSolidJs = {
88432
88926
  *
88433
88927
  * These can be used to apply styling when a component is in a given state.
88434
88928
  *
88929
+ * - `blank`: The field holds no time.
88435
88930
  * - `invalid`: The control has an error to show, from the browser's validation or from your `feedback`.
88436
88931
  * - `open`: While the clock is open.
88437
88932
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -88488,7 +88983,10 @@ export type CustomElementsSolidJs = {
88488
88983
  * host's `aria-label` or its `aria-labelledby`. A development build warns
88489
88984
  * where all four are empty. The list is described by the hint, or by the
88490
88985
  * message in `feedback` in its place, and carries `aria-multiselectable` with
88491
- * a `mode` and `aria-invalid` while `feedback` says what is wrong. The wheels
88986
+ * a `mode`. It carries `aria-invalid` while `feedback` says what is wrong,
88987
+ * while it holds a time outside `min` and `max` or one the picker does not
88988
+ * offer, and, for a `required` picker with no time, once the reader has
88989
+ * chosen one or a form has refused the picker. The wheels
88492
88990
  * are a `group` with that name, holding one `listbox` per wheel, named "Hour",
88493
88991
  * "Minute", "Second" and "AM/PM" in the page's language, and each described
88494
88992
  * the same way.
@@ -88846,7 +89344,7 @@ export type CustomElementsSolidJs = {
88846
89344
  * - `list-loading`: The text shown while the options load.
88847
89345
  * - `list-search`: The region that holds the filter field.
88848
89346
  * - `list-search-field`: The filter field.
88849
- * - `option`: One time in the list. It carries `data-between` inside a range.
89347
+ * - `option`: One time in the list. It carries `data-between` inside a range, and inside the run to the time under the pointer while a range waits for its second end.
88850
89348
  * - `option-between`: A time inside a chosen range, excluding its ends, beside `option`.
88851
89349
  * - `option-description`: The caption under the time's label, when there is one.
88852
89350
  * - `option-item`: The row.
@@ -88860,7 +89358,8 @@ export type CustomElementsSolidJs = {
88860
89358
  * These can be used to apply styling when a component is in a given state.
88861
89359
  *
88862
89360
  * - `blank`: While no time is chosen.
88863
- * - `invalid`: While `invalid` is set or `feedback` says what is wrong.
89361
+ * - `invalid`: While `invalid` is set, `feedback` says what is wrong, or the list carries `aria-invalid`.
89362
+ * - `range-pending`: While a `range` holds its first time and waits for the second.
88864
89363
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
88865
89364
  */
88866
89365
  "helix-headless-time-picker": Partial<
@@ -89456,7 +89955,7 @@ export type CustomElementsSolidJs = {
89456
89955
  * | Right, Down | Moves to the next item, from the last back to the first. In a single group, chooses it. |
89457
89956
  * | Left, Up | Moves to the item before, from the first round to the last. In a single group, chooses it. |
89458
89957
  * | Home, End | Moves to the first or the last item. In a single group, chooses it. |
89459
- * | Space, Enter | Chooses the focused item, or presses or releases it in a multiple group. |
89958
+ * | Space, Enter | Chooses the focused item, or presses or releases it in a multiple group. With `allow-empty-selection`, takes back the chosen item. |
89460
89959
  *
89461
89960
  * Left and Right swap on a right-to-left page, and a disabled item is passed
89462
89961
  * over. A single group is a `radiogroup` of items with `role="radio"` and
@@ -89468,6 +89967,11 @@ export type CustomElementsSolidJs = {
89468
89967
  *
89469
89968
  * Component attributes and properties that can be applied to the element or by using JavaScript.
89470
89969
  *
89970
+ * - `allow-empty-selection`/`allowEmptySelection`: Whether a press on the chosen item, or Space or Enter on it, takes it
89971
+ * back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
89972
+ * Radix's `ToggleGroup` do in a single group. Absent, a single group always
89973
+ * keeps its choice once it has one, as a radio group does. A multiple group
89974
+ * releases a pressed item either way.
89471
89975
  * - `label-placement`/`labelPlacement`: Where the group's label sits. `start` puts it on the track's line.
89472
89976
  *
89473
89977
  * Absent is above, which is what a field looks like and what almost every
@@ -89813,13 +90317,13 @@ export type CustomElementsSolidJs = {
89813
90317
  *
89814
90318
  * Custom selectors for styling elements within the component.
89815
90319
  *
89816
- * - `item`: The radio button.
90320
+ * - `item`: The button: a radio in a group where one is chosen, and a button with `aria-pressed` on its own or in a group where several can be.
89817
90321
  *
89818
90322
  * ## CSS States
89819
90323
  *
89820
90324
  * These can be used to apply styling when a component is in a given state.
89821
90325
  *
89822
- * - `pressed`: The item is pressed, in a group where several can be.
90326
+ * - `pressed`: The item is pressed, on its own or in a group where several can be.
89823
90327
  * - `selected`: The item is chosen.
89824
90328
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
89825
90329
  */