@fusion.dev/helix 0.154.0 → 0.155.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
@@ -2945,6 +2945,15 @@ element's language. Leave the marks out of the text. */
2945
2945
  textContent?: (string | number) | undefined;
2946
2946
  };
2947
2947
 
2948
+ /** `HelixBreadcrumb` component event */
2949
+ export type HelixBreadcrumbElementEvent<E = Event> = TypedEvent<
2950
+ HelixBreadcrumb,
2951
+ E
2952
+ >;
2953
+ /** `helix-select` event type */
2954
+ export type HelixBreadcrumbHelixSelectElementEvent =
2955
+ HelixBreadcrumbElementEvent<HelixSelectEvent>;
2956
+
2948
2957
  export type HelixBreadcrumbProps = {
2949
2958
  /** Marks this item as the page you are on. */
2950
2959
  current?: (HelixBreadcrumb["current"]) | undefined;
@@ -2972,6 +2981,9 @@ The consumer's decision. */
2972
2981
  rel?: (HelixBreadcrumb["rel"]) | undefined;
2973
2982
  /** Where the link opens. Use it for a crumb that leaves the site. */
2974
2983
  target?: (HelixBreadcrumb["target"]) | undefined;
2984
+
2985
+ /** A plain press on the crumb's link, with its `href` as the value, before the browser follows it. Cancelable: cancel it to keep the browser from following, as a client-side router does. */
2986
+ "onhelix-select"?: ((e: HelixBreadcrumbHelixSelectElementEvent) => void) | undefined;
2975
2987
  };
2976
2988
 
2977
2989
  export type HelixBreadcrumbSolidJsProps = {
@@ -3001,6 +3013,8 @@ The consumer's decision. */
3001
3013
  "prop:rel"?: (HelixBreadcrumb["rel"]) | undefined;
3002
3014
  /** Where the link opens. Use it for a crumb that leaves the site. */
3003
3015
  "prop:target"?: (HelixBreadcrumb["target"]) | undefined;
3016
+ /** A plain press on the crumb's link, with its `href` as the value, before the browser follows it. Cancelable: cancel it to keep the browser from following, as a client-side router does. */
3017
+ "on:helix-select"?: ((e: HelixBreadcrumbHelixSelectElementEvent) => void) | undefined;
3004
3018
 
3005
3019
  /** Set the innerHTML of the element */
3006
3020
  innerHTML?: (string) | undefined;
@@ -7829,7 +7843,8 @@ Passed to the panel, whose square, hue ramp and presets say the color's
7829
7843
  name, and read by the swatch in `swatch`, which says it before the value.
7830
7844
  Color Picker lists the keys. */
7831
7845
  colorWords?: (HelixColorInput["colorWords"]) | undefined;
7832
- /** The syntax the value is written in: `hex`, `rgb`, or `hsl`.
7846
+ /** The syntax the value is written in: `hex`, `rgb`, `hsl`, `oklch`, or
7847
+ `hsb`, as Color Picker's `format`.
7833
7848
 
7834
7849
  **Undefaulted, because it reflects.** The two together stamp an attribute
7835
7850
  onto every host anybody renders, including the ones nobody configured: the
@@ -8049,7 +8064,8 @@ Passed to the panel, whose square, hue ramp and presets say the color's
8049
8064
  name, and read by the swatch in `swatch`, which says it before the value.
8050
8065
  Color Picker lists the keys. */
8051
8066
  "prop:colorWords"?: (HelixColorInput["colorWords"]) | undefined;
8052
- /** The syntax the value is written in: `hex`, `rgb`, or `hsl`.
8067
+ /** The syntax the value is written in: `hex`, `rgb`, `hsl`, `oklch`, or
8068
+ `hsb`, as Color Picker's `format`.
8053
8069
 
8054
8070
  **Undefaulted, because it reflects.** The two together stamp an attribute
8055
8071
  onto every host anybody renders, including the ones nobody configured: the
@@ -8238,8 +8254,9 @@ language hears its own rather than English between its own labels. */
8238
8254
  brightnessLabel?: (HelixColorPicker["brightnessLabel"]) | undefined;
8239
8255
  /** Whether the picker shows a number field for each channel of the color, as
8240
8256
  React Aria's ColorField does with `channel`: red, green and blue for hex
8241
- and rgb, hue, saturation and lightness for hsl, and the opacity with
8242
- `alpha`.
8257
+ and rgb, hue, saturation and lightness for hsl, hue, saturation and
8258
+ brightness for hsb, lightness, chroma and hue for oklch, and the opacity
8259
+ with `alpha`.
8243
8260
 
8244
8261
  For a reader who has the numbers from a brand guide, and for a keyboard,
8245
8262
  where typing 128 is quicker than holding an arrow key. The fields follow
@@ -8247,13 +8264,20 @@ the syntax the format toggle sets. */
8247
8264
  "channel-fields"?: (HelixColorPicker["channelFields"]) | undefined;
8248
8265
  /** Whether the picker shows a number field for each channel of the color, as
8249
8266
  React Aria's ColorField does with `channel`: red, green and blue for hex
8250
- and rgb, hue, saturation and lightness for hsl, and the opacity with
8251
- `alpha`.
8267
+ and rgb, hue, saturation and lightness for hsl, hue, saturation and
8268
+ brightness for hsb, lightness, chroma and hue for oklch, and the opacity
8269
+ with `alpha`.
8252
8270
 
8253
8271
  For a reader who has the numbers from a brand guide, and for a keyboard,
8254
8272
  where typing 128 is quicker than holding an arrow key. The fields follow
8255
8273
  the syntax the format toggle sets. */
8256
8274
  channelFields?: (HelixColorPicker["channelFields"]) | undefined;
8275
+ /** What the chroma channel's field is called, in `channel-fields` with
8276
+ oklch. */
8277
+ "chroma-label"?: (HelixColorPicker["chromaLabel"]) | undefined;
8278
+ /** What the chroma channel's field is called, in `channel-fields` with
8279
+ oklch. */
8280
+ chromaLabel?: (HelixColorPicker["chromaLabel"]) | undefined;
8257
8281
  /** The words a color's name is spoken in, as JSON keyed by their English,
8258
8282
  such as `{"red": "rot", "vibrant": "kräftiges"}`.
8259
8283
 
@@ -8294,10 +8318,16 @@ the color. */
8294
8318
  "eyedropper-label"?: (HelixColorPicker["eyedropperLabel"]) | undefined;
8295
8319
  /** What the eyedropper is called. */
8296
8320
  eyedropperLabel?: (HelixColorPicker["eyedropperLabel"]) | undefined;
8297
- /** The syntax the value is written in: `hex`, `rgb`, or `hsl`.
8321
+ /** The syntax the value is written in: `hex`, `rgb`, `hsl`, `oklch`, or
8322
+ `hsb`.
8298
8323
 
8299
8324
  Only what is written. Everything is read whatever this says, so a picker on
8300
- `hex` still takes an `rgb()` handed to it and stores the hex for it. */
8325
+ `hex` still takes an `rgb()` or an `oklch()` handed to it and stores the
8326
+ hex for it. `oklch` writes the sRGB color the picker holds, such as
8327
+ `oklch(62.8% 0.258 29.2)`; a color outside sRGB that is handed in is
8328
+ clipped to it. `hsb` writes the picker's own model, `hsb(0, 100%, 100%)`,
8329
+ as React Aria's and Zag's color strings do. It is not CSS, so the toggle
8330
+ walks the other four. */
8301
8331
  format?: (HelixColorPicker["format"]) | undefined;
8302
8332
  /** What the syntax toggle is called, with `{format}` filled in. */
8303
8333
  "format-label"?: (HelixColorPicker["formatLabel"]) | undefined;
@@ -8307,15 +8337,21 @@ Only what is written. Everything is read whatever this says, so a picker on
8307
8337
  "green-label"?: (HelixColorPicker["greenLabel"]) | undefined;
8308
8338
  /** What the green channel's field is called, in `channel-fields`. */
8309
8339
  greenLabel?: (HelixColorPicker["greenLabel"]) | undefined;
8340
+ /** Help under the picker, such as what the color is used for. The `hint`
8341
+ slot takes richer content. */
8342
+ hint?: (HelixColorPicker["hint"]) | undefined;
8310
8343
  /** What the hue channel is called. */
8311
8344
  "hue-label"?: (HelixColorPicker["hueLabel"]) | undefined;
8312
8345
  /** What the hue channel is called. */
8313
8346
  hueLabel?: (HelixColorPicker["hueLabel"]) | undefined;
8347
+ /** The name above the picker, such as "Brand color". The picker is then a
8348
+ group with this name. The `label` slot takes richer content. */
8349
+ label?: (HelixColorPicker["label"]) | undefined;
8314
8350
  /** What the lightness channel's field is called, in `channel-fields` with
8315
- hsl. */
8351
+ hsl and oklch. */
8316
8352
  "lightness-label"?: (HelixColorPicker["lightnessLabel"]) | undefined;
8317
8353
  /** What the lightness channel's field is called, in `channel-fields` with
8318
- hsl. */
8354
+ hsl and oklch. */
8319
8355
  lightnessLabel?: (HelixColorPicker["lightnessLabel"]) | undefined;
8320
8356
  /** Hides the eyedropper. Without it, the eyedropper appears in browsers that
8321
8357
  support one. */
@@ -8598,8 +8634,9 @@ language hears its own rather than English between its own labels. */
8598
8634
  "prop:brightnessLabel"?: (HelixColorPicker["brightnessLabel"]) | undefined;
8599
8635
  /** Whether the picker shows a number field for each channel of the color, as
8600
8636
  React Aria's ColorField does with `channel`: red, green and blue for hex
8601
- and rgb, hue, saturation and lightness for hsl, and the opacity with
8602
- `alpha`.
8637
+ and rgb, hue, saturation and lightness for hsl, hue, saturation and
8638
+ brightness for hsb, lightness, chroma and hue for oklch, and the opacity
8639
+ with `alpha`.
8603
8640
 
8604
8641
  For a reader who has the numbers from a brand guide, and for a keyboard,
8605
8642
  where typing 128 is quicker than holding an arrow key. The fields follow
@@ -8607,13 +8644,20 @@ the syntax the format toggle sets. */
8607
8644
  "bool:channel-fields"?: (HelixColorPicker["channelFields"]) | undefined;
8608
8645
  /** Whether the picker shows a number field for each channel of the color, as
8609
8646
  React Aria's ColorField does with `channel`: red, green and blue for hex
8610
- and rgb, hue, saturation and lightness for hsl, and the opacity with
8611
- `alpha`.
8647
+ and rgb, hue, saturation and lightness for hsl, hue, saturation and
8648
+ brightness for hsb, lightness, chroma and hue for oklch, and the opacity
8649
+ with `alpha`.
8612
8650
 
8613
8651
  For a reader who has the numbers from a brand guide, and for a keyboard,
8614
8652
  where typing 128 is quicker than holding an arrow key. The fields follow
8615
8653
  the syntax the format toggle sets. */
8616
8654
  "prop:channelFields"?: (HelixColorPicker["channelFields"]) | undefined;
8655
+ /** What the chroma channel's field is called, in `channel-fields` with
8656
+ oklch. */
8657
+ "attr:chroma-label"?: (HelixColorPicker["chromaLabel"]) | undefined;
8658
+ /** What the chroma channel's field is called, in `channel-fields` with
8659
+ oklch. */
8660
+ "prop:chromaLabel"?: (HelixColorPicker["chromaLabel"]) | undefined;
8617
8661
  /** The words a color's name is spoken in, as JSON keyed by their English,
8618
8662
  such as `{"red": "rot", "vibrant": "kräftiges"}`.
8619
8663
 
@@ -8654,10 +8698,16 @@ the color. */
8654
8698
  "attr:eyedropper-label"?: (HelixColorPicker["eyedropperLabel"]) | undefined;
8655
8699
  /** What the eyedropper is called. */
8656
8700
  "prop:eyedropperLabel"?: (HelixColorPicker["eyedropperLabel"]) | undefined;
8657
- /** The syntax the value is written in: `hex`, `rgb`, or `hsl`.
8701
+ /** The syntax the value is written in: `hex`, `rgb`, `hsl`, `oklch`, or
8702
+ `hsb`.
8658
8703
 
8659
8704
  Only what is written. Everything is read whatever this says, so a picker on
8660
- `hex` still takes an `rgb()` handed to it and stores the hex for it. */
8705
+ `hex` still takes an `rgb()` or an `oklch()` handed to it and stores the
8706
+ hex for it. `oklch` writes the sRGB color the picker holds, such as
8707
+ `oklch(62.8% 0.258 29.2)`; a color outside sRGB that is handed in is
8708
+ clipped to it. `hsb` writes the picker's own model, `hsb(0, 100%, 100%)`,
8709
+ as React Aria's and Zag's color strings do. It is not CSS, so the toggle
8710
+ walks the other four. */
8661
8711
  "prop:format"?: (HelixColorPicker["format"]) | undefined;
8662
8712
  /** What the syntax toggle is called, with `{format}` filled in. */
8663
8713
  "attr:format-label"?: (HelixColorPicker["formatLabel"]) | undefined;
@@ -8667,15 +8717,21 @@ Only what is written. Everything is read whatever this says, so a picker on
8667
8717
  "attr:green-label"?: (HelixColorPicker["greenLabel"]) | undefined;
8668
8718
  /** What the green channel's field is called, in `channel-fields`. */
8669
8719
  "prop:greenLabel"?: (HelixColorPicker["greenLabel"]) | undefined;
8720
+ /** Help under the picker, such as what the color is used for. The `hint`
8721
+ slot takes richer content. */
8722
+ "prop:hint"?: (HelixColorPicker["hint"]) | undefined;
8670
8723
  /** What the hue channel is called. */
8671
8724
  "attr:hue-label"?: (HelixColorPicker["hueLabel"]) | undefined;
8672
8725
  /** What the hue channel is called. */
8673
8726
  "prop:hueLabel"?: (HelixColorPicker["hueLabel"]) | undefined;
8727
+ /** The name above the picker, such as "Brand color". The picker is then a
8728
+ group with this name. The `label` slot takes richer content. */
8729
+ "prop:label"?: (HelixColorPicker["label"]) | undefined;
8674
8730
  /** What the lightness channel's field is called, in `channel-fields` with
8675
- hsl. */
8731
+ hsl and oklch. */
8676
8732
  "attr:lightness-label"?: (HelixColorPicker["lightnessLabel"]) | undefined;
8677
8733
  /** What the lightness channel's field is called, in `channel-fields` with
8678
- hsl. */
8734
+ hsl and oklch. */
8679
8735
  "prop:lightnessLabel"?: (HelixColorPicker["lightnessLabel"]) | undefined;
8680
8736
  /** Hides the eyedropper. Without it, the eyedropper appears in browsers that
8681
8737
  support one. */
@@ -11923,15 +11979,22 @@ speaks it. Unset is the sentence registered for the page's language, then
11923
11979
  the English. `{mode}` is `single`, `range` or `multiple`, so each can have
11924
11980
  its own sentence. */
11925
11981
  badInputMessage?: (HelixDatePicker["badInputMessage"]) | undefined;
11926
- /** The calendar the heading, the days, and the months are written in:
11927
- `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, the five whose
11928
- months are the Gregorian months.
11929
-
11930
- Absent is the locale's own where it is one of the five, such as
11931
- `buddhist` for `th-TH` or `japanese` for `ja-JP-u-ca-japanese`, and
11932
- `gregory` for every other, such as `persian` for `fa-IR`, so the heading
11933
- names the Gregorian month the grid shows. The value is `YYYY-MM-DD` in
11934
- every calendar. */
11982
+ /** The calendar the heading, the days, and the months are written in.
11983
+
11984
+ `gregory`, `buddhist`, `japanese`, `roc`, and `iso8601` are the five
11985
+ whose months are the Gregorian months. Absent is the locale's own where
11986
+ it is one of the five, such as `buddhist` for `th-TH` or `japanese` for
11987
+ `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
11988
+ for `fa-IR`.
11989
+
11990
+ `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
11991
+ `coptic`, and `indian` draw a calendar with months of its own, as React
11992
+ Aria's calendars do: each grid is one of that calendar's months, the
11993
+ Hebrew leap month and Ethiopia's five-day thirteenth month included, and
11994
+ Previous, Next and the page keys move by those months. `month` and
11995
+ `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
11996
+ heading stays text, as the months and years views are drawn in Gregorian
11997
+ months only. The value is `YYYY-MM-DD` in every calendar. */
11935
11998
  calendar?: (HelixDatePicker["calendar"]) | undefined;
11936
11999
  /** The month to open on when `month` is not set. */
11937
12000
  "default-month"?: (HelixDatePicker["defaultMonth"]) | undefined;
@@ -11990,8 +12053,9 @@ its days. */
11990
12053
  min?: (HelixDatePicker["min"]) | undefined;
11991
12054
  /** How many dates can be held at once. */
11992
12055
  mode?: (HelixDatePicker["mode"]) | undefined;
11993
- /** The month shown, as `YYYY-MM`. When it is not set, it follows `value`,
11994
- then the current month.
12056
+ /** The month shown, as `YYYY-MM`, or as its first day, `YYYY-MM-DD`, under a
12057
+ `calendar` with months of its own. When it is not set, it follows
12058
+ `value`, then the current month.
11995
12059
 
11996
12060
  Separate from `value` on purpose, so paging selects nothing and a consumer
11997
12061
  can drive the view. Reading gives the month on show; writing sets it, and
@@ -12093,6 +12157,22 @@ date including the one already chosen. */
12093
12157
  "step-mismatch-message"?: (HelixDatePicker["stepMismatchMessage"]) | undefined;
12094
12158
  /** The validation message for a date that `step` skips. */
12095
12159
  stepMismatchMessage?: (HelixDatePicker["stepMismatchMessage"]) | undefined;
12160
+ /** The time zone today is read in, such as `America/New_York`, as React
12161
+ Aria's `today(timeZone)` reads it. Empty is the reader's own.
12162
+
12163
+ Dates are plain `YYYY-MM-DD` and carry no zone, so this moves only today:
12164
+ the day marked `aria-current` and `day-today`, and the month a picker
12165
+ with no value opens on. A desk in Tokyo booking for an office in New York
12166
+ sets `America/New_York`, and today is the office's. */
12167
+ "time-zone"?: (HelixDatePicker["timeZone"]) | undefined;
12168
+ /** The time zone today is read in, such as `America/New_York`, as React
12169
+ Aria's `today(timeZone)` reads it. Empty is the reader's own.
12170
+
12171
+ Dates are plain `YYYY-MM-DD` and carry no zone, so this moves only today:
12172
+ the day marked `aria-current` and `day-today`, and the month a picker
12173
+ with no value opens on. A desk in Tokyo booking for an office in New York
12174
+ sets `America/New_York`, and today is the office's. */
12175
+ timeZone?: (HelixDatePicker["timeZone"]) | undefined;
12096
12176
  /** The validation message for a date that `disable-dates` or `disable-days`
12097
12177
  bars. */
12098
12178
  "unavailable-message"?: (HelixDatePicker["unavailableMessage"]) | undefined;
@@ -12230,15 +12310,22 @@ speaks it. Unset is the sentence registered for the page's language, then
12230
12310
  the English. `{mode}` is `single`, `range` or `multiple`, so each can have
12231
12311
  its own sentence. */
12232
12312
  "prop:badInputMessage"?: (HelixDatePicker["badInputMessage"]) | undefined;
12233
- /** The calendar the heading, the days, and the months are written in:
12234
- `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, the five whose
12235
- months are the Gregorian months.
12236
-
12237
- Absent is the locale's own where it is one of the five, such as
12238
- `buddhist` for `th-TH` or `japanese` for `ja-JP-u-ca-japanese`, and
12239
- `gregory` for every other, such as `persian` for `fa-IR`, so the heading
12240
- names the Gregorian month the grid shows. The value is `YYYY-MM-DD` in
12241
- every calendar. */
12313
+ /** The calendar the heading, the days, and the months are written in.
12314
+
12315
+ `gregory`, `buddhist`, `japanese`, `roc`, and `iso8601` are the five
12316
+ whose months are the Gregorian months. Absent is the locale's own where
12317
+ it is one of the five, such as `buddhist` for `th-TH` or `japanese` for
12318
+ `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
12319
+ for `fa-IR`.
12320
+
12321
+ `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
12322
+ `coptic`, and `indian` draw a calendar with months of its own, as React
12323
+ Aria's calendars do: each grid is one of that calendar's months, the
12324
+ Hebrew leap month and Ethiopia's five-day thirteenth month included, and
12325
+ Previous, Next and the page keys move by those months. `month` and
12326
+ `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
12327
+ heading stays text, as the months and years views are drawn in Gregorian
12328
+ months only. The value is `YYYY-MM-DD` in every calendar. */
12242
12329
  "prop:calendar"?: (HelixDatePicker["calendar"]) | undefined;
12243
12330
  /** The month to open on when `month` is not set. */
12244
12331
  "attr:default-month"?: (HelixDatePicker["defaultMonth"]) | undefined;
@@ -12297,8 +12384,9 @@ its days. */
12297
12384
  "prop:min"?: (HelixDatePicker["min"]) | undefined;
12298
12385
  /** How many dates can be held at once. */
12299
12386
  "prop:mode"?: (HelixDatePicker["mode"]) | undefined;
12300
- /** The month shown, as `YYYY-MM`. When it is not set, it follows `value`,
12301
- then the current month.
12387
+ /** The month shown, as `YYYY-MM`, or as its first day, `YYYY-MM-DD`, under a
12388
+ `calendar` with months of its own. When it is not set, it follows
12389
+ `value`, then the current month.
12302
12390
 
12303
12391
  Separate from `value` on purpose, so paging selects nothing and a consumer
12304
12392
  can drive the view. Reading gives the month on show; writing sets it, and
@@ -12400,6 +12488,22 @@ date including the one already chosen. */
12400
12488
  "attr:step-mismatch-message"?: (HelixDatePicker["stepMismatchMessage"]) | undefined;
12401
12489
  /** The validation message for a date that `step` skips. */
12402
12490
  "prop:stepMismatchMessage"?: (HelixDatePicker["stepMismatchMessage"]) | undefined;
12491
+ /** The time zone today is read in, such as `America/New_York`, as React
12492
+ Aria's `today(timeZone)` reads it. Empty is the reader's own.
12493
+
12494
+ Dates are plain `YYYY-MM-DD` and carry no zone, so this moves only today:
12495
+ the day marked `aria-current` and `day-today`, and the month a picker
12496
+ with no value opens on. A desk in Tokyo booking for an office in New York
12497
+ sets `America/New_York`, and today is the office's. */
12498
+ "attr:time-zone"?: (HelixDatePicker["timeZone"]) | undefined;
12499
+ /** The time zone today is read in, such as `America/New_York`, as React
12500
+ Aria's `today(timeZone)` reads it. Empty is the reader's own.
12501
+
12502
+ Dates are plain `YYYY-MM-DD` and carry no zone, so this moves only today:
12503
+ the day marked `aria-current` and `day-today`, and the month a picker
12504
+ with no value opens on. A desk in Tokyo booking for an office in New York
12505
+ sets `America/New_York`, and today is the office's. */
12506
+ "prop:timeZone"?: (HelixDatePicker["timeZone"]) | undefined;
12403
12507
  /** The validation message for a date that `disable-dates` or `disable-days`
12404
12508
  bars. */
12405
12509
  "attr:unavailable-message"?: (HelixDatePicker["unavailableMessage"]) | undefined;
@@ -28415,6 +28519,18 @@ the stop moves on the trigger inside the shadow root, as Button's does.
28415
28519
  No attribute, because it is coordination between elements rather than
28416
28520
  anything a consumer sets. */
28417
28521
  focusable?: (HelixSelect["focusable"]) | undefined;
28522
+ /** The options as data, for a list too long to draw whole: each a value,
28523
+ which is also its words, or a record with a `value`, a `label` and
28524
+ `disabled`. Passed to the list, which draws only the options in sight,
28525
+ as Listbox's `items` does. Set, the options you write as children are
28526
+ not read.
28527
+
28528
+ The trigger shows the chosen options' labels, the letters and the Left
28529
+ and Right keys on the closed trigger choose over the whole set, and a
28530
+ chosen value whose option leaves `items` drops out of `value`.
28531
+ `value-content` is not called for `items`. Import the Option family as
28532
+ well, whose elements are drawn. */
28533
+ items?: (HelixSelect["items"]) | undefined;
28418
28534
  /** What the trigger shows for the chosen options: a function given them, in
28419
28535
  the order they appear, that returns text, an element or a Lit template.
28420
28536
 
@@ -28650,6 +28766,18 @@ the stop moves on the trigger inside the shadow root, as Button's does.
28650
28766
  No attribute, because it is coordination between elements rather than
28651
28767
  anything a consumer sets. */
28652
28768
  "prop:focusable"?: (HelixSelect["focusable"]) | undefined;
28769
+ /** The options as data, for a list too long to draw whole: each a value,
28770
+ which is also its words, or a record with a `value`, a `label` and
28771
+ `disabled`. Passed to the list, which draws only the options in sight,
28772
+ as Listbox's `items` does. Set, the options you write as children are
28773
+ not read.
28774
+
28775
+ The trigger shows the chosen options' labels, the letters and the Left
28776
+ and Right keys on the closed trigger choose over the whole set, and a
28777
+ chosen value whose option leaves `items` drops out of `value`.
28778
+ `value-content` is not called for `items`. Import the Option family as
28779
+ well, whose elements are drawn. */
28780
+ "prop:items"?: (HelixSelect["items"]) | undefined;
28653
28781
  /** What the trigger shows for the chosen options: a function given them, in
28654
28782
  the order they appear, that returns text, an element or a Lit template.
28655
28783
 
@@ -28935,9 +29063,11 @@ between its thumbs and ignores it. */
28935
29063
  origin?: (HelixSlider["origin"]) | undefined;
28936
29064
  /** Adds a second thumb, so the value is a pair.
28937
29065
 
28938
- The pair is one string, `"10,50"`, which is what a form submits and what
28939
- `MixinControllerValue` already holds. `valueAsNumber` reads the lower of
28940
- the two, since a range has no single number. */
29066
+ The pair is one string, `"10,50"`, which is what `value` and
29067
+ `MixinControllerValue` hold. A form receives two entries under the name,
29068
+ `price=10&price=50`, as React Aria's two thumbs send theirs.
29069
+ `valueAsNumber` reads the lower of the two, since a range has no single
29070
+ number. */
28941
29071
  range?: (HelixSlider["range"]) | undefined;
28942
29072
  /** How the readout joins a range's two values, with `{start}` and `{end}`
28943
29073
  filled in. Write it in the page's language, such as `{start} bis {end}`. */
@@ -28945,12 +29075,34 @@ filled in. Write it in the page's language, such as `{start} bis {end}`. */
28945
29075
  /** How the readout joins a range's two values, with `{start}` and `{end}`
28946
29076
  filled in. Write it in the page's language, such as `{start} bis {end}`. */
28947
29077
  rangeText?: (HelixSlider["rangeText"]) | undefined;
29078
+ /** Whether a reader can see and focus the value and cannot change it. A
29079
+ read-only slider still submits its value.
29080
+
29081
+ React Aria's `isReadOnly`. Each thumb stays a tab stop and says
29082
+ `aria-readonly`. The arrow keys, the page keys, Home, End, and a drag
29083
+ leave the value where it is. A script can still set `value`. */
29084
+ readonly?: (HelixSlider["readOnly"]) | undefined;
29085
+ /** Whether a reader can see and focus the value and cannot change it. A
29086
+ read-only slider still submits its value.
29087
+
29088
+ React Aria's `isReadOnly`. Each thumb stays a tab stop and says
29089
+ `aria-readonly`. The arrow keys, the page keys, Home, End, and a drag
29090
+ leave the value where it is. A script can still set `value`. */
29091
+ readOnly?: (HelixSlider["readOnly"]) | undefined;
28948
29092
  /** Shows the chosen value beside the track. */
28949
29093
  "show-value"?: (HelixSlider["showValue"]) | undefined;
28950
29094
  /** Shows the chosen value beside the track. */
28951
29095
  showValue?: (HelixSlider["showValue"]) | undefined;
28952
29096
  /** How far one press of an arrow key moves the thumb. */
28953
29097
  step?: (HelixSlider["step"]) | undefined;
29098
+ /** The name of a thumb between a range's first and last, read after the
29099
+ slider's label, with `{index}` filled in: its place, counted from 1. The
29100
+ first is `minimum-label` and the last `maximum-label`. */
29101
+ "thumb-label"?: (HelixSlider["thumbLabel"]) | undefined;
29102
+ /** The name of a thumb between a range's first and last, read after the
29103
+ slider's label, with `{index}` filled in: its place, counted from 1. The
29104
+ first is `minimum-label` and the last `maximum-label`. */
29105
+ thumbLabel?: (HelixSlider["thumbLabel"]) | undefined;
28954
29106
  /** Whether each thumb shows its value in a bubble beside it, as Web
28955
29107
  Awesome's `with-tooltip`. The styled slider shows the bubbles while the
28956
29108
  slider is under the pointer or holds focus. They repeat what each thumb
@@ -29139,9 +29291,11 @@ between its thumbs and ignores it. */
29139
29291
  "prop:origin"?: (HelixSlider["origin"]) | undefined;
29140
29292
  /** Adds a second thumb, so the value is a pair.
29141
29293
 
29142
- The pair is one string, `"10,50"`, which is what a form submits and what
29143
- `MixinControllerValue` already holds. `valueAsNumber` reads the lower of
29144
- the two, since a range has no single number. */
29294
+ The pair is one string, `"10,50"`, which is what `value` and
29295
+ `MixinControllerValue` hold. A form receives two entries under the name,
29296
+ `price=10&price=50`, as React Aria's two thumbs send theirs.
29297
+ `valueAsNumber` reads the lower of the two, since a range has no single
29298
+ number. */
29145
29299
  "prop:range"?: (HelixSlider["range"]) | undefined;
29146
29300
  /** How the readout joins a range's two values, with `{start}` and `{end}`
29147
29301
  filled in. Write it in the page's language, such as `{start} bis {end}`. */
@@ -29149,12 +29303,34 @@ filled in. Write it in the page's language, such as `{start} bis {end}`. */
29149
29303
  /** How the readout joins a range's two values, with `{start}` and `{end}`
29150
29304
  filled in. Write it in the page's language, such as `{start} bis {end}`. */
29151
29305
  "prop:rangeText"?: (HelixSlider["rangeText"]) | undefined;
29306
+ /** Whether a reader can see and focus the value and cannot change it. A
29307
+ read-only slider still submits its value.
29308
+
29309
+ React Aria's `isReadOnly`. Each thumb stays a tab stop and says
29310
+ `aria-readonly`. The arrow keys, the page keys, Home, End, and a drag
29311
+ leave the value where it is. A script can still set `value`. */
29312
+ "bool:readonly"?: (HelixSlider["readOnly"]) | undefined;
29313
+ /** Whether a reader can see and focus the value and cannot change it. A
29314
+ read-only slider still submits its value.
29315
+
29316
+ React Aria's `isReadOnly`. Each thumb stays a tab stop and says
29317
+ `aria-readonly`. The arrow keys, the page keys, Home, End, and a drag
29318
+ leave the value where it is. A script can still set `value`. */
29319
+ "prop:readOnly"?: (HelixSlider["readOnly"]) | undefined;
29152
29320
  /** Shows the chosen value beside the track. */
29153
29321
  "bool:show-value"?: (HelixSlider["showValue"]) | undefined;
29154
29322
  /** Shows the chosen value beside the track. */
29155
29323
  "prop:showValue"?: (HelixSlider["showValue"]) | undefined;
29156
29324
  /** How far one press of an arrow key moves the thumb. */
29157
29325
  "prop:step"?: (HelixSlider["step"]) | undefined;
29326
+ /** The name of a thumb between a range's first and last, read after the
29327
+ slider's label, with `{index}` filled in: its place, counted from 1. The
29328
+ first is `minimum-label` and the last `maximum-label`. */
29329
+ "attr:thumb-label"?: (HelixSlider["thumbLabel"]) | undefined;
29330
+ /** The name of a thumb between a range's first and last, read after the
29331
+ slider's label, with `{index}` filled in: its place, counted from 1. The
29332
+ first is `minimum-label` and the last `maximum-label`. */
29333
+ "prop:thumbLabel"?: (HelixSlider["thumbLabel"]) | undefined;
29158
29334
  /** Whether each thumb shows its value in a bubble beside it, as Web
29159
29335
  Awesome's `with-tooltip`. The styled slider shows the bubbles while the
29160
29336
  slider is under the pointer or holds focus. They repeat what each thumb
@@ -29613,10 +29789,20 @@ export type HelixSpeedDialItemHelixSelectElementEvent =
29613
29789
  export type HelixSpeedDialItemProps = {
29614
29790
  /** Whether the action is disabled, so it cannot be chosen. */
29615
29791
  disabled?: (HelixSpeedDialItem["disabled"]) | undefined;
29792
+ /** Whether the link downloads the file when the action is chosen. Only
29793
+ meaningful beside an `href`, and only for a file served from the page's
29794
+ origin. */
29795
+ download?: (HelixSpeedDialItem["download"]) | undefined;
29796
+ /** The URL the action links to. Setting it draws the action as a link. */
29797
+ href?: (HelixSpeedDialItem["href"]) | undefined;
29798
+ /** The link's `rel`. Set it whenever you set `target="_blank"`. */
29799
+ rel?: (HelixSpeedDialItem["rel"]) | undefined;
29616
29800
  /** The action's keyboard shortcut as a chord, such as `mod+s`, carried as
29617
29801
  `aria-keyshortcuts` and drawn after the name. `mod` is Command on an Apple
29618
29802
  keyboard and Control elsewhere. Showing a shortcut does not bind it. */
29619
29803
  shortcut?: (HelixSpeedDialItem["shortcut"]) | undefined;
29804
+ /** Where the link opens, such as `_blank` for a new tab. */
29805
+ target?: (HelixSpeedDialItem["target"]) | undefined;
29620
29806
  /** The action's value, sent in `helix-select` when the action is chosen. */
29621
29807
  value?: (HelixSpeedDialItem["value"]) | undefined;
29622
29808
 
@@ -29627,10 +29813,20 @@ keyboard and Control elsewhere. Showing a shortcut does not bind it. */
29627
29813
  export type HelixSpeedDialItemSolidJsProps = {
29628
29814
  /** Whether the action is disabled, so it cannot be chosen. */
29629
29815
  "prop:disabled"?: (HelixSpeedDialItem["disabled"]) | undefined;
29816
+ /** Whether the link downloads the file when the action is chosen. Only
29817
+ meaningful beside an `href`, and only for a file served from the page's
29818
+ origin. */
29819
+ "prop:download"?: (HelixSpeedDialItem["download"]) | undefined;
29820
+ /** The URL the action links to. Setting it draws the action as a link. */
29821
+ "prop:href"?: (HelixSpeedDialItem["href"]) | undefined;
29822
+ /** The link's `rel`. Set it whenever you set `target="_blank"`. */
29823
+ "prop:rel"?: (HelixSpeedDialItem["rel"]) | undefined;
29630
29824
  /** The action's keyboard shortcut as a chord, such as `mod+s`, carried as
29631
29825
  `aria-keyshortcuts` and drawn after the name. `mod` is Command on an Apple
29632
29826
  keyboard and Control elsewhere. Showing a shortcut does not bind it. */
29633
29827
  "prop:shortcut"?: (HelixSpeedDialItem["shortcut"]) | undefined;
29828
+ /** Where the link opens, such as `_blank` for a new tab. */
29829
+ "prop:target"?: (HelixSpeedDialItem["target"]) | undefined;
29634
29830
  /** The action's value, sent in `helix-select` when the action is chosen. */
29635
29831
  "prop:value"?: (HelixSpeedDialItem["value"]) | undefined;
29636
29832
  /** The action was chosen. Cancelable: cancel it to keep the dial open. */
@@ -29703,13 +29899,17 @@ you described or labeled it yourself. */
29703
29899
  longPressLabel?: (HelixSpeedDial["longPressLabel"]) | undefined;
29704
29900
  /** Space between the trigger and the actions, in pixels. */
29705
29901
  offset?: (HelixSpeedDial["offset"]) | undefined;
29706
- /** What opens the dial. `click` opens it on a press of the trigger. Under
29707
- `long-press`, a press is the trigger's own action, and the dial opens on a
29708
- press held for half a second, or on Alt+Down or Alt+Up. */
29902
+ /** What opens the dial. `click` opens it on a press of the trigger. `hover`
29903
+ also opens it while a mouse rests on the trigger, and closes it once the
29904
+ mouse has left. Under `long-press`, a press is the trigger's own action,
29905
+ and the dial opens on a press held for half a second, or on Alt+Down or
29906
+ Alt+Up. */
29709
29907
  "open-on"?: (HelixSpeedDial["openOn"]) | undefined;
29710
- /** What opens the dial. `click` opens it on a press of the trigger. Under
29711
- `long-press`, a press is the trigger's own action, and the dial opens on a
29712
- press held for half a second, or on Alt+Down or Alt+Up. */
29908
+ /** What opens the dial. `click` opens it on a press of the trigger. `hover`
29909
+ also opens it while a mouse rests on the trigger, and closes it once the
29910
+ mouse has left. Under `long-press`, a press is the trigger's own action,
29911
+ and the dial opens on a press held for half a second, or on Alt+Down or
29912
+ Alt+Up. */
29713
29913
  openOn?: (HelixSpeedDial["openOn"]) | undefined;
29714
29914
  /** The direction the actions open in. They move to another side if that side
29715
29915
  does not fit.
@@ -29775,13 +29975,17 @@ you described or labeled it yourself. */
29775
29975
  "prop:longPressLabel"?: (HelixSpeedDial["longPressLabel"]) | undefined;
29776
29976
  /** Space between the trigger and the actions, in pixels. */
29777
29977
  "prop:offset"?: (HelixSpeedDial["offset"]) | undefined;
29778
- /** What opens the dial. `click` opens it on a press of the trigger. Under
29779
- `long-press`, a press is the trigger's own action, and the dial opens on a
29780
- press held for half a second, or on Alt+Down or Alt+Up. */
29978
+ /** What opens the dial. `click` opens it on a press of the trigger. `hover`
29979
+ also opens it while a mouse rests on the trigger, and closes it once the
29980
+ mouse has left. Under `long-press`, a press is the trigger's own action,
29981
+ and the dial opens on a press held for half a second, or on Alt+Down or
29982
+ Alt+Up. */
29781
29983
  "attr:open-on"?: (HelixSpeedDial["openOn"]) | undefined;
29782
- /** What opens the dial. `click` opens it on a press of the trigger. Under
29783
- `long-press`, a press is the trigger's own action, and the dial opens on a
29784
- press held for half a second, or on Alt+Down or Alt+Up. */
29984
+ /** What opens the dial. `click` opens it on a press of the trigger. `hover`
29985
+ also opens it while a mouse rests on the trigger, and closes it once the
29986
+ mouse has left. Under `long-press`, a press is the trigger's own action,
29987
+ and the dial opens on a press held for half a second, or on Alt+Down or
29988
+ Alt+Up. */
29785
29989
  "prop:openOn"?: (HelixSpeedDial["openOn"]) | undefined;
29786
29990
  /** The direction the actions open in. They move to another side if that side
29787
29991
  does not fit.
@@ -30317,6 +30521,16 @@ Ignored once `active` is written. */
30317
30521
 
30318
30522
  Ignored once `active` is written. */
30319
30523
  defaultActive?: (HelixSteps["defaultActive"]) | undefined;
30524
+ /** Whether the arrow keys move focus between the stages' names, along the
30525
+ way the steps run. Off by default, so the arrows keep scrolling the page. */
30526
+ arrows?: (HelixSteps["arrows"]) | undefined;
30527
+ /** What marks a stage `complete`.
30528
+
30529
+ Absent, you do: each step's `complete` is yours, because a reader who
30530
+ steps back has finished more stages than the one they are on. `passed`
30531
+ marks every stage before the one a reader moves to, and leaves the marks
30532
+ when they go back. */
30533
+ completion?: (HelixSteps["completion"]) | undefined;
30320
30534
  /** The sequence's name, read by screen readers.
30321
30535
 
30322
30536
  A list of stages is a landmark a reader arrives at out of order, so it
@@ -30391,6 +30605,16 @@ Ignored once `active` is written. */
30391
30605
 
30392
30606
  Ignored once `active` is written. */
30393
30607
  "prop:defaultActive"?: (HelixSteps["defaultActive"]) | undefined;
30608
+ /** Whether the arrow keys move focus between the stages' names, along the
30609
+ way the steps run. Off by default, so the arrows keep scrolling the page. */
30610
+ "prop:arrows"?: (HelixSteps["arrows"]) | undefined;
30611
+ /** What marks a stage `complete`.
30612
+
30613
+ Absent, you do: each step's `complete` is yours, because a reader who
30614
+ steps back has finished more stages than the one they are on. `passed`
30615
+ marks every stage before the one a reader moves to, and leaves the marks
30616
+ when they go back. */
30617
+ "prop:completion"?: (HelixSteps["completion"]) | undefined;
30394
30618
  /** The sequence's name, read by screen readers.
30395
30619
 
30396
30620
  A list of stages is a landmark a reader arrives at out of order, so it
@@ -31712,6 +31936,12 @@ panels and tells a screen reader the list is vertical.
31712
31936
 
31713
31937
  Optional, so the resting row writes no attribute onto the host. */
31714
31938
  orientation?: (HelixTabs["orientation"]) | undefined;
31939
+ /** Whether a strip with more tabs than fit shows a button at each end it can
31940
+ scroll toward. */
31941
+ "scroll-controls"?: (HelixTabs["scrollControls"]) | undefined;
31942
+ /** Whether a strip with more tabs than fit shows a button at each end it can
31943
+ scroll toward. */
31944
+ scrollControls?: (HelixTabs["scrollControls"]) | undefined;
31715
31945
  /** How the row of tabs is drawn.
31716
31946
 
31717
31947
  Unset is a raised pill on the selected tab with nothing behind the row,
@@ -31781,6 +32011,12 @@ panels and tells a screen reader the list is vertical.
31781
32011
 
31782
32012
  Optional, so the resting row writes no attribute onto the host. */
31783
32013
  "prop:orientation"?: (HelixTabs["orientation"]) | undefined;
32014
+ /** Whether a strip with more tabs than fit shows a button at each end it can
32015
+ scroll toward. */
32016
+ "bool:scroll-controls"?: (HelixTabs["scrollControls"]) | undefined;
32017
+ /** Whether a strip with more tabs than fit shows a button at each end it can
32018
+ scroll toward. */
32019
+ "prop:scrollControls"?: (HelixTabs["scrollControls"]) | undefined;
31784
32020
  /** How the row of tabs is drawn.
31785
32021
 
31786
32022
  Unset is a raised pill on the selected tab with nothing behind the row,
@@ -31821,11 +32057,38 @@ consumer's server markup does not already have. */
31821
32057
 
31822
32058
  /** `HelixTab` component event */
31823
32059
  export type HelixTabElementEvent<E = Event> = TypedEvent<HelixTab, E>;
32060
+ /** `helix-dismiss` event type */
32061
+ export type HelixTabHelixDismissElementEvent =
32062
+ HelixTabElementEvent<HelixDismissEvent>;
31824
32063
  /** `helix-select` event type */
31825
32064
  export type HelixTabHelixSelectElementEvent =
31826
32065
  HelixTabElementEvent<HelixSelectEvent>;
31827
32066
 
31828
32067
  export type HelixTabProps = {
32068
+ /** Whether the element shows a control that dismisses it. */
32069
+ dismissible?: (HelixTab["dismissible"]) | undefined;
32070
+ /** The dismiss control's label, read by screen readers.
32071
+
32072
+ `attribute` is spelled out because Lit lowercases a property name to
32073
+ derive one rather than dash-casing it, so this would otherwise be
32074
+ reachable only as `dismisslabel`, which nobody would guess and no linter
32075
+ would catch.
32076
+
32077
+ A word property: register it for a locale under the host's key. A family
32078
+ that names the control otherwise, such as Tag's `Remove {label}`,
32079
+ declares its own English with `@words` above the override. */
32080
+ "dismiss-label"?: (HelixTab["dismissLabel"]) | undefined;
32081
+ /** The dismiss control's label, read by screen readers.
32082
+
32083
+ `attribute` is spelled out because Lit lowercases a property name to
32084
+ derive one rather than dash-casing it, so this would otherwise be
32085
+ reachable only as `dismisslabel`, which nobody would guess and no linter
32086
+ would catch.
32087
+
32088
+ A word property: register it for a locale under the host's key. A family
32089
+ that names the control otherwise, such as Tag's `Remove {label}`,
32090
+ declares its own English with `@words` above the override. */
32091
+ dismissLabel?: (HelixTab["dismissLabel"]) | undefined;
31829
32092
  /** Whether the item is disabled and cannot be chosen. */
31830
32093
  disabled?: (HelixTab["disabled"]) | undefined;
31831
32094
  /** Whether the item is selected.
@@ -31845,11 +32108,37 @@ of tabs that are pages of a site. */
31845
32108
  /** Where the link opens, such as `_blank`, for a tab with an `href`. */
31846
32109
  target?: (HelixTab["target"]) | undefined;
31847
32110
 
32111
+ /** A `dismissible` tab was asked to close. The tab does not remove itself, so remove it and its panel in response. Cancelable. */
32112
+ "onhelix-dismiss"?: ((e: HelixTabHelixDismissElementEvent) => void) | undefined;
31848
32113
  /** Fired when the tab is chosen. Cancelable: canceling it stops the change and leaves the decision to you. */
31849
32114
  "onhelix-select"?: ((e: HelixTabHelixSelectElementEvent) => void) | undefined;
31850
32115
  };
31851
32116
 
31852
32117
  export type HelixTabSolidJsProps = {
32118
+ /** Whether the element shows a control that dismisses it. */
32119
+ "prop:dismissible"?: (HelixTab["dismissible"]) | undefined;
32120
+ /** The dismiss control's label, read by screen readers.
32121
+
32122
+ `attribute` is spelled out because Lit lowercases a property name to
32123
+ derive one rather than dash-casing it, so this would otherwise be
32124
+ reachable only as `dismisslabel`, which nobody would guess and no linter
32125
+ would catch.
32126
+
32127
+ A word property: register it for a locale under the host's key. A family
32128
+ that names the control otherwise, such as Tag's `Remove {label}`,
32129
+ declares its own English with `@words` above the override. */
32130
+ "attr:dismiss-label"?: (HelixTab["dismissLabel"]) | undefined;
32131
+ /** The dismiss control's label, read by screen readers.
32132
+
32133
+ `attribute` is spelled out because Lit lowercases a property name to
32134
+ derive one rather than dash-casing it, so this would otherwise be
32135
+ reachable only as `dismisslabel`, which nobody would guess and no linter
32136
+ would catch.
32137
+
32138
+ A word property: register it for a locale under the host's key. A family
32139
+ that names the control otherwise, such as Tag's `Remove {label}`,
32140
+ declares its own English with `@words` above the override. */
32141
+ "prop:dismissLabel"?: (HelixTab["dismissLabel"]) | undefined;
31853
32142
  /** Whether the item is disabled and cannot be chosen. */
31854
32143
  "prop:disabled"?: (HelixTab["disabled"]) | undefined;
31855
32144
  /** Whether the item is selected.
@@ -31868,6 +32157,8 @@ of tabs that are pages of a site. */
31868
32157
  "prop:rel"?: (HelixTab["rel"]) | undefined;
31869
32158
  /** Where the link opens, such as `_blank`, for a tab with an `href`. */
31870
32159
  "prop:target"?: (HelixTab["target"]) | undefined;
32160
+ /** A `dismissible` tab was asked to close. The tab does not remove itself, so remove it and its panel in response. Cancelable. */
32161
+ "on:helix-dismiss"?: ((e: HelixTabHelixDismissElementEvent) => void) | undefined;
31871
32162
  /** Fired when the tab is chosen. Cancelable: canceling it stops the change and leaves the decision to you. */
31872
32163
  "on:helix-select"?: ((e: HelixTabHelixSelectElementEvent) => void) | undefined;
31873
32164
 
@@ -31887,6 +32178,14 @@ export type HelixTagGroupHelixDismissElementEvent =
31887
32178
  HelixTagGroupElementEvent<HelixDismissEvent>;
31888
32179
 
31889
32180
  export type HelixTagGroupProps = {
32181
+ /** Keeps at least one tag selected once one is, as React Aria's
32182
+ `disallowEmptySelection`: a press or a key that would leave none selected
32183
+ is refused. Removing the last selected tag still takes it out of `value`. */
32184
+ "disallow-empty-selection"?: (HelixTagGroup["disallowEmptySelection"]) | undefined;
32185
+ /** Keeps at least one tag selected once one is, as React Aria's
32186
+ `disallowEmptySelection`: a press or a key that would leave none selected
32187
+ is refused. Removing the last selected tag still takes it out of `value`. */
32188
+ disallowEmptySelection?: (HelixTagGroup["disallowEmptySelection"]) | undefined;
31890
32189
  /** The words the group shows and says once its last tag is removed, where
31891
32190
  nothing is in the `empty` slot. */
31892
32191
  "empty-label"?: (HelixTagGroup["emptyLabel"]) | undefined;
@@ -31896,6 +32195,20 @@ nothing is in the `empty` slot. */
31896
32195
  /** The name of the set, such as "Filters", which a screen reader announces
31897
32196
  before its tags. */
31898
32197
  label?: (HelixTagGroup["label"]) | undefined;
32198
+ /** What a press, Space, or a move does to the tags already selected.
32199
+ `toggle`, the default, keeps them: a press adds or takes out the tag, and
32200
+ the arrow keys move focus alone. `replace` selects the tag alone, as a
32201
+ file list does, and the arrow keys carry the selection with focus.
32202
+ Control or Command with a press or Space adds or takes out one tag in
32203
+ `multiple`, and with an arrow moves focus without selecting. */
32204
+ "selection-behavior"?: (HelixTagGroup["selectionBehavior"]) | undefined;
32205
+ /** What a press, Space, or a move does to the tags already selected.
32206
+ `toggle`, the default, keeps them: a press adds or takes out the tag, and
32207
+ the arrow keys move focus alone. `replace` selects the tag alone, as a
32208
+ file list does, and the arrow keys carry the selection with focus.
32209
+ Control or Command with a press or Space adds or takes out one tag in
32210
+ `multiple`, and with an arrow moves focus without selecting. */
32211
+ selectionBehavior?: (HelixTagGroup["selectionBehavior"]) | undefined;
31899
32212
  /** How many tags a reader can select: `single`, `multiple`, or none.
31900
32213
 
31901
32214
  Absent selects nothing, and the tags carry no selected state at all. */
@@ -31922,6 +32235,14 @@ words where it has none. */
31922
32235
  };
31923
32236
 
31924
32237
  export type HelixTagGroupSolidJsProps = {
32238
+ /** Keeps at least one tag selected once one is, as React Aria's
32239
+ `disallowEmptySelection`: a press or a key that would leave none selected
32240
+ is refused. Removing the last selected tag still takes it out of `value`. */
32241
+ "bool:disallow-empty-selection"?: (HelixTagGroup["disallowEmptySelection"]) | undefined;
32242
+ /** Keeps at least one tag selected once one is, as React Aria's
32243
+ `disallowEmptySelection`: a press or a key that would leave none selected
32244
+ is refused. Removing the last selected tag still takes it out of `value`. */
32245
+ "prop:disallowEmptySelection"?: (HelixTagGroup["disallowEmptySelection"]) | undefined;
31925
32246
  /** The words the group shows and says once its last tag is removed, where
31926
32247
  nothing is in the `empty` slot. */
31927
32248
  "attr:empty-label"?: (HelixTagGroup["emptyLabel"]) | undefined;
@@ -31931,6 +32252,20 @@ nothing is in the `empty` slot. */
31931
32252
  /** The name of the set, such as "Filters", which a screen reader announces
31932
32253
  before its tags. */
31933
32254
  "prop:label"?: (HelixTagGroup["label"]) | undefined;
32255
+ /** What a press, Space, or a move does to the tags already selected.
32256
+ `toggle`, the default, keeps them: a press adds or takes out the tag, and
32257
+ the arrow keys move focus alone. `replace` selects the tag alone, as a
32258
+ file list does, and the arrow keys carry the selection with focus.
32259
+ Control or Command with a press or Space adds or takes out one tag in
32260
+ `multiple`, and with an arrow moves focus without selecting. */
32261
+ "attr:selection-behavior"?: (HelixTagGroup["selectionBehavior"]) | undefined;
32262
+ /** What a press, Space, or a move does to the tags already selected.
32263
+ `toggle`, the default, keeps them: a press adds or takes out the tag, and
32264
+ the arrow keys move focus alone. `replace` selects the tag alone, as a
32265
+ file list does, and the arrow keys carry the selection with focus.
32266
+ Control or Command with a press or Space adds or takes out one tag in
32267
+ `multiple`, and with an arrow moves focus without selecting. */
32268
+ "prop:selectionBehavior"?: (HelixTagGroup["selectionBehavior"]) | undefined;
31934
32269
  /** How many tags a reader can select: `single`, `multiple`, or none.
31935
32270
 
31936
32271
  Absent selects nothing, and the tags carry no selected state at all. */
@@ -35813,6 +36148,18 @@ refused, in a `reorderable` tree. */
35813
36148
  An `aria-label` or `aria-labelledby` on the host names the tree too, and
35814
36149
  wins over this. */
35815
36150
  label?: (HelixTree["label"]) | undefined;
36151
+ /** What screen readers hear when an item moves into another branch, in a
36152
+ `reorderable` tree. `{name}` is the item's words, `{parent}` the words of
36153
+ the branch it moved into, or the tree's `label` for the top level,
36154
+ `{position}` its place there, counting from 1, and `{count}` the number of
36155
+ items there. */
36156
+ "moved-into-label"?: (HelixTree["movedIntoLabel"]) | undefined;
36157
+ /** What screen readers hear when an item moves into another branch, in a
36158
+ `reorderable` tree. `{name}` is the item's words, `{parent}` the words of
36159
+ the branch it moved into, or the tree's `label` for the top level,
36160
+ `{position}` its place there, counting from 1, and `{count}` the number of
36161
+ items there. */
36162
+ movedIntoLabel?: (HelixTree["movedIntoLabel"]) | undefined;
35816
36163
  /** What screen readers hear each time an item moves, in a `reorderable`
35817
36164
  tree. `{name}` is the item's words, `{position}` its place among its
35818
36165
  siblings, counting from 1, and `{count}` the number of siblings. */
@@ -35987,6 +36334,18 @@ refused, in a `reorderable` tree. */
35987
36334
  An `aria-label` or `aria-labelledby` on the host names the tree too, and
35988
36335
  wins over this. */
35989
36336
  "prop:label"?: (HelixTree["label"]) | undefined;
36337
+ /** What screen readers hear when an item moves into another branch, in a
36338
+ `reorderable` tree. `{name}` is the item's words, `{parent}` the words of
36339
+ the branch it moved into, or the tree's `label` for the top level,
36340
+ `{position}` its place there, counting from 1, and `{count}` the number of
36341
+ items there. */
36342
+ "attr:moved-into-label"?: (HelixTree["movedIntoLabel"]) | undefined;
36343
+ /** What screen readers hear when an item moves into another branch, in a
36344
+ `reorderable` tree. `{name}` is the item's words, `{parent}` the words of
36345
+ the branch it moved into, or the tree's `label` for the top level,
36346
+ `{position}` its place there, counting from 1, and `{count}` the number of
36347
+ items there. */
36348
+ "prop:movedIntoLabel"?: (HelixTree["movedIntoLabel"]) | undefined;
35990
36349
  /** What screen readers hear each time an item moves, in a `reorderable`
35991
36350
  tree. `{name}` is the item's words, `{position}` its place among its
35992
36351
  siblings, counting from 1, and `{count}` the number of siblings. */
@@ -37815,6 +38174,7 @@ export type CustomElements = {
37815
38174
  *
37816
38175
  * These can be used to apply styling when a component is in a given state.
37817
38176
  *
38177
+ * - `closing`: While the item has closed and its content is still drawn, until the content part's animations end.
37818
38178
  * - `open`: While the item is open.
37819
38179
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
37820
38180
  */
@@ -39684,6 +40044,12 @@ export type CustomElements = {
39684
40044
  * browser harness's awaits it alone: a browser always runs the frame, and a
39685
40045
  * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
39686
40046
  *
40047
+ * ## Events
40048
+ *
40049
+ * Events that will be emitted by the component.
40050
+ *
40051
+ * - `helix-select`: A plain press on the crumb's link, with its `href` as the value, before the browser follows it. Cancelable: cancel it to keep the browser from following, as a client-side router does.
40052
+ *
39687
40053
  * ## Slots
39688
40054
  *
39689
40055
  * Areas where markup can be added to the component.
@@ -39711,6 +40077,8 @@ export type CustomElements = {
39711
40077
  * Custom selectors for styling elements within the component.
39712
40078
  *
39713
40079
  * - `separator`: The separator preceding the item.
40080
+ * - `expand`: The button after the first crumb of a folded slotted trail, which shows the folded crumbs.
40081
+ * - `fold-separator`: The chevron before that button.
39714
40082
  * - `link`: The crumb itself, which is an `<a>` where `href` is set.
39715
40083
  * - `separator-mark`: The chevron between crumbs, shown when no separator is slotted.
39716
40084
  *
@@ -39718,7 +40086,9 @@ export type CustomElements = {
39718
40086
  *
39719
40087
  * These can be used to apply styling when a component is in a given state.
39720
40088
  *
40089
+ * - `current`: While the crumb is the current page, marked `current` or the last of a trail with none marked.
39721
40090
  * - `end`: While the `end` slot holds something, so a stylesheet can join the label and what follows it into one control.
40091
+ * - `folded`: While a trail longer than its `max-items` has folded the crumb away. It takes no room.
39722
40092
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
39723
40093
  */
39724
40094
  "helix-breadcrumb": Partial<
@@ -39802,6 +40172,8 @@ export type CustomElements = {
39802
40172
  * - `crumb`: Each crumb drawn from `items`.
39803
40173
  * - `crumb-collapsed`: The crumb that holds the folded middle of a trail longer than `max-items`.
39804
40174
  * - `crumb-current`: The crumb drawn from `items` for the current page.
40175
+ * - `crumb-expand`: The fold button a crumb draws after the first crumb of a folded slotted trail. A trail drawn from `items` draws its fold as a crumb of its own, `crumb-collapsed`, so this one is never drawn there.
40176
+ * - `crumb-fold-separator`: The chevron before that button.
39805
40177
  * - `crumb-link`: The link, or the current page's words, of a crumb drawn from `items`.
39806
40178
  * - `crumb-separator`: The separator before a crumb drawn from `items`.
39807
40179
  * - `crumb-separator-mark`: The chevron before a crumb drawn from `items`.
@@ -39930,6 +40302,7 @@ export type CustomElements = {
39930
40302
  *
39931
40303
  * These can be used to apply styling when a component is in a given state.
39932
40304
  *
40305
+ * - `pressed`: While a group with `selection-mode` has a button pressed.
39933
40306
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
39934
40307
  */
39935
40308
  "helix-button-group": Partial<
@@ -42882,7 +43255,8 @@ export type CustomElements = {
42882
43255
  * Passed to the panel, whose square, hue ramp and presets say the color's
42883
43256
  * name, and read by the swatch in `swatch`, which says it before the value.
42884
43257
  * Color Picker lists the keys.
42885
- * - `format`: The syntax the value is written in: `hex`, `rgb`, or `hsl`.
43258
+ * - `format`: The syntax the value is written in: `hex`, `rgb`, `hsl`, `oklch`, or
43259
+ * `hsb`, as Color Picker's `format`.
42886
43260
  *
42887
43261
  * **Undefaulted, because it reflects.** The two together stamp an attribute
42888
43262
  * onto every host anybody renders, including the ones nobody configured: the
@@ -43099,6 +43473,8 @@ export type CustomElements = {
43099
43473
  * - `picker-channel-marker-label`: The value a mark stands at, when `marker-labels` is set.
43100
43474
  * - `picker-channel-markers`: The row of marks along the track.
43101
43475
  * - `picker-channel-output`: The current value, shown beside the track.
43476
+ * - `picker-channel-thumb`: A ramp's thumb box, which holds no content in a picker.
43477
+ * - `picker-channel-thumbs`: The layer over a ramp's track that holds its thumb box.
43102
43478
  * - `picker-channel-tooltip`: A ramp's value in a bubble, where a ramp shows one.
43103
43479
  * - `picker-channel-tooltips`: The layer over a ramp's track that holds its bubble.
43104
43480
  * - `picker-channels`: The channel sliders beside the sample.
@@ -43123,7 +43499,9 @@ export type CustomElements = {
43123
43499
  * - `picker-grid-brightness`: The range input for the square's vertical axis.
43124
43500
  * - `picker-grid-handle`: The mark showing where in the square the color sits.
43125
43501
  * - `picker-grid-saturation`: The range input for the square's horizontal axis.
43502
+ * - `picker-hint`: The picker's own help, which the field's `hint` stands in for here, so it stays hidden.
43126
43503
  * - `picker-icon`: An icon drawn by the picker.
43504
+ * - `picker-label`: The picker's own name, which the field's `label` stands in for here, so it stays hidden.
43127
43505
  * - `picker-sample`: A chip of the current color. Pressing it copies the value.
43128
43506
  * - `picker-swatch`: One preset.
43129
43507
  * - `picker-swatches`: The row of presets.
@@ -43210,12 +43588,15 @@ export type CustomElements = {
43210
43588
  * language hears its own rather than English between its own labels.
43211
43589
  * - `channel-fields`/`channelFields`: Whether the picker shows a number field for each channel of the color, as
43212
43590
  * React Aria's ColorField does with `channel`: red, green and blue for hex
43213
- * and rgb, hue, saturation and lightness for hsl, and the opacity with
43214
- * `alpha`.
43591
+ * and rgb, hue, saturation and lightness for hsl, hue, saturation and
43592
+ * brightness for hsb, lightness, chroma and hue for oklch, and the opacity
43593
+ * with `alpha`.
43215
43594
  *
43216
43595
  * For a reader who has the numbers from a brand guide, and for a keyboard,
43217
43596
  * where typing 128 is quicker than holding an arrow key. The fields follow
43218
43597
  * the syntax the format toggle sets.
43598
+ * - `chroma-label`/`chromaLabel`: What the chroma channel's field is called, in `channel-fields` with
43599
+ * oklch.
43219
43600
  * - `color-words`/`colorWords`: The words a color's name is spoken in, as JSON keyed by their English,
43220
43601
  * such as `{"red": "rot", "vibrant": "kräftiges"}`.
43221
43602
  *
@@ -43232,15 +43613,25 @@ export type CustomElements = {
43232
43613
  * - `copy-label`/`copyLabel`: The name of the sample, which copies the value. `{value}` is replaced with
43233
43614
  * the color.
43234
43615
  * - `eyedropper-label`/`eyedropperLabel`: What the eyedropper is called.
43235
- * - `format`: The syntax the value is written in: `hex`, `rgb`, or `hsl`.
43616
+ * - `format`: The syntax the value is written in: `hex`, `rgb`, `hsl`, `oklch`, or
43617
+ * `hsb`.
43236
43618
  *
43237
43619
  * Only what is written. Everything is read whatever this says, so a picker on
43238
- * `hex` still takes an `rgb()` handed to it and stores the hex for it.
43620
+ * `hex` still takes an `rgb()` or an `oklch()` handed to it and stores the
43621
+ * hex for it. `oklch` writes the sRGB color the picker holds, such as
43622
+ * `oklch(62.8% 0.258 29.2)`; a color outside sRGB that is handed in is
43623
+ * clipped to it. `hsb` writes the picker's own model, `hsb(0, 100%, 100%)`,
43624
+ * as React Aria's and Zag's color strings do. It is not CSS, so the toggle
43625
+ * walks the other four.
43239
43626
  * - `format-label`/`formatLabel`: What the syntax toggle is called, with `{format}` filled in.
43240
43627
  * - `green-label`/`greenLabel`: What the green channel's field is called, in `channel-fields`.
43628
+ * - `hint`: Help under the picker, such as what the color is used for. The `hint`
43629
+ * slot takes richer content.
43241
43630
  * - `hue-label`/`hueLabel`: What the hue channel is called.
43631
+ * - `label`: The name above the picker, such as "Brand color". The picker is then a
43632
+ * group with this name. The `label` slot takes richer content.
43242
43633
  * - `lightness-label`/`lightnessLabel`: What the lightness channel's field is called, in `channel-fields` with
43243
- * hsl.
43634
+ * hsl and oklch.
43244
43635
  * - `no-eyedropper`/`noEyedropper`: Hides the eyedropper. Without it, the eyedropper appears in browsers that
43245
43636
  * support one.
43246
43637
  * - `no-format`/`noFormat`: Hides the syntax toggle, so the format cannot be changed.
@@ -43395,6 +43786,8 @@ export type CustomElements = {
43395
43786
  * Areas where markup can be added to the component.
43396
43787
  *
43397
43788
  * - `eyedropper-icon`: The icon on the eyedropper button, usually a dropper.
43789
+ * - `hint`: Help under the picker, for content richer than the `hint` text.
43790
+ * - `label`: The name above the picker, for content richer than the `label` text.
43398
43791
  *
43399
43792
  * ## Methods
43400
43793
  *
@@ -43493,6 +43886,8 @@ export type CustomElements = {
43493
43886
  * - `channel-marker-label`: The value a mark stands at, when `marker-labels` is set.
43494
43887
  * - `channel-markers`: The row of marks along the track.
43495
43888
  * - `channel-output`: The current value, shown beside the track.
43889
+ * - `channel-thumb`: A ramp's thumb box, which holds no content in a picker.
43890
+ * - `channel-thumbs`: The layer over a ramp's track that holds its thumb box.
43496
43891
  * - `channel-tooltip`: A ramp's value in a bubble, where a ramp shows one.
43497
43892
  * - `channel-tooltips`: The layer over a ramp's track that holds its bubble.
43498
43893
  * - `channels`: The ramps beside the sample.
@@ -43516,6 +43911,8 @@ export type CustomElements = {
43516
43911
  * - `grid`: The saturation and brightness square. Draw the mark that shows where the color sits with `::part(grid)::after` in your stylesheet. The square carries the two channels as `--color-picker-saturation` and `--color-picker-brightness`, and this tier ships no CSS.
43517
43912
  * - `grid-brightness`: The range input for the square's vertical axis.
43518
43913
  * - `grid-saturation`: The range input for the square's horizontal axis.
43914
+ * - `hint`: The help under the picker, while `hint` is set or the `hint` slot has content.
43915
+ * - `label`: The name above the picker, while `label` is set or the `label` slot has content.
43519
43916
  * - `sample`: A chip of the current color. Pressing it copies the value.
43520
43917
  * - `swatch`: One preset, an option in the `swatches` listbox.
43521
43918
  * - `swatches`: The row of presets, a listbox.
@@ -43527,7 +43924,10 @@ export type CustomElements = {
43527
43924
  *
43528
43925
  * These can be used to apply styling when a component is in a given state.
43529
43926
  *
43927
+ * - `copied`: The moment after the sample copies the value, while it says `copied-label`.
43928
+ * - `dragging`: While a pointer drags the square's handle.
43530
43929
  * - `invalid`: While `invalid` is set or `feedback` says what is wrong.
43930
+ * - `sampling`: While the eyedropper is open over the screen.
43531
43931
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
43532
43932
  */
43533
43933
  "helix-color-picker": Partial<
@@ -45109,6 +45509,7 @@ export type CustomElements = {
45109
45509
  * - `picker-day-outside`: A day from a neighboring month. Applied with `picker-day`.
45110
45510
  * - `picker-day-selected`: The chosen day, or either end of a chosen range. Applied with `picker-day`.
45111
45511
  * - `picker-day-today`: Today. Applied with `picker-day`.
45512
+ * - `picker-day-weekend`: A day of the weekend where the calendar's language is spoken, beside `picker-day`.
45112
45513
  * - `picker-feedback`: The calendar's own message, under it, while the calendar's `feedback` is set.
45113
45514
  * - `picker-grid`: The grid of days.
45114
45515
  * - `picker-header`: The month name and its controls.
@@ -45194,15 +45595,22 @@ export type CustomElements = {
45194
45595
  * speaks it. Unset is the sentence registered for the page's language, then
45195
45596
  * the English. `{mode}` is `single`, `range` or `multiple`, so each can have
45196
45597
  * its own sentence.
45197
- * - `calendar`: The calendar the heading, the days, and the months are written in:
45198
- * `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, the five whose
45199
- * months are the Gregorian months.
45200
- *
45201
- * Absent is the locale's own where it is one of the five, such as
45202
- * `buddhist` for `th-TH` or `japanese` for `ja-JP-u-ca-japanese`, and
45203
- * `gregory` for every other, such as `persian` for `fa-IR`, so the heading
45204
- * names the Gregorian month the grid shows. The value is `YYYY-MM-DD` in
45205
- * every calendar.
45598
+ * - `calendar`: The calendar the heading, the days, and the months are written in.
45599
+ *
45600
+ * `gregory`, `buddhist`, `japanese`, `roc`, and `iso8601` are the five
45601
+ * whose months are the Gregorian months. Absent is the locale's own where
45602
+ * it is one of the five, such as `buddhist` for `th-TH` or `japanese` for
45603
+ * `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
45604
+ * for `fa-IR`.
45605
+ *
45606
+ * `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
45607
+ * `coptic`, and `indian` draw a calendar with months of its own, as React
45608
+ * Aria's calendars do: each grid is one of that calendar's months, the
45609
+ * Hebrew leap month and Ethiopia's five-day thirteenth month included, and
45610
+ * Previous, Next and the page keys move by those months. `month` and
45611
+ * `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
45612
+ * heading stays text, as the months and years views are drawn in Gregorian
45613
+ * months only. The value is `YYYY-MM-DD` in every calendar.
45206
45614
  * - `default-month`/`defaultMonth`: The month to open on when `month` is not set.
45207
45615
  * - `disable-dates`/`disableDates`: Dates that cannot be chosen, as `YYYY-MM-DD`, separated by commas or
45208
45616
  * spaces.
@@ -45228,8 +45636,9 @@ export type CustomElements = {
45228
45636
  * its days.
45229
45637
  * - `min`: Earliest selectable date, as `YYYY-MM-DD`.
45230
45638
  * - `mode`: How many dates can be held at once.
45231
- * - `month`: The month shown, as `YYYY-MM`. When it is not set, it follows `value`,
45232
- * then the current month.
45639
+ * - `month`: The month shown, as `YYYY-MM`, or as its first day, `YYYY-MM-DD`, under a
45640
+ * `calendar` with months of its own. When it is not set, it follows
45641
+ * `value`, then the current month.
45233
45642
  *
45234
45643
  * Separate from `value` on purpose, so paging selects nothing and a consumer
45235
45644
  * can drive the view. Reading gives the month on show; writing sets it, and
@@ -45276,6 +45685,13 @@ export type CustomElements = {
45276
45685
  * treated as one rather than as an error: a step of zero would block every
45277
45686
  * date including the one already chosen.
45278
45687
  * - `step-mismatch-message`/`stepMismatchMessage`: The validation message for a date that `step` skips.
45688
+ * - `time-zone`/`timeZone`: The time zone today is read in, such as `America/New_York`, as React
45689
+ * Aria's `today(timeZone)` reads it. Empty is the reader's own.
45690
+ *
45691
+ * Dates are plain `YYYY-MM-DD` and carry no zone, so this moves only today:
45692
+ * the day marked `aria-current` and `day-today`, and the month a picker
45693
+ * with no value opens on. A desk in Tokyo booking for an office in New York
45694
+ * sets `America/New_York`, and today is the office's.
45279
45695
  * - `unavailable-message`/`unavailableMessage`: The validation message for a date that `disable-dates` or `disable-days`
45280
45696
  * bars.
45281
45697
  * - `value-missing-message`/`valueMissingMessage`: The validation message for a required date picker with no date chosen.
@@ -45376,6 +45792,8 @@ export type CustomElements = {
45376
45792
  *
45377
45793
  * Areas where markup can be added to the component.
45378
45794
  *
45795
+ * - `footer`: Content under the calendar, such as buttons for today or a common range.
45796
+ * - `header`: Content above the calendar, such as a note on what the date is for.
45379
45797
  * - `next-icon`: The glyph on the control that moves forward a month, usually a caret.
45380
45798
  * - `previous-icon`: The glyph on the control that moves back a month, usually a caret.
45381
45799
  *
@@ -45469,6 +45887,7 @@ export type CustomElements = {
45469
45887
  * - `day-outside`: A day from a neighboring month, filling the grid out, beside `day`.
45470
45888
  * - `day-selected`: The chosen day, or either end of a chosen range, beside `day`.
45471
45889
  * - `day-today`: Today, beside `day`.
45890
+ * - `day-weekend`: A day of the weekend where the calendar's language is spoken, beside `day`: Saturday and Sunday in `en-US`, Friday and Saturday in `ar-EG`.
45472
45891
  * - `feedback`: The message under the calendar, while `feedback` is set.
45473
45892
  * - `grid`: The grid of days.
45474
45893
  * - `header`: The month name and its controls.
@@ -45487,7 +45906,7 @@ export type CustomElements = {
45487
45906
  * - `previous`: The control that moves to the previous month.
45488
45907
  * - `previous-mark`: The glyph on the previous month control, where none is slotted.
45489
45908
  * - `week`: One row of days.
45490
- * - `weekday`: A column header naming a day of the week.
45909
+ * - `weekday`: A column header naming a day of the week. It shows the short name and says the full one.
45491
45910
  *
45492
45911
  * ## CSS States
45493
45912
  *
@@ -53411,6 +53830,7 @@ export type CustomElements = {
53411
53830
  *
53412
53831
  * These can be used to apply styling when a component is in a given state.
53413
53832
  *
53833
+ * - `open`: While a megamenu or another disclosure among the destinations is open.
53414
53834
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
53415
53835
  */
53416
53836
  "helix-navigation": Partial<
@@ -58192,6 +58612,17 @@ export type CustomElements = {
58192
58612
  *
58193
58613
  * No attribute, because it is coordination between elements rather than
58194
58614
  * anything a consumer sets. (property only)
58615
+ * - `items`: The options as data, for a list too long to draw whole: each a value,
58616
+ * which is also its words, or a record with a `value`, a `label` and
58617
+ * `disabled`. Passed to the list, which draws only the options in sight,
58618
+ * as Listbox's `items` does. Set, the options you write as children are
58619
+ * not read.
58620
+ *
58621
+ * The trigger shows the chosen options' labels, the letters and the Left
58622
+ * and Right keys on the closed trigger choose over the whole set, and a
58623
+ * chosen value whose option leaves `items` drops out of `value`.
58624
+ * `value-content` is not called for `items`. Import the Option family as
58625
+ * well, whose elements are drawn. (property only)
58195
58626
  * - `valueContent`: What the trigger shows for the chosen options: a function given them, in
58196
58627
  * the order they appear, that returns text, an element or a Lit template.
58197
58628
  *
@@ -58373,6 +58804,8 @@ export type CustomElements = {
58373
58804
  *
58374
58805
  * - `invalid`: The control has an error to show, from the browser's validation or from your `feedback`.
58375
58806
  * - `open`: While the list is open.
58807
+ * - `placed-bottom`: While the open list sits below the trigger.
58808
+ * - `placed-top`: While the open list sits above the trigger, where there was no room below.
58376
58809
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
58377
58810
  */
58378
58811
  "helix-select": Partial<
@@ -58652,13 +59085,24 @@ export type CustomElements = {
58652
59085
  * between its thumbs and ignores it.
58653
59086
  * - `range`: Adds a second thumb, so the value is a pair.
58654
59087
  *
58655
- * The pair is one string, `"10,50"`, which is what a form submits and what
58656
- * `MixinControllerValue` already holds. `valueAsNumber` reads the lower of
58657
- * the two, since a range has no single number.
59088
+ * The pair is one string, `"10,50"`, which is what `value` and
59089
+ * `MixinControllerValue` hold. A form receives two entries under the name,
59090
+ * `price=10&price=50`, as React Aria's two thumbs send theirs.
59091
+ * `valueAsNumber` reads the lower of the two, since a range has no single
59092
+ * number.
58658
59093
  * - `range-text`/`rangeText`: How the readout joins a range's two values, with `{start}` and `{end}`
58659
59094
  * filled in. Write it in the page's language, such as `{start} bis {end}`.
59095
+ * - `readonly`/`readOnly`: Whether a reader can see and focus the value and cannot change it. A
59096
+ * read-only slider still submits its value.
59097
+ *
59098
+ * React Aria's `isReadOnly`. Each thumb stays a tab stop and says
59099
+ * `aria-readonly`. The arrow keys, the page keys, Home, End, and a drag
59100
+ * leave the value where it is. A script can still set `value`.
58660
59101
  * - `show-value`/`showValue`: Shows the chosen value beside the track.
58661
59102
  * - `step`: How far one press of an arrow key moves the thumb.
59103
+ * - `thumb-label`/`thumbLabel`: The name of a thumb between a range's first and last, read after the
59104
+ * slider's label, with `{index}` filled in: its place, counted from 1. The
59105
+ * first is `minimum-label` and the last `maximum-label`.
58662
59106
  * - `tooltip`: Whether each thumb shows its value in a bubble beside it, as Web
58663
59107
  * Awesome's `with-tooltip`. The styled slider shows the bubbles while the
58664
59108
  * slider is under the pointer or holds focus. They repeat what each thumb
@@ -58734,6 +59178,8 @@ export type CustomElements = {
58734
59178
  * - `feedback`: The message that says what is wrong, for content richer than a string. It shows while there is a message.
58735
59179
  * - `hint`: Help under the control, for content richer than the `hint` text.
58736
59180
  * - `label`: The label, for content richer than the `label` text.
59181
+ * - `thumb`: Content drawn on the thumb, such as a glyph: a single slider's thumb, or a range's lower one. It is decoration, hidden from a screen reader.
59182
+ * - `thumb-end`: Content drawn on a range's upper thumb.
58737
59183
  *
58738
59184
  * ## Methods
58739
59185
  *
@@ -58806,6 +59252,7 @@ export type CustomElements = {
58806
59252
  * - `--slider-length`: The length of a vertical track. It defaults to nine rem and applies only when `orientation` is `vertical`. A horizontal track takes the width of its row.
58807
59253
  * - `--slider-marker-color`: The color of the marks along the track.
58808
59254
  * - `--slider-thumb-color`: The color of the thumb.
59255
+ * - `--slider-thumb-content-color`: The color of content in the `thumb` and `thumb-end` slots, drawn on the thumb.
58809
59256
  * - `--slider-thumb-length`: The thumb's size along the track. It follows `--slider-thumb-size` unless you set it, and setting one of the two makes the thumb an oval.
58810
59257
  * - `--slider-thumb-radius`: The thumb's corner radius. It is fully round by default, so a thumb with two different dimensions is a capsule unless you change it.
58811
59258
  * - `--slider-thumb-ring-color`: The color of the ring between the thumb and the track. Set it for a slider that sits on a surface other than the page background.
@@ -58815,7 +59262,7 @@ export type CustomElements = {
58815
59262
  * - `--slider-track-color`: The color of the unfilled part of the track.
58816
59263
  * - `--slider-track-image`: An image for the whole track, such as a gradient for a slider whose value is a color.
58817
59264
  * - `--slider-track-size`: The thickness of the track. It matches the progress bar's size by default.
58818
- * - `--slider-at`: Where a bubble's thumb is, as a fraction of the track, 0 to 1. Set on each `tooltip` part.
59265
+ * - `--slider-at`: Where a bubble's or a thumb box's thumb is, as a fraction of the track, 0 to 1. Set on each `tooltip` and `thumb` part.
58819
59266
  * - `--slider-fraction`: The value as a fraction of the range, 0 to 1.
58820
59267
  * - `--slider-from`: Where the filled span starts, as a fraction of the track, 0 to 1: a range's lower thumb, or a single thumb's `origin`.
58821
59268
  * - `--slider-marker-at`: Where one marker sits, as a percentage of the track.
@@ -58825,7 +59272,7 @@ export type CustomElements = {
58825
59272
  *
58826
59273
  * Custom selectors for styling elements within the component.
58827
59274
  *
58828
- * - `control`: The range input.
59275
+ * - `control`: The range input, one per thumb. On a range each carries `data-thumb`, `start`, `middle`, or `end`, and `data-index`, its place from the lowest.
58829
59276
  * - `feedback`: The error message under the track.
58830
59277
  * - `field`: The row that holds the control and its readout.
58831
59278
  * - `hint`: The help text under the track, shown while there is no error.
@@ -58834,7 +59281,9 @@ export type CustomElements = {
58834
59281
  * - `marker-label`: The value a mark stands at, when `marker-labels` is set.
58835
59282
  * - `markers`: The row of marks along the track.
58836
59283
  * - `output`: The current value, shown beside the track.
58837
- * - `tooltip`: One thumb's value in a bubble beside it, under `tooltip`. It carries `data-thumb` on a range, `start` or `end`, and `--slider-at`, where its thumb is as a fraction of the track.
59284
+ * - `thumb`: One thumb's own box over the track, which holds the `thumb` or `thumb-end` slot. It carries `data-thumb` on a range, `start`, `middle`, or `end`, and `--slider-at`, where its thumb is as a fraction of the track. Draw your own thumb here and hide the native one, or leave it empty.
59285
+ * - `thumbs`: The layer over the track that holds each `thumb`. It is `hidden` until a thumb slot has content, and then `[part="field"]` carries `data-thumbs`.
59286
+ * - `tooltip`: One thumb's value in a bubble beside it, under `tooltip`. It carries `data-thumb` on a range, `start`, `middle`, or `end`, and `--slider-at`, where its thumb is as a fraction of the track.
58838
59287
  * - `tooltips`: The layer over the track that holds the bubbles, under `tooltip`.
58839
59288
  *
58840
59289
  * ## CSS States
@@ -59176,9 +59625,15 @@ export type CustomElements = {
59176
59625
  * Component attributes and properties that can be applied to the element or by using JavaScript.
59177
59626
  *
59178
59627
  * - `disabled`: Whether the action is disabled, so it cannot be chosen.
59628
+ * - `download`: Whether the link downloads the file when the action is chosen. Only
59629
+ * meaningful beside an `href`, and only for a file served from the page's
59630
+ * origin.
59631
+ * - `href`: The URL the action links to. Setting it draws the action as a link.
59632
+ * - `rel`: The link's `rel`. Set it whenever you set `target="_blank"`.
59179
59633
  * - `shortcut`: The action's keyboard shortcut as a chord, such as `mod+s`, carried as
59180
59634
  * `aria-keyshortcuts` and drawn after the name. `mod` is Command on an Apple
59181
59635
  * keyboard and Control elsewhere. Showing a shortcut does not bind it.
59636
+ * - `target`: Where the link opens, such as `_blank` for a new tab.
59182
59637
  * - `value`: The action's value, sent in `helix-select` when the action is chosen.
59183
59638
  * - `active`: Whether the action has focus, which makes it the action the keyboard is on.
59184
59639
  *
@@ -59249,7 +59704,7 @@ export type CustomElements = {
59249
59704
  * Custom selectors for styling elements within the component.
59250
59705
  *
59251
59706
  * - `icon`: The box that holds the icon.
59252
- * - `item`: The control for the action.
59707
+ * - `item`: The control for the action, which is an `<a>` where `href` is set.
59253
59708
  * - `label`: The action's name, beside the icon.
59254
59709
  * - `shortcut`: The box after the name that holds the shortcut, shown while `shortcut` is set or something is in the `shortcut` slot.
59255
59710
  *
@@ -59300,9 +59755,11 @@ export type CustomElements = {
59300
59755
  * plain element of yours once a reader reaches it, after hydration, unless
59301
59756
  * you described or labeled it yourself.
59302
59757
  * - `offset`: Space between the trigger and the actions, in pixels.
59303
- * - `open-on`/`openOn`: What opens the dial. `click` opens it on a press of the trigger. Under
59304
- * `long-press`, a press is the trigger's own action, and the dial opens on a
59305
- * press held for half a second, or on Alt+Down or Alt+Up.
59758
+ * - `open-on`/`openOn`: What opens the dial. `click` opens it on a press of the trigger. `hover`
59759
+ * also opens it while a mouse rests on the trigger, and closes it once the
59760
+ * mouse has left. Under `long-press`, a press is the trigger's own action,
59761
+ * and the dial opens on a press held for half a second, or on Alt+Down or
59762
+ * Alt+Up.
59306
59763
  * - `placement`: The direction the actions open in. They move to another side if that side
59307
59764
  * does not fit.
59308
59765
  *
@@ -59343,6 +59800,7 @@ export type CustomElements = {
59343
59800
  * Areas where markup can be added to the component.
59344
59801
  *
59345
59802
  * - `(default)`: The actions.
59803
+ * - `icon`: Replaces the plus on the button the dial draws when no trigger is slotted, such as with a pencil for a dial of ways to write.
59346
59804
  * - `trigger`: The control that opens the actions. Without one, a button named by `label` is drawn.
59347
59805
  *
59348
59806
  * ## Methods
@@ -59823,6 +60281,14 @@ export type CustomElements = {
59823
60281
  * - `default-active`/`defaultActive`: The `value` of the item declared current in markup.
59824
60282
  *
59825
60283
  * Ignored once `active` is written.
60284
+ * - `arrows`: Whether the arrow keys move focus between the stages' names, along the
60285
+ * way the steps run. Off by default, so the arrows keep scrolling the page.
60286
+ * - `completion`: What marks a stage `complete`.
60287
+ *
60288
+ * Absent, you do: each step's `complete` is yours, because a reader who
60289
+ * steps back has finished more stages than the one they are on. `passed`
60290
+ * marks every stage before the one a reader moves to, and leaves the marks
60291
+ * when they go back.
59826
60292
  * - `label`: The sequence's name, read by screen readers.
59827
60293
  *
59828
60294
  * A list of stages is a landmark a reader arrives at out of order, so it
@@ -59910,6 +60376,10 @@ export type CustomElements = {
59910
60376
  * does. Returns whether it moved: not past the last stage, not into a stage
59911
60377
  * `linear` holds out of reach, and not where a listener refused.
59912
60378
  * - `previous() => boolean`: Moves to the stage before, as Ark UI's `goToPrevStep` does. Returns whether it moved.
60379
+ * - `reset() => boolean`: Goes back to the first stage that can be gone to, and clears `complete`
60380
+ * and the invalid mark from every stage, as Ark UI's `resetStep` does.
60381
+ * Returns whether it moved: a listener can refuse the move with
60382
+ * `helix-before-activate`, and the stages then keep their marks.
59913
60383
  *
59914
60384
  * ## CSS Custom Properties
59915
60385
  *
@@ -60007,6 +60477,8 @@ export type CustomElements = {
60007
60477
  *
60008
60478
  * Methods that can be called to access component functionality.
60009
60479
  *
60480
+ * - `focus(options?: FocusOptions) => void`: Puts focus on the step's name, the control a reader presses, as a
60481
+ * `focus()` on a native control would.
60010
60482
  * - `select() => void`: Fires `helix-select` for the step, unless the step is `disabled` or a
60011
60483
  * linear sequence has it out of reach.
60012
60484
  *
@@ -60032,6 +60504,7 @@ export type CustomElements = {
60032
60504
  * These can be used to apply styling when a component is in a given state.
60033
60505
  *
60034
60506
  * - `invalid`: The sequence's `validate` last answered that this stage is not valid.
60507
+ * - `locked`: A `linear` sequence holds this stage out of reach until the stages before it are finished.
60035
60508
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
60036
60509
  */
60037
60510
  "helix-step": Partial<HelixStepProps & BaseProps<HelixStep> & BaseEvents<HelixStep>>;
@@ -60942,6 +61415,8 @@ export type CustomElements = {
60942
61415
  * panels and tells a screen reader the list is vertical.
60943
61416
  *
60944
61417
  * Optional, so the resting row writes no attribute onto the host.
61418
+ * - `scroll-controls`/`scrollControls`: Whether a strip with more tabs than fit shows a button at each end it can
61419
+ * scroll toward.
60945
61420
  * - `variant`: How the row of tabs is drawn.
60946
61421
  *
60947
61422
  * Unset is a raised pill on the selected tab with nothing behind the row,
@@ -61024,6 +61499,7 @@ export type CustomElements = {
61024
61499
  * - `--tabs-indicator-shadow`: The shadow under the mark, which the pill and `segmented` draw.
61025
61500
  * - `--tabs-indicator-thickness`: The height of the bar under `underlined`.
61026
61501
  * - `--tabs-rule-color`: The color of the rule under the row in `underlined`.
61502
+ * - `--tabs-scroll-background-color`: The fill behind the scroll buttons, over the tabs that pass under them.
61027
61503
  *
61028
61504
  * ## CSS Parts
61029
61505
  *
@@ -61031,6 +61507,8 @@ export type CustomElements = {
61031
61507
  *
61032
61508
  * - `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`.
61033
61509
  * - `panels`: The panel container.
61510
+ * - `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.
61511
+ * - `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.
61034
61512
  * - `tabs`: The tab list.
61035
61513
  *
61036
61514
  * ## CSS States
@@ -61051,6 +61529,17 @@ export type CustomElements = {
61051
61529
  *
61052
61530
  * Component attributes and properties that can be applied to the element or by using JavaScript.
61053
61531
  *
61532
+ * - `dismissible`: Whether the element shows a control that dismisses it.
61533
+ * - `dismiss-label`/`dismissLabel`: The dismiss control's label, read by screen readers.
61534
+ *
61535
+ * `attribute` is spelled out because Lit lowercases a property name to
61536
+ * derive one rather than dash-casing it, so this would otherwise be
61537
+ * reachable only as `dismisslabel`, which nobody would guess and no linter
61538
+ * would catch.
61539
+ *
61540
+ * A word property: register it for a locale under the host's key. A family
61541
+ * that names the control otherwise, such as Tag's `Remove {label}`,
61542
+ * declares its own English with `@words` above the override.
61054
61543
  * - `disabled`: Whether the item is disabled and cannot be chosen.
61055
61544
  * - `selected`: Whether the item is selected.
61056
61545
  *
@@ -61088,6 +61577,7 @@ export type CustomElements = {
61088
61577
  *
61089
61578
  * Events that will be emitted by the component.
61090
61579
  *
61580
+ * - `helix-dismiss`: A `dismissible` tab was asked to close. The tab does not remove itself, so remove it and its panel in response. Cancelable.
61091
61581
  * - `helix-select`: Fired when the tab is chosen. Cancelable: canceling it stops the change and leaves the decision to you.
61092
61582
  *
61093
61583
  * ## Slots
@@ -61100,6 +61590,7 @@ export type CustomElements = {
61100
61590
  *
61101
61591
  * Methods that can be called to access component functionality.
61102
61592
  *
61593
+ * - `dismiss() => boolean`: Fires `helix-dismiss`, and returns `false` if a listener cancels it.
61103
61594
  * - `focusItem() => void`: Moves focus to the item's control, for the set's arrow keys.
61104
61595
  *
61105
61596
  * The set drives the keys and cannot reach the control itself, which is
@@ -61117,6 +61608,7 @@ export type CustomElements = {
61117
61608
  * - `--tabs-tab-block-size`: The height of a tab. `segmented` sizes its tabs to the track and does not read it.
61118
61609
  * - `--tabs-tab-color`: The label color of a tab that is not current.
61119
61610
  * - `--tabs-tab-disabled-opacity`: How faint a disabled tab is drawn.
61611
+ * - `--tabs-tab-dismiss-color`: The color of the mark that closes a `dismissible` tab.
61120
61612
  * - `--tabs-tab-font-size`: The size of a tab's label.
61121
61613
  * - `--tabs-tab-font-weight`: The weight of a tab's label.
61122
61614
  * - `--tabs-tab-hover-background-color`: The wash under the pointer.
@@ -61130,6 +61622,7 @@ export type CustomElements = {
61130
61622
  *
61131
61623
  * Custom selectors for styling elements within the component.
61132
61624
  *
61625
+ * - `dismiss`: The mark a pointer presses to close a `dismissible` tab.
61133
61626
  * - `tab`: The tab itself.
61134
61627
  *
61135
61628
  * ## CSS States
@@ -61150,10 +61643,19 @@ export type CustomElements = {
61150
61643
  *
61151
61644
  * Component attributes and properties that can be applied to the element or by using JavaScript.
61152
61645
  *
61646
+ * - `disallow-empty-selection`/`disallowEmptySelection`: Keeps at least one tag selected once one is, as React Aria's
61647
+ * `disallowEmptySelection`: a press or a key that would leave none selected
61648
+ * is refused. Removing the last selected tag still takes it out of `value`.
61153
61649
  * - `empty-label`/`emptyLabel`: The words the group shows and says once its last tag is removed, where
61154
61650
  * nothing is in the `empty` slot.
61155
61651
  * - `label`: The name of the set, such as "Filters", which a screen reader announces
61156
61652
  * before its tags.
61653
+ * - `selection-behavior`/`selectionBehavior`: What a press, Space, or a move does to the tags already selected.
61654
+ * `toggle`, the default, keeps them: a press adds or takes out the tag, and
61655
+ * the arrow keys move focus alone. `replace` selects the tag alone, as a
61656
+ * file list does, and the arrow keys carry the selection with focus.
61657
+ * Control or Command with a press or Space adds or takes out one tag in
61658
+ * `multiple`, and with an arrow moves focus without selecting.
61157
61659
  * - `selection-mode`/`selectionMode`: How many tags a reader can select: `single`, `multiple`, or none.
61158
61660
  *
61159
61661
  * Absent selects nothing, and the tags carry no selected state at all.
@@ -61225,6 +61727,11 @@ export type CustomElements = {
61225
61727
  * Seven tones. The fill is a tint of the status color made with `color-mix`, so
61226
61728
  * when a theme changes its status colors, the tints change with them.
61227
61729
  *
61730
+ * A tag takes its height from the region it is in, as the controls beside it
61731
+ * do: `data-density="sm"`, `md`, or `lg` on the tag or on any element around
61732
+ * it sets `--helix-size-tag` to the small, resting, or large step, so a row of
61733
+ * tags and buttons stays one height. `shape="pill"` rounds its ends.
61734
+ *
61228
61735
  * ## Attributes & Properties
61229
61736
  *
61230
61737
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -63341,6 +63848,8 @@ export type CustomElements = {
63341
63848
  * Areas where markup can be added to the component.
63342
63849
  *
63343
63850
  * - `(default)`: The item's label.
63851
+ * - `end`: Content after the label, such as a count or a shortcut.
63852
+ * - `start`: Content before the label, such as an icon.
63344
63853
  *
63345
63854
  * ## Methods
63346
63855
  *
@@ -64242,6 +64751,11 @@ export type CustomElements = {
64242
64751
  *
64243
64752
  * An `aria-label` or `aria-labelledby` on the host names the tree too, and
64244
64753
  * wins over this.
64754
+ * - `moved-into-label`/`movedIntoLabel`: What screen readers hear when an item moves into another branch, in a
64755
+ * `reorderable` tree. `{name}` is the item's words, `{parent}` the words of
64756
+ * the branch it moved into, or the tree's `label` for the top level,
64757
+ * `{position}` its place there, counting from 1, and `{count}` the number of
64758
+ * items there.
64245
64759
  * - `moved-label`/`movedLabel`: What screen readers hear each time an item moves, in a `reorderable`
64246
64760
  * tree. `{name}` is the item's words, `{position}` its place among its
64247
64761
  * siblings, counting from 1, and `{count}` the number of siblings.
@@ -65563,6 +66077,7 @@ export type CustomElementsSolidJs = {
65563
66077
  *
65564
66078
  * These can be used to apply styling when a component is in a given state.
65565
66079
  *
66080
+ * - `closing`: While the item has closed and its content is still drawn, until the content part's animations end.
65566
66081
  * - `open`: While the item is open.
65567
66082
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
65568
66083
  */
@@ -67466,6 +67981,12 @@ export type CustomElementsSolidJs = {
67466
67981
  * browser harness's awaits it alone: a browser always runs the frame, and a
67467
67982
  * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
67468
67983
  *
67984
+ * ## Events
67985
+ *
67986
+ * Events that will be emitted by the component.
67987
+ *
67988
+ * - `helix-select`: A plain press on the crumb's link, with its `href` as the value, before the browser follows it. Cancelable: cancel it to keep the browser from following, as a client-side router does.
67989
+ *
67469
67990
  * ## Slots
67470
67991
  *
67471
67992
  * Areas where markup can be added to the component.
@@ -67493,6 +68014,8 @@ export type CustomElementsSolidJs = {
67493
68014
  * Custom selectors for styling elements within the component.
67494
68015
  *
67495
68016
  * - `separator`: The separator preceding the item.
68017
+ * - `expand`: The button after the first crumb of a folded slotted trail, which shows the folded crumbs.
68018
+ * - `fold-separator`: The chevron before that button.
67496
68019
  * - `link`: The crumb itself, which is an `<a>` where `href` is set.
67497
68020
  * - `separator-mark`: The chevron between crumbs, shown when no separator is slotted.
67498
68021
  *
@@ -67500,7 +68023,9 @@ export type CustomElementsSolidJs = {
67500
68023
  *
67501
68024
  * These can be used to apply styling when a component is in a given state.
67502
68025
  *
68026
+ * - `current`: While the crumb is the current page, marked `current` or the last of a trail with none marked.
67503
68027
  * - `end`: While the `end` slot holds something, so a stylesheet can join the label and what follows it into one control.
68028
+ * - `folded`: While a trail longer than its `max-items` has folded the crumb away. It takes no room.
67504
68029
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
67505
68030
  */
67506
68031
  "helix-breadcrumb": Partial<
@@ -67587,6 +68112,8 @@ export type CustomElementsSolidJs = {
67587
68112
  * - `crumb`: Each crumb drawn from `items`.
67588
68113
  * - `crumb-collapsed`: The crumb that holds the folded middle of a trail longer than `max-items`.
67589
68114
  * - `crumb-current`: The crumb drawn from `items` for the current page.
68115
+ * - `crumb-expand`: The fold button a crumb draws after the first crumb of a folded slotted trail. A trail drawn from `items` draws its fold as a crumb of its own, `crumb-collapsed`, so this one is never drawn there.
68116
+ * - `crumb-fold-separator`: The chevron before that button.
67590
68117
  * - `crumb-link`: The link, or the current page's words, of a crumb drawn from `items`.
67591
68118
  * - `crumb-separator`: The separator before a crumb drawn from `items`.
67592
68119
  * - `crumb-separator-mark`: The chevron before a crumb drawn from `items`.
@@ -67718,6 +68245,7 @@ export type CustomElementsSolidJs = {
67718
68245
  *
67719
68246
  * These can be used to apply styling when a component is in a given state.
67720
68247
  *
68248
+ * - `pressed`: While a group with `selection-mode` has a button pressed.
67721
68249
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
67722
68250
  */
67723
68251
  "helix-button-group": Partial<
@@ -70712,7 +71240,8 @@ export type CustomElementsSolidJs = {
70712
71240
  * Passed to the panel, whose square, hue ramp and presets say the color's
70713
71241
  * name, and read by the swatch in `swatch`, which says it before the value.
70714
71242
  * Color Picker lists the keys.
70715
- * - `format`: The syntax the value is written in: `hex`, `rgb`, or `hsl`.
71243
+ * - `format`: The syntax the value is written in: `hex`, `rgb`, `hsl`, `oklch`, or
71244
+ * `hsb`, as Color Picker's `format`.
70716
71245
  *
70717
71246
  * **Undefaulted, because it reflects.** The two together stamp an attribute
70718
71247
  * onto every host anybody renders, including the ones nobody configured: the
@@ -70929,6 +71458,8 @@ export type CustomElementsSolidJs = {
70929
71458
  * - `picker-channel-marker-label`: The value a mark stands at, when `marker-labels` is set.
70930
71459
  * - `picker-channel-markers`: The row of marks along the track.
70931
71460
  * - `picker-channel-output`: The current value, shown beside the track.
71461
+ * - `picker-channel-thumb`: A ramp's thumb box, which holds no content in a picker.
71462
+ * - `picker-channel-thumbs`: The layer over a ramp's track that holds its thumb box.
70932
71463
  * - `picker-channel-tooltip`: A ramp's value in a bubble, where a ramp shows one.
70933
71464
  * - `picker-channel-tooltips`: The layer over a ramp's track that holds its bubble.
70934
71465
  * - `picker-channels`: The channel sliders beside the sample.
@@ -70953,7 +71484,9 @@ export type CustomElementsSolidJs = {
70953
71484
  * - `picker-grid-brightness`: The range input for the square's vertical axis.
70954
71485
  * - `picker-grid-handle`: The mark showing where in the square the color sits.
70955
71486
  * - `picker-grid-saturation`: The range input for the square's horizontal axis.
71487
+ * - `picker-hint`: The picker's own help, which the field's `hint` stands in for here, so it stays hidden.
70956
71488
  * - `picker-icon`: An icon drawn by the picker.
71489
+ * - `picker-label`: The picker's own name, which the field's `label` stands in for here, so it stays hidden.
70957
71490
  * - `picker-sample`: A chip of the current color. Pressing it copies the value.
70958
71491
  * - `picker-swatch`: One preset.
70959
71492
  * - `picker-swatches`: The row of presets.
@@ -71043,12 +71576,15 @@ export type CustomElementsSolidJs = {
71043
71576
  * language hears its own rather than English between its own labels.
71044
71577
  * - `channel-fields`/`channelFields`: Whether the picker shows a number field for each channel of the color, as
71045
71578
  * React Aria's ColorField does with `channel`: red, green and blue for hex
71046
- * and rgb, hue, saturation and lightness for hsl, and the opacity with
71047
- * `alpha`.
71579
+ * and rgb, hue, saturation and lightness for hsl, hue, saturation and
71580
+ * brightness for hsb, lightness, chroma and hue for oklch, and the opacity
71581
+ * with `alpha`.
71048
71582
  *
71049
71583
  * For a reader who has the numbers from a brand guide, and for a keyboard,
71050
71584
  * where typing 128 is quicker than holding an arrow key. The fields follow
71051
71585
  * the syntax the format toggle sets.
71586
+ * - `chroma-label`/`chromaLabel`: What the chroma channel's field is called, in `channel-fields` with
71587
+ * oklch.
71052
71588
  * - `color-words`/`colorWords`: The words a color's name is spoken in, as JSON keyed by their English,
71053
71589
  * such as `{"red": "rot", "vibrant": "kräftiges"}`.
71054
71590
  *
@@ -71065,15 +71601,25 @@ export type CustomElementsSolidJs = {
71065
71601
  * - `copy-label`/`copyLabel`: The name of the sample, which copies the value. `{value}` is replaced with
71066
71602
  * the color.
71067
71603
  * - `eyedropper-label`/`eyedropperLabel`: What the eyedropper is called.
71068
- * - `format`: The syntax the value is written in: `hex`, `rgb`, or `hsl`.
71604
+ * - `format`: The syntax the value is written in: `hex`, `rgb`, `hsl`, `oklch`, or
71605
+ * `hsb`.
71069
71606
  *
71070
71607
  * Only what is written. Everything is read whatever this says, so a picker on
71071
- * `hex` still takes an `rgb()` handed to it and stores the hex for it.
71608
+ * `hex` still takes an `rgb()` or an `oklch()` handed to it and stores the
71609
+ * hex for it. `oklch` writes the sRGB color the picker holds, such as
71610
+ * `oklch(62.8% 0.258 29.2)`; a color outside sRGB that is handed in is
71611
+ * clipped to it. `hsb` writes the picker's own model, `hsb(0, 100%, 100%)`,
71612
+ * as React Aria's and Zag's color strings do. It is not CSS, so the toggle
71613
+ * walks the other four.
71072
71614
  * - `format-label`/`formatLabel`: What the syntax toggle is called, with `{format}` filled in.
71073
71615
  * - `green-label`/`greenLabel`: What the green channel's field is called, in `channel-fields`.
71616
+ * - `hint`: Help under the picker, such as what the color is used for. The `hint`
71617
+ * slot takes richer content.
71074
71618
  * - `hue-label`/`hueLabel`: What the hue channel is called.
71619
+ * - `label`: The name above the picker, such as "Brand color". The picker is then a
71620
+ * group with this name. The `label` slot takes richer content.
71075
71621
  * - `lightness-label`/`lightnessLabel`: What the lightness channel's field is called, in `channel-fields` with
71076
- * hsl.
71622
+ * hsl and oklch.
71077
71623
  * - `no-eyedropper`/`noEyedropper`: Hides the eyedropper. Without it, the eyedropper appears in browsers that
71078
71624
  * support one.
71079
71625
  * - `no-format`/`noFormat`: Hides the syntax toggle, so the format cannot be changed.
@@ -71228,6 +71774,8 @@ export type CustomElementsSolidJs = {
71228
71774
  * Areas where markup can be added to the component.
71229
71775
  *
71230
71776
  * - `eyedropper-icon`: The icon on the eyedropper button, usually a dropper.
71777
+ * - `hint`: Help under the picker, for content richer than the `hint` text.
71778
+ * - `label`: The name above the picker, for content richer than the `label` text.
71231
71779
  *
71232
71780
  * ## Methods
71233
71781
  *
@@ -71326,6 +71874,8 @@ export type CustomElementsSolidJs = {
71326
71874
  * - `channel-marker-label`: The value a mark stands at, when `marker-labels` is set.
71327
71875
  * - `channel-markers`: The row of marks along the track.
71328
71876
  * - `channel-output`: The current value, shown beside the track.
71877
+ * - `channel-thumb`: A ramp's thumb box, which holds no content in a picker.
71878
+ * - `channel-thumbs`: The layer over a ramp's track that holds its thumb box.
71329
71879
  * - `channel-tooltip`: A ramp's value in a bubble, where a ramp shows one.
71330
71880
  * - `channel-tooltips`: The layer over a ramp's track that holds its bubble.
71331
71881
  * - `channels`: The ramps beside the sample.
@@ -71349,6 +71899,8 @@ export type CustomElementsSolidJs = {
71349
71899
  * - `grid`: The saturation and brightness square. Draw the mark that shows where the color sits with `::part(grid)::after` in your stylesheet. The square carries the two channels as `--color-picker-saturation` and `--color-picker-brightness`, and this tier ships no CSS.
71350
71900
  * - `grid-brightness`: The range input for the square's vertical axis.
71351
71901
  * - `grid-saturation`: The range input for the square's horizontal axis.
71902
+ * - `hint`: The help under the picker, while `hint` is set or the `hint` slot has content.
71903
+ * - `label`: The name above the picker, while `label` is set or the `label` slot has content.
71352
71904
  * - `sample`: A chip of the current color. Pressing it copies the value.
71353
71905
  * - `swatch`: One preset, an option in the `swatches` listbox.
71354
71906
  * - `swatches`: The row of presets, a listbox.
@@ -71360,7 +71912,10 @@ export type CustomElementsSolidJs = {
71360
71912
  *
71361
71913
  * These can be used to apply styling when a component is in a given state.
71362
71914
  *
71915
+ * - `copied`: The moment after the sample copies the value, while it says `copied-label`.
71916
+ * - `dragging`: While a pointer drags the square's handle.
71363
71917
  * - `invalid`: While `invalid` is set or `feedback` says what is wrong.
71918
+ * - `sampling`: While the eyedropper is open over the screen.
71364
71919
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
71365
71920
  */
71366
71921
  "helix-color-picker": Partial<
@@ -72957,6 +73512,7 @@ export type CustomElementsSolidJs = {
72957
73512
  * - `picker-day-outside`: A day from a neighboring month. Applied with `picker-day`.
72958
73513
  * - `picker-day-selected`: The chosen day, or either end of a chosen range. Applied with `picker-day`.
72959
73514
  * - `picker-day-today`: Today. Applied with `picker-day`.
73515
+ * - `picker-day-weekend`: A day of the weekend where the calendar's language is spoken, beside `picker-day`.
72960
73516
  * - `picker-feedback`: The calendar's own message, under it, while the calendar's `feedback` is set.
72961
73517
  * - `picker-grid`: The grid of days.
72962
73518
  * - `picker-header`: The month name and its controls.
@@ -73045,15 +73601,22 @@ export type CustomElementsSolidJs = {
73045
73601
  * speaks it. Unset is the sentence registered for the page's language, then
73046
73602
  * the English. `{mode}` is `single`, `range` or `multiple`, so each can have
73047
73603
  * its own sentence.
73048
- * - `calendar`: The calendar the heading, the days, and the months are written in:
73049
- * `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, the five whose
73050
- * months are the Gregorian months.
73051
- *
73052
- * Absent is the locale's own where it is one of the five, such as
73053
- * `buddhist` for `th-TH` or `japanese` for `ja-JP-u-ca-japanese`, and
73054
- * `gregory` for every other, such as `persian` for `fa-IR`, so the heading
73055
- * names the Gregorian month the grid shows. The value is `YYYY-MM-DD` in
73056
- * every calendar.
73604
+ * - `calendar`: The calendar the heading, the days, and the months are written in.
73605
+ *
73606
+ * `gregory`, `buddhist`, `japanese`, `roc`, and `iso8601` are the five
73607
+ * whose months are the Gregorian months. Absent is the locale's own where
73608
+ * it is one of the five, such as `buddhist` for `th-TH` or `japanese` for
73609
+ * `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
73610
+ * for `fa-IR`.
73611
+ *
73612
+ * `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
73613
+ * `coptic`, and `indian` draw a calendar with months of its own, as React
73614
+ * Aria's calendars do: each grid is one of that calendar's months, the
73615
+ * Hebrew leap month and Ethiopia's five-day thirteenth month included, and
73616
+ * Previous, Next and the page keys move by those months. `month` and
73617
+ * `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
73618
+ * heading stays text, as the months and years views are drawn in Gregorian
73619
+ * months only. The value is `YYYY-MM-DD` in every calendar.
73057
73620
  * - `default-month`/`defaultMonth`: The month to open on when `month` is not set.
73058
73621
  * - `disable-dates`/`disableDates`: Dates that cannot be chosen, as `YYYY-MM-DD`, separated by commas or
73059
73622
  * spaces.
@@ -73079,8 +73642,9 @@ export type CustomElementsSolidJs = {
73079
73642
  * its days.
73080
73643
  * - `min`: Earliest selectable date, as `YYYY-MM-DD`.
73081
73644
  * - `mode`: How many dates can be held at once.
73082
- * - `month`: The month shown, as `YYYY-MM`. When it is not set, it follows `value`,
73083
- * then the current month.
73645
+ * - `month`: The month shown, as `YYYY-MM`, or as its first day, `YYYY-MM-DD`, under a
73646
+ * `calendar` with months of its own. When it is not set, it follows
73647
+ * `value`, then the current month.
73084
73648
  *
73085
73649
  * Separate from `value` on purpose, so paging selects nothing and a consumer
73086
73650
  * can drive the view. Reading gives the month on show; writing sets it, and
@@ -73127,6 +73691,13 @@ export type CustomElementsSolidJs = {
73127
73691
  * treated as one rather than as an error: a step of zero would block every
73128
73692
  * date including the one already chosen.
73129
73693
  * - `step-mismatch-message`/`stepMismatchMessage`: The validation message for a date that `step` skips.
73694
+ * - `time-zone`/`timeZone`: The time zone today is read in, such as `America/New_York`, as React
73695
+ * Aria's `today(timeZone)` reads it. Empty is the reader's own.
73696
+ *
73697
+ * Dates are plain `YYYY-MM-DD` and carry no zone, so this moves only today:
73698
+ * the day marked `aria-current` and `day-today`, and the month a picker
73699
+ * with no value opens on. A desk in Tokyo booking for an office in New York
73700
+ * sets `America/New_York`, and today is the office's.
73130
73701
  * - `unavailable-message`/`unavailableMessage`: The validation message for a date that `disable-dates` or `disable-days`
73131
73702
  * bars.
73132
73703
  * - `value-missing-message`/`valueMissingMessage`: The validation message for a required date picker with no date chosen.
@@ -73227,6 +73798,8 @@ export type CustomElementsSolidJs = {
73227
73798
  *
73228
73799
  * Areas where markup can be added to the component.
73229
73800
  *
73801
+ * - `footer`: Content under the calendar, such as buttons for today or a common range.
73802
+ * - `header`: Content above the calendar, such as a note on what the date is for.
73230
73803
  * - `next-icon`: The glyph on the control that moves forward a month, usually a caret.
73231
73804
  * - `previous-icon`: The glyph on the control that moves back a month, usually a caret.
73232
73805
  *
@@ -73320,6 +73893,7 @@ export type CustomElementsSolidJs = {
73320
73893
  * - `day-outside`: A day from a neighboring month, filling the grid out, beside `day`.
73321
73894
  * - `day-selected`: The chosen day, or either end of a chosen range, beside `day`.
73322
73895
  * - `day-today`: Today, beside `day`.
73896
+ * - `day-weekend`: A day of the weekend where the calendar's language is spoken, beside `day`: Saturday and Sunday in `en-US`, Friday and Saturday in `ar-EG`.
73323
73897
  * - `feedback`: The message under the calendar, while `feedback` is set.
73324
73898
  * - `grid`: The grid of days.
73325
73899
  * - `header`: The month name and its controls.
@@ -73338,7 +73912,7 @@ export type CustomElementsSolidJs = {
73338
73912
  * - `previous`: The control that moves to the previous month.
73339
73913
  * - `previous-mark`: The glyph on the previous month control, where none is slotted.
73340
73914
  * - `week`: One row of days.
73341
- * - `weekday`: A column header naming a day of the week.
73915
+ * - `weekday`: A column header naming a day of the week. It shows the short name and says the full one.
73342
73916
  *
73343
73917
  * ## CSS States
73344
73918
  *
@@ -81413,6 +81987,7 @@ export type CustomElementsSolidJs = {
81413
81987
  *
81414
81988
  * These can be used to apply styling when a component is in a given state.
81415
81989
  *
81990
+ * - `open`: While a megamenu or another disclosure among the destinations is open.
81416
81991
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
81417
81992
  */
81418
81993
  "helix-navigation": Partial<
@@ -86287,6 +86862,17 @@ export type CustomElementsSolidJs = {
86287
86862
  *
86288
86863
  * No attribute, because it is coordination between elements rather than
86289
86864
  * anything a consumer sets. (property only)
86865
+ * - `items`: The options as data, for a list too long to draw whole: each a value,
86866
+ * which is also its words, or a record with a `value`, a `label` and
86867
+ * `disabled`. Passed to the list, which draws only the options in sight,
86868
+ * as Listbox's `items` does. Set, the options you write as children are
86869
+ * not read.
86870
+ *
86871
+ * The trigger shows the chosen options' labels, the letters and the Left
86872
+ * and Right keys on the closed trigger choose over the whole set, and a
86873
+ * chosen value whose option leaves `items` drops out of `value`.
86874
+ * `value-content` is not called for `items`. Import the Option family as
86875
+ * well, whose elements are drawn. (property only)
86290
86876
  * - `valueContent`: What the trigger shows for the chosen options: a function given them, in
86291
86877
  * the order they appear, that returns text, an element or a Lit template.
86292
86878
  *
@@ -86468,6 +87054,8 @@ export type CustomElementsSolidJs = {
86468
87054
  *
86469
87055
  * - `invalid`: The control has an error to show, from the browser's validation or from your `feedback`.
86470
87056
  * - `open`: While the list is open.
87057
+ * - `placed-bottom`: While the open list sits below the trigger.
87058
+ * - `placed-top`: While the open list sits above the trigger, where there was no room below.
86471
87059
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
86472
87060
  */
86473
87061
  "helix-select": Partial<
@@ -86756,13 +87344,24 @@ export type CustomElementsSolidJs = {
86756
87344
  * between its thumbs and ignores it.
86757
87345
  * - `range`: Adds a second thumb, so the value is a pair.
86758
87346
  *
86759
- * The pair is one string, `"10,50"`, which is what a form submits and what
86760
- * `MixinControllerValue` already holds. `valueAsNumber` reads the lower of
86761
- * the two, since a range has no single number.
87347
+ * The pair is one string, `"10,50"`, which is what `value` and
87348
+ * `MixinControllerValue` hold. A form receives two entries under the name,
87349
+ * `price=10&price=50`, as React Aria's two thumbs send theirs.
87350
+ * `valueAsNumber` reads the lower of the two, since a range has no single
87351
+ * number.
86762
87352
  * - `range-text`/`rangeText`: How the readout joins a range's two values, with `{start}` and `{end}`
86763
87353
  * filled in. Write it in the page's language, such as `{start} bis {end}`.
87354
+ * - `readonly`/`readOnly`: Whether a reader can see and focus the value and cannot change it. A
87355
+ * read-only slider still submits its value.
87356
+ *
87357
+ * React Aria's `isReadOnly`. Each thumb stays a tab stop and says
87358
+ * `aria-readonly`. The arrow keys, the page keys, Home, End, and a drag
87359
+ * leave the value where it is. A script can still set `value`.
86764
87360
  * - `show-value`/`showValue`: Shows the chosen value beside the track.
86765
87361
  * - `step`: How far one press of an arrow key moves the thumb.
87362
+ * - `thumb-label`/`thumbLabel`: The name of a thumb between a range's first and last, read after the
87363
+ * slider's label, with `{index}` filled in: its place, counted from 1. The
87364
+ * first is `minimum-label` and the last `maximum-label`.
86766
87365
  * - `tooltip`: Whether each thumb shows its value in a bubble beside it, as Web
86767
87366
  * Awesome's `with-tooltip`. The styled slider shows the bubbles while the
86768
87367
  * slider is under the pointer or holds focus. They repeat what each thumb
@@ -86838,6 +87437,8 @@ export type CustomElementsSolidJs = {
86838
87437
  * - `feedback`: The message that says what is wrong, for content richer than a string. It shows while there is a message.
86839
87438
  * - `hint`: Help under the control, for content richer than the `hint` text.
86840
87439
  * - `label`: The label, for content richer than the `label` text.
87440
+ * - `thumb`: Content drawn on the thumb, such as a glyph: a single slider's thumb, or a range's lower one. It is decoration, hidden from a screen reader.
87441
+ * - `thumb-end`: Content drawn on a range's upper thumb.
86841
87442
  *
86842
87443
  * ## Methods
86843
87444
  *
@@ -86910,6 +87511,7 @@ export type CustomElementsSolidJs = {
86910
87511
  * - `--slider-length`: The length of a vertical track. It defaults to nine rem and applies only when `orientation` is `vertical`. A horizontal track takes the width of its row.
86911
87512
  * - `--slider-marker-color`: The color of the marks along the track.
86912
87513
  * - `--slider-thumb-color`: The color of the thumb.
87514
+ * - `--slider-thumb-content-color`: The color of content in the `thumb` and `thumb-end` slots, drawn on the thumb.
86913
87515
  * - `--slider-thumb-length`: The thumb's size along the track. It follows `--slider-thumb-size` unless you set it, and setting one of the two makes the thumb an oval.
86914
87516
  * - `--slider-thumb-radius`: The thumb's corner radius. It is fully round by default, so a thumb with two different dimensions is a capsule unless you change it.
86915
87517
  * - `--slider-thumb-ring-color`: The color of the ring between the thumb and the track. Set it for a slider that sits on a surface other than the page background.
@@ -86919,7 +87521,7 @@ export type CustomElementsSolidJs = {
86919
87521
  * - `--slider-track-color`: The color of the unfilled part of the track.
86920
87522
  * - `--slider-track-image`: An image for the whole track, such as a gradient for a slider whose value is a color.
86921
87523
  * - `--slider-track-size`: The thickness of the track. It matches the progress bar's size by default.
86922
- * - `--slider-at`: Where a bubble's thumb is, as a fraction of the track, 0 to 1. Set on each `tooltip` part.
87524
+ * - `--slider-at`: Where a bubble's or a thumb box's thumb is, as a fraction of the track, 0 to 1. Set on each `tooltip` and `thumb` part.
86923
87525
  * - `--slider-fraction`: The value as a fraction of the range, 0 to 1.
86924
87526
  * - `--slider-from`: Where the filled span starts, as a fraction of the track, 0 to 1: a range's lower thumb, or a single thumb's `origin`.
86925
87527
  * - `--slider-marker-at`: Where one marker sits, as a percentage of the track.
@@ -86929,7 +87531,7 @@ export type CustomElementsSolidJs = {
86929
87531
  *
86930
87532
  * Custom selectors for styling elements within the component.
86931
87533
  *
86932
- * - `control`: The range input.
87534
+ * - `control`: The range input, one per thumb. On a range each carries `data-thumb`, `start`, `middle`, or `end`, and `data-index`, its place from the lowest.
86933
87535
  * - `feedback`: The error message under the track.
86934
87536
  * - `field`: The row that holds the control and its readout.
86935
87537
  * - `hint`: The help text under the track, shown while there is no error.
@@ -86938,7 +87540,9 @@ export type CustomElementsSolidJs = {
86938
87540
  * - `marker-label`: The value a mark stands at, when `marker-labels` is set.
86939
87541
  * - `markers`: The row of marks along the track.
86940
87542
  * - `output`: The current value, shown beside the track.
86941
- * - `tooltip`: One thumb's value in a bubble beside it, under `tooltip`. It carries `data-thumb` on a range, `start` or `end`, and `--slider-at`, where its thumb is as a fraction of the track.
87543
+ * - `thumb`: One thumb's own box over the track, which holds the `thumb` or `thumb-end` slot. It carries `data-thumb` on a range, `start`, `middle`, or `end`, and `--slider-at`, where its thumb is as a fraction of the track. Draw your own thumb here and hide the native one, or leave it empty.
87544
+ * - `thumbs`: The layer over the track that holds each `thumb`. It is `hidden` until a thumb slot has content, and then `[part="field"]` carries `data-thumbs`.
87545
+ * - `tooltip`: One thumb's value in a bubble beside it, under `tooltip`. It carries `data-thumb` on a range, `start`, `middle`, or `end`, and `--slider-at`, where its thumb is as a fraction of the track.
86942
87546
  * - `tooltips`: The layer over the track that holds the bubbles, under `tooltip`.
86943
87547
  *
86944
87548
  * ## CSS States
@@ -87289,9 +87893,15 @@ export type CustomElementsSolidJs = {
87289
87893
  * Component attributes and properties that can be applied to the element or by using JavaScript.
87290
87894
  *
87291
87895
  * - `disabled`: Whether the action is disabled, so it cannot be chosen.
87896
+ * - `download`: Whether the link downloads the file when the action is chosen. Only
87897
+ * meaningful beside an `href`, and only for a file served from the page's
87898
+ * origin.
87899
+ * - `href`: The URL the action links to. Setting it draws the action as a link.
87900
+ * - `rel`: The link's `rel`. Set it whenever you set `target="_blank"`.
87292
87901
  * - `shortcut`: The action's keyboard shortcut as a chord, such as `mod+s`, carried as
87293
87902
  * `aria-keyshortcuts` and drawn after the name. `mod` is Command on an Apple
87294
87903
  * keyboard and Control elsewhere. Showing a shortcut does not bind it.
87904
+ * - `target`: Where the link opens, such as `_blank` for a new tab.
87295
87905
  * - `value`: The action's value, sent in `helix-select` when the action is chosen.
87296
87906
  * - `active`: Whether the action has focus, which makes it the action the keyboard is on.
87297
87907
  *
@@ -87362,7 +87972,7 @@ export type CustomElementsSolidJs = {
87362
87972
  * Custom selectors for styling elements within the component.
87363
87973
  *
87364
87974
  * - `icon`: The box that holds the icon.
87365
- * - `item`: The control for the action.
87975
+ * - `item`: The control for the action, which is an `<a>` where `href` is set.
87366
87976
  * - `label`: The action's name, beside the icon.
87367
87977
  * - `shortcut`: The box after the name that holds the shortcut, shown while `shortcut` is set or something is in the `shortcut` slot.
87368
87978
  *
@@ -87416,9 +88026,11 @@ export type CustomElementsSolidJs = {
87416
88026
  * plain element of yours once a reader reaches it, after hydration, unless
87417
88027
  * you described or labeled it yourself.
87418
88028
  * - `offset`: Space between the trigger and the actions, in pixels.
87419
- * - `open-on`/`openOn`: What opens the dial. `click` opens it on a press of the trigger. Under
87420
- * `long-press`, a press is the trigger's own action, and the dial opens on a
87421
- * press held for half a second, or on Alt+Down or Alt+Up.
88029
+ * - `open-on`/`openOn`: What opens the dial. `click` opens it on a press of the trigger. `hover`
88030
+ * also opens it while a mouse rests on the trigger, and closes it once the
88031
+ * mouse has left. Under `long-press`, a press is the trigger's own action,
88032
+ * and the dial opens on a press held for half a second, or on Alt+Down or
88033
+ * Alt+Up.
87422
88034
  * - `placement`: The direction the actions open in. They move to another side if that side
87423
88035
  * does not fit.
87424
88036
  *
@@ -87459,6 +88071,7 @@ export type CustomElementsSolidJs = {
87459
88071
  * Areas where markup can be added to the component.
87460
88072
  *
87461
88073
  * - `(default)`: The actions.
88074
+ * - `icon`: Replaces the plus on the button the dial draws when no trigger is slotted, such as with a pencil for a dial of ways to write.
87462
88075
  * - `trigger`: The control that opens the actions. Without one, a button named by `label` is drawn.
87463
88076
  *
87464
88077
  * ## Methods
@@ -87950,6 +88563,14 @@ export type CustomElementsSolidJs = {
87950
88563
  * - `default-active`/`defaultActive`: The `value` of the item declared current in markup.
87951
88564
  *
87952
88565
  * Ignored once `active` is written.
88566
+ * - `arrows`: Whether the arrow keys move focus between the stages' names, along the
88567
+ * way the steps run. Off by default, so the arrows keep scrolling the page.
88568
+ * - `completion`: What marks a stage `complete`.
88569
+ *
88570
+ * Absent, you do: each step's `complete` is yours, because a reader who
88571
+ * steps back has finished more stages than the one they are on. `passed`
88572
+ * marks every stage before the one a reader moves to, and leaves the marks
88573
+ * when they go back.
87953
88574
  * - `label`: The sequence's name, read by screen readers.
87954
88575
  *
87955
88576
  * A list of stages is a landmark a reader arrives at out of order, so it
@@ -88037,6 +88658,10 @@ export type CustomElementsSolidJs = {
88037
88658
  * does. Returns whether it moved: not past the last stage, not into a stage
88038
88659
  * `linear` holds out of reach, and not where a listener refused.
88039
88660
  * - `previous() => boolean`: Moves to the stage before, as Ark UI's `goToPrevStep` does. Returns whether it moved.
88661
+ * - `reset() => boolean`: Goes back to the first stage that can be gone to, and clears `complete`
88662
+ * and the invalid mark from every stage, as Ark UI's `resetStep` does.
88663
+ * Returns whether it moved: a listener can refuse the move with
88664
+ * `helix-before-activate`, and the stages then keep their marks.
88040
88665
  *
88041
88666
  * ## CSS Custom Properties
88042
88667
  *
@@ -88139,6 +88764,8 @@ export type CustomElementsSolidJs = {
88139
88764
  *
88140
88765
  * Methods that can be called to access component functionality.
88141
88766
  *
88767
+ * - `focus(options?: FocusOptions) => void`: Puts focus on the step's name, the control a reader presses, as a
88768
+ * `focus()` on a native control would.
88142
88769
  * - `select() => void`: Fires `helix-select` for the step, unless the step is `disabled` or a
88143
88770
  * linear sequence has it out of reach.
88144
88771
  *
@@ -88164,6 +88791,7 @@ export type CustomElementsSolidJs = {
88164
88791
  * These can be used to apply styling when a component is in a given state.
88165
88792
  *
88166
88793
  * - `invalid`: The sequence's `validate` last answered that this stage is not valid.
88794
+ * - `locked`: A `linear` sequence holds this stage out of reach until the stages before it are finished.
88167
88795
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
88168
88796
  */
88169
88797
  "helix-step": Partial<
@@ -89096,6 +89724,8 @@ export type CustomElementsSolidJs = {
89096
89724
  * panels and tells a screen reader the list is vertical.
89097
89725
  *
89098
89726
  * Optional, so the resting row writes no attribute onto the host.
89727
+ * - `scroll-controls`/`scrollControls`: Whether a strip with more tabs than fit shows a button at each end it can
89728
+ * scroll toward.
89099
89729
  * - `variant`: How the row of tabs is drawn.
89100
89730
  *
89101
89731
  * Unset is a raised pill on the selected tab with nothing behind the row,
@@ -89178,6 +89808,7 @@ export type CustomElementsSolidJs = {
89178
89808
  * - `--tabs-indicator-shadow`: The shadow under the mark, which the pill and `segmented` draw.
89179
89809
  * - `--tabs-indicator-thickness`: The height of the bar under `underlined`.
89180
89810
  * - `--tabs-rule-color`: The color of the rule under the row in `underlined`.
89811
+ * - `--tabs-scroll-background-color`: The fill behind the scroll buttons, over the tabs that pass under them.
89181
89812
  *
89182
89813
  * ## CSS Parts
89183
89814
  *
@@ -89185,6 +89816,8 @@ export type CustomElementsSolidJs = {
89185
89816
  *
89186
89817
  * - `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`.
89187
89818
  * - `panels`: The panel container.
89819
+ * - `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.
89820
+ * - `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.
89188
89821
  * - `tabs`: The tab list.
89189
89822
  *
89190
89823
  * ## CSS States
@@ -89207,6 +89840,17 @@ export type CustomElementsSolidJs = {
89207
89840
  *
89208
89841
  * Component attributes and properties that can be applied to the element or by using JavaScript.
89209
89842
  *
89843
+ * - `dismissible`: Whether the element shows a control that dismisses it.
89844
+ * - `dismiss-label`/`dismissLabel`: The dismiss control's label, read by screen readers.
89845
+ *
89846
+ * `attribute` is spelled out because Lit lowercases a property name to
89847
+ * derive one rather than dash-casing it, so this would otherwise be
89848
+ * reachable only as `dismisslabel`, which nobody would guess and no linter
89849
+ * would catch.
89850
+ *
89851
+ * A word property: register it for a locale under the host's key. A family
89852
+ * that names the control otherwise, such as Tag's `Remove {label}`,
89853
+ * declares its own English with `@words` above the override.
89210
89854
  * - `disabled`: Whether the item is disabled and cannot be chosen.
89211
89855
  * - `selected`: Whether the item is selected.
89212
89856
  *
@@ -89244,6 +89888,7 @@ export type CustomElementsSolidJs = {
89244
89888
  *
89245
89889
  * Events that will be emitted by the component.
89246
89890
  *
89891
+ * - `helix-dismiss`: A `dismissible` tab was asked to close. The tab does not remove itself, so remove it and its panel in response. Cancelable.
89247
89892
  * - `helix-select`: Fired when the tab is chosen. Cancelable: canceling it stops the change and leaves the decision to you.
89248
89893
  *
89249
89894
  * ## Slots
@@ -89256,6 +89901,7 @@ export type CustomElementsSolidJs = {
89256
89901
  *
89257
89902
  * Methods that can be called to access component functionality.
89258
89903
  *
89904
+ * - `dismiss() => boolean`: Fires `helix-dismiss`, and returns `false` if a listener cancels it.
89259
89905
  * - `focusItem() => void`: Moves focus to the item's control, for the set's arrow keys.
89260
89906
  *
89261
89907
  * The set drives the keys and cannot reach the control itself, which is
@@ -89273,6 +89919,7 @@ export type CustomElementsSolidJs = {
89273
89919
  * - `--tabs-tab-block-size`: The height of a tab. `segmented` sizes its tabs to the track and does not read it.
89274
89920
  * - `--tabs-tab-color`: The label color of a tab that is not current.
89275
89921
  * - `--tabs-tab-disabled-opacity`: How faint a disabled tab is drawn.
89922
+ * - `--tabs-tab-dismiss-color`: The color of the mark that closes a `dismissible` tab.
89276
89923
  * - `--tabs-tab-font-size`: The size of a tab's label.
89277
89924
  * - `--tabs-tab-font-weight`: The weight of a tab's label.
89278
89925
  * - `--tabs-tab-hover-background-color`: The wash under the pointer.
@@ -89286,6 +89933,7 @@ export type CustomElementsSolidJs = {
89286
89933
  *
89287
89934
  * Custom selectors for styling elements within the component.
89288
89935
  *
89936
+ * - `dismiss`: The mark a pointer presses to close a `dismissible` tab.
89289
89937
  * - `tab`: The tab itself.
89290
89938
  *
89291
89939
  * ## CSS States
@@ -89308,10 +89956,19 @@ export type CustomElementsSolidJs = {
89308
89956
  *
89309
89957
  * Component attributes and properties that can be applied to the element or by using JavaScript.
89310
89958
  *
89959
+ * - `disallow-empty-selection`/`disallowEmptySelection`: Keeps at least one tag selected once one is, as React Aria's
89960
+ * `disallowEmptySelection`: a press or a key that would leave none selected
89961
+ * is refused. Removing the last selected tag still takes it out of `value`.
89311
89962
  * - `empty-label`/`emptyLabel`: The words the group shows and says once its last tag is removed, where
89312
89963
  * nothing is in the `empty` slot.
89313
89964
  * - `label`: The name of the set, such as "Filters", which a screen reader announces
89314
89965
  * before its tags.
89966
+ * - `selection-behavior`/`selectionBehavior`: What a press, Space, or a move does to the tags already selected.
89967
+ * `toggle`, the default, keeps them: a press adds or takes out the tag, and
89968
+ * the arrow keys move focus alone. `replace` selects the tag alone, as a
89969
+ * file list does, and the arrow keys carry the selection with focus.
89970
+ * Control or Command with a press or Space adds or takes out one tag in
89971
+ * `multiple`, and with an arrow moves focus without selecting.
89315
89972
  * - `selection-mode`/`selectionMode`: How many tags a reader can select: `single`, `multiple`, or none.
89316
89973
  *
89317
89974
  * Absent selects nothing, and the tags carry no selected state at all.
@@ -89386,6 +90043,11 @@ export type CustomElementsSolidJs = {
89386
90043
  * Seven tones. The fill is a tint of the status color made with `color-mix`, so
89387
90044
  * when a theme changes its status colors, the tints change with them.
89388
90045
  *
90046
+ * A tag takes its height from the region it is in, as the controls beside it
90047
+ * do: `data-density="sm"`, `md`, or `lg` on the tag or on any element around
90048
+ * it sets `--helix-size-tag` to the small, resting, or large step, so a row of
90049
+ * tags and buttons stays one height. `shape="pill"` rounds its ends.
90050
+ *
89389
90051
  * ## Attributes & Properties
89390
90052
  *
89391
90053
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -91535,6 +92197,8 @@ export type CustomElementsSolidJs = {
91535
92197
  * Areas where markup can be added to the component.
91536
92198
  *
91537
92199
  * - `(default)`: The item's label.
92200
+ * - `end`: Content after the label, such as a count or a shortcut.
92201
+ * - `start`: Content before the label, such as an icon.
91538
92202
  *
91539
92203
  * ## Methods
91540
92204
  *
@@ -92453,6 +93117,11 @@ export type CustomElementsSolidJs = {
92453
93117
  *
92454
93118
  * An `aria-label` or `aria-labelledby` on the host names the tree too, and
92455
93119
  * wins over this.
93120
+ * - `moved-into-label`/`movedIntoLabel`: What screen readers hear when an item moves into another branch, in a
93121
+ * `reorderable` tree. `{name}` is the item's words, `{parent}` the words of
93122
+ * the branch it moved into, or the tree's `label` for the top level,
93123
+ * `{position}` its place there, counting from 1, and `{count}` the number of
93124
+ * items there.
92456
93125
  * - `moved-label`/`movedLabel`: What screen readers hear each time an item moves, in a `reorderable`
92457
93126
  * tree. `{name}` is the item's words, `{position}` its place among its
92458
93127
  * siblings, counting from 1, and `{count}` the number of siblings.
@@ -95464,6 +96133,8 @@ export type CustomCssProperties = {
95464
96133
  "--slider-marker-color"?: (string) | undefined;
95465
96134
  /** The color of the thumb. */
95466
96135
  "--slider-thumb-color"?: (string) | undefined;
96136
+ /** The color of content in the `thumb` and `thumb-end` slots, drawn on the thumb. */
96137
+ "--slider-thumb-content-color"?: (string) | undefined;
95467
96138
  /** The thumb's size along the track. It follows `--slider-thumb-size` unless you set it, and setting one of the two makes the thumb an oval. */
95468
96139
  "--slider-thumb-length"?: (string) | undefined;
95469
96140
  /** The thumb's corner radius. It is fully round by default, so a thumb with two different dimensions is a capsule unless you change it. */
@@ -95482,7 +96153,7 @@ export type CustomCssProperties = {
95482
96153
  "--slider-track-image"?: (string) | undefined;
95483
96154
  /** The thickness of the track. It matches the progress bar's size by default. */
95484
96155
  "--slider-track-size"?: (string) | undefined;
95485
- /** Where a bubble's thumb is, as a fraction of the track, 0 to 1. Set on each `tooltip` part. */
96156
+ /** Where a bubble's or a thumb box's thumb is, as a fraction of the track, 0 to 1. Set on each `tooltip` and `thumb` part. */
95486
96157
  "--slider-at"?: (string) | undefined;
95487
96158
  /** The value as a fraction of the range, 0 to 1. */
95488
96159
  "--slider-fraction"?: (string) | undefined;
@@ -95684,12 +96355,16 @@ export type CustomCssProperties = {
95684
96355
  "--tabs-indicator-thickness"?: (string) | undefined;
95685
96356
  /** The color of the rule under the row in `underlined`. */
95686
96357
  "--tabs-rule-color"?: (string) | undefined;
96358
+ /** The fill behind the scroll buttons, over the tabs that pass under them. */
96359
+ "--tabs-scroll-background-color"?: (string) | undefined;
95687
96360
  /** The height of a tab. `segmented` sizes its tabs to the track and does not read it. */
95688
96361
  "--tabs-tab-block-size"?: (string) | undefined;
95689
96362
  /** The label color of a tab that is not current. */
95690
96363
  "--tabs-tab-color"?: (string) | undefined;
95691
96364
  /** How faint a disabled tab is drawn. */
95692
96365
  "--tabs-tab-disabled-opacity"?: (string) | undefined;
96366
+ /** The color of the mark that closes a `dismissible` tab. */
96367
+ "--tabs-tab-dismiss-color"?: (string) | undefined;
95693
96368
  /** The size of a tab's label. */
95694
96369
  "--tabs-tab-font-size"?: (string) | undefined;
95695
96370
  /** The weight of a tab's label. */