@fusion.dev/helix 0.158.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
@@ -1024,6 +1024,15 @@ export type HelixAppHeaderElementEvent<E = Event> = TypedEvent<
1024
1024
  HelixAppHeader,
1025
1025
  E
1026
1026
  >;
1027
+ /** `toggle` event type */
1028
+ export type HelixAppHeaderToggleElementEvent =
1029
+ HelixAppHeaderElementEvent<ToggleEvent>;
1030
+ /** `helix-before-close` event type */
1031
+ export type HelixAppHeaderHelixBeforeCloseElementEvent =
1032
+ HelixAppHeaderElementEvent<HelixBeforeCloseEvent>;
1033
+ /** `helix-before-open` event type */
1034
+ export type HelixAppHeaderHelixBeforeOpenElementEvent =
1035
+ HelixAppHeaderElementEvent<HelixBeforeOpenEvent>;
1027
1036
  /** `helix-scrolled` event type */
1028
1037
  export type HelixAppHeaderHelixScrolledElementEvent =
1029
1038
  HelixAppHeaderElementEvent<HelixScrolledEvent>;
@@ -1081,6 +1090,23 @@ It pairs with `material`: a bar that does not stick is only ever over the
1081
1090
  top of the page, so `glass` and `transparent` have nothing to be
1082
1091
  translucent against and the `scrolled` state never lands. */
1083
1092
  sticky?: (HelixAppHeader["sticky"]) | undefined;
1093
+ /** Whether the element starts open. Ignored once `open` is written. */
1094
+ "default-open"?: (HelixAppHeader["defaultOpen"]) | undefined;
1095
+ /** Whether the element starts open. Ignored once `open` is written. */
1096
+ defaultOpen?: (HelixAppHeader["defaultOpen"]) | undefined;
1097
+ /** Whether the element is open.
1098
+
1099
+ One property, not two, so `dialog.open` answers the question anyone
1100
+ asking it meant. Writing always applies; `<helix-dialog open>` is the
1101
+ same statement in markup.
1102
+
1103
+ **Not reflected, and that is required rather than tidy.** Reflection
1104
+ writes the resolved state back as an attribute, so an element that opened
1105
+ itself would put `open` on its own host: cloned, serialized for
1106
+ hydration, or diffed by a framework, it comes back holding whatever the
1107
+ last reader did rather than what the author wrote. `:state(open)` carries
1108
+ the resolved state for stylesheets, which is what the mirror is for. */
1109
+ open?: (HelixAppHeader["open"]) | undefined;
1084
1110
  /** Where the middle region sits in the bar.
1085
1111
 
1086
1112
  Centered by default, which reads as the site's spine when the navigation is
@@ -1128,7 +1154,29 @@ page scrolls up. */
1128
1154
  /** The id of the element whose scrolling lifts the bar, for an app shell that
1129
1155
  scrolls a container instead of the window. Unset is the window. */
1130
1156
  scroller?: (HelixAppHeader["scroller"]) | undefined;
1131
-
1157
+ /** Where the toggle that opens a folded middle region sits: at the end of the
1158
+ bar, after the trailing content, or with `start`, before the leading
1159
+ content.
1160
+
1161
+ Optional, so the resting bar writes no attribute onto the host. */
1162
+ "toggle-placement"?: (HelixAppHeader["togglePlacement"]) | undefined;
1163
+ /** Where the toggle that opens a folded middle region sits: at the end of the
1164
+ bar, after the trailing content, or with `start`, before the leading
1165
+ content.
1166
+
1167
+ Optional, so the resting bar writes no attribute onto the host. */
1168
+ togglePlacement?: (HelixAppHeader["togglePlacement"]) | undefined;
1169
+
1170
+ /** The folded region opened or closed. The event carries `newState` and `oldState`. */
1171
+ ontoggle?: ((e: HelixAppHeaderToggleElementEvent) => void) | undefined;
1172
+ /** The folded region is about to close. Cancelable: cancel it to keep it open. */
1173
+ "onhelix-before-close"?: ((
1174
+ e: HelixAppHeaderHelixBeforeCloseElementEvent,
1175
+ ) => void) | undefined;
1176
+ /** The folded region is about to open. Cancelable: cancel it to keep it closed. */
1177
+ "onhelix-before-open"?: ((
1178
+ e: HelixAppHeaderHelixBeforeOpenElementEvent,
1179
+ ) => void) | undefined;
1132
1180
  /** Fired when the page crosses the scroll threshold, with the new state. A custom state cannot be observed the way an attribute can, so listen for this event to follow it. The event uses the header's own threshold and hysteresis, so you do not need a second scroll listener. */
1133
1181
  "onhelix-scrolled"?: ((e: HelixAppHeaderHelixScrolledElementEvent) => void) | undefined;
1134
1182
  };
@@ -1186,6 +1234,23 @@ It pairs with `material`: a bar that does not stick is only ever over the
1186
1234
  top of the page, so `glass` and `transparent` have nothing to be
1187
1235
  translucent against and the `scrolled` state never lands. */
1188
1236
  "prop:sticky"?: (HelixAppHeader["sticky"]) | undefined;
1237
+ /** Whether the element starts open. Ignored once `open` is written. */
1238
+ "bool:default-open"?: (HelixAppHeader["defaultOpen"]) | undefined;
1239
+ /** Whether the element starts open. Ignored once `open` is written. */
1240
+ "prop:defaultOpen"?: (HelixAppHeader["defaultOpen"]) | undefined;
1241
+ /** Whether the element is open.
1242
+
1243
+ One property, not two, so `dialog.open` answers the question anyone
1244
+ asking it meant. Writing always applies; `<helix-dialog open>` is the
1245
+ same statement in markup.
1246
+
1247
+ **Not reflected, and that is required rather than tidy.** Reflection
1248
+ writes the resolved state back as an attribute, so an element that opened
1249
+ itself would put `open` on its own host: cloned, serialized for
1250
+ hydration, or diffed by a framework, it comes back holding whatever the
1251
+ last reader did rather than what the author wrote. `:state(open)` carries
1252
+ the resolved state for stylesheets, which is what the mirror is for. */
1253
+ "prop:open"?: (HelixAppHeader["open"]) | undefined;
1189
1254
  /** Where the middle region sits in the bar.
1190
1255
 
1191
1256
  Centered by default, which reads as the site's spine when the navigation is
@@ -1233,6 +1298,28 @@ page scrolls up. */
1233
1298
  /** The id of the element whose scrolling lifts the bar, for an app shell that
1234
1299
  scrolls a container instead of the window. Unset is the window. */
1235
1300
  "prop:scroller"?: (HelixAppHeader["scroller"]) | undefined;
1301
+ /** Where the toggle that opens a folded middle region sits: at the end of the
1302
+ bar, after the trailing content, or with `start`, before the leading
1303
+ content.
1304
+
1305
+ Optional, so the resting bar writes no attribute onto the host. */
1306
+ "attr:toggle-placement"?: (HelixAppHeader["togglePlacement"]) | undefined;
1307
+ /** Where the toggle that opens a folded middle region sits: at the end of the
1308
+ bar, after the trailing content, or with `start`, before the leading
1309
+ content.
1310
+
1311
+ Optional, so the resting bar writes no attribute onto the host. */
1312
+ "prop:togglePlacement"?: (HelixAppHeader["togglePlacement"]) | undefined;
1313
+ /** The folded region opened or closed. The event carries `newState` and `oldState`. */
1314
+ "on:toggle"?: ((e: HelixAppHeaderToggleElementEvent) => void) | undefined;
1315
+ /** The folded region is about to close. Cancelable: cancel it to keep it open. */
1316
+ "on:helix-before-close"?: ((
1317
+ e: HelixAppHeaderHelixBeforeCloseElementEvent,
1318
+ ) => void) | undefined;
1319
+ /** The folded region is about to open. Cancelable: cancel it to keep it closed. */
1320
+ "on:helix-before-open"?: ((
1321
+ e: HelixAppHeaderHelixBeforeOpenElementEvent,
1322
+ ) => void) | undefined;
1236
1323
  /** Fired when the page crosses the scroll threshold, with the new state. A custom state cannot be observed the way an attribute can, so listen for this event to follow it. The event uses the header's own threshold and hysteresis, so you do not need a second scroll listener. */
1237
1324
  "on:helix-scrolled"?: ((e: HelixAppHeaderHelixScrolledElementEvent) => void) | undefined;
1238
1325
 
@@ -3133,6 +3220,14 @@ separate actions. The semantics and the joining are separate questions:
3133
3220
  `role="group"` and a shared name are what make a set of buttons a set, and
3134
3221
  `helix-flex` gives the spacing without the group. */
3135
3222
  variant?: (HelixButtonGroup["variant"]) | undefined;
3223
+ /** Keeps at least one button pressed once one is, as React Aria's
3224
+ `disallowEmptySelection`: a press that would leave none pressed is
3225
+ refused. */
3226
+ "disallow-empty-selection"?: (HelixButtonGroup["disallowEmptySelection"]) | undefined;
3227
+ /** Keeps at least one button pressed once one is, as React Aria's
3228
+ `disallowEmptySelection`: a press that would leave none pressed is
3229
+ refused. */
3230
+ disallowEmptySelection?: (HelixButtonGroup["disallowEmptySelection"]) | undefined;
3136
3231
  /** The group's name, read by screen readers.
3137
3232
 
3138
3233
  On the host through internals, so an author's `aria-label` still overrides
@@ -3198,6 +3293,14 @@ separate actions. The semantics and the joining are separate questions:
3198
3293
  `role="group"` and a shared name are what make a set of buttons a set, and
3199
3294
  `helix-flex` gives the spacing without the group. */
3200
3295
  "prop:variant"?: (HelixButtonGroup["variant"]) | undefined;
3296
+ /** Keeps at least one button pressed once one is, as React Aria's
3297
+ `disallowEmptySelection`: a press that would leave none pressed is
3298
+ refused. */
3299
+ "bool:disallow-empty-selection"?: (HelixButtonGroup["disallowEmptySelection"]) | undefined;
3300
+ /** Keeps at least one button pressed once one is, as React Aria's
3301
+ `disallowEmptySelection`: a press that would leave none pressed is
3302
+ refused. */
3303
+ "prop:disallowEmptySelection"?: (HelixButtonGroup["disallowEmptySelection"]) | undefined;
3201
3304
  /** The group's name, read by screen readers.
3202
3305
 
3203
3306
  On the host through internals, so an author's `aria-label` still overrides
@@ -11409,6 +11512,9 @@ export type HelixDateInputHelixBeforeCloseElementEvent =
11409
11512
  /** `helix-before-open` event type */
11410
11513
  export type HelixDateInputHelixBeforeOpenElementEvent =
11411
11514
  HelixDateInputElementEvent<HelixBeforeOpenEvent>;
11515
+ /** `helix-clear` event type */
11516
+ export type HelixDateInputHelixClearElementEvent =
11517
+ HelixDateInputElementEvent<HelixClearEvent>;
11412
11518
 
11413
11519
  export type HelixDateInputProps = {
11414
11520
  /** What a row of segments reports when the field is required and every
@@ -11433,6 +11539,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
11433
11539
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
11434
11540
  `time`. */
11435
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;
11436
11554
  /** Whether the field is a row of segments, one for each part of the date or
11437
11555
  time, in place of a line of text.
11438
11556
 
@@ -11597,32 +11715,48 @@ and this one was the English a form in another language still spoke in
11597
11715
  the bubble it raises on submit: `feedback` replaces the message under
11598
11716
  the field and does not reach that one. */
11599
11717
  valueMissingMessage?: (HelixDateInput["valueMissingMessage"]) | undefined;
11600
- /** 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`.
11601
11720
 
11602
11721
  Empty leaves the attribute off, which is the browser's default and is what
11603
11722
  lets autofill work at all: hardcoding `off` here means a birthday or a
11604
- 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. */
11605
11725
  autocomplete?: (HelixDateInput["autocomplete"]) | undefined;
11606
- /** The calendar the written date and the calendar's days are in: `gregory`,
11607
- `buddhist`, `japanese`, `roc`, or `iso8601`.
11608
-
11609
- Absent is the locale's own where it is one of the five, and `gregory` for
11610
- every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
11611
- every calendar, and a focused field is ISO in every calendar. In
11612
- `segmented`, the segments are the Gregorian day, month, and year, in the
11613
- 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`. */
11614
11739
  calendar?: (HelixDateInput["calendar"]) | undefined;
11615
11740
  /** The name of the calendar's grid of days, read by screen readers. */
11616
11741
  "calendar-label"?: (HelixDateInput["calendarLabel"]) | undefined;
11617
11742
  /** The name of the calendar's grid of days, read by screen readers. */
11618
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;
11619
11752
  /** How a date is written in the field: `short` through `full`, or ISO.
11620
11753
 
11621
11754
  **The field renders when it is idle and holds the value when it is being
11622
11755
  edited.** A written date is a rendering, and a document being edited must
11623
11756
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
11624
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
11625
- 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.
11626
11760
 
11627
11761
  The way out is not to choose between the two but to separate them in time.
11628
11762
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -11644,8 +11778,9 @@ submits and what `min` and `max` compare against. */
11644
11778
  **The field renders when it is idle and holds the value when it is being
11645
11779
  edited.** A written date is a rendering, and a document being edited must
11646
11780
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
11647
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
11648
- 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.
11649
11784
 
11650
11785
  The way out is not to choose between the two but to separate them in time.
11651
11786
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -11783,6 +11918,14 @@ the date.
11783
11918
  **The name goes in**, so a row of them is heard as which one each
11784
11919
  removes rather than as "Remove" said once per date. */
11785
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;
11786
11929
  /** How far apart the selectable dates are, in days.
11787
11930
 
11788
11931
  `<input type="date" step>`'s own unit, handed to the calendar this renders
@@ -11794,6 +11937,14 @@ platform's base. */
11794
11937
  "step-mismatch-message"?: (HelixDateInput["stepMismatchMessage"]) | undefined;
11795
11938
  /** The message shown when a date is not on `step`. */
11796
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;
11797
11948
  /** The name of the button that opens the calendar, read by screen readers. */
11798
11949
  "trigger-label"?: (HelixDateInput["triggerLabel"]) | undefined;
11799
11950
  /** The name of the button that opens the calendar, read by screen readers. */
@@ -11802,6 +11953,12 @@ platform's base. */
11802
11953
  "unavailable-message"?: (HelixDateInput["unavailableMessage"]) | undefined;
11803
11954
  /** The message shown when `disable-dates` or `disable-days` bars a date. */
11804
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;
11805
11962
  /** The name of the calendar's heading where it shows a page of years, with
11806
11963
  `{heading}` filled in. */
11807
11964
  "year-view-label"?: (HelixDateInput["yearViewLabel"]) | undefined;
@@ -11873,6 +12030,8 @@ reader makes in one of these. */
11873
12030
  "onhelix-before-open"?: ((
11874
12031
  e: HelixDateInputHelixBeforeOpenElementEvent,
11875
12032
  ) => void) | undefined;
12033
+ /** Fired after the clear button has emptied the field, after `input` and `change`. */
12034
+ "onhelix-clear"?: ((e: HelixDateInputHelixClearElementEvent) => void) | undefined;
11876
12035
  /** Fired after the value changes. */
11877
12036
  oninput?: ((e: HelixDateInputElementEvent) => void) | undefined;
11878
12037
  };
