@fusion.dev/helix 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
@@ -11512,6 +11512,9 @@ export type HelixDateInputHelixBeforeCloseElementEvent =
11512
11512
  /** `helix-before-open` event type */
11513
11513
  export type HelixDateInputHelixBeforeOpenElementEvent =
11514
11514
  HelixDateInputElementEvent<HelixBeforeOpenEvent>;
11515
+ /** `helix-clear` event type */
11516
+ export type HelixDateInputHelixClearElementEvent =
11517
+ HelixDateInputElementEvent<HelixClearEvent>;
11515
11518
 
11516
11519
  export type HelixDateInputProps = {
11517
11520
  /** What a row of segments reports when the field is required and every
@@ -11536,6 +11539,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
11536
11539
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
11537
11540
  `time`. */
11538
11541
  incompleteMessage?: (HelixDateInput["incompleteMessage"]) | undefined;
11542
+ /** What a screen reader hears before the segments of a range's second date
11543
+ or time, after each segment's own name. */
11544
+ "range-end-label"?: (HelixDateInput["rangeEndLabel"]) | undefined;
11545
+ /** What a screen reader hears before the segments of a range's second date
11546
+ or time, after each segment's own name. */
11547
+ rangeEndLabel?: (HelixDateInput["rangeEndLabel"]) | undefined;
11548
+ /** What a screen reader hears before the segments of a range's first date
11549
+ or time, after each segment's own name: "month, Start, Stay". */
11550
+ "range-start-label"?: (HelixDateInput["rangeStartLabel"]) | undefined;
11551
+ /** What a screen reader hears before the segments of a range's first date
11552
+ or time, after each segment's own name: "month, Start, Stay". */
11553
+ rangeStartLabel?: (HelixDateInput["rangeStartLabel"]) | undefined;
11539
11554
  /** Whether the field is a row of segments, one for each part of the date or
11540
11555
  time, in place of a line of text.
11541
11556
 
@@ -11700,32 +11715,48 @@ and this one was the English a form in another language still spoke in
11700
11715
  the bubble it raises on submit: `feedback` replaces the message under
11701
11716
  the field and does not reach that one. */
11702
11717
  valueMissingMessage?: (HelixDateInput["valueMissingMessage"]) | undefined;
11703
- /** What the browser may autofill here, as one of the platform's own tokens.
11718
+ /** What the browser may autofill here, as one of the platform's own tokens,
11719
+ such as `bday`.
11704
11720
 
11705
11721
  Empty leaves the attribute off, which is the browser's default and is what
11706
11722
  lets autofill work at all: hardcoding `off` here means a birthday or a
11707
- postal code can never be filled in for a reader. */
11723
+ postal code can never be filled in for a reader. With `segmented`, a
11724
+ hidden native date input carries it, since no browser fills the segments. */
11708
11725
  autocomplete?: (HelixDateInput["autocomplete"]) | undefined;
11709
- /** The calendar the written date and the calendar's days are in: `gregory`,
11710
- `buddhist`, `japanese`, `roc`, or `iso8601`.
11711
-
11712
- Absent is the locale's own where it is one of the five, and `gregory` for
11713
- every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
11714
- every calendar, and a focused field is ISO in every calendar. In
11715
- `segmented`, the segments are the Gregorian day, month, and year, in the
11716
- order the locale writes them, or ISO order for `iso8601`. */
11726
+ /** The calendar the written date, the segments, and the calendar's days are
11727
+ in: `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, or a calendar
11728
+ with months of its own that Date Picker's `calendar` names, such as
11729
+ `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`.
11730
+
11731
+ Absent is the locale's own where its months are the Gregorian months, and
11732
+ `gregory` for every other, as Date Picker's `calendar` is. The value is
11733
+ `YYYY-MM-DD` in every calendar, and a focused text field is ISO in every
11734
+ calendar. In `segmented`, the segments are the day, month, and year as
11735
+ the calendar counts them, in the order the locale writes them: Mehr 14,
11736
+ 1405 is month 7 and day 14 of 1405 under `persian`. Under the five with
11737
+ Gregorian months they are the Gregorian day, month, and year, or ISO order
11738
+ for `iso8601`. */
11717
11739
  calendar?: (HelixDateInput["calendar"]) | undefined;
11718
11740
  /** The name of the calendar's grid of days, read by screen readers. */
11719
11741
  "calendar-label"?: (HelixDateInput["calendarLabel"]) | undefined;
11720
11742
  /** The name of the calendar's grid of days, read by screen readers. */
11721
11743
  calendarLabel?: (HelixDateInput["calendarLabel"]) | undefined;
11744
+ /** Whether the field shows a button that empties it, as Input's `clearable`
11745
+ does. Shown only while the field holds something to clear and is neither
11746
+ disabled nor read-only. */
11747
+ clearable?: (HelixDateInput["clearable"]) | undefined;
11748
+ /** The accessible name of the clear button, which shows only an icon. */
11749
+ "clear-label"?: (HelixDateInput["clearLabel"]) | undefined;
11750
+ /** The accessible name of the clear button, which shows only an icon. */
11751
+ clearLabel?: (HelixDateInput["clearLabel"]) | undefined;
11722
11752
  /** How a date is written in the field: `short` through `full`, or ISO.
11723
11753
 
11724
11754
  **The field renders when it is idle and holds the value when it is being
11725
11755
  edited.** A written date is a rendering, and a document being edited must
11726
11756
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
11727
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
11728
- locale is how a field ends up rejecting what it just displayed.
11757
+ not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
11758
+ edit. The field does read a date typed in the locale's order and digits as
11759
+ you leave it, which covers what a reader types.
11729
11760
 
11730
11761
  The way out is not to choose between the two but to separate them in time.
11731
11762
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -11747,8 +11778,9 @@ submits and what `min` and `max` compare against. */
11747
11778
  **The field renders when it is idle and holds the value when it is being
11748
11779
  edited.** A written date is a rendering, and a document being edited must
11749
11780
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
11750
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
11751
- locale is how a field ends up rejecting what it just displayed.
11781
+ not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
11782
+ edit. The field does read a date typed in the locale's order and digits as
11783
+ you leave it, which covers what a reader types.
11752
11784
 
11753
11785
  The way out is not to choose between the two but to separate them in time.
11754
11786
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -11886,6 +11918,14 @@ the date.
11886
11918
  **The name goes in**, so a row of them is heard as which one each
11887
11919
  removes rather than as "Remove" said once per date. */
11888
11920
  removeLabel?: (HelixDateInput["removeLabel"]) | undefined;
11921
+ /** What a screen reader hears about the dates chosen in the calendar, with
11922
+ `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
11923
+ `selection-label` says. */
11924
+ "selection-label"?: (HelixDateInput["selectionLabel"]) | undefined;
11925
+ /** What a screen reader hears about the dates chosen in the calendar, with
11926
+ `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
11927
+ `selection-label` says. */
11928
+ selectionLabel?: (HelixDateInput["selectionLabel"]) | undefined;
11889
11929
  /** How far apart the selectable dates are, in days.
11890
11930
 
11891
11931
  `<input type="date" step>`'s own unit, handed to the calendar this renders
@@ -11897,6 +11937,14 @@ platform's base. */
11897
11937
  "step-mismatch-message"?: (HelixDateInput["stepMismatchMessage"]) | undefined;
11898
11938
  /** The message shown when a date is not on `step`. */
11899
11939
  stepMismatchMessage?: (HelixDateInput["stepMismatchMessage"]) | undefined;
11940
+ /** The time zone today is read in, such as `America/New_York`, handed to the
11941
+ calendar: the day marked today, and the month an empty field opens on.
11942
+ Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone. */
11943
+ "time-zone"?: (HelixDateInput["timeZone"]) | undefined;
11944
+ /** The time zone today is read in, such as `America/New_York`, handed to the
11945
+ calendar: the day marked today, and the month an empty field opens on.
11946
+ Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone. */
11947
+ timeZone?: (HelixDateInput["timeZone"]) | undefined;
11900
11948
  /** The name of the button that opens the calendar, read by screen readers. */
11901
11949
  "trigger-label"?: (HelixDateInput["triggerLabel"]) | undefined;
11902
11950
  /** The name of the button that opens the calendar, read by screen readers. */
@@ -11905,6 +11953,12 @@ platform's base. */
11905
11953
  "unavailable-message"?: (HelixDateInput["unavailableMessage"]) | undefined;
11906
11954
  /** The message shown when `disable-dates` or `disable-days` bars a date. */
11907
11955
  unavailableMessage?: (HelixDateInput["unavailableMessage"]) | undefined;
11956
+ /** The message for text that is no date, where `bad-input-message` is not
11957
+ set. `{mode}` is `single`, `range`, or `multiple`. */
11958
+ "unreadable-message"?: (HelixDateInput["unreadableMessage"]) | undefined;
11959
+ /** The message for text that is no date, where `bad-input-message` is not
11960
+ set. `{mode}` is `single`, `range`, or `multiple`. */
11961
+ unreadableMessage?: (HelixDateInput["unreadableMessage"]) | undefined;
11908
11962
  /** The name of the calendar's heading where it shows a page of years, with
11909
11963
  `{heading}` filled in. */
11910
11964
  "year-view-label"?: (HelixDateInput["yearViewLabel"]) | undefined;
@@ -11976,6 +12030,8 @@ reader makes in one of these. */
11976
12030
  "onhelix-before-open"?: ((
11977
12031
  e: HelixDateInputHelixBeforeOpenElementEvent,
11978
12032
  ) => void) | undefined;
12033
+ /** Fired after the clear button has emptied the field, after `input` and `change`. */
12034
+ "onhelix-clear"?: ((e: HelixDateInputHelixClearElementEvent) => void) | undefined;
11979
12035
  /** Fired after the value changes. */
11980
12036
  oninput?: ((e: HelixDateInputElementEvent) => void) | undefined;
11981
12037
  };
@@ -12003,6 +12059,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
12003
12059
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
12004
12060
  `time`. */
12005
12061
  "prop:incompleteMessage"?: (HelixDateInput["incompleteMessage"]) | undefined;
12062
+ /** What a screen reader hears before the segments of a range's second date
12063
+ or time, after each segment's own name. */
12064
+ "attr:range-end-label"?: (HelixDateInput["rangeEndLabel"]) | undefined;
12065
+ /** What a screen reader hears before the segments of a range's second date
12066
+ or time, after each segment's own name. */
12067
+ "prop:rangeEndLabel"?: (HelixDateInput["rangeEndLabel"]) | undefined;
12068
+ /** What a screen reader hears before the segments of a range's first date
12069
+ or time, after each segment's own name: "month, Start, Stay". */
12070
+ "attr:range-start-label"?: (HelixDateInput["rangeStartLabel"]) | undefined;
12071
+ /** What a screen reader hears before the segments of a range's first date
12072
+ or time, after each segment's own name: "month, Start, Stay". */
12073
+ "prop:rangeStartLabel"?: (HelixDateInput["rangeStartLabel"]) | undefined;
12006
12074
  /** Whether the field is a row of segments, one for each part of the date or
12007
12075
  time, in place of a line of text.
12008
12076
 
@@ -12167,32 +12235,48 @@ and this one was the English a form in another language still spoke in
12167
12235
  the bubble it raises on submit: `feedback` replaces the message under
12168
12236
  the field and does not reach that one. */
12169
12237
  "prop:valueMissingMessage"?: (HelixDateInput["valueMissingMessage"]) | undefined;
12170
- /** What the browser may autofill here, as one of the platform's own tokens.
12238
+ /** What the browser may autofill here, as one of the platform's own tokens,
12239
+ such as `bday`.
12171
12240
 
12172
12241
  Empty leaves the attribute off, which is the browser's default and is what
12173
12242
  lets autofill work at all: hardcoding `off` here means a birthday or a
12174
- postal code can never be filled in for a reader. */
12243
+ postal code can never be filled in for a reader. With `segmented`, a
12244
+ hidden native date input carries it, since no browser fills the segments. */
12175
12245
  "prop:autocomplete"?: (HelixDateInput["autocomplete"]) | undefined;
12176
- /** The calendar the written date and the calendar's days are in: `gregory`,
12177
- `buddhist`, `japanese`, `roc`, or `iso8601`.
12178
-
12179
- Absent is the locale's own where it is one of the five, and `gregory` for
12180
- every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
12181
- every calendar, and a focused field is ISO in every calendar. In
12182
- `segmented`, the segments are the Gregorian day, month, and year, in the
12183
- order the locale writes them, or ISO order for `iso8601`. */
12246
+ /** The calendar the written date, the segments, and the calendar's days are
12247
+ in: `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, or a calendar
12248
+ with months of its own that Date Picker's `calendar` names, such as
12249
+ `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`.
12250
+
12251
+ Absent is the locale's own where its months are the Gregorian months, and
12252
+ `gregory` for every other, as Date Picker's `calendar` is. The value is
12253
+ `YYYY-MM-DD` in every calendar, and a focused text field is ISO in every
12254
+ calendar. In `segmented`, the segments are the day, month, and year as
12255
+ the calendar counts them, in the order the locale writes them: Mehr 14,
12256
+ 1405 is month 7 and day 14 of 1405 under `persian`. Under the five with
12257
+ Gregorian months they are the Gregorian day, month, and year, or ISO order
12258
+ for `iso8601`. */
12184
12259
  "prop:calendar"?: (HelixDateInput["calendar"]) | undefined;
12185
12260
  /** The name of the calendar's grid of days, read by screen readers. */
12186
12261
  "attr:calendar-label"?: (HelixDateInput["calendarLabel"]) | undefined;
12187
12262
  /** The name of the calendar's grid of days, read by screen readers. */
12188
12263
  "prop:calendarLabel"?: (HelixDateInput["calendarLabel"]) | undefined;
