@fusion.dev/helix 0.154.0 → 0.156.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.
Files changed (46) hide show
  1. package/custom-elements.json +4367 -70
  2. package/dist/breadcrumbs/breadcrumb/breadcrumb.css.js +5 -1
  3. package/dist/canvas/root/canvas-root.css.js +1 -1
  4. package/dist/color-picker/root/color-picker-root.css.js +1 -1
  5. package/dist/command/root/command-root.css.js +1 -1
  6. package/dist/data-table/root/data-table-root.css.js +1 -1
  7. package/dist/data-table/root/data-table-root.d.ts +2 -0
  8. package/dist/date-input/root/date-input-root.css.js +2 -1
  9. package/dist/date-picker/root/date-picker-root.css.js +1 -1
  10. package/dist/element-events.generated.js +3 -1
  11. package/dist/graph/root/graph-root.css.js +1 -1
  12. package/dist/list/root/list-root.css.js +1 -1
  13. package/dist/list/root/list-root.d.ts +4 -0
  14. package/dist/number-input/root/number-input-root.css.js +3 -1
  15. package/dist/number-input/root/number-input-root.d.ts +3 -1
  16. package/dist/sandbox/frame.d.ts +9 -2
  17. package/dist/sandbox/frame.js +34 -2
  18. package/dist/sandbox/preview/sandbox-preview.d.ts +22 -1
  19. package/dist/sandbox/preview/sandbox-preview.js +25 -6
  20. package/dist/sandbox/root/sandbox-root.d.ts +4 -3
  21. package/dist/sandbox/root/sandbox-root.js +5 -3
  22. package/dist/slider/root/slider-root.css.js +4 -3
  23. package/dist/slider/root/slider-root.d.ts +1 -0
  24. package/dist/speed-dial/item/speed-dial-item.css.js +1 -1
  25. package/dist/speed-dial/root/speed-dial-root.css.js +1 -1
  26. package/dist/table/root/table-root.css.js +1 -1
  27. package/dist/table/root/table-root.d.ts +2 -0
  28. package/dist/tabs/root/tabs-root.css.js +5 -1
  29. package/dist/tabs/root/tabs-root.d.ts +3 -0
  30. package/dist/tabs/tab/tab.css.js +1 -1
  31. package/dist/tabs/tab/tab.d.ts +2 -0
  32. package/dist/tag/root/tag-root.d.ts +5 -0
  33. package/dist/time-input/root/time-input-root.css.js +2 -1
  34. package/dist/time-picker/root/time-picker-root.css.js +2 -2
  35. package/dist/timeline/item/timeline-item.css.js +2 -2
  36. package/dist/timeline/item/timeline-item.d.ts +4 -0
  37. package/dist/timeline/root/timeline-root.d.ts +4 -0
  38. package/dist/toggle/root/toggle-root.css.js +1 -1
  39. package/dist/video-playlist/root/video-playlist-root.js +2 -1
  40. package/dist/virtual-list/root/virtual-list-root.css.js +1 -1
  41. package/dist/virtual-list/root/virtual-list-root.d.ts +1 -0
  42. package/lint.json +1 -1
  43. package/package.json +6 -6
  44. package/types/jsx.d.ts +3378 -336
  45. package/types/vue.d.ts +1064 -80
  46. package/types/words.d.ts +120 -1