@@ -11900,6 +12059,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
11900
12059
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
11901
12060
  `time`. */
11902
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;
11903
12074
  /** Whether the field is a row of segments, one for each part of the date or
11904
12075
  time, in place of a line of text.
11905
12076
 
@@ -12064,32 +12235,48 @@ and this one was the English a form in another language still spoke in
12064
12235
  the bubble it raises on submit: `feedback` replaces the message under
12065
12236
  the field and does not reach that one. */
12066
12237
  "prop:valueMissingMessage"?: (HelixDateInput["valueMissingMessage"]) | undefined;
12067
- /** 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`.
12068
12240
 
12069
12241
  Empty leaves the attribute off, which is the browser's default and is what
12070
12242
  lets autofill work at all: hardcoding `off` here means a birthday or a
12071
- 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. */
12072
12245
  "prop:autocomplete"?: (HelixDateInput["autocomplete"]) | undefined;
12073
- /** The calendar the written date and the calendar's days are in: `gregory`,
12074
- `buddhist`, `japanese`, `roc`, or `iso8601`.
12075
-
12076
- Absent is the locale's own where it is one of the five, and `gregory` for
12077
- every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
12078
- every calendar, and a focused field is ISO in every calendar. In
12079
- `segmented`, the segments are the Gregorian day, month, and year, in the
12080
- 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`. */
12081
12259
  "prop:calendar"?: (HelixDateInput["calendar"]) | undefined;
12082
12260
  /** The name of the calendar's grid of days, read by screen readers. */
12083
12261
  "attr:calendar-label"?: (HelixDateInput["calendarLabel"]) | undefined;
12084
12262
  /** The name of the calendar's grid of days, read by screen readers. */
12085
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;
12086
12272
  /** How a date is written in the field: `short` through `full`, or ISO.
12087
12273
 
12088
12274
  **The field renders when it is idle and holds the value when it is being
12089
12275
  edited.** A written date is a rendering, and a document being edited must
12090
12276
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
12091
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
12092
- 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.
12093
12280
 
12094
12281
  The way out is not to choose between the two but to separate them in time.
12095
12282
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -12111,8 +12298,9 @@ submits and what `min` and `max` compare against. */
12111
12298
  **The field renders when it is idle and holds the value when it is being
12112
12299
  edited.** A written date is a rendering, and a document being edited must
12113
12300
  not be a rendering of something else: `Intl.DateTimeFormat` formats and does
12114
- not parse, so `4 August 2026` cannot be typed back, and writing a parser per
12115
- 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.
12116
12304
 
12117
12305
  The way out is not to choose between the two but to separate them in time.
12118
12306
  Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -12250,6 +12438,14 @@ the date.
12250
12438
  **The name goes in**, so a row of them is heard as which one each
12251
12439
  removes rather than as "Remove" said once per date. */
12252
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;
12253
12449
  /** How far apart the selectable dates are, in days.
12254
12450
 
12255
12451
  `<input type="date" step>`'s own unit, handed to the calendar this renders
@@ -12261,6 +12457,14 @@ platform's base. */
12261
12457
  "attr:step-mismatch-message"?: (HelixDateInput["stepMismatchMessage"]) | undefined;
12262
12458
  /** The message shown when a date is not on `step`. */
12263
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;
12264
12468
  /** The name of the button that opens the calendar, read by screen readers. */
12265
12469
  "attr:trigger-label"?: (HelixDateInput["triggerLabel"]) | undefined;
12266
12470
  /** The name of the button that opens the calendar, read by screen readers. */
@@ -12269,6 +12473,12 @@ platform's base. */
12269
12473
  "attr:unavailable-message"?: (HelixDateInput["unavailableMessage"]) | undefined;
12270
12474
  /** The message shown when `disable-dates` or `disable-days` bars a date. */
12271
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;
12272
12482
  /** The name of the calendar's heading where it shows a page of years, with
12273
12483
  `{heading}` filled in. */
12274
12484
  "attr:year-view-label"?: (HelixDateInput["yearViewLabel"]) | undefined;
@@ -12339,6 +12549,8 @@ reader makes in one of these. */
12339
12549
  "on:helix-before-open"?: ((
12340
12550
  e: HelixDateInputHelixBeforeOpenElementEvent,
12341
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;
12342
12554
  /** Fired after the value changes. */
12343
12555
  "on:input"?: ((e: HelixDateInputElementEvent) => void) | undefined;
12344
12556
 
@@ -12413,14 +12625,16 @@ it is one of the five, such as `buddhist` for `th-TH` or `japanese` for
12413
12625
  `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
12414
12626
  for `fa-IR`.
12415
12627
 
12416
- `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
12417
- `coptic`, and `indian` draw a calendar with months of its own, as React
12418
- Aria's calendars do: each grid is one of that calendar's months, the
12419
- Hebrew leap month and Ethiopia's five-day thirteenth month included, and
12420
- 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
12421
12636
  `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
12422
- heading stays text, as the months and years views are drawn in Gregorian
12423
- months only. The value is `YYYY-MM-DD` in every calendar. */
12637
+ value is `YYYY-MM-DD` in every calendar. */
12424
12638
  calendar?: (HelixDatePicker["calendar"]) | undefined;
12425
12639
  /** The month to open on when `month` is not set. */
12426
12640
  "default-month"?: (HelixDatePicker["defaultMonth"]) | undefined;
@@ -12567,6 +12781,18 @@ else set needs. */
12567
12781
  readOnly?: (HelixDatePicker["readOnly"]) | undefined;
12568
12782
  /** Stops the form from submitting while no date is chosen. */
12569
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;
12570
12796
  /** How far apart the selectable dates are, in days.
12571
12797
 
12572
12798
  `<input type="date" step>`'s own unit, counted from `min` where there is
@@ -12744,14 +12970,16 @@ it is one of the five, such as `buddhist` for `th-TH` or `japanese` for
12744
12970
  `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
12745
12971
  for `fa-IR`.
12746
12972
 
12747
- `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
12748
- `coptic`, and `indian` draw a calendar with months of its own, as React
12749
- Aria's calendars do: each grid is one of that calendar's months, the
12750
- Hebrew leap month and Ethiopia's five-day thirteenth month included, and
12751
- 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
12752
12981
  `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
12753
- heading stays text, as the months and years views are drawn in Gregorian
12754
- months only. The value is `YYYY-MM-DD` in every calendar. */
12982
+ value is `YYYY-MM-DD` in every calendar. */
12755
12983
  "prop:calendar"?: (HelixDatePicker["calendar"]) | undefined;
12756
12984
  /** The month to open on when `month` is not set. */
12757
12985
  "attr:default-month"?: (HelixDatePicker["defaultMonth"]) | undefined;
@@ -12898,6 +13126,18 @@ else set needs. */
12898
13126
  "prop:readOnly"?: (HelixDatePicker["readOnly"]) | undefined;
12899
13127
  /** Stops the form from submitting while no date is chosen. */
12900
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;
12901
13141
  /** How far apart the selectable dates are, in days.
12902
13142
 
12903
13143
  `<input type="date" step>`'s own unit, counted from `min` where there is
@@ -15844,12 +16084,14 @@ each new line above the one before. */
15844
16084
 
15845
16085
  export type HelixFormatDateProps = {
15846
16086
  /** The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
15847
- `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
15848
-
15849
- Absent is the locale's own where it is one of the five, such as
15850
- `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
15851
- for `fa-IR`, so a date written here reads as the same date a Date Picker
15852
- 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. */
15853
16095
  calendar?: (HelixFormatDate["calendar"]) | undefined;
15854
16096
  /** The timestamp, in any format `Date` can parse.
15855
16097
 
@@ -15875,6 +16117,14 @@ browser may use either. */
15875
16117
  dateStyle?: (HelixFormatDate["dateStyle"]) | undefined;
15876
16118
  /** How the day of the month is written, where a date is shown. */
15877
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;
15878
16128
  /** Shows how long ago the timestamp was, in a compact form such as "3h", in
15879
16129
  place of the date.
15880
16130
 
@@ -15892,6 +16142,12 @@ Off by default, which draws the date as one run of text, as Shoelace and
15892
16142
  Web Awesome do. An `elapsed` or `relative` reading is one phrase either
15893
16143
  way. */
15894
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;
15895
16151
  /** Draws an `elapsed` or `relative` reading once and leaves it, where it
15896
16152
  would otherwise move on as it goes stale.
15897
16153
 
@@ -15954,9 +16210,13 @@ Empty is the runtime's own. */
15954
16210
 
15955
16211
  Empty is the runtime's own. */
15956
16212
  timeZone?: (HelixFormatDate["timeZone"]) | undefined;
15957
- /** 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. */
15958
16216
  "time-zone-name"?: (HelixFormatDate["timeZoneName"]) | undefined;
15959
- /** 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. */
15960
16220
  timeZoneName?: (HelixFormatDate["timeZoneName"]) | undefined;
15961
16221
  /** How the weekday is written, where one is shown. */
15962
16222
  weekday?: (HelixFormatDate["weekday"]) | undefined;
@@ -15966,12 +16226,14 @@ Empty is the runtime's own. */
15966
16226
 
15967
16227
  export type HelixFormatDateSolidJsProps = {
15968
16228
  /** The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
15969
- `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
15970
-
15971
- Absent is the locale's own where it is one of the five, such as
15972
- `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
15973
- for `fa-IR`, so a date written here reads as the same date a Date Picker
15974
- 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. */
15975
16237
  "prop:calendar"?: (HelixFormatDate["calendar"]) | undefined;
15976
16238
  /** The timestamp, in any format `Date` can parse.
15977
16239
 
@@ -15997,6 +16259,14 @@ browser may use either. */
15997
16259
  "prop:dateStyle"?: (HelixFormatDate["dateStyle"]) | undefined;
15998
16260
  /** How the day of the month is written, where a date is shown. */
15999
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;
16000
16270
  /** Shows how long ago the timestamp was, in a compact form such as "3h", in
16001
16271
  place of the date.
16002
16272
 
@@ -16014,6 +16284,12 @@ Off by default, which draws the date as one run of text, as Shoelace and
16014
16284
  Web Awesome do. An `elapsed` or `relative` reading is one phrase either
16015
16285
  way. */
16016
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;
16017
16293
  /** Draws an `elapsed` or `relative` reading once and leaves it, where it
16018
16294
  would otherwise move on as it goes stale.
16019
16295
 
@@ -16076,9 +16352,13 @@ Empty is the runtime's own. */
16076
16352
 
16077
16353
  Empty is the runtime's own. */
16078
16354
  "prop:timeZone"?: (HelixFormatDate["timeZone"]) | undefined;
16079
- /** 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. */
16080
16358
  "attr:time-zone-name"?: (HelixFormatDate["timeZoneName"]) | undefined;
16081
- /** 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. */
16082
16362
  "prop:timeZoneName"?: (HelixFormatDate["timeZoneName"]) | undefined;
16083
16363
  /** How the weekday is written, where one is shown. */
16084
16364
  "prop:weekday"?: (HelixFormatDate["weekday"]) | undefined;
@@ -30333,6 +30613,14 @@ rather than a thumb sitting on nothing. */
30333
30613
  middle of the track, or `end` at `max`. Absent is `start`. A range fills
30334
30614
  between its thumbs and ignores it. */
30335
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;
30336
30624
  /** Adds a second thumb, so the value is a pair.
30337
30625
 
30338
30626
  The pair is one string, `"10,50"`, which is what `value` and
@@ -30587,6 +30875,14 @@ rather than a thumb sitting on nothing. */
30587
30875
  middle of the track, or `end` at `max`. Absent is `start`. A range fills
30588
30876
  between its thumbs and ignores it. */
30589
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;
30590
30886
  /** Adds a second thumb, so the value is a pair.
30591
30887
 
30592
30888
  The pair is one string, `"10,50"`, which is what `value` and
@@ -33230,7 +33526,16 @@ known by its place among the rows as written. */
33230
33526
  textContent?: (string | number) | undefined;
33231
33527
  };
33232
33528
 
33529
+ /** `HelixTabPanel` component event */
33530
+ export type HelixTabPanelElementEvent<E = Event> = TypedEvent<HelixTabPanel, E>;
33531
+ /** `helix-load` event type */
33532
+ export type HelixTabPanelHelixLoadElementEvent =
33533
+ HelixTabPanelElementEvent<HelixLoadEvent>;
33534
+
33233
33535
  export type HelixTabPanelProps = {
33536
+ /** Whether the panel's content waits in a `<template>` until the panel is
33537
+ first shown. */
33538
+ lazy?: (HelixTabPanel["lazy"]) | undefined;
33234
33539
  /** Whether this panel is the visible one. */
33235
33540
  selected?: (HelixTabPanel["selected"]) | undefined;
33236
33541
  /** Pairs the panel with the tab of the same value. */
@@ -33246,9 +33551,15 @@ written in, and the tab's control is inside the tab's shadow root, which no
33246
33551
  reference from the light DOM can reach. `aria-label` on a `tabpanel` is how
33247
33552
  the pattern names one anyway. */
33248
33553
  label?: (HelixTabPanel["label"]) | undefined;
33554
+
33555
+ /** Fired the first time a `lazy` panel is shown, once its template's content is in. */
33556
+ "onhelix-load"?: ((e: HelixTabPanelHelixLoadElementEvent) => void) | undefined;
33249
33557
  };
33250
33558
 
33251
33559
  export type HelixTabPanelSolidJsProps = {
33560
+ /** Whether the panel's content waits in a `<template>` until the panel is
33561
+ first shown. */
33562
+ "prop:lazy"?: (HelixTabPanel["lazy"]) | undefined;
33252
33563
  /** Whether this panel is the visible one. */
33253
33564
  "prop:selected"?: (HelixTabPanel["selected"]) | undefined;
33254
33565
  /** Pairs the panel with the tab of the same value. */
@@ -33264,6 +33575,8 @@ written in, and the tab's control is inside the tab's shadow root, which no
33264
33575
  reference from the light DOM can reach. `aria-label` on a `tabpanel` is how
33265
33576
  the pattern names one anyway. */
33266
33577
  "prop:label"?: (HelixTabPanel["label"]) | undefined;
33578
+ /** Fired the first time a `lazy` panel is shown, once its template's content is in. */
33579
+ "on:helix-load"?: ((e: HelixTabPanelHelixLoadElementEvent) => void) | undefined;
33267
33580
 
33268
33581
  /** Set the innerHTML of the element */
33269
33582
  innerHTML?: (string) | undefined;
@@ -34492,6 +34805,9 @@ export type HelixTimeInputHelixBeforeCloseElementEvent =
34492
34805
  /** `helix-before-open` event type */
34493
34806
  export type HelixTimeInputHelixBeforeOpenElementEvent =
34494
34807
  HelixTimeInputElementEvent<HelixBeforeOpenEvent>;
34808
+ /** `helix-clear` event type */
34809
+ export type HelixTimeInputHelixClearElementEvent =
34810
+ HelixTimeInputElementEvent<HelixClearEvent>;
34495
34811
 
34496
34812
  export type HelixTimeInputProps = {
34497
34813
  /** What a row of segments reports when the field is required and every
@@ -34516,6 +34832,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
34516
34832
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
34517
34833
  `time`. */
34518
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;
34519
34847
  /** Whether the field is a row of segments, one for each part of the date or
34520
34848
  time, in place of a line of text.
34521
34849
 
@@ -34685,6 +35013,14 @@ the field and does not reach that one. */
34685
35013
  Empty leaves the attribute off, which is the browser's default and is what
34686
35014
  lets autofill work at all. */
34687
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;
34688
35024
  /** Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
34689
35025
 
34690
35026
  Handed to the list, which offers them as unavailable, and checked against
@@ -34788,6 +35124,12 @@ never something this element would refuse to read back. */
34788
35124
  "unavailable-message"?: (HelixTimeInput["unavailableMessage"]) | undefined;
34789
35125
  /** The message shown when `disable-times` bars a time. */
34790
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;
34791
35133
  /** Whether the panel shows one list of times or a column for each part of the
34792
35134
  time.
34793
35135
 
@@ -34857,6 +35199,8 @@ a consumer handing over `new Date()` gets the time of day they expected. */
34857
35199
  "onhelix-before-open"?: ((
34858
35200
  e: HelixTimeInputHelixBeforeOpenElementEvent,
34859
35201
  ) => void) | undefined;
35202
+ /** Fired after the clear button has emptied the field, after `input` and `change`. */
35203
+ "onhelix-clear"?: ((e: HelixTimeInputHelixClearElementEvent) => void) | undefined;
34860
35204
  /** Fired after the value changes. */
34861
35205
  oninput?: ((e: HelixTimeInputElementEvent) => void) | undefined;
34862
35206
  };
@@ -34884,6 +35228,18 @@ are not, where `bad-input-message` is not set. `{kind}` is `date` or
34884
35228
  are not, where `bad-input-message` is not set. `{kind}` is `date` or
34885
35229
  `time`. */
34886
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;
34887
35243
  /** Whether the field is a row of segments, one for each part of the date or
34888
35244
  time, in place of a line of text.
34889
35245
 
@@ -35053,6 +35409,14 @@ the field and does not reach that one. */
35053
35409
  Empty leaves the attribute off, which is the browser's default and is what
35054
35410
  lets autofill work at all. */
35055
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;
35056
35420
  /** Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
35057
35421
 
35058
35422
  Handed to the list, which offers them as unavailable, and checked against
@@ -35156,6 +35520,12 @@ never something this element would refuse to read back. */
35156
35520
  "attr:unavailable-message"?: (HelixTimeInput["unavailableMessage"]) | undefined;
35157
35521
  /** The message shown when `disable-times` bars a time. */
35158
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;
35159
35529
  /** Whether the panel shows one list of times or a column for each part of the
35160
35530
  time.
35161
35531
 
@@ -35224,6 +35594,8 @@ a consumer handing over `new Date()` gets the time of day they expected. */
35224
35594
  "on:helix-before-open"?: ((
35225
35595
  e: HelixTimeInputHelixBeforeOpenElementEvent,
35226
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;
35227
35599
  /** Fired after the value changes. */
35228
35600
  "on:input"?: ((e: HelixTimeInputElementEvent) => void) | undefined;
35229
35601
 
@@ -36146,6 +36518,12 @@ consumer's server markup does not have. A sheet carries the resting
36146
36518
  arrangement in its own `:host` rule and the selectors describe only the
36147
36519
  departures, which is what `orientation` does. */
36148
36520
  placement?: (HelixToast["placement"]) | undefined;
36521
+ /** The edge a touch or a pen swipes a message toward to dismiss it: `end`,
36522
+ the end of the line, or `start`, `top` or `bottom`. Unset is `end`. */
36523
+ "swipe-direction"?: (HelixToast["swipeDirection"]) | undefined;
36524
+ /** The edge a touch or a pen swipes a message toward to dismiss it: `end`,
36525
+ the end of the line, or `start`, `top` or `bottom`. Unset is `end`. */
36526
+ swipeDirection?: (HelixToast["swipeDirection"]) | undefined;
36149
36527
 
36150
36528
  /** A message is being dismissed, by its control or by its timer. The message sends it, and you can listen for it on the region. Cancelable: canceling it keeps the message. */
36151
36529
  "onhelix-dismiss"?: ((e: HelixToastHelixDismissElementEvent) => void) | undefined;
@@ -36193,6 +36571,12 @@ consumer's server markup does not have. A sheet carries the resting
36193
36571
  arrangement in its own `:host` rule and the selectors describe only the
36194
36572
  departures, which is what `orientation` does. */
36195
36573
  "prop:placement"?: (HelixToast["placement"]) | undefined;
36574
+ /** The edge a touch or a pen swipes a message toward to dismiss it: `end`,
36575
+ the end of the line, or `start`, `top` or `bottom`. Unset is `end`. */
36576
+ "attr:swipe-direction"?: (HelixToast["swipeDirection"]) | undefined;
36577
+ /** The edge a touch or a pen swipes a message toward to dismiss it: `end`,
36578
+ the end of the line, or `start`, `top` or `bottom`. Unset is `end`. */
36579
+ "prop:swipeDirection"?: (HelixToast["swipeDirection"]) | undefined;
36196
36580
  /** A message is being dismissed, by its control or by its timer. The message sends it, and you can listen for it on the region. Cancelable: canceling it keeps the message. */
36197
36581
  "on:helix-dismiss"?: ((e: HelixToastHelixDismissElementEvent) => void) | undefined;
36198
36582
 
@@ -36307,6 +36691,18 @@ and this one was the English a form in another language still spoke in
36307
36691
  the bubble it raises on submit: `feedback` replaces the message under
36308
36692
  the field and does not reach that one. */
36309
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;
36310
36706
  /** Where the group's label sits. `start` puts it on the track's line.
36311
36707
 
36312
36708
  Absent is above, which is what a field looks like and what almost every
@@ -36498,6 +36894,18 @@ and this one was the English a form in another language still spoke in
36498
36894
  the bubble it raises on submit: `feedback` replaces the message under
36499
36895
  the field and does not reach that one. */
36500
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;
36501
36909
  /** Where the group's label sits. `start` puts it on the track's line.
36502
36910
 
36503
36911
  Absent is above, which is what a field looks like and what almost every
@@ -37200,6 +37608,14 @@ The shape is `Carousel`'s, which is the nearest thing in the library: a
37200
37608
  "next-label"?: (HelixTour["nextLabel"]) | undefined;
37201
37609
  /** Label for the control that goes on. */
37202
37610
  nextLabel?: (HelixTour["nextLabel"]) | undefined;
37611
+ /** What a press outside the current stop and its target does while the tour
37612
+ runs. Unset, nothing: the page stays usable. `close` ends the tour, as
37613
+ Skip does, and `block` refuses the press. */
37614
+ "outside-press"?: (HelixTour["outsidePress"]) | undefined;
37615
+ /** What a press outside the current stop and its target does while the tour
37616
+ runs. Unset, nothing: the page stays usable. `close` ends the tour, as
37617
+ Skip does, and `block` refuses the press. */
37618
+ outsidePress?: (HelixTour["outsidePress"]) | undefined;
37203
37619
  /** Draws each stop's place in the run in its panel, as well as saying it. */
37204
37620
  progress?: (HelixTour["progress"]) | undefined;
37205
37621
  /** Each stop's place in the run, with `{index}` and `{count}` filled in and
@@ -37284,6 +37700,14 @@ The shape is `Carousel`'s, which is the nearest thing in the library: a
37284
37700
  "attr:next-label"?: (HelixTour["nextLabel"]) | undefined;
37285
37701
  /** Label for the control that goes on. */
37286
37702
  "prop:nextLabel"?: (HelixTour["nextLabel"]) | undefined;
37703
+ /** What a press outside the current stop and its target does while the tour
37704
+ runs. Unset, nothing: the page stays usable. `close` ends the tour, as
37705
+ Skip does, and `block` refuses the press. */
37706
+ "attr:outside-press"?: (HelixTour["outsidePress"]) | undefined;
37707
+ /** What a press outside the current stop and its target does while the tour
37708
+ runs. Unset, nothing: the page stays usable. `close` ends the tour, as
37709
+ Skip does, and `block` refuses the press. */
37710
+ "prop:outsidePress"?: (HelixTour["outsidePress"]) | undefined;
37287
37711
  /** Draws each stop's place in the run in its panel, as well as saying it. */
37288
37712
  "prop:progress"?: (HelixTour["progress"]) | undefined;
37289
37713
  /** Each stop's place in the run, with `{index}` and `{count}` filled in and
@@ -37376,6 +37800,9 @@ heading. */
37376
37800
  Reflected, because the styled tier places a dialog and a floating panel by
37377
37801
  it, and unset at rest, so no default is written onto the host. */
37378
37802
  type?: (HelixTourStop["type"]) | undefined;
37803
+ /** Run as the tour reaches the stop, before it is shown: see the description
37804
+ above. A function, so it is set from script and has no attribute. */
37805
+ effect?: (HelixTourStop["effect"]) | undefined;
37379
37806
 
37380
37807
  /** Fired when one of the stop's controls is pressed, to move the tour. */
37381
37808
  "onhelix-tour-ask"?: ((e: HelixTourStopHelixTourAskElementEvent) => void) | undefined;
@@ -37426,6 +37853,9 @@ heading. */
37426
37853
  Reflected, because the styled tier places a dialog and a floating panel by
37427
37854
  it, and unset at rest, so no default is written onto the host. */
37428
37855
  "prop:type"?: (HelixTourStop["type"]) | undefined;
37856
+ /** Run as the tour reaches the stop, before it is shown: see the description
37857
+ above. A function, so it is set from script and has no attribute. */
37858
+ "prop:effect"?: (HelixTourStop["effect"]) | undefined;
37429
37859
  /** Fired when one of the stop's controls is pressed, to move the tour. */
37430
37860
  "on:helix-tour-ask"?: ((e: HelixTourStopHelixTourAskElementEvent) => void) | undefined;
37431
37861
 
@@ -40182,6 +40612,19 @@ export type CustomElements = {
40182
40612
  * It pairs with `material`: a bar that does not stick is only ever over the
40183
40613
  * top of the page, so `glass` and `transparent` have nothing to be
40184
40614
  * translucent against and the `scrolled` state never lands.
40615
+ * - `default-open`/`defaultOpen`: Whether the element starts open. Ignored once `open` is written.
40616
+ * - `open`: Whether the element is open.
40617
+ *
40618
+ * One property, not two, so `dialog.open` answers the question anyone
40619
+ * asking it meant. Writing always applies; `<helix-dialog open>` is the
40620
+ * same statement in markup.
40621
+ *
40622
+ * **Not reflected, and that is required rather than tidy.** Reflection
40623
+ * writes the resolved state back as an attribute, so an element that opened
40624
+ * itself would put `open` on its own host: cloned, serialized for
40625
+ * hydration, or diffed by a framework, it comes back holding whatever the
40626
+ * last reader did rather than what the author wrote. `:state(open)` carries
40627
+ * the resolved state for stylesheets, which is what the mirror is for.
40185
40628
  * - `content-align`/`contentAlign`: Where the middle region sits in the bar.
40186
40629
  *
40187
40630
  * Centered by default, which reads as the site's spine when the navigation is
@@ -40202,6 +40645,11 @@ export type CustomElements = {
40202
40645
  * - `menu-label`/`menuLabel`: The name of the toggle that opens a folded middle region.
40203
40646
  * - `scroller`: The id of the element whose scrolling lifts the bar, for an app shell that
40204
40647
  * scrolls a container instead of the window. Unset is the window.
40648
+ * - `toggle-placement`/`togglePlacement`: Where the toggle that opens a folded middle region sits: at the end of the
40649
+ * bar, after the trailing content, or with `start`, before the leading
40650
+ * content.
40651
+ *
40652
+ * Optional, so the resting bar writes no attribute onto the host.
40205
40653
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
40206
40654
  *
40207
40655
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -40227,6 +40675,9 @@ export type CustomElements = {
40227
40675
  *
40228
40676
  * Events that will be emitted by the component.
40229
40677
  *
40678
+ * - `toggle`: The folded region opened or closed. The event carries `newState` and `oldState`.
40679
+ * - `helix-before-close`: The folded region is about to close. Cancelable: cancel it to keep it open.
40680
+ * - `helix-before-open`: The folded region is about to open. Cancelable: cancel it to keep it closed.
40230
40681
  * - `helix-scrolled`: Fired when the page crosses the scroll threshold, with the new state. A custom state cannot be observed the way an attribute can, so listen for this event to follow it. The event uses the header's own threshold and hysteresis, so you do not need a second scroll listener.
40231
40682
  *
40232
40683
  * ## Slots
@@ -40238,6 +40689,20 @@ export type CustomElements = {
40238
40689
  * - `start`: Leading content, usually a wordmark.
40239
40690
  * - `menu-icon`: Replaces the glyph inside the toggle that opens a folded middle region.
40240
40691
  *
40692
+ * ## Methods
40693
+ *
40694
+ * Methods that can be called to access component functionality.
40695
+ *
40696
+ * - `requestOpen(next: boolean) => boolean`: Requests that the element open or close, and returns whether the change
40697
+ * was applied.
40698
+ *
40699
+ * Announces before it acts, so `preventDefault()` on the `helix-before-open` or
40700
+ * `helix-before-close` is a refusal and nothing moves. Nobody refusing means the
40701
+ * element opens or closes itself, whether or not a consumer declared
40702
+ * `open`: a declared property is a seed and a correction, and a consumer
40703
+ * who wants the decision for themselves refuses it and assigns their own.
40704
+ * - `toggleOpen() => boolean`: Requests the opposite of the current state.
40705
+ *
40241
40706
  * ## CSS Custom Properties
40242
40707
  *
40243
40708
  * CSS variables available for styling the component.
@@ -41911,6 +42376,9 @@ export type CustomElements = {
41911
42376
  * separate actions. The semantics and the joining are separate questions:
41912
42377
  * `role="group"` and a shared name are what make a set of buttons a set, and
41913
42378
  * `helix-flex` gives the spacing without the group.
42379
+ * - `disallow-empty-selection`/`disallowEmptySelection`: Keeps at least one button pressed once one is, as React Aria's
42380
+ * `disallowEmptySelection`: a press that would leave none pressed is
42381
+ * refused.
41914
42382
  * - `label`: The group's name, read by screen readers.
41915
42383
  *
41916
42384
  * On the host through internals, so an author's `aria-label` still overrides
@@ -42322,6 +42790,7 @@ export type CustomElements = {
42322
42790
  * These can be used to apply styling when a component is in a given state.
42323
42791
  *
42324
42792
  * - `pending`: The button is pending: `pending` is set. A ring turns over its hidden words.
42793
+ * - `pressed`: A Button Group in a selection mode has this button pressed.
42325
42794
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
42326
42795
  */
42327
42796
  "helix-button": Partial<
@@ -45529,6 +45998,12 @@ export type CustomElements = {
45529
45998
  *
45530
45999
  * Methods that can be called to access component functionality.
45531
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.
45532
46007
  * - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
45533
46008
  *
45534
46009
  * Announces before it acts, so `preventDefault()` on the `helix-before-change` is
@@ -45536,12 +46011,6 @@ export type CustomElements = {
45536
46011
  * itself, whether or not a consumer declared `value`: a declared property
45537
46012
  * is a seed and a correction, the way `<input value>` is, and a consumer
45538
46013
  * who wants the change for themselves refuses it and assigns their own.
45539
- * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
45540
- * where there is no `default-value`.
45541
- *
45542
- * Both halves are dropped, the consumer's and the control's, because a
45543
- * reset means the form is as it was served. Clearing only the internal one
45544
- * would leave a control that had been written to stuck at that value.
45545
46014
  * - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
45546
46015
  *
45547
46016
  * Falling back to what the markup declared rather than to empty, because
@@ -46505,6 +46974,7 @@ export type CustomElements = {
46505
46974
  * - `copied`: The moment after a successful copy, while `copied-label` names the button.
46506
46975
  * - `failed`: The moment after a press that put nothing on the clipboard, while `error-label` names the button.
46507
46976
  * - `pending`: The button is pending: `pending` is set.
46977
+ * - `pressed`: A Button Group in a selection mode has this button pressed.
46508
46978
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
46509
46979
  */
46510
46980
  "helix-copy-button": Partial<
@@ -46950,6 +47420,10 @@ export type CustomElements = {
46950
47420
  * - `incomplete-message`/`incompleteMessage`: What a row of segments reports while some segments are set and others
46951
47421
  * are not, where `bad-input-message` is not set. `{kind}` is `date` or
46952
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".
46953
47427
  * - `segmented`: Whether the field is a row of segments, one for each part of the date or
46954
47428
  * time, in place of a line of text.
46955
47429
  *
@@ -47034,27 +47508,39 @@ export type CustomElements = {
47034
47508
  * and this one was the English a form in another language still spoke in
47035
47509
  * the bubble it raises on submit: `feedback` replaces the message under
47036
47510
  * the field and does not reach that one.
47037
- * - `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`.
47038
47513
  *
47039
47514
  * Empty leaves the attribute off, which is the browser's default and is what
47040
47515
  * lets autofill work at all: hardcoding `off` here means a birthday or a
47041
- * postal code can never be filled in for a reader.
47042
- * - `calendar`: The calendar the written date and the calendar's days are in: `gregory`,
47043
- * `buddhist`, `japanese`, `roc`, or `iso8601`.
47044
- *
47045
- * Absent is the locale's own where it is one of the five, and `gregory` for
47046
- * every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
47047
- * every calendar, and a focused field is ISO in every calendar. In
47048
- * `segmented`, the segments are the Gregorian day, month, and year, in the
47049
- * 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`.
47050
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.
47051
47536
  * - `date-style`/`dateStyle`: How a date is written in the field: `short` through `full`, or ISO.
47052
47537
  *
47053
47538
  * **The field renders when it is idle and holds the value when it is being
47054
47539
  * edited.** A written date is a rendering, and a document being edited must
47055
47540
  * not be a rendering of something else: `Intl.DateTimeFormat` formats and does
47056
- * not parse, so `4 August 2026` cannot be typed back, and writing a parser per
47057
- * 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.
47058
47544
  *
47059
47545
  * The way out is not to choose between the two but to separate them in time.
47060
47546
  * Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -47122,6 +47608,9 @@ export type CustomElements = {
47122
47608
  *
47123
47609
  * **The name goes in**, so a row of them is heard as which one each
47124
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.
47125
47614
  * - `step`: How far apart the selectable dates are, in days.
47126
47615
  *
47127
47616
  * `<input type="date" step>`'s own unit, handed to the calendar this renders
@@ -47129,8 +47618,13 @@ export type CustomElements = {
47129
47618
  * where there is one and from 1 January 1970 where there is not, which is the
47130
47619
  * platform's base.
47131
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.
47132
47624
  * - `trigger-label`/`triggerLabel`: The name of the button that opens the calendar, read by screen readers.
47133
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`.
47134
47628
  * - `year-view-label`/`yearViewLabel`: The name of the calendar's heading where it shows a page of years, with
47135
47629
  * `{heading}` filled in.
47136
47630
  * - `disabled`: Whether the control is disabled and cannot be used.
@@ -47210,12 +47704,14 @@ export type CustomElements = {
47210
47704
  * - `helix-before-change`: Fired before the date changes. Cancelable: call `preventDefault()` to keep the current date.
47211
47705
  * - `helix-before-close`: Fired before the calendar closes. Cancelable: call `preventDefault()` to keep it open.
47212
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`.
47213
47708
  * - `input`: Fired after the value changes.
47214
47709
  *
47215
47710
  * ## Slots
47216
47711
  *
47217
47712
  * Areas where markup can be added to the component.
47218
47713
  *
47714
+ * - `clear-icon`: Replaces the cross on the clear button, under `clearable`.
47219
47715
  * - `end`: Content after the date, before the trigger, such as a clear button.
47220
47716
  * - `feedback`: The error message under the field.
47221
47717
  * - `hint`: The help text under the field.
@@ -47304,6 +47800,7 @@ export type CustomElements = {
47304
47800
  *
47305
47801
  * Custom selectors for styling elements within the component.
47306
47802
  *
47803
+ * - `clear`: The button that empties the field, under `clearable`, while it holds a date.
47307
47804
  * - `control`: The text input.
47308
47805
  * - `date`: One held date, as a tag, in `multiple`.
47309
47806
  * - `date-cell`: The tag's grid cell, which a tag draws only inside a tag group.
@@ -47345,8 +47842,10 @@ export type CustomElements = {
47345
47842
  * - `picker-periods`: The grid of months or years.
47346
47843
  * - `picker-previous`: The control that moves to the previous month.
47347
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.
47348
47846
  * - `picker-week`: One row of days.
47349
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`.
47350
47849
  * - `rest`: The count of dates beyond the ones shown. It is a `<button>` with `expandable` and a `<span>` without it.
47351
47850
  * - `segment`: One part of the date, a year, a month or a day, in `segmented`.
47352
47851
  * - `segment-placeholder`: A segment with nothing in it yet. Applied with `segment`.
@@ -47360,6 +47859,7 @@ export type CustomElements = {
47360
47859
  *
47361
47860
  * These can be used to apply styling when a component is in a given state.
47362
47861
  *
47862
+ * - `blank`: The field holds no date.
47363
47863
  * - `invalid`: The field has an error to show, from the browser's validation or from your `feedback`.
47364
47864
  * - `open`: The calendar is open.
47365
47865
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -47421,14 +47921,16 @@ export type CustomElements = {
47421
47921
  * `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
47422
47922
  * for `fa-IR`.
47423
47923
  *
47424
- * `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
47425
- * `coptic`, and `indian` draw a calendar with months of its own, as React
47426
- * Aria's calendars do: each grid is one of that calendar's months, the
47427
- * Hebrew leap month and Ethiopia's five-day thirteenth month included, and
47428
- * 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
47429
47932
  * `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
47430
- * heading stays text, as the months and years views are drawn in Gregorian
47431
- * months only. The value is `YYYY-MM-DD` in every calendar.
47933
+ * value is `YYYY-MM-DD` in every calendar.
47432
47934
  * - `default-month`/`defaultMonth`: The month to open on when `month` is not set.
47433
47935
  * - `disable-dates`/`disableDates`: Dates that cannot be chosen, as `YYYY-MM-DD`, separated by commas or
47434
47936
  * spaces.
@@ -47491,6 +47993,11 @@ export type CustomElements = {
47491
47993
  * value and stays reachable, which is what a form showing a value somebody
47492
47994
  * else set needs.
47493
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.
47494
48001
  * - `step`: How far apart the selectable dates are, in days.
47495
48002
  *
47496
48003
  * `<input type="date" step>`'s own unit, counted from `min` where there is
@@ -47619,6 +48126,12 @@ export type CustomElements = {
47619
48126
  *
47620
48127
  * Methods that can be called to access component functionality.
47621
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.
47622
48135
  * - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
47623
48136
  *
47624
48137
  * Announces before it acts, so `preventDefault()` on the `helix-before-change` is
@@ -47626,18 +48139,19 @@ export type CustomElements = {
47626
48139
  * itself, whether or not a consumer declared `value`: a declared property
47627
48140
  * is a seed and a correction, the way `<input value>` is, and a consumer
47628
48141
  * who wants the change for themselves refuses it and assigns their own.
47629
- * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
47630
- * where there is no `default-value`.
47631
- *
47632
- * Both halves are dropped, the consumer's and the control's, because a
47633
- * reset means the form is as it was served. Clearing only the internal one
47634
- * would leave a control that had been written to stuck at that value.
47635
48142
  * - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
47636
48143
  *
47637
48144
  * Falling back to what the markup declared rather than to empty, because
47638
48145
  * a restore with no state is a form the browser has nothing recorded for,
47639
48146
  * which is the same situation as a fresh one.
47640
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.
47641
48155
  * - `formDisabledCallback(disabled: boolean) => void`: Called by the browser when an ancestor fieldset is disabled or enabled.
47642
48156
  *
47643
48157
  * **The argument is the effective state, and taking it whole is what latched
@@ -47687,6 +48201,7 @@ export type CustomElements = {
47687
48201
  * - `--date-picker-feedback-color`: The color of the message under the calendar, while `feedback` is set.
47688
48202
  * - `--date-picker-period-size`: Height of a month or a year in the months and years views, where `max-view` is set.
47689
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.
47690
48205
  * - `--date-picker-row-size`: Height of a week row.
47691
48206
  * - `--date-picker-selected-color`: Fill behind a selected day.
47692
48207
  * - `--date-picker-track-size`: Width of a column, which is what sets the space between days.
@@ -47697,7 +48212,7 @@ export type CustomElements = {
47697
48212
  * Custom selectors for styling elements within the component.
47698
48213
  *
47699
48214
  * - `cell`: One column of a week row. A range is painted on the cells.
47700
- * - `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.
47701
48216
  * - `cell-range-middle`: A cell between a range's ends, beside `cell`.
47702
48217
  * - `cell-range-start`: The cell of a range's first day, beside `cell`.
47703
48218
  * - `day`: The shape inside a cell. A single chosen date is painted on it.
@@ -47723,6 +48238,7 @@ export type CustomElements = {
47723
48238
  * - `periods`: The grid of months or years.
47724
48239
  * - `previous`: The control that moves to the previous month.
47725
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.
47726
48242
  * - `week`: One row of days.
47727
48243
  * - `weekday`: A column header naming a day of the week. It shows the short name and says the full one.
47728
48244
  *
@@ -47730,7 +48246,11 @@ export type CustomElements = {
47730
48246
  *
47731
48247
  * These can be used to apply styling when a component is in a given state.
47732
48248
  *
47733
- * - `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`.
47734
48254
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
47735
48255
  */
47736
48256
  "helix-date-picker": Partial<
@@ -50281,12 +50801,14 @@ export type CustomElements = {
50281
50801
  * Component attributes and properties that can be applied to the element or by using JavaScript.
50282
50802
  *
50283
50803
  * - `calendar`: The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
50284
- * `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
50285
- *
50286
- * Absent is the locale's own where it is one of the five, such as
50287
- * `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
50288
- * for `fa-IR`, so a date written here reads as the same date a Date Picker
50289
- * 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.
50290
50812
  * - `date`: The timestamp, in any format `Date` can parse.
50291
50813
  *
50292
50814
  * An ISO string is what an API sends and what `<time datetime>` takes, so it
@@ -50305,6 +50827,9 @@ export type CustomElements = {
50305
50827
  * - `date-style`/`dateStyle`: The locale's own pattern for the date: `full`, `long`, `medium`, or
50306
50828
  * `short`. Set, it stands in for `weekday`, `day`, `month`, `year` and `era`.
50307
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.
50308
50833
  * - `elapsed`: Shows how long ago the timestamp was, in a compact form such as "3h", in
50309
50834
  * place of the date.
50310
50835
  *
@@ -50319,6 +50844,8 @@ export type CustomElements = {
50319
50844
  * Off by default, which draws the date as one run of text, as Shoelace and
50320
50845
  * Web Awesome do. An `elapsed` or `relative` reading is one phrase either
50321
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.
50322
50849
  * - `frozen`: Draws an `elapsed` or `relative` reading once and leaves it, where it
50323
50850
  * would otherwise move on as it goes stale.
50324
50851
  *
@@ -50356,7 +50883,9 @@ export type CustomElements = {
50356
50883
  * - `time-zone`/`timeZone`: The time zone to read the timestamp in.
50357
50884
  *
50358
50885
  * Empty is the runtime's own.
50359
- * - `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.
50360
50889
  * - `weekday`: How the weekday is written, where one is shown.
50361
50890
  * - `year`: How the year is written, where a date is shown.
50362
50891
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
@@ -50387,6 +50916,7 @@ export type CustomElements = {
50387
50916
  * - `day`: The day of the month, with `fields`.
50388
50917
  * - `day-period`: AM or PM, or the locale's word for the part of the day, with `fields`.
50389
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`.
50390
50920
  * - `hour`: The hour, with `fields`.
50391
50921
  * - `minute`: The minute, with `fields`.
50392
50922
  * - `month`: The month, with `fields`.
@@ -51479,6 +52009,7 @@ export type CustomElements = {
51479
52009
  * These can be used to apply styling when a component is in a given state.
51480
52010
  *
51481
52011
  * - `pending`: The button is pending: `pending` is set. A ring turns over its hidden icon.
52012
+ * - `pressed`: A Button Group in a selection mode has this button pressed.
51482
52013
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
51483
52014
  */
51484
52015
  "helix-icon-button": Partial<
@@ -52648,6 +53179,8 @@ export type CustomElements = {
52648
53179
  *
52649
53180
  * These can be used to apply styling when a component is in a given state.
52650
53181
  *
53182
+ * - `entering`: From the moment the viewer opens until its entrance has finished.
53183
+ * - `exiting`: From the moment the viewer closes until its exit has finished.
52651
53184
  * - `fullscreen`: While the viewer fills the screen.
52652
53185
  * - `idle`: The user has been still long enough for the controls to hide.
52653
53186
  * - `open`: While the viewer is open.
@@ -56082,6 +56615,7 @@ export type CustomElements = {
56082
56615
  * - `time-day`: Format Date's `day`, forwarded for a time drawn as fields. An elapsed time draws none.
56083
56616
  * - `time-day-period`: Format Date's `day-period`, forwarded for a time drawn as fields. An elapsed time draws none.
56084
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.
56085
56619
  * - `time-hour`: Format Date's `hour`, forwarded for a time drawn as fields. An elapsed time draws none.
56086
56620
  * - `time-minute`: Format Date's `minute`, forwarded for a time drawn as fields. An elapsed time draws none.
56087
56621
  * - `time-month`: Format Date's `month`, forwarded for a time drawn as fields. An elapsed time draws none.
@@ -61162,6 +61696,9 @@ export type CustomElements = {
61162
61696
  * - `origin`: Where a single thumb's fill starts: `start` at `min`, `center` at the
61163
61697
  * middle of the track, or `end` at `max`. Absent is `start`. A range fills
61164
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.
61165
61702
  * - `range`: Adds a second thumb, so the value is a pair.
61166
61703
  *
61167
61704
  * The pair is one string, `"10,50"`, which is what `value` and
@@ -61369,6 +61906,8 @@ export type CustomElements = {
61369
61906
  *
61370
61907
  * These can be used to apply styling when a component is in a given state.
61371
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.
61372
61911
  * - `invalid`: The slider has an error to show, from the browser's validation or from your `feedback`.
61373
61912
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
61374
61913
  */
@@ -63415,6 +63954,8 @@ export type CustomElements = {
63415
63954
  *
63416
63955
  * Component attributes and properties that can be applied to the element or by using JavaScript.
63417
63956
  *
63957
+ * - `lazy`: Whether the panel's content waits in a `<template>` until the panel is
63958
+ * first shown.
63418
63959
  * - `selected`: Whether this panel is the visible one.
63419
63960
  * - `value`: Pairs the panel with the tab of the same value.
63420
63961
  * - `label`: The name of the panel, which is the text of the tab that opens it.
@@ -63448,6 +63989,12 @@ export type CustomElements = {
63448
63989
  * browser harness's awaits it alone: a browser always runs the frame, and a
63449
63990
  * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
63450
63991
  *
63992
+ * ## Events
63993
+ *
63994
+ * Events that will be emitted by the component.
63995
+ *
63996
+ * - `helix-load`: Fired the first time a `lazy` panel is shown, once its template's content is in.
63997
+ *
63451
63998
  * ## Slots
63452
63999
  *
63453
64000
  * Areas where markup can be added to the component.
@@ -63470,6 +64017,7 @@ export type CustomElements = {
63470
64017
  *
63471
64018
  * These can be used to apply styling when a component is in a given state.
63472
64019
  *
64020
+ * - `loaded`: Once a `lazy` panel has been shown and its content is in.
63473
64021
  * - `selected`: While its tab is the one selected.
63474
64022
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
63475
64023
  */
@@ -63579,6 +64127,8 @@ export type CustomElements = {
63579
64127
  * - `(default)`: The tabs, as direct children of this element.
63580
64128
  * - `indicator`: A mark of your own, drawn inside the `indicator` part, where the selected tab's place and size reach it.
63581
64129
  * - `panels`: The panels, as direct children of this element. Panels inside a wrapper are not paired with tabs, because pairing reads only the direct children.
64130
+ * - `scroll-end-icon`: Replaces the glyph on the button that scrolls the strip toward its end.
64131
+ * - `scroll-start-icon`: Replaces the glyph on the button that scrolls the strip toward its start.
63582
64132
  *
63583
64133
  * ## Methods
63584
64134
  *
@@ -63612,7 +64162,9 @@ export type CustomElements = {
63612
64162
  * - `indicator`: The mark that moves to the selected tab. It carries the selected tab's place and size as `--indicator-x`, `--indicator-y`, `--indicator-inline-size` and `--indicator-block-size`.
63613
64163
  * - `panels`: The panel container.
63614
64164
  * - `scroll-end`: The button that scrolls the strip toward its end, shown under `scroll-controls` while there is more that way. It holds to the end of the strip.
64165
+ * - `scroll-end-mark`: The glyph on that button, where none is slotted.
63615
64166
  * - `scroll-start`: The button that scrolls the strip toward its start, shown under `scroll-controls` while there is more that way. It holds to the start of the strip.
64167
+ * - `scroll-start-mark`: The glyph on that button, where none is slotted.
63616
64168
  * - `tabs`: The tab list.
63617
64169
  *
63618
64170
  * ## CSS States
@@ -63689,6 +64241,7 @@ export type CustomElements = {
63689
64241
  * Areas where markup can be added to the component.
63690
64242
  *
63691
64243
  * - `(default)`: The tab's label.
64244
+ * - `dismiss-icon`: Replaces the glyph on the mark that closes a `dismissible` tab.
63692
64245
  *
63693
64246
  * ## Methods
63694
64247
  *
@@ -63727,6 +64280,7 @@ export type CustomElements = {
63727
64280
  * Custom selectors for styling elements within the component.
63728
64281
  *
63729
64282
  * - `dismiss`: The mark a pointer presses to close a `dismissible` tab.
64283
+ * - `dismiss-mark`: The glyph on that mark, where none is slotted.
63730
64284
  * - `tab`: The tab itself.
63731
64285
  *
63732
64286
  * ## CSS States
@@ -64417,6 +64971,10 @@ export type CustomElements = {
64417
64971
  * - `incomplete-message`/`incompleteMessage`: What a row of segments reports while some segments are set and others
64418
64972
  * are not, where `bad-input-message` is not set. `{kind}` is `date` or
64419
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".
64420
64978
  * - `segmented`: Whether the field is a row of segments, one for each part of the date or
64421
64979
  * time, in place of a line of text.
64422
64980
  *
@@ -64505,6 +65063,10 @@ export type CustomElements = {
64505
65063
  *
64506
65064
  * Empty leaves the attribute off, which is the browser's default and is what
64507
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.
64508
65070
  * - `disable-times`/`disableTimes`: Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
64509
65071
  *
64510
65072
  * Handed to the list, which offers them as unavailable, and checked against
@@ -64553,6 +65115,8 @@ export type CustomElements = {
64553
65115
  * never something this element would refuse to read back.
64554
65116
  * - `trigger-label`/`triggerLabel`: The name of the button that opens the list, read by screen readers.
64555
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`.
64556
65120
  * - `variant`: Whether the panel shows one list of times or a column for each part of the
64557
65121
  * time.
64558
65122
  *
@@ -64635,12 +65199,14 @@ export type CustomElements = {
64635
65199
  * - `helix-before-change`: Fired before the time changes. Cancelable: canceling it stops the change and leaves the decision to you.
64636
65200
  * - `helix-before-close`: Fired before the list closes. Cancelable: canceling it keeps the list open and leaves the decision to you.
64637
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`.
64638
65203
  * - `input`: Fired after the value changes.
64639
65204
  *
64640
65205
  * ## Slots
64641
65206
  *
64642
65207
  * Areas where markup can be added to the component.
64643
65208
  *
65209
+ * - `clear-icon`: Replaces the cross on the clear button, under `clearable`.
64644
65210
  * - `end`: Content after the time, before the trigger, such as a clear button.
64645
65211
  * - `feedback`: The message that says what is wrong with the value.
64646
65212
  * - `hint`: Help under the field.
@@ -64727,6 +65293,7 @@ export type CustomElements = {
64727
65293
  *
64728
65294
  * Custom selectors for styling elements within the component.
64729
65295
  *
65296
+ * - `clear`: The button that empties the field, under `clearable`, while it holds a time.
64730
65297
  * - `control`: The text input.
64731
65298
  * - `feedback`: The message that says what is wrong with the value.
64732
65299
  * - `field`: The box that holds the text and the trigger.
@@ -64772,6 +65339,7 @@ export type CustomElements = {
64772
65339
  * - `picker-option-item-selected`: The row of a chosen time: the one time, or either end of a range.
64773
65340
  * - `picker-option-label`: The option's label.
64774
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`.
64775
65343
  * - `rest`: The count of times held beyond the ones shown. A `<button>` with `expandable`, and a `<span>` without it.
64776
65344
  * - `segment`: One part of the time, an hour, a minute, a second or AM and PM, in `segmented`.
64777
65345
  * - `segment-placeholder`: A segment with nothing in it yet. Applied with `segment`.
@@ -64792,6 +65360,7 @@ export type CustomElements = {
64792
65360
  *
64793
65361
  * These can be used to apply styling when a component is in a given state.
64794
65362
  *
65363
+ * - `blank`: The field holds no time.
64795
65364
  * - `invalid`: The control has an error to show, from the browser's validation or from your `feedback`.
64796
65365
  * - `open`: While the clock is open.
64797
65366
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -65047,6 +65616,12 @@ export type CustomElements = {
65047
65616
  *
65048
65617
  * Methods that can be called to access component functionality.
65049
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.
65050
65625
  * - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
65051
65626
  *
65052
65627
  * Announces before it acts, so `preventDefault()` on the `helix-before-change` is
@@ -65054,12 +65629,6 @@ export type CustomElements = {
65054
65629
  * itself, whether or not a consumer declared `value`: a declared property
65055
65630
  * is a seed and a correction, the way `<input value>` is, and a consumer
65056
65631
  * who wants the change for themselves refuses it and assigns their own.
65057
- * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
65058
- * where there is no `default-value`.
65059
- *
65060
- * Both halves are dropped, the consumer's and the control's, because a
65061
- * reset means the form is as it was served. Clearing only the internal one
65062
- * would leave a control that had been written to stuck at that value.
65063
65632
  * - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
65064
65633
  *
65065
65634
  * Falling back to what the markup declared rather than to empty, because
@@ -65181,7 +65750,7 @@ export type CustomElements = {
65181
65750
  * - `list-loading`: The text shown while the options load.
65182
65751
  * - `list-search`: The region that holds the filter field.
65183
65752
  * - `list-search-field`: The filter field.
65184
- * - `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.
65185
65754
  * - `option-between`: A time inside a chosen range, excluding its ends, beside `option`.
65186
65755
  * - `option-description`: The caption under the time's label, when there is one.
65187
65756
  * - `option-item`: The row.
@@ -65195,7 +65764,8 @@ export type CustomElements = {
65195
65764
  * These can be used to apply styling when a component is in a given state.
65196
65765
  *
65197
65766
  * - `blank`: While no time is chosen.
65198
- * - `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.
65199
65769
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
65200
65770
  */
65201
65771
  "helix-time-picker": Partial<
@@ -65529,6 +66099,7 @@ export type CustomElements = {
65529
66099
  * - `--toast-tone-color`: Color of the mark and the countdown bar. Unset, each `tone` takes its own color, so set it per tone, as in `helix-toast-item[tone="danger"]`.
65530
66100
  * - `--toast-duration`: How long this message stays, in milliseconds, for a progress hint.
65531
66101
  * - `--toast-swipe-x`: How far a swipe has moved the message across, in pixels, toward the right.
66102
+ * - `--toast-swipe-y`: How far a swipe has moved the message down, in pixels, under a `swipe-direction` of `top` or `bottom`.
65532
66103
  *
65533
66104
  * ## CSS Parts
65534
66105
  *
@@ -65550,7 +66121,7 @@ export type CustomElements = {
65550
66121
  * These can be used to apply styling when a component is in a given state.
65551
66122
  *
65552
66123
  * - `closed`: The message has been dismissed and is hidden, or leaving.
65553
- * - `paused`: The dismiss timer is paused, while a pointer or focus is on the message, or while the page is hidden.
66124
+ * - `paused`: The dismiss timer is paused, while a pointer or focus is on the message or in the stack, or while the page is hidden.
65554
66125
  * - `waiting`: The region holds the message back, past its `max-visible`, until a message before it goes.
65555
66126
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
65556
66127
  */
@@ -65604,6 +66175,8 @@ export type CustomElements = {
65604
66175
  * consumer's server markup does not have. A sheet carries the resting
65605
66176
  * arrangement in its own `:host` rule and the selectors describe only the
65606
66177
  * departures, which is what `orientation` does.
66178
+ * - `swipe-direction`/`swipeDirection`: The edge a touch or a pen swipes a message toward to dismiss it: `end`,
66179
+ * the end of the line, or `start`, `top` or `bottom`. Unset is `end`.
65607
66180
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
65608
66181
  *
65609
66182
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -65747,6 +66320,11 @@ export type CustomElements = {
65747
66320
  * and this one was the English a form in another language still spoke in
65748
66321
  * the bubble it raises on submit: `feedback` replaces the message under
65749
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.
65750
66328
  * - `label-placement`/`labelPlacement`: Where the group's label sits. `start` puts it on the track's line.
65751
66329
  *
65752
66330
  * Absent is above, which is what a field looks like and what almost every
@@ -66067,7 +66645,7 @@ export type CustomElements = {
66067
66645
  *
66068
66646
  * These can be used to apply styling when a component is in a given state.
66069
66647
  *
66070
- * - `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.
66071
66649
  * - `selected`: The item is chosen.
66072
66650
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
66073
66651
  */
@@ -66449,6 +67027,9 @@ export type CustomElements = {
66449
67027
  * `undefined` until somebody sets one.
66450
67028
  * - `label`: The tour's name, read by screen readers, such as "Getting started".
66451
67029
  * - `next-label`/`nextLabel`: Label for the control that goes on.
67030
+ * - `outside-press`/`outsidePress`: What a press outside the current stop and its target does while the tour
67031
+ * runs. Unset, nothing: the page stays usable. `close` ends the tour, as
67032
+ * Skip does, and `block` refuses the press.
66452
67033
  * - `progress`: Draws each stop's place in the run in its panel, as well as saying it.
66453
67034
  * - `progress-label`/`progressLabel`: Each stop's place in the run, with `{index}` and `{count}` filled in and
66454
67035
  * written in the locale. Translate it with the rest of your text.
@@ -66541,6 +67122,7 @@ export type CustomElements = {
66541
67122
  * These can be used to apply styling when a component is in a given state.
66542
67123
  *
66543
67124
  * - `open`: While the tour is running.
67125
+ * - `preparing`: While the tour waits for the current stop's `effect` before showing the stop.
66544
67126
  * - `waiting`: While the tour waits at a `wait` stop for its target to be on the page.
66545
67127
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
66546
67128
  */
@@ -66580,6 +67162,8 @@ export type CustomElements = {
66580
67162
  *
66581
67163
  * Reflected, because the styled tier places a dialog and a floating panel by
66582
67164
  * it, and unset at rest, so no default is written onto the host.
67165
+ * - `effect`: Run as the tour reaches the stop, before it is shown: see the description
67166
+ * above. A function, so it is set from script and has no attribute. (property only)
66583
67167
  * - `target`: The element the stop points at, or `null` when no element has the `for` id. (property only) (readonly)
66584
67168
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
66585
67169
  *
@@ -66673,6 +67257,8 @@ export type CustomElements = {
66673
67257
  *
66674
67258
  * These can be used to apply styling when a component is in a given state.
66675
67259
  *
67260
+ * - `entering`: From the moment the stop is shown until its entrance has finished.
67261
+ * - `exiting`: From the moment the stop is left until its exit has finished.
66676
67262
  * - `placed-bottom`: The panel sits below its target.
66677
67263
  * - `placed-left`: The panel sits to the left of its target.
66678
67264
  * - `placed-right`: The panel sits to the right of its target.
@@ -68621,6 +69207,19 @@ export type CustomElementsSolidJs = {
68621
69207
  * It pairs with `material`: a bar that does not stick is only ever over the
68622
69208
  * top of the page, so `glass` and `transparent` have nothing to be
68623
69209
  * translucent against and the `scrolled` state never lands.
69210
+ * - `default-open`/`defaultOpen`: Whether the element starts open. Ignored once `open` is written.
69211
+ * - `open`: Whether the element is open.
69212
+ *
69213
+ * One property, not two, so `dialog.open` answers the question anyone
69214
+ * asking it meant. Writing always applies; `<helix-dialog open>` is the
69215
+ * same statement in markup.
69216
+ *
69217
+ * **Not reflected, and that is required rather than tidy.** Reflection
69218
+ * writes the resolved state back as an attribute, so an element that opened
69219
+ * itself would put `open` on its own host: cloned, serialized for
69220
+ * hydration, or diffed by a framework, it comes back holding whatever the
69221
+ * last reader did rather than what the author wrote. `:state(open)` carries
69222
+ * the resolved state for stylesheets, which is what the mirror is for.
68624
69223
  * - `content-align`/`contentAlign`: Where the middle region sits in the bar.
68625
69224
  *
68626
69225
  * Centered by default, which reads as the site's spine when the navigation is
@@ -68641,6 +69240,11 @@ export type CustomElementsSolidJs = {
68641
69240
  * - `menu-label`/`menuLabel`: The name of the toggle that opens a folded middle region.
68642
69241
  * - `scroller`: The id of the element whose scrolling lifts the bar, for an app shell that
68643
69242
  * scrolls a container instead of the window. Unset is the window.
69243
+ * - `toggle-placement`/`togglePlacement`: Where the toggle that opens a folded middle region sits: at the end of the
69244
+ * bar, after the trailing content, or with `start`, before the leading
69245
+ * content.
69246
+ *
69247
+ * Optional, so the resting bar writes no attribute onto the host.
68644
69248
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
68645
69249
  *
68646
69250
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -68666,6 +69270,9 @@ export type CustomElementsSolidJs = {
68666
69270
  *
68667
69271
  * Events that will be emitted by the component.
68668
69272
  *
69273
+ * - `toggle`: The folded region opened or closed. The event carries `newState` and `oldState`.
69274
+ * - `helix-before-close`: The folded region is about to close. Cancelable: cancel it to keep it open.
69275
+ * - `helix-before-open`: The folded region is about to open. Cancelable: cancel it to keep it closed.
68669
69276
  * - `helix-scrolled`: Fired when the page crosses the scroll threshold, with the new state. A custom state cannot be observed the way an attribute can, so listen for this event to follow it. The event uses the header's own threshold and hysteresis, so you do not need a second scroll listener.
68670
69277
  *
68671
69278
  * ## Slots
@@ -68677,6 +69284,20 @@ export type CustomElementsSolidJs = {
68677
69284
  * - `start`: Leading content, usually a wordmark.
68678
69285
  * - `menu-icon`: Replaces the glyph inside the toggle that opens a folded middle region.
68679
69286
  *
69287
+ * ## Methods
69288
+ *
69289
+ * Methods that can be called to access component functionality.
69290
+ *
69291
+ * - `requestOpen(next: boolean) => boolean`: Requests that the element open or close, and returns whether the change
69292
+ * was applied.
69293
+ *
69294
+ * Announces before it acts, so `preventDefault()` on the `helix-before-open` or
69295
+ * `helix-before-close` is a refusal and nothing moves. Nobody refusing means the
69296
+ * element opens or closes itself, whether or not a consumer declared
69297
+ * `open`: a declared property is a seed and a correction, and a consumer
69298
+ * who wants the decision for themselves refuses it and assigns their own.
69299
+ * - `toggleOpen() => boolean`: Requests the opposite of the current state.
69300
+ *
68680
69301
  * ## CSS Custom Properties
68681
69302
  *
68682
69303
  * CSS variables available for styling the component.
@@ -70381,6 +71002,9 @@ export type CustomElementsSolidJs = {
70381
71002
  * separate actions. The semantics and the joining are separate questions:
70382
71003
  * `role="group"` and a shared name are what make a set of buttons a set, and
70383
71004
  * `helix-flex` gives the spacing without the group.
71005
+ * - `disallow-empty-selection`/`disallowEmptySelection`: Keeps at least one button pressed once one is, as React Aria's
71006
+ * `disallowEmptySelection`: a press that would leave none pressed is
71007
+ * refused.
70384
71008
  * - `label`: The group's name, read by screen readers.
70385
71009
  *
70386
71010
  * On the host through internals, so an author's `aria-label` still overrides
@@ -70795,6 +71419,7 @@ export type CustomElementsSolidJs = {
70795
71419
  * These can be used to apply styling when a component is in a given state.
70796
71420
  *
70797
71421
  * - `pending`: The button is pending: `pending` is set. A ring turns over its hidden words.
71422
+ * - `pressed`: A Button Group in a selection mode has this button pressed.
70798
71423
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
70799
71424
  */
70800
71425
  "helix-button": Partial<
@@ -74044,6 +74669,12 @@ export type CustomElementsSolidJs = {
74044
74669
  *
74045
74670
  * Methods that can be called to access component functionality.
74046
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.
74047
74678
  * - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
74048
74679
  *
74049
74680
  * Announces before it acts, so `preventDefault()` on the `helix-before-change` is
@@ -74051,12 +74682,6 @@ export type CustomElementsSolidJs = {
74051
74682
  * itself, whether or not a consumer declared `value`: a declared property
74052
74683
  * is a seed and a correction, the way `<input value>` is, and a consumer
74053
74684
  * who wants the change for themselves refuses it and assigns their own.
74054
- * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
74055
- * where there is no `default-value`.
74056
- *
74057
- * Both halves are dropped, the consumer's and the control's, because a
74058
- * reset means the form is as it was served. Clearing only the internal one
74059
- * would leave a control that had been written to stuck at that value.
74060
74685
  * - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
74061
74686
  *
74062
74687
  * Falling back to what the markup declared rather than to empty, because
@@ -75029,6 +75654,7 @@ export type CustomElementsSolidJs = {
75029
75654
  * - `copied`: The moment after a successful copy, while `copied-label` names the button.
75030
75655
  * - `failed`: The moment after a press that put nothing on the clipboard, while `error-label` names the button.
75031
75656
  * - `pending`: The button is pending: `pending` is set.
75657
+ * - `pressed`: A Button Group in a selection mode has this button pressed.
75032
75658
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
75033
75659
  */
75034
75660
  "helix-copy-button": Partial<
@@ -75480,6 +76106,10 @@ export type CustomElementsSolidJs = {
75480
76106
  * - `incomplete-message`/`incompleteMessage`: What a row of segments reports while some segments are set and others
75481
76107
  * are not, where `bad-input-message` is not set. `{kind}` is `date` or
75482
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".
75483
76113
  * - `segmented`: Whether the field is a row of segments, one for each part of the date or
75484
76114
  * time, in place of a line of text.
75485
76115
  *
@@ -75564,27 +76194,39 @@ export type CustomElementsSolidJs = {
75564
76194
  * and this one was the English a form in another language still spoke in
75565
76195
  * the bubble it raises on submit: `feedback` replaces the message under
75566
76196
  * the field and does not reach that one.
75567
- * - `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`.
75568
76199
  *
75569
76200
  * Empty leaves the attribute off, which is the browser's default and is what
75570
76201
  * lets autofill work at all: hardcoding `off` here means a birthday or a
75571
- * postal code can never be filled in for a reader.
75572
- * - `calendar`: The calendar the written date and the calendar's days are in: `gregory`,
75573
- * `buddhist`, `japanese`, `roc`, or `iso8601`.
75574
- *
75575
- * Absent is the locale's own where it is one of the five, and `gregory` for
75576
- * every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
75577
- * every calendar, and a focused field is ISO in every calendar. In
75578
- * `segmented`, the segments are the Gregorian day, month, and year, in the
75579
- * 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`.
75580
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.
75581
76222
  * - `date-style`/`dateStyle`: How a date is written in the field: `short` through `full`, or ISO.
75582
76223
  *
75583
76224
  * **The field renders when it is idle and holds the value when it is being
75584
76225
  * edited.** A written date is a rendering, and a document being edited must
75585
76226
  * not be a rendering of something else: `Intl.DateTimeFormat` formats and does
75586
- * not parse, so `4 August 2026` cannot be typed back, and writing a parser per
75587
- * 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.
75588
76230
  *
75589
76231
  * The way out is not to choose between the two but to separate them in time.
75590
76232
  * Idle, the field shows `4 August 2026`, which is what a date is for reading.
@@ -75652,6 +76294,9 @@ export type CustomElementsSolidJs = {
75652
76294
  *
75653
76295
  * **The name goes in**, so a row of them is heard as which one each
75654
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.
75655
76300
  * - `step`: How far apart the selectable dates are, in days.
75656
76301
  *
75657
76302
  * `<input type="date" step>`'s own unit, handed to the calendar this renders
@@ -75659,8 +76304,13 @@ export type CustomElementsSolidJs = {
75659
76304
  * where there is one and from 1 January 1970 where there is not, which is the
75660
76305
  * platform's base.
75661
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.
75662
76310
  * - `trigger-label`/`triggerLabel`: The name of the button that opens the calendar, read by screen readers.
75663
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`.
75664
76314
  * - `year-view-label`/`yearViewLabel`: The name of the calendar's heading where it shows a page of years, with
75665
76315
  * `{heading}` filled in.
75666
76316
  * - `disabled`: Whether the control is disabled and cannot be used.
@@ -75740,12 +76390,14 @@ export type CustomElementsSolidJs = {
75740
76390
  * - `helix-before-change`: Fired before the date changes. Cancelable: call `preventDefault()` to keep the current date.
75741
76391
  * - `helix-before-close`: Fired before the calendar closes. Cancelable: call `preventDefault()` to keep it open.
75742
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`.
75743
76394
  * - `input`: Fired after the value changes.
75744
76395
  *
75745
76396
  * ## Slots
75746
76397
  *
75747
76398
  * Areas where markup can be added to the component.
75748
76399
  *
76400
+ * - `clear-icon`: Replaces the cross on the clear button, under `clearable`.
75749
76401
  * - `end`: Content after the date, before the trigger, such as a clear button.
75750
76402
  * - `feedback`: The error message under the field.
75751
76403
  * - `hint`: The help text under the field.
@@ -75834,6 +76486,7 @@ export type CustomElementsSolidJs = {
75834
76486
  *
75835
76487
  * Custom selectors for styling elements within the component.
75836
76488
  *
76489
+ * - `clear`: The button that empties the field, under `clearable`, while it holds a date.
75837
76490
  * - `control`: The text input.
75838
76491
  * - `date`: One held date, as a tag, in `multiple`.
75839
76492
  * - `date-cell`: The tag's grid cell, which a tag draws only inside a tag group.
@@ -75875,8 +76528,10 @@ export type CustomElementsSolidJs = {
75875
76528
  * - `picker-periods`: The grid of months or years.
75876
76529
  * - `picker-previous`: The control that moves to the previous month.
75877
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.
75878
76532
  * - `picker-week`: One row of days.
75879
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`.
75880
76535
  * - `rest`: The count of dates beyond the ones shown. It is a `<button>` with `expandable` and a `<span>` without it.
75881
76536
  * - `segment`: One part of the date, a year, a month or a day, in `segmented`.
75882
76537
  * - `segment-placeholder`: A segment with nothing in it yet. Applied with `segment`.
@@ -75890,6 +76545,7 @@ export type CustomElementsSolidJs = {
75890
76545
  *
75891
76546
  * These can be used to apply styling when a component is in a given state.
75892
76547
  *
76548
+ * - `blank`: The field holds no date.
75893
76549
  * - `invalid`: The field has an error to show, from the browser's validation or from your `feedback`.
75894
76550
  * - `open`: The calendar is open.
75895
76551
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -75954,14 +76610,16 @@ export type CustomElementsSolidJs = {
75954
76610
  * `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
75955
76611
  * for `fa-IR`.
75956
76612
  *
75957
- * `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
75958
- * `coptic`, and `indian` draw a calendar with months of its own, as React
75959
- * Aria's calendars do: each grid is one of that calendar's months, the
75960
- * Hebrew leap month and Ethiopia's five-day thirteenth month included, and
75961
- * 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
75962
76621
  * `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
75963
- * heading stays text, as the months and years views are drawn in Gregorian
75964
- * months only. The value is `YYYY-MM-DD` in every calendar.
76622
+ * value is `YYYY-MM-DD` in every calendar.
75965
76623
  * - `default-month`/`defaultMonth`: The month to open on when `month` is not set.
75966
76624
  * - `disable-dates`/`disableDates`: Dates that cannot be chosen, as `YYYY-MM-DD`, separated by commas or
75967
76625
  * spaces.
@@ -76024,6 +76682,11 @@ export type CustomElementsSolidJs = {
76024
76682
  * value and stays reachable, which is what a form showing a value somebody
76025
76683
  * else set needs.
76026
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.
76027
76690
  * - `step`: How far apart the selectable dates are, in days.
76028
76691
  *
76029
76692
  * `<input type="date" step>`'s own unit, counted from `min` where there is
@@ -76152,6 +76815,12 @@ export type CustomElementsSolidJs = {
76152
76815
  *
76153
76816
  * Methods that can be called to access component functionality.
76154
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.
76155
76824
  * - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
76156
76825
  *
76157
76826
  * Announces before it acts, so `preventDefault()` on the `helix-before-change` is
@@ -76159,18 +76828,19 @@ export type CustomElementsSolidJs = {
76159
76828
  * itself, whether or not a consumer declared `value`: a declared property
76160
76829
  * is a seed and a correction, the way `<input value>` is, and a consumer
76161
76830
  * who wants the change for themselves refuses it and assigns their own.
76162
- * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
76163
- * where there is no `default-value`.
76164
- *
76165
- * Both halves are dropped, the consumer's and the control's, because a
76166
- * reset means the form is as it was served. Clearing only the internal one
76167
- * would leave a control that had been written to stuck at that value.
76168
76831
  * - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
76169
76832
  *
76170
76833
  * Falling back to what the markup declared rather than to empty, because
76171
76834
  * a restore with no state is a form the browser has nothing recorded for,
76172
76835
  * which is the same situation as a fresh one.
76173
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.
76174
76844
  * - `formDisabledCallback(disabled: boolean) => void`: Called by the browser when an ancestor fieldset is disabled or enabled.
76175
76845
  *
76176
76846
  * **The argument is the effective state, and taking it whole is what latched
@@ -76220,6 +76890,7 @@ export type CustomElementsSolidJs = {
76220
76890
  * - `--date-picker-feedback-color`: The color of the message under the calendar, while `feedback` is set.
76221
76891
  * - `--date-picker-period-size`: Height of a month or a year in the months and years views, where `max-view` is set.
76222
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.
76223
76894
  * - `--date-picker-row-size`: Height of a week row.
76224
76895
  * - `--date-picker-selected-color`: Fill behind a selected day.
76225
76896
  * - `--date-picker-track-size`: Width of a column, which is what sets the space between days.
@@ -76230,7 +76901,7 @@ export type CustomElementsSolidJs = {
76230
76901
  * Custom selectors for styling elements within the component.
76231
76902
  *
76232
76903
  * - `cell`: One column of a week row. A range is painted on the cells.
76233
- * - `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.
76234
76905
  * - `cell-range-middle`: A cell between a range's ends, beside `cell`.
76235
76906
  * - `cell-range-start`: The cell of a range's first day, beside `cell`.
76236
76907
  * - `day`: The shape inside a cell. A single chosen date is painted on it.
@@ -76256,6 +76927,7 @@ export type CustomElementsSolidJs = {
76256
76927
  * - `periods`: The grid of months or years.
76257
76928
  * - `previous`: The control that moves to the previous month.
76258
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.
76259
76931
  * - `week`: One row of days.
76260
76932
  * - `weekday`: A column header naming a day of the week. It shows the short name and says the full one.
76261
76933
  *
@@ -76263,7 +76935,11 @@ export type CustomElementsSolidJs = {
76263
76935
  *
76264
76936
  * These can be used to apply styling when a component is in a given state.
76265
76937
  *
76266
- * - `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`.
76267
76943
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
76268
76944
  */
76269
76945
  "helix-date-picker": Partial<
@@ -78864,12 +79540,14 @@ export type CustomElementsSolidJs = {
78864
79540
  * Component attributes and properties that can be applied to the element or by using JavaScript.
78865
79541
  *
78866
79542
  * - `calendar`: The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
78867
- * `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
78868
- *
78869
- * Absent is the locale's own where it is one of the five, such as
78870
- * `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
78871
- * for `fa-IR`, so a date written here reads as the same date a Date Picker
78872
- * 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.
78873
79551
  * - `date`: The timestamp, in any format `Date` can parse.
78874
79552
  *
78875
79553
  * An ISO string is what an API sends and what `<time datetime>` takes, so it
@@ -78888,6 +79566,9 @@ export type CustomElementsSolidJs = {
78888
79566
  * - `date-style`/`dateStyle`: The locale's own pattern for the date: `full`, `long`, `medium`, or
78889
79567
  * `short`. Set, it stands in for `weekday`, `day`, `month`, `year` and `era`.
78890
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.
78891
79572
  * - `elapsed`: Shows how long ago the timestamp was, in a compact form such as "3h", in
78892
79573
  * place of the date.
78893
79574
  *
@@ -78902,6 +79583,8 @@ export type CustomElementsSolidJs = {
78902
79583
  * Off by default, which draws the date as one run of text, as Shoelace and
78903
79584
  * Web Awesome do. An `elapsed` or `relative` reading is one phrase either
78904
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.
78905
79588
  * - `frozen`: Draws an `elapsed` or `relative` reading once and leaves it, where it
78906
79589
  * would otherwise move on as it goes stale.
78907
79590
  *
@@ -78939,7 +79622,9 @@ export type CustomElementsSolidJs = {
78939
79622
  * - `time-zone`/`timeZone`: The time zone to read the timestamp in.
78940
79623
  *
78941
79624
  * Empty is the runtime's own.
78942
- * - `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.
78943
79628
  * - `weekday`: How the weekday is written, where one is shown.
78944
79629
  * - `year`: How the year is written, where a date is shown.
78945
79630
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
@@ -78970,6 +79655,7 @@ export type CustomElementsSolidJs = {
78970
79655
  * - `day`: The day of the month, with `fields`.
78971
79656
  * - `day-period`: AM or PM, or the locale's word for the part of the day, with `fields`.
78972
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`.
78973
79659
  * - `hour`: The hour, with `fields`.
78974
79660
  * - `minute`: The minute, with `fields`.
78975
79661
  * - `month`: The month, with `fields`.
@@ -80075,6 +80761,7 @@ export type CustomElementsSolidJs = {
80075
80761
  * These can be used to apply styling when a component is in a given state.
80076
80762
  *
80077
80763
  * - `pending`: The button is pending: `pending` is set. A ring turns over its hidden icon.
80764
+ * - `pressed`: A Button Group in a selection mode has this button pressed.
80078
80765
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
80079
80766
  */
80080
80767
  "helix-icon-button": Partial<
@@ -81267,6 +81954,8 @@ export type CustomElementsSolidJs = {
81267
81954
  *
81268
81955
  * These can be used to apply styling when a component is in a given state.
81269
81956
  *
81957
+ * - `entering`: From the moment the viewer opens until its entrance has finished.
81958
+ * - `exiting`: From the moment the viewer closes until its exit has finished.
81270
81959
  * - `fullscreen`: While the viewer fills the screen.
81271
81960
  * - `idle`: The user has been still long enough for the controls to hide.
81272
81961
  * - `open`: While the viewer is open.
@@ -84772,6 +85461,7 @@ export type CustomElementsSolidJs = {
84772
85461
  * - `time-day`: Format Date's `day`, forwarded for a time drawn as fields. An elapsed time draws none.
84773
85462
  * - `time-day-period`: Format Date's `day-period`, forwarded for a time drawn as fields. An elapsed time draws none.
84774
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.
84775
85465
  * - `time-hour`: Format Date's `hour`, forwarded for a time drawn as fields. An elapsed time draws none.
84776
85466
  * - `time-minute`: Format Date's `minute`, forwarded for a time drawn as fields. An elapsed time draws none.
84777
85467
  * - `time-month`: Format Date's `month`, forwarded for a time drawn as fields. An elapsed time draws none.
@@ -89948,6 +90638,9 @@ export type CustomElementsSolidJs = {
89948
90638
  * - `origin`: Where a single thumb's fill starts: `start` at `min`, `center` at the
89949
90639
  * middle of the track, or `end` at `max`. Absent is `start`. A range fills
89950
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.
89951
90644
  * - `range`: Adds a second thumb, so the value is a pair.
89952
90645
  *
89953
90646
  * The pair is one string, `"10,50"`, which is what `value` and
@@ -90155,6 +90848,8 @@ export type CustomElementsSolidJs = {
90155
90848
  *
90156
90849
  * These can be used to apply styling when a component is in a given state.
90157
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.
90158
90853
  * - `invalid`: The slider has an error to show, from the browser's validation or from your `feedback`.
90159
90854
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
90160
90855
  */
@@ -92248,6 +92943,8 @@ export type CustomElementsSolidJs = {
92248
92943
  *
92249
92944
  * Component attributes and properties that can be applied to the element or by using JavaScript.
92250
92945
  *
92946
+ * - `lazy`: Whether the panel's content waits in a `<template>` until the panel is
92947
+ * first shown.
92251
92948
  * - `selected`: Whether this panel is the visible one.
92252
92949
  * - `value`: Pairs the panel with the tab of the same value.
92253
92950
  * - `label`: The name of the panel, which is the text of the tab that opens it.
@@ -92281,6 +92978,12 @@ export type CustomElementsSolidJs = {
92281
92978
  * browser harness's awaits it alone: a browser always runs the frame, and a
92282
92979
  * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
92283
92980
  *
92981
+ * ## Events
92982
+ *
92983
+ * Events that will be emitted by the component.
92984
+ *
92985
+ * - `helix-load`: Fired the first time a `lazy` panel is shown, once its template's content is in.
92986
+ *
92284
92987
  * ## Slots
92285
92988
  *
92286
92989
  * Areas where markup can be added to the component.
@@ -92303,6 +93006,7 @@ export type CustomElementsSolidJs = {
92303
93006
  *
92304
93007
  * These can be used to apply styling when a component is in a given state.
92305
93008
  *
93009
+ * - `loaded`: Once a `lazy` panel has been shown and its content is in.
92306
93010
  * - `selected`: While its tab is the one selected.
92307
93011
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
92308
93012
  */
@@ -92415,6 +93119,8 @@ export type CustomElementsSolidJs = {
92415
93119
  * - `(default)`: The tabs, as direct children of this element.
92416
93120
  * - `indicator`: A mark of your own, drawn inside the `indicator` part, where the selected tab's place and size reach it.
92417
93121
  * - `panels`: The panels, as direct children of this element. Panels inside a wrapper are not paired with tabs, because pairing reads only the direct children.
93122
+ * - `scroll-end-icon`: Replaces the glyph on the button that scrolls the strip toward its end.
93123
+ * - `scroll-start-icon`: Replaces the glyph on the button that scrolls the strip toward its start.
92418
93124
  *
92419
93125
  * ## Methods
92420
93126
  *
@@ -92448,7 +93154,9 @@ export type CustomElementsSolidJs = {
92448
93154
  * - `indicator`: The mark that moves to the selected tab. It carries the selected tab's place and size as `--indicator-x`, `--indicator-y`, `--indicator-inline-size` and `--indicator-block-size`.
92449
93155
  * - `panels`: The panel container.
92450
93156
  * - `scroll-end`: The button that scrolls the strip toward its end, shown under `scroll-controls` while there is more that way. It holds to the end of the strip.
93157
+ * - `scroll-end-mark`: The glyph on that button, where none is slotted.
92451
93158
  * - `scroll-start`: The button that scrolls the strip toward its start, shown under `scroll-controls` while there is more that way. It holds to the start of the strip.
93159
+ * - `scroll-start-mark`: The glyph on that button, where none is slotted.
92452
93160
  * - `tabs`: The tab list.
92453
93161
  *
92454
93162
  * ## CSS States
@@ -92527,6 +93235,7 @@ export type CustomElementsSolidJs = {
92527
93235
  * Areas where markup can be added to the component.
92528
93236
  *
92529
93237
  * - `(default)`: The tab's label.
93238
+ * - `dismiss-icon`: Replaces the glyph on the mark that closes a `dismissible` tab.
92530
93239
  *
92531
93240
  * ## Methods
92532
93241
  *
@@ -92565,6 +93274,7 @@ export type CustomElementsSolidJs = {
92565
93274
  * Custom selectors for styling elements within the component.
92566
93275
  *
92567
93276
  * - `dismiss`: The mark a pointer presses to close a `dismissible` tab.
93277
+ * - `dismiss-mark`: The glyph on that mark, where none is slotted.
92568
93278
  * - `tab`: The tab itself.
92569
93279
  *
92570
93280
  * ## CSS States
@@ -93267,6 +93977,10 @@ export type CustomElementsSolidJs = {
93267
93977
  * - `incomplete-message`/`incompleteMessage`: What a row of segments reports while some segments are set and others
93268
93978
  * are not, where `bad-input-message` is not set. `{kind}` is `date` or
93269
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".
93270
93984
  * - `segmented`: Whether the field is a row of segments, one for each part of the date or
93271
93985
  * time, in place of a line of text.
93272
93986
  *
@@ -93355,6 +94069,10 @@ export type CustomElementsSolidJs = {
93355
94069
  *
93356
94070
  * Empty leaves the attribute off, which is the browser's default and is what
93357
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.
93358
94076
  * - `disable-times`/`disableTimes`: Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
93359
94077
  *
93360
94078
  * Handed to the list, which offers them as unavailable, and checked against
@@ -93403,6 +94121,8 @@ export type CustomElementsSolidJs = {
93403
94121
  * never something this element would refuse to read back.
93404
94122
  * - `trigger-label`/`triggerLabel`: The name of the button that opens the list, read by screen readers.
93405
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`.
93406
94126
  * - `variant`: Whether the panel shows one list of times or a column for each part of the
93407
94127
  * time.
93408
94128
  *
@@ -93485,12 +94205,14 @@ export type CustomElementsSolidJs = {
93485
94205
  * - `helix-before-change`: Fired before the time changes. Cancelable: canceling it stops the change and leaves the decision to you.
93486
94206
  * - `helix-before-close`: Fired before the list closes. Cancelable: canceling it keeps the list open and leaves the decision to you.
93487
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`.
93488
94209
  * - `input`: Fired after the value changes.
93489
94210
  *
93490
94211
  * ## Slots
93491
94212
  *
93492
94213
  * Areas where markup can be added to the component.
93493
94214
  *
94215
+ * - `clear-icon`: Replaces the cross on the clear button, under `clearable`.
93494
94216
  * - `end`: Content after the time, before the trigger, such as a clear button.
93495
94217
  * - `feedback`: The message that says what is wrong with the value.
93496
94218
  * - `hint`: Help under the field.
@@ -93577,6 +94299,7 @@ export type CustomElementsSolidJs = {
93577
94299
  *
93578
94300
  * Custom selectors for styling elements within the component.
93579
94301
  *
94302
+ * - `clear`: The button that empties the field, under `clearable`, while it holds a time.
93580
94303
  * - `control`: The text input.
93581
94304
  * - `feedback`: The message that says what is wrong with the value.
93582
94305
  * - `field`: The box that holds the text and the trigger.
@@ -93622,6 +94345,7 @@ export type CustomElementsSolidJs = {
93622
94345
  * - `picker-option-item-selected`: The row of a chosen time: the one time, or either end of a range.
93623
94346
  * - `picker-option-label`: The option's label.
93624
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`.
93625
94349
  * - `rest`: The count of times held beyond the ones shown. A `<button>` with `expandable`, and a `<span>` without it.
93626
94350
  * - `segment`: One part of the time, an hour, a minute, a second or AM and PM, in `segmented`.
93627
94351
  * - `segment-placeholder`: A segment with nothing in it yet. Applied with `segment`.
@@ -93642,6 +94366,7 @@ export type CustomElementsSolidJs = {
93642
94366
  *
93643
94367
  * These can be used to apply styling when a component is in a given state.
93644
94368
  *
94369
+ * - `blank`: The field holds no time.
93645
94370
  * - `invalid`: The control has an error to show, from the browser's validation or from your `feedback`.
93646
94371
  * - `open`: While the clock is open.
93647
94372
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -93900,6 +94625,12 @@ export type CustomElementsSolidJs = {
93900
94625
  *
93901
94626
  * Methods that can be called to access component functionality.
93902
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.
93903
94634
  * - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
93904
94635
  *
93905
94636
  * Announces before it acts, so `preventDefault()` on the `helix-before-change` is
@@ -93907,12 +94638,6 @@ export type CustomElementsSolidJs = {
93907
94638
  * itself, whether or not a consumer declared `value`: a declared property
93908
94639
  * is a seed and a correction, the way `<input value>` is, and a consumer
93909
94640
  * who wants the change for themselves refuses it and assigns their own.
93910
- * - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
93911
- * where there is no `default-value`.
93912
- *
93913
- * Both halves are dropped, the consumer's and the control's, because a
93914
- * reset means the form is as it was served. Clearing only the internal one
93915
- * would leave a control that had been written to stuck at that value.
93916
94641
  * - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
93917
94642
  *
93918
94643
  * Falling back to what the markup declared rather than to empty, because
@@ -94034,7 +94759,7 @@ export type CustomElementsSolidJs = {
94034
94759
  * - `list-loading`: The text shown while the options load.
94035
94760
  * - `list-search`: The region that holds the filter field.
94036
94761
  * - `list-search-field`: The filter field.
94037
- * - `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.
94038
94763
  * - `option-between`: A time inside a chosen range, excluding its ends, beside `option`.
94039
94764
  * - `option-description`: The caption under the time's label, when there is one.
94040
94765
  * - `option-item`: The row.
@@ -94048,7 +94773,8 @@ export type CustomElementsSolidJs = {
94048
94773
  * These can be used to apply styling when a component is in a given state.
94049
94774
  *
94050
94775
  * - `blank`: While no time is chosen.
94051
- * - `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.
94052
94778
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
94053
94779
  */
94054
94780
  "helix-time-picker": Partial<
@@ -94394,6 +95120,7 @@ export type CustomElementsSolidJs = {
94394
95120
  * - `--toast-tone-color`: Color of the mark and the countdown bar. Unset, each `tone` takes its own color, so set it per tone, as in `helix-toast-item[tone="danger"]`.
94395
95121
  * - `--toast-duration`: How long this message stays, in milliseconds, for a progress hint.
94396
95122
  * - `--toast-swipe-x`: How far a swipe has moved the message across, in pixels, toward the right.
95123
+ * - `--toast-swipe-y`: How far a swipe has moved the message down, in pixels, under a `swipe-direction` of `top` or `bottom`.
94397
95124
  *
94398
95125
  * ## CSS Parts
94399
95126
  *
@@ -94415,7 +95142,7 @@ export type CustomElementsSolidJs = {
94415
95142
  * These can be used to apply styling when a component is in a given state.
94416
95143
  *
94417
95144
  * - `closed`: The message has been dismissed and is hidden, or leaving.
94418
- * - `paused`: The dismiss timer is paused, while a pointer or focus is on the message, or while the page is hidden.
95145
+ * - `paused`: The dismiss timer is paused, while a pointer or focus is on the message or in the stack, or while the page is hidden.
94419
95146
  * - `waiting`: The region holds the message back, past its `max-visible`, until a message before it goes.
94420
95147
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
94421
95148
  */
@@ -94472,6 +95199,8 @@ export type CustomElementsSolidJs = {
94472
95199
  * consumer's server markup does not have. A sheet carries the resting
94473
95200
  * arrangement in its own `:host` rule and the selectors describe only the
94474
95201
  * departures, which is what `orientation` does.
95202
+ * - `swipe-direction`/`swipeDirection`: The edge a touch or a pen swipes a message toward to dismiss it: `end`,
95203
+ * the end of the line, or `start`, `top` or `bottom`. Unset is `end`.
94475
95204
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
94476
95205
  *
94477
95206
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -94620,6 +95349,11 @@ export type CustomElementsSolidJs = {
94620
95349
  * and this one was the English a form in another language still spoke in
94621
95350
  * the bubble it raises on submit: `feedback` replaces the message under
94622
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.
94623
95357
  * - `label-placement`/`labelPlacement`: Where the group's label sits. `start` puts it on the track's line.
94624
95358
  *
94625
95359
  * Absent is above, which is what a field looks like and what almost every
@@ -94943,7 +95677,7 @@ export type CustomElementsSolidJs = {
94943
95677
  *
94944
95678
  * These can be used to apply styling when a component is in a given state.
94945
95679
  *
94946
- * - `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.
94947
95681
  * - `selected`: The item is chosen.
94948
95682
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
94949
95683
  */
@@ -95334,6 +96068,9 @@ export type CustomElementsSolidJs = {
95334
96068
  * `undefined` until somebody sets one.
95335
96069
  * - `label`: The tour's name, read by screen readers, such as "Getting started".
95336
96070
  * - `next-label`/`nextLabel`: Label for the control that goes on.
96071
+ * - `outside-press`/`outsidePress`: What a press outside the current stop and its target does while the tour
96072
+ * runs. Unset, nothing: the page stays usable. `close` ends the tour, as
96073
+ * Skip does, and `block` refuses the press.
95337
96074
  * - `progress`: Draws each stop's place in the run in its panel, as well as saying it.
95338
96075
  * - `progress-label`/`progressLabel`: Each stop's place in the run, with `{index}` and `{count}` filled in and
95339
96076
  * written in the locale. Translate it with the rest of your text.
@@ -95426,6 +96163,7 @@ export type CustomElementsSolidJs = {
95426
96163
  * These can be used to apply styling when a component is in a given state.
95427
96164
  *
95428
96165
  * - `open`: While the tour is running.
96166
+ * - `preparing`: While the tour waits for the current stop's `effect` before showing the stop.
95429
96167
  * - `waiting`: While the tour waits at a `wait` stop for its target to be on the page.
95430
96168
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
95431
96169
  */
@@ -95467,6 +96205,8 @@ export type CustomElementsSolidJs = {
95467
96205
  *
95468
96206
  * Reflected, because the styled tier places a dialog and a floating panel by
95469
96207
  * it, and unset at rest, so no default is written onto the host.
96208
+ * - `effect`: Run as the tour reaches the stop, before it is shown: see the description
96209
+ * above. A function, so it is set from script and has no attribute. (property only)
95470
96210
  * - `target`: The element the stop points at, or `null` when no element has the `for` id. (property only) (readonly)
95471
96211
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
95472
96212
  *
@@ -95560,6 +96300,8 @@ export type CustomElementsSolidJs = {
95560
96300
  *
95561
96301
  * These can be used to apply styling when a component is in a given state.
95562
96302
  *
96303
+ * - `entering`: From the moment the stop is shown until its entrance has finished.
96304
+ * - `exiting`: From the moment the stop is left until its exit has finished.
95563
96305
  * - `placed-bottom`: The panel sits below its target.
95564
96306
  * - `placed-left`: The panel sits to the left of its target.
95565
96307
  * - `placed-right`: The panel sits to the right of its target.
@@ -97707,6 +98449,8 @@ export type CustomCssProperties = {
97707
98449
  "--date-picker-period-size"?: (string) | undefined;
97708
98450
  /** Band behind the days in a range. */
97709
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;
97710
98454
  /** Height of a week row. */
97711
98455
  "--date-picker-row-size"?: (string) | undefined;
97712
98456
  /** Fill behind a selected day. */
@@ -99261,6 +100005,8 @@ export type CustomCssProperties = {
99261
100005
  "--toast-duration"?: (string) | undefined;
99262
100006
  /** How far a swipe has moved the message across, in pixels, toward the right. */
99263
100007
  "--toast-swipe-x"?: (string) | undefined;
100008
+ /** How far a swipe has moved the message down, in pixels, under a `swipe-direction` of `top` or `bottom`. */
100009
+ "--toast-swipe-y"?: (string) | undefined;
99264
100010
  /** Space between one message and the next. */
99265
100011
  "--toast-gap"?: (string) | undefined;
99266
100012
  /** Width of a message. */