12264
+ /** Whether the field shows a button that empties it, as Input's `clearable`
12265
+ does. Shown only while the field holds something to clear and is neither
12266
+ disabled nor read-only. */
12267
+ "prop:clearable"?: (HelixDateInput["clearable"]) | undefined;
12268
+ /** The accessible name of the clear button, which shows only an icon. */
12269
+ "attr:clear-label"?: (HelixDateInput["clearLabel"]) | undefined;
12270
+ /** The accessible name of the clear button, which shows only an icon. */
12271
+ "prop:clearLabel"?: (HelixDateInput["clearLabel"]) | undefined;
12189
12272
  /** How a date is written in the field: `short` through `full`, or ISO.
12190
12273
 
12191
12274
  **The field renders when it is idle and holds the value when it is being
12192
12275
  edited.** A written date is a rendering, and a document being edited must
12193
12276
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
12194
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
12195
- locale is how a field ends up rejecting what it just displayed.
12277
+ not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
12278
+ edit. The field does read a date typed in the locale's order and digits as
12279
+ you leave it, which covers what a reader types.
12196
12280
 
12197
12281
  The way out is not to choose between the two but to separate them in time.
12198
12282
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -12214,8 +12298,9 @@ submits and what `min` and `max` compare against. */
12214
12298
  **The field renders when it is idle and holds the value when it is being
12215
12299
  edited.** A written date is a rendering, and a document being edited must
12216
12300
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
12217
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
12218
- locale is how a field ends up rejecting what it just displayed.
12301
+ not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
12302
+ edit. The field does read a date typed in the locale's order and digits as
12303
+ you leave it, which covers what a reader types.
12219
12304
 
12220
12305
  The way out is not to choose between the two but to separate them in time.
12221
12306
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -12353,6 +12438,14 @@ the date.
12353
12438
  **The name goes in**, so a row of them is heard as which one each
12354
12439
  removes rather than as "Remove" said once per date. */
12355
12440
  "prop:removeLabel"?: (HelixDateInput["removeLabel"]) | undefined;
12441
+ /** What a screen reader hears about the dates chosen in the calendar, with
12442
+ `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
12443
+ `selection-label` says. */
12444
+ "attr:selection-label"?: (HelixDateInput["selectionLabel"]) | undefined;
12445
+ /** What a screen reader hears about the dates chosen in the calendar, with
12446
+ `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
12447
+ `selection-label` says. */
12448
+ "prop:selectionLabel"?: (HelixDateInput["selectionLabel"]) | undefined;
12356
12449
  /** How far apart the selectable dates are, in days.
12357
12450
 
12358
12451
  `<input type="date" step>`'s own unit, handed to the calendar this renders
@@ -12364,6 +12457,14 @@ platform's base. */
12364
12457
  "attr:step-mismatch-message"?: (HelixDateInput["stepMismatchMessage"]) | undefined;
12365
12458
  /** The message shown when a date is not on `step`. */
12366
12459
  "prop:stepMismatchMessage"?: (HelixDateInput["stepMismatchMessage"]) | undefined;
12460
+ /** The time zone today is read in, such as `America/New_York`, handed to the
12461
+ calendar: the day marked today, and the month an empty field opens on.
12462
+ Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone. */
12463
+ "attr:time-zone"?: (HelixDateInput["timeZone"]) | undefined;
12464
+ /** The time zone today is read in, such as `America/New_York`, handed to the
12465
+ calendar: the day marked today, and the month an empty field opens on.
12466
+ Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone. */
12467
+ "prop:timeZone"?: (HelixDateInput["timeZone"]) | undefined;
12367
12468
  /** The name of the button that opens the calendar, read by screen readers. */
12368
12469
  "attr:trigger-label"?: (HelixDateInput["triggerLabel"]) | undefined;
12369
12470
  /** The name of the button that opens the calendar, read by screen readers. */
@@ -12372,6 +12473,12 @@ platform's base. */
12372
12473
  "attr:unavailable-message"?: (HelixDateInput["unavailableMessage"]) | undefined;
12373
12474
  /** The message shown when `disable-dates` or `disable-days` bars a date. */
12374
12475
  "prop:unavailableMessage"?: (HelixDateInput["unavailableMessage"]) | undefined;
12476
+ /** The message for text that is no date, where `bad-input-message` is not
12477
+ set. `{mode}` is `single`, `range`, or `multiple`. */
12478
+ "attr:unreadable-message"?: (HelixDateInput["unreadableMessage"]) | undefined;
12479
+ /** The message for text that is no date, where `bad-input-message` is not
12480
+ set. `{mode}` is `single`, `range`, or `multiple`. */
12481
+ "prop:unreadableMessage"?: (HelixDateInput["unreadableMessage"]) | undefined;
12375
12482
  /** The name of the calendar's heading where it shows a page of years, with
12376
12483
  `{heading}` filled in. */
12377
12484
  "attr:year-view-label"?: (HelixDateInput["yearViewLabel"]) | undefined;
@@ -12442,6 +12549,8 @@ reader makes in one of these. */
12442
12549
  "on:helix-before-open"?: ((
12443
12550
  e: HelixDateInputHelixBeforeOpenElementEvent,
12444
12551
  ) => void) | undefined;
12552
+ /** Fired after the clear button has emptied the field, after `input` and `change`. */
12553
+ "on:helix-clear"?: ((e: HelixDateInputHelixClearElementEvent) => void) | undefined;
12445
12554
  /** Fired after the value changes. */
12446
12555
  "on:input"?: ((e: HelixDateInputElementEvent) => void) | undefined;
12447
12556
 
@@ -12516,14 +12625,16 @@ it is one of the five, such as `buddhist` for `th-TH` or `japanese` for
12516
12625
  `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
12517
12626
  for `fa-IR`.
12518
12627
 
12519
- `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
12520
- `coptic`, and `indian` draw a calendar with months of its own, as React
12521
- Aria's calendars do: each grid is one of that calendar's months, the
12522
- Hebrew leap month and Ethiopia's five-day thirteenth month included, and
12523
- Previous, Next and the page keys move by those months. `month` and
12628
+ `persian`, `hebrew`, `islamic`, `islamic-umalqura`, `islamic-civil`,
12629
+ `islamic-tbla`, `islamic-rgsa`, `ethiopic`, `ethioaa`, `coptic`,
12630
+ `indian`, `chinese`, and `dangi` draw a calendar with months of its own,
12631
+ as React Aria's calendars do: each grid is one of that calendar's months,
12632
+ the Hebrew and Chinese leap months and Ethiopia's five-day thirteenth
12633
+ month included, and Previous, Next and the page keys move by those
12634
+ months. With `max-view`, the months view shows that calendar's year, of
12635
+ twelve or thirteen months, and the years view its years. `month` and
12524
12636
  `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
12525
- heading stays text, as the months and years views are drawn in Gregorian
12526
- months only. The value is `YYYY-MM-DD` in every calendar. */
12637
+ value is `YYYY-MM-DD` in every calendar. */
12527
12638
  calendar?: (HelixDatePicker["calendar"]) | undefined;
12528
12639
  /** The month to open on when `month` is not set. */
12529
12640
  "default-month"?: (HelixDatePicker["defaultMonth"]) | undefined;
@@ -12670,6 +12781,18 @@ else set needs. */
12670
12781
  readOnly?: (HelixDatePicker["readOnly"]) | undefined;
12671
12782
  /** Stops the form from submitting while no date is chosen. */
12672
12783
  required?: (HelixDatePicker["required"]) | undefined;
12784
+ /** What a screen reader hears about the chosen dates: the grid's
12785
+ description, said again whenever the dates change. `{kind}` is `date`,
12786
+ `start` while a range holds one end, `range`, or `dates` for `multiple`.
12787
+ `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
12788
+ many dates are chosen. */
12789
+ "selection-label"?: (HelixDatePicker["selectionLabel"]) | undefined;
12790
+ /** What a screen reader hears about the chosen dates: the grid's
12791
+ description, said again whenever the dates change. `{kind}` is `date`,
12792
+ `start` while a range holds one end, `range`, or `dates` for `multiple`.
12793
+ `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
12794
+ many dates are chosen. */
12795
+ selectionLabel?: (HelixDatePicker["selectionLabel"]) | undefined;
12673
12796
  /** How far apart the selectable dates are, in days.
12674
12797
 
12675
12798
  `<input type="date" step>`'s own unit, counted from `min` where there is
@@ -12847,14 +12970,16 @@ it is one of the five, such as `buddhist` for `th-TH` or `japanese` for
12847
12970
  `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
12848
12971
  for `fa-IR`.
12849
12972
 
12850
- `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
12851
- `coptic`, and `indian` draw a calendar with months of its own, as React
12852
- Aria's calendars do: each grid is one of that calendar's months, the
12853
- Hebrew leap month and Ethiopia's five-day thirteenth month included, and
12854
- Previous, Next and the page keys move by those months. `month` and
12973
+ `persian`, `hebrew`, `islamic`, `islamic-umalqura`, `islamic-civil`,
12974
+ `islamic-tbla`, `islamic-rgsa`, `ethiopic`, `ethioaa`, `coptic`,
12975
+ `indian`, `chinese`, and `dangi` draw a calendar with months of its own,
12976
+ as React Aria's calendars do: each grid is one of that calendar's months,
12977
+ the Hebrew and Chinese leap months and Ethiopia's five-day thirteenth
12978
+ month included, and Previous, Next and the page keys move by those
12979
+ months. With `max-view`, the months view shows that calendar's year, of
12980
+ twelve or thirteen months, and the years view its years. `month` and
12855
12981
  `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
12856
- heading stays text, as the months and years views are drawn in Gregorian
12857
- months only. The value is `YYYY-MM-DD` in every calendar. */
12982
+ value is `YYYY-MM-DD` in every calendar. */
12858
12983
  "prop:calendar"?: (HelixDatePicker["calendar"]) | undefined;
12859
12984
  /** The month to open on when `month` is not set. */
12860
12985
  "attr:default-month"?: (HelixDatePicker["defaultMonth"]) | undefined;
@@ -13001,6 +13126,18 @@ else set needs. */
13001
13126
  "prop:readOnly"?: (HelixDatePicker["readOnly"]) | undefined;
13002
13127
  /** Stops the form from submitting while no date is chosen. */
13003
13128
  "prop:required"?: (HelixDatePicker["required"]) | undefined;
13129
+ /** What a screen reader hears about the chosen dates: the grid's
13130
+ description, said again whenever the dates change. `{kind}` is `date`,
13131
+ `start` while a range holds one end, `range`, or `dates` for `multiple`.
13132
+ `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
13133
+ many dates are chosen. */
13134
+ "attr:selection-label"?: (HelixDatePicker["selectionLabel"]) | undefined;
13135
+ /** What a screen reader hears about the chosen dates: the grid's
13136
+ description, said again whenever the dates change. `{kind}` is `date`,
13137
+ `start` while a range holds one end, `range`, or `dates` for `multiple`.
13138
+ `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
13139
+ many dates are chosen. */
13140
+ "prop:selectionLabel"?: (HelixDatePicker["selectionLabel"]) | undefined;
13004
13141
  /** How far apart the selectable dates are, in days.
13005
13142
 
13006
13143
  `<input type="date" step>`'s own unit, counted from `min` where there is
@@ -15947,12 +16084,14 @@ each new line above the one before. */
15947
16084
 
15948
16085
  export type HelixFormatDateProps = {
15949
16086
  /** The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
15950
- `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
15951
-
15952
- Absent is the locale's own where it is one of the five, such as
15953
- `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
15954
- for `fa-IR`, so a date written here reads as the same date a Date Picker
15955
- beside it shows. */
16087
+ `roc`, or `iso8601`, or a calendar with months of its own, such as
16088
+ `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`: every
16089
+ calendar Date Picker and Date Input draw.
16090
+
16091
+ Absent is the locale's own where its months are the Gregorian months,
16092
+ such as `buddhist` for `th-TH`, and `gregory` for every other, such as
16093
+ `persian` for `fa-IR`, so a date written here reads as the same date a
16094
+ Date Picker beside it shows. Write `calendar="persian"` for Mehr 14, 1405. */
15956
16095
  calendar?: (HelixFormatDate["calendar"]) | undefined;
15957
16096
  /** The timestamp, in any format `Date` can parse.
15958
16097
 
@@ -15978,6 +16117,14 @@ browser may use either. */
15978
16117
  dateStyle?: (HelixFormatDate["dateStyle"]) | undefined;
15979
16118
  /** How the day of the month is written, where a date is shown. */
15980
16119
  day?: (HelixFormatDate["day"]) | undefined;
16120
+ /** Writes the part of the day in words, such as "in the morning" or "at
16121
+ night", in its `long`, `short`, or `narrow` form, where `hour` is on a
16122
+ twelve-hour clock. */
16123
+ "day-period"?: (HelixFormatDate["dayPeriod"]) | undefined;
16124
+ /** Writes the part of the day in words, such as "in the morning" or "at
16125
+ night", in its `long`, `short`, or `narrow` form, where `hour` is on a
16126
+ twelve-hour clock. */
16127
+ dayPeriod?: (HelixFormatDate["dayPeriod"]) | undefined;
15981
16128
  /** Shows how long ago the timestamp was, in a compact form such as "3h", in
15982
16129
  place of the date.
15983
16130
 
@@ -15995,6 +16142,12 @@ Off by default, which draws the date as one run of text, as Shoelace and
15995
16142
  Web Awesome do. An `elapsed` or `relative` reading is one phrase either
15996
16143
  way. */
15997
16144
  fields?: (HelixFormatDate["fields"]) | undefined;
16145
+ /** How many digits of a fraction of a second to write after `second`: 1, 2,
16146
+ or 3, as in 09:41:07.250. */
16147
+ "fractional-second-digits"?: (HelixFormatDate["fractionalSecondDigits"]) | undefined;
16148
+ /** How many digits of a fraction of a second to write after `second`: 1, 2,
16149
+ or 3, as in 09:41:07.250. */
16150
+ fractionalSecondDigits?: (HelixFormatDate["fractionalSecondDigits"]) | undefined;
15998
16151
  /** Draws an `elapsed` or `relative` reading once and leaves it, where it
15999
16152
  would otherwise move on as it goes stale.
16000
16153
 
@@ -16057,9 +16210,13 @@ Empty is the runtime's own. */
16057
16210
 
16058
16211
  Empty is the runtime's own. */
16059
16212
  timeZone?: (HelixFormatDate["timeZone"]) | undefined;
16060
- /** Shows the name of the time zone, in its `long` or `short` form. */
16213
+ /** Shows the name of the time zone: `long` or `short`, as Pacific Daylight
16214
+ Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
16215
+ `longGeneric` or `shortGeneric`, as Pacific Time or PT. */
16061
16216
  "time-zone-name"?: (HelixFormatDate["timeZoneName"]) | undefined;
16062
- /** Shows the name of the time zone, in its `long` or `short` form. */
16217
+ /** Shows the name of the time zone: `long` or `short`, as Pacific Daylight
16218
+ Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
16219
+ `longGeneric` or `shortGeneric`, as Pacific Time or PT. */
16063
16220
  timeZoneName?: (HelixFormatDate["timeZoneName"]) | undefined;
16064
16221
  /** How the weekday is written, where one is shown. */
16065
16222
  weekday?: (HelixFormatDate["weekday"]) | undefined;
@@ -16069,12 +16226,14 @@ Empty is the runtime's own. */
16069
16226
 
16070
16227
  export type HelixFormatDateSolidJsProps = {
16071
16228
  /** The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
16072
- `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
16073
-
16074
- Absent is the locale's own where it is one of the five, such as
16075
- `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
16076
- for `fa-IR`, so a date written here reads as the same date a Date Picker
16077
- beside it shows. */
16229
+ `roc`, or `iso8601`, or a calendar with months of its own, such as
16230
+ `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`: every
16231
+ calendar Date Picker and Date Input draw.
16232
+
16233
+ Absent is the locale's own where its months are the Gregorian months,
16234
+ such as `buddhist` for `th-TH`, and `gregory` for every other, such as
16235
+ `persian` for `fa-IR`, so a date written here reads as the same date a
16236
+ Date Picker beside it shows. Write `calendar="persian"` for Mehr 14, 1405. */
16078
16237
  "prop:calendar"?: (HelixFormatDate["calendar"]) | undefined;
16079
16238
  /** The timestamp, in any format `Date` can parse.
16080
16239
 
@@ -16100,6 +16259,14 @@ browser may use either. */
16100
16259
  "prop:dateStyle"?: (HelixFormatDate["dateStyle"]) | undefined;
16101
16260
  /** How the day of the month is written, where a date is shown. */
16102
16261
  "prop:day"?: (HelixFormatDate["day"]) | undefined;
16262
+ /** Writes the part of the day in words, such as "in the morning" or "at
16263
+ night", in its `long`, `short`, or `narrow` form, where `hour` is on a
16264
+ twelve-hour clock. */
16265
+ "attr:day-period"?: (HelixFormatDate["dayPeriod"]) | undefined;
16266
+ /** Writes the part of the day in words, such as "in the morning" or "at
16267
+ night", in its `long`, `short`, or `narrow` form, where `hour` is on a
16268
+ twelve-hour clock. */
16269
+ "prop:dayPeriod"?: (HelixFormatDate["dayPeriod"]) | undefined;
16103
16270
  /** Shows how long ago the timestamp was, in a compact form such as "3h", in
16104
16271
  place of the date.
16105
16272
 
@@ -16117,6 +16284,12 @@ Off by default, which draws the date as one run of text, as Shoelace and
16117
16284
  Web Awesome do. An `elapsed` or `relative` reading is one phrase either
16118
16285
  way. */
16119
16286
  "prop:fields"?: (HelixFormatDate["fields"]) | undefined;
16287
+ /** How many digits of a fraction of a second to write after `second`: 1, 2,
16288
+ or 3, as in 09:41:07.250. */
16289
+ "attr:fractional-second-digits"?: (HelixFormatDate["fractionalSecondDigits"]) | undefined;
16290
+ /** How many digits of a fraction of a second to write after `second`: 1, 2,
16291
+ or 3, as in 09:41:07.250. */
16292
+ "prop:fractionalSecondDigits"?: (HelixFormatDate["fractionalSecondDigits"]) | undefined;
16120
16293
  /** Draws an `elapsed` or `relative` reading once and leaves it, where it
16121
16294
  would otherwise move on as it goes stale.
16122
16295
 
@@ -16179,9 +16352,13 @@ Empty is the runtime's own. */
16179
16352
 
16180
16353
  Empty is the runtime's own. */
16181
16354
  "prop:timeZone"?: (HelixFormatDate["timeZone"]) | undefined;
16182
- /** Shows the name of the time zone, in its `long` or `short` form. */
16355
+ /** Shows the name of the time zone: `long` or `short`, as Pacific Daylight
16356
+ Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
16357
+ `longGeneric` or `shortGeneric`, as Pacific Time or PT. */
16183
16358
  "attr:time-zone-name"?: (HelixFormatDate["timeZoneName"]) | undefined;
16184
- /** Shows the name of the time zone, in its `long` or `short` form. */
16359
+ /** Shows the name of the time zone: `long` or `short`, as Pacific Daylight
16360
+ Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
16361
+ `longGeneric` or `shortGeneric`, as Pacific Time or PT. */
16185
16362
  "prop:timeZoneName"?: (HelixFormatDate["timeZoneName"]) | undefined;
16186
16363
  /** How the weekday is written, where one is shown. */
16187
16364
  "prop:weekday"?: (HelixFormatDate["weekday"]) | undefined;
@@ -30436,6 +30613,14 @@ rather than a thumb sitting on nothing. */
30436
30613
  middle of the track, or `end` at `max`. Absent is `start`. A range fills
30437
30614
  between its thumbs and ignores it. */
30438
30615
  origin?: (HelixSlider["origin"]) | undefined;
30616
+ /** How far Page Up and Page Down move a thumb, in the slider's own units, as
30617
+ React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
30618
+ to the platform, which moves a tenth of the track. */
30619
+ "page-step"?: (HelixSlider["pageStep"] | `${number}`) | undefined;
30620
+ /** How far Page Up and Page Down move a thumb, in the slider's own units, as
30621
+ React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
30622
+ to the platform, which moves a tenth of the track. */
30623
+ pageStep?: (HelixSlider["pageStep"]) | undefined;
30439
30624
  /** Adds a second thumb, so the value is a pair.
30440
30625
 
30441
30626
  The pair is one string, `"10,50"`, which is what `value` and
@@ -30690,6 +30875,14 @@ rather than a thumb sitting on nothing. */
30690
30875
  middle of the track, or `end` at `max`. Absent is `start`. A range fills
30691
30876
  between its thumbs and ignores it. */
30692
30877
  "prop:origin"?: (HelixSlider["origin"]) | undefined;
30878
+ /** How far Page Up and Page Down move a thumb, in the slider's own units, as
30879
+ React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
30880
+ to the platform, which moves a tenth of the track. */
30881
+ "attr:page-step"?: (HelixSlider["pageStep"] | `${number}`) | undefined;
30882
+ /** How far Page Up and Page Down move a thumb, in the slider's own units, as
30883
+ React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
30884
+ to the platform, which moves a tenth of the track. */
30885
+ "prop:pageStep"?: (HelixSlider["pageStep"]) | undefined;
30693
30886
  /** Adds a second thumb, so the value is a pair.
30694
30887
 
30695
30888
  The pair is one string, `"10,50"`, which is what `value` and
@@ -34612,6 +34805,9 @@ export type HelixTimeInputHelixBeforeCloseElementEvent =
34612
34805
  /** `helix-before-open` event type */
34613
34806
  export type HelixTimeInputHelixBeforeOpenElementEvent =
34614
34807
  HelixTimeInputElementEvent<HelixBeforeOpenEvent>;
34808
+ /** `helix-clear` event type */
34809
+ export type HelixTimeInputHelixClearElementEvent =
34810
+ HelixTimeInputElementEvent<HelixClearEvent>;
34615
34811
 
34616
34812
  export type HelixTimeInputProps = {
34617
34813
  /** What a row of segments reports when the field is required and every
@@ -34636,6 +34832,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
34636
34832
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
34637
34833
  `time`. */
34638
34834
  incompleteMessage?: (HelixTimeInput["incompleteMessage"]) | undefined;
34835
+ /** What a screen reader hears before the segments of a range's second date
34836
+ or time, after each segment's own name. */
34837
+ "range-end-label"?: (HelixTimeInput["rangeEndLabel"]) | undefined;
34838
+ /** What a screen reader hears before the segments of a range's second date
34839
+ or time, after each segment's own name. */
34840
+ rangeEndLabel?: (HelixTimeInput["rangeEndLabel"]) | undefined;
34841
+ /** What a screen reader hears before the segments of a range's first date
34842
+ or time, after each segment's own name: "month, Start, Stay". */
34843
+ "range-start-label"?: (HelixTimeInput["rangeStartLabel"]) | undefined;
34844
+ /** What a screen reader hears before the segments of a range's first date
34845
+ or time, after each segment's own name: "month, Start, Stay". */
34846
+ rangeStartLabel?: (HelixTimeInput["rangeStartLabel"]) | undefined;
34639
34847
  /** Whether the field is a row of segments, one for each part of the date or
34640
34848
  time, in place of a line of text.
34641
34849
 
@@ -34805,6 +35013,14 @@ the field and does not reach that one. */
34805
35013
  Empty leaves the attribute off, which is the browser's default and is what
34806
35014
  lets autofill work at all. */
34807
35015
  autocomplete?: (HelixTimeInput["autocomplete"]) | undefined;
35016
+ /** Whether the field shows a button that empties it, as Input's `clearable`
35017
+ does. Shown only while the field holds something to clear and is neither
35018
+ disabled nor read-only. */
35019
+ clearable?: (HelixTimeInput["clearable"]) | undefined;
35020
+ /** The accessible name of the clear button, which shows only an icon. */
35021
+ "clear-label"?: (HelixTimeInput["clearLabel"]) | undefined;
35022
+ /** The accessible name of the clear button, which shows only an icon. */
35023
+ clearLabel?: (HelixTimeInput["clearLabel"]) | undefined;
34808
35024
  /** Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
34809
35025
 
34810
35026
  Handed to the list, which offers them as unavailable, and checked against
@@ -34908,6 +35124,12 @@ never something this element would refuse to read back. */
34908
35124
  "unavailable-message"?: (HelixTimeInput["unavailableMessage"]) | undefined;
34909
35125
  /** The message shown when `disable-times` bars a time. */
34910
35126
  unavailableMessage?: (HelixTimeInput["unavailableMessage"]) | undefined;
35127
+ /** The message for text that is no time, where `bad-input-message` is not
35128
+ set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`. */
35129
+ "unreadable-message"?: (HelixTimeInput["unreadableMessage"]) | undefined;
35130
+ /** The message for text that is no time, where `bad-input-message` is not
35131
+ set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`. */
35132
+ unreadableMessage?: (HelixTimeInput["unreadableMessage"]) | undefined;
34911
35133
  /** Whether the panel shows one list of times or a column for each part of the
34912
35134
  time.
34913
35135
 
@@ -34977,6 +35199,8 @@ a consumer handing over `new Date()` gets the time of day they expected. */
34977
35199
  "onhelix-before-open"?: ((
34978
35200
  e: HelixTimeInputHelixBeforeOpenElementEvent,
34979
35201
  ) => void) | undefined;
35202
+ /** Fired after the clear button has emptied the field, after `input` and `change`. */
35203
+ "onhelix-clear"?: ((e: HelixTimeInputHelixClearElementEvent) => void) | undefined;
34980
35204
  /** Fired after the value changes. */
34981
35205
  oninput?: ((e: HelixTimeInputElementEvent) => void) | undefined;
34982
35206
  };
@@ -35004,6 +35228,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
35004
35228
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
35005
35229
  `time`. */
35006
35230
  "prop:incompleteMessage"?: (HelixTimeInput["incompleteMessage"]) | undefined;
35231
+ /** What a screen reader hears before the segments of a range's second date
35232
+ or time, after each segment's own name. */
35233
+ "attr:range-end-label"?: (HelixTimeInput["rangeEndLabel"]) | undefined;
35234
+ /** What a screen reader hears before the segments of a range's second date
35235
+ or time, after each segment's own name. */
35236
+ "prop:rangeEndLabel"?: (HelixTimeInput["rangeEndLabel"]) | undefined;
35237
+ /** What a screen reader hears before the segments of a range's first date
35238
+ or time, after each segment's own name: "month, Start, Stay". */
35239
+ "attr:range-start-label"?: (HelixTimeInput["rangeStartLabel"]) | undefined;
35240
+ /** What a screen reader hears before the segments of a range's first date
35241
+ or time, after each segment's own name: "month, Start, Stay". */
35242
+ "prop:rangeStartLabel"?: (HelixTimeInput["rangeStartLabel"]) | undefined;
35007
35243
  /** Whether the field is a row of segments, one for each part of the date or
35008
35244
  time, in place of a line of text.
35009
35245
 
@@ -35173,6 +35409,14 @@ the field and does not reach that one. */
35173
35409
  Empty leaves the attribute off, which is the browser's default and is what
35174
35410
  lets autofill work at all. */
35175
35411
  "prop:autocomplete"?: (HelixTimeInput["autocomplete"]) | undefined;
35412
+ /** Whether the field shows a button that empties it, as Input's `clearable`
35413
+ does. Shown only while the field holds something to clear and is neither
35414
+ disabled nor read-only. */
35415
+ "prop:clearable"?: (HelixTimeInput["clearable"]) | undefined;
35416
+ /** The accessible name of the clear button, which shows only an icon. */
35417
+ "attr:clear-label"?: (HelixTimeInput["clearLabel"]) | undefined;
35418
+ /** The accessible name of the clear button, which shows only an icon. */
35419
+ "prop:clearLabel"?: (HelixTimeInput["clearLabel"]) | undefined;
35176
35420
  /** Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
35177
35421
 
35178
35422
  Handed to the list, which offers them as unavailable, and checked against
@@ -35276,6 +35520,12 @@ never something this element would refuse to read back. */
35276
35520
  "attr:unavailable-message"?: (HelixTimeInput["unavailableMessage"]) | undefined;
35277
35521
  /** The message shown when `disable-times` bars a time. */
35278
35522
  "prop:unavailableMessage"?: (HelixTimeInput["unavailableMessage"]) | undefined;
35523
+ /** The message for text that is no time, where `bad-input-message` is not
35524
+ set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`. */
35525
+ "attr:unreadable-message"?: (HelixTimeInput["unreadableMessage"]) | undefined;
35526
+ /** The message for text that is no time, where `bad-input-message` is not
35527
+ set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`. */
35528
+ "prop:unreadableMessage"?: (HelixTimeInput["unreadableMessage"]) | undefined;
35279
35529
  /** Whether the panel shows one list of times or a column for each part of the
35280
35530
  time.
35281
35531
 
@@ -35344,6 +35594,8 @@ a consumer handing over `new Date()` gets the time of day they expected. */
35344
35594
  "on:helix-before-open"?: ((
35345
35595
  e: HelixTimeInputHelixBeforeOpenElementEvent,
35346
35596
  ) => void) | undefined;
35597
+ /** Fired after the clear button has emptied the field, after `input` and `change`. */
35598
+ "on:helix-clear"?: ((e: HelixTimeInputHelixClearElementEvent) => void) | undefined;
35347
35599
  /** Fired after the value changes. */
35348
35600
  "on:input"?: ((e: HelixTimeInputElementEvent) => void) | undefined;
35349
35601
 
@@ -36439,6 +36691,18 @@ and this one was the English a form in another language still spoke in
36439
36691
  the bubble it raises on submit: `feedback` replaces the message under
36440
36692
  the field and does not reach that one. */
36441
36693
  valueMissingMessage?: (HelixToggleGroup["valueMissingMessage"]) | undefined;
36694
+ /** Whether a press on the chosen item, or Space or Enter on it, takes it
36695
+ back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
36696
+ Radix's `ToggleGroup` do in a single group. Absent, a single group always
36697
+ keeps its choice once it has one, as a radio group does. A multiple group
36698
+ releases a pressed item either way. */
36699
+ "allow-empty-selection"?: (HelixToggleGroup["allowEmptySelection"]) | undefined;
36700
+ /** Whether a press on the chosen item, or Space or Enter on it, takes it
36701
+ back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
36702
+ Radix's `ToggleGroup` do in a single group. Absent, a single group always
36703
+ keeps its choice once it has one, as a radio group does. A multiple group
36704
+ releases a pressed item either way. */
36705
+ allowEmptySelection?: (HelixToggleGroup["allowEmptySelection"]) | undefined;
36442
36706
  /** Where the group's label sits. `start` puts it on the track's line.
36443
36707
 
36444
36708
  Absent is above, which is what a field looks like and what almost every
@@ -36630,6 +36894,18 @@ and this one was the English a form in another language still spoke in
36630
36894
  the bubble it raises on submit: `feedback` replaces the message under
36631
36895
  the field and does not reach that one. */
36632
36896
  "prop:valueMissingMessage"?: (HelixToggleGroup["valueMissingMessage"]) | undefined;
36897
+ /** Whether a press on the chosen item, or Space or Enter on it, takes it
36898
+ back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
36899
+ Radix's `ToggleGroup` do in a single group. Absent, a single group always
36900
+ keeps its choice once it has one, as a radio group does. A multiple group
36901
+ releases a pressed item either way. */
36902
+ "bool:allow-empty-selection"?: (HelixToggleGroup["allowEmptySelection"]) | undefined;
36903
+ /** Whether a press on the chosen item, or Space or Enter on it, takes it
36904
+ back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
36905
+ Radix's `ToggleGroup` do in a single group. Absent, a single group always
36906
+ keeps its choice once it has one, as a radio group does. A multiple group
36907
+ releases a pressed item either way. */
36908
+ "prop:allowEmptySelection"?: (HelixToggleGroup["allowEmptySelection"]) | undefined;
36633
36909
  /** Where the group's label sits. `start` puts it on the track's line.
36634
36910
 
36635
36911
  Absent is above, which is what a field looks like and what almost every
@@ -45722,6 +45998,12 @@ export type CustomElements = {
45722
45998
  *
45723
45999
  * Methods that can be called to access component functionality.
45724
46000
  *
46001
+ * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
46002
+ * where there is no `default-value`.
46003
+ *
46004
+ * Both halves are dropped, the consumer's and the control's, because a
46005
+ * reset means the form is as it was served. Clearing only the internal one
46006
+ * would leave a control that had been written to stuck at that value.
45725
46007
  * - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
45726
46008
  *
45727
46009
  * Announces before it acts, so `preventDefault()` on the `helix-before-change` is
@@ -45729,12 +46011,6 @@ export type CustomElements = {
45729
46011
  * itself, whether or not a consumer declared `value`: a declared property
45730
46012
  * is a seed and a correction, the way `<input value>` is, and a consumer
45731
46013
  * who wants the change for themselves refuses it and assigns their own.
45732
- * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
45733
- * where there is no `default-value`.
45734
- *
45735
- * Both halves are dropped, the consumer's and the control's, because a
45736
- * reset means the form is as it was served. Clearing only the internal one
45737
- * would leave a control that had been written to stuck at that value.
45738
46014
  * - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
45739
46015
  *
45740
46016
  * Falling back to what the markup declared rather than to empty, because
@@ -47144,6 +47420,10 @@ export type CustomElements = {
47144
47420
  * - `incomplete-message`/`incompleteMessage`: What a row of segments reports while some segments are set and others
47145
47421
  * are not, where `bad-input-message` is not set. `{kind}` is `date` or
47146
47422
  * `time`.
47423
+ * - `range-end-label`/`rangeEndLabel`: What a screen reader hears before the segments of a range's second date
47424
+ * or time, after each segment's own name.
47425
+ * - `range-start-label`/`rangeStartLabel`: What a screen reader hears before the segments of a range's first date
47426
+ * or time, after each segment's own name: "month, Start, Stay".
47147
47427
  * - `segmented`: Whether the field is a row of segments, one for each part of the date or
47148
47428
  * time, in place of a line of text.
47149
47429
  *
@@ -47228,27 +47508,39 @@ export type CustomElements = {
47228
47508
  * and this one was the English a form in another language still spoke in
47229
47509
  * the bubble it raises on submit: `feedback` replaces the message under
47230
47510
  * the field and does not reach that one.
47231
- * - `autocomplete`: What the browser may autofill here, as one of the platform's own tokens.
47511
+ * - `autocomplete`: What the browser may autofill here, as one of the platform's own tokens,
47512
+ * such as `bday`.
47232
47513
  *
47233
47514
  * Empty leaves the attribute off, which is the browser's default and is what
47234
47515
  * lets autofill work at all: hardcoding `off` here means a birthday or a
47235
- * postal code can never be filled in for a reader.
47236
- * - `calendar`: The calendar the written date and the calendar's days are in: `gregory`,
47237
- * `buddhist`, `japanese`, `roc`, or `iso8601`.
47238
- *
47239
- * Absent is the locale's own where it is one of the five, and `gregory` for
47240
- * every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
47241
- * every calendar, and a focused field is ISO in every calendar. In
47242
- * `segmented`, the segments are the Gregorian day, month, and year, in the
47243
- * order the locale writes them, or ISO order for `iso8601`.
47516
+ * postal code can never be filled in for a reader. With `segmented`, a
47517
+ * hidden native date input carries it, since no browser fills the segments.
47518
+ * - `calendar`: The calendar the written date, the segments, and the calendar's days are
47519
+ * in: `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, or a calendar
47520
+ * with months of its own that Date Picker's `calendar` names, such as
47521
+ * `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`.
47522
+ *
47523
+ * Absent is the locale's own where its months are the Gregorian months, and
47524
+ * `gregory` for every other, as Date Picker's `calendar` is. The value is
47525
+ * `YYYY-MM-DD` in every calendar, and a focused text field is ISO in every
47526
+ * calendar. In `segmented`, the segments are the day, month, and year as
47527
+ * the calendar counts them, in the order the locale writes them: Mehr 14,
47528
+ * 1405 is month 7 and day 14 of 1405 under `persian`. Under the five with
47529
+ * Gregorian months they are the Gregorian day, month, and year, or ISO order
47530
+ * for `iso8601`.
47244
47531
  * - `calendar-label`/`calendarLabel`: The name of the calendar's grid of days, read by screen readers.
47532
+ * - `clearable`: Whether the field shows a button that empties it, as Input's `clearable`
47533
+ * does. Shown only while the field holds something to clear and is neither
47534
+ * disabled nor read-only.
47535
+ * - `clear-label`/`clearLabel`: The accessible name of the clear button, which shows only an icon.
47245
47536
  * - `date-style`/`dateStyle`: How a date is written in the field: `short` through `full`, or ISO.
47246
47537
  *
47247
47538
  * **The field renders when it is idle and holds the value when it is being
47248
47539
  * edited.** A written date is a rendering, and a document being edited must
47249
47540
  * not be a rendering of something else: `Intl.DateTimeFormat` formats and does
47250
- * not parse, so `4 August 2026` cannot be typed back, and writing a parser per
47251
- * locale is how a field ends up rejecting what it just displayed.
47541
+ * not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
47542
+ * edit. The field does read a date typed in the locale's order and digits as
47543
+ * you leave it, which covers what a reader types.
47252
47544
  *
47253
47545
  * The way out is not to choose between the two but to separate them in time.
47254
47546
  * Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -47316,6 +47608,9 @@ export type CustomElements = {
47316
47608
  *
47317
47609
  * **The name goes in**, so a row of them is heard as which one each
47318
47610
  * removes rather than as "Remove" said once per date.
47611
+ * - `selection-label`/`selectionLabel`: What a screen reader hears about the dates chosen in the calendar, with
47612
+ * `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
47613
+ * `selection-label` says.
47319
47614
  * - `step`: How far apart the selectable dates are, in days.
47320
47615
  *
47321
47616
  * `<input type="date" step>`'s own unit, handed to the calendar this renders
@@ -47323,8 +47618,13 @@ export type CustomElements = {
47323
47618
  * where there is one and from 1 January 1970 where there is not, which is the
47324
47619
  * platform's base.
47325
47620
  * - `step-mismatch-message`/`stepMismatchMessage`: The message shown when a date is not on `step`.
47621
+ * - `time-zone`/`timeZone`: The time zone today is read in, such as `America/New_York`, handed to the
47622
+ * calendar: the day marked today, and the month an empty field opens on.
47623
+ * Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone.
47326
47624
  * - `trigger-label`/`triggerLabel`: The name of the button that opens the calendar, read by screen readers.
47327
47625
  * - `unavailable-message`/`unavailableMessage`: The message shown when `disable-dates` or `disable-days` bars a date.
47626
+ * - `unreadable-message`/`unreadableMessage`: The message for text that is no date, where `bad-input-message` is not
47627
+ * set. `{mode}` is `single`, `range`, or `multiple`.
47328
47628
  * - `year-view-label`/`yearViewLabel`: The name of the calendar's heading where it shows a page of years, with
47329
47629
  * `{heading}` filled in.
47330
47630
  * - `disabled`: Whether the control is disabled and cannot be used.
@@ -47404,12 +47704,14 @@ export type CustomElements = {
47404
47704
  * - `helix-before-change`: Fired before the date changes. Cancelable: call `preventDefault()` to keep the current date.
47405
47705
  * - `helix-before-close`: Fired before the calendar closes. Cancelable: call `preventDefault()` to keep it open.
47406
47706
  * - `helix-before-open`: Fired before the calendar opens. Cancelable: call `preventDefault()` to keep it closed.
47707
+ * - `helix-clear`: Fired after the clear button has emptied the field, after `input` and `change`.
47407
47708
  * - `input`: Fired after the value changes.
47408
47709
  *
47409
47710
  * ## Slots
47410
47711
  *
47411
47712
  * Areas where markup can be added to the component.
47412
47713
  *
47714
+ * - `clear-icon`: Replaces the cross on the clear button, under `clearable`.
47413
47715
  * - `end`: Content after the date, before the trigger, such as a clear button.
47414
47716
  * - `feedback`: The error message under the field.
47415
47717
  * - `hint`: The help text under the field.
@@ -47498,6 +47800,7 @@ export type CustomElements = {
47498
47800
  *
47499
47801
  * Custom selectors for styling elements within the component.
47500
47802
  *
47803
+ * - `clear`: The button that empties the field, under `clearable`, while it holds a date.
47501
47804
  * - `control`: The text input.
47502
47805
  * - `date`: One held date, as a tag, in `multiple`.
47503
47806
  * - `date-cell`: The tag's grid cell, which a tag draws only inside a tag group.
@@ -47539,8 +47842,10 @@ export type CustomElements = {
47539
47842
  * - `picker-periods`: The grid of months or years.
47540
47843
  * - `picker-previous`: The control that moves to the previous month.
47541
47844
  * - `picker-previous-mark`: The icon on the previous month control.
47845
+ * - `picker-selection`: The chosen date or range in words, which screen readers hear when it changes. Drawn for screen readers only.
47542
47846
  * - `picker-week`: One row of days.
47543
47847
  * - `picker-weekday`: A column header naming a day of the week.
47848
+ * - `range-separator`: The dash between a range's two rows of segments, in `segmented`, beside `literal`.
47544
47849
  * - `rest`: The count of dates beyond the ones shown. It is a `<button>` with `expandable` and a `<span>` without it.
47545
47850
  * - `segment`: One part of the date, a year, a month or a day, in `segmented`.
47546
47851
  * - `segment-placeholder`: A segment with nothing in it yet. Applied with `segment`.
@@ -47554,6 +47859,7 @@ export type CustomElements = {
47554
47859
  *
47555
47860
  * These can be used to apply styling when a component is in a given state.
47556
47861
  *
47862
+ * - `blank`: The field holds no date.
47557
47863
  * - `invalid`: The field has an error to show, from the browser's validation or from your `feedback`.
47558
47864
  * - `open`: The calendar is open.
47559
47865
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -47615,14 +47921,16 @@ export type CustomElements = {
47615
47921
  * `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
47616
47922
  * for `fa-IR`.
47617
47923
  *
47618
- * `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
47619
- * `coptic`, and `indian` draw a calendar with months of its own, as React
47620
- * Aria's calendars do: each grid is one of that calendar's months, the
47621
- * Hebrew leap month and Ethiopia's five-day thirteenth month included, and
47622
- * Previous, Next and the page keys move by those months. `month` and
47924
+ * `persian`, `hebrew`, `islamic`, `islamic-umalqura`, `islamic-civil`,
47925
+ * `islamic-tbla`, `islamic-rgsa`, `ethiopic`, `ethioaa`, `coptic`,
47926
+ * `indian`, `chinese`, and `dangi` draw a calendar with months of its own,
47927
+ * as React Aria's calendars do: each grid is one of that calendar's months,
47928
+ * the Hebrew and Chinese leap months and Ethiopia's five-day thirteenth
47929
+ * month included, and Previous, Next and the page keys move by those
47930
+ * months. With `max-view`, the months view shows that calendar's year, of
47931
+ * twelve or thirteen months, and the years view its years. `month` and
47623
47932
  * `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
47624
- * heading stays text, as the months and years views are drawn in Gregorian
47625
- * months only. The value is `YYYY-MM-DD` in every calendar.
47933
+ * value is `YYYY-MM-DD` in every calendar.
47626
47934
  * - `default-month`/`defaultMonth`: The month to open on when `month` is not set.
47627
47935
  * - `disable-dates`/`disableDates`: Dates that cannot be chosen, as `YYYY-MM-DD`, separated by commas or
47628
47936
  * spaces.
@@ -47685,6 +47993,11 @@ export type CustomElements = {
47685
47993
  * value and stays reachable, which is what a form showing a value somebody
47686
47994
  * else set needs.
47687
47995
  * - `required`: Stops the form from submitting while no date is chosen.
47996
+ * - `selection-label`/`selectionLabel`: What a screen reader hears about the chosen dates: the grid's
47997
+ * description, said again whenever the dates change. `{kind}` is `date`,
47998
+ * `start` while a range holds one end, `range`, or `dates` for `multiple`.
47999
+ * `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
48000
+ * many dates are chosen.
47688
48001
  * - `step`: How far apart the selectable dates are, in days.
47689
48002
  *
47690
48003
  * `<input type="date" step>`'s own unit, counted from `min` where there is
@@ -47813,6 +48126,12 @@ export type CustomElements = {
47813
48126
  *
47814
48127
  * Methods that can be called to access component functionality.
47815
48128
  *
48129
+ * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
48130
+ * where there is no `default-value`.
48131
+ *
48132
+ * Both halves are dropped, the consumer's and the control's, because a
48133
+ * reset means the form is as it was served. Clearing only the internal one
48134
+ * would leave a control that had been written to stuck at that value.
47816
48135
  * - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
47817
48136
  *
47818
48137
  * Announces before it acts, so `preventDefault()` on the `helix-before-change` is
@@ -47820,18 +48139,19 @@ export type CustomElements = {
47820
48139
  * itself, whether or not a consumer declared `value`: a declared property
47821
48140
  * is a seed and a correction, the way `<input value>` is, and a consumer
47822
48141
  * who wants the change for themselves refuses it and assigns their own.
47823
- * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
47824
- * where there is no `default-value`.
47825
- *
47826
- * Both halves are dropped, the consumer's and the control's, because a
47827
- * reset means the form is as it was served. Clearing only the internal one
47828
- * would leave a control that had been written to stuck at that value.
47829
48142
  * - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
47830
48143
  *
47831
48144
  * Falling back to what the markup declared rather than to empty, because
47832
48145
  * a restore with no state is a form the browser has nothing recorded for,
47833
48146
  * which is the same situation as a fresh one.
47834
48147
  * - `focus(options?: FocusOptions) => void`: Moves focus to the control, as focusing a native control does.
48148
+ * - `showChosen() => void`: Shows the days again, on the month of the chosen date, with the tab stop
48149
+ * on that date, forgetting the month and the day the reader browsed to.
48150
+ *
48151
+ * Date Input calls it each time its panel opens, which is where the APG
48152
+ * date picker dialog puts focus. Measured before this: from August 4, two
48153
+ * presses of Page Down, Escape, and Down again opened on October 4.
48154
+ * A `month` you set stays until the reader pages away from it.
47835
48155
  * - `formDisabledCallback(disabled: boolean) => void`: Called by the browser when an ancestor fieldset is disabled or enabled.
47836
48156
  *
47837
48157
  * **The argument is the effective state, and taking it whole is what latched
@@ -47881,6 +48201,7 @@ export type CustomElements = {
47881
48201
  * - `--date-picker-feedback-color`: The color of the message under the calendar, while `feedback` is set.
47882
48202
  * - `--date-picker-period-size`: Height of a month or a year in the months and years views, where `max-view` is set.
47883
48203
  * - `--date-picker-range-color`: Band behind the days in a range.
48204
+ * - `--date-picker-range-preview-color`: Band behind the days a waiting range is drawn to, before its second end is chosen.
47884
48205
  * - `--date-picker-row-size`: Height of a week row.
47885
48206
  * - `--date-picker-selected-color`: Fill behind a selected day.
47886
48207
  * - `--date-picker-track-size`: Width of a column, which is what sets the space between days.
@@ -47891,7 +48212,7 @@ export type CustomElements = {
47891
48212
  * Custom selectors for styling elements within the component.
47892
48213
  *
47893
48214
  * - `cell`: One column of a week row. A range is painted on the cells.
47894
- * - `cell-range-end`: The cell of a range's last day, beside `cell`.
48215
+ * - `cell-range-end`: The cell of a range's last day, beside `cell`, or of the day a waiting range is drawn to.
47895
48216
  * - `cell-range-middle`: A cell between a range's ends, beside `cell`.
47896
48217
  * - `cell-range-start`: The cell of a range's first day, beside `cell`.
47897
48218
  * - `day`: The shape inside a cell. A single chosen date is painted on it.
@@ -47917,6 +48238,7 @@ export type CustomElements = {
47917
48238
  * - `periods`: The grid of months or years.
47918
48239
  * - `previous`: The control that moves to the previous month.
47919
48240
  * - `previous-mark`: The glyph on the previous month control, where none is slotted.
48241
+ * - `selection`: The chosen date or range in words, which screen readers hear when it changes. Drawn for screen readers only.
47920
48242
  * - `week`: One row of days.
47921
48243
  * - `weekday`: A column header naming a day of the week. It shows the short name and says the full one.
47922
48244
  *
@@ -47924,7 +48246,11 @@ export type CustomElements = {
47924
48246
  *
47925
48247
  * These can be used to apply styling when a component is in a given state.
47926
48248
  *
47927
- * - `invalid`: While `invalid` is set or `feedback` says what is wrong.
48249
+ * - `blank`: While no date is chosen.
48250
+ * - `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.
48251
+ * - `month-view`: While the months of a year are shown, where `max-view` is set.
48252
+ * - `range-pending`: While a `range` holds its first end and waits for the second.
48253
+ * - `year-view`: While a page of years is shown, where `max-view` is `year`.
47928
48254
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
47929
48255
  */
47930
48256
  "helix-date-picker": Partial<
@@ -50475,12 +50801,14 @@ export type CustomElements = {
50475
50801
  * Component attributes and properties that can be applied to the element or by using JavaScript.
50476
50802
  *
50477
50803
  * - `calendar`: The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
50478
- * `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
50479
- *
50480
- * Absent is the locale's own where it is one of the five, such as
50481
- * `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
50482
- * for `fa-IR`, so a date written here reads as the same date a Date Picker
50483
- * beside it shows.
50804
+ * `roc`, or `iso8601`, or a calendar with months of its own, such as
50805
+ * `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`: every
50806
+ * calendar Date Picker and Date Input draw.
50807
+ *
50808
+ * Absent is the locale's own where its months are the Gregorian months,
50809
+ * such as `buddhist` for `th-TH`, and `gregory` for every other, such as
50810
+ * `persian` for `fa-IR`, so a date written here reads as the same date a
50811
+ * Date Picker beside it shows. Write `calendar="persian"` for Mehr 14, 1405.
50484
50812
  * - `date`: The timestamp, in any format `Date` can parse.
50485
50813
  *
50486
50814
  * An ISO string is what an API sends and what `<time datetime>` takes, so it
@@ -50499,6 +50827,9 @@ export type CustomElements = {
50499
50827
  * - `date-style`/`dateStyle`: The locale's own pattern for the date: `full`, `long`, `medium`, or
50500
50828
  * `short`. Set, it stands in for `weekday`, `day`, `month`, `year` and `era`.
50501
50829
  * - `day`: How the day of the month is written, where a date is shown.
50830
+ * - `day-period`/`dayPeriod`: Writes the part of the day in words, such as "in the morning" or "at
50831
+ * night", in its `long`, `short`, or `narrow` form, where `hour` is on a
50832
+ * twelve-hour clock.
50502
50833
  * - `elapsed`: Shows how long ago the timestamp was, in a compact form such as "3h", in
50503
50834
  * place of the date.
50504
50835
  *
@@ -50513,6 +50844,8 @@ export type CustomElements = {
50513
50844
  * Off by default, which draws the date as one run of text, as Shoelace and
50514
50845
  * Web Awesome do. An `elapsed` or `relative` reading is one phrase either
50515
50846
  * way.
50847
+ * - `fractional-second-digits`/`fractionalSecondDigits`: How many digits of a fraction of a second to write after `second`: 1, 2,
50848
+ * or 3, as in 09:41:07.250.
50516
50849
  * - `frozen`: Draws an `elapsed` or `relative` reading once and leaves it, where it
50517
50850
  * would otherwise move on as it goes stale.
50518
50851
  *
@@ -50550,7 +50883,9 @@ export type CustomElements = {
50550
50883
  * - `time-zone`/`timeZone`: The time zone to read the timestamp in.
50551
50884
  *
50552
50885
  * Empty is the runtime's own.
50553
- * - `time-zone-name`/`timeZoneName`: Shows the name of the time zone, in its `long` or `short` form.
50886
+ * - `time-zone-name`/`timeZoneName`: Shows the name of the time zone: `long` or `short`, as Pacific Daylight
50887
+ * Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
50888
+ * `longGeneric` or `shortGeneric`, as Pacific Time or PT.
50554
50889
  * - `weekday`: How the weekday is written, where one is shown.
50555
50890
  * - `year`: How the year is written, where a date is shown.
50556
50891
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
@@ -50581,6 +50916,7 @@ export type CustomElements = {
50581
50916
  * - `day`: The day of the month, with `fields`.
50582
50917
  * - `day-period`: AM or PM, or the locale's word for the part of the day, with `fields`.
50583
50918
  * - `era`: The era, such as AD, with `fields` and `era`.
50919
+ * - `fractional-second`: The fraction of a second, with `fields` and `fractional-second-digits`.
50584
50920
  * - `hour`: The hour, with `fields`.
50585
50921
  * - `minute`: The minute, with `fields`.
50586
50922
  * - `month`: The month, with `fields`.
@@ -56279,6 +56615,7 @@ export type CustomElements = {
56279
56615
  * - `time-day`: Format Date's `day`, forwarded for a time drawn as fields. An elapsed time draws none.
56280
56616
  * - `time-day-period`: Format Date's `day-period`, forwarded for a time drawn as fields. An elapsed time draws none.
56281
56617
  * - `time-era`: Format Date's `era`, forwarded for a time drawn as fields. An elapsed time draws none.
56618
+ * - `time-fractional-second`: Format Date's `fractional-second`, forwarded for a time drawn as fields. An elapsed time draws none.
56282
56619
  * - `time-hour`: Format Date's `hour`, forwarded for a time drawn as fields. An elapsed time draws none.
56283
56620
  * - `time-minute`: Format Date's `minute`, forwarded for a time drawn as fields. An elapsed time draws none.
56284
56621
  * - `time-month`: Format Date's `month`, forwarded for a time drawn as fields. An elapsed time draws none.
@@ -61359,6 +61696,9 @@ export type CustomElements = {
61359
61696
  * - `origin`: Where a single thumb's fill starts: `start` at `min`, `center` at the
61360
61697
  * middle of the track, or `end` at `max`. Absent is `start`. A range fills
61361
61698
  * between its thumbs and ignores it.
61699
+ * - `page-step`/`pageStep`: How far Page Up and Page Down move a thumb, in the slider's own units, as
61700
+ * React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
61701
+ * to the platform, which moves a tenth of the track.
61362
61702
  * - `range`: Adds a second thumb, so the value is a pair.
61363
61703
  *
61364
61704
  * The pair is one string, `"10,50"`, which is what `value` and
@@ -61566,6 +61906,8 @@ export type CustomElements = {
61566
61906
  *
61567
61907
  * These can be used to apply styling when a component is in a given state.
61568
61908
  *
61909
+ * - `dragging`: A thumb is being dragged, by its thumb or from a press on the track.
61910
+ * - `focus-visible`: A thumb has focus that the keyboard brought, where the browser draws a focus ring.
61569
61911
  * - `invalid`: The slider has an error to show, from the browser's validation or from your `feedback`.
61570
61912
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
61571
61913
  */
@@ -64629,6 +64971,10 @@ export type CustomElements = {
64629
64971
  * - `incomplete-message`/`incompleteMessage`: What a row of segments reports while some segments are set and others
64630
64972
  * are not, where `bad-input-message` is not set. `{kind}` is `date` or
64631
64973
  * `time`.
64974
+ * - `range-end-label`/`rangeEndLabel`: What a screen reader hears before the segments of a range's second date
64975
+ * or time, after each segment's own name.
64976
+ * - `range-start-label`/`rangeStartLabel`: What a screen reader hears before the segments of a range's first date
64977
+ * or time, after each segment's own name: "month, Start, Stay".
64632
64978
  * - `segmented`: Whether the field is a row of segments, one for each part of the date or
64633
64979
  * time, in place of a line of text.
64634
64980
  *
@@ -64717,6 +65063,10 @@ export type CustomElements = {
64717
65063
  *
64718
65064
  * Empty leaves the attribute off, which is the browser's default and is what
64719
65065
  * lets autofill work at all.
65066
+ * - `clearable`: Whether the field shows a button that empties it, as Input's `clearable`
65067
+ * does. Shown only while the field holds something to clear and is neither
65068
+ * disabled nor read-only.
65069
+ * - `clear-label`/`clearLabel`: The accessible name of the clear button, which shows only an icon.
64720
65070
  * - `disable-times`/`disableTimes`: Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
64721
65071
  *
64722
65072
  * Handed to the list, which offers them as unavailable, and checked against
@@ -64765,6 +65115,8 @@ export type CustomElements = {
64765
65115
  * never something this element would refuse to read back.
64766
65116
  * - `trigger-label`/`triggerLabel`: The name of the button that opens the list, read by screen readers.
64767
65117
  * - `unavailable-message`/`unavailableMessage`: The message shown when `disable-times` bars a time.
65118
+ * - `unreadable-message`/`unreadableMessage`: The message for text that is no time, where `bad-input-message` is not
65119
+ * set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`.
64768
65120
  * - `variant`: Whether the panel shows one list of times or a column for each part of the
64769
65121
  * time.
64770
65122
  *
@@ -64847,12 +65199,14 @@ export type CustomElements = {
64847
65199
  * - `helix-before-change`: Fired before the time changes. Cancelable: canceling it stops the change and leaves the decision to you.
64848
65200
  * - `helix-before-close`: Fired before the list closes. Cancelable: canceling it keeps the list open and leaves the decision to you.
64849
65201
  * - `helix-before-open`: Fired before the list opens. Cancelable: canceling it keeps the list closed and leaves the decision to you.
65202
+ * - `helix-clear`: Fired after the clear button has emptied the field, after `input` and `change`.
64850
65203
  * - `input`: Fired after the value changes.
64851
65204
  *
64852
65205
  * ## Slots
64853
65206
  *
64854
65207
  * Areas where markup can be added to the component.
64855
65208
  *
65209
+ * - `clear-icon`: Replaces the cross on the clear button, under `clearable`.
64856
65210
  * - `end`: Content after the time, before the trigger, such as a clear button.
64857
65211
  * - `feedback`: The message that says what is wrong with the value.
64858
65212
  * - `hint`: Help under the field.
@@ -64939,6 +65293,7 @@ export type CustomElements = {
64939
65293
  *
64940
65294
  * Custom selectors for styling elements within the component.
64941
65295
  *
65296
+ * - `clear`: The button that empties the field, under `clearable`, while it holds a time.
64942
65297
  * - `control`: The text input.
64943
65298
  * - `feedback`: The message that says what is wrong with the value.
64944
65299
  * - `field`: The box that holds the text and the trigger.
@@ -64984,6 +65339,7 @@ export type CustomElements = {
64984
65339
  * - `picker-option-item-selected`: The row of a chosen time: the one time, or either end of a range.
64985
65340
  * - `picker-option-label`: The option's label.
64986
65341
  * - `picker-option-text`: The label and the caption, as one column.
65342
+ * - `range-separator`: The dash between a range's two rows of segments, in `segmented`, beside `literal`.
64987
65343
  * - `rest`: The count of times held beyond the ones shown. A `<button>` with `expandable`, and a `<span>` without it.
64988
65344
  * - `segment`: One part of the time, an hour, a minute, a second or AM and PM, in `segmented`.
64989
65345
  * - `segment-placeholder`: A segment with nothing in it yet. Applied with `segment`.
@@ -65004,6 +65360,7 @@ export type CustomElements = {
65004
65360
  *
65005
65361
  * These can be used to apply styling when a component is in a given state.
65006
65362
  *
65363
+ * - `blank`: The field holds no time.
65007
65364
  * - `invalid`: The control has an error to show, from the browser's validation or from your `feedback`.
65008
65365
  * - `open`: While the clock is open.
65009
65366
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -65259,6 +65616,12 @@ export type CustomElements = {
65259
65616
  *
65260
65617
  * Methods that can be called to access component functionality.
65261
65618
  *
65619
+ * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
65620
+ * where there is no `default-value`.
65621
+ *
65622
+ * Both halves are dropped, the consumer's and the control's, because a
65623
+ * reset means the form is as it was served. Clearing only the internal one
65624
+ * would leave a control that had been written to stuck at that value.
65262
65625
  * - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
65263
65626
  *
65264
65627
  * Announces before it acts, so `preventDefault()` on the `helix-before-change` is
@@ -65266,12 +65629,6 @@ export type CustomElements = {
65266
65629
  * itself, whether or not a consumer declared `value`: a declared property
65267
65630
  * is a seed and a correction, the way `<input value>` is, and a consumer
65268
65631
  * who wants the change for themselves refuses it and assigns their own.
65269
- * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
65270
- * where there is no `default-value`.
65271
- *
65272
- * Both halves are dropped, the consumer's and the control's, because a
65273
- * reset means the form is as it was served. Clearing only the internal one
65274
- * would leave a control that had been written to stuck at that value.
65275
65632
  * - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
65276
65633
  *
65277
65634
  * Falling back to what the markup declared rather than to empty, because
@@ -65393,7 +65750,7 @@ export type CustomElements = {
65393
65750
  * - `list-loading`: The text shown while the options load.
65394
65751
  * - `list-search`: The region that holds the filter field.
65395
65752
  * - `list-search-field`: The filter field.
65396
- * - `option`: One time in the list. It carries `data-between` inside a range.
65753
+ * - `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.
65397
65754
  * - `option-between`: A time inside a chosen range, excluding its ends, beside `option`.
65398
65755
  * - `option-description`: The caption under the time's label, when there is one.
65399
65756
  * - `option-item`: The row.
@@ -65407,7 +65764,8 @@ export type CustomElements = {
65407
65764
  * These can be used to apply styling when a component is in a given state.
65408
65765
  *
65409
65766
  * - `blank`: While no time is chosen.
65410
- * - `invalid`: While `invalid` is set or `feedback` says what is wrong.
65767
+ * - `invalid`: While `invalid` is set, `feedback` says what is wrong, or the list carries `aria-invalid`.
65768
+ * - `range-pending`: While a `range` holds its first time and waits for the second.
65411
65769
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
65412
65770
  */
65413
65771
  "helix-time-picker": Partial<
@@ -65962,6 +66320,11 @@ export type CustomElements = {
65962
66320
  * and this one was the English a form in another language still spoke in
65963
66321
  * the bubble it raises on submit: `feedback` replaces the message under
65964
66322
  * the field and does not reach that one.
66323
+ * - `allow-empty-selection`/`allowEmptySelection`: Whether a press on the chosen item, or Space or Enter on it, takes it
66324
+ * back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
66325
+ * Radix's `ToggleGroup` do in a single group. Absent, a single group always
66326
+ * keeps its choice once it has one, as a radio group does. A multiple group
66327
+ * releases a pressed item either way.
65965
66328
  * - `label-placement`/`labelPlacement`: Where the group's label sits. `start` puts it on the track's line.
65966
66329
  *
65967
66330
  * Absent is above, which is what a field looks like and what almost every
@@ -66282,7 +66645,7 @@ export type CustomElements = {
66282
66645
  *
66283
66646
  * These can be used to apply styling when a component is in a given state.
66284
66647
  *
66285
- * - `pressed`: The item is pressed, in a group where several can be.
66648
+ * - `pressed`: The item is pressed, on its own or in a group where several can be.
66286
66649
  * - `selected`: The item is chosen.
66287
66650
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
66288
66651
  */
@@ -74306,6 +74669,12 @@ export type CustomElementsSolidJs = {
74306
74669
  *
74307
74670
  * Methods that can be called to access component functionality.
74308
74671
  *
74672
+ * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
74673
+ * where there is no `default-value`.
74674
+ *
74675
+ * Both halves are dropped, the consumer's and the control's, because a
74676
+ * reset means the form is as it was served. Clearing only the internal one
74677
+ * would leave a control that had been written to stuck at that value.
74309
74678
  * - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
74310
74679
  *
74311
74680
  * Announces before it acts, so `preventDefault()` on the `helix-before-change` is
@@ -74313,12 +74682,6 @@ export type CustomElementsSolidJs = {
74313
74682
  * itself, whether or not a consumer declared `value`: a declared property
74314
74683
  * is a seed and a correction, the way `<input value>` is, and a consumer
74315
74684
  * who wants the change for themselves refuses it and assigns their own.
74316
- * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
74317
- * where there is no `default-value`.
74318
- *
74319
- * Both halves are dropped, the consumer's and the control's, because a
74320
- * reset means the form is as it was served. Clearing only the internal one
74321
- * would leave a control that had been written to stuck at that value.
74322
74685
  * - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
74323
74686
  *
74324
74687
  * Falling back to what the markup declared rather than to empty, because
@@ -75743,6 +76106,10 @@ export type CustomElementsSolidJs = {
75743
76106
  * - `incomplete-message`/`incompleteMessage`: What a row of segments reports while some segments are set and others
75744
76107
  * are not, where `bad-input-message` is not set. `{kind}` is `date` or
75745
76108
  * `time`.
76109
+ * - `range-end-label`/`rangeEndLabel`: What a screen reader hears before the segments of a range's second date
76110
+ * or time, after each segment's own name.
76111
+ * - `range-start-label`/`rangeStartLabel`: What a screen reader hears before the segments of a range's first date
76112
+ * or time, after each segment's own name: "month, Start, Stay".
75746
76113
  * - `segmented`: Whether the field is a row of segments, one for each part of the date or
75747
76114
  * time, in place of a line of text.
75748
76115
  *
@@ -75827,27 +76194,39 @@ export type CustomElementsSolidJs = {
75827
76194
  * and this one was the English a form in another language still spoke in
75828
76195
  * the bubble it raises on submit: `feedback` replaces the message under
75829
76196
  * the field and does not reach that one.
75830
- * - `autocomplete`: What the browser may autofill here, as one of the platform's own tokens.
76197
+ * - `autocomplete`: What the browser may autofill here, as one of the platform's own tokens,
76198
+ * such as `bday`.
75831
76199
  *
75832
76200
  * Empty leaves the attribute off, which is the browser's default and is what
75833
76201
  * lets autofill work at all: hardcoding `off` here means a birthday or a
75834
- * postal code can never be filled in for a reader.
75835
- * - `calendar`: The calendar the written date and the calendar's days are in: `gregory`,
75836
- * `buddhist`, `japanese`, `roc`, or `iso8601`.
75837
- *
75838
- * Absent is the locale's own where it is one of the five, and `gregory` for
75839
- * every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
75840
- * every calendar, and a focused field is ISO in every calendar. In
75841
- * `segmented`, the segments are the Gregorian day, month, and year, in the
75842
- * order the locale writes them, or ISO order for `iso8601`.
76202
+ * postal code can never be filled in for a reader. With `segmented`, a
76203
+ * hidden native date input carries it, since no browser fills the segments.
76204
+ * - `calendar`: The calendar the written date, the segments, and the calendar's days are
76205
+ * in: `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, or a calendar
76206
+ * with months of its own that Date Picker's `calendar` names, such as
76207
+ * `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`.
76208
+ *
76209
+ * Absent is the locale's own where its months are the Gregorian months, and
76210
+ * `gregory` for every other, as Date Picker's `calendar` is. The value is
76211
+ * `YYYY-MM-DD` in every calendar, and a focused text field is ISO in every
76212
+ * calendar. In `segmented`, the segments are the day, month, and year as
76213
+ * the calendar counts them, in the order the locale writes them: Mehr 14,
76214
+ * 1405 is month 7 and day 14 of 1405 under `persian`. Under the five with
76215
+ * Gregorian months they are the Gregorian day, month, and year, or ISO order
76216
+ * for `iso8601`.
75843
76217
  * - `calendar-label`/`calendarLabel`: The name of the calendar's grid of days, read by screen readers.
76218
+ * - `clearable`: Whether the field shows a button that empties it, as Input's `clearable`
76219
+ * does. Shown only while the field holds something to clear and is neither
76220
+ * disabled nor read-only.
76221
+ * - `clear-label`/`clearLabel`: The accessible name of the clear button, which shows only an icon.
75844
76222
  * - `date-style`/`dateStyle`: How a date is written in the field: `short` through `full`, or ISO.
75845
76223
  *
75846
76224
  * **The field renders when it is idle and holds the value when it is being
75847
76225
  * edited.** A written date is a rendering, and a document being edited must
75848
76226
  * not be a rendering of something else: `Intl.DateTimeFormat` formats and does
75849
- * not parse, so `4 August 2026` cannot be typed back, and writing a parser per
75850
- * locale is how a field ends up rejecting what it just displayed.
76227
+ * not parse, so a rendering such as `Tuesday, August 4, 2026` is no text to
76228
+ * edit. The field does read a date typed in the locale's order and digits as
76229
+ * you leave it, which covers what a reader types.
75851
76230
  *
75852
76231
  * The way out is not to choose between the two but to separate them in time.
75853
76232
  * Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -75915,6 +76294,9 @@ export type CustomElementsSolidJs = {
75915
76294
  *
75916
76295
  * **The name goes in**, so a row of them is heard as which one each
75917
76296
  * removes rather than as "Remove" said once per date.
76297
+ * - `selection-label`/`selectionLabel`: What a screen reader hears about the dates chosen in the calendar, with
76298
+ * `{kind}`, `{start}`, `{end}` and `{count}` filled in as Date Picker's
76299
+ * `selection-label` says.
75918
76300
  * - `step`: How far apart the selectable dates are, in days.
75919
76301
  *
75920
76302
  * `<input type="date" step>`'s own unit, handed to the calendar this renders
@@ -75922,8 +76304,13 @@ export type CustomElementsSolidJs = {
75922
76304
  * where there is one and from 1 January 1970 where there is not, which is the
75923
76305
  * platform's base.
75924
76306
  * - `step-mismatch-message`/`stepMismatchMessage`: The message shown when a date is not on `step`.
76307
+ * - `time-zone`/`timeZone`: The time zone today is read in, such as `America/New_York`, handed to the
76308
+ * calendar: the day marked today, and the month an empty field opens on.
76309
+ * Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone.
75925
76310
  * - `trigger-label`/`triggerLabel`: The name of the button that opens the calendar, read by screen readers.
75926
76311
  * - `unavailable-message`/`unavailableMessage`: The message shown when `disable-dates` or `disable-days` bars a date.
76312
+ * - `unreadable-message`/`unreadableMessage`: The message for text that is no date, where `bad-input-message` is not
76313
+ * set. `{mode}` is `single`, `range`, or `multiple`.
75927
76314
  * - `year-view-label`/`yearViewLabel`: The name of the calendar's heading where it shows a page of years, with
75928
76315
  * `{heading}` filled in.
75929
76316
  * - `disabled`: Whether the control is disabled and cannot be used.
@@ -76003,12 +76390,14 @@ export type CustomElementsSolidJs = {
76003
76390
  * - `helix-before-change`: Fired before the date changes. Cancelable: call `preventDefault()` to keep the current date.
76004
76391
  * - `helix-before-close`: Fired before the calendar closes. Cancelable: call `preventDefault()` to keep it open.
76005
76392
  * - `helix-before-open`: Fired before the calendar opens. Cancelable: call `preventDefault()` to keep it closed.
76393
+ * - `helix-clear`: Fired after the clear button has emptied the field, after `input` and `change`.
76006
76394
  * - `input`: Fired after the value changes.
76007
76395
  *
76008
76396
  * ## Slots
76009
76397
  *
76010
76398
  * Areas where markup can be added to the component.
76011
76399
  *
76400
+ * - `clear-icon`: Replaces the cross on the clear button, under `clearable`.
76012
76401
  * - `end`: Content after the date, before the trigger, such as a clear button.
76013
76402
  * - `feedback`: The error message under the field.
76014
76403
  * - `hint`: The help text under the field.
@@ -76097,6 +76486,7 @@ export type CustomElementsSolidJs = {
76097
76486
  *
76098
76487
  * Custom selectors for styling elements within the component.
76099
76488
  *
76489
+ * - `clear`: The button that empties the field, under `clearable`, while it holds a date.
76100
76490
  * - `control`: The text input.
76101
76491
  * - `date`: One held date, as a tag, in `multiple`.
76102
76492
  * - `date-cell`: The tag's grid cell, which a tag draws only inside a tag group.
@@ -76138,8 +76528,10 @@ export type CustomElementsSolidJs = {
76138
76528
  * - `picker-periods`: The grid of months or years.
76139
76529
  * - `picker-previous`: The control that moves to the previous month.
76140
76530
  * - `picker-previous-mark`: The icon on the previous month control.
76531
+ * - `picker-selection`: The chosen date or range in words, which screen readers hear when it changes. Drawn for screen readers only.
76141
76532
  * - `picker-week`: One row of days.
76142
76533
  * - `picker-weekday`: A column header naming a day of the week.
76534
+ * - `range-separator`: The dash between a range's two rows of segments, in `segmented`, beside `literal`.
76143
76535
  * - `rest`: The count of dates beyond the ones shown. It is a `<button>` with `expandable` and a `<span>` without it.
76144
76536
  * - `segment`: One part of the date, a year, a month or a day, in `segmented`.
76145
76537
  * - `segment-placeholder`: A segment with nothing in it yet. Applied with `segment`.
@@ -76153,6 +76545,7 @@ export type CustomElementsSolidJs = {
76153
76545
  *
76154
76546
  * These can be used to apply styling when a component is in a given state.
76155
76547
  *
76548
+ * - `blank`: The field holds no date.
76156
76549
  * - `invalid`: The field has an error to show, from the browser's validation or from your `feedback`.
76157
76550
  * - `open`: The calendar is open.
76158
76551
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -76217,14 +76610,16 @@ export type CustomElementsSolidJs = {
76217
76610
  * `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
76218
76611
  * for `fa-IR`.
76219
76612
  *
76220
- * `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
76221
- * `coptic`, and `indian` draw a calendar with months of its own, as React
76222
- * Aria's calendars do: each grid is one of that calendar's months, the
76223
- * Hebrew leap month and Ethiopia's five-day thirteenth month included, and
76224
- * Previous, Next and the page keys move by those months. `month` and
76613
+ * `persian`, `hebrew`, `islamic`, `islamic-umalqura`, `islamic-civil`,
76614
+ * `islamic-tbla`, `islamic-rgsa`, `ethiopic`, `ethioaa`, `coptic`,
76615
+ * `indian`, `chinese`, and `dangi` draw a calendar with months of its own,
76616
+ * as React Aria's calendars do: each grid is one of that calendar's months,
76617
+ * the Hebrew and Chinese leap months and Ethiopia's five-day thirteenth
76618
+ * month included, and Previous, Next and the page keys move by those
76619
+ * months. With `max-view`, the months view shows that calendar's year, of
76620
+ * twelve or thirteen months, and the years view its years. `month` and
76225
76621
  * `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
76226
- * heading stays text, as the months and years views are drawn in Gregorian
76227
- * months only. The value is `YYYY-MM-DD` in every calendar.
76622
+ * value is `YYYY-MM-DD` in every calendar.
76228
76623
  * - `default-month`/`defaultMonth`: The month to open on when `month` is not set.
76229
76624
  * - `disable-dates`/`disableDates`: Dates that cannot be chosen, as `YYYY-MM-DD`, separated by commas or
76230
76625
  * spaces.
@@ -76287,6 +76682,11 @@ export type CustomElementsSolidJs = {
76287
76682
  * value and stays reachable, which is what a form showing a value somebody
76288
76683
  * else set needs.
76289
76684
  * - `required`: Stops the form from submitting while no date is chosen.
76685
+ * - `selection-label`/`selectionLabel`: What a screen reader hears about the chosen dates: the grid's
76686
+ * description, said again whenever the dates change. `{kind}` is `date`,
76687
+ * `start` while a range holds one end, `range`, or `dates` for `multiple`.
76688
+ * `{start}` and `{end}` are dates written in `locale`, and `{count}` is how
76689
+ * many dates are chosen.
76290
76690
  * - `step`: How far apart the selectable dates are, in days.
76291
76691
  *
76292
76692
  * `<input type="date" step>`'s own unit, counted from `min` where there is
@@ -76415,6 +76815,12 @@ export type CustomElementsSolidJs = {
76415
76815
  *
76416
76816
  * Methods that can be called to access component functionality.
76417
76817
  *
76818
+ * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
76819
+ * where there is no `default-value`.
76820
+ *
76821
+ * Both halves are dropped, the consumer's and the control's, because a
76822
+ * reset means the form is as it was served. Clearing only the internal one
76823
+ * would leave a control that had been written to stuck at that value.
76418
76824
  * - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
76419
76825
  *
76420
76826
  * Announces before it acts, so `preventDefault()` on the `helix-before-change` is
@@ -76422,18 +76828,19 @@ export type CustomElementsSolidJs = {
76422
76828
  * itself, whether or not a consumer declared `value`: a declared property
76423
76829
  * is a seed and a correction, the way `<input value>` is, and a consumer
76424
76830
  * who wants the change for themselves refuses it and assigns their own.
76425
- * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
76426
- * where there is no `default-value`.
76427
- *
76428
- * Both halves are dropped, the consumer's and the control's, because a
76429
- * reset means the form is as it was served. Clearing only the internal one
76430
- * would leave a control that had been written to stuck at that value.
76431
76831
  * - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
76432
76832
  *
76433
76833
  * Falling back to what the markup declared rather than to empty, because
76434
76834
  * a restore with no state is a form the browser has nothing recorded for,
76435
76835
  * which is the same situation as a fresh one.
76436
76836
  * - `focus(options?: FocusOptions) => void`: Moves focus to the control, as focusing a native control does.
76837
+ * - `showChosen() => void`: Shows the days again, on the month of the chosen date, with the tab stop
76838
+ * on that date, forgetting the month and the day the reader browsed to.
76839
+ *
76840
+ * Date Input calls it each time its panel opens, which is where the APG
76841
+ * date picker dialog puts focus. Measured before this: from August 4, two
76842
+ * presses of Page Down, Escape, and Down again opened on October 4.
76843
+ * A `month` you set stays until the reader pages away from it.
76437
76844
  * - `formDisabledCallback(disabled: boolean) => void`: Called by the browser when an ancestor fieldset is disabled or enabled.
76438
76845
  *
76439
76846
  * **The argument is the effective state, and taking it whole is what latched
@@ -76483,6 +76890,7 @@ export type CustomElementsSolidJs = {
76483
76890
  * - `--date-picker-feedback-color`: The color of the message under the calendar, while `feedback` is set.
76484
76891
  * - `--date-picker-period-size`: Height of a month or a year in the months and years views, where `max-view` is set.
76485
76892
  * - `--date-picker-range-color`: Band behind the days in a range.
76893
+ * - `--date-picker-range-preview-color`: Band behind the days a waiting range is drawn to, before its second end is chosen.
76486
76894
  * - `--date-picker-row-size`: Height of a week row.
76487
76895
  * - `--date-picker-selected-color`: Fill behind a selected day.
76488
76896
  * - `--date-picker-track-size`: Width of a column, which is what sets the space between days.
@@ -76493,7 +76901,7 @@ export type CustomElementsSolidJs = {
76493
76901
  * Custom selectors for styling elements within the component.
76494
76902
  *
76495
76903
  * - `cell`: One column of a week row. A range is painted on the cells.
76496
- * - `cell-range-end`: The cell of a range's last day, beside `cell`.
76904
+ * - `cell-range-end`: The cell of a range's last day, beside `cell`, or of the day a waiting range is drawn to.
76497
76905
  * - `cell-range-middle`: A cell between a range's ends, beside `cell`.
76498
76906
  * - `cell-range-start`: The cell of a range's first day, beside `cell`.
76499
76907
  * - `day`: The shape inside a cell. A single chosen date is painted on it.
@@ -76519,6 +76927,7 @@ export type CustomElementsSolidJs = {
76519
76927
  * - `periods`: The grid of months or years.
76520
76928
  * - `previous`: The control that moves to the previous month.
76521
76929
  * - `previous-mark`: The glyph on the previous month control, where none is slotted.
76930
+ * - `selection`: The chosen date or range in words, which screen readers hear when it changes. Drawn for screen readers only.
76522
76931
  * - `week`: One row of days.
76523
76932
  * - `weekday`: A column header naming a day of the week. It shows the short name and says the full one.
76524
76933
  *
@@ -76526,7 +76935,11 @@ export type CustomElementsSolidJs = {
76526
76935
  *
76527
76936
  * These can be used to apply styling when a component is in a given state.
76528
76937
  *
76529
- * - `invalid`: While `invalid` is set or `feedback` says what is wrong.
76938
+ * - `blank`: While no date is chosen.
76939
+ * - `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.
76940
+ * - `month-view`: While the months of a year are shown, where `max-view` is set.
76941
+ * - `range-pending`: While a `range` holds its first end and waits for the second.
76942
+ * - `year-view`: While a page of years is shown, where `max-view` is `year`.
76530
76943
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
76531
76944
  */
76532
76945
  "helix-date-picker": Partial<
@@ -79127,12 +79540,14 @@ export type CustomElementsSolidJs = {
79127
79540
  * Component attributes and properties that can be applied to the element or by using JavaScript.
79128
79541
  *
79129
79542
  * - `calendar`: The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
79130
- * `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
79131
- *
79132
- * Absent is the locale's own where it is one of the five, such as
79133
- * `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
79134
- * for `fa-IR`, so a date written here reads as the same date a Date Picker
79135
- * beside it shows.
79543
+ * `roc`, or `iso8601`, or a calendar with months of its own, such as
79544
+ * `persian`, `hebrew`, `islamic-umalqura`, `ethiopic`, or `chinese`: every
79545
+ * calendar Date Picker and Date Input draw.
79546
+ *
79547
+ * Absent is the locale's own where its months are the Gregorian months,
79548
+ * such as `buddhist` for `th-TH`, and `gregory` for every other, such as
79549
+ * `persian` for `fa-IR`, so a date written here reads as the same date a
79550
+ * Date Picker beside it shows. Write `calendar="persian"` for Mehr 14, 1405.
79136
79551
  * - `date`: The timestamp, in any format `Date` can parse.
79137
79552
  *
79138
79553
  * An ISO string is what an API sends and what `<time datetime>` takes, so it
@@ -79151,6 +79566,9 @@ export type CustomElementsSolidJs = {
79151
79566
  * - `date-style`/`dateStyle`: The locale's own pattern for the date: `full`, `long`, `medium`, or
79152
79567
  * `short`. Set, it stands in for `weekday`, `day`, `month`, `year` and `era`.
79153
79568
  * - `day`: How the day of the month is written, where a date is shown.
79569
+ * - `day-period`/`dayPeriod`: Writes the part of the day in words, such as "in the morning" or "at
79570
+ * night", in its `long`, `short`, or `narrow` form, where `hour` is on a
79571
+ * twelve-hour clock.
79154
79572
  * - `elapsed`: Shows how long ago the timestamp was, in a compact form such as "3h", in
79155
79573
  * place of the date.
79156
79574
  *
@@ -79165,6 +79583,8 @@ export type CustomElementsSolidJs = {
79165
79583
  * Off by default, which draws the date as one run of text, as Shoelace and
79166
79584
  * Web Awesome do. An `elapsed` or `relative` reading is one phrase either
79167
79585
  * way.
79586
+ * - `fractional-second-digits`/`fractionalSecondDigits`: How many digits of a fraction of a second to write after `second`: 1, 2,
79587
+ * or 3, as in 09:41:07.250.
79168
79588
  * - `frozen`: Draws an `elapsed` or `relative` reading once and leaves it, where it
79169
79589
  * would otherwise move on as it goes stale.
79170
79590
  *
@@ -79202,7 +79622,9 @@ export type CustomElementsSolidJs = {
79202
79622
  * - `time-zone`/`timeZone`: The time zone to read the timestamp in.
79203
79623
  *
79204
79624
  * Empty is the runtime's own.
79205
- * - `time-zone-name`/`timeZoneName`: Shows the name of the time zone, in its `long` or `short` form.
79625
+ * - `time-zone-name`/`timeZoneName`: Shows the name of the time zone: `long` or `short`, as Pacific Daylight
79626
+ * Time or PDT, `longOffset` or `shortOffset`, as GMT-07:00 or GMT-7, or
79627
+ * `longGeneric` or `shortGeneric`, as Pacific Time or PT.
79206
79628
  * - `weekday`: How the weekday is written, where one is shown.
79207
79629
  * - `year`: How the year is written, where a date is shown.
79208
79630
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
@@ -79233,6 +79655,7 @@ export type CustomElementsSolidJs = {
79233
79655
  * - `day`: The day of the month, with `fields`.
79234
79656
  * - `day-period`: AM or PM, or the locale's word for the part of the day, with `fields`.
79235
79657
  * - `era`: The era, such as AD, with `fields` and `era`.
79658
+ * - `fractional-second`: The fraction of a second, with `fields` and `fractional-second-digits`.
79236
79659
  * - `hour`: The hour, with `fields`.
79237
79660
  * - `minute`: The minute, with `fields`.
79238
79661
  * - `month`: The month, with `fields`.
@@ -85038,6 +85461,7 @@ export type CustomElementsSolidJs = {
85038
85461
  * - `time-day`: Format Date's `day`, forwarded for a time drawn as fields. An elapsed time draws none.
85039
85462
  * - `time-day-period`: Format Date's `day-period`, forwarded for a time drawn as fields. An elapsed time draws none.
85040
85463
  * - `time-era`: Format Date's `era`, forwarded for a time drawn as fields. An elapsed time draws none.
85464
+ * - `time-fractional-second`: Format Date's `fractional-second`, forwarded for a time drawn as fields. An elapsed time draws none.
85041
85465
  * - `time-hour`: Format Date's `hour`, forwarded for a time drawn as fields. An elapsed time draws none.
85042
85466
  * - `time-minute`: Format Date's `minute`, forwarded for a time drawn as fields. An elapsed time draws none.
85043
85467
  * - `time-month`: Format Date's `month`, forwarded for a time drawn as fields. An elapsed time draws none.
@@ -90214,6 +90638,9 @@ export type CustomElementsSolidJs = {
90214
90638
  * - `origin`: Where a single thumb's fill starts: `start` at `min`, `center` at the
90215
90639
  * middle of the track, or `end` at `max`. Absent is `start`. A range fills
90216
90640
  * between its thumbs and ignores it.
90641
+ * - `page-step`/`pageStep`: How far Page Up and Page Down move a thumb, in the slider's own units, as
90642
+ * React Aria's `pageSize` and Zag's `largeStep` do. Absent leaves the keys
90643
+ * to the platform, which moves a tenth of the track.
90217
90644
  * - `range`: Adds a second thumb, so the value is a pair.
90218
90645
  *
90219
90646
  * The pair is one string, `"10,50"`, which is what `value` and
@@ -90421,6 +90848,8 @@ export type CustomElementsSolidJs = {
90421
90848
  *
90422
90849
  * These can be used to apply styling when a component is in a given state.
90423
90850
  *
90851
+ * - `dragging`: A thumb is being dragged, by its thumb or from a press on the track.
90852
+ * - `focus-visible`: A thumb has focus that the keyboard brought, where the browser draws a focus ring.
90424
90853
  * - `invalid`: The slider has an error to show, from the browser's validation or from your `feedback`.
90425
90854
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
90426
90855
  */
@@ -93548,6 +93977,10 @@ export type CustomElementsSolidJs = {
93548
93977
  * - `incomplete-message`/`incompleteMessage`: What a row of segments reports while some segments are set and others
93549
93978
  * are not, where `bad-input-message` is not set. `{kind}` is `date` or
93550
93979
  * `time`.
93980
+ * - `range-end-label`/`rangeEndLabel`: What a screen reader hears before the segments of a range's second date
93981
+ * or time, after each segment's own name.
93982
+ * - `range-start-label`/`rangeStartLabel`: What a screen reader hears before the segments of a range's first date
93983
+ * or time, after each segment's own name: "month, Start, Stay".
93551
93984
  * - `segmented`: Whether the field is a row of segments, one for each part of the date or
93552
93985
  * time, in place of a line of text.
93553
93986
  *
@@ -93636,6 +94069,10 @@ export type CustomElementsSolidJs = {
93636
94069
  *
93637
94070
  * Empty leaves the attribute off, which is the browser's default and is what
93638
94071
  * lets autofill work at all.
94072
+ * - `clearable`: Whether the field shows a button that empties it, as Input's `clearable`
94073
+ * does. Shown only while the field holds something to clear and is neither
94074
+ * disabled nor read-only.
94075
+ * - `clear-label`/`clearLabel`: The accessible name of the clear button, which shows only an icon.
93639
94076
  * - `disable-times`/`disableTimes`: Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
93640
94077
  *
93641
94078
  * Handed to the list, which offers them as unavailable, and checked against
@@ -93684,6 +94121,8 @@ export type CustomElementsSolidJs = {
93684
94121
  * never something this element would refuse to read back.
93685
94122
  * - `trigger-label`/`triggerLabel`: The name of the button that opens the list, read by screen readers.
93686
94123
  * - `unavailable-message`/`unavailableMessage`: The message shown when `disable-times` bars a time.
94124
+ * - `unreadable-message`/`unreadableMessage`: The message for text that is no time, where `bad-input-message` is not
94125
+ * set. `{mode}` is `single`, `range`, or `multiple`, and `{shape}` is `HH:mm`, or `HH:mm:ss` with `seconds`.
93687
94126
  * - `variant`: Whether the panel shows one list of times or a column for each part of the
93688
94127
  * time.
93689
94128
  *
@@ -93766,12 +94205,14 @@ export type CustomElementsSolidJs = {
93766
94205
  * - `helix-before-change`: Fired before the time changes. Cancelable: canceling it stops the change and leaves the decision to you.
93767
94206
  * - `helix-before-close`: Fired before the list closes. Cancelable: canceling it keeps the list open and leaves the decision to you.
93768
94207
  * - `helix-before-open`: Fired before the list opens. Cancelable: canceling it keeps the list closed and leaves the decision to you.
94208
+ * - `helix-clear`: Fired after the clear button has emptied the field, after `input` and `change`.
93769
94209
  * - `input`: Fired after the value changes.
93770
94210
  *
93771
94211
  * ## Slots
93772
94212
  *
93773
94213
  * Areas where markup can be added to the component.
93774
94214
  *
94215
+ * - `clear-icon`: Replaces the cross on the clear button, under `clearable`.
93775
94216
  * - `end`: Content after the time, before the trigger, such as a clear button.
93776
94217
  * - `feedback`: The message that says what is wrong with the value.
93777
94218
  * - `hint`: Help under the field.
@@ -93858,6 +94299,7 @@ export type CustomElementsSolidJs = {
93858
94299
  *
93859
94300
  * Custom selectors for styling elements within the component.
93860
94301
  *
94302
+ * - `clear`: The button that empties the field, under `clearable`, while it holds a time.
93861
94303
  * - `control`: The text input.
93862
94304
  * - `feedback`: The message that says what is wrong with the value.
93863
94305
  * - `field`: The box that holds the text and the trigger.
@@ -93903,6 +94345,7 @@ export type CustomElementsSolidJs = {
93903
94345
  * - `picker-option-item-selected`: The row of a chosen time: the one time, or either end of a range.
93904
94346
  * - `picker-option-label`: The option's label.
93905
94347
  * - `picker-option-text`: The label and the caption, as one column.
94348
+ * - `range-separator`: The dash between a range's two rows of segments, in `segmented`, beside `literal`.
93906
94349
  * - `rest`: The count of times held beyond the ones shown. A `<button>` with `expandable`, and a `<span>` without it.
93907
94350
  * - `segment`: One part of the time, an hour, a minute, a second or AM and PM, in `segmented`.
93908
94351
  * - `segment-placeholder`: A segment with nothing in it yet. Applied with `segment`.
@@ -93923,6 +94366,7 @@ export type CustomElementsSolidJs = {
93923
94366
  *
93924
94367
  * These can be used to apply styling when a component is in a given state.
93925
94368
  *
94369
+ * - `blank`: The field holds no time.
93926
94370
  * - `invalid`: The control has an error to show, from the browser's validation or from your `feedback`.
93927
94371
  * - `open`: While the clock is open.
93928
94372
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -94181,6 +94625,12 @@ export type CustomElementsSolidJs = {
94181
94625
  *
94182
94626
  * Methods that can be called to access component functionality.
94183
94627
  *
94628
+ * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
94629
+ * where there is no `default-value`.
94630
+ *
94631
+ * Both halves are dropped, the consumer's and the control's, because a
94632
+ * reset means the form is as it was served. Clearing only the internal one
94633
+ * would leave a control that had been written to stuck at that value.
94184
94634
  * - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
94185
94635
  *
94186
94636
  * Announces before it acts, so `preventDefault()` on the `helix-before-change` is
@@ -94188,12 +94638,6 @@ export type CustomElementsSolidJs = {
94188
94638
  * itself, whether or not a consumer declared `value`: a declared property
94189
94639
  * is a seed and a correction, the way `<input value>` is, and a consumer
94190
94640
  * who wants the change for themselves refuses it and assigns their own.
94191
- * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
94192
- * where there is no `default-value`.
94193
- *
94194
- * Both halves are dropped, the consumer's and the control's, because a
94195
- * reset means the form is as it was served. Clearing only the internal one
94196
- * would leave a control that had been written to stuck at that value.
94197
94641
  * - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
94198
94642
  *
94199
94643
  * Falling back to what the markup declared rather than to empty, because
@@ -94315,7 +94759,7 @@ export type CustomElementsSolidJs = {
94315
94759
  * - `list-loading`: The text shown while the options load.
94316
94760
  * - `list-search`: The region that holds the filter field.
94317
94761
  * - `list-search-field`: The filter field.
94318
- * - `option`: One time in the list. It carries `data-between` inside a range.
94762
+ * - `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.
94319
94763
  * - `option-between`: A time inside a chosen range, excluding its ends, beside `option`.
94320
94764
  * - `option-description`: The caption under the time's label, when there is one.
94321
94765
  * - `option-item`: The row.
@@ -94329,7 +94773,8 @@ export type CustomElementsSolidJs = {
94329
94773
  * These can be used to apply styling when a component is in a given state.
94330
94774
  *
94331
94775
  * - `blank`: While no time is chosen.
94332
- * - `invalid`: While `invalid` is set or `feedback` says what is wrong.
94776
+ * - `invalid`: While `invalid` is set, `feedback` says what is wrong, or the list carries `aria-invalid`.
94777
+ * - `range-pending`: While a `range` holds its first time and waits for the second.
94333
94778
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
94334
94779
  */
94335
94780
  "helix-time-picker": Partial<
@@ -94904,6 +95349,11 @@ export type CustomElementsSolidJs = {
94904
95349
  * and this one was the English a form in another language still spoke in
94905
95350
  * the bubble it raises on submit: `feedback` replaces the message under
94906
95351
  * the field and does not reach that one.
95352
+ * - `allow-empty-selection`/`allowEmptySelection`: Whether a press on the chosen item, or Space or Enter on it, takes it
95353
+ * back so nothing is chosen, as React Aria's `ToggleButtonGroup` and
95354
+ * Radix's `ToggleGroup` do in a single group. Absent, a single group always
95355
+ * keeps its choice once it has one, as a radio group does. A multiple group
95356
+ * releases a pressed item either way.
94907
95357
  * - `label-placement`/`labelPlacement`: Where the group's label sits. `start` puts it on the track's line.
94908
95358
  *
94909
95359
  * Absent is above, which is what a field looks like and what almost every
@@ -95227,7 +95677,7 @@ export type CustomElementsSolidJs = {
95227
95677
  *
95228
95678
  * These can be used to apply styling when a component is in a given state.
95229
95679
  *
95230
- * - `pressed`: The item is pressed, in a group where several can be.
95680
+ * - `pressed`: The item is pressed, on its own or in a group where several can be.
95231
95681
  * - `selected`: The item is chosen.
95232
95682
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
95233
95683
  */
@@ -97999,6 +98449,8 @@ export type CustomCssProperties = {
97999
98449
  "--date-picker-period-size"?: (string) | undefined;
98000
98450
  /** Band behind the days in a range. */
98001
98451
  "--date-picker-range-color"?: (string) | undefined;
98452
+ /** Band behind the days a waiting range is drawn to, before its second end is chosen. */
98453
+ "--date-picker-range-preview-color"?: (string) | undefined;
98002
98454
  /** Height of a week row. */
98003
98455
  "--date-picker-row-size"?: (string) | undefined;
98004
98456
  /** Fill behind a selected day. */