package/types/vue.d.ts CHANGED
@@ -168,6 +168,7 @@ import type {
168
168
  HelixReadingChangeEvent,
169
169
  HelixReadingPressEvent,
170
170
  HelixAuraFallbackEvent,
171
+ HelixSelectEvent,
171
172
  HelixBeforeChangeEvent,
172
173
  HelixPressEvent,
173
174
  HelixBeforeMoveEvent,
@@ -182,7 +183,6 @@ import type {
182
183
  HelixReconnectEvent,
183
184
  HelixRelabelEvent,
184
185
  HelixRemoveEvent,
185
- HelixSelectEvent,
186
186
  HelixActivateEvent,
187
187
  HelixSendEvent,
188
188
  HelixTypingEvent,
@@ -1532,6 +1532,15 @@ element's language. Leave the marks out of the text. */
1532
1532
 
1533
1533
  export type HelixBlockquoteVueEvents = {};
1534
1534
 
1535
+ /** `HelixBreadcrumb` component event */
1536
+ export type HelixBreadcrumbElementEvent<E = Event> = TypedEvent<
1537
+ HelixBreadcrumb,
1538
+ E
1539
+ >;
1540
+ /** `helix-select` event type */
1541
+ export type HelixBreadcrumbHelixSelectElementEvent =
1542
+ HelixBreadcrumbElementEvent<HelixSelectEvent>;
1543
+
1535
1544
  export type HelixBreadcrumbVueProps = {
1536
1545
  /** Marks this item as the page you are on. */
1537
1546
  current?: (HelixBreadcrumb["current"]) | undefined;
@@ -1561,7 +1570,10 @@ The consumer's decision. */
1561
1570
  target?: (HelixBreadcrumb["target"]) | undefined;
1562
1571
  };
1563
1572
 
1564
- export type HelixBreadcrumbVueEvents = {};
1573
+ export type HelixBreadcrumbVueEvents = {
1574
+ /** 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. */
1575
+ "helix-select": HelixBreadcrumbHelixSelectElementEvent;
1576
+ };
1565
1577
 
1566
1578
  export type HelixBreadcrumbsVueProps = {
1567
1579
  /** How the two halves of a split crumb are told apart. A split crumb is one
@@ -2485,13 +2497,22 @@ units. */
2485
2497
  card and `{width}` and `{height}` for its new size, in the document's
2486
2498
  units. */
2487
2499
  resizedLabel?: (HelixCanvas["resizedLabel"]) | undefined;
2500
+ /** What a screen reader calls the board in place of its role, after its
2501
+ name: "Release plan, canvas". Said only where the board has a name of its
2502
+ own, since the fallback name is the same word. Empty leaves the role. */
2503
+ "role-label"?: (HelixCanvas["roleLabel"]) | undefined;
2504
+ /** What a screen reader calls the board in place of its role, after its
2505
+ name: "Release plan, canvas". Said only where the board has a name of its
2506
+ own, since the fallback name is the same word. Empty leaves the role. */
2507
+ roleLabel?: (HelixCanvas["roleLabel"]) | undefined;
2488
2508
  /** The names of the selected cards and connections, comma separated. Empty
2489
2509
  when nothing is selected.
2490
2510
 
2491
2511
  **Comma separated, the way `Listbox` writes a multiple value**, so a page
2492
2512
  reads one selection the same way wherever it comes from. A click, or a key
2493
- that lands on one, selects it alone; Shift, Command or Control with a click
2494
- adds or takes one away, and so does Space; Command or Control with A
2513
+ that lands on one, selects it alone; Command or Control with an arrow key
2514
+ moves without selecting; Shift, Command or Control with a click adds or
2515
+ takes one away, and so does Space; Command or Control with A
2495
2516
  selects everything; Shift and a drag across the empty board selects the
2496
2517
  cards the box touches. A click on the empty board, or Escape, selects
2497
2518
  nothing. Dragging, Shift with an arrow, and Delete act on the whole
@@ -3390,6 +3411,16 @@ say that without the component knowing what a row looks like. */
3390
3411
  "loading-text"?: (HelixChat["loadingText"]) | undefined;
3391
3412
  /** The text shown and announced while the rows load. */
3392
3413
  loadingText?: (HelixChat["loadingText"]) | undefined;
3414
+ /** What a screen reader hears when a turn arrives. `{author}` is who wrote
3415
+ it, as its name says it, and `{text}` its words. A turn with no author a
3416
+ reader can be told, a turn by `them` with no `author-label`, says its
3417
+ words alone. */
3418
+ "arrival-label"?: (HelixChat["arrivalLabel"]) | undefined;
3419
+ /** What a screen reader hears when a turn arrives. `{author}` is who wrote
3420
+ it, as its name says it, and `{text}` its words. A turn with no author a
3421
+ reader can be told, a turn by `them` with no `author-label`, says its
3422
+ words alone. */
3423
+ arrivalLabel?: (HelixChat["arrivalLabel"]) | undefined;
3393
3424
  /** Declarations for the turns from `turns` by each author, keyed by `author`,
3394
3425
  as JSON in the attribute: `{"ada": "--chat-message-background-color: …"}`.
3395
3426
 
@@ -3540,8 +3571,36 @@ export type HelixCheckboxGroupVueProps = {
3540
3571
  /** The direction the checkboxes run. Set `horizontal` for a row. Unset is a
3541
3572
  column. */
3542
3573
  orientation?: (HelixCheckboxGroup["orientation"]) | undefined;
3543
- /** */
3544
- "aria-label"?: unknown;
3574
+ /** The name a screen reader says for the field where it shows no label, as
3575
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
3576
+ names the control inside, and a new one renders at once.
3577
+
3578
+ **An `aria-label` is read when the field renders, and nothing else would
3579
+ render it again.** It is the platform's attribute and no property of this
3580
+ element's, so writing a new one scheduled no update and the label kept
3581
+ the old words. Data Table meets this on every column move: each row's
3582
+ checkbox is named by the first column, so reordering renames every one.
3583
+
3584
+ A reactive property on the attribute, which is the one way Lit observes
3585
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
3586
+ mixin's own class, so every field observed only this mixin's attributes
3587
+ and dropped its own. Not reflected: the attribute is the consumer's. */
3588
+ "aria-label"?: (HelixCheckboxGroup["namedBy"]) | undefined;
3589
+ /** The name a screen reader says for the field where it shows no label, as
3590
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
3591
+ names the control inside, and a new one renders at once.
3592
+
3593
+ **An `aria-label` is read when the field renders, and nothing else would
3594
+ render it again.** It is the platform's attribute and no property of this
3595
+ element's, so writing a new one scheduled no update and the label kept
3596
+ the old words. Data Table meets this on every column move: each row's
3597
+ checkbox is named by the first column, so reordering renames every one.
3598
+
3599
+ A reactive property on the attribute, which is the one way Lit observes
3600
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
3601
+ mixin's own class, so every field observed only this mixin's attributes
3602
+ and dropped its own. Not reflected: the attribute is the consumer's. */
3603
+ namedBy?: (HelixCheckboxGroup["namedBy"]) | undefined;
3545
3604
  /** The validation message shown under the control. It replaces the
3546
3605
  browser's message. */
3547
3606
  feedback?: (HelixCheckboxGroup["feedback"]) | undefined;
@@ -3702,8 +3761,36 @@ was, and the control says `aria-readonly`. A script can still set
3702
3761
  The attribute is `readonly`, which is the platform's spelling for the
3703
3762
  text fields. */
3704
3763
  readOnly?: (HelixCheckbox["readOnly"]) | undefined;
3705
- /** */
3706
- "aria-label"?: unknown;
3764
+ /** The name a screen reader says for the field where it shows no label, as
3765
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
3766
+ names the control inside, and a new one renders at once.
3767
+
3768
+ **An `aria-label` is read when the field renders, and nothing else would
3769
+ render it again.** It is the platform's attribute and no property of this
3770
+ element's, so writing a new one scheduled no update and the label kept
3771
+ the old words. Data Table meets this on every column move: each row's
3772
+ checkbox is named by the first column, so reordering renames every one.
3773
+
3774
+ A reactive property on the attribute, which is the one way Lit observes
3775
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
3776
+ mixin's own class, so every field observed only this mixin's attributes
3777
+ and dropped its own. Not reflected: the attribute is the consumer's. */
3778
+ "aria-label"?: (HelixCheckbox["namedBy"]) | undefined;
3779
+ /** The name a screen reader says for the field where it shows no label, as
3780
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
3781
+ names the control inside, and a new one renders at once.
3782
+
3783
+ **An `aria-label` is read when the field renders, and nothing else would
3784
+ render it again.** It is the platform's attribute and no property of this
3785
+ element's, so writing a new one scheduled no update and the label kept
3786
+ the old words. Data Table meets this on every column move: each row's
3787
+ checkbox is named by the first column, so reordering renames every one.
3788
+
3789
+ A reactive property on the attribute, which is the one way Lit observes
3790
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
3791
+ mixin's own class, so every field observed only this mixin's attributes
3792
+ and dropped its own. Not reflected: the attribute is the consumer's. */
3793
+ namedBy?: (HelixCheckbox["namedBy"]) | undefined;
3707
3794
  /** The validation message shown under the control. It replaces the
3708
3795
  browser's message. */
3709
3796
  feedback?: (HelixCheckbox["feedback"]) | undefined;
@@ -4019,8 +4106,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
4019
4106
  same statement in markup, and `default-value` is how markup seeds a value
4020
4107
  a reset should return to. */
4021
4108
  value?: (HelixColorInput["value"]) | undefined;
4022
- /** */
4023
- "aria-label"?: unknown;
4109
+ /** The name a screen reader says for the field where it shows no label, as
4110
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
4111
+ names the control inside, and a new one renders at once.
4112
+
4113
+ **An `aria-label` is read when the field renders, and nothing else would
4114
+ render it again.** It is the platform's attribute and no property of this
4115
+ element's, so writing a new one scheduled no update and the label kept
4116
+ the old words. Data Table meets this on every column move: each row's
4117
+ checkbox is named by the first column, so reordering renames every one.
4118
+
4119
+ A reactive property on the attribute, which is the one way Lit observes
4120
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
4121
+ mixin's own class, so every field observed only this mixin's attributes
4122
+ and dropped its own. Not reflected: the attribute is the consumer's. */
4123
+ "aria-label"?: (HelixColorInput["namedBy"]) | undefined;
4124
+ /** The name a screen reader says for the field where it shows no label, as
4125
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
4126
+ names the control inside, and a new one renders at once.
4127
+
4128
+ **An `aria-label` is read when the field renders, and nothing else would
4129
+ render it again.** It is the platform's attribute and no property of this
4130
+ element's, so writing a new one scheduled no update and the label kept
4131
+ the old words. Data Table meets this on every column move: each row's
4132
+ checkbox is named by the first column, so reordering renames every one.
4133
+
4134
+ A reactive property on the attribute, which is the one way Lit observes
4135
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
4136
+ mixin's own class, so every field observed only this mixin's attributes
4137
+ and dropped its own. Not reflected: the attribute is the consumer's. */
4138
+ namedBy?: (HelixColorInput["namedBy"]) | undefined;
4024
4139
  /** The validation message shown under the control. It replaces the
4025
4140
  browser's message. */
4026
4141
  feedback?: (HelixColorInput["feedback"]) | undefined;
@@ -4082,7 +4197,8 @@ Passed to the panel, whose square, hue ramp and presets say the color's
4082
4197
  name, and read by the swatch in `swatch`, which says it before the value.
4083
4198
  Color Picker lists the keys. */
4084
4199
  colorWords?: (HelixColorInput["colorWords"]) | undefined;
4085
- /** The syntax the value is written in: `hex`, `rgb`, or `hsl`.
4200
+ /** The syntax the value is written in: `hex`, `rgb`, `hsl`, `oklch`, or
4201
+ `hsb`, as Color Picker's `format`.
4086
4202
 
4087
4203
  **Undefaulted, because it reflects.** The two together stamp an attribute
4088
4204
  onto every host anybody renders, including the ones nobody configured: the
@@ -4263,8 +4379,9 @@ language hears its own rather than English between its own labels. */
4263
4379
  brightnessLabel?: (HelixColorPicker["brightnessLabel"]) | undefined;
4264
4380
  /** Whether the picker shows a number field for each channel of the color, as
4265
4381
  React Aria's ColorField does with `channel`: red, green and blue for hex
4266
- and rgb, hue, saturation and lightness for hsl, and the opacity with
4267
- `alpha`.
4382
+ and rgb, hue, saturation and lightness for hsl, hue, saturation and
4383
+ brightness for hsb, lightness, chroma and hue for oklch, and the opacity
4384
+ with `alpha`.
4268
4385
 
4269
4386
  For a reader who has the numbers from a brand guide, and for a keyboard,
4270
4387
  where typing 128 is quicker than holding an arrow key. The fields follow
@@ -4272,13 +4389,20 @@ the syntax the format toggle sets. */
4272
4389
  "channel-fields"?: (HelixColorPicker["channelFields"]) | undefined;
4273
4390
  /** Whether the picker shows a number field for each channel of the color, as
4274
4391
  React Aria's ColorField does with `channel`: red, green and blue for hex
4275
- and rgb, hue, saturation and lightness for hsl, and the opacity with
4276
- `alpha`.
4392
+ and rgb, hue, saturation and lightness for hsl, hue, saturation and
4393
+ brightness for hsb, lightness, chroma and hue for oklch, and the opacity
4394
+ with `alpha`.
4277
4395
 
4278
4396
  For a reader who has the numbers from a brand guide, and for a keyboard,
4279
4397
  where typing 128 is quicker than holding an arrow key. The fields follow
4280
4398
  the syntax the format toggle sets. */
4281
4399
  channelFields?: (HelixColorPicker["channelFields"]) | undefined;
4400
+ /** What the chroma channel's field is called, in `channel-fields` with
4401
+ oklch. */
4402
+ "chroma-label"?: (HelixColorPicker["chromaLabel"]) | undefined;
4403
+ /** What the chroma channel's field is called, in `channel-fields` with
4404
+ oklch. */
4405
+ chromaLabel?: (HelixColorPicker["chromaLabel"]) | undefined;
4282
4406
  /** The words a color's name is spoken in, as JSON keyed by their English,
4283
4407
  such as `{"red": "rot", "vibrant": "kräftiges"}`.
4284
4408
 
@@ -4319,10 +4443,16 @@ the color. */
4319
4443
  "eyedropper-label"?: (HelixColorPicker["eyedropperLabel"]) | undefined;
4320
4444
  /** What the eyedropper is called. */
4321
4445
  eyedropperLabel?: (HelixColorPicker["eyedropperLabel"]) | undefined;
4322
- /** The syntax the value is written in: `hex`, `rgb`, or `hsl`.
4446
+ /** The syntax the value is written in: `hex`, `rgb`, `hsl`, `oklch`, or
4447
+ `hsb`.
4323
4448
 
4324
4449
  Only what is written. Everything is read whatever this says, so a picker on
4325
- `hex` still takes an `rgb()` handed to it and stores the hex for it. */
4450
+ `hex` still takes an `rgb()` or an `oklch()` handed to it and stores the
4451
+ hex for it. `oklch` writes the sRGB color the picker holds, such as
4452
+ `oklch(62.8% 0.258 29.2)`; a color outside sRGB that is handed in is
4453
+ clipped to it. `hsb` writes the picker's own model, `hsb(0, 100%, 100%)`,
4454
+ as React Aria's and Zag's color strings do. It is not CSS, so the toggle
4455
+ walks the other four. */
4326
4456
  format?: (HelixColorPicker["format"]) | undefined;
4327
4457
  /** What the syntax toggle is called, with `{format}` filled in. */
4328
4458
  "format-label"?: (HelixColorPicker["formatLabel"]) | undefined;
@@ -4332,15 +4462,21 @@ Only what is written. Everything is read whatever this says, so a picker on
4332
4462
  "green-label"?: (HelixColorPicker["greenLabel"]) | undefined;
4333
4463
  /** What the green channel's field is called, in `channel-fields`. */
4334
4464
  greenLabel?: (HelixColorPicker["greenLabel"]) | undefined;
4465
+ /** Help under the picker, such as what the color is used for. The `hint`
4466
+ slot takes richer content. */
4467
+ hint?: (HelixColorPicker["hint"]) | undefined;
4335
4468
  /** What the hue channel is called. */
4336
4469
  "hue-label"?: (HelixColorPicker["hueLabel"]) | undefined;
4337
4470
  /** What the hue channel is called. */
4338
4471
  hueLabel?: (HelixColorPicker["hueLabel"]) | undefined;
4472
+ /** The name above the picker, such as "Brand color". The picker is then a
4473
+ group with this name. The `label` slot takes richer content. */
4474
+ label?: (HelixColorPicker["label"]) | undefined;
4339
4475
  /** What the lightness channel's field is called, in `channel-fields` with
4340
- hsl. */
4476
+ hsl and oklch. */
4341
4477
  "lightness-label"?: (HelixColorPicker["lightnessLabel"]) | undefined;
4342
4478
  /** What the lightness channel's field is called, in `channel-fields` with
4343
- hsl. */
4479
+ hsl and oklch. */
4344
4480
  lightnessLabel?: (HelixColorPicker["lightnessLabel"]) | undefined;
4345
4481
  /** Hides the eyedropper. Without it, the eyedropper appears in browsers that
4346
4482
  support one. */
@@ -4637,8 +4773,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
4637
4773
  same statement in markup, and `default-value` is how markup seeds a value
4638
4774
  a reset should return to. */
4639
4775
  value?: (HelixCombobox["value"]) | undefined;
4640
- /** */
4641
- "aria-label"?: unknown;
4776
+ /** The name a screen reader says for the field where it shows no label, as
4777
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
4778
+ names the control inside, and a new one renders at once.
4779
+
4780
+ **An `aria-label` is read when the field renders, and nothing else would
4781
+ render it again.** It is the platform's attribute and no property of this
4782
+ element's, so writing a new one scheduled no update and the label kept
4783
+ the old words. Data Table meets this on every column move: each row's
4784
+ checkbox is named by the first column, so reordering renames every one.
4785
+
4786
+ A reactive property on the attribute, which is the one way Lit observes
4787
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
4788
+ mixin's own class, so every field observed only this mixin's attributes
4789
+ and dropped its own. Not reflected: the attribute is the consumer's. */
4790
+ "aria-label"?: (HelixCombobox["namedBy"]) | undefined;
4791
+ /** The name a screen reader says for the field where it shows no label, as
4792
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
4793
+ names the control inside, and a new one renders at once.
4794
+
4795
+ **An `aria-label` is read when the field renders, and nothing else would
4796
+ render it again.** It is the platform's attribute and no property of this
4797
+ element's, so writing a new one scheduled no update and the label kept
4798
+ the old words. Data Table meets this on every column move: each row's
4799
+ checkbox is named by the first column, so reordering renames every one.
4800
+
4801
+ A reactive property on the attribute, which is the one way Lit observes
4802
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
4803
+ mixin's own class, so every field observed only this mixin's attributes
4804
+ and dropped its own. Not reflected: the attribute is the consumer's. */
4805
+ namedBy?: (HelixCombobox["namedBy"]) | undefined;
4642
4806
  /** The validation message shown under the control. It replaces the
4643
4807
  browser's message. */
4644
4808
  feedback?: (HelixCombobox["feedback"]) | undefined;
@@ -4741,6 +4905,22 @@ delay sends one request for a word instead of one per letter. The arrow
4741
4905
  keys, Enter and Escape narrow at once on what was typed. `0` narrows on
4742
4906
  every keystroke. See Listbox's `filter-delay`. */
4743
4907
  filterDelay?: (HelixCombobox["filterDelay"]) | undefined;
4908
+ /** What the form receives for each chosen option: `key`, its `value`, or
4909
+ `text`, its words, as React Aria's ComboBox `formValue` offers.
4910
+
4911
+ `text` is for a server that wants what the reader saw, such as a city's
4912
+ name. A value no option carries, typed with `allows-custom-value` or made
4913
+ with `creatable`, is sent as it is either way. Absent is `key`, and the
4914
+ host carries no attribute for it. */
4915
+ "form-value"?: (HelixCombobox["formValue"]) | undefined;
4916
+ /** What the form receives for each chosen option: `key`, its `value`, or
4917
+ `text`, its words, as React Aria's ComboBox `formValue` offers.
4918
+
4919
+ `text` is for a server that wants what the reader saw, such as a city's
4920
+ name. A value no option carries, typed with `allows-custom-value` or made
4921
+ with `creatable`, is sent as it is either way. Absent is `key`, and the
4922
+ host carries no attribute for it. */
4923
+ formValue?: (HelixCombobox["formValue"]) | undefined;
4744
4924
  /** The list's name, read by screen readers. The list has no visible name. */
4745
4925
  "list-label"?: (HelixCombobox["listLabel"]) | undefined;
4746
4926
  /** The list's name, read by screen readers. The list has no visible name. */
@@ -4970,6 +5150,13 @@ Empty turns it off, for a consumer who opens the palette from a button or
4970
5150
  from their own shortcut handler. There is no list of defaults to fight
4971
5151
  with: one key, said once. */
4972
5152
  hotkey?: (HelixCommand["hotkey"]) | undefined;
5153
+ /** Draws the palette in the page, where it stands, with no dialog: a search
5154
+ over a list of commands, as React Aria's Autocomplete is drawn.
5155
+
5156
+ The list is always shown, and `hotkey` puts focus in its filter field.
5157
+ Choosing a command says `helix-select` and leaves the list where it is,
5158
+ and `open`, `toggle` and the dialog's parts do nothing. */
5159
+ inline?: (HelixCommand["inline"]) | undefined;
4973
5160
  /** Accessible name for the overlay, which has no visible heading. */
4974
5161
  label?: (HelixCommand["label"]) | undefined;
4975
5162
  /** What the list says when its commands could not be loaded, such as after a
@@ -4997,6 +5184,15 @@ some. Absent, `empty-text` shows. See Listbox's `no-results-text`. */
4997
5184
  /** The text shown when typing hides every one of the commands, where there are
4998
5185
  some. Absent, `empty-text` shows. See Listbox's `no-results-text`. */
4999
5186
  noResultsText?: (HelixCommand["noResultsText"]) | undefined;
5187
+ /** The page of commands shown, by name: empty for the commands you write
5188
+ with no `slot`, or a name for the commands slotted as `page:` and the
5189
+ name, such as `slot="page:theme"`.
5190
+
5191
+ An option with `opens` set to a name goes to that page when it is chosen,
5192
+ in place of running, and Backspace in an empty filter goes back to the
5193
+ page before. Closing the palette goes back to the first page. Set it to
5194
+ open the palette on a page of your choosing. */
5195
+ page?: (HelixCommand["page"]) | undefined;
5000
5196
  /** The text shown in the filter field before anything is typed. */
5001
5197
  placeholder?: (HelixCommand["placeholder"]) | undefined;
5002
5198
  /** What a screen reader hears when typing leaves one command, where
@@ -5015,6 +5211,15 @@ how many are left, written in the locale, and each language writes the
5015
5211
  forms it has: `{count, plural, one {# polecenie} few {# polecenia} many
5016
5212
  {# poleceń} other {# polecenia}}`. */
5017
5213
  resultsLabel?: (HelixCommand["resultsLabel"]) | undefined;
5214
+ /** The commands as data, for a palette too long to draw whole: each a value,
5215
+ which is also its words, or a record with a `value`, a `label` and
5216
+ `disabled`. Handed to the list, which draws only the commands in sight and
5217
+ reads no children while it is set. See Listbox's `items`.
5218
+
5219
+ Choosing one says `helix-select` with its value, as a child option does.
5220
+ A command that is a link, or that has an `alternate`, is an option you
5221
+ write as a child. */
5222
+ items?: (HelixCommand["items"]) | undefined;
5018
5223
  };
5019
5224
 
5020
5225
  export type HelixCommandVueEvents = {
@@ -5305,6 +5510,22 @@ is set. */
5305
5510
  "dropped-label"?: (HelixDataTable["droppedLabel"]) | undefined;
5306
5511
  /** What screen readers hear when a row is dropped, with `reorderable-rows`. */
5307
5512
  droppedLabel?: (HelixDataTable["droppedLabel"]) | undefined;
5513
+ /** The text shown and announced when the rows could not load, such as "The
5514
+ files did not load". Set it when a fetch fails, and clear it once you try
5515
+ again. Empty, the default, shows nothing.
5516
+
5517
+ While it is set, a line after the rows shows it, or your own content in the
5518
+ `error` slot, in place of the empty and loading lines, and the live region
5519
+ says it. */
5520
+ "error-text"?: (HelixDataTable["errorText"]) | undefined;
5521
+ /** The text shown and announced when the rows could not load, such as "The
5522
+ files did not load". Set it when a fetch fails, and clear it once you try
5523
+ again. Empty, the default, shows nothing.
5524
+
5525
+ While it is set, a line after the rows shows it, or your own content in the
5526
+ `error` slot, in place of the empty and loading lines, and the live region
5527
+ says it. */
5528
+ errorText?: (HelixDataTable["errorText"]) | undefined;
5308
5529
  /** The estimated height of a row before it is drawn, in pixels.
5309
5530
 
5310
5531
  Only read while `windowed`, and a starting guess rather than a claim: a
@@ -5770,8 +5991,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
5770
5991
  same statement in markup, and `default-value` is how markup seeds a value
5771
5992
  a reset should return to. */
5772
5993
  value?: (HelixDateInput["value"]) | undefined;
5773
- /** */
5774
- "aria-label"?: unknown;
5994
+ /** The name a screen reader says for the field where it shows no label, as
5995
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
5996
+ names the control inside, and a new one renders at once.
5997
+
5998
+ **An `aria-label` is read when the field renders, and nothing else would
5999
+ render it again.** It is the platform's attribute and no property of this
6000
+ element's, so writing a new one scheduled no update and the label kept
6001
+ the old words. Data Table meets this on every column move: each row's
6002
+ checkbox is named by the first column, so reordering renames every one.
6003
+
6004
+ A reactive property on the attribute, which is the one way Lit observes
6005
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
6006
+ mixin's own class, so every field observed only this mixin's attributes
6007
+ and dropped its own. Not reflected: the attribute is the consumer's. */
6008
+ "aria-label"?: (HelixDateInput["namedBy"]) | undefined;
6009
+ /** The name a screen reader says for the field where it shows no label, as
6010
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
6011
+ names the control inside, and a new one renders at once.
6012
+
6013
+ **An `aria-label` is read when the field renders, and nothing else would
6014
+ render it again.** It is the platform's attribute and no property of this
6015
+ element's, so writing a new one scheduled no update and the label kept
6016
+ the old words. Data Table meets this on every column move: each row's
6017
+ checkbox is named by the first column, so reordering renames every one.
6018
+
6019
+ A reactive property on the attribute, which is the one way Lit observes
6020
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
6021
+ mixin's own class, so every field observed only this mixin's attributes
6022
+ and dropped its own. Not reflected: the attribute is the consumer's. */
6023
+ namedBy?: (HelixDateInput["namedBy"]) | undefined;
5775
6024
  /** The validation message shown under the control. It replaces the
5776
6025
  browser's message. */
5777
6026
  feedback?: (HelixDateInput["feedback"]) | undefined;
@@ -6137,15 +6386,22 @@ speaks it. Unset is the sentence registered for the page's language, then
6137
6386
  the English. `{mode}` is `single`, `range` or `multiple`, so each can have
6138
6387
  its own sentence. */
6139
6388
  badInputMessage?: (HelixDatePicker["badInputMessage"]) | undefined;
6140
- /** The calendar the heading, the days, and the months are written in:
6141
- `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, the five whose
6142
- months are the Gregorian months.
6143
-
6144
- Absent is the locale's own where it is one of the five, such as
6145
- `buddhist` for `th-TH` or `japanese` for `ja-JP-u-ca-japanese`, and
6146
- `gregory` for every other, such as `persian` for `fa-IR`, so the heading
6147
- names the Gregorian month the grid shows. The value is `YYYY-MM-DD` in
6148
- every calendar. */
6389
+ /** The calendar the heading, the days, and the months are written in.
6390
+
6391
+ `gregory`, `buddhist`, `japanese`, `roc`, and `iso8601` are the five
6392
+ whose months are the Gregorian months. Absent is the locale's own where
6393
+ it is one of the five, such as `buddhist` for `th-TH` or `japanese` for
6394
+ `ja-JP-u-ca-japanese`, and `gregory` for every other, such as `persian`
6395
+ for `fa-IR`.
6396
+
6397
+ `persian`, `hebrew`, `islamic-umalqura`, `islamic-civil`, `ethiopic`,
6398
+ `coptic`, and `indian` draw a calendar with months of its own, as React
6399
+ Aria's calendars do: each grid is one of that calendar's months, the
6400
+ Hebrew leap month and Ethiopia's five-day thirteenth month included, and
6401
+ Previous, Next and the page keys move by those months. `month` and
6402
+ `helix-navigate` then name a month by its first day, `YYYY-MM-DD`. The
6403
+ heading stays text, as the months and years views are drawn in Gregorian
6404
+ months only. The value is `YYYY-MM-DD` in every calendar. */
6149
6405
  calendar?: (HelixDatePicker["calendar"]) | undefined;
6150
6406
  /** The month to open on when `month` is not set. */
6151
6407
  "default-month"?: (HelixDatePicker["defaultMonth"]) | undefined;
@@ -6204,8 +6460,9 @@ its days. */
6204
6460
  min?: (HelixDatePicker["min"]) | undefined;
6205
6461
  /** How many dates can be held at once. */
6206
6462
  mode?: (HelixDatePicker["mode"]) | undefined;
6207
- /** The month shown, as `YYYY-MM`. When it is not set, it follows `value`,
6208
- then the current month.
6463
+ /** The month shown, as `YYYY-MM`, or as its first day, `YYYY-MM-DD`, under a
6464
+ `calendar` with months of its own. When it is not set, it follows
6465
+ `value`, then the current month.
6209
6466
 
6210
6467
  Separate from `value` on purpose, so paging selects nothing and a consumer
6211
6468
  can drive the view. Reading gives the month on show; writing sets it, and
@@ -6307,6 +6564,22 @@ date including the one already chosen. */
6307
6564
  "step-mismatch-message"?: (HelixDatePicker["stepMismatchMessage"]) | undefined;
6308
6565
  /** The validation message for a date that `step` skips. */
6309
6566
  stepMismatchMessage?: (HelixDatePicker["stepMismatchMessage"]) | undefined;
6567
+ /** The time zone today is read in, such as `America/New_York`, as React
6568
+ Aria's `today(timeZone)` reads it. Empty is the reader's own.
6569
+
6570
+ Dates are plain `YYYY-MM-DD` and carry no zone, so this moves only today:
6571
+ the day marked `aria-current` and `day-today`, and the month a picker
6572
+ with no value opens on. A desk in Tokyo booking for an office in New York
6573
+ sets `America/New_York`, and today is the office's. */
6574
+ "time-zone"?: (HelixDatePicker["timeZone"]) | undefined;
6575
+ /** The time zone today is read in, such as `America/New_York`, as React
6576
+ Aria's `today(timeZone)` reads it. Empty is the reader's own.
6577
+
6578
+ Dates are plain `YYYY-MM-DD` and carry no zone, so this moves only today:
6579
+ the day marked `aria-current` and `day-today`, and the month a picker
6580
+ with no value opens on. A desk in Tokyo booking for an office in New York
6581
+ sets `America/New_York`, and today is the office's. */
6582
+ timeZone?: (HelixDatePicker["timeZone"]) | undefined;
6310
6583
  /** The validation message for a date that `disable-dates` or `disable-days`
6311
6584
  bars. */
6312
6585
  "unavailable-message"?: (HelixDatePicker["unavailableMessage"]) | undefined;
@@ -7128,8 +7401,36 @@ export type HelixFileInputHelixRejectElementEvent =
7128
7401
  HelixFileInputElementEvent<HelixRejectEvent>;
7129
7402
 
7130
7403
  export type HelixFileInputVueProps = {
7131
- /** */
7132
- "aria-label"?: unknown;
7404
+ /** The name a screen reader says for the field where it shows no label, as
7405
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
7406
+ names the control inside, and a new one renders at once.
7407
+
7408
+ **An `aria-label` is read when the field renders, and nothing else would
7409
+ render it again.** It is the platform's attribute and no property of this
7410
+ element's, so writing a new one scheduled no update and the label kept
7411
+ the old words. Data Table meets this on every column move: each row's
7412
+ checkbox is named by the first column, so reordering renames every one.
7413
+
7414
+ A reactive property on the attribute, which is the one way Lit observes
7415
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
7416
+ mixin's own class, so every field observed only this mixin's attributes
7417
+ and dropped its own. Not reflected: the attribute is the consumer's. */
7418
+ "aria-label"?: (HelixFileInput["namedBy"]) | undefined;
7419
+ /** The name a screen reader says for the field where it shows no label, as
7420
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
7421
+ names the control inside, and a new one renders at once.
7422
+
7423
+ **An `aria-label` is read when the field renders, and nothing else would
7424
+ render it again.** It is the platform's attribute and no property of this
7425
+ element's, so writing a new one scheduled no update and the label kept
7426
+ the old words. Data Table meets this on every column move: each row's
7427
+ checkbox is named by the first column, so reordering renames every one.
7428
+
7429
+ A reactive property on the attribute, which is the one way Lit observes
7430
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
7431
+ mixin's own class, so every field observed only this mixin's attributes
7432
+ and dropped its own. Not reflected: the attribute is the consumer's. */
7433
+ namedBy?: (HelixFileInput["namedBy"]) | undefined;
7133
7434
  /** The validation message shown under the control. It replaces the
7134
7435
  browser's message. */
7135
7436
  feedback?: (HelixFileInput["feedback"]) | undefined;
@@ -7543,8 +7844,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
7543
7844
  same statement in markup, and `default-value` is how markup seeds a value
7544
7845
  a reset should return to. */
7545
7846
  value?: (HelixFilterInput["value"]) | undefined;
7546
- /** */
7547
- "aria-label"?: unknown;
7847
+ /** The name a screen reader says for the field where it shows no label, as
7848
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
7849
+ names the control inside, and a new one renders at once.
7850
+
7851
+ **An `aria-label` is read when the field renders, and nothing else would
7852
+ render it again.** It is the platform's attribute and no property of this
7853
+ element's, so writing a new one scheduled no update and the label kept
7854
+ the old words. Data Table meets this on every column move: each row's
7855
+ checkbox is named by the first column, so reordering renames every one.
7856
+
7857
+ A reactive property on the attribute, which is the one way Lit observes
7858
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
7859
+ mixin's own class, so every field observed only this mixin's attributes
7860
+ and dropped its own. Not reflected: the attribute is the consumer's. */
7861
+ "aria-label"?: (HelixFilterInput["namedBy"]) | undefined;
7862
+ /** The name a screen reader says for the field where it shows no label, as
7863
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
7864
+ names the control inside, and a new one renders at once.
7865
+
7866
+ **An `aria-label` is read when the field renders, and nothing else would
7867
+ render it again.** It is the platform's attribute and no property of this
7868
+ element's, so writing a new one scheduled no update and the label kept
7869
+ the old words. Data Table meets this on every column move: each row's
7870
+ checkbox is named by the first column, so reordering renames every one.
7871
+
7872
+ A reactive property on the attribute, which is the one way Lit observes
7873
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
7874
+ mixin's own class, so every field observed only this mixin's attributes
7875
+ and dropped its own. Not reflected: the attribute is the consumer's. */
7876
+ namedBy?: (HelixFilterInput["namedBy"]) | undefined;
7548
7877
  /** The validation message shown under the control. It replaces the
7549
7878
  browser's message. */
7550
7879
  feedback?: (HelixFilterInput["feedback"]) | undefined;
@@ -8090,6 +8419,12 @@ written in the locale, and each language writes the forms it has. */
8090
8419
  /** How many links from the selected note to show, for its local graph. Unset
8091
8420
  shows every note. The list holds what the drawing shows. */
8092
8421
  depth?: (HelixGraph["depth"]) | undefined;
8422
+ /** What the panel shows when the list holds no notes: the graph has none, or
8423
+ a search or the legend hid them all. A slotted `empty` replaces it. */
8424
+ "empty-label"?: (HelixGraph["emptyLabel"]) | undefined;
8425
+ /** What the panel shows when the list holds no notes: the graph has none, or
8426
+ a search or the legend hid them all. A slotted `empty` replaces it. */
8427
+ emptyLabel?: (HelixGraph["emptyLabel"]) | undefined;
8093
8428
  /** The graph's name where `label` is empty and the host has no
8094
8429
  `aria-label`. */
8095
8430
  "fallback-label"?: (HelixGraph["fallbackLabel"]) | undefined;
@@ -8146,6 +8481,14 @@ such as at the top of a page, where the drawing takes the whole frame. */
8146
8481
  "notes-label"?: (HelixGraph["notesLabel"]) | undefined;
8147
8482
  /** The list's name, read by screen readers, and the name of the button that opens it with `no-panel`. */
8148
8483
  notesLabel?: (HelixGraph["notesLabel"]) | undefined;
8484
+ /** What a screen reader calls the graph in place of its role, after its
8485
+ name: "Research notes, graph". Said only where the graph has a name of its
8486
+ own, since the fallback name is the same word. Empty leaves the role. */
8487
+ "role-label"?: (HelixGraph["roleLabel"]) | undefined;
8488
+ /** What a screen reader calls the graph in place of its role, after its
8489
+ name: "Research notes, graph". Said only where the graph has a name of its
8490
+ own, since the fallback name is the same word. Empty leaves the role. */
8491
+ roleLabel?: (HelixGraph["roleLabel"]) | undefined;
8149
8492
  /** The search field's name. */
8150
8493
  "search-label"?: (HelixGraph["searchLabel"]) | undefined;
8151
8494
  /** The search field's name. */
@@ -8959,8 +9302,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
8959
9302
  same statement in markup, and `default-value` is how markup seeds a value
8960
9303
  a reset should return to. */
8961
9304
  value?: (HelixInput["value"]) | undefined;
8962
- /** */
8963
- "aria-label"?: unknown;
9305
+ /** The name a screen reader says for the field where it shows no label, as
9306
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
9307
+ names the control inside, and a new one renders at once.
9308
+
9309
+ **An `aria-label` is read when the field renders, and nothing else would
9310
+ render it again.** It is the platform's attribute and no property of this
9311
+ element's, so writing a new one scheduled no update and the label kept
9312
+ the old words. Data Table meets this on every column move: each row's
9313
+ checkbox is named by the first column, so reordering renames every one.
9314
+
9315
+ A reactive property on the attribute, which is the one way Lit observes
9316
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
9317
+ mixin's own class, so every field observed only this mixin's attributes
9318
+ and dropped its own. Not reflected: the attribute is the consumer's. */
9319
+ "aria-label"?: (HelixInput["namedBy"]) | undefined;
9320
+ /** The name a screen reader says for the field where it shows no label, as
9321
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
9322
+ names the control inside, and a new one renders at once.
9323
+
9324
+ **An `aria-label` is read when the field renders, and nothing else would
9325
+ render it again.** It is the platform's attribute and no property of this
9326
+ element's, so writing a new one scheduled no update and the label kept
9327
+ the old words. Data Table meets this on every column move: each row's
9328
+ checkbox is named by the first column, so reordering renames every one.
9329
+
9330
+ A reactive property on the attribute, which is the one way Lit observes
9331
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
9332
+ mixin's own class, so every field observed only this mixin's attributes
9333
+ and dropped its own. Not reflected: the attribute is the consumer's. */
9334
+ namedBy?: (HelixInput["namedBy"]) | undefined;
8964
9335
  /** The validation message shown under the control. It replaces the
8965
9336
  browser's message. */
8966
9337
  feedback?: (HelixInput["feedback"]) | undefined;
@@ -9897,6 +10268,9 @@ export type HelixListHelixBeforeChangeElementEvent =
9897
10268
  /** `helix-before-reorder` event type */
9898
10269
  export type HelixListHelixBeforeReorderElementEvent =
9899
10270
  HelixListElementEvent<HelixBeforeReorderEvent>;
10271
+ /** `helix-load-more` event type */
10272
+ export type HelixListHelixLoadMoreElementEvent =
10273
+ HelixListElementEvent<HelixLoadMoreEvent>;
9900
10274
  /** `helix-reorder` event type */
9901
10275
  export type HelixListHelixReorderElementEvent =
9902
10276
  HelixListElementEvent<HelixReorderEvent>;
@@ -9929,6 +10303,12 @@ refused, in a `reorderable` list. */
9929
10303
  "dropped-label"?: (HelixList["droppedLabel"]) | undefined;
9930
10304
  /** What screen readers hear when a row is dropped, in a `reorderable` list. */
9931
10305
  droppedLabel?: (HelixList["droppedLabel"]) | undefined;
10306
+ /** The text of the row shown while the list has no rows, where the `empty`
10307
+ slot is empty. Empty, the default, shows no row. */
10308
+ "empty-label"?: (HelixList["emptyLabel"]) | undefined;
10309
+ /** The text of the row shown while the list has no rows, where the `empty`
10310
+ slot is empty. Empty, the default, shows no row. */
10311
+ emptyLabel?: (HelixList["emptyLabel"]) | undefined;
9932
10312
  /** The kind of list, which follows from the content.
9933
10313
 
9934
10314
  On the headless tier because it is meaning rather than decoration, the same
@@ -9952,6 +10332,19 @@ has to survive with the stylesheet turned off.
9952
10332
  kind?: (HelixList["kind"]) | undefined;
9953
10333
  /** The list's name, read by screen readers. */
9954
10334
  label?: (HelixList["label"]) | undefined;
10335
+ /** Marks the list as busy fetching more rows, and draws a row after the last
10336
+ that says so. The list asks for no more while it is set. */
10337
+ loading?: (HelixList["loading"]) | undefined;
10338
+ /** The text of the row drawn while `loading` is set, where the `loading` slot is empty. */
10339
+ "loading-label"?: (HelixList["loadingLabel"]) | undefined;
10340
+ /** The text of the row drawn while `loading` is set, where the `loading` slot is empty. */
10341
+ loadingLabel?: (HelixList["loadingLabel"]) | undefined;
10342
+ /** Sends `helix-load-more` once the end of the list comes within a screen of
10343
+ view, so you can add the next rows as a reader nears them. */
10344
+ "load-more"?: (HelixList["loadMore"]) | undefined;
10345
+ /** Sends `helix-load-more` once the end of the list comes within a screen of
10346
+ view, so you can add the next rows as a reader nears them. */
10347
+ loadMore?: (HelixList["loadMore"]) | undefined;
9955
10348
  /** What screen readers hear each time an arrow key moves a held row, in a
9956
10349
  `reorderable` list. `{name}` is the row's words, `{position}` the place it
9957
10350
  would go, counting from 1, and `{count}` the number of rows. */
@@ -10007,7 +10400,7 @@ consumer would have written on an `<ol>`.
10007
10400
  `type` is only `list-style-type`. `start` and `reversed` move the count
10008
10401
  itself. */
10009
10402
  type?: (HelixList["type"]) | undefined;
10010
- /** The selected rows' values, separated by commas, in a list that selects.
10403
+ /** The selected rows' values, separated by commas with no spaces, such as `a,c`, in a list that selects.
10011
10404
 
10012
10405
  Set it to start with rows selected. A row's value is its `value`, or its
10013
10406
  words where it has none. */
@@ -10023,6 +10416,8 @@ export type HelixListVueEvents = {
10023
10416
  "helix-before-change": HelixListHelixBeforeChangeElementEvent;
10024
10417
  /** Fired when a row is dropped at a new place, in a `reorderable` list, with every row's value in the new order. Cancelable: cancel it to keep the row where it is. */
10025
10418
  "helix-before-reorder": HelixListHelixBeforeReorderElementEvent;
10419
+ /** Fired, in a list with `load-more`, when the end of the list comes within a screen of view, once for each number of rows. */
10420
+ "helix-load-more": HelixListHelixLoadMoreElementEvent;
10026
10421
  /** Fired after `helix-before-reorder` when nobody canceled it. Move your rows to the order in `keys`. Cancelable: cancel it to say the move did not happen. */
10027
10422
  "helix-reorder": HelixListHelixReorderElementEvent;
10028
10423
  };
@@ -10075,8 +10470,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
10075
10470
  same statement in markup, and `default-value` is how markup seeds a value
10076
10471
  a reset should return to. */
10077
10472
  value?: (HelixListbox["value"]) | undefined;
10078
- /** */
10079
- "aria-label"?: unknown;
10473
+ /** The name a screen reader says for the field where it shows no label, as
10474
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
10475
+ names the control inside, and a new one renders at once.
10476
+
10477
+ **An `aria-label` is read when the field renders, and nothing else would
10478
+ render it again.** It is the platform's attribute and no property of this
10479
+ element's, so writing a new one scheduled no update and the label kept
10480
+ the old words. Data Table meets this on every column move: each row's
10481
+ checkbox is named by the first column, so reordering renames every one.
10482
+
10483
+ A reactive property on the attribute, which is the one way Lit observes
10484
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
10485
+ mixin's own class, so every field observed only this mixin's attributes
10486
+ and dropped its own. Not reflected: the attribute is the consumer's. */
10487
+ "aria-label"?: (HelixListbox["namedBy"]) | undefined;
10488
+ /** The name a screen reader says for the field where it shows no label, as
10489
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
10490
+ names the control inside, and a new one renders at once.
10491
+
10492
+ **An `aria-label` is read when the field renders, and nothing else would
10493
+ render it again.** It is the platform's attribute and no property of this
10494
+ element's, so writing a new one scheduled no update and the label kept
10495
+ the old words. Data Table meets this on every column move: each row's
10496
+ checkbox is named by the first column, so reordering renames every one.
10497
+
10498
+ A reactive property on the attribute, which is the one way Lit observes
10499
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
10500
+ mixin's own class, so every field observed only this mixin's attributes
10501
+ and dropped its own. Not reflected: the attribute is the consumer's. */
10502
+ namedBy?: (HelixListbox["namedBy"]) | undefined;
10080
10503
  /** The validation message shown under the control. It replaces the
10081
10504
  browser's message. */
10082
10505
  feedback?: (HelixListbox["feedback"]) | undefined;
@@ -10945,6 +11368,14 @@ the standard, themed map. The layers menu chooses it. */
10945
11368
  `connectMap` keeps it current, and the 3D button is pressed while it is
10946
11369
  above `0`. */
10947
11370
  pitch?: (HelixMap["pitch"]) | undefined;
11371
+ /** What a screen reader calls the map in place of its role, after its
11372
+ name: "Edinburgh, map". Said only where the map has a name of its
11373
+ own, since the fallback name is the same word. Empty leaves the role. */
11374
+ "role-label"?: (HelixMap["roleLabel"]) | undefined;
11375
+ /** What a screen reader calls the map in place of its role, after its
11376
+ name: "Edinburgh, map". Said only where the map has a name of its
11377
+ own, since the fallback name is the same word. Empty leaves the role. */
11378
+ roleLabel?: (HelixMap["roleLabel"]) | undefined;
10948
11379
  /** The rotate left button's label. */
10949
11380
  "rotate-left-label"?: (HelixMap["rotateLeftLabel"]) | undefined;
10950
11381
  /** The rotate left button's label. */
@@ -11904,8 +12335,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
11904
12335
  same statement in markup, and `default-value` is how markup seeds a value
11905
12336
  a reset should return to. */
11906
12337
  value?: (HelixNumberInput["value"]) | undefined;
11907
- /** */
11908
- "aria-label"?: unknown;
12338
+ /** The name a screen reader says for the field where it shows no label, as
12339
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
12340
+ names the control inside, and a new one renders at once.
12341
+
12342
+ **An `aria-label` is read when the field renders, and nothing else would
12343
+ render it again.** It is the platform's attribute and no property of this
12344
+ element's, so writing a new one scheduled no update and the label kept
12345
+ the old words. Data Table meets this on every column move: each row's
12346
+ checkbox is named by the first column, so reordering renames every one.
12347
+
12348
+ A reactive property on the attribute, which is the one way Lit observes
12349
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
12350
+ mixin's own class, so every field observed only this mixin's attributes
12351
+ and dropped its own. Not reflected: the attribute is the consumer's. */
12352
+ "aria-label"?: (HelixNumberInput["namedBy"]) | undefined;
12353
+ /** The name a screen reader says for the field where it shows no label, as
12354
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
12355
+ names the control inside, and a new one renders at once.
12356
+
12357
+ **An `aria-label` is read when the field renders, and nothing else would
12358
+ render it again.** It is the platform's attribute and no property of this
12359
+ element's, so writing a new one scheduled no update and the label kept
12360
+ the old words. Data Table meets this on every column move: each row's
12361
+ checkbox is named by the first column, so reordering renames every one.
12362
+
12363
+ A reactive property on the attribute, which is the one way Lit observes
12364
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
12365
+ mixin's own class, so every field observed only this mixin's attributes
12366
+ and dropped its own. Not reflected: the attribute is the consumer's. */
12367
+ namedBy?: (HelixNumberInput["namedBy"]) | undefined;
11909
12368
  /** The validation message shown under the control. It replaces the
11910
12369
  browser's message. */
11911
12370
  feedback?: (HelixNumberInput["feedback"]) | undefined;
@@ -12034,6 +12493,20 @@ filled in, written in the locale. */
12034
12493
  readonly?: (HelixNumberInput["readOnly"]) | undefined;
12035
12494
  /** Prevents editing. The value is still submitted with the form. */
12036
12495
  readOnly?: (HelixNumberInput["readOnly"]) | undefined;
12496
+ /** The words screen readers announce for the field's role, set as its
12497
+ `aria-roledescription`. Translate it with the rest of your text, or empty
12498
+ it to leave the role as `spinbutton`.
12499
+
12500
+ Never written on iOS and iPadOS, where a role description stops VoiceOver
12501
+ saying that the field is required. */
12502
+ "role-label"?: (HelixNumberInput["roleLabel"]) | undefined;
12503
+ /** The words screen readers announce for the field's role, set as its
12504
+ `aria-roledescription`. Translate it with the rest of your text, or empty
12505
+ it to leave the role as `spinbutton`.
12506
+
12507
+ Never written on iOS and iPadOS, where a role description stops VoiceOver
12508
+ saying that the field is required. */
12509
+ roleLabel?: (HelixNumberInput["roleLabel"]) | undefined;
12037
12510
  /** Makes the label a grip that changes the value when it is dragged.
12038
12511
 
12039
12512
  The label is what is dragged, so this adds no chrome at all. Still opt-in,
@@ -12291,6 +12764,14 @@ needs a height, which is a stylesheet rule reading this attribute. */
12291
12764
  Writing opens exactly these and closes every other, keeping the active row
12292
12765
  where it stays visible. A property, never an attribute. */
12293
12766
  expanded?: (HelixObjectInspector["expanded"]) | undefined;
12767
+ /** Draws an entry's value your way, given the value and its entry. Set it as
12768
+ a property.
12769
+
12770
+ It returns what Lit renders: a template from `html`, a string, or a DOM
12771
+ node. `undefined` draws the value as the inspector does, so a function can
12772
+ draw some entries and leave the rest, such as only the strings under
12773
+ `/links`. */
12774
+ renderValue?: (HelixObjectInspector["renderValue"]) | undefined;
12294
12775
  /** The value to show, when your code already holds it as an object.
12295
12776
 
12296
12777
  Takes precedence over `for`. Anything JSON can say is drawn; anything else
@@ -12426,6 +12907,15 @@ simply the accessible name.
12426
12907
  `<option label>` does: written the platform's way, a select listed a row of
12427
12908
  nothing for every choice. */
12428
12909
  label?: (HelixOption["label"]) | undefined;
12910
+ /** The page of commands this option opens, by name, where choosing it would
12911
+ otherwise run it.
12912
+
12913
+ Declared here and acted on by whatever owns the list, as `alternate` is.
12914
+ `Command` is the only owner that reads it: choosing the option shows the
12915
+ commands slotted as `page:` and the name, such as `slot="page:theme"`,
12916
+ and Backspace in an empty filter goes back. Empty is an option that opens
12917
+ nothing, which is nearly every option. */
12918
+ opens?: (HelixOption["opens"]) | undefined;
12429
12919
  /** The link's `rel`. Set it whenever you set `target="_blank"`. */
12430
12920
  rel?: (HelixOption["rel"]) | undefined;
12431
12921
  /** Whether this choice is currently chosen.
@@ -12900,8 +13390,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
12900
13390
  same statement in markup, and `default-value` is how markup seeds a value
12901
13391
  a reset should return to. */
12902
13392
  value?: (HelixPinInput["value"]) | undefined;
12903
- /** */
12904
- "aria-label"?: unknown;
13393
+ /** The name a screen reader says for the field where it shows no label, as
13394
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
13395
+ names the control inside, and a new one renders at once.
13396
+
13397
+ **An `aria-label` is read when the field renders, and nothing else would
13398
+ render it again.** It is the platform's attribute and no property of this
13399
+ element's, so writing a new one scheduled no update and the label kept
13400
+ the old words. Data Table meets this on every column move: each row's
13401
+ checkbox is named by the first column, so reordering renames every one.
13402
+
13403
+ A reactive property on the attribute, which is the one way Lit observes
13404
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
13405
+ mixin's own class, so every field observed only this mixin's attributes
13406
+ and dropped its own. Not reflected: the attribute is the consumer's. */
13407
+ "aria-label"?: (HelixPinInput["namedBy"]) | undefined;
13408
+ /** The name a screen reader says for the field where it shows no label, as
13409
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
13410
+ names the control inside, and a new one renders at once.
13411
+
13412
+ **An `aria-label` is read when the field renders, and nothing else would
13413
+ render it again.** It is the platform's attribute and no property of this
13414
+ element's, so writing a new one scheduled no update and the label kept
13415
+ the old words. Data Table meets this on every column move: each row's
13416
+ checkbox is named by the first column, so reordering renames every one.
13417
+
13418
+ A reactive property on the attribute, which is the one way Lit observes
13419
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
13420
+ mixin's own class, so every field observed only this mixin's attributes
13421
+ and dropped its own. Not reflected: the attribute is the consumer's. */
13422
+ namedBy?: (HelixPinInput["namedBy"]) | undefined;
12905
13423
  /** The validation message shown under the control. It replaces the
12906
13424
  browser's message. */
12907
13425
  feedback?: (HelixPinInput["feedback"]) | undefined;
@@ -13375,8 +13893,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
13375
13893
  same statement in markup, and `default-value` is how markup seeds a value
13376
13894
  a reset should return to. */
13377
13895
  value?: (HelixRadioGroup["value"]) | undefined;
13378
- /** */
13379
- "aria-label"?: unknown;
13896
+ /** The name a screen reader says for the field where it shows no label, as
13897
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
13898
+ names the control inside, and a new one renders at once.
13899
+
13900
+ **An `aria-label` is read when the field renders, and nothing else would
13901
+ render it again.** It is the platform's attribute and no property of this
13902
+ element's, so writing a new one scheduled no update and the label kept
13903
+ the old words. Data Table meets this on every column move: each row's
13904
+ checkbox is named by the first column, so reordering renames every one.
13905
+
13906
+ A reactive property on the attribute, which is the one way Lit observes
13907
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
13908
+ mixin's own class, so every field observed only this mixin's attributes
13909
+ and dropped its own. Not reflected: the attribute is the consumer's. */
13910
+ "aria-label"?: (HelixRadioGroup["namedBy"]) | undefined;
13911
+ /** The name a screen reader says for the field where it shows no label, as
13912
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
13913
+ names the control inside, and a new one renders at once.
13914
+
13915
+ **An `aria-label` is read when the field renders, and nothing else would
13916
+ render it again.** It is the platform's attribute and no property of this
13917
+ element's, so writing a new one scheduled no update and the label kept
13918
+ the old words. Data Table meets this on every column move: each row's
13919
+ checkbox is named by the first column, so reordering renames every one.
13920
+
13921
+ A reactive property on the attribute, which is the one way Lit observes
13922
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
13923
+ mixin's own class, so every field observed only this mixin's attributes
13924
+ and dropped its own. Not reflected: the attribute is the consumer's. */
13925
+ namedBy?: (HelixRadioGroup["namedBy"]) | undefined;
13380
13926
  /** The validation message shown under the control. It replaces the
13381
13927
  browser's message. */
13382
13928
  feedback?: (HelixRadioGroup["feedback"]) | undefined;
@@ -13671,8 +14217,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
13671
14217
  same statement in markup, and `default-value` is how markup seeds a value
13672
14218
  a reset should return to. */
13673
14219
  value?: (HelixRating["value"]) | undefined;
13674
- /** */
13675
- "aria-label"?: unknown;
14220
+ /** The name a screen reader says for the field where it shows no label, as
14221
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
14222
+ names the control inside, and a new one renders at once.
14223
+
14224
+ **An `aria-label` is read when the field renders, and nothing else would
14225
+ render it again.** It is the platform's attribute and no property of this
14226
+ element's, so writing a new one scheduled no update and the label kept
14227
+ the old words. Data Table meets this on every column move: each row's
14228
+ checkbox is named by the first column, so reordering renames every one.
14229
+
14230
+ A reactive property on the attribute, which is the one way Lit observes
14231
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
14232
+ mixin's own class, so every field observed only this mixin's attributes
14233
+ and dropped its own. Not reflected: the attribute is the consumer's. */
14234
+ "aria-label"?: (HelixRating["namedBy"]) | undefined;
14235
+ /** The name a screen reader says for the field where it shows no label, as
14236
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
14237
+ names the control inside, and a new one renders at once.
14238
+
14239
+ **An `aria-label` is read when the field renders, and nothing else would
14240
+ render it again.** It is the platform's attribute and no property of this
14241
+ element's, so writing a new one scheduled no update and the label kept
14242
+ the old words. Data Table meets this on every column move: each row's
14243
+ checkbox is named by the first column, so reordering renames every one.
14244
+
14245
+ A reactive property on the attribute, which is the one way Lit observes
14246
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
14247
+ mixin's own class, so every field observed only this mixin's attributes
14248
+ and dropped its own. Not reflected: the attribute is the consumer's. */
14249
+ namedBy?: (HelixRating["namedBy"]) | undefined;
13676
14250
  /** The validation message shown under the control. It replaces the
13677
14251
  browser's message. */
13678
14252
  feedback?: (HelixRating["feedback"]) | undefined;
@@ -13924,9 +14498,13 @@ Not reflected, for `direction`'s reason: the placement is applied by the
13924
14498
  document inside the frame, against its own root, so no rule on this side
13925
14499
  could read it. */
13926
14500
  layout?: (HelixSandboxPreview["layout"]) | undefined;
14501
+ /** A script to run as a module after the markup, on every render of new
14502
+ source. A sandbox writes its `js` pane here. */
14503
+ script?: (HelixSandboxPreview["script"]) | undefined;
13927
14504
  /** Markup to render. */
13928
14505
  source?: (HelixSandboxPreview["source"]) | undefined;
13929
- /** The document the frame loads. It provides the styles and the elements. */
14506
+ /** The document the frame loads. It provides the styles and the elements.
14507
+ Empty loads the built-in document, which defines no element. */
13930
14508
  src?: (HelixSandboxPreview["src"]) | undefined;
13931
14509
  /** Stylesheet applied inside the frame, alongside the markup. */
13932
14510
  styles?: (HelixSandboxPreview["styles"]) | undefined;
@@ -14537,8 +15115,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
14537
15115
  same statement in markup, and `default-value` is how markup seeds a value
14538
15116
  a reset should return to. */
14539
15117
  value?: (HelixSelect["value"]) | undefined;
14540
- /** */
14541
- "aria-label"?: unknown;
15118
+ /** The name a screen reader says for the field where it shows no label, as
15119
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
15120
+ names the control inside, and a new one renders at once.
15121
+
15122
+ **An `aria-label` is read when the field renders, and nothing else would
15123
+ render it again.** It is the platform's attribute and no property of this
15124
+ element's, so writing a new one scheduled no update and the label kept
15125
+ the old words. Data Table meets this on every column move: each row's
15126
+ checkbox is named by the first column, so reordering renames every one.
15127
+
15128
+ A reactive property on the attribute, which is the one way Lit observes
15129
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
15130
+ mixin's own class, so every field observed only this mixin's attributes
15131
+ and dropped its own. Not reflected: the attribute is the consumer's. */
15132
+ "aria-label"?: (HelixSelect["namedBy"]) | undefined;
15133
+ /** The name a screen reader says for the field where it shows no label, as
15134
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
15135
+ names the control inside, and a new one renders at once.
15136
+
15137
+ **An `aria-label` is read when the field renders, and nothing else would
15138
+ render it again.** It is the platform's attribute and no property of this
15139
+ element's, so writing a new one scheduled no update and the label kept
15140
+ the old words. Data Table meets this on every column move: each row's
15141
+ checkbox is named by the first column, so reordering renames every one.
15142
+
15143
+ A reactive property on the attribute, which is the one way Lit observes
15144
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
15145
+ mixin's own class, so every field observed only this mixin's attributes
15146
+ and dropped its own. Not reflected: the attribute is the consumer's. */
15147
+ namedBy?: (HelixSelect["namedBy"]) | undefined;
14542
15148
  /** The validation message shown under the control. It replaces the
14543
15149
  browser's message. */
14544
15150
  feedback?: (HelixSelect["feedback"]) | undefined;
@@ -14666,6 +15272,18 @@ the stop moves on the trigger inside the shadow root, as Button's does.
14666
15272
  No attribute, because it is coordination between elements rather than
14667
15273
  anything a consumer sets. */
14668
15274
  focusable?: (HelixSelect["focusable"]) | undefined;
15275
+ /** The options as data, for a list too long to draw whole: each a value,
15276
+ which is also its words, or a record with a `value`, a `label` and
15277
+ `disabled`. Passed to the list, which draws only the options in sight,
15278
+ as Listbox's `items` does. Set, the options you write as children are
15279
+ not read.
15280
+
15281
+ The trigger shows the chosen options' labels, the letters and the Left
15282
+ and Right keys on the closed trigger choose over the whole set, and a
15283
+ chosen value whose option leaves `items` drops out of `value`.
15284
+ `value-content` is not called for `items`. Import the Option family as
15285
+ well, whose elements are drawn. */
15286
+ items?: (HelixSelect["items"]) | undefined;
14669
15287
  /** What the trigger shows for the chosen options: a function given them, in
14670
15288
  the order they appear, that returns text, an element or a Lit template.
14671
15289
 
@@ -14774,8 +15392,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
14774
15392
  same statement in markup, and `default-value` is how markup seeds a value
14775
15393
  a reset should return to. */
14776
15394
  value?: (HelixSlider["value"]) | undefined;
14777
- /** */
14778
- "aria-label"?: unknown;
15395
+ /** The name a screen reader says for the field where it shows no label, as
15396
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
15397
+ names the control inside, and a new one renders at once.
15398
+
15399
+ **An `aria-label` is read when the field renders, and nothing else would
15400
+ render it again.** It is the platform's attribute and no property of this
15401
+ element's, so writing a new one scheduled no update and the label kept
15402
+ the old words. Data Table meets this on every column move: each row's
15403
+ checkbox is named by the first column, so reordering renames every one.
15404
+
15405
+ A reactive property on the attribute, which is the one way Lit observes
15406
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
15407
+ mixin's own class, so every field observed only this mixin's attributes
15408
+ and dropped its own. Not reflected: the attribute is the consumer's. */
15409
+ "aria-label"?: (HelixSlider["namedBy"]) | undefined;
15410
+ /** The name a screen reader says for the field where it shows no label, as
15411
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
15412
+ names the control inside, and a new one renders at once.
15413
+
15414
+ **An `aria-label` is read when the field renders, and nothing else would
15415
+ render it again.** It is the platform's attribute and no property of this
15416
+ element's, so writing a new one scheduled no update and the label kept
15417
+ the old words. Data Table meets this on every column move: each row's
15418
+ checkbox is named by the first column, so reordering renames every one.
15419
+
15420
+ A reactive property on the attribute, which is the one way Lit observes
15421
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
15422
+ mixin's own class, so every field observed only this mixin's attributes
15423
+ and dropped its own. Not reflected: the attribute is the consumer's. */
15424
+ namedBy?: (HelixSlider["namedBy"]) | undefined;
14779
15425
  /** The validation message shown under the control. It replaces the
14780
15426
  browser's message. */
14781
15427
  feedback?: (HelixSlider["feedback"]) | undefined;
@@ -14892,9 +15538,11 @@ between its thumbs and ignores it. */
14892
15538
  origin?: (HelixSlider["origin"]) | undefined;
14893
15539
  /** Adds a second thumb, so the value is a pair.
14894
15540
 
14895
- The pair is one string, `"10,50"`, which is what a form submits and what
14896
- `MixinControllerValue` already holds. `valueAsNumber` reads the lower of
14897
- the two, since a range has no single number. */
15541
+ The pair is one string, `"10,50"`, which is what `value` and
15542
+ `MixinControllerValue` hold. A form receives two entries under the name,
15543
+ `price=10&price=50`, as React Aria's two thumbs send theirs.
15544
+ `valueAsNumber` reads the lower of the two, since a range has no single
15545
+ number. */
14898
15546
  range?: (HelixSlider["range"]) | undefined;
14899
15547
  /** How the readout joins a range's two values, with `{start}` and `{end}`
14900
15548
  filled in. Write it in the page's language, such as `{start} bis {end}`. */
@@ -14902,12 +15550,34 @@ filled in. Write it in the page's language, such as `{start} bis {end}`. */
14902
15550
  /** How the readout joins a range's two values, with `{start}` and `{end}`
14903
15551
  filled in. Write it in the page's language, such as `{start} bis {end}`. */
14904
15552
  rangeText?: (HelixSlider["rangeText"]) | undefined;
15553
+ /** Whether a reader can see and focus the value and cannot change it. A
15554
+ read-only slider still submits its value.
15555
+
15556
+ React Aria's `isReadOnly`. Each thumb stays a tab stop and says
15557
+ `aria-readonly`. The arrow keys, the page keys, Home, End, and a drag
15558
+ leave the value where it is. A script can still set `value`. */
15559
+ readonly?: (HelixSlider["readOnly"]) | undefined;
15560
+ /** Whether a reader can see and focus the value and cannot change it. A
15561
+ read-only slider still submits its value.
15562
+
15563
+ React Aria's `isReadOnly`. Each thumb stays a tab stop and says
15564
+ `aria-readonly`. The arrow keys, the page keys, Home, End, and a drag
15565
+ leave the value where it is. A script can still set `value`. */
15566
+ readOnly?: (HelixSlider["readOnly"]) | undefined;
14905
15567
  /** Shows the chosen value beside the track. */
14906
15568
  "show-value"?: (HelixSlider["showValue"]) | undefined;
14907
15569
  /** Shows the chosen value beside the track. */
14908
15570
  showValue?: (HelixSlider["showValue"]) | undefined;
14909
15571
  /** How far one press of an arrow key moves the thumb. */
14910
15572
  step?: (HelixSlider["step"]) | undefined;
15573
+ /** The name of a thumb between a range's first and last, read after the
15574
+ slider's label, with `{index}` filled in: its place, counted from 1. The
15575
+ first is `minimum-label` and the last `maximum-label`. */
15576
+ "thumb-label"?: (HelixSlider["thumbLabel"]) | undefined;
15577
+ /** The name of a thumb between a range's first and last, read after the
15578
+ slider's label, with `{index}` filled in: its place, counted from 1. The
15579
+ first is `minimum-label` and the last `maximum-label`. */
15580
+ thumbLabel?: (HelixSlider["thumbLabel"]) | undefined;
14911
15581
  /** Whether each thumb shows its value in a bubble beside it, as Web
14912
15582
  Awesome's `with-tooltip`. The styled slider shows the bubbles while the
14913
15583
  slider is under the pointer or holds focus. They repeat what each thumb
@@ -15166,10 +15836,20 @@ export type HelixSpeedDialItemHelixSelectElementEvent =
15166
15836
  export type HelixSpeedDialItemVueProps = {
15167
15837
  /** Whether the action is disabled, so it cannot be chosen. */
15168
15838
  disabled?: (HelixSpeedDialItem["disabled"]) | undefined;
15839
+ /** Whether the link downloads the file when the action is chosen. Only
15840
+ meaningful beside an `href`, and only for a file served from the page's
15841
+ origin. */
15842
+ download?: (HelixSpeedDialItem["download"]) | undefined;
15843
+ /** The URL the action links to. Setting it draws the action as a link. */
15844
+ href?: (HelixSpeedDialItem["href"]) | undefined;
15845
+ /** The link's `rel`. Set it whenever you set `target="_blank"`. */
15846
+ rel?: (HelixSpeedDialItem["rel"]) | undefined;
15169
15847
  /** The action's keyboard shortcut as a chord, such as `mod+s`, carried as
15170
15848
  `aria-keyshortcuts` and drawn after the name. `mod` is Command on an Apple
15171
15849
  keyboard and Control elsewhere. Showing a shortcut does not bind it. */
15172
15850
  shortcut?: (HelixSpeedDialItem["shortcut"]) | undefined;
15851
+ /** Where the link opens, such as `_blank` for a new tab. */
15852
+ target?: (HelixSpeedDialItem["target"]) | undefined;
15173
15853
  /** The action's value, sent in `helix-select` when the action is chosen. */
15174
15854
  value?: (HelixSpeedDialItem["value"]) | undefined;
15175
15855
  };
@@ -15240,13 +15920,17 @@ you described or labeled it yourself. */
15240
15920
  longPressLabel?: (HelixSpeedDial["longPressLabel"]) | undefined;
15241
15921
  /** Space between the trigger and the actions, in pixels. */
15242
15922
  offset?: (HelixSpeedDial["offset"]) | undefined;
15243
- /** What opens the dial. `click` opens it on a press of the trigger. Under
15244
- `long-press`, a press is the trigger's own action, and the dial opens on a
15245
- press held for half a second, or on Alt+Down or Alt+Up. */
15923
+ /** What opens the dial. `click` opens it on a press of the trigger. `hover`
15924
+ also opens it while a mouse rests on the trigger, and closes it once the
15925
+ mouse has left. Under `long-press`, a press is the trigger's own action,
15926
+ and the dial opens on a press held for half a second, or on Alt+Down or
15927
+ Alt+Up. */
15246
15928
  "open-on"?: (HelixSpeedDial["openOn"]) | undefined;
15247
- /** What opens the dial. `click` opens it on a press of the trigger. Under
15248
- `long-press`, a press is the trigger's own action, and the dial opens on a
15249
- press held for half a second, or on Alt+Down or Alt+Up. */
15929
+ /** What opens the dial. `click` opens it on a press of the trigger. `hover`
15930
+ also opens it while a mouse rests on the trigger, and closes it once the
15931
+ mouse has left. Under `long-press`, a press is the trigger's own action,
15932
+ and the dial opens on a press held for half a second, or on Alt+Down or
15933
+ Alt+Up. */
15250
15934
  openOn?: (HelixSpeedDial["openOn"]) | undefined;
15251
15935
  /** The direction the actions open in. They move to another side if that side
15252
15936
  does not fit.
@@ -15539,6 +16223,16 @@ Ignored once `active` is written. */
15539
16223
 
15540
16224
  Ignored once `active` is written. */
15541
16225
  defaultActive?: (HelixSteps["defaultActive"]) | undefined;
16226
+ /** Whether the arrow keys move focus between the stages' names, along the
16227
+ way the steps run. Off by default, so the arrows keep scrolling the page. */
16228
+ arrows?: (HelixSteps["arrows"]) | undefined;
16229
+ /** What marks a stage `complete`.
16230
+
16231
+ Absent, you do: each step's `complete` is yours, because a reader who
16232
+ steps back has finished more stages than the one they are on. `passed`
16233
+ marks every stage before the one a reader moves to, and leaves the marks
16234
+ when they go back. */
16235
+ completion?: (HelixSteps["completion"]) | undefined;
15542
16236
  /** The sequence's name, read by screen readers.
15543
16237
 
15544
16238
  A list of stages is a landmark a reader arrives at out of order, so it
@@ -15682,8 +16376,36 @@ was, and the control says `aria-readonly`. A script can still set
15682
16376
  The attribute is `readonly`, which is the platform's spelling for the
15683
16377
  text fields. */
15684
16378
  readOnly?: (HelixSwitch["readOnly"]) | undefined;
15685
- /** */
15686
- "aria-label"?: unknown;
16379
+ /** The name a screen reader says for the field where it shows no label, as
16380
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
16381
+ names the control inside, and a new one renders at once.
16382
+
16383
+ **An `aria-label` is read when the field renders, and nothing else would
16384
+ render it again.** It is the platform's attribute and no property of this
16385
+ element's, so writing a new one scheduled no update and the label kept
16386
+ the old words. Data Table meets this on every column move: each row's
16387
+ checkbox is named by the first column, so reordering renames every one.
16388
+
16389
+ A reactive property on the attribute, which is the one way Lit observes
16390
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
16391
+ mixin's own class, so every field observed only this mixin's attributes
16392
+ and dropped its own. Not reflected: the attribute is the consumer's. */
16393
+ "aria-label"?: (HelixSwitch["namedBy"]) | undefined;
16394
+ /** The name a screen reader says for the field where it shows no label, as
16395
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
16396
+ names the control inside, and a new one renders at once.
16397
+
16398
+ **An `aria-label` is read when the field renders, and nothing else would
16399
+ render it again.** It is the platform's attribute and no property of this
16400
+ element's, so writing a new one scheduled no update and the label kept
16401
+ the old words. Data Table meets this on every column move: each row's
16402
+ checkbox is named by the first column, so reordering renames every one.
16403
+
16404
+ A reactive property on the attribute, which is the one way Lit observes
16405
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
16406
+ mixin's own class, so every field observed only this mixin's attributes
16407
+ and dropped its own. Not reflected: the attribute is the consumer's. */
16408
+ namedBy?: (HelixSwitch["namedBy"]) | undefined;
15687
16409
  /** The validation message shown under the control. It replaces the
15688
16410
  browser's message. */
15689
16411
  feedback?: (HelixSwitch["feedback"]) | undefined;
@@ -16059,6 +16781,22 @@ is set. */
16059
16781
  "dropped-label"?: (HelixTable["droppedLabel"]) | undefined;
16060
16782
  /** What screen readers hear when a held row is dropped, in a `reorderable` table. */
16061
16783
  droppedLabel?: (HelixTable["droppedLabel"]) | undefined;
16784
+ /** The text shown and announced when the rows could not load. Set it when a
16785
+ fetch fails, and clear it once you try again. Empty, the default, shows
16786
+ nothing.
16787
+
16788
+ While it is set, a line after the rows shows it, or your own content in the
16789
+ `error` slot, in place of the empty and loading lines, and the live region
16790
+ says it. */
16791
+ "error-text"?: (HelixTable["errorText"]) | undefined;
16792
+ /** The text shown and announced when the rows could not load. Set it when a
16793
+ fetch fails, and clear it once you try again. Empty, the default, shows
16794
+ nothing.
16795
+
16796
+ While it is set, a line after the rows shows it, or your own content in the
16797
+ `error` slot, in place of the empty and loading lines, and the live region
16798
+ says it. */
16799
+ errorText?: (HelixTable["errorText"]) | undefined;
16062
16800
  /** The table's name where neither `label` nor an `aria-label` or
16063
16801
  `aria-labelledby` on the host gives it one. */
16064
16802
  "fallback-label"?: (HelixTable["fallbackLabel"]) | undefined;
@@ -16262,6 +17000,12 @@ panels and tells a screen reader the list is vertical.
16262
17000
 
16263
17001
  Optional, so the resting row writes no attribute onto the host. */
16264
17002
  orientation?: (HelixTabs["orientation"]) | undefined;
17003
+ /** Whether a strip with more tabs than fit shows a button at each end it can
17004
+ scroll toward. */
17005
+ "scroll-controls"?: (HelixTabs["scrollControls"]) | undefined;
17006
+ /** Whether a strip with more tabs than fit shows a button at each end it can
17007
+ scroll toward. */
17008
+ scrollControls?: (HelixTabs["scrollControls"]) | undefined;
16265
17009
  /** How the row of tabs is drawn.
16266
17010
 
16267
17011
  Unset is a raised pill on the selected tab with nothing behind the row,
@@ -16298,11 +17042,38 @@ export type HelixTabsVueEvents = {
16298
17042
 
16299
17043
  /** `HelixTab` component event */
16300
17044
  export type HelixTabElementEvent<E = Event> = TypedEvent<HelixTab, E>;
17045
+ /** `helix-dismiss` event type */
17046
+ export type HelixTabHelixDismissElementEvent =
17047
+ HelixTabElementEvent<HelixDismissEvent>;
16301
17048
  /** `helix-select` event type */
16302
17049
  export type HelixTabHelixSelectElementEvent =
16303
17050
  HelixTabElementEvent<HelixSelectEvent>;
16304
17051
 
16305
17052
  export type HelixTabVueProps = {
17053
+ /** Whether the element shows a control that dismisses it. */
17054
+ dismissible?: (HelixTab["dismissible"]) | undefined;
17055
+ /** The dismiss control's label, read by screen readers.
17056
+
17057
+ `attribute` is spelled out because Lit lowercases a property name to
17058
+ derive one rather than dash-casing it, so this would otherwise be
17059
+ reachable only as `dismisslabel`, which nobody would guess and no linter
17060
+ would catch.
17061
+
17062
+ A word property: register it for a locale under the host's key. A family
17063
+ that names the control otherwise, such as Tag's `Remove {label}`,
17064
+ declares its own English with `@words` above the override. */
17065
+ "dismiss-label"?: (HelixTab["dismissLabel"]) | undefined;
17066
+ /** The dismiss control's label, read by screen readers.
17067
+
17068
+ `attribute` is spelled out because Lit lowercases a property name to
17069
+ derive one rather than dash-casing it, so this would otherwise be
17070
+ reachable only as `dismisslabel`, which nobody would guess and no linter
17071
+ would catch.
17072
+
17073
+ A word property: register it for a locale under the host's key. A family
17074
+ that names the control otherwise, such as Tag's `Remove {label}`,
17075
+ declares its own English with `@words` above the override. */
17076
+ dismissLabel?: (HelixTab["dismissLabel"]) | undefined;
16306
17077
  /** Whether the item is disabled and cannot be chosen. */
16307
17078
  disabled?: (HelixTab["disabled"]) | undefined;
16308
17079
  /** Whether the item is selected.
@@ -16324,6 +17095,8 @@ of tabs that are pages of a site. */
16324
17095
  };
16325
17096
 
16326
17097
  export type HelixTabVueEvents = {
17098
+ /** A `dismissible` tab was asked to close. The tab does not remove itself, so remove it and its panel in response. Cancelable. */
17099
+ "helix-dismiss": HelixTabHelixDismissElementEvent;
16327
17100
  /** Fired when the tab is chosen. Cancelable: canceling it stops the change and leaves the decision to you. */
16328
17101
  "helix-select": HelixTabHelixSelectElementEvent;
16329
17102
  };
@@ -16338,6 +17111,14 @@ export type HelixTagGroupHelixDismissElementEvent =
16338
17111
  HelixTagGroupElementEvent<HelixDismissEvent>;
16339
17112
 
16340
17113
  export type HelixTagGroupVueProps = {
17114
+ /** Keeps at least one tag selected once one is, as React Aria's
17115
+ `disallowEmptySelection`: a press or a key that would leave none selected
17116
+ is refused. Removing the last selected tag still takes it out of `value`. */
17117
+ "disallow-empty-selection"?: (HelixTagGroup["disallowEmptySelection"]) | undefined;
17118
+ /** Keeps at least one tag selected once one is, as React Aria's
17119
+ `disallowEmptySelection`: a press or a key that would leave none selected
17120
+ is refused. Removing the last selected tag still takes it out of `value`. */
17121
+ disallowEmptySelection?: (HelixTagGroup["disallowEmptySelection"]) | undefined;
16341
17122
  /** The words the group shows and says once its last tag is removed, where
16342
17123
  nothing is in the `empty` slot. */
16343
17124
  "empty-label"?: (HelixTagGroup["emptyLabel"]) | undefined;
@@ -16347,6 +17128,20 @@ nothing is in the `empty` slot. */
16347
17128
  /** The name of the set, such as "Filters", which a screen reader announces
16348
17129
  before its tags. */
16349
17130
  label?: (HelixTagGroup["label"]) | undefined;
17131
+ /** What a press, Space, or a move does to the tags already selected.
17132
+ `toggle`, the default, keeps them: a press adds or takes out the tag, and
17133
+ the arrow keys move focus alone. `replace` selects the tag alone, as a
17134
+ file list does, and the arrow keys carry the selection with focus.
17135
+ Control or Command with a press or Space adds or takes out one tag in
17136
+ `multiple`, and with an arrow moves focus without selecting. */
17137
+ "selection-behavior"?: (HelixTagGroup["selectionBehavior"]) | undefined;
17138
+ /** What a press, Space, or a move does to the tags already selected.
17139
+ `toggle`, the default, keeps them: a press adds or takes out the tag, and
17140
+ the arrow keys move focus alone. `replace` selects the tag alone, as a
17141
+ file list does, and the arrow keys carry the selection with focus.
17142
+ Control or Command with a press or Space adds or takes out one tag in
17143
+ `multiple`, and with an arrow moves focus without selecting. */
17144
+ selectionBehavior?: (HelixTagGroup["selectionBehavior"]) | undefined;
16350
17145
  /** How many tags a reader can select: `single`, `multiple`, or none.
16351
17146
 
16352
17147
  Absent selects nothing, and the tags carry no selected state at all. */
@@ -16575,8 +17370,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
16575
17370
  same statement in markup, and `default-value` is how markup seeds a value
16576
17371
  a reset should return to. */
16577
17372
  value?: (HelixTextarea["value"]) | undefined;
16578
- /** */
16579
- "aria-label"?: unknown;
17373
+ /** The name a screen reader says for the field where it shows no label, as
17374
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
17375
+ names the control inside, and a new one renders at once.
17376
+
17377
+ **An `aria-label` is read when the field renders, and nothing else would
17378
+ render it again.** It is the platform's attribute and no property of this
17379
+ element's, so writing a new one scheduled no update and the label kept
17380
+ the old words. Data Table meets this on every column move: each row's
17381
+ checkbox is named by the first column, so reordering renames every one.
17382
+
17383
+ A reactive property on the attribute, which is the one way Lit observes
17384
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
17385
+ mixin's own class, so every field observed only this mixin's attributes
17386
+ and dropped its own. Not reflected: the attribute is the consumer's. */
17387
+ "aria-label"?: (HelixTextarea["namedBy"]) | undefined;
17388
+ /** The name a screen reader says for the field where it shows no label, as
17389
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
17390
+ names the control inside, and a new one renders at once.
17391
+
17392
+ **An `aria-label` is read when the field renders, and nothing else would
17393
+ render it again.** It is the platform's attribute and no property of this
17394
+ element's, so writing a new one scheduled no update and the label kept
17395
+ the old words. Data Table meets this on every column move: each row's
17396
+ checkbox is named by the first column, so reordering renames every one.
17397
+
17398
+ A reactive property on the attribute, which is the one way Lit observes
17399
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
17400
+ mixin's own class, so every field observed only this mixin's attributes
17401
+ and dropped its own. Not reflected: the attribute is the consumer's. */
17402
+ namedBy?: (HelixTextarea["namedBy"]) | undefined;
16580
17403
  /** The validation message shown under the control. It replaces the
16581
17404
  browser's message. */
16582
17405
  feedback?: (HelixTextarea["feedback"]) | undefined;
@@ -16891,8 +17714,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
16891
17714
  same statement in markup, and `default-value` is how markup seeds a value
16892
17715
  a reset should return to. */
16893
17716
  value?: (HelixTimeInput["value"]) | undefined;
16894
- /** */
16895
- "aria-label"?: unknown;
17717
+ /** The name a screen reader says for the field where it shows no label, as
17718
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
17719
+ names the control inside, and a new one renders at once.
17720
+
17721
+ **An `aria-label` is read when the field renders, and nothing else would
17722
+ render it again.** It is the platform's attribute and no property of this
17723
+ element's, so writing a new one scheduled no update and the label kept
17724
+ the old words. Data Table meets this on every column move: each row's
17725
+ checkbox is named by the first column, so reordering renames every one.
17726
+
17727
+ A reactive property on the attribute, which is the one way Lit observes
17728
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
17729
+ mixin's own class, so every field observed only this mixin's attributes
17730
+ and dropped its own. Not reflected: the attribute is the consumer's. */
17731
+ "aria-label"?: (HelixTimeInput["namedBy"]) | undefined;
17732
+ /** The name a screen reader says for the field where it shows no label, as
17733
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
17734
+ names the control inside, and a new one renders at once.
17735
+
17736
+ **An `aria-label` is read when the field renders, and nothing else would
17737
+ render it again.** It is the platform's attribute and no property of this
17738
+ element's, so writing a new one scheduled no update and the label kept
17739
+ the old words. Data Table meets this on every column move: each row's
17740
+ checkbox is named by the first column, so reordering renames every one.
17741
+
17742
+ A reactive property on the attribute, which is the one way Lit observes
17743
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
17744
+ mixin's own class, so every field observed only this mixin's attributes
17745
+ and dropped its own. Not reflected: the attribute is the consumer's. */
17746
+ namedBy?: (HelixTimeInput["namedBy"]) | undefined;
16896
17747
  /** The validation message shown under the control. It replaces the
16897
17748
  browser's message. */
16898
17749
  feedback?: (HelixTimeInput["feedback"]) | undefined;
@@ -17180,6 +18031,19 @@ A time not on the step is simply never offered, so it is not an error to
17180
18031
  name one, and naming every time in the list is how the empty state is
17181
18032
  reached honestly rather than by handing over an empty range. */
17182
18033
  disableTimes?: (HelixTimePicker["disableTimes"]) | undefined;
18034
+ /** What the list says when no time falls between `min` and `max`.
18035
+
18036
+ The fallback of the `empty` slot. */
18037
+ "empty-text"?: (HelixTimePicker["emptyText"]) | undefined;
18038
+ /** What the list says when no time falls between `min` and `max`.
18039
+
18040
+ The fallback of the `empty` slot. */
18041
+ emptyText?: (HelixTimePicker["emptyText"]) | undefined;
18042
+ /** Help under the times, such as the hours a shop is open, read by screen
18043
+ readers as the list's description. A message in `feedback` replaces it.
18044
+
18045
+ The fallback of the `hint` slot. */
18046
+ hint?: (HelixTimePicker["hint"]) | undefined;
17183
18047
  /** The clock the times are written on: `h12` for twelve hours with a
17184
18048
  meridiem, `h23` for twenty-four.
17185
18049
 
@@ -17206,7 +18070,8 @@ English, "Stunde" in German. */
17206
18070
  hourLabel?: (HelixTimePicker["hourLabel"]) | undefined;
17207
18071
  /** Accessible name for the list, which has no visible one of its own.
17208
18072
 
17209
- An `aria-label` or `aria-labelledby` on the host names the list instead. */
18073
+ An `aria-label` or `aria-labelledby` on the host names the list instead,
18074
+ and so does a label slotted into `label`, which is also drawn above it. */
17210
18075
  label?: (HelixTimePicker["label"]) | undefined;
17211
18076
  /** Language tag the times and the wheels' names are written in.
17212
18077
 
@@ -17432,6 +18297,11 @@ Whatever `<time>` accepts, which is a date, a time, both, a duration or a
17432
18297
  week. Unset, the label is written as it was given and nothing claims to
17433
18298
  know what instant it names. */
17434
18299
  datetime?: (HelixTimelineItem["datetime"]) | undefined;
18300
+ /** Writes the time as how long ago it was, or how long until it, from
18301
+ `datetime`, where the `time` slot is empty: `long` ("3 hours ago"),
18302
+ `short` ("3 hr. ago") or `narrow` ("3h ago"). Set with no value, it is
18303
+ `long`. The words move on as they go stale. */
18304
+ relative?: (HelixTimelineItem["relative"]) | undefined;
17435
18305
  /** The kind of event. It sets the color of the mark and nothing else. */
17436
18306
  tone?: (HelixTimelineItem["tone"]) | undefined;
17437
18307
  };
@@ -17607,8 +18477,36 @@ asking it meant. Writing always applies; `<helix-input value="x">` is the
17607
18477
  same statement in markup, and `default-value` is how markup seeds a value
17608
18478
  a reset should return to. */
17609
18479
  value?: (HelixToggleGroup["value"]) | undefined;
17610
- /** */
17611
- "aria-label"?: unknown;
18480
+ /** The name a screen reader says for the field where it shows no label, as
18481
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
18482
+ names the control inside, and a new one renders at once.
18483
+
18484
+ **An `aria-label` is read when the field renders, and nothing else would
18485
+ render it again.** It is the platform's attribute and no property of this
18486
+ element's, so writing a new one scheduled no update and the label kept
18487
+ the old words. Data Table meets this on every column move: each row's
18488
+ checkbox is named by the first column, so reordering renames every one.
18489
+
18490
+ A reactive property on the attribute, which is the one way Lit observes
18491
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
18492
+ mixin's own class, so every field observed only this mixin's attributes
18493
+ and dropped its own. Not reflected: the attribute is the consumer's. */
18494
+ "aria-label"?: (HelixToggleGroup["namedBy"]) | undefined;
18495
+ /** The name a screen reader says for the field where it shows no label, as
18496
+ the platform's `aria-label`. It is drawn as a label and clipped, so it
18497
+ names the control inside, and a new one renders at once.
18498
+
18499
+ **An `aria-label` is read when the field renders, and nothing else would
18500
+ render it again.** It is the platform's attribute and no property of this
18501
+ element's, so writing a new one scheduled no update and the label kept
18502
+ the old words. Data Table meets this on every column move: each row's
18503
+ checkbox is named by the first column, so reordering renames every one.
18504
+
18505
+ A reactive property on the attribute, which is the one way Lit observes
18506
+ one. Overriding `observedAttributes` in a mixin compiled `this` to the
18507
+ mixin's own class, so every field observed only this mixin's attributes
18508
+ and dropped its own. Not reflected: the attribute is the consumer's. */
18509
+ namedBy?: (HelixToggleGroup["namedBy"]) | undefined;
17612
18510
  /** The validation message shown under the control. It replaces the
17613
18511
  browser's message. */
17614
18512
  feedback?: (HelixToggleGroup["feedback"]) | undefined;
@@ -18394,6 +19292,18 @@ refused, in a `reorderable` tree. */
18394
19292
  An `aria-label` or `aria-labelledby` on the host names the tree too, and
18395
19293
  wins over this. */
18396
19294
  label?: (HelixTree["label"]) | undefined;
19295
+ /** What screen readers hear when an item moves into another branch, in a
19296
+ `reorderable` tree. `{name}` is the item's words, `{parent}` the words of
19297
+ the branch it moved into, or the tree's `label` for the top level,
19298
+ `{position}` its place there, counting from 1, and `{count}` the number of
19299
+ items there. */
19300
+ "moved-into-label"?: (HelixTree["movedIntoLabel"]) | undefined;
19301
+ /** What screen readers hear when an item moves into another branch, in a
19302
+ `reorderable` tree. `{name}` is the item's words, `{parent}` the words of
19303
+ the branch it moved into, or the tree's `label` for the top level,
19304
+ `{position}` its place there, counting from 1, and `{count}` the number of
19305
+ items there. */
19306
+ movedIntoLabel?: (HelixTree["movedIntoLabel"]) | undefined;
18397
19307
  /** What screen readers hear each time an item moves, in a `reorderable`
18398
19308
  tree. `{name}` is the item's words, `{position}` its place among its
18399
19309
  siblings, counting from 1, and `{count}` the number of siblings. */
@@ -18673,6 +19583,20 @@ Ignored once `active` is written. */
18673
19583
  defaultActive?: (HelixVideoPlaylist["defaultActive"]) | undefined;
18674
19584
  /** The list's name, read by screen readers. */
18675
19585
  label?: (HelixVideoPlaylist["label"]) | undefined;
19586
+ /** What the live region says when the playlist moves to another entry.
19587
+ `{title}` is the entry's name.
19588
+
19589
+ **A move a reader did not make is said.** At the end of a clip the
19590
+ playlist starts the next one, and the only other trace of that is the
19591
+ `aria-current` on a button the reader is not on. */
19592
+ "playing-label"?: (HelixVideoPlaylist["playingLabel"]) | undefined;
19593
+ /** What the live region says when the playlist moves to another entry.
19594
+ `{title}` is the entry's name.
19595
+
19596
+ **A move a reader did not make is said.** At the end of a clip the
19597
+ playlist starts the next one, and the only other trace of that is the
19598
+ `aria-current` on a button the reader is not on. */
19599
+ playingLabel?: (HelixVideoPlaylist["playingLabel"]) | undefined;
18676
19600
  /** What happens when an entry ends with no next one to go to. `one` plays the
18677
19601
  same entry again, and `all` goes from the last entry back to the first.
18678
19602
  Absent, the playlist stops on the last entry and sends `helix-end`.
@@ -18744,6 +19668,10 @@ permitted is the browser's policy, and what follows a refused autoplay is a
18744
19668
  paused player showing its start control, which is the correct thing to be
18745
19669
  looking at. */
18746
19670
  autoplay?: (HelixVideo["autoplay"]) | undefined;
19671
+ /** What the live region says when `c` turns captions off. */
19672
+ "captions-hidden-label"?: (HelixVideo["captionsHiddenLabel"]) | undefined;
19673
+ /** What the live region says when `c` turns captions off. */
19674
+ captionsHiddenLabel?: (HelixVideo["captionsHiddenLabel"]) | undefined;
18747
19675
  /** The name of the captions control when the video has one track. The control
18748
19676
  turns that track on and off.
18749
19677
 
@@ -18764,6 +19692,10 @@ tracks. */
18764
19692
  /** The name of the row that turns captions off, when the video has several
18765
19693
  tracks. */
18766
19694
  captionsOffLabel?: (HelixVideo["captionsOffLabel"]) | undefined;
19695
+ /** What the live region says when `c` turns captions on. */
19696
+ "captions-shown-label"?: (HelixVideo["captionsShownLabel"]) | undefined;
19697
+ /** What the live region says when `c` turns captions on. */
19698
+ captionsShownLabel?: (HelixVideo["captionsShownLabel"]) | undefined;
18767
19699
  /** Whether the browser draws its native controls. When set, this element draws
18768
19700
  no controls of its own.
18769
19701
 
@@ -18940,6 +19872,10 @@ writes the current entry's name here. */
18940
19872
  "more-label"?: (HelixVideo["moreLabel"]) | undefined;
18941
19873
  /** What the button that opens `overflow-controls` is called. */
18942
19874
  moreLabel?: (HelixVideo["moreLabel"]) | undefined;
19875
+ /** What the live region says when a key mutes the video. */
19876
+ "muted-label"?: (HelixVideo["mutedLabel"]) | undefined;
19877
+ /** What the live region says when a key mutes the video. */
19878
+ mutedLabel?: (HelixVideo["mutedLabel"]) | undefined;
18943
19879
  /** The name of the mute control. The control shows as pressed while the video
18944
19880
  is muted. */
18945
19881
  "mute-label"?: (HelixVideo["muteLabel"]) | undefined;
@@ -18982,6 +19918,10 @@ So the consumer says where the fold is, which they can, having already
18982
19918
  named the controls in order. A name in both lists is drawn once, on the
18983
19919
  bar: two of the same control is worse than either placement. */
18984
19920
  overflowControls?: (HelixVideo["overflowControls"]) | undefined;
19921
+ /** What the live region says when a key pauses the video. */
19922
+ "paused-label"?: (HelixVideo["pausedLabel"]) | undefined;
19923
+ /** What the live region says when a key pauses the video. */
19924
+ pausedLabel?: (HelixVideo["pausedLabel"]) | undefined;
18985
19925
  /** The name of the play control while pressing it would pause the video. */
18986
19926
  "pause-label"?: (HelixVideo["pauseLabel"]) | undefined;
18987
19927
  /** The name of the play control while pressing it would pause the video. */
@@ -19004,6 +19944,10 @@ this is what a screen reader calls it on arriving. */
19004
19944
  /** The name of the player when `label` is not set. The player is a group, and
19005
19945
  this is what a screen reader calls it on arriving. */
19006
19946
  playerLabel?: (HelixVideo["playerLabel"]) | undefined;
19947
+ /** What the live region says when a key plays the video. */
19948
+ "playing-label"?: (HelixVideo["playingLabel"]) | undefined;
19949
+ /** What the live region says when a key plays the video. */
19950
+ playingLabel?: (HelixVideo["playingLabel"]) | undefined;
19007
19951
  /** The name of the play control while pressing it would start the video. */
19008
19952
  "play-label"?: (HelixVideo["playLabel"]) | undefined;
19009
19953
  /** The name of the play control while pressing it would start the video. */
@@ -19102,6 +20046,16 @@ negation. */
19102
20046
  /** How the scrubber reads out where the video is, with `{position}` and
19103
20047
  `{duration}` filled in. */
19104
20048
  timeLabel?: (HelixVideo["timeLabel"]) | undefined;
20049
+ /** What the live region says when a key unmutes the video. */
20050
+ "unmuted-label"?: (HelixVideo["unmutedLabel"]) | undefined;
20051
+ /** What the live region says when a key unmutes the video. */
20052
+ unmutedLabel?: (HelixVideo["unmutedLabel"]) | undefined;
20053
+ /** What the live region says when a key changes the volume. `{percent}` is the
20054
+ volume from 0 to 100, written in the locale. */
20055
+ "volume-changed-label"?: (HelixVideo["volumeChangedLabel"]) | undefined;
20056
+ /** What the live region says when a key changes the volume. `{percent}` is the
20057
+ volume from 0 to 100, written in the locale. */
20058
+ volumeChangedLabel?: (HelixVideo["volumeChangedLabel"]) | undefined;
19105
20059
  /** What the volume slider is called. */
19106
20060
  "volume-label"?: (HelixVideo["volumeLabel"]) | undefined;
19107
20061
  /** What the volume slider is called. */
@@ -19585,6 +20539,8 @@ export type CustomCssProperties = {
19585
20539
  "--canvas-selected-color"?: (string) | undefined;
19586
20540
  /** The background of the pan and zoom buttons. `Map` uses the same property. */
19587
20541
  "--viewport-control-background-color"?: (string) | undefined;
20542
+ /** The board's zoom, which the board writes: 1 at the document's own size, 0.5 at half. The cards inherit it, so a card's stylesheet can draw less when the board is far out, such as a border that stays one pixel wide at `calc(1px / var(--canvas-zoom))`. */
20543
+ "--canvas-zoom"?: (string) | undefined;
19588
20544
  /** How the regions pack when the card is stretched taller than its content. `start` by default, so the slack is at the bottom; `space-between` puts a footer on the floor. */
19589
20545
  "--card-align"?: (string) | undefined;
19590
20546
  /** Filter applied behind a `frosted` or `glass` card. Follows the theme's material policy; set it to override the strength on one card. */
@@ -19859,6 +20815,8 @@ export type CustomCssProperties = {
19859
20815
  "--data-table-drop-indicator-color"?: (string) | undefined;
19860
20816
  /** The thickness of the line where a moved row would land. */
19861
20817
  "--data-table-drop-indicator-size"?: (string) | undefined;
20818
+ /** The color of the words in the line shown while `error-text` is set. */
20819
+ "--data-table-error-color"?: (string) | undefined;
19862
20820
  /** The space between the grid and the footer below it. */
19863
20821
  "--data-table-footer-gap"?: (string) | undefined;
19864
20822
  /** The space between the pieces of the footer, such as a summary and the pagination. */
@@ -20411,8 +21369,16 @@ export type CustomCssProperties = {
20411
21369
  "--list-drag-preview-radius"?: (string) | undefined;
20412
21370
  /** The shadow that raises the copy of a row a pointer drags over the page. */
20413
21371
  "--list-drag-preview-shadow"?: (string) | undefined;
21372
+ /** The color of the text in the row shown while the list has no rows. */
21373
+ "--list-empty-color"?: (string) | undefined;
21374
+ /** The space around the text in the row shown while the list has no rows. */
21375
+ "--list-empty-padding"?: (string) | undefined;
20414
21376
  /** The space between rows. */
20415
21377
  "--list-gap"?: (string) | undefined;
21378
+ /** The color of the text in the row drawn while `loading` is set. */
21379
+ "--list-loading-color"?: (string) | undefined;
21380
+ /** The space around the text in the row drawn while `loading` is set. */
21381
+ "--list-loading-padding"?: (string) | undefined;
20416
21382
  /** The space that the markers of ordered and unordered lists sit in. */
20417
21383
  "--list-marker-gutter"?: (string) | undefined;
20418
21384
  /** The width of the rail's track. */
@@ -20725,7 +21691,7 @@ export type CustomCssProperties = {
20725
21691
  "--number-input-stepper-color"?: (string) | undefined;
20726
21692
  /** Icon color of a stepper button under the pointer. */
20727
21693
  "--number-input-stepper-color-hover"?: (string) | undefined;
20728
- /** Width and height of the stepper icons. */
21694
+ /** Width and height of the stepper icons, drawn or slotted. */
20729
21695
  "--number-input-stepper-icon-size"?: (string) | undefined;
20730
21696
  /** Width of each stepper button. */
20731
21697
  "--number-input-stepper-size"?: (string) | undefined;
@@ -21105,6 +22071,8 @@ export type CustomCssProperties = {
21105
22071
  "--slider-marker-color"?: (string) | undefined;
21106
22072
  /** The color of the thumb. */
21107
22073
  "--slider-thumb-color"?: (string) | undefined;
22074
+ /** The color of content in the `thumb` and `thumb-end` slots, drawn on the thumb. */
22075
+ "--slider-thumb-content-color"?: (string) | undefined;
21108
22076
  /** 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. */
21109
22077
  "--slider-thumb-length"?: (string) | undefined;
21110
22078
  /** 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. */
@@ -21123,7 +22091,7 @@ export type CustomCssProperties = {
21123
22091
  "--slider-track-image"?: (string) | undefined;
21124
22092
  /** The thickness of the track. It matches the progress bar's size by default. */
21125
22093
  "--slider-track-size"?: (string) | undefined;
21126
- /** Where a bubble's thumb is, as a fraction of the track, 0 to 1. Set on each `tooltip` part. */
22094
+ /** 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. */
21127
22095
  "--slider-at"?: (string) | undefined;
21128
22096
  /** The value as a fraction of the range, 0 to 1. */
21129
22097
  "--slider-fraction"?: (string) | undefined;
@@ -21289,6 +22257,8 @@ export type CustomCssProperties = {
21289
22257
  "--table-drag-preview-radius"?: (string) | undefined;
21290
22258
  /** The shadow that raises the copy of a row a pointer drags over the page. */
21291
22259
  "--table-drag-preview-shadow"?: (string) | undefined;
22260
+ /** The color of the words in the line shown while `error-text` is set. */
22261
+ "--table-error-color"?: (string) | undefined;
21292
22262
  /** The color of the words in the `heading` slot. */
21293
22263
  "--table-title-color"?: (string) | undefined;
21294
22264
  /** The space between the `heading` slot and the grid. */
@@ -21325,12 +22295,16 @@ export type CustomCssProperties = {
21325
22295
  "--tabs-indicator-thickness"?: (string) | undefined;
21326
22296
  /** The color of the rule under the row in `underlined`. */
21327
22297
  "--tabs-rule-color"?: (string) | undefined;
22298
+ /** The fill behind the scroll buttons, over the tabs that pass under them. */
22299
+ "--tabs-scroll-background-color"?: (string) | undefined;
21328
22300
  /** The height of a tab. `segmented` sizes its tabs to the track and does not read it. */
21329
22301
  "--tabs-tab-block-size"?: (string) | undefined;
21330
22302
  /** The label color of a tab that is not current. */
21331
22303
  "--tabs-tab-color"?: (string) | undefined;
21332
22304
  /** How faint a disabled tab is drawn. */
21333
22305
  "--tabs-tab-disabled-opacity"?: (string) | undefined;
22306
+ /** The color of the mark that closes a `dismissible` tab. */
22307
+ "--tabs-tab-dismiss-color"?: (string) | undefined;
21334
22308
  /** The size of a tab's label. */
21335
22309
  "--tabs-tab-font-size"?: (string) | undefined;
21336
22310
  /** The weight of a tab's label. */
@@ -21425,12 +22399,20 @@ export type CustomCssProperties = {
21425
22399
  "--time-picker-wheel-mask"?: (string) | undefined;
21426
22400
  /** The color of the heading. */
21427
22401
  "--timeline-group-heading-color"?: (string) | undefined;
22402
+ /** Space between the rail and the time and what happened. */
22403
+ "--timeline-column-gap"?: (string) | undefined;
22404
+ /** The color of the mark on an entry with no `tone`. A `tone` colors the mark itself. */
22405
+ "--timeline-marker-color"?: (string) | undefined;
21428
22406
  /** How round the mark is. Zero is a square, and half its size is a disc. */
21429
22407
  "--timeline-marker-radius"?: (string) | undefined;
21430
22408
  /** Edge length of the mark. */
21431
22409
  "--timeline-marker-size"?: (string) | undefined;
22410
+ /** The color of the line. */
22411
+ "--timeline-rail-color"?: (string) | undefined;
21432
22412
  /** Width of the line. */
21433
22413
  "--timeline-rail-size"?: (string) | undefined;
22414
+ /** The color of the time. */
22415
+ "--timeline-time-color"?: (string) | undefined;
21434
22416
  /** Space between one entry and the next. */
21435
22417
  "--timeline-gap"?: (string) | undefined;
21436
22418
  /** The panel's color. Follows `--helix-color-surface-overlay`. */
@@ -21701,6 +22683,8 @@ export type CustomCssProperties = {
21701
22683
  "--virtual-list-scrollbar-track-color"?: (string) | undefined;
21702
22684
  /** The fill behind a chosen row, in a list with `selection-mode`. */
21703
22685
  "--virtual-list-selected-background-color"?: (string) | undefined;
22686
+ /** The color of the text in a chosen row, in a list with `selection-mode`. Inherited by default. */
22687
+ "--virtual-list-selected-color"?: (string) | undefined;
21704
22688
  };
21705
22689
 
21706
22690
  // Vue SFC template type-checking (GlobalComponents) for non-Vue custom elements.
@@ -22349,13 +23333,13 @@ export interface WcToolkitVueGlobalComponents {
22349
23333
  HelixRatingVueProps,
22350
23334
  HelixRatingVueEvents
22351
23335
  >;
22352
- /** A sandboxed '<iframe>' that loads 'src', a document you provide. That document imports what the examples need, listens for a render message, and writes the markup into itself. **Examples render in a frame**, so an example's styles and scripts do not affect the page around the sandbox, and 'position: fixed' stays inside the pane. The frame starts empty, with its own stylesheets and its own custom element registry, so 'src' must load the styles and components the examples use. **The source is untrusted, and the frame keeps it isolated.** The frame uses 'sandbox="allow-scripts"' and never 'allow-same-origin'. Together, the two let a document on the same origin remove its own sandbox, which is the same as having none. **A preview says where it is.** It is ':state(loading)' from the moment it has a 'src' until that document can take the example, and again through 'reload()'. It is ':state(failed)' once the example throws an error it does not catch, until the next source is sent, which a frame on 'servePreview' reports. A page draws its own spinner or message from either, such as a sibling shown by 'helix-sandbox-preview:state(failed) + .message'. */
23336
+ /** A sandboxed '<iframe>' that loads 'src', a document you provide. That document imports what the examples need, listens for a render message, and writes the markup into itself. **Without 'src', the frame loads a built-in document**, so a sandbox renders with nothing to host. It runs HTML, CSS, and scripts, and reports the console, uncaught errors, its height, and presses as a frame on 'servePreview' does. It defines no element, so an example that uses Helix components needs a 'src' that imports them. **Examples render in a frame**, so an example's styles and scripts do not affect the page around the sandbox, and 'position: fixed' stays inside the pane. The frame starts empty, with its own stylesheets and its own custom element registry, so 'src' must load the styles and components the examples use. **The source is untrusted, and the frame keeps it isolated.** The frame uses 'sandbox="allow-scripts"' and never 'allow-same-origin'. Together, the two let a document on the same origin remove its own sandbox, which is the same as having none. **A preview says where it is.** It is ':state(loading)' from the moment it has a 'src' until that document can take the example, and again through 'reload()'. It is ':state(failed)' once the example throws an error it does not catch, until the next source is sent, which a frame on 'servePreview' reports. A page draws its own spinner or message from either, such as a sibling shown by 'helix-sandbox-preview:state(failed) + .message'. */
22353
23337
  "helix-sandbox-preview": DefineCustomElement<
22354
23338
  HelixSandboxPreview,
22355
23339
  HelixSandboxPreviewVueProps,
22356
23340
  HelixSandboxPreviewVueEvents
22357
23341
  >;
22358
- /** A source pane dispatches 'helix-before-edit', which bubbles, and the sandbox passes the value to the preview slotted into it. The source pane and the preview do not reference each other, so you can replace either one or use it alone. The event carries the pane's 'name', so one sandbox can hold several panes. 'html' sets the preview's markup and 'css' sets its stylesheet. The sandbox ignores a pane with any other name, so that pane can show content without changing the preview. **The dividers are two nested 'helix-splitter' elements**, which handle the pointer, the keyboard, and the corner. The inner splitter holds the panes and the outer one holds the panel, so the panel spans the full width. On a focused divider, the arrow keys move it, and 'Home' and 'End' move it to its ends. 'Enter' on the panes divider shuts the lead pane, and pressed again it opens the pane where it was. 'Enter' on the panel divider shuts the panel to 'panel-collapsed-size', and pressed again it opens the panel to its last height. */
23342
+ /** A source pane dispatches 'helix-before-edit', which bubbles, and the sandbox passes the value to the preview slotted into it. The source pane and the preview do not reference each other, so you can replace either one or use it alone. The event carries the pane's 'name', so one sandbox can hold several panes. 'html' sets the preview's markup, 'css' sets its stylesheet, and 'js' sets a script that runs as a module after the markup. The sandbox ignores a pane with any other name, so that pane can show content without changing the preview. **The dividers are two nested 'helix-splitter' elements**, which handle the pointer, the keyboard, and the corner. The inner splitter holds the panes and the outer one holds the panel, so the panel spans the full width. On a focused divider, the arrow keys move it, and 'Home' and 'End' move it to its ends. 'Enter' on the panes divider shuts the lead pane, and pressed again it opens the pane where it was. 'Enter' on the panel divider shuts the panel to 'panel-collapsed-size', and pressed again it opens the panel to its last height. */
22359
23343
  "helix-sandbox": DefineCustomElement<
22360
23344
  HelixSandbox,
22361
23345
  HelixSandboxVueProps,
@@ -22529,7 +23513,7 @@ export interface WcToolkitVueGlobalComponents {
22529
23513
  HelixTagGroupVueProps,
22530
23514
  HelixTagGroupVueEvents
22531
23515
  >;
22532
- /** Seven tones. The fill is a tint of the status color made with 'color-mix', so when a theme changes its status colors, the tints change with them. */
23516
+ /** Seven tones. The fill is a tint of the status color made with 'color-mix', so when a theme changes its status colors, the tints change with them. A tag takes its height from the region it is in, as the controls beside it do: 'data-density="sm"', 'md', or 'lg' on the tag or on any element around it sets '--helix-size-tag' to the small, resting, or large step, so a row of tags and buttons stays one height. 'shape="pill"' rounds its ends. */
22533
23517
  "helix-tag": DefineCustomElement<
22534
23518
  HelixTag,
22535
23519
  HelixTagVueProps,
@@ -22571,7 +23555,7 @@ export interface WcToolkitVueGlobalComponents {
22571
23555
  HelixTimelineItemVueProps,
22572
23556
  HelixTimelineItemVueEvents
22573
23557
  >;
22574
- /** Sets the direction time runs in and the spacing between events. Each entry draws its own mark and line. 'layout' and 'orientation' move where the entries are drawn, and never the order they are read in, which is the order you write them in: - Unset, the line runs down the start edge, with each time over what happened. - 'layout="opposite"' runs the line down the middle, with each time on the start side and what happened on the end side. - 'layout="alternate"' runs the line down the middle, with the first entry on the end side, the second on the start side, and so on. - 'orientation="horizontal"' runs the line across the top, with the entries side by side in the order they are read, and the time over what happened under each mark. Use it for a few entries, since they share the width. */
23558
+ /** Sets the direction time runs in and the spacing between events. Each entry draws its own mark and line. 'layout' and 'orientation' move where the entries are drawn, and never the order they are read in, which is the order you write them in: - Unset, the line runs down the start edge, with each time over what happened. - 'layout="opposite"' runs the line down the middle, with each time on the start side and what happened on the end side. - 'layout="alternate"' runs the line down the middle, with the first entry on the end side, the second on the start side, and so on. - 'orientation="horizontal"' runs the line across the top, with the entries side by side in the order they are read, and the time over what happened under each mark. Use it for a few entries, since they share the width. An entry's custom properties, such as '--timeline-rail-color' and '--timeline-marker-size', inherit, so setting them on the timeline changes every entry in it. */
22575
23559
  "helix-timeline": DefineCustomElement<
22576
23560
  HelixTimeline,
22577
23561
  HelixTimelineVueProps,