@fusion.dev/helix 0.147.0 → 0.149.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 (114) hide show
  1. package/custom-elements.json +11575 -1278
  2. package/dist/announcement/root/announcement-root.css.js +1 -1
  3. package/dist/blockquote/root/blockquote-root.css.js +1 -1
  4. package/dist/blockquote/root/blockquote-root.d.ts +8 -2
  5. package/dist/button-group/root/button-group-root.css.js +10 -1
  6. package/dist/button-group/root/button-group-root.d.ts +29 -7
  7. package/dist/button-group/root/button-group-root.js +19 -0
  8. package/dist/canvas/node/canvas-node.css.js +6 -6
  9. package/dist/canvas/node/canvas-node.d.ts +5 -0
  10. package/dist/canvas/root/canvas-root.css.js +6 -2
  11. package/dist/canvas/root/canvas-root.d.ts +6 -0
  12. package/dist/card/root/card-root.css.js +3 -3
  13. package/dist/card/root/card-root.d.ts +4 -0
  14. package/dist/chat/root/chat-root.css.js +3 -1
  15. package/dist/chat/root/chat-root.d.ts +3 -0
  16. package/dist/code-block/root/code-block-root.css.js +17 -9
  17. package/dist/code-block/root/code-block-root.d.ts +7 -0
  18. package/dist/combobox/root/combobox-root.js +2 -0
  19. package/dist/data-table/root/data-table-root.css.js +20 -8
  20. package/dist/data-table/root/data-table-root.d.ts +12 -0
  21. package/dist/description-list/item/description-list-item.css.js +1 -1
  22. package/dist/description-list/item/description-list-item.d.ts +1 -0
  23. package/dist/description-list/root/description-list-root.css.js +2 -1
  24. package/dist/description-list/root/description-list-root.d.ts +12 -0
  25. package/dist/description-list/root/description-list-root.js +7 -0
  26. package/dist/divider/root/divider-root.css.js +3 -4
  27. package/dist/divider/root/divider-root.d.ts +3 -0
  28. package/dist/element-events.generated.js +33 -4
  29. package/dist/format-date/root/format-date-root.css.js +1 -1
  30. package/dist/format-date/root/format-date-root.d.ts +0 -1
  31. package/dist/format-date/root/format-date-root.js +0 -1
  32. package/dist/list/item/list-item.css.js +4 -2
  33. package/dist/list/item/list-item.d.ts +4 -0
  34. package/dist/list/root/list-root.css.js +2 -1
  35. package/dist/list/root/list-root.d.ts +6 -0
  36. package/dist/list/root/list-root.js +2 -1
  37. package/dist/listbox/reorder/index.d.ts +1 -0
  38. package/dist/listbox/reorder/index.js +6 -0
  39. package/dist/listbox/reorder/listbox-drag-preview.css.d.ts +1 -0
  40. package/dist/listbox/reorder/listbox-drag-preview.css.js +3 -0
  41. package/dist/listbox/reorder/listbox-reorder.css.d.ts +1 -0
  42. package/dist/listbox/reorder/listbox-reorder.css.js +4 -0
  43. package/dist/listbox/root/listbox-root.css.js +4 -1
  44. package/dist/listbox/root/listbox-root.d.ts +11 -0
  45. package/dist/listbox/root/listbox-root.js +1 -0
  46. package/dist/map/root/map-root.css.js +10 -6
  47. package/dist/map/root/map-root.d.ts +10 -0
  48. package/dist/notifications/notification/notification.css.js +8 -2
  49. package/dist/notifications/notification/notification.d.ts +13 -5
  50. package/dist/notifications/notification/notification.js +13 -0
  51. package/dist/notifications/root/notifications-root.css.js +4 -2
  52. package/dist/notifications/root/notifications-root.d.ts +21 -3
  53. package/dist/notifications/root/notifications-root.js +13 -1
  54. package/dist/orb/root/orb-root.d.ts +5 -0
  55. package/dist/orb/root/orb-root.js +13 -12
  56. package/dist/pagination/root/pagination-root.css.js +7 -7
  57. package/dist/pagination/root/pagination-root.d.ts +14 -0
  58. package/dist/pagination/size/pagination-size.css.js +1 -1
  59. package/dist/pagination/size/pagination-size.d.ts +3 -0
  60. package/dist/pagination/summary/pagination-summary.css.js +1 -1
  61. package/dist/pagination/summary/pagination-summary.d.ts +3 -0
  62. package/dist/qr-code/root/qr-code-root.css.js +1 -1
  63. package/dist/qr-code/root/qr-code-root.d.ts +3 -0
  64. package/dist/sandbox/preview/sandbox-preview.d.ts +14 -1
  65. package/dist/sandbox/preview/sandbox-preview.js +12 -9
  66. package/dist/sandbox/root/sandbox-root.d.ts +8 -3
  67. package/dist/sandbox/root/sandbox-root.js +7 -3
  68. package/dist/sandbox/source/sandbox-source.d.ts +5 -0
  69. package/dist/sandbox/source/sandbox-source.js +4 -1
  70. package/dist/sandbox/status-bar/sandbox-status-bar.d.ts +10 -0
  71. package/dist/sandbox/status-bar/sandbox-status-bar.js +14 -2
  72. package/dist/sandbox/terminal/sandbox-terminal.d.ts +11 -0
  73. package/dist/sandbox/terminal/sandbox-terminal.js +22 -11
  74. package/dist/scroll-area/root/scroll-area-root.css.js +5 -4
  75. package/dist/scroll-area/root/scroll-area-root.d.ts +3 -3
  76. package/dist/select/root/select-root.css.js +4 -1
  77. package/dist/select/root/select-root.js +2 -0
  78. package/dist/shared/viewport/viewport.css.js +1 -1
  79. package/dist/speed-dial/group/speed-dial-group.css.d.ts +1 -0
  80. package/dist/speed-dial/group/speed-dial-group.css.js +2 -0
  81. package/dist/speed-dial/group/speed-dial-group.d.ts +27 -0
  82. package/dist/speed-dial/group/speed-dial-group.js +16 -0
  83. package/dist/speed-dial/index.d.ts +1 -0
  84. package/dist/speed-dial/index.js +1 -0
  85. package/dist/speed-dial/item/speed-dial-item.css.js +1 -1
  86. package/dist/speed-dial/item/speed-dial-item.d.ts +1 -0
  87. package/dist/speed-dial/root/speed-dial-root.css.js +1 -1
  88. package/dist/splitter/root/splitter-root.css.js +15 -7
  89. package/dist/splitter/root/splitter-root.d.ts +4 -0
  90. package/dist/table/cell/table-cell.css.js +1 -1
  91. package/dist/table/root/table-root.css.js +3 -1
  92. package/dist/table/root/table-root.d.ts +8 -1
  93. package/dist/table/row/table-row.css.js +9 -1
  94. package/dist/table/row/table-row.d.ts +5 -0
  95. package/dist/time-picker/root/time-picker-root.css.js +9 -4
  96. package/dist/time-picker/root/time-picker-root.d.ts +6 -0
  97. package/dist/toast/item/toast-item.css.js +9 -6
  98. package/dist/toast/item/toast-item.d.ts +10 -0
  99. package/dist/toolbar/root/toolbar-root.css.js +1 -1
  100. package/dist/toolbar/root/toolbar-root.d.ts +9 -0
  101. package/dist/toolbar/root/toolbar-root.js +4 -0
  102. package/dist/tooltip/root/tooltip-root.d.ts +9 -0
  103. package/dist/tree/item/tree-item.css.js +3 -1
  104. package/dist/tree/item/tree-item.d.ts +6 -0
  105. package/dist/tree/root/tree-root.css.js +2 -1
  106. package/dist/tree/root/tree-root.d.ts +8 -1
  107. package/dist/virtual-list/root/virtual-list-root.css.js +6 -1
  108. package/dist/virtual-list/root/virtual-list-root.d.ts +3 -0
  109. package/lint.json +1 -1
  110. package/package.json +8 -7
  111. package/types/jsx.d.ts +5934 -1679
  112. package/types/svelte.d.ts +1 -0
  113. package/types/vue.d.ts +1910 -541
  114. package/types/words.d.ts +2555 -0
package/types/vue.d.ts CHANGED
@@ -119,6 +119,7 @@ import type {
119
119
  HelixSkipLink,
120
120
  HelixSlider,
121
121
  HelixSparkline,
122
+ HelixSpeedDialGroup,
122
123
  HelixSpeedDialItem,
123
124
  HelixSpeedDial,
124
125
  HelixSplitter,
@@ -165,6 +166,7 @@ import type {
165
166
  HelixDismissEvent,
166
167
  HelixScrolledEvent,
167
168
  HelixAuraFallbackEvent,
169
+ HelixBeforeChangeEvent,
168
170
  HelixPressEvent,
169
171
  HelixBeforeMoveEvent,
170
172
  HelixBeforeReconnectEvent,
@@ -185,7 +187,6 @@ import type {
185
187
  HelixBeforePinEvent,
186
188
  HelixHistoryEvent,
187
189
  HelixPinEvent,
188
- HelixBeforeChangeEvent,
189
190
  HelixBeforeToggleEvent,
190
191
  HelixCopyEvent,
191
192
  HelixSampleEndEvent,
@@ -194,6 +195,7 @@ import type {
194
195
  HelixFilterEvent,
195
196
  HelixLoadMoreEvent,
196
197
  HelixCopyErrorEvent,
198
+ HelixBeforeReorderEvent,
197
199
  HelixExpandEvent,
198
200
  HelixFilteredEvent,
199
201
  HelixNavigateEvent,
@@ -489,14 +491,22 @@ survives having nothing to paint with, and it is the only axis that does. */
489
491
  `attribute` is spelled out because Lit lowercases a property name to
490
492
  derive one rather than dash-casing it, so this would otherwise be
491
493
  reachable only as `dismisslabel`, which nobody would guess and no linter
492
- would catch. */
494
+ would catch.
495
+
496
+ A word property: register it for a locale under the host's key. A family
497
+ that names the control otherwise, such as Tag's `Remove {label}`,
498
+ declares its own English with `@words` above the override. */
493
499
  "dismiss-label"?: (HelixAnnouncement["dismissLabel"]) | undefined;
494
500
  /** The dismiss control's label, read by screen readers.
495
501
 
496
502
  `attribute` is spelled out because Lit lowercases a property name to
497
503
  derive one rather than dash-casing it, so this would otherwise be
498
504
  reachable only as `dismisslabel`, which nobody would guess and no linter
499
- would catch. */
505
+ would catch.
506
+
507
+ A word property: register it for a locale under the host's key. A family
508
+ that names the control otherwise, such as Tag's `Remove {label}`,
509
+ declares its own English with `@words` above the override. */
500
510
  dismissLabel?: (HelixAnnouncement["dismissLabel"]) | undefined;
501
511
  /** How long the announcement stays, in milliseconds, before it sends
502
512
  `helix-dismiss`. When it is not set, it stays until it is dismissed.
@@ -504,6 +514,22 @@ would catch. */
504
514
  Read once when the announcement is first rendered, as `Toast` reads its
505
515
  own. The clock stops while the pointer or focus is on the announcement. */
506
516
  duration?: (HelixAnnouncement["duration"]) | undefined;
517
+ /** The key that moves focus to the announcement's first control, and back
518
+ to where it was, written as keys joined by `+`, such as `F6` or `Alt+A`.
519
+
520
+ F6 by default, the key React Aria's regions answer to. Empty turns it
521
+ off. With several announcements, the first one in the page takes focus. */
522
+ hotkey?: (HelixAnnouncement["hotkey"]) | undefined;
523
+ /** The name of the announcement's region, which screen readers list among
524
+ the page's landmarks. Translate it with the rest of your interface.
525
+
526
+ Empty leaves the announcement no region. */
527
+ label?: (HelixAnnouncement["label"]) | undefined;
528
+ /** Whether the announcement waits its turn behind the queued announcements
529
+ before it in the same parent, showing when the last of them is removed.
530
+
531
+ Off by default, so every announcement on a page shows at once. */
532
+ queued?: (HelixAnnouncement["queued"]) | undefined;
507
533
  /** The band's color.
508
534
 
509
535
  Paint only: unlike `Callout`, no value here draws a mark, changes the label,
@@ -650,8 +676,8 @@ words and is already written. */
650
676
  /** The locale the chart's own numbers are written in: its axis, its
651
677
  percentages and its totals, such as `de` for `1.240` and `32 %`.
652
678
 
653
- Absent uses the runtime's own. The table's cells are shown as the table
654
- writes them, whatever this says. */
679
+ Absent reads the nearest `lang`, then the runtime's own. The table's
680
+ cells are shown as the table writes them, whatever this says. */
655
681
  locale?: (HelixAreaChart["locale"]) | undefined;
656
682
  /** Where a reading the keys moved to stands among the readings, said after
657
683
  it. `{position}` and `{count}` are replaced with the numbers, written in
@@ -706,6 +732,14 @@ the total.
706
732
  Absent stacks the amounts, so the top edge is the total. Set, every reading
707
733
  fills the height and the bands are shares of it. */
708
734
  share?: (HelixAreaChart["share"]) | undefined;
735
+ /** The summary's sentence. `{reading}` is the latest reading's name,
736
+ `{totalLabel}` the name for the sum, `{total}` the sum, written in the
737
+ locale, and `{shares}` each part's share, listed as the locale lists. */
738
+ "summary-label"?: (HelixAreaChart["summaryLabel"]) | undefined;
739
+ /** The summary's sentence. `{reading}` is the latest reading's name,
740
+ `{totalLabel}` the name for the sum, `{total}` the sum, written in the
741
+ locale, and `{shares}` each part's share, listed as the locale lists. */
742
+ summaryLabel?: (HelixAreaChart["summaryLabel"]) | undefined;
709
743
  /** The name for the sum of the parts, shown in the tooltip and the summary. */
710
744
  "total-label"?: (HelixAreaChart["totalLabel"]) | undefined;
711
745
  /** The name for the sum of the parts, shown in the tooltip and the summary. */
@@ -854,14 +888,20 @@ everyone, assigning a matching property rather than an attribute.
854
888
  takes no default**: `max = 0` would stamp `max="0"` onto every host that
855
889
  never asked for a limit, including on the server. */
856
890
  max?: (HelixAvatarGroup["max"]) | undefined;
857
- /** What a screen reader is told the count is, with `{count}` for the number
858
- and `{names}` for the people it stands for, by each avatar's `name`.
891
+ /** What a screen reader is told the count is, with `{count}` for the number,
892
+ written in the locale, and `{names}` for the people it stands for, by each
893
+ avatar's `name`, listed as the locale lists. A language that needs plural
894
+ forms writes them: `{count, plural, one {# osoba więcej: {names}} few
895
+ {# osoby więcej: {names}} other {# osób więcej: {names}}}`.
859
896
 
860
897
  The count shows "+3", which reads as "plus three" and says nothing about
861
898
  what was counted, nor who. */
862
899
  "overflow-label"?: (HelixAvatarGroup["overflowLabel"]) | undefined;
863
- /** What a screen reader is told the count is, with `{count}` for the number
864
- and `{names}` for the people it stands for, by each avatar's `name`.
900
+ /** What a screen reader is told the count is, with `{count}` for the number,
901
+ written in the locale, and `{names}` for the people it stands for, by each
902
+ avatar's `name`, listed as the locale lists. A language that needs plural
903
+ forms writes them: `{count, plural, one {# osoba więcej: {names}} few
904
+ {# osoby więcej: {names}} other {# osób więcej: {names}}}`.
865
905
 
866
906
  The count shows "+3", which reads as "plus three" and says nothing about
867
907
  what was counted, nor who. */
@@ -992,11 +1032,15 @@ shown as it is either way. */
992
1032
 
993
1033
  Required for a dot, which has no text to read. `{count}` is replaced with
994
1034
  what the badge shows, so `label="{count} unread"` reads "8 unread" and
995
- stays current as `value` changes, with no label of yours to keep in step. */
1035
+ stays current as `value` changes, with no label of yours to keep in step.
1036
+ A language with plural forms writes them, `{count, plural, one {{count}
1037
+ nieprzeczytana} few {{count} nieprzeczytane} other {{count}
1038
+ nieprzeczytanych}}`, picked by the count in `locale`. */
996
1039
  label?: (HelixBadge["label"]) | undefined;
997
- /** The locale a count is written in under `format-options`, such as `de`.
1040
+ /** The locale a count is written in under `format-options`, and whose plural
1041
+ rules `label` picks a form by, such as `de`.
998
1042
 
999
- Absent uses the runtime's own. */
1043
+ Absent reads the nearest `lang`, then the runtime's own. */
1000
1044
  locale?: (HelixBadge["locale"]) | undefined;
1001
1045
  /** The largest number the badge shows.
1002
1046
 
@@ -1143,8 +1187,8 @@ words and is already written. */
1143
1187
  /** The locale the chart's own numbers are written in: its axis, its
1144
1188
  percentages and its totals, such as `de` for `1.240` and `32 %`.
1145
1189
 
1146
- Absent uses the runtime's own. The table's cells are shown as the table
1147
- writes them, whatever this says. */
1190
+ Absent reads the nearest `lang`, then the runtime's own. The table's
1191
+ cells are shown as the table writes them, whatever this says. */
1148
1192
  locale?: (HelixBarChart["locale"]) | undefined;
1149
1193
  /** Where a reading the keys moved to stands among the readings, said after
1150
1194
  it. `{position}` and `{count}` are replaced with the numbers, written in
@@ -1181,9 +1225,11 @@ of many thin bars, where the eye has stopped counting.
1181
1225
  Furniture rather than data, so the rules are inside the `aria-hidden` plot
1182
1226
  and reach no reader through the table. */
1183
1227
  gridlines?: (HelixBarChart["gridlines"]) | undefined;
1184
- /** The word the summary puts before each series' highest reading. */
1228
+ /** The name the summary gives each series' highest reading, `{highestLabel}`
1229
+ in `summary-label`. */
1185
1230
  "highest-label"?: (HelixBarChart["highestLabel"]) | undefined;
1186
- /** The word the summary puts before each series' highest reading. */
1231
+ /** The name the summary gives each series' highest reading, `{highestLabel}`
1232
+ in `summary-label`. */
1187
1233
  highestLabel?: (HelixBarChart["highestLabel"]) | undefined;
1188
1234
  /** The names of the series to draw as lines. The other series are drawn as
1189
1235
  columns.
@@ -1261,13 +1307,32 @@ the other. The scale fits the stacks. A series
1261
1307
  in `lines` is still a line, measured on its own reading; columns on the
1262
1308
  second scale stack among themselves. */
1263
1309
  stacked?: (HelixBarChart["stacked"]) | undefined;
1310
+ /** The summary's sentence. `{highestLabel}` is `highest-label`, and
1311
+ `{readings}` each series' highest reading: the series, the category and
1312
+ the reading as the table writes it. */
1313
+ "summary-label"?: (HelixBarChart["summaryLabel"]) | undefined;
1314
+ /** The summary's sentence. `{highestLabel}` is `highest-label`, and
1315
+ `{readings}` each series' highest reading: the series, the category and
1316
+ the reading as the table writes it. */
1317
+ summaryLabel?: (HelixBarChart["summaryLabel"]) | undefined;
1264
1318
  };
1265
1319
 
1266
1320
  export type HelixBarChartVueEvents = {};
1267
1321
 
1268
1322
  export type HelixBlockquoteVueProps = {
1269
- /** The URL of the source the passage came from. */
1323
+ /** Who said it, and where, as words, such as "Maria Lopez, operations
1324
+ manager". The `attribution` slot replaces them, for markup such as a link.
1325
+
1326
+ Words are served with the figure they name, where a server cannot see a
1327
+ slotted attribution. */
1328
+ attribution?: (HelixBlockquote["attribution"]) | undefined;
1329
+ /** The URL of the source the passage came from. Who said it goes in
1330
+ `attribution`: a `cite` with words in it warns once, with the runtime kind
1331
+ `cite-not-url`. */
1270
1332
  cite?: (HelixBlockquote["cite"]) | undefined;
1333
+ /** Whether to draw an opening quotation mark before the passage, in the
1334
+ element's language. Leave the marks out of the text. */
1335
+ marks?: (HelixBlockquote["marks"]) | undefined;
1271
1336
  };
1272
1337
 
1273
1338
  export type HelixBlockquoteVueEvents = {};
@@ -1316,10 +1381,14 @@ with a control in its `end` slot, such as a switcher's menu trigger.
1316
1381
  The other crumbs look the same under either value. */
1317
1382
  separation?: (HelixBreadcrumbs["separation"]) | undefined;
1318
1383
  /** The name of the button that shows a folded trail's hidden crumbs. `{count}`
1319
- is replaced by how many it shows. Translate it with the page. */
1384
+ is how many it shows, written in the locale, and a language with plural
1385
+ forms writes them: `{count, plural, one {# weiteren zeigen} other {#
1386
+ weitere zeigen}}`. */
1320
1387
  "expand-label"?: (HelixBreadcrumbs["expandLabel"]) | undefined;
1321
1388
  /** The name of the button that shows a folded trail's hidden crumbs. `{count}`
1322
- is replaced by how many it shows. Translate it with the page. */
1389
+ is how many it shows, written in the locale, and a language with plural
1390
+ forms writes them: `{count, plural, one {# weiteren zeigen} other {#
1391
+ weitere zeigen}}`. */
1323
1392
  expandLabel?: (HelixBreadcrumbs["expandLabel"]) | undefined;
1324
1393
  /** The landmark's name, read by screen readers. An `aria-label` on the host
1325
1394
  wins over it. */
@@ -1342,7 +1411,20 @@ attribute would put the whole path into the markup twice. */
1342
1411
 
1343
1412
  export type HelixBreadcrumbsVueEvents = {};
1344
1413
 
1414
+ /** `HelixButtonGroup` component event */
1415
+ export type HelixButtonGroupElementEvent<E = Event> = TypedEvent<
1416
+ HelixButtonGroup,
1417
+ E
1418
+ >;
1419
+ /** `helix-before-change` event type */
1420
+ export type HelixButtonGroupHelixBeforeChangeElementEvent =
1421
+ HelixButtonGroupElementEvent<HelixBeforeChangeEvent>;
1422
+
1345
1423
  export type HelixButtonGroupVueProps = {
1424
+ /** The size of every button in the group: their height, text, padding and
1425
+ icons, from the density steps. Unset, the buttons take the size of the
1426
+ region around the group. */
1427
+ size?: (HelixButtonGroup["size"]) | undefined;
1346
1428
  /** Whether the buttons are one bar or a spaced row.
1347
1429
 
1348
1430
  Joined by default: one control made of parts, sharing borders, reading as a
@@ -1376,9 +1458,32 @@ buttons sharing edges as one shape, and a wrapped row carries the corners of
1376
1458
  a first row into a second. Stacked, the same three keep one shape and one
1377
1459
  column. */
1378
1460
  orientation?: (HelixButtonGroup["orientation"]) | undefined;
1461
+ /** Whether the buttons stay pressed: `single` keeps one pressed at a time and
1462
+ `multiple` any number. Unset, they are action buttons, each its own tab
1463
+ stop, as before.
1464
+
1465
+ Optional, so the attribute is absent until a consumer writes it. */
1466
+ "selection-mode"?: (HelixButtonGroup["selectionMode"]) | undefined;
1467
+ /** Whether the buttons stay pressed: `single` keeps one pressed at a time and
1468
+ `multiple` any number. Unset, they are action buttons, each its own tab
1469
+ stop, as before.
1470
+
1471
+ Optional, so the attribute is absent until a consumer writes it. */
1472
+ selectionMode?: (HelixButtonGroup["selectionMode"]) | undefined;
1473
+ /** The values of the pressed buttons, comma separated, in a selection mode.
1474
+ A button's own `value` names it, so a value holds no comma.
1475
+
1476
+ The attribute is the seed, and a press changes the property, which does
1477
+ not reflect, as a native control's `value` does not. */
1478
+ value?: (HelixButtonGroup["value"]) | undefined;
1379
1479
  };
1380
1480
 
1381
- export type HelixButtonGroupVueEvents = {};
1481
+ export type HelixButtonGroupVueEvents = {
1482
+ /** Fired after a press changes `value`, in a selection mode. */
1483
+ change: HelixButtonGroupElementEvent;
1484
+ /** Fired before a press changes `value`, with the value it would leave in `detail.value`. Cancelable: call `preventDefault()` to keep the buttons as they are. */
1485
+ "helix-before-change": HelixButtonGroupHelixBeforeChangeElementEvent;
1486
+ };
1382
1487
 
1383
1488
  /** `HelixButton` component event */
1384
1489
  export type HelixButtonElementEvent<E = Event> = TypedEvent<HelixButton, E>;
@@ -1495,7 +1600,11 @@ not text.
1495
1600
 
1496
1601
  Lives here rather than only on `IconButton` so the two share one render.
1497
1602
  An icon-only button without it is a control a screen reader announces as
1498
- "button" and nothing else. */
1603
+ "button" and nothing else.
1604
+
1605
+ Undefaulted, so a subclass's own default, such as Copy Button's `Copy`, is
1606
+ the first value its element receives and so the English its words fall
1607
+ back to. */
1499
1608
  label?: (HelixButton["label"]) | undefined;
1500
1609
  /** Whether the action the button started is still running.
1501
1610
 
@@ -1637,14 +1746,22 @@ choices. */
1637
1746
  `attribute` is spelled out because Lit lowercases a property name to
1638
1747
  derive one rather than dash-casing it, so this would otherwise be
1639
1748
  reachable only as `dismisslabel`, which nobody would guess and no linter
1640
- would catch. */
1749
+ would catch.
1750
+
1751
+ A word property: register it for a locale under the host's key. A family
1752
+ that names the control otherwise, such as Tag's `Remove {label}`,
1753
+ declares its own English with `@words` above the override. */
1641
1754
  "dismiss-label"?: (HelixCallout["dismissLabel"]) | undefined;
1642
1755
  /** The dismiss control's label, read by screen readers.
1643
1756
 
1644
1757
  `attribute` is spelled out because Lit lowercases a property name to
1645
1758
  derive one rather than dash-casing it, so this would otherwise be
1646
1759
  reachable only as `dismisslabel`, which nobody would guess and no linter
1647
- would catch. */
1760
+ would catch.
1761
+
1762
+ A word property: register it for a locale under the host's key. A family
1763
+ that names the control otherwise, such as Tag's `Remove {label}`,
1764
+ declares its own English with `@words` above the override. */
1648
1765
  dismissLabel?: (HelixCallout["dismissLabel"]) | undefined;
1649
1766
  /** What kind of attention the passage needs.
1650
1767
 
@@ -1655,14 +1772,28 @@ is the whole of the registry, which is why there is no `severity` beside it. */
1655
1772
  tone?: (HelixCallout["tone"]) | undefined;
1656
1773
  /** What a screen reader is told the tone is, such as "Fehler".
1657
1774
 
1658
- Absent is the English for the tone: "Error", "Information", "Note",
1659
- "Success" or "Warning". */
1775
+ Absent is the tone's words in `tone-labels`, "Error", "Information",
1776
+ "Note", "Success" or "Warning" in English. */
1660
1777
  "tone-label"?: (HelixCallout["toneLabel"]) | undefined;
1661
1778
  /** What a screen reader is told the tone is, such as "Fehler".
1662
1779
 
1663
- Absent is the English for the tone: "Error", "Information", "Note",
1664
- "Success" or "Warning". */
1780
+ Absent is the tone's words in `tone-labels`, "Error", "Information",
1781
+ "Note", "Success" or "Warning" in English. */
1665
1782
  toneLabel?: (HelixCallout["toneLabel"]) | undefined;
1783
+ /** What a screen reader is told each tone is, by the tone's name, written as
1784
+ JSON in the attribute: `tone-labels='{"danger":"Fehler"}'`. A tone left
1785
+ out keeps its English, and `tone-label` wins over both.
1786
+
1787
+ `danger` is said as "Error", the word a reader understands, and
1788
+ `neutral` as "Note", for what the passage is. */
1789
+ "tone-labels"?: (HelixCallout["toneLabels"]) | undefined;
1790
+ /** What a screen reader is told each tone is, by the tone's name, written as
1791
+ JSON in the attribute: `tone-labels='{"danger":"Fehler"}'`. A tone left
1792
+ out keeps its English, and `tone-label` wins over both.
1793
+
1794
+ `danger` is said as "Error", the word a reader understands, and
1795
+ `neutral` as "Note", for what the passage is. */
1796
+ toneLabels?: (HelixCallout["toneLabels"]) | undefined;
1666
1797
  };
1667
1798
 
1668
1799
  export type HelixCalloutVueEvents = {
@@ -1890,12 +2021,6 @@ Absent is no ruling, a resting value being an attribute's absence. */
1890
2021
  Framed is where it rests. Plain is for a board that fills a panel or an
1891
2022
  app's working area, where the container is already the frame. */
1892
2023
  separation?: (HelixCanvas["separation"]) | undefined;
1893
- /** The hint shown when a surface waiting to be pressed is scrolled or
1894
- swiped over, with `gestures="activate"`. Absent is the family's own. */
1895
- "activate-hint-label"?: (HelixCanvas["activateHintLabel"]) | undefined;
1896
- /** The hint shown when a surface waiting to be pressed is scrolled or
1897
- swiped over, with `gestures="activate"`. Absent is the family's own. */
1898
- activateHintLabel?: (HelixCanvas["activateHintLabel"]) | undefined;
1899
2024
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
1900
2025
  `none`. A family can add words of its own.
1901
2026
 
@@ -1918,20 +2043,6 @@ of the frame. The
1918
2043
  stylesheet lays the cluster out by which buttons are in it rather than by
1919
2044
  this attribute, so the two defaults need no rule each. */
1920
2045
  controls?: (HelixCanvas["controls"]) | undefined;
1921
- /** The name of the group of controls, read by screen readers.
1922
-
1923
- Absent is the family's own name for it, "Map controls" or "Board
1924
- controls", which names what the controls drive rather than the
1925
- mechanism. Written here to say it in another language, which every other
1926
- string this surface speaks already allowed and this one did not. */
1927
- "controls-label"?: (HelixCanvas["controlsLabel"]) | undefined;
1928
- /** The name of the group of controls, read by screen readers.
1929
-
1930
- Absent is the family's own name for it, "Map controls" or "Board
1931
- controls", which names what the controls drive rather than the
1932
- mechanism. Written here to say it in another language, which every other
1933
- string this surface speaks already allowed and this one did not. */
1934
- controlsLabel?: (HelixCanvas["controlsLabel"]) | undefined;
1935
2046
  /** Which corner the controls sit in.
1936
2047
 
1937
2048
  **Configurable because there is no safe default**, which is a collision
@@ -2034,26 +2145,6 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
2034
2145
  "pan-up-label"?: (HelixCanvas["panUpLabel"]) | undefined;
2035
2146
  /** The pan up button's label. */
2036
2147
  panUpLabel?: (HelixCanvas["panUpLabel"]) | undefined;
2037
- /** The hint shown when one finger swipes over a surface with
2038
- `gestures="cooperative"`. Absent is the family's own. */
2039
- "two-finger-hint-label"?: (HelixCanvas["twoFingerHintLabel"]) | undefined;
2040
- /** The hint shown when one finger swipes over a surface with
2041
- `gestures="cooperative"`. Absent is the family's own. */
2042
- twoFingerHintLabel?: (HelixCanvas["twoFingerHintLabel"]) | undefined;
2043
- /** The line shown while a surface with `gestures="activate"` has the
2044
- gestures. Absent is the family's own. */
2045
- "using-label"?: (HelixCanvas["usingLabel"]) | undefined;
2046
- /** The line shown while a surface with `gestures="activate"` has the
2047
- gestures. Absent is the family's own. */
2048
- usingLabel?: (HelixCanvas["usingLabel"]) | undefined;
2049
- /** The hint shown when the wheel scrolls past a surface with
2050
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
2051
- elsewhere. Absent is the family's own. */
2052
- "wheel-hint-label"?: (HelixCanvas["wheelHintLabel"]) | undefined;
2053
- /** The hint shown when the wheel scrolls past a surface with
2054
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
2055
- elsewhere. Absent is the family's own. */
2056
- wheelHintLabel?: (HelixCanvas["wheelHintLabel"]) | undefined;
2057
2148
  /** The zoom in button's label. */
2058
2149
  "zoom-in-label"?: (HelixCanvas["zoomInLabel"]) | undefined;
2059
2150
  /** The zoom in button's label. */
@@ -2062,6 +2153,12 @@ elsewhere. Absent is the family's own. */
2062
2153
  "zoom-out-label"?: (HelixCanvas["zoomOutLabel"]) | undefined;
2063
2154
  /** The zoom out button's label. */
2064
2155
  zoomOutLabel?: (HelixCanvas["zoomOutLabel"]) | undefined;
2156
+ /** The hint shown when the board, waiting to be pressed with
2157
+ `gestures="activate"`, is scrolled or swiped over. */
2158
+ "activate-hint-label"?: (HelixCanvas["activateHintLabel"]) | undefined;
2159
+ /** The hint shown when the board, waiting to be pressed with
2160
+ `gestures="activate"`, is scrolled or swiped over. */
2161
+ activateHintLabel?: (HelixCanvas["activateHintLabel"]) | undefined;
2065
2162
  /** The text read with a card to say where its connections come from, with `{cards}`. */
2066
2163
  "comes-from-label"?: (HelixCanvas["comesFromLabel"]) | undefined;
2067
2164
  /** The text read with a card to say where its connections come from, with `{cards}`. */
@@ -2092,6 +2189,16 @@ this, so a reader hears the ends first and what the line says after. */
2092
2189
  Its own label, where it has one, is its description rather than part of
2093
2190
  this, so a reader hears the ends first and what the line says after. */
2094
2191
  connectionLabel?: (HelixCanvas["connectionLabel"]) | undefined;
2192
+ /** The name of the group of controls, read by screen readers, which names
2193
+ what the controls drive rather than the mechanism. */
2194
+ "controls-label"?: (HelixCanvas["controlsLabel"]) | undefined;
2195
+ /** The name of the group of controls, read by screen readers, which names
2196
+ what the controls drive rather than the mechanism. */
2197
+ controlsLabel?: (HelixCanvas["controlsLabel"]) | undefined;
2198
+ /** The board's name where `label` is empty. */
2199
+ "fallback-label"?: (HelixCanvas["fallbackLabel"]) | undefined;
2200
+ /** The board's name where `label` is empty. */
2201
+ fallbackLabel?: (HelixCanvas["fallbackLabel"]) | undefined;
2095
2202
  /** The accessible name for the board. Required.
2096
2203
 
2097
2204
  A document has no name of its own in the format, and "Canvas" names the
@@ -2115,6 +2222,26 @@ as the list.
2115
2222
  The list is joined the way the page's language joins one, "Second and
2116
2223
  Third", rather than with a comma this component chose. */
2117
2224
  leadsToLabel?: (HelixCanvas["leadsToLabel"]) | undefined;
2225
+ /** The text read with a card that has connections both ways. `{leadsTo}` is
2226
+ `leads-to-label` and `{comesFrom}` is `comes-from-label`, each filled in. */
2227
+ "linked-label"?: (HelixCanvas["linkedLabel"]) | undefined;
2228
+ /** The text read with a card that has connections both ways. `{leadsTo}` is
2229
+ `leads-to-label` and `{comesFrom}` is `comes-from-label`, each filled in. */
2230
+ linkedLabel?: (HelixCanvas["linkedLabel"]) | undefined;
2231
+ /** What screen readers hear after a key moves a card, with `{name}` for the
2232
+ card and `{x}` and `{y}` for where it now is, in the document's units.
2233
+
2234
+ **A move a reader cannot see has to be said.** Shift with an arrow moved
2235
+ the card and said nothing, so a reader moving one by keys could not tell
2236
+ whether it had moved, or how far. */
2237
+ "moved-label"?: (HelixCanvas["movedLabel"]) | undefined;
2238
+ /** What screen readers hear after a key moves a card, with `{name}` for the
2239
+ card and `{x}` and `{y}` for where it now is, in the document's units.
2240
+
2241
+ **A move a reader cannot see has to be said.** Shift with an arrow moved
2242
+ the card and said nothing, so a reader moving one by keys could not tell
2243
+ whether it had moved, or how far. */
2244
+ movedLabel?: (HelixCanvas["movedLabel"]) | undefined;
2118
2245
  /** The order the arrow keys and screen readers move through the cards:
2119
2246
  `spatial` or `edges`.
2120
2247
 
@@ -2155,6 +2282,14 @@ walk the cards. */
2155
2282
  /** The text announced when a connection's end is picked up, with `{from}` and
2156
2283
  `{to}`. */
2157
2284
  reconnectingLabel?: (HelixCanvas["reconnectingLabel"]) | undefined;
2285
+ /** What screen readers hear after a key resizes a card, with `{name}` for the
2286
+ card and `{width}` and `{height}` for its new size, in the document's
2287
+ units. */
2288
+ "resized-label"?: (HelixCanvas["resizedLabel"]) | undefined;
2289
+ /** What screen readers hear after a key resizes a card, with `{name}` for the
2290
+ card and `{width}` and `{height}` for its new size, in the document's
2291
+ units. */
2292
+ resizedLabel?: (HelixCanvas["resizedLabel"]) | undefined;
2158
2293
  /** The names of the selected cards and connections, comma separated. Empty
2159
2294
  when nothing is selected.
2160
2295
 
@@ -2175,6 +2310,45 @@ on its board across cards and connections both, and may not hold a comma.
2175
2310
 
2176
2311
  Written to select from outside, and read to act on the selection. */
2177
2312
  selected?: (HelixCanvas["selected"]) | undefined;
2313
+ /** What a selected card or connection adds to what screen readers hear on
2314
+ it, before its tone and its connections. Empty adds nothing.
2315
+
2316
+ A card is an article and a connection a button, and neither has a selected
2317
+ state for `aria-selected` to carry, so the state is said in words. */
2318
+ "selected-label"?: (HelixCanvas["selectedLabel"]) | undefined;
2319
+ /** What a selected card or connection adds to what screen readers hear on
2320
+ it, before its tone and its connections. Empty adds nothing.
2321
+
2322
+ A card is an article and a connection a button, and neither has a selected
2323
+ state for `aria-selected` to carry, so the state is said in words. */
2324
+ selectedLabel?: (HelixCanvas["selectedLabel"]) | undefined;
2325
+ /** What screen readers hear after the selection grows or shrinks, with
2326
+ `{count}` for how many cards and connections are selected, written in the
2327
+ locale, where a language that needs plural forms writes them: by Space, a
2328
+ click with Shift, Command or Control, Command or Control with A, a box
2329
+ drawn across the board, or Escape.
2330
+
2331
+ A selection of one made by arriving on a card or clicking it is not said,
2332
+ since the card is. */
2333
+ "selection-label"?: (HelixCanvas["selectionLabel"]) | undefined;
2334
+ /** What screen readers hear after the selection grows or shrinks, with
2335
+ `{count}` for how many cards and connections are selected, written in the
2336
+ locale, where a language that needs plural forms writes them: by Space, a
2337
+ click with Shift, Command or Control, Command or Control with A, a box
2338
+ drawn across the board, or Escape.
2339
+
2340
+ A selection of one made by arriving on a card or clicking it is not said,
2341
+ since the card is. */
2342
+ selectionLabel?: (HelixCanvas["selectionLabel"]) | undefined;
2343
+ /** Snaps the cards a reader moves or resizes to a multiple of this many of the
2344
+ document's units, such as `32` to land on the lines `grid` draws.
2345
+
2346
+ **A drag lets go on the nearest line and a key goes to the next one.**
2347
+ Shift with an arrow moves a card to the next line that way, rather than
2348
+ by its step of 16, and Alt with an arrow moves its bottom right corner
2349
+ the same way. A group moves with what it carries, so a card inside one
2350
+ keeps its place in it. Absent, cards land where they are let go. */
2351
+ snap?: (HelixCanvas["snap"]) | undefined;
2178
2352
  /** The text announced when a connection is stopped before it is requested. */
2179
2353
  "stopped-label"?: (HelixCanvas["stoppedLabel"]) | undefined;
2180
2354
  /** The text announced when a connection is stopped before it is requested. */
@@ -2197,6 +2371,26 @@ red is "blocked" on one board and "urgent" on the next. A reader who can
2197
2371
  see the board is told by the color; this is how a reader who cannot is
2198
2372
  told the same. A tone left out is not read. */
2199
2373
  toneLabels?: (HelixCanvas["toneLabels"]) | undefined;
2374
+ /** The hint shown when one finger swipes over the board with `gestures="cooperative"`. */
2375
+ "two-finger-hint-label"?: (HelixCanvas["twoFingerHintLabel"]) | undefined;
2376
+ /** The hint shown when one finger swipes over the board with `gestures="cooperative"`. */
2377
+ twoFingerHintLabel?: (HelixCanvas["twoFingerHintLabel"]) | undefined;
2378
+ /** The line shown while the board, with `gestures="activate"`, has the gestures. */
2379
+ "using-label"?: (HelixCanvas["usingLabel"]) | undefined;
2380
+ /** The line shown while the board, with `gestures="activate"`, has the gestures. */
2381
+ usingLabel?: (HelixCanvas["usingLabel"]) | undefined;
2382
+ /** The hint shown when the wheel scrolls past the board with
2383
+ `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere. */
2384
+ "wheel-hint-label"?: (HelixCanvas["wheelHintLabel"]) | undefined;
2385
+ /** The hint shown when the wheel scrolls past the board with
2386
+ `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere. */
2387
+ wheelHintLabel?: (HelixCanvas["wheelHintLabel"]) | undefined;
2388
+ /** What screen readers hear after a zoom button or key, with `{zoom}` for the
2389
+ zoom as a percentage, written the way the element's locale writes one. */
2390
+ "zoomed-label"?: (HelixCanvas["zoomedLabel"]) | undefined;
2391
+ /** What screen readers hear after a zoom button or key, with `{zoom}` for the
2392
+ zoom as a percentage, written the way the element's locale writes one. */
2393
+ zoomedLabel?: (HelixCanvas["zoomedLabel"]) | undefined;
2200
2394
  /** The board's current view: the document's point at the middle of the view,
2201
2395
  and the zoom.
2202
2396
 
@@ -2933,9 +3127,8 @@ nothing for `them`. */
2933
3127
  "failed-label"?: (HelixChatMessage["failedLabel"]) | undefined;
2934
3128
  /** Label for a message that did not send. */
2935
3129
  failedLabel?: (HelixChatMessage["failedLabel"]) | undefined;
2936
- /** Locale for the timestamp.
2937
-
2938
- Empty is the runtime's own. */
3130
+ /** The locale the timestamp and the words are in, as a BCP 47 tag such as
3131
+ `de`. Empty reads the nearest `lang`, then the browser's language. */
2939
3132
  locale?: (HelixChatMessage["locale"]) | undefined;
2940
3133
  /** Label for the retry button on a failed message. */
2941
3134
  "retry-label"?: (HelixChatMessage["retryLabel"]) | undefined;
@@ -3023,6 +3216,24 @@ set.
3023
3216
  attribute could not say that: it is true by being there, whatever it holds,
3024
3217
  so a default of true had no attribute that turned it off. */
3025
3218
  defaultPinned?: (HelixChat["defaultPinned"]) | undefined;
3219
+ /** What a turn from `turns` that did not send says, and what a screen reader
3220
+ hears before its words. A turn you write as a child says its own
3221
+ `failed-label`. */
3222
+ "failed-label"?: (HelixChat["failedLabel"]) | undefined;
3223
+ /** What a turn from `turns` that did not send says, and what a screen reader
3224
+ hears before its words. A turn you write as a child says its own
3225
+ `failed-label`. */
3226
+ failedLabel?: (HelixChat["failedLabel"]) | undefined;
3227
+ /** What a screen reader hears for a turn that did not send. `{failed}` is the
3228
+ turn's `failed-label` and `{text}` is its words. */
3229
+ "failed-turn-label"?: (HelixChat["failedTurnLabel"]) | undefined;
3230
+ /** What a screen reader hears for a turn that did not send. `{failed}` is the
3231
+ turn's `failed-label` and `{text}` is its words. */
3232
+ failedTurnLabel?: (HelixChat["failedTurnLabel"]) | undefined;
3233
+ /** The conversation's name, read by screen readers, where `label` is empty. */
3234
+ "fallback-label"?: (HelixChat["fallbackLabel"]) | undefined;
3235
+ /** The conversation's name, read by screen readers, where `label` is empty. */
3236
+ fallbackLabel?: (HelixChat["fallbackLabel"]) | undefined;
3026
3237
  /** Whether there are older turns to load, and whether they are loading.
3027
3238
 
3028
3239
  `more` makes reaching the top fire `helix-history`, once per arrival;
@@ -3139,18 +3350,22 @@ browser's message. */
3139
3350
  required?: (HelixCheckboxGroup["required"]) | undefined;
3140
3351
  /** The message shown when the field is required and empty.
3141
3352
 
3142
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3143
- set and the browser's own on a text field, which the browser writes in
3144
- the reader's language. Every other word a control speaks is a property,
3353
+ **Absent, or empty, is the control's own sentence**, "Choose one to
3354
+ continue." on a set and the browser's own on a text field, which the
3355
+ browser writes in the reader's language. A family with a sentence of its
3356
+ own declares it as this property's English, a word property a page
3357
+ registers for its locale under the family's key. Every other word a control speaks is a property,
3145
3358
  and this one was the English a form in another language still spoke in
3146
3359
  the bubble it raises on submit: `feedback` replaces the message under
3147
3360
  the field and does not reach that one. */
3148
3361
  "value-missing-message"?: (HelixCheckboxGroup["valueMissingMessage"]) | undefined;
3149
3362
  /** The message shown when the field is required and empty.
3150
3363
 
3151
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3152
- set and the browser's own on a text field, which the browser writes in
3153
- the reader's language. Every other word a control speaks is a property,
3364
+ **Absent, or empty, is the control's own sentence**, "Choose one to
3365
+ continue." on a set and the browser's own on a text field, which the
3366
+ browser writes in the reader's language. A family with a sentence of its
3367
+ own declares it as this property's English, a word property a page
3368
+ registers for its locale under the family's key. Every other word a control speaks is a property,
3154
3369
  and this one was the English a form in another language still spoke in
3155
3370
  the bubble it raises on submit: `feedback` replaces the message under
3156
3371
  the field and does not reach that one. */
@@ -3297,18 +3512,22 @@ browser's message. */
3297
3512
  required?: (HelixCheckbox["required"]) | undefined;
3298
3513
  /** The message shown when the field is required and empty.
3299
3514
 
3300
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3301
- set and the browser's own on a text field, which the browser writes in
3302
- the reader's language. Every other word a control speaks is a property,
3515
+ **Absent, or empty, is the control's own sentence**, "Choose one to
3516
+ continue." on a set and the browser's own on a text field, which the
3517
+ browser writes in the reader's language. A family with a sentence of its
3518
+ own declares it as this property's English, a word property a page
3519
+ registers for its locale under the family's key. Every other word a control speaks is a property,
3303
3520
  and this one was the English a form in another language still spoke in
3304
3521
  the bubble it raises on submit: `feedback` replaces the message under
3305
3522
  the field and does not reach that one. */
3306
3523
  "value-missing-message"?: (HelixCheckbox["valueMissingMessage"]) | undefined;
3307
3524
  /** The message shown when the field is required and empty.
3308
3525
 
3309
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3310
- set and the browser's own on a text field, which the browser writes in
3311
- the reader's language. Every other word a control speaks is a property,
3526
+ **Absent, or empty, is the control's own sentence**, "Choose one to
3527
+ continue." on a set and the browser's own on a text field, which the
3528
+ browser writes in the reader's language. A family with a sentence of its
3529
+ own declares it as this property's English, a word property a page
3530
+ registers for its locale under the family's key. Every other word a control speaks is a property,
3312
3531
  and this one was the English a form in another language still spoke in
3313
3532
  the bubble it raises on submit: `feedback` replaces the message under
3314
3533
  the field and does not reach that one. */
@@ -3379,15 +3598,21 @@ unwrapped, since a wrapped line would take one number and several rows. */
3379
3598
  /** The copy button's name and tooltip text before a copy.
3380
3599
 
3381
3600
  Where the block has a name, the button says it too, such as "Copy code,
3382
- app.ts", so each copy button on a page with several blocks is told apart.
3383
- In a diff, that is each file's own name. */
3601
+ app.ts", as `copy-name-label` puts it, so each copy button on a page with
3602
+ several blocks is told apart. In a diff, that is each file's own name. */
3384
3603
  "copy-label"?: (HelixCodeBlock["copyLabel"]) | undefined;
3385
3604
  /** The copy button's name and tooltip text before a copy.
3386
3605
 
3387
3606
  Where the block has a name, the button says it too, such as "Copy code,
3388
- app.ts", so each copy button on a page with several blocks is told apart.
3389
- In a diff, that is each file's own name. */
3607
+ app.ts", as `copy-name-label` puts it, so each copy button on a page with
3608
+ several blocks is told apart. In a diff, that is each file's own name. */
3390
3609
  copyLabel?: (HelixCodeBlock["copyLabel"]) | undefined;
3610
+ /** The copy button's name and tooltip text before a copy, where the block
3611
+ has a name. `{copy}` is `copy-label` and `{name}` the block's name. */
3612
+ "copy-name-label"?: (HelixCodeBlock["copyNameLabel"]) | undefined;
3613
+ /** The copy button's name and tooltip text before a copy, where the block
3614
+ has a name. `{copy}` is `copy-label` and `{name}` the block's name. */
3615
+ copyNameLabel?: (HelixCodeBlock["copyNameLabel"]) | undefined;
3391
3616
  /** Whether the content is a unified diff, drawn as the lines it changed.
3392
3617
 
3393
3618
  Reflected, because the stylesheet paints a diff differently from code, and
@@ -3404,16 +3629,18 @@ block lays out. Not for a diff, whose files each scroll on their own. */
3404
3629
  "expand-label"?: (HelixCodeBlock["expandLabel"]) | undefined;
3405
3630
  /** The expand button's words while the cap hides lines. */
3406
3631
  expandLabel?: (HelixCodeBlock["expandLabel"]) | undefined;
3407
- /** The block's name, usually a file name or a language.
3632
+ /** The block's name, usually a file name, drawn in the header.
3408
3633
 
3409
- In a diff, each file is named from the patch, and this names a patch that
3410
- carries no name of its own. */
3634
+ Absent, the block is named by `language` where there is one. In a diff,
3635
+ each file is named from the patch, and this names a patch that carries no
3636
+ name of its own. */
3411
3637
  label?: (HelixCodeBlock["label"]) | undefined;
3412
3638
  /** The language the code is written in, such as `ts` or `css`, handed to
3413
3639
  `highlight` as its second argument.
3414
3640
 
3415
- Absent hands it an empty string. It draws nothing of its own: the block's
3416
- name is `label`. */
3641
+ A block with no `label` is named by it, in the header and on the copy
3642
+ button, as a docs site names a snippet by its language. Absent hands
3643
+ `highlight` an empty string and names nothing. */
3417
3644
  language?: (HelixCodeBlock["language"]) | undefined;
3418
3645
  /** Whether the lines are numbered in a gutter beside the code.
3419
3646
 
@@ -3586,18 +3813,22 @@ browser's message. */
3586
3813
  required?: (HelixColorInput["required"]) | undefined;
3587
3814
  /** The message shown when the field is required and empty.
3588
3815
 
3589
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3590
- set and the browser's own on a text field, which the browser writes in
3591
- the reader's language. Every other word a control speaks is a property,
3816
+ **Absent, or empty, is the control's own sentence**, "Choose one to
3817
+ continue." on a set and the browser's own on a text field, which the
3818
+ browser writes in the reader's language. A family with a sentence of its
3819
+ own declares it as this property's English, a word property a page
3820
+ registers for its locale under the family's key. Every other word a control speaks is a property,
3592
3821
  and this one was the English a form in another language still spoke in
3593
3822
  the bubble it raises on submit: `feedback` replaces the message under
3594
3823
  the field and does not reach that one. */
3595
3824
  "value-missing-message"?: (HelixColorInput["valueMissingMessage"]) | undefined;
3596
3825
  /** The message shown when the field is required and empty.
3597
3826
 
3598
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
3599
- set and the browser's own on a text field, which the browser writes in
3600
- the reader's language. Every other word a control speaks is a property,
3827
+ **Absent, or empty, is the control's own sentence**, "Choose one to
3828
+ continue." on a set and the browser's own on a text field, which the
3829
+ browser writes in the reader's language. A family with a sentence of its
3830
+ own declares it as this property's English, a word property a page
3831
+ registers for its locale under the family's key. Every other word a control speaks is a property,
3601
3832
  and this one was the English a form in another language still spoke in
3602
3833
  the bubble it raises on submit: `feedback` replaces the message under
3603
3834
  the field and does not reach that one. */
@@ -3659,6 +3890,14 @@ Date Input and Time Input. */
3659
3890
  readOnly?: (HelixColorInput["readOnly"]) | undefined;
3660
3891
  /** Colors offered under the picker, as a comma-separated list. */
3661
3892
  swatches?: (HelixColorInput["swatches"]) | undefined;
3893
+ /** What the swatch says in `variant="swatch"`, after the field's label, once
3894
+ there is a color. `{name}` is the color's name, such as "vibrant red", and
3895
+ `{value}` the value as written. */
3896
+ "swatch-label"?: (HelixColorInput["swatchLabel"]) | undefined;
3897
+ /** What the swatch says in `variant="swatch"`, after the field's label, once
3898
+ there is a color. `{name}` is the color's name, such as "vibrant red", and
3899
+ `{value}` the value as written. */
3900
+ swatchLabel?: (HelixColorInput["swatchLabel"]) | undefined;
3662
3901
  /** Accessible name for the control that opens the panel. */
3663
3902
  "trigger-label"?: (HelixColorInput["triggerLabel"]) | undefined;
3664
3903
  /** Accessible name for the control that opens the panel. */
@@ -4008,6 +4247,22 @@ into. */
4008
4247
  "saturation-label"?: (HelixColorPicker["saturationLabel"]) | undefined;
4009
4248
  /** What the square's horizontal ramp is called. */
4010
4249
  saturationLabel?: (HelixColorPicker["saturationLabel"]) | undefined;
4250
+ /** What a screen reader hears for the square's place, the color's two
4251
+ numbers and its name, on whichever of its two inputs it is on.
4252
+ `{first}` is `saturation` or `brightness`, the input's own channel, which
4253
+ is said first, so each order is its whole sentence. `{saturation}` and
4254
+ `{brightness}` are shares from 0 to 1, written as percentages with
4255
+ `number, percent`, `{saturationLabel}` and `{brightnessLabel}` the
4256
+ channels' names, and `{name}` the color's, such as "vibrant red". */
4257
+ "square-text"?: (HelixColorPicker["squareText"]) | undefined;
4258
+ /** What a screen reader hears for the square's place, the color's two
4259
+ numbers and its name, on whichever of its two inputs it is on.
4260
+ `{first}` is `saturation` or `brightness`, the input's own channel, which
4261
+ is said first, so each order is its whole sentence. `{saturation}` and
4262
+ `{brightness}` are shares from 0 to 1, written as percentages with
4263
+ `number, percent`, `{saturationLabel}` and `{brightnessLabel}` the
4264
+ channels' names, and `{name}` the color's, such as "vibrant red". */
4265
+ squareText?: (HelixColorPicker["squareText"]) | undefined;
4011
4266
  /** Colors offered under the picker, as a comma-separated list. */
4012
4267
  swatches?: (HelixColorPicker["swatches"]) | undefined;
4013
4268
  /** What the group holding the eyedropper and the syntax toggle is called. */
@@ -4022,13 +4277,15 @@ into. */
4022
4277
 
4023
4278
  **Every sentence a control raises in the browser's bubble is a property**,
4024
4279
  named for the validity flag it reports, so a form in another language
4025
- speaks it. Absent is the control's own sentence, in English. */
4280
+ speaks it. Unset is the sentence registered for the page's language, then
4281
+ the English. */
4026
4282
  "value-missing-message"?: (HelixColorPicker["valueMissingMessage"]) | undefined;
4027
4283
  /** The message shown when a color is required and none is chosen.
4028
4284
 
4029
4285
  **Every sentence a control raises in the browser's bubble is a property**,
4030
4286
  named for the validity flag it reports, so a form in another language
4031
- speaks it. Absent is the control's own sentence, in English. */
4287
+ speaks it. Unset is the sentence registered for the page's language, then
4288
+ the English. */
4032
4289
  valueMissingMessage?: (HelixColorPicker["valueMissingMessage"]) | undefined;
4033
4290
  /** Draws the hue as a wheel around the square, in place of the hue ramp, as
4034
4291
  React Aria's ColorWheel sits round its ColorArea.
@@ -4139,6 +4396,12 @@ as `+3`, does not say what it does. */
4139
4396
  "max-tags"?: (HelixCombobox["maxTags"] | `${number}`) | undefined;
4140
4397
  /** How many tokens to show before the rest become a count. */
4141
4398
  maxTags?: (HelixCombobox["maxTags"]) | undefined;
4399
+ /** The count of the tokens past `max-tags`, as it is shown, with `{count}`
4400
+ for the number, written in the element's locale. */
4401
+ "rest-text"?: (HelixCombobox["restText"]) | undefined;
4402
+ /** The count of the tokens past `max-tags`, as it is shown, with `{count}`
4403
+ for the number, written in the element's locale. */
4404
+ restText?: (HelixCombobox["restText"]) | undefined;
4142
4405
  /** The value the control starts with. A form reset returns it to this value,
4143
4406
  and to the `value` attribute where this one is not written, as a native
4144
4407
  control resets to the `value` it declares. */
@@ -4168,18 +4431,22 @@ browser's message. */
4168
4431
  required?: (HelixCombobox["required"]) | undefined;
4169
4432
  /** The message shown when the field is required and empty.
4170
4433
 
4171
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
4172
- set and the browser's own on a text field, which the browser writes in
4173
- the reader's language. Every other word a control speaks is a property,
4434
+ **Absent, or empty, is the control's own sentence**, "Choose one to
4435
+ continue." on a set and the browser's own on a text field, which the
4436
+ browser writes in the reader's language. A family with a sentence of its
4437
+ own declares it as this property's English, a word property a page
4438
+ registers for its locale under the family's key. Every other word a control speaks is a property,
4174
4439
  and this one was the English a form in another language still spoke in
4175
4440
  the bubble it raises on submit: `feedback` replaces the message under
4176
4441
  the field and does not reach that one. */
4177
4442
  "value-missing-message"?: (HelixCombobox["valueMissingMessage"]) | undefined;
4178
4443
  /** The message shown when the field is required and empty.
4179
4444
 
4180
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
4181
- set and the browser's own on a text field, which the browser writes in
4182
- the reader's language. Every other word a control speaks is a property,
4445
+ **Absent, or empty, is the control's own sentence**, "Choose one to
4446
+ continue." on a set and the browser's own on a text field, which the
4447
+ browser writes in the reader's language. A family with a sentence of its
4448
+ own declares it as this property's English, a word property a page
4449
+ registers for its locale under the family's key. Every other word a control speaks is a property,
4183
4450
  and this one was the English a form in another language still spoke in
4184
4451
  the bubble it raises on submit: `feedback` replaces the message under
4185
4452
  the field and does not reach that one. */
@@ -4202,12 +4469,19 @@ leaves the field or presses Enter with nothing highlighted, and text that
4202
4469
  names an option takes that option. Unlike `creatable`, no event asks
4203
4470
  first and no option is expected to be added: the value is the text. */
4204
4471
  allowsCustomValue?: (HelixCombobox["allowsCustomValue"]) | undefined;
4205
- /** What the browser may autofill in the text field, as a platform token.
4472
+ /** What the browser may autofill, as a platform token such as `country`.
4206
4473
 
4207
4474
  **Defaults to `off`, which is not the platform's default and is the
4208
4475
  point.** The field filters a list rather than collecting a value, so a
4209
4476
  browser offering to fill it with a saved address is competing for the same
4210
- keystrokes as the listbox. A consumer who wants autofill can still ask. */
4477
+ keystrokes as the listbox. A consumer who wants autofill can still ask.
4478
+
4479
+ Set, a combobox whose answer is one of its options keeps a hidden native
4480
+ `<select>` with the same options for the browser to fill, as React Aria's
4481
+ combobox and Select do, and the option the browser picks, by its value or
4482
+ its words, becomes the value. The text field itself stays `off`, so the
4483
+ browser fills the answer and not the filter. With `allows-custom-value`
4484
+ the token goes on the text field, whose words are the answer. */
4211
4485
  autocomplete?: (HelixCombobox["autocomplete"]) | undefined;
4212
4486
  /** Whether the user can add a value that is not in the list.
4213
4487
 
@@ -4217,9 +4491,15 @@ it is offered next to near misses too: a reader typing "Ruby on Rails" with
4217
4491
  halfway through. The arrow keys reach it after the last option, and Enter
4218
4492
  on it adds what was typed. */
4219
4493
  creatable?: (HelixCombobox["creatable"]) | undefined;
4220
- /** The text of the create row, shown before the typed words it adds. */
4494
+ /** The text of the create row. `{value}` is what was typed.
4495
+
4496
+ A sentence without `{value}`, such as `Create`, is followed by what was
4497
+ typed in quotes, as before `{value}` existed. */
4221
4498
  "create-label"?: (HelixCombobox["createLabel"]) | undefined;
4222
- /** The text of the create row, shown before the typed words it adds. */
4499
+ /** The text of the create row. `{value}` is what was typed.
4500
+
4501
+ A sentence without `{value}`, such as `Create`, is followed by what was
4502
+ typed in quotes, as before `{value}` existed. */
4223
4503
  createLabel?: (HelixCombobox["createLabel"]) | undefined;
4224
4504
  /** Text shown when the filter hides every option. */
4225
4505
  "empty-text"?: (HelixCombobox["emptyText"]) | undefined;
@@ -4246,12 +4526,14 @@ every keystroke. See Listbox's `filter-delay`. */
4246
4526
  /** The list's name, read by screen readers. The list has no visible name. */
4247
4527
  listLabel?: (HelixCombobox["listLabel"]) | undefined;
4248
4528
  /** What the list says when its options could not be loaded, such as after a
4249
- request to a server fails. Empty is no error. Passed to the list, which
4250
- shows it under any options there are and tells screen readers. */
4529
+ request to a server fails. Empty, null or no attribute is no error, so
4530
+ removing the attribute clears it. Passed to the list, which shows it
4531
+ under any options there are and tells screen readers. */
4251
4532
  "load-error"?: (HelixCombobox["loadError"]) | undefined;
4252
4533
  /** What the list says when its options could not be loaded, such as after a
4253
- request to a server fails. Empty is no error. Passed to the list, which
4254
- shows it under any options there are and tells screen readers. */
4534
+ request to a server fails. Empty, null or no attribute is no error, so
4535
+ removing the attribute clears it. Passed to the list, which shows it
4536
+ under any options there are and tells screen readers. */
4255
4537
  loadError?: (HelixCombobox["loadError"]) | undefined;
4256
4538
  /** Whether the options are still loading.
4257
4539
 
@@ -4262,6 +4544,10 @@ message belongs. */
4262
4544
  "loading-text"?: (HelixCombobox["loadingText"]) | undefined;
4263
4545
  /** Text the list shows while the options load. */
4264
4546
  loadingText?: (HelixCombobox["loadingText"]) | undefined;
4547
+ /** The locale the words, plural forms, and numbers are in, as a BCP 47 tag
4548
+ such as `pl`. Empty reads the nearest `lang`, then the browser's
4549
+ language. */
4550
+ locale?: (HelixCombobox["locale"]) | undefined;
4265
4551
  /** Whether more than one option can be chosen.
4266
4552
 
4267
4553
  The list already does the work: `value` comes apart on commas, a press
@@ -4320,20 +4606,28 @@ filled in.
4320
4606
  **The name goes in**, so a row of them is heard as which one each
4321
4607
  removes rather than as "Remove" said once per chosen option. */
4322
4608
  removeLabel?: (HelixCombobox["removeLabel"]) | undefined;
4323
- /** What a screen reader hears when typing leaves one option. `{count}` is
4324
- the count. */
4609
+ /** What a screen reader hears when typing leaves one option, where
4610
+ `results-label` should not say it. `{count}` is the count. */
4325
4611
  "result-label"?: (HelixCombobox["resultLabel"]) | undefined;
4326
- /** What a screen reader hears when typing leaves one option. `{count}` is
4327
- the count. */
4612
+ /** What a screen reader hears when typing leaves one option, where
4613
+ `results-label` should not say it. `{count}` is the count. */
4328
4614
  resultLabel?: (HelixCombobox["resultLabel"]) | undefined;
4329
- /** What a screen reader hears when typing leaves any other number of
4330
- options. `{count}` is the count, and `Intl.PluralRules` picks between the
4331
- two. */
4615
+ /** What a screen reader hears when typing narrows the list. `{count}` is how
4616
+ many options are left, written in the locale, and each language writes
4617
+ the forms it has: `{count, plural, one {# wynik} few {# wyniki} many
4618
+ {# wyników} other {# wyniku}}`. */
4332
4619
  "results-label"?: (HelixCombobox["resultsLabel"]) | undefined;
4333
- /** What a screen reader hears when typing leaves any other number of
4334
- options. `{count}` is the count, and `Intl.PluralRules` picks between the
4335
- two. */
4620
+ /** What a screen reader hears when typing narrows the list. `{count}` is how
4621
+ many options are left, written in the locale, and each language writes
4622
+ the forms it has: `{count, plural, one {# wynik} few {# wyniki} many
4623
+ {# wyników} other {# wyniku}}`. */
4336
4624
  resultsLabel?: (HelixCombobox["resultsLabel"]) | undefined;
4625
+ /** What VoiceOver hears for a chosen option, as the highlight reaches it and
4626
+ once it is chosen, on Apple devices. `{name}` is the option's words. */
4627
+ "selected-label"?: (HelixCombobox["selectedLabel"]) | undefined;
4628
+ /** What VoiceOver hears for a chosen option, as the highlight reaches it and
4629
+ once it is chosen, on Apple devices. `{name}` is the option's words. */
4630
+ selectedLabel?: (HelixCombobox["selectedLabel"]) | undefined;
4337
4631
  /** Whether the field completes the word as the user types.
4338
4632
 
4339
4633
  `suggest` rather than `autocomplete`, which is a real HTML attribute this
@@ -4459,12 +4753,14 @@ with: one key, said once. */
4459
4753
  /** Accessible name for the overlay, which has no visible heading. */
4460
4754
  label?: (HelixCommand["label"]) | undefined;
4461
4755
  /** What the list says when its commands could not be loaded, such as after a
4462
- request to a server fails. Empty is no error. Passed to the list, which
4463
- shows it under any commands there are and tells screen readers. */
4756
+ request to a server fails. Empty, null or no attribute is no error, so
4757
+ removing the attribute clears it. Passed to the list, which shows it
4758
+ under any commands there are and tells screen readers. */
4464
4759
  "load-error"?: (HelixCommand["loadError"]) | undefined;
4465
4760
  /** What the list says when its commands could not be loaded, such as after a
4466
- request to a server fails. Empty is no error. Passed to the list, which
4467
- shows it under any commands there are and tells screen readers. */
4761
+ request to a server fails. Empty, null or no attribute is no error, so
4762
+ removing the attribute clears it. Passed to the list, which shows it
4763
+ under any commands there are and tells screen readers. */
4468
4764
  loadError?: (HelixCommand["loadError"]) | undefined;
4469
4765
  /** Whether the commands are still loading, for a palette that asks a server
4470
4766
  for them as the user types.
@@ -4483,19 +4779,21 @@ some. Absent, `empty-text` shows. See Listbox's `no-results-text`. */
4483
4779
  noResultsText?: (HelixCommand["noResultsText"]) | undefined;
4484
4780
  /** The text shown in the filter field before anything is typed. */
4485
4781
  placeholder?: (HelixCommand["placeholder"]) | undefined;
4486
- /** What a screen reader hears when typing leaves one command. `{count}` is
4487
- the count. */
4782
+ /** What a screen reader hears when typing leaves one command, where
4783
+ `results-label` should not say it. `{count}` is the count. */
4488
4784
  "result-label"?: (HelixCommand["resultLabel"]) | undefined;
4489
- /** What a screen reader hears when typing leaves one command. `{count}` is
4490
- the count. */
4785
+ /** What a screen reader hears when typing leaves one command, where
4786
+ `results-label` should not say it. `{count}` is the count. */
4491
4787
  resultLabel?: (HelixCommand["resultLabel"]) | undefined;
4492
- /** What a screen reader hears when typing leaves any other number of
4493
- commands. `{count}` is the count, and `Intl.PluralRules` picks between the
4494
- two. */
4788
+ /** What a screen reader hears when typing narrows the commands. `{count}` is
4789
+ how many are left, written in the locale, and each language writes the
4790
+ forms it has: `{count, plural, one {# polecenie} few {# polecenia} many
4791
+ {# poleceń} other {# polecenia}}`. */
4495
4792
  "results-label"?: (HelixCommand["resultsLabel"]) | undefined;
4496
- /** What a screen reader hears when typing leaves any other number of
4497
- commands. `{count}` is the count, and `Intl.PluralRules` picks between the
4498
- two. */
4793
+ /** What a screen reader hears when typing narrows the commands. `{count}` is
4794
+ how many are left, written in the locale, and each language writes the
4795
+ forms it has: `{count, plural, one {# polecenie} few {# polecenia} many
4796
+ {# poleceń} other {# polecenia}}`. */
4499
4797
  resultsLabel?: (HelixCommand["resultsLabel"]) | undefined;
4500
4798
  };
4501
4799
 
@@ -4673,6 +4971,9 @@ export type HelixDataTableElementEvent<E = Event> = TypedEvent<
4673
4971
  /** `helix-activate` event type */
4674
4972
  export type HelixDataTableHelixActivateElementEvent =
4675
4973
  HelixDataTableElementEvent<HelixActivateEvent>;
4974
+ /** `helix-before-reorder` event type */
4975
+ export type HelixDataTableHelixBeforeReorderElementEvent =
4976
+ HelixDataTableElementEvent<HelixBeforeReorderEvent>;
4676
4977
  /** `helix-expand` event type */
4677
4978
  export type HelixDataTableHelixExpandElementEvent =
4678
4979
  HelixDataTableElementEvent<HelixExpandEvent>;
@@ -4722,10 +5023,16 @@ say that without the component knowing what a row looks like. */
4722
5023
  "loading-text"?: (HelixDataTable["loadingText"]) | undefined;
4723
5024
  /** The text shown and announced while the rows load. */
4724
5025
  loadingText?: (HelixDataTable["loadingText"]) | undefined;
4725
- /** The word for an ascending sort, in `sorted-label`. */
5026
+ /** The word for an ascending sort, in a `sorted-label` that writes `{order}`. */
4726
5027
  "ascending-label"?: (HelixDataTable["ascendingLabel"]) | undefined;
4727
- /** The word for an ascending sort, in `sorted-label`. */
5028
+ /** The word for an ascending sort, in a `sorted-label` that writes `{order}`. */
4728
5029
  ascendingLabel?: (HelixDataTable["ascendingLabel"]) | undefined;
5030
+ /** What screen readers hear when a held row is put back, or a move is
5031
+ refused, with `reorderable-rows`. */
5032
+ "canceled-label"?: (HelixDataTable["canceledLabel"]) | undefined;
5033
+ /** What screen readers hear when a held row is put back, or a move is
5034
+ refused, with `reorderable-rows`. */
5035
+ canceledLabel?: (HelixDataTable["canceledLabel"]) | undefined;
4729
5036
  /** The field that holds a row's child rows, as an array. Set it, and `row-key`,
4730
5037
  and the grid becomes a tree grid.
4731
5038
 
@@ -4770,10 +5077,14 @@ is set. */
4770
5077
  "default-sort"?: (HelixDataTable["defaultSort"]) | undefined;
4771
5078
  /** The starting sort order, used until `sort` is set. */
4772
5079
  defaultSort?: (HelixDataTable["defaultSort"]) | undefined;
4773
- /** The word for a descending sort, in `sorted-label`. */
5080
+ /** The word for a descending sort, in a `sorted-label` that writes `{order}`. */
4774
5081
  "descending-label"?: (HelixDataTable["descendingLabel"]) | undefined;
4775
- /** The word for a descending sort, in `sorted-label`. */
5082
+ /** The word for a descending sort, in a `sorted-label` that writes `{order}`. */
4776
5083
  descendingLabel?: (HelixDataTable["descendingLabel"]) | undefined;
5084
+ /** What screen readers hear when a row is dropped, with `reorderable-rows`. */
5085
+ "dropped-label"?: (HelixDataTable["droppedLabel"]) | undefined;
5086
+ /** What screen readers hear when a row is dropped, with `reorderable-rows`. */
5087
+ droppedLabel?: (HelixDataTable["droppedLabel"]) | undefined;
4777
5088
  /** The estimated height of a row before it is drawn, in pixels.
4778
5089
 
4779
5090
  Only read while `windowed`, and a starting guess rather than a claim: a
@@ -4815,6 +5126,10 @@ when there are no more rows to load. */
4815
5126
  "load-more-label"?: (HelixDataTable["loadMoreLabel"]) | undefined;
4816
5127
  /** The words on the button in the `more` row. */
4817
5128
  loadMoreLabel?: (HelixDataTable["loadMoreLabel"]) | undefined;
5129
+ /** The locale the words, plural forms, and numbers are in, as a BCP 47 tag
5130
+ such as `pl`. Empty reads the nearest `lang`, then the browser's
5131
+ language. The built-in pagination speaks it too. */
5132
+ locale?: (HelixDataTable["locale"]) | undefined;
4818
5133
  /** Where filtering, sorting, and paging happen. `client` does them in the
4819
5134
  table, and `server` leaves them to your code.
4820
5135
 
@@ -4825,6 +5140,20 @@ the client cannot hold the data, so this is not an optimization, it is the
4825
5140
  only mode that works, and it is here from the start because adding it later
4826
5141
  inverts the data flow. */
4827
5142
  mode?: (HelixDataTable["mode"]) | undefined;
5143
+ /** What screen readers hear each time a key moves a held row, with
5144
+ `reorderable-rows`. `{name}` is the row's name, `{position}` the place it
5145
+ would go, counting from 1, and `{count}` the number of rows on the page. */
5146
+ "moved-label"?: (HelixDataTable["movedLabel"]) | undefined;
5147
+ /** What screen readers hear each time a key moves a held row, with
5148
+ `reorderable-rows`. `{name}` is the row's name, `{position}` the place it
5149
+ would go, counting from 1, and `{count}` the number of rows on the page. */
5150
+ movedLabel?: (HelixDataTable["movedLabel"]) | undefined;
5151
+ /** The name of a row's grip, with `reorderable-rows`. `{row}` is replaced with
5152
+ the row's name. */
5153
+ "move-row-label"?: (HelixDataTable["moveRowLabel"]) | undefined;
5154
+ /** The name of a row's grip, with `reorderable-rows`. `{row}` is replaced with
5155
+ the row's name. */
5156
+ moveRowLabel?: (HelixDataTable["moveRowLabel"]) | undefined;
4828
5157
  /** The built-in pagination's name for the button that moves forward a page. */
4829
5158
  "next-label"?: (HelixDataTable["nextLabel"]) | undefined;
4830
5159
  /** The built-in pagination's name for the button that moves forward a page. */
@@ -4876,6 +5205,12 @@ which is why the slot replaces this rather than sitting beside it. */
4876
5205
  "pagination-label"?: (HelixDataTable["paginationLabel"]) | undefined;
4877
5206
  /** The name of the built-in pagination's navigation landmark. */
4878
5207
  paginationLabel?: (HelixDataTable["paginationLabel"]) | undefined;
5208
+ /** What screen readers hear when a key or a click picks up a row, with
5209
+ `reorderable-rows`. `{name}` is the row's name. */
5210
+ "picked-up-label"?: (HelixDataTable["pickedUpLabel"]) | undefined;
5211
+ /** What screen readers hear when a key or a click picks up a row, with
5212
+ `reorderable-rows`. `{name}` is the row's name. */
5213
+ pickedUpLabel?: (HelixDataTable["pickedUpLabel"]) | undefined;
4879
5214
  /** The built-in pagination's name for the button that moves back a page. */
4880
5215
  "previous-label"?: (HelixDataTable["previousLabel"]) | undefined;
4881
5216
  /** The built-in pagination's name for the button that moves back a page. */
@@ -4885,16 +5220,32 @@ which is why the slot replaces this rather than sitting beside it. */
4885
5220
  Each heading with a `field` gets a grip, dragged along the header or moved a
4886
5221
  place at a time with the arrow keys once it has focus. */
4887
5222
  reorderable?: (HelixDataTable["reorderable"]) | undefined;
4888
- /** What screen readers hear when a search leaves one row. `{count}` is the count. */
5223
+ /** Lets people move rows, by a grip that leads each row. The table moves no
5224
+ row itself: set `rows` to the order `helix-reorder` carries. */
5225
+ "reorderable-rows"?: (HelixDataTable["reorderableRows"]) | undefined;
5226
+ /** Lets people move rows, by a grip that leads each row. The table moves no
5227
+ row itself: set `rows` to the order `helix-reorder` carries. */
5228
+ reorderableRows?: (HelixDataTable["reorderableRows"]) | undefined;
5229
+ /** What screen readers hear when a search leaves one row, where
5230
+ `results-label` should not say it. `{count}` is the count. */
4889
5231
  "result-label"?: (HelixDataTable["resultLabel"]) | undefined;
4890
- /** What screen readers hear when a search leaves one row. `{count}` is the count. */
5232
+ /** What screen readers hear when a search leaves one row, where
5233
+ `results-label` should not say it. `{count}` is the count. */
4891
5234
  resultLabel?: (HelixDataTable["resultLabel"]) | undefined;
4892
- /** What screen readers hear when a search leaves any other number of rows.
4893
- `{count}` is the count. */
5235
+ /** What screen readers hear when a search narrows the rows. `{count}` is how
5236
+ many rows are left, written in the locale, and each language writes the
5237
+ forms it has: `{count, plural, one {# wiersz} few {# wiersze} many
5238
+ {# wierszy} other {# wiersza}}`. */
4894
5239
  "results-label"?: (HelixDataTable["resultsLabel"]) | undefined;
4895
- /** What screen readers hear when a search leaves any other number of rows.
4896
- `{count}` is the count. */
5240
+ /** What screen readers hear when a search narrows the rows. `{count}` is how
5241
+ many rows are left, written in the locale, and each language writes the
5242
+ forms it has: `{count, plural, one {# wiersz} few {# wiersze} many
5243
+ {# wierszy} other {# wiersza}}`. */
4897
5244
  resultsLabel?: (HelixDataTable["resultsLabel"]) | undefined;
5245
+ /** The name of the heading over the row grips, with `reorderable-rows`. */
5246
+ "row-grips-label"?: (HelixDataTable["rowGripsLabel"]) | undefined;
5247
+ /** The name of the heading over the row grips, with `reorderable-rows`. */
5248
+ rowGripsLabel?: (HelixDataTable["rowGripsLabel"]) | undefined;
4898
5249
  /** The field that identifies each row.
4899
5250
 
4900
5251
  **Needed before selection exists, not after.** Lit keys the rendered rows by
@@ -4939,10 +5290,14 @@ price of the shape. A reader's choice fires `helix-select` first, and
4939
5290
  refusing it leaves the selection as it was. */
4940
5291
  selected?: (HelixDataTable["selected"]) | undefined;
4941
5292
  /** What screen readers hear when the chosen rows change. `{count}` is how many
4942
- rows are chosen. */
5293
+ rows are chosen, written in the locale, and a language that needs plural
5294
+ forms writes them: `{count, plural, one {# wybrany} few {# wybrane} many
5295
+ {# wybranych} other {# wybranego}}`. */
4943
5296
  "selected-label"?: (HelixDataTable["selectedLabel"]) | undefined;
4944
5297
  /** What screen readers hear when the chosen rows change. `{count}` is how many
4945
- rows are chosen. */
5298
+ rows are chosen, written in the locale, and a language that needs plural
5299
+ forms writes them: `{count, plural, one {# wybrany} few {# wybrane} many
5300
+ {# wybranych} other {# wybranego}}`. */
4946
5301
  selectedLabel?: (HelixDataTable["selectedLabel"]) | undefined;
4947
5302
  /** The name of a row's checkbox. `{row}` is replaced with the row's value in
4948
5303
  the first column that has a field, or with its key. */
@@ -4958,10 +5313,14 @@ the event and set this to the order you chose. `default-sort` seeds an
4958
5313
  order this element then owns. */
4959
5314
  sort?: (HelixDataTable["sort"]) | undefined;
4960
5315
  /** What screen readers hear when the table is sorted. `{column}` is the
4961
- column's heading and `{order}` is `ascending-label` or `descending-label`. */
5316
+ column's heading and `{direction}` is `ascending` or `descending`, so each
5317
+ order has its whole sentence. `{order}` is the deprecated
5318
+ `ascending-label` or `descending-label`. */
4962
5319
  "sorted-label"?: (HelixDataTable["sortedLabel"]) | undefined;
4963
5320
  /** What screen readers hear when the table is sorted. `{column}` is the
4964
- column's heading and `{order}` is `ascending-label` or `descending-label`. */
5321
+ column's heading and `{direction}` is `ascending` or `descending`, so each
5322
+ order has its whole sentence. `{order}` is the deprecated
5323
+ `ascending-label` or `descending-label`. */
4965
5324
  sortedLabel?: (HelixDataTable["sortedLabel"]) | undefined;
4966
5325
  /** The number of rows in the whole result, for when the table cannot count
4967
5326
  them.
@@ -5008,6 +5367,8 @@ holds and reordering it under them is a mutation they did not ask for. */
5008
5367
  export type HelixDataTableVueEvents = {
5009
5368
  /** Fired after the page changes, with the new page as a string in `detail.value`. */
5010
5369
  "helix-activate": HelixDataTableHelixActivateElementEvent;
5370
+ /** A row is about to move, with `reorderable-rows`. The event carries every row's key in the new order. Cancelable: cancel it to keep the row where it is. */
5371
+ "helix-before-reorder": HelixDataTableHelixBeforeReorderElementEvent;
5011
5372
  /** Fired after a row opens or closes, with every open row's key, separated by commas, which `expanded` also holds. */
5012
5373
  "helix-expand": HelixDataTableHelixExpandElementEvent;
5013
5374
  /** The search query is about to change. Cancelable: cancel it to keep the current query. */
@@ -5018,7 +5379,7 @@ export type HelixDataTableVueEvents = {
5018
5379
  "helix-load-more": HelixDataTableHelixLoadMoreElementEvent;
5019
5380
  /** Another page was requested. Cancelable: cancel it to stay on the current page. */
5020
5381
  "helix-navigate": HelixDataTableHelixNavigateElementEvent;
5021
- /** The columns are about to move. The event carries every field in the new order. Cancelable: cancel it to keep the current order. */
5382
+ /** The columns are about to move, with `kind` set to `column` and every field in the new order. Cancelable: cancel it to keep the current order. For a row, with `kind` set to `row`, it follows `helix-before-reorder`, and you set `rows` to the order in `keys`. */
5022
5383
  "helix-reorder": HelixDataTableHelixReorderElementEvent;
5023
5384
  /** Fired after the columns move, with every field in the new order. */
5024
5385
  "helix-reordered": HelixDataTableHelixReorderedElementEvent;
@@ -5051,12 +5412,28 @@ export type HelixDateInputHelixBeforeOpenElementEvent =
5051
5412
  HelixDateInputElementEvent<HelixBeforeOpenEvent>;
5052
5413
 
5053
5414
  export type HelixDateInputVueProps = {
5415
+ /** What a row of segments reports when the field is required and every
5416
+ segment is empty, where `value-missing-message` is not set. `{kind}` is
5417
+ `date` or `time`. */
5418
+ "empty-message"?: (HelixDateInput["emptyMessage"]) | undefined;
5419
+ /** What a row of segments reports when the field is required and every
5420
+ segment is empty, where `value-missing-message` is not set. `{kind}` is
5421
+ `date` or `time`. */
5422
+ emptyMessage?: (HelixDateInput["emptyMessage"]) | undefined;
5054
5423
  /** What a screen reader hears for a segment with nothing in it, which a
5055
5424
  sighted reader sees as dashes. */
5056
5425
  "empty-segment-label"?: (HelixDateInput["emptySegmentLabel"]) | undefined;
5057
5426
  /** What a screen reader hears for a segment with nothing in it, which a
5058
5427
  sighted reader sees as dashes. */
5059
5428
  emptySegmentLabel?: (HelixDateInput["emptySegmentLabel"]) | undefined;
5429
+ /** What a row of segments reports while some segments are set and others
5430
+ are not, where `bad-input-message` is not set. `{kind}` is `date` or
5431
+ `time`. */
5432
+ "incomplete-message"?: (HelixDateInput["incompleteMessage"]) | undefined;
5433
+ /** What a row of segments reports while some segments are set and others
5434
+ are not, where `bad-input-message` is not set. `{kind}` is `date` or
5435
+ `time`. */
5436
+ incompleteMessage?: (HelixDateInput["incompleteMessage"]) | undefined;
5060
5437
  /** Whether the field is a row of segments, one for each part of the date or
5061
5438
  time, in place of a line of text.
5062
5439
 
@@ -5138,6 +5515,12 @@ as `+3`, does not say what it does. */
5138
5515
  "max-tags"?: (HelixDateInput["maxTags"] | `${number}`) | undefined;
5139
5516
  /** How many tokens to show before the rest become a count. */
5140
5517
  maxTags?: (HelixDateInput["maxTags"]) | undefined;
5518
+ /** The count of the tokens past `max-tags`, as it is shown, with `{count}`
5519
+ for the number, written in the element's locale. */
5520
+ "rest-text"?: (HelixDateInput["restText"]) | undefined;
5521
+ /** The count of the tokens past `max-tags`, as it is shown, with `{count}`
5522
+ for the number, written in the element's locale. */
5523
+ restText?: (HelixDateInput["restText"]) | undefined;
5141
5524
  /** The value the control starts with. A form reset returns it to this value,
5142
5525
  and to the `value` attribute where this one is not written, as a native
5143
5526
  control resets to the `value` it declares. */
@@ -5167,18 +5550,22 @@ browser's message. */
5167
5550
  required?: (HelixDateInput["required"]) | undefined;
5168
5551
  /** The message shown when the field is required and empty.
5169
5552
 
5170
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
5171
- set and the browser's own on a text field, which the browser writes in
5172
- the reader's language. Every other word a control speaks is a property,
5553
+ **Absent, or empty, is the control's own sentence**, "Choose one to
5554
+ continue." on a set and the browser's own on a text field, which the
5555
+ browser writes in the reader's language. A family with a sentence of its
5556
+ own declares it as this property's English, a word property a page
5557
+ registers for its locale under the family's key. Every other word a control speaks is a property,
5173
5558
  and this one was the English a form in another language still spoke in
5174
5559
  the bubble it raises on submit: `feedback` replaces the message under
5175
5560
  the field and does not reach that one. */
5176
5561
  "value-missing-message"?: (HelixDateInput["valueMissingMessage"]) | undefined;
5177
5562
  /** The message shown when the field is required and empty.
5178
5563
 
5179
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
5180
- set and the browser's own on a text field, which the browser writes in
5181
- the reader's language. Every other word a control speaks is a property,
5564
+ **Absent, or empty, is the control's own sentence**, "Choose one to
5565
+ continue." on a set and the browser's own on a text field, which the
5566
+ browser writes in the reader's language. A family with a sentence of its
5567
+ own declares it as this property's English, a word property a page
5568
+ registers for its locale under the family's key. Every other word a control speaks is a property,
5182
5569
  and this one was the English a form in another language still spoke in
5183
5570
  the bubble it raises on submit: `feedback` replaces the message under
5184
5571
  the field and does not reach that one. */
@@ -5189,6 +5576,15 @@ Empty leaves the attribute off, which is the browser's default and is what
5189
5576
  lets autofill work at all: hardcoding `off` here means a birthday or a
5190
5577
  postal code can never be filled in for a reader. */
5191
5578
  autocomplete?: (HelixDateInput["autocomplete"]) | undefined;
5579
+ /** The calendar the written date and the calendar's days are in: `gregory`,
5580
+ `buddhist`, `japanese`, `roc`, or `iso8601`.
5581
+
5582
+ Absent is the locale's own where it is one of the five, and `gregory` for
5583
+ every other, as Date Picker's `calendar` is. The value is `YYYY-MM-DD` in
5584
+ every calendar, and a focused field is ISO in every calendar. In
5585
+ `segmented`, the segments are the Gregorian day, month, and year, in the
5586
+ order the locale writes them, or ISO order for `iso8601`. */
5587
+ calendar?: (HelixDateInput["calendar"]) | undefined;
5192
5588
  /** The name of the calendar's grid of days, read by screen readers. */
5193
5589
  "calendar-label"?: (HelixDateInput["calendarLabel"]) | undefined;
5194
5590
  /** The name of the calendar's grid of days, read by screen readers. */
@@ -5327,14 +5723,14 @@ window has no room for that width it shows one month until there is. */
5327
5723
  /** The message shown when a range holds more than two dates.
5328
5724
 
5329
5725
  **Every sentence a control raises in the browser's bubble is a property**,
5330
- so a form in another language speaks it. Absent is the control's own
5331
- sentence, in English. */
5726
+ so a form in another language speaks it. Unset is the sentence registered
5727
+ for the page's language, then the English. */
5332
5728
  "range-length-message"?: (HelixDateInput["rangeLengthMessage"]) | undefined;
5333
5729
  /** The message shown when a range holds more than two dates.
5334
5730
 
5335
5731
  **Every sentence a control raises in the browser's bubble is a property**,
5336
- so a form in another language speaks it. Absent is the control's own
5337
- sentence, in English. */
5732
+ so a form in another language speaks it. Unset is the sentence registered
5733
+ for the page's language, then the English. */
5338
5734
  rangeLengthMessage?: (HelixDateInput["rangeLengthMessage"]) | undefined;
5339
5735
  /** The message shown when a date is after `max`. `{max}` is replaced with
5340
5736
  `max`, written the way the field writes dates. */
@@ -5495,14 +5891,28 @@ a reset should return to. */
5495
5891
 
5496
5892
  **Every sentence a control raises in the browser's bubble is a property**,
5497
5893
  named for the validity flag it reports, so a form in another language
5498
- speaks it. Absent is the control's own sentence, in English. */
5894
+ speaks it. Unset is the sentence registered for the page's language, then
5895
+ the English. `{mode}` is `single`, `range` or `multiple`, so each can have
5896
+ its own sentence. */
5499
5897
  "bad-input-message"?: (HelixDatePicker["badInputMessage"]) | undefined;
5500
5898
  /** The validation message for a value that is not a date.
5501
5899
 
5502
5900
  **Every sentence a control raises in the browser's bubble is a property**,
5503
5901
  named for the validity flag it reports, so a form in another language
5504
- speaks it. Absent is the control's own sentence, in English. */
5902
+ speaks it. Unset is the sentence registered for the page's language, then
5903
+ the English. `{mode}` is `single`, `range` or `multiple`, so each can have
5904
+ its own sentence. */
5505
5905
  badInputMessage?: (HelixDatePicker["badInputMessage"]) | undefined;
5906
+ /** The calendar the heading, the days, and the months are written in:
5907
+ `gregory`, `buddhist`, `japanese`, `roc`, or `iso8601`, the five whose
5908
+ months are the Gregorian months.
5909
+
5910
+ Absent is the locale's own where it is one of the five, such as
5911
+ `buddhist` for `th-TH` or `japanese` for `ja-JP-u-ca-japanese`, and
5912
+ `gregory` for every other, such as `persian` for `fa-IR`, so the heading
5913
+ names the Gregorian month the grid shows. The value is `YYYY-MM-DD` in
5914
+ every calendar. */
5915
+ calendar?: (HelixDatePicker["calendar"]) | undefined;
5506
5916
  /** The month to open on when `month` is not set. */
5507
5917
  "default-month"?: (HelixDatePicker["defaultMonth"]) | undefined;
5508
5918
  /** The month to open on when `month` is not set. */
@@ -5771,6 +6181,10 @@ item finds them once it runs, and the served markup wraps them until then. */
5771
6181
  export type HelixDescriptionListItemVueEvents = {};
5772
6182
 
5773
6183
  export type HelixDescriptionListVueProps = {
6184
+ /** Draws a rule between one pair and the next, in the middle of the gap, as
6185
+ a details panel with many rows often does. Off by default, where space
6186
+ alone separates the pairs. */
6187
+ divided?: (HelixDescriptionList["divided"]) | undefined;
5774
6188
  /** Where the values sit, beside their labels.
5775
6189
 
5776
6190
  Absent, each value starts right after the label column. `between` sets it on
@@ -5947,6 +6361,12 @@ interface. */
5947
6361
  /** The close control's accessible name. Translate it with the rest of your
5948
6362
  interface. */
5949
6363
  dismissLabel?: (HelixDialog["dismissLabel"]) | undefined;
6364
+ /** The dialog's name where nothing names it: no `label`, no heading in the
6365
+ `header` slot, and no `aria-labelledby` on the host. */
6366
+ "fallback-label"?: (HelixDialog["fallbackLabel"]) | undefined;
6367
+ /** The dialog's name where nothing names it: no `label`, no heading in the
6368
+ `header` slot, and no `aria-labelledby` on the host. */
6369
+ fallbackLabel?: (HelixDialog["fallbackLabel"]) | undefined;
5950
6370
  /** Accessible name for the dialog. When it is empty, the heading in the
5951
6371
  `header` slot names the dialog. */
5952
6372
  label?: (HelixDialog["label"]) | undefined;
@@ -5997,20 +6417,23 @@ Absent is the middle. `start` and `end` move it toward one end, with a
5997
6417
  short length of line, `--divider-content-offset`, kept before or after it.
5998
6418
  A divider with nothing set into it is one line whatever this says. */
5999
6419
  contentPlacement?: (HelixDivider["contentPlacement"]) | undefined;
6000
- /** Whether screen readers announce the line as a separator.
6001
-
6002
- Off by default, and out of the accessibility tree. Most rules on a page
6003
- separate nothing: they underline a heading or close a section that space
6004
- had already closed, and announcing every one as a separator is noise a
6005
- screen-reader user has to walk past.
6006
-
6007
- An opt-in, not a `decorative` opt-out, because a boolean attribute cannot
6008
- be turned off: `decorative="false"` parses as `true`, which would put the
6009
- quiet default out of reach from HTML and leave it settable only as a
6010
- property. An opt-in is absent by default, which every reflected property
6011
- here has to be. */
6420
+ /** Whether screen readers announce the line as a separator, which they now do
6421
+ by default.
6422
+
6423
+ It dates from when the line was decorative by default. It is still read,
6424
+ and it wins over `decorative`, so a divider written with it stays a
6425
+ separator. */
6012
6426
  announced?: (HelixDivider["announced"]) | undefined;
6013
- /** The direction the line runs: `horizontal` or `vertical`. */
6427
+ /** Takes the line out of the accessibility tree, for a rule that separates
6428
+ nothing: one under a heading, or between the facts of a byline.
6429
+
6430
+ Absent, the line is a separator, as `<hr>` is. Radix Separator's opt-out
6431
+ has the same name. It turns the role off because a boolean attribute that
6432
+ is on by default cannot be turned off from HTML. */
6433
+ decorative?: (HelixDivider["decorative"]) | undefined;
6434
+ /** The direction the line runs: `horizontal` or `vertical`.
6435
+
6436
+ Unset is horizontal, or across the toolbar the divider sits in. */
6014
6437
  orientation?: (HelixDivider["orientation"]) | undefined;
6015
6438
  };
6016
6439
 
@@ -6075,8 +6498,8 @@ words and is already written. */
6075
6498
  /** The locale the chart's own numbers are written in: its axis, its
6076
6499
  percentages and its totals, such as `de` for `1.240` and `32 %`.
6077
6500
 
6078
- Absent uses the runtime's own. The table's cells are shown as the table
6079
- writes them, whatever this says. */
6501
+ Absent reads the nearest `lang`, then the runtime's own. The table's
6502
+ cells are shown as the table writes them, whatever this says. */
6080
6503
  locale?: (HelixDonutChart["locale"]) | undefined;
6081
6504
  /** Where a reading the keys moved to stands among the readings, said after
6082
6505
  it. `{position}` and `{count}` are replaced with the numbers, written in
@@ -6241,6 +6664,12 @@ interface. */
6241
6664
  /** The close control's accessible name. Translate it with the rest of your
6242
6665
  interface. */
6243
6666
  dismissLabel?: (HelixDrawer["dismissLabel"]) | undefined;
6667
+ /** The panel's name where nothing names it: no `label`, no heading in the
6668
+ `header` slot, and no `aria-labelledby` on the host. */
6669
+ "fallback-label"?: (HelixDrawer["fallbackLabel"]) | undefined;
6670
+ /** The panel's name where nothing names it: no `label`, no heading in the
6671
+ `header` slot, and no `aria-labelledby` on the host. */
6672
+ fallbackLabel?: (HelixDrawer["fallbackLabel"]) | undefined;
6244
6673
  /** Accessible name for the panel. When it is empty, the heading in the
6245
6674
  `header` slot names the panel. */
6246
6675
  label?: (HelixDrawer["label"]) | undefined;
@@ -6442,18 +6871,22 @@ browser's message. */
6442
6871
  required?: (HelixFileInput["required"]) | undefined;
6443
6872
  /** The message shown when the field is required and empty.
6444
6873
 
6445
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
6446
- set and the browser's own on a text field, which the browser writes in
6447
- the reader's language. Every other word a control speaks is a property,
6874
+ **Absent, or empty, is the control's own sentence**, "Choose one to
6875
+ continue." on a set and the browser's own on a text field, which the
6876
+ browser writes in the reader's language. A family with a sentence of its
6877
+ own declares it as this property's English, a word property a page
6878
+ registers for its locale under the family's key. Every other word a control speaks is a property,
6448
6879
  and this one was the English a form in another language still spoke in
6449
6880
  the bubble it raises on submit: `feedback` replaces the message under
6450
6881
  the field and does not reach that one. */
6451
6882
  "value-missing-message"?: (HelixFileInput["valueMissingMessage"]) | undefined;
6452
6883
  /** The message shown when the field is required and empty.
6453
6884
 
6454
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
6455
- set and the browser's own on a text field, which the browser writes in
6456
- the reader's language. Every other word a control speaks is a property,
6885
+ **Absent, or empty, is the control's own sentence**, "Choose one to
6886
+ continue." on a set and the browser's own on a text field, which the
6887
+ browser writes in the reader's language. A family with a sentence of its
6888
+ own declares it as this property's English, a word property a page
6889
+ registers for its locale under the family's key. Every other word a control speaks is a property,
6457
6890
  and this one was the English a form in another language still spoke in
6458
6891
  the bubble it raises on submit: `feedback` replaces the message under
6459
6892
  the field and does not reach that one. */
@@ -6469,14 +6902,20 @@ filter is the only check the platform makes and a drop never meets it. */
6469
6902
  /** What a reader hears when a drop or a paste adds files, with `{names}` and
6470
6903
  `{count}` filled in. */
6471
6904
  addedText?: (HelixFileInput["addedText"]) | undefined;
6905
+ /** A file's size under a kilobyte. `{count}` is how many bytes, written in
6906
+ the locale, and each language writes the forms it has. */
6907
+ "bytes-label"?: (HelixFileInput["bytesLabel"]) | undefined;
6908
+ /** A file's size under a kilobyte. `{count}` is how many bytes, written in
6909
+ the locale, and each language writes the forms it has. */
6910
+ bytesLabel?: (HelixFileInput["bytesLabel"]) | undefined;
6472
6911
  /** Which camera or microphone a mobile picker should offer, if any. */
6473
6912
  capture?: (HelixFileInput["capture"]) | undefined;
6474
6913
  /** Whether the picker chooses a folder, and the field takes every file in
6475
6914
  it. The platform's `webkitdirectory`. */
6476
6915
  directory?: (HelixFileInput["directory"]) | undefined;
6477
- /** Language tag the sizes are written in.
6478
-
6479
- Absent uses the runtime's own. */
6916
+ /** The locale the words, the sizes, and the numbers and lists in sentences
6917
+ are in, as a BCP 47 tag such as `pl`. Empty reads the nearest `lang`, then
6918
+ the browser's language. */
6480
6919
  locale?: (HelixFileInput["locale"]) | undefined;
6481
6920
  /** The most files the field holds, under `multiple`. Files past it are
6482
6921
  refused. */
@@ -6592,14 +7031,22 @@ export type HelixFilterChipVueProps = {
6592
7031
  `attribute` is spelled out because Lit lowercases a property name to
6593
7032
  derive one rather than dash-casing it, so this would otherwise be
6594
7033
  reachable only as `dismisslabel`, which nobody would guess and no linter
6595
- would catch. */
7034
+ would catch.
7035
+
7036
+ A word property: register it for a locale under the host's key. A family
7037
+ that names the control otherwise, such as Tag's `Remove {label}`,
7038
+ declares its own English with `@words` above the override. */
6596
7039
  "dismiss-label"?: (HelixFilterChip["dismissLabel"]) | undefined;
6597
7040
  /** The dismiss control's label, read by screen readers.
6598
7041
 
6599
7042
  `attribute` is spelled out because Lit lowercases a property name to
6600
7043
  derive one rather than dash-casing it, so this would otherwise be
6601
7044
  reachable only as `dismisslabel`, which nobody would guess and no linter
6602
- would catch. */
7045
+ would catch.
7046
+
7047
+ A word property: register it for a locale under the host's key. A family
7048
+ that names the control otherwise, such as Tag's `Remove {label}`,
7049
+ declares its own English with `@words` above the override. */
6603
7050
  dismissLabel?: (HelixFilterChip["dismissLabel"]) | undefined;
6604
7051
  /** The name of the field the filter is on, as shown on the chip.
6605
7052
 
@@ -6804,6 +7251,12 @@ as `+3`, does not say what it does. */
6804
7251
  "max-tags"?: (HelixFilterInput["maxTags"] | `${number}`) | undefined;
6805
7252
  /** How many tokens to show before the rest become a count. */
6806
7253
  maxTags?: (HelixFilterInput["maxTags"]) | undefined;
7254
+ /** The count of the tokens past `max-tags`, as it is shown, with `{count}`
7255
+ for the number, written in the element's locale. */
7256
+ "rest-text"?: (HelixFilterInput["restText"]) | undefined;
7257
+ /** The count of the tokens past `max-tags`, as it is shown, with `{count}`
7258
+ for the number, written in the element's locale. */
7259
+ restText?: (HelixFilterInput["restText"]) | undefined;
6807
7260
  /** The value the control starts with. A form reset returns it to this value,
6808
7261
  and to the `value` attribute where this one is not written, as a native
6809
7262
  control resets to the `value` it declares. */
@@ -6833,18 +7286,22 @@ browser's message. */
6833
7286
  required?: (HelixFilterInput["required"]) | undefined;
6834
7287
  /** The message shown when the field is required and empty.
6835
7288
 
6836
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
6837
- set and the browser's own on a text field, which the browser writes in
6838
- the reader's language. Every other word a control speaks is a property,
7289
+ **Absent, or empty, is the control's own sentence**, "Choose one to
7290
+ continue." on a set and the browser's own on a text field, which the
7291
+ browser writes in the reader's language. A family with a sentence of its
7292
+ own declares it as this property's English, a word property a page
7293
+ registers for its locale under the family's key. Every other word a control speaks is a property,
6839
7294
  and this one was the English a form in another language still spoke in
6840
7295
  the bubble it raises on submit: `feedback` replaces the message under
6841
7296
  the field and does not reach that one. */
6842
7297
  "value-missing-message"?: (HelixFilterInput["valueMissingMessage"]) | undefined;
6843
7298
  /** The message shown when the field is required and empty.
6844
7299
 
6845
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
6846
- set and the browser's own on a text field, which the browser writes in
6847
- the reader's language. Every other word a control speaks is a property,
7300
+ **Absent, or empty, is the control's own sentence**, "Choose one to
7301
+ continue." on a set and the browser's own on a text field, which the
7302
+ browser writes in the reader's language. A family with a sentence of its
7303
+ own declares it as this property's English, a word property a page
7304
+ registers for its locale under the family's key. Every other word a control speaks is a property,
6848
7305
  and this one was the English a form in another language still spoke in
6849
7306
  the bubble it raises on submit: `feedback` replaces the message under
6850
7307
  the field and does not reach that one. */
@@ -6874,13 +7331,21 @@ what you slot and you narrow it. */
6874
7331
 
6875
7332
  Not a label: it goes when typing starts. */
6876
7333
  placeholder?: (HelixFilterInput["placeholder"]) | undefined;
6877
- /** What a reader hears for one suggestion, with `{count}` filled in. */
7334
+ /** What a reader hears for one suggestion, where `suggestions-label` should
7335
+ not say it. `{count}` is the count. */
6878
7336
  "suggestion-label"?: (HelixFilterInput["suggestionLabel"]) | undefined;
6879
- /** What a reader hears for one suggestion, with `{count}` filled in. */
7337
+ /** What a reader hears for one suggestion, where `suggestions-label` should
7338
+ not say it. `{count}` is the count. */
6880
7339
  suggestionLabel?: (HelixFilterInput["suggestionLabel"]) | undefined;
6881
- /** What a reader hears for any other number of suggestions, with `{count}` filled in. */
7340
+ /** What a reader hears as the panel opens on its suggestions. `{count}` is
7341
+ how many, written in the locale, and each language writes the forms it
7342
+ has: `{count, plural, one {# sugestia} few {# sugestie} many {# sugestii}
7343
+ other {# sugestii}}`. */
6882
7344
  "suggestions-label"?: (HelixFilterInput["suggestionsLabel"]) | undefined;
6883
- /** What a reader hears for any other number of suggestions, with `{count}` filled in. */
7345
+ /** What a reader hears as the panel opens on its suggestions. `{count}` is
7346
+ how many, written in the locale, and each language writes the forms it
7347
+ has: `{count, plural, one {# sugestia} few {# sugestie} many {# sugestii}
7348
+ other {# sugestii}}`. */
6884
7349
  suggestionsLabel?: (HelixFilterInput["suggestionsLabel"]) | undefined;
6885
7350
  /** Whether the control is disabled and cannot be used.
6886
7351
 
@@ -7030,6 +7495,14 @@ each new line above the one before. */
7030
7495
  export type HelixFlexVueEvents = {};
7031
7496
 
7032
7497
  export type HelixFormatDateVueProps = {
7498
+ /** The calendar a date is written in: `gregory`, `buddhist`, `japanese`,
7499
+ `roc`, or `iso8601`, the calendars Date Picker and Date Input draw.
7500
+
7501
+ Absent is the locale's own where it is one of the five, such as
7502
+ `buddhist` for `th-TH`, and `gregory` for every other, such as `persian`
7503
+ for `fa-IR`, so a date written here reads as the same date a Date Picker
7504
+ beside it shows. */
7505
+ calendar?: (HelixFormatDate["calendar"]) | undefined;
7033
7506
  /** The timestamp, in any format `Date` can parse.
7034
7507
 
7035
7508
  An ISO string is what an API sends and what `<time datetime>` takes, so it
@@ -7063,6 +7536,14 @@ few characters and a date is not. */
7063
7536
  elapsed?: (HelixFormatDate["elapsed"]) | undefined;
7064
7537
  /** How the era is written, such as AD, where a date is shown. */
7065
7538
  era?: (HelixFormatDate["era"]) | undefined;
7539
+ /** Draws each field of a date in a part of its own: `weekday`, `day`,
7540
+ `month`, `year`, `era`, `hour`, `minute`, `second`, `day-period` and
7541
+ `time-zone-name`, so `::part(year)` can set the year apart.
7542
+
7543
+ Off by default, which draws the date as one run of text, as Shoelace and
7544
+ Web Awesome do. An `elapsed` or `relative` reading is one phrase either
7545
+ way. */
7546
+ fields?: (HelixFormatDate["fields"]) | undefined;
7066
7547
  /** Draws an `elapsed` or `relative` reading once and leaves it, where it
7067
7548
  would otherwise move on as it goes stale.
7068
7549
 
@@ -7168,12 +7649,6 @@ export type HelixGraphHelixGraphZoomElementEvent =
7168
7649
  HelixGraphElementEvent<HelixGraphZoomEvent>;
7169
7650
 
7170
7651
  export type HelixGraphVueProps = {
7171
- /** The hint shown when a surface waiting to be pressed is scrolled or
7172
- swiped over, with `gestures="activate"`. Absent is the family's own. */
7173
- "activate-hint-label"?: (HelixGraph["activateHintLabel"]) | undefined;
7174
- /** The hint shown when a surface waiting to be pressed is scrolled or
7175
- swiped over, with `gestures="activate"`. Absent is the family's own. */
7176
- activateHintLabel?: (HelixGraph["activateHintLabel"]) | undefined;
7177
7652
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
7178
7653
  `none`. A family can add words of its own.
7179
7654
 
@@ -7196,20 +7671,6 @@ of the frame. The
7196
7671
  stylesheet lays the cluster out by which buttons are in it rather than by
7197
7672
  this attribute, so the two defaults need no rule each. */
7198
7673
  controls?: (HelixGraph["controls"]) | undefined;
7199
- /** The name of the group of controls, read by screen readers.
7200
-
7201
- Absent is the family's own name for it, "Map controls" or "Board
7202
- controls", which names what the controls drive rather than the
7203
- mechanism. Written here to say it in another language, which every other
7204
- string this surface speaks already allowed and this one did not. */
7205
- "controls-label"?: (HelixGraph["controlsLabel"]) | undefined;
7206
- /** The name of the group of controls, read by screen readers.
7207
-
7208
- Absent is the family's own name for it, "Map controls" or "Board
7209
- controls", which names what the controls drive rather than the
7210
- mechanism. Written here to say it in another language, which every other
7211
- string this surface speaks already allowed and this one did not. */
7212
- controlsLabel?: (HelixGraph["controlsLabel"]) | undefined;
7213
7674
  /** Which corner the controls sit in.
7214
7675
 
7215
7676
  **Configurable because there is no safe default**, which is a collision
@@ -7312,26 +7773,6 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
7312
7773
  "pan-up-label"?: (HelixGraph["panUpLabel"]) | undefined;
7313
7774
  /** The pan up button's label. */
7314
7775
  panUpLabel?: (HelixGraph["panUpLabel"]) | undefined;
7315
- /** The hint shown when one finger swipes over a surface with
7316
- `gestures="cooperative"`. Absent is the family's own. */
7317
- "two-finger-hint-label"?: (HelixGraph["twoFingerHintLabel"]) | undefined;
7318
- /** The hint shown when one finger swipes over a surface with
7319
- `gestures="cooperative"`. Absent is the family's own. */
7320
- twoFingerHintLabel?: (HelixGraph["twoFingerHintLabel"]) | undefined;
7321
- /** The line shown while a surface with `gestures="activate"` has the
7322
- gestures. Absent is the family's own. */
7323
- "using-label"?: (HelixGraph["usingLabel"]) | undefined;
7324
- /** The line shown while a surface with `gestures="activate"` has the
7325
- gestures. Absent is the family's own. */
7326
- usingLabel?: (HelixGraph["usingLabel"]) | undefined;
7327
- /** The hint shown when the wheel scrolls past a surface with
7328
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
7329
- elsewhere. Absent is the family's own. */
7330
- "wheel-hint-label"?: (HelixGraph["wheelHintLabel"]) | undefined;
7331
- /** The hint shown when the wheel scrolls past a surface with
7332
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
7333
- elsewhere. Absent is the family's own. */
7334
- wheelHintLabel?: (HelixGraph["wheelHintLabel"]) | undefined;
7335
7776
  /** The zoom in button's label. */
7336
7777
  "zoom-in-label"?: (HelixGraph["zoomInLabel"]) | undefined;
7337
7778
  /** The zoom in button's label. */
@@ -7357,13 +7798,33 @@ Ignored once `active` is written. */
7357
7798
 
7358
7799
  Ignored once `active` is written. */
7359
7800
  defaultActive?: (HelixGraph["defaultActive"]) | undefined;
7360
- /** What the list says of a note's count, with `{count}`. */
7801
+ /** The hint shown when the graph, waiting to be pressed with
7802
+ `gestures="activate"`, is scrolled or swiped over. */
7803
+ "activate-hint-label"?: (HelixGraph["activateHintLabel"]) | undefined;
7804
+ /** The hint shown when the graph, waiting to be pressed with
7805
+ `gestures="activate"`, is scrolled or swiped over. */
7806
+ activateHintLabel?: (HelixGraph["activateHintLabel"]) | undefined;
7807
+ /** The name of the group of controls, read by screen readers, which names
7808
+ what the controls drive rather than the mechanism. */
7809
+ "controls-label"?: (HelixGraph["controlsLabel"]) | undefined;
7810
+ /** The name of the group of controls, read by screen readers, which names
7811
+ what the controls drive rather than the mechanism. */
7812
+ controlsLabel?: (HelixGraph["controlsLabel"]) | undefined;
7813
+ /** What the list says of how many notes it holds. `{count}` is the count,
7814
+ written in the locale, and each language writes the forms it has. */
7361
7815
  "count-label"?: (HelixGraph["countLabel"]) | undefined;
7362
- /** What the list says of a note's count, with `{count}`. */
7816
+ /** What the list says of how many notes it holds. `{count}` is the count,
7817
+ written in the locale, and each language writes the forms it has. */
7363
7818
  countLabel?: (HelixGraph["countLabel"]) | undefined;
7364
7819
  /** How many links from the selected note to show, for its local graph. Unset
7365
7820
  shows every note. The list holds what the drawing shows. */
7366
7821
  depth?: (HelixGraph["depth"]) | undefined;
7822
+ /** The graph's name where `label` is empty and the host has no
7823
+ `aria-label`. */
7824
+ "fallback-label"?: (HelixGraph["fallbackLabel"]) | undefined;
7825
+ /** The graph's name where `label` is empty and the host has no
7826
+ `aria-label`. */
7827
+ fallbackLabel?: (HelixGraph["fallbackLabel"]) | undefined;
7367
7828
  /** The graph's name, read by screen readers, such as "Research notes".
7368
7829
  Required. */
7369
7830
  label?: (HelixGraph["label"]) | undefined;
@@ -7386,6 +7847,22 @@ or hides its notes. Drawn where the notes have two groups or more. */
7386
7847
  "links-to-label"?: (HelixGraph["linksToLabel"]) | undefined;
7387
7848
  /** How a note that links to the selected one is described, with `{note}`. */
7388
7849
  linksToLabel?: (HelixGraph["linksToLabel"]) | undefined;
7850
+ /** What screen readers hear once the drawing has moved down, after `moved()`. */
7851
+ "moved-down-label"?: (HelixGraph["movedDownLabel"]) | undefined;
7852
+ /** What screen readers hear once the drawing has moved down, after `moved()`. */
7853
+ movedDownLabel?: (HelixGraph["movedDownLabel"]) | undefined;
7854
+ /** What screen readers hear once the drawing has moved left, after `moved()`. */
7855
+ "moved-left-label"?: (HelixGraph["movedLeftLabel"]) | undefined;
7856
+ /** What screen readers hear once the drawing has moved left, after `moved()`. */
7857
+ movedLeftLabel?: (HelixGraph["movedLeftLabel"]) | undefined;
7858
+ /** What screen readers hear once the drawing has moved right, after `moved()`. */
7859
+ "moved-right-label"?: (HelixGraph["movedRightLabel"]) | undefined;
7860
+ /** What screen readers hear once the drawing has moved right, after `moved()`. */
7861
+ movedRightLabel?: (HelixGraph["movedRightLabel"]) | undefined;
7862
+ /** What screen readers hear once the drawing has moved up, after `moved()`. */
7863
+ "moved-up-label"?: (HelixGraph["movedUpLabel"]) | undefined;
7864
+ /** What screen readers hear once the drawing has moved up, after `moved()`. */
7865
+ movedUpLabel?: (HelixGraph["movedUpLabel"]) | undefined;
7389
7866
  /** Leaves the search and the list out of the frame, behind a button among
7390
7867
  its controls that opens them over the drawing. For a graph shown large,
7391
7868
  such as at the top of a page, where the drawing takes the whole frame. */
@@ -7406,6 +7883,28 @@ such as at the top of a page, where the drawing takes the whole frame. */
7406
7883
  "selected-label"?: (HelixGraph["selectedLabel"]) | undefined;
7407
7884
  /** How the selected note is described in the list. */
7408
7885
  selectedLabel?: (HelixGraph["selectedLabel"]) | undefined;
7886
+ /** The hint shown when one finger swipes over the graph with `gestures="cooperative"`. */
7887
+ "two-finger-hint-label"?: (HelixGraph["twoFingerHintLabel"]) | undefined;
7888
+ /** The hint shown when one finger swipes over the graph with `gestures="cooperative"`. */
7889
+ twoFingerHintLabel?: (HelixGraph["twoFingerHintLabel"]) | undefined;
7890
+ /** The line shown while the graph, with `gestures="activate"`, has the gestures. */
7891
+ "using-label"?: (HelixGraph["usingLabel"]) | undefined;
7892
+ /** The line shown while the graph, with `gestures="activate"`, has the gestures. */
7893
+ usingLabel?: (HelixGraph["usingLabel"]) | undefined;
7894
+ /** The hint shown when the wheel scrolls past the graph with
7895
+ `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere. */
7896
+ "wheel-hint-label"?: (HelixGraph["wheelHintLabel"]) | undefined;
7897
+ /** The hint shown when the wheel scrolls past the graph with
7898
+ `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere. */
7899
+ wheelHintLabel?: (HelixGraph["wheelHintLabel"]) | undefined;
7900
+ /** What screen readers hear once the drawing has zoomed in, after `moved()`. */
7901
+ "zoomed-in-label"?: (HelixGraph["zoomedInLabel"]) | undefined;
7902
+ /** What screen readers hear once the drawing has zoomed in, after `moved()`. */
7903
+ zoomedInLabel?: (HelixGraph["zoomedInLabel"]) | undefined;
7904
+ /** What screen readers hear once the drawing has zoomed out, after `moved()`. */
7905
+ "zoomed-out-label"?: (HelixGraph["zoomedOutLabel"]) | undefined;
7906
+ /** What screen readers hear once the drawing has zoomed out, after `moved()`. */
7907
+ zoomedOutLabel?: (HelixGraph["zoomedOutLabel"]) | undefined;
7409
7908
  /** The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute. */
7410
7909
  hiddenGroups?: (HelixGraph["hiddenGroups"]) | undefined;
7411
7910
  /** The links between notes, each from `source` to `target`. A property, never an attribute. */
@@ -7423,7 +7922,7 @@ export type HelixGraphVueEvents = {
7423
7922
  "helix-graph-filter": HelixGraphHelixGraphFilterElementEvent;
7424
7923
  /** A layout settled, with where it put each note, sent by `laidOut()`. Keep the positions and pass them back as each note's `x` and `y`, and `z` where a renderer draws in three dimensions. */
7425
7924
  "helix-graph-layout": HelixGraphHelixGraphLayoutElementEvent;
7426
- /** A pan button or arrow key was pressed. `connectGraph` moves the drawing. */
7925
+ /** A pan button or arrow key was pressed. `connectGraph` moves the drawing, then calls `moved()`. */
7427
7926
  "helix-graph-pan": HelixGraphHelixGraphPanElementEvent;
7428
7927
  /** The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it. */
7429
7928
  "helix-graph-part-change": HelixGraphHelixGraphPartChangeElementEvent;
@@ -7431,7 +7930,7 @@ export type HelixGraphVueEvents = {
7431
7930
  "helix-graph-ready": HelixGraphHelixGraphReadyElementEvent;
7432
7931
  /** Something passed between two notes, sent by `signal()`. Used by `connectGraph`; pages do not need to listen for it. */
7433
7932
  "helix-graph-signal": HelixGraphHelixGraphSignalElementEvent;
7434
- /** A zoom button or key was pressed. `connectGraph` zooms the drawing. */
7933
+ /** A zoom button or key was pressed. `connectGraph` zooms the drawing, then calls `moved()`. */
7435
7934
  "helix-graph-zoom": HelixGraphHelixGraphZoomElementEvent;
7436
7935
  };
7437
7936
 
@@ -7549,8 +8048,8 @@ words and is already written. */
7549
8048
  /** The locale the chart's own numbers are written in: its axis, its
7550
8049
  percentages and its totals, such as `de` for `1.240` and `32 %`.
7551
8050
 
7552
- Absent uses the runtime's own. The table's cells are shown as the table
7553
- writes them, whatever this says. */
8051
+ Absent reads the nearest `lang`, then the runtime's own. The table's
8052
+ cells are shown as the table writes them, whatever this says. */
7554
8053
  locale?: (HelixHeatmap["locale"]) | undefined;
7555
8054
  /** Where a reading the keys moved to stands among the readings, said after
7556
8055
  it. `{position}` and `{count}` are replaced with the numbers, written in
@@ -7568,9 +8067,11 @@ Set it to the words of the page's language, such as `{position} von
7568
8067
  {count}`, or to nothing to say no position. A slice or a series a
7569
8068
  legend hid is not counted. */
7570
8069
  positionLabel?: (HelixHeatmap["positionLabel"]) | undefined;
7571
- /** The word the `overview` puts before the busiest reading. */
8070
+ /** The name the `overview` gives the busiest reading, `{busiestLabel}` in
8071
+ `overview-label`. */
7572
8072
  "busiest-label"?: (HelixHeatmap["busiestLabel"]) | undefined;
7573
- /** The word the `overview` puts before the busiest reading. */
8073
+ /** The name the `overview` gives the busiest reading, `{busiestLabel}` in
8074
+ `overview-label`. */
7574
8075
  busiestLabel?: (HelixHeatmap["busiestLabel"]) | undefined;
7575
8076
  /** Shown when the table has no readings in it.
7576
8077
 
@@ -7621,6 +8122,16 @@ plan around.
7621
8122
  Zero turns the dropping off altogether, which is right for a strip in a
7622
8123
  container that cannot get narrow. */
7623
8124
  minCell?: (HelixHeatmap["minCell"]) | undefined;
8125
+ /** The `overview`'s sentence. `{busiestLabel}` and `{totalLabel}` are
8126
+ `busiest-label` and `total-label`, `{busiest}` the busiest reading's name
8127
+ and its reading as the table writes it, and `{total}` the total of the
8128
+ readings drawn, written in the locale. */
8129
+ "overview-label"?: (HelixHeatmap["overviewLabel"]) | undefined;
8130
+ /** The `overview`'s sentence. `{busiestLabel}` and `{totalLabel}` are
8131
+ `busiest-label` and `total-label`, `{busiest}` the busiest reading's name
8132
+ and its reading as the table writes it, and `{total}` the total of the
8133
+ readings drawn, written in the locale. */
8134
+ overviewLabel?: (HelixHeatmap["overviewLabel"]) | undefined;
7624
8135
  /** How many rows the strip has.
7625
8136
 
7626
8137
  `1` is a status strip and `7` is a calendar week, which are the two readings
@@ -7629,11 +8140,23 @@ calendar heatmap does: a week is a column, so the strip reads along the
7629
8140
  line in weeks, from the right on a right-to-left page, and top to bottom in
7630
8141
  days. */
7631
8142
  rows?: (HelixHeatmap["rows"]) | undefined;
7632
- /** What the `selection` part says after the selection changes, with `{count}` for
7633
- how many cells are selected. */
8143
+ /** What the readout adds for a selected cell, under `selection-mode`, after
8144
+ where the cell stands: "Day 1: 0 (1 of 14, selected)". Empty adds
8145
+ nothing. */
8146
+ "selected-label"?: (HelixHeatmap["selectedLabel"]) | undefined;
8147
+ /** What the readout adds for a selected cell, under `selection-mode`, after
8148
+ where the cell stands: "Day 1: 0 (1 of 14, selected)". Empty adds
8149
+ nothing. */
8150
+ selectedLabel?: (HelixHeatmap["selectedLabel"]) | undefined;
8151
+ /** What the `selection` part says after the selection changes. `{count}` is
8152
+ how many cells are selected, written in the locale, and a language that
8153
+ needs plural forms writes them: `{count, plural, one {# wybrany} few
8154
+ {# wybrane} many {# wybranych} other {# wybranego}}`. */
7634
8155
  "selection-label"?: (HelixHeatmap["selectionLabel"]) | undefined;
7635
- /** What the `selection` part says after the selection changes, with `{count}` for
7636
- how many cells are selected. */
8156
+ /** What the `selection` part says after the selection changes. `{count}` is
8157
+ how many cells are selected, written in the locale, and a language that
8158
+ needs plural forms writes them: `{count, plural, one {# wybrany} few
8159
+ {# wybrane} many {# wybranych} other {# wybranego}}`. */
7637
8160
  selectionLabel?: (HelixHeatmap["selectionLabel"]) | undefined;
7638
8161
  /** How many cells a reader can select: `single` or `multiple`.
7639
8162
 
@@ -7643,6 +8166,12 @@ Absent selects nothing, and a press or Space does what it did. */
7643
8166
 
7644
8167
  Absent selects nothing, and a press or Space does what it did. */
7645
8168
  selectionMode?: (HelixHeatmap["selectionMode"]) | undefined;
8169
+ /** The strip's name where the chart has none: no `aria-label`, `label`, or
8170
+ table caption. */
8171
+ "strip-label"?: (HelixHeatmap["stripLabel"]) | undefined;
8172
+ /** The strip's name where the chart has none: no `aria-label`, `label`, or
8173
+ table caption. */
8174
+ stripLabel?: (HelixHeatmap["stripLabel"]) | undefined;
7646
8175
  /** Lower bounds for the tone buckets, in the order the tones are given.
7647
8176
 
7648
8177
  `thresholds="1 3 6 9"` with `tones="1 2 3 4"` puts 1 and 2 in the ramp's
@@ -7661,9 +8190,11 @@ compare two hues at all. `tones="surface info accent success primary"` for a
7661
8190
  commit count is five unrelated hues for five amounts, which is confetti with
7662
8191
  no order in it. */
7663
8192
  tones?: (HelixHeatmap["tones"]) | undefined;
7664
- /** The word the `overview` puts before the total of the readings drawn. */
8193
+ /** The name the `overview` gives the total of the readings drawn,
8194
+ `{totalLabel}` in `overview-label`. */
7665
8195
  "total-label"?: (HelixHeatmap["totalLabel"]) | undefined;
7666
- /** The word the `overview` puts before the total of the readings drawn. */
8196
+ /** The name the `overview` gives the total of the readings drawn,
8197
+ `{totalLabel}` in `overview-label`. */
7667
8198
  totalLabel?: (HelixHeatmap["totalLabel"]) | undefined;
7668
8199
  /** The selected cells, by the names their rows have in the table, such as
7669
8200
  `2026-06-11`, separated by commas.
@@ -7798,7 +8329,11 @@ not text.
7798
8329
 
7799
8330
  Lives here rather than only on `IconButton` so the two share one render.
7800
8331
  An icon-only button without it is a control a screen reader announces as
7801
- "button" and nothing else. */
8332
+ "button" and nothing else.
8333
+
8334
+ Undefaulted, so a subclass's own default, such as Copy Button's `Copy`, is
8335
+ the first value its element receives and so the English its words fall
8336
+ back to. */
7802
8337
  label?: (HelixIconButton["label"]) | undefined;
7803
8338
  /** Whether the action the button started is still running.
7804
8339
 
@@ -8114,18 +8649,22 @@ browser's message. */
8114
8649
  required?: (HelixInput["required"]) | undefined;
8115
8650
  /** The message shown when the field is required and empty.
8116
8651
 
8117
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
8118
- set and the browser's own on a text field, which the browser writes in
8119
- the reader's language. Every other word a control speaks is a property,
8652
+ **Absent, or empty, is the control's own sentence**, "Choose one to
8653
+ continue." on a set and the browser's own on a text field, which the
8654
+ browser writes in the reader's language. A family with a sentence of its
8655
+ own declares it as this property's English, a word property a page
8656
+ registers for its locale under the family's key. Every other word a control speaks is a property,
8120
8657
  and this one was the English a form in another language still spoke in
8121
8658
  the bubble it raises on submit: `feedback` replaces the message under
8122
8659
  the field and does not reach that one. */
8123
8660
  "value-missing-message"?: (HelixInput["valueMissingMessage"]) | undefined;
8124
8661
  /** The message shown when the field is required and empty.
8125
8662
 
8126
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
8127
- set and the browser's own on a text field, which the browser writes in
8128
- the reader's language. Every other word a control speaks is a property,
8663
+ **Absent, or empty, is the control's own sentence**, "Choose one to
8664
+ continue." on a set and the browser's own on a text field, which the
8665
+ browser writes in the reader's language. A family with a sentence of its
8666
+ own declares it as this property's English, a word property a page
8667
+ registers for its locale under the family's key. Every other word a control speaks is a property,
8129
8668
  and this one was the English a form in another language still spoke in
8130
8669
  the bubble it raises on submit: `feedback` replaces the message under
8131
8670
  the field and does not reach that one. */
@@ -8602,6 +9141,10 @@ interface. */
8602
9141
  /** The close control's accessible name. Translate it with the rest of your
8603
9142
  interface. */
8604
9143
  dismissLabel?: (HelixLightbox["dismissLabel"]) | undefined;
9144
+ /** The viewer's name where `label` is empty. */
9145
+ "fallback-label"?: (HelixLightbox["fallbackLabel"]) | undefined;
9146
+ /** The viewer's name where `label` is empty. */
9147
+ fallbackLabel?: (HelixLightbox["fallbackLabel"]) | undefined;
8605
9148
  /** How long the user can be idle before the header and footer hide, in
8606
9149
  milliseconds.
8607
9150
 
@@ -8635,10 +9178,10 @@ keep the chrome up is the consumer's to decide with this. */
8635
9178
  /** The previous control's accessible name. */
8636
9179
  previousLabel?: (HelixLightbox["previousLabel"]) | undefined;
8637
9180
  /** The name of an item with no `label` of its own, with `{index}` and
8638
- `{count}` filled in. */
9181
+ `{count}` filled in, written in the locale. */
8639
9182
  "slide-label"?: (HelixLightbox["slideLabel"]) | undefined;
8640
9183
  /** The name of an item with no `label` of its own, with `{index}` and
8641
- `{count}` filled in. */
9184
+ `{count}` filled in, written in the locale. */
8642
9185
  slideLabel?: (HelixLightbox["slideLabel"]) | undefined;
8643
9186
  /** The word screen readers announce in place of an item's role, set as
8644
9187
  `aria-roledescription`. Translate it with the rest of your text, or empty
@@ -8649,14 +9192,14 @@ it to leave the role as `group`. */
8649
9192
  it to leave the role as `group`. */
8650
9193
  slideRoleLabel?: (HelixLightbox["slideRoleLabel"]) | undefined;
8651
9194
  /** The status text that says which item is shown, with `{index}`, `{count}`
8652
- and the item's `{label}` filled in.
9195
+ and the item's `{label}` filled in, the numbers written in the locale.
8653
9196
 
8654
9197
  Announced rather than only drawn, because the picture changing under a
8655
9198
  reader who cannot see it is otherwise silent. A consumer who has their own
8656
9199
  counter in the chrome can empty this and say it themselves. */
8657
9200
  "status-label"?: (HelixLightbox["statusLabel"]) | undefined;
8658
9201
  /** The status text that says which item is shown, with `{index}`, `{count}`
8659
- and the item's `{label}` filled in.
9202
+ and the item's `{label}` filled in, the numbers written in the locale.
8660
9203
 
8661
9204
  Announced rather than only drawn, because the picture changing under a
8662
9205
  reader who cannot see it is otherwise silent. A consumer who has their own
@@ -8670,11 +9213,17 @@ counter in the chrome can empty this and say it themselves. */
8670
9213
  "zoom-out-label"?: (HelixLightbox["zoomOutLabel"]) | undefined;
8671
9214
  /** The zoom-out control's accessible name. */
8672
9215
  zoomOutLabel?: (HelixLightbox["zoomOutLabel"]) | undefined;
8673
- /** What the live region says once a reader has stopped zooming, with the
8674
- scale as a whole `{percent}` filled in. Empty it to say nothing. */
9216
+ /** What the live region says once a reader has stopped zooming. `{scale,
9217
+ number, percent}` writes the scale as a percentage the way the locale
9218
+ writes one, such as `150%`, or `150 %` in French. `{percent}` is the same
9219
+ scale as a whole number, for a sentence that places the sign itself. Empty
9220
+ it to say nothing. */
8675
9221
  "zoom-status-label"?: (HelixLightbox["zoomStatusLabel"]) | undefined;
8676
- /** What the live region says once a reader has stopped zooming, with the
8677
- scale as a whole `{percent}` filled in. Empty it to say nothing. */
9222
+ /** What the live region says once a reader has stopped zooming. `{scale,
9223
+ number, percent}` writes the scale as a percentage the way the locale
9224
+ writes one, such as `150%`, or `150 %` in French. `{percent}` is the same
9225
+ scale as a whole number, for a sentence that places the sign itself. Empty
9226
+ it to say nothing. */
8678
9227
  zoomStatusLabel?: (HelixLightbox["zoomStatusLabel"]) | undefined;
8679
9228
  };
8680
9229
 
@@ -8751,8 +9300,8 @@ words and is already written. */
8751
9300
  /** The locale the chart's own numbers are written in: its axis, its
8752
9301
  percentages and its totals, such as `de` for `1.240` and `32 %`.
8753
9302
 
8754
- Absent uses the runtime's own. The table's cells are shown as the table
8755
- writes them, whatever this says. */
9303
+ Absent reads the nearest `lang`, then the runtime's own. The table's
9304
+ cells are shown as the table writes them, whatever this says. */
8756
9305
  locale?: (HelixLineChart["locale"]) | undefined;
8757
9306
  /** Where a reading the keys moved to stands among the readings, said after
8758
9307
  it. `{position}` and `{count}` are replaced with the numbers, written in
@@ -8920,6 +9469,14 @@ Written by a list with `selection-mode` on every row it holds, and unset
8920
9469
  otherwise, which is how a row knows it is a row of a grid. No attribute:
8921
9470
  it is coordination between elements, as `Tag.focusable` is. */
8922
9471
  focusable?: (HelixListItem["focusable"]) | undefined;
9472
+ /** The name of the row's grip, written by a `reorderable` list from its
9473
+ `move-label`, and unset in a list that does not reorder, which draws no
9474
+ grip. No attribute: it is coordination between elements, as `focusable`
9475
+ is. */
9476
+ grip?: (HelixListItem["grip"]) | undefined;
9477
+ /** Where the row stands in a move, written by a `reorderable` list: the row
9478
+ being moved, or the one the drop indicator is beside. Unset otherwise. */
9479
+ move?: (HelixListItem["move"]) | undefined;
8923
9480
  /** Whether the row is selected, in a list that selects.
8924
9481
 
8925
9482
  Written by the list from its own `value`, and unset where nothing can be
@@ -8940,6 +9497,12 @@ export type HelixListHelixActionElementEvent =
8940
9497
  /** `helix-before-change` event type */
8941
9498
  export type HelixListHelixBeforeChangeElementEvent =
8942
9499
  HelixListElementEvent<HelixBeforeChangeEvent>;
9500
+ /** `helix-before-reorder` event type */
9501
+ export type HelixListHelixBeforeReorderElementEvent =
9502
+ HelixListElementEvent<HelixBeforeReorderEvent>;
9503
+ /** `helix-reorder` event type */
9504
+ export type HelixListHelixReorderElementEvent =
9505
+ HelixListElementEvent<HelixReorderEvent>;
8943
9506
 
8944
9507
  export type HelixListVueProps = {
8945
9508
  /** Draws a line between rows. */
@@ -8959,6 +9522,16 @@ fact about the content, which `kind` carries on the headless tier, and
8959
9522
  A rail replaces the marker rather than joining it, so it applies to
8960
9523
  `unordered` too, where it numbers what a bullet did not. */
8961
9524
  marker?: (HelixList["marker"]) | undefined;
9525
+ /** What screen readers hear when a held row is put back, or a move is
9526
+ refused, in a `reorderable` list. */
9527
+ "canceled-label"?: (HelixList["canceledLabel"]) | undefined;
9528
+ /** What screen readers hear when a held row is put back, or a move is
9529
+ refused, in a `reorderable` list. */
9530
+ canceledLabel?: (HelixList["canceledLabel"]) | undefined;
9531
+ /** What screen readers hear when a row is dropped, in a `reorderable` list. */
9532
+ "dropped-label"?: (HelixList["droppedLabel"]) | undefined;
9533
+ /** What screen readers hear when a row is dropped, in a `reorderable` list. */
9534
+ droppedLabel?: (HelixList["droppedLabel"]) | undefined;
8962
9535
  /** The kind of list, which follows from the content.
8963
9536
 
8964
9537
  On the headless tier because it is meaning rather than decoration, the same
@@ -8982,6 +9555,29 @@ has to survive with the stylesheet turned off.
8982
9555
  kind?: (HelixList["kind"]) | undefined;
8983
9556
  /** The list's name, read by screen readers. */
8984
9557
  label?: (HelixList["label"]) | undefined;
9558
+ /** What screen readers hear each time an arrow key moves a held row, in a
9559
+ `reorderable` list. `{name}` is the row's words, `{position}` the place it
9560
+ would go, counting from 1, and `{count}` the number of rows. */
9561
+ "moved-label"?: (HelixList["movedLabel"]) | undefined;
9562
+ /** What screen readers hear each time an arrow key moves a held row, in a
9563
+ `reorderable` list. `{name}` is the row's words, `{position}` the place it
9564
+ would go, counting from 1, and `{count}` the number of rows. */
9565
+ movedLabel?: (HelixList["movedLabel"]) | undefined;
9566
+ /** The name of each row's grip, in a `reorderable` list. `{name}` is
9567
+ replaced with the row's words. */
9568
+ "move-label"?: (HelixList["moveLabel"]) | undefined;
9569
+ /** The name of each row's grip, in a `reorderable` list. `{name}` is
9570
+ replaced with the row's words. */
9571
+ moveLabel?: (HelixList["moveLabel"]) | undefined;
9572
+ /** What screen readers hear when a key or a click picks up a row, in a
9573
+ `reorderable` list. `{name}` is the row's words. */
9574
+ "picked-up-label"?: (HelixList["pickedUpLabel"]) | undefined;
9575
+ /** What screen readers hear when a key or a click picks up a row, in a
9576
+ `reorderable` list. `{name}` is the row's words. */
9577
+ pickedUpLabel?: (HelixList["pickedUpLabel"]) | undefined;
9578
+ /** Lets you move rows by dragging a grip, or with the keys. The list moves no
9579
+ row itself: you move your data on `helix-reorder`. */
9580
+ reorderable?: (HelixList["reorderable"]) | undefined;
8985
9581
  /** Numbers an ordered list downward, so the count falls row by row and ends at
8986
9582
  its last row, as `<ol reversed>` does. */
8987
9583
  reversed?: (HelixList["reversed"]) | undefined;
@@ -9028,6 +9624,10 @@ export type HelixListVueEvents = {
9028
9624
  "helix-action": HelixListHelixActionElementEvent;
9029
9625
  /** Fired before a press changes which rows are selected, with the `value` it would leave. Cancelable. */
9030
9626
  "helix-before-change": HelixListHelixBeforeChangeElementEvent;
9627
+ /** 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. */
9628
+ "helix-before-reorder": HelixListHelixBeforeReorderElementEvent;
9629
+ /** 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. */
9630
+ "helix-reorder": HelixListHelixReorderElementEvent;
9031
9631
  };
9032
9632
 
9033
9633
  /** `HelixListbox` component event */
@@ -9035,12 +9635,18 @@ export type HelixListboxElementEvent<E = Event> = TypedEvent<HelixListbox, E>;
9035
9635
  /** `helix-before-change` event type */
9036
9636
  export type HelixListboxHelixBeforeChangeElementEvent =
9037
9637
  HelixListboxElementEvent<HelixBeforeChangeEvent>;
9638
+ /** `helix-before-reorder` event type */
9639
+ export type HelixListboxHelixBeforeReorderElementEvent =
9640
+ HelixListboxElementEvent<HelixBeforeReorderEvent>;
9038
9641
  /** `helix-filter` event type */
9039
9642
  export type HelixListboxHelixFilterElementEvent =
9040
9643
  HelixListboxElementEvent<HelixFilterEvent>;
9041
9644
  /** `helix-load-more` event type */
9042
9645
  export type HelixListboxHelixLoadMoreElementEvent =
9043
9646
  HelixListboxElementEvent<HelixLoadMoreEvent>;
9647
+ /** `helix-reorder` event type */
9648
+ export type HelixListboxHelixReorderElementEvent =
9649
+ HelixListboxElementEvent<HelixReorderEvent>;
9044
9650
 
9045
9651
  export type HelixListboxVueProps = {
9046
9652
  /** The text shown and announced when there are no rows and none are loading. */
@@ -9086,28 +9692,36 @@ browser's message. */
9086
9692
  required?: (HelixListbox["required"]) | undefined;
9087
9693
  /** The message shown when the field is required and empty.
9088
9694
 
9089
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
9090
- set and the browser's own on a text field, which the browser writes in
9091
- the reader's language. Every other word a control speaks is a property,
9695
+ **Absent, or empty, is the control's own sentence**, "Choose one to
9696
+ continue." on a set and the browser's own on a text field, which the
9697
+ browser writes in the reader's language. A family with a sentence of its
9698
+ own declares it as this property's English, a word property a page
9699
+ registers for its locale under the family's key. Every other word a control speaks is a property,
9092
9700
  and this one was the English a form in another language still spoke in
9093
9701
  the bubble it raises on submit: `feedback` replaces the message under
9094
9702
  the field and does not reach that one. */
9095
9703
  "value-missing-message"?: (HelixListbox["valueMissingMessage"]) | undefined;
9096
9704
  /** The message shown when the field is required and empty.
9097
9705
 
9098
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
9099
- set and the browser's own on a text field, which the browser writes in
9100
- the reader's language. Every other word a control speaks is a property,
9706
+ **Absent, or empty, is the control's own sentence**, "Choose one to
9707
+ continue." on a set and the browser's own on a text field, which the
9708
+ browser writes in the reader's language. A family with a sentence of its
9709
+ own declares it as this property's English, a word property a page
9710
+ registers for its locale under the family's key. Every other word a control speaks is a property,
9101
9711
  and this one was the English a form in another language still spoke in
9102
9712
  the bubble it raises on submit: `feedback` replaces the message under
9103
9713
  the field and does not reach that one. */
9104
9714
  valueMissingMessage?: (HelixListbox["valueMissingMessage"]) | undefined;
9105
- /** What the browser may autofill in the text field, as a platform token.
9715
+ /** What a browser's autofill may choose, as a platform token such as
9716
+ `country` or `cc-exp-month`, as a native `<select>` takes it.
9106
9717
 
9107
- **Defaults to `off`, which is not the platform's default and is the
9108
- point.** The field filters a list rather than collecting a value, so a
9109
- browser offering to fill it with a saved address is competing for the same
9110
- keystrokes as the listbox. A consumer who wants autofill can still ask. */
9718
+ Set, the list draws a hidden native `<select>` with the same options for
9719
+ the browser to fill, as React Aria's `HiddenSelect` does, and a fill
9720
+ chooses the option. `off`, the default, draws none.
9721
+
9722
+ **The filter field is never filled.** It narrows the list rather than
9723
+ collecting a value, so a browser offering it a saved address competes
9724
+ with the reader for the same keystrokes: it is always `off`. */
9111
9725
  autocomplete?: (HelixListbox["autocomplete"]) | undefined;
9112
9726
  /** The filter text the list starts with, when `filter` is not set. */
9113
9727
  "default-filter"?: (HelixListbox["defaultFilter"]) | undefined;
@@ -9147,14 +9761,27 @@ act on the list the reader expects. */
9147
9761
  "filter-label"?: (HelixListbox["filterLabel"]) | undefined;
9148
9762
  /** Placeholder text for the filter field. */
9149
9763
  filterLabel?: (HelixListbox["filterLabel"]) | undefined;
9764
+ /** How the options are laid out, which the arrow keys follow: `stack`, one
9765
+ under another, or `grid`, in rows and columns, as React Aria's `ListBox`
9766
+ lays out cards or photos. With `grid`, Up and Down move within a column,
9767
+ and Left and Right along the list, mirrored right to left.
9768
+
9769
+ The columns are the stylesheet's: the styled tier draws them at
9770
+ `--listbox-column-min-inline-size` or wider, and a headless list lays out
9771
+ `::part(items)` as it likes, since the keys read where each option is
9772
+ drawn. A list of `items` stays a stack. Left out, the list is a stack,
9773
+ and the host carries no attribute for it. */
9774
+ layout?: (HelixListbox["layout"]) | undefined;
9150
9775
  /** What the list says when its options could not be loaded, such as after a
9151
- request to a server fails. Empty is no error.
9776
+ request to a server fails. Empty, null or no attribute is no error, so
9777
+ removing the attribute clears it.
9152
9778
 
9153
9779
  Set, it shows under any options there are, in place of `empty-text` and
9154
9780
  `loading-text`, and a screen reader hears it. Clear it when you ask again. */
9155
9781
  "load-error"?: (HelixListbox["loadError"]) | undefined;
9156
9782
  /** What the list says when its options could not be loaded, such as after a
9157
- request to a server fails. Empty is no error.
9783
+ request to a server fails. Empty, null or no attribute is no error, so
9784
+ removing the attribute clears it.
9158
9785
 
9159
9786
  Set, it shows under any options there are, in place of `empty-text` and
9160
9787
  `loading-text`, and a screen reader hears it. Clear it when you ask again. */
@@ -9166,7 +9793,10 @@ By default a single-choice list chooses as the arrows move, as a radio
9166
9793
  group does. Select and Time Input set this on the list in their panel, so
9167
9794
  a reader can move through the options before closing the panel on one. */
9168
9795
  manual?: (HelixListbox["manual"]) | undefined;
9169
- /** Whether more than one option can be chosen. */
9796
+ /** Whether more than one option can be chosen.
9797
+
9798
+ A press then toggles the option pressed, and Shift with a press adds every
9799
+ option from the one last chosen to it, as React Aria's list does. */
9170
9800
  multiple?: (HelixListbox["multiple"]) | undefined;
9171
9801
  /** The text shown when a filter hides every option of a list that has some.
9172
9802
 
@@ -9178,26 +9808,35 @@ matches what you typed" from "there is nothing here". */
9178
9808
  Absent, the list says `empty-text` in both cases. Set it to tell "nothing
9179
9809
  matches what you typed" from "there is nothing here". */
9180
9810
  noResultsText?: (HelixListbox["noResultsText"]) | undefined;
9181
- /** What a screen reader hears when a filter leaves one option. `{count}` is
9182
- the count. */
9811
+ /** Lets a reader move options, once `@fusion.dev/helix/listbox/reorder` (or
9812
+ `@fusion.dev/helix-headless/listbox/reorder`) is imported: Alt with an
9813
+ arrow moves the highlighted option, and a pointer drags one. The list
9814
+ moves no option itself: you move your options, or your `items`, on
9815
+ `helix-reorder`. Without that import it does nothing, so a list that never
9816
+ moves options carries none of the code. */
9817
+ reorderable?: (HelixListbox["reorderable"]) | undefined;
9818
+ /** What a screen reader hears when a filter leaves one option, where
9819
+ `results-label` should not say it. `{count}` is the count. */
9183
9820
  "result-label"?: (HelixListbox["resultLabel"]) | undefined;
9184
- /** What a screen reader hears when a filter leaves one option. `{count}` is
9185
- the count. */
9821
+ /** What a screen reader hears when a filter leaves one option, where
9822
+ `results-label` should not say it. `{count}` is the count. */
9186
9823
  resultLabel?: (HelixListbox["resultLabel"]) | undefined;
9187
- /** What a screen reader hears when a filter leaves any other number of
9188
- options. `{count}` is the count.
9189
-
9190
- **Two sentences, chosen by `Intl.PluralRules`**, which is Data Table's
9191
- pair: a language with more forms than two picks the one for its `one` and
9192
- writes the rest here. */
9824
+ /** What a screen reader hears when a filter narrows the list. `{count}` is
9825
+ how many options are left, written in the locale, and each language
9826
+ writes the forms it has: `{count, plural, one {# wynik} few {# wyniki}
9827
+ many {# wyników} other {# wyniku}}`. */
9193
9828
  "results-label"?: (HelixListbox["resultsLabel"]) | undefined;
9194
- /** What a screen reader hears when a filter leaves any other number of
9195
- options. `{count}` is the count.
9196
-
9197
- **Two sentences, chosen by `Intl.PluralRules`**, which is Data Table's
9198
- pair: a language with more forms than two picks the one for its `one` and
9199
- writes the rest here. */
9829
+ /** What a screen reader hears when a filter narrows the list. `{count}` is
9830
+ how many options are left, written in the locale, and each language
9831
+ writes the forms it has: `{count, plural, one {# wynik} few {# wyniki}
9832
+ many {# wyników} other {# wyniku}}`. */
9200
9833
  resultsLabel?: (HelixListbox["resultsLabel"]) | undefined;
9834
+ /** What VoiceOver hears as the highlight reaches a chosen option from the
9835
+ filter field, on Apple devices. `{name}` is the option's words. */
9836
+ "selected-label"?: (HelixListbox["selectedLabel"]) | undefined;
9837
+ /** What VoiceOver hears as the highlight reaches a chosen option from the
9838
+ filter field, on Apple devices. `{name}` is the option's words. */
9839
+ selectedLabel?: (HelixListbox["selectedLabel"]) | undefined;
9201
9840
  /** Whether the control is disabled and cannot be used.
9202
9841
 
9203
9842
  Reflected, because the styled tier selects on it, and mirrored to
@@ -9224,6 +9863,23 @@ imperatively later, and nothing is hydrating by then.
9224
9863
 
9225
9864
  Here rather than on each control. */
9226
9865
  name?: (HelixListbox["name"]) | undefined;
9866
+ /** The options as data, for a list too long to draw whole: each a value,
9867
+ which is also its words, or a record with a `value`, a `label` and
9868
+ `disabled`. Set, the list draws only the options in sight, and the ones
9869
+ you write as children are not read.
9870
+
9871
+ **Every option is still reachable.** The keyboard, the typeahead, the
9872
+ filter and the value work over the whole set, and the option the keyboard
9873
+ is on is drawn wherever it is, so a screen reader is told about it. Each
9874
+ drawn option says its place in the set (`aria-posinset`, `aria-setsize`).
9875
+ React Aria virtualizes a `ListBox` with its `Virtualizer`; this is core's
9876
+ `VirtualizeController`.
9877
+
9878
+ **The list needs a height to scroll in**: the styled tier's
9879
+ `--listbox-max-block-size`, or a `max-block-size` on `::part(items)` in the
9880
+ headless tier. Import the Option family as well, whose elements are drawn.
9881
+ A server sends the list empty, and the options are drawn once it hydrates. */
9882
+ items?: (HelixListbox["items"]) | undefined;
9227
9883
  /** Which option is chosen, as an index, or `-1` where none is.
9228
9884
 
9229
9885
  `<select>`'s own pair, and this control is what stands in for one. The
@@ -9242,10 +9898,14 @@ export type HelixListboxVueEvents = {
9242
9898
  change: HelixListboxElementEvent;
9243
9899
  /** Fired when the value is about to change, and cancelable. */
9244
9900
  "helix-before-change": HelixListboxHelixBeforeChangeElementEvent;
9901
+ /** Fired when an option is dropped at a new place, in a `reorderable` list with `@fusion.dev/helix/listbox/reorder` imported, with every value in the new order. Cancelable: cancel it to keep the option where it is. */
9902
+ "helix-before-reorder": HelixListboxHelixBeforeReorderElementEvent;
9245
9903
  /** Fired before the list is filtered, and cancelable. */
9246
9904
  "helix-filter": HelixListboxHelixFilterElementEvent;
9247
9905
  /** Fired once the list is scrolled within a screen of its end, once for each number of options, and not while `loading` is set. Add the next page of options and set `loading` while you fetch it. */
9248
9906
  "helix-load-more": HelixListboxHelixLoadMoreElementEvent;
9907
+ /** Fired after `helix-before-reorder` when nobody canceled it. Move your options, or your `items`, to the order in `keys`. Cancelable: cancel it to say the move did not happen. */
9908
+ "helix-reorder": HelixListboxHelixReorderElementEvent;
9249
9909
  /** Fired after the value changes. */
9250
9910
  input: HelixListboxElementEvent;
9251
9911
  };
@@ -9451,9 +10111,15 @@ a destination. */
9451
10111
  /** Marks the place as passed, such as a stop already visited. The marker is
9452
10112
  drawn muted, and its name is followed by `passed-label`. */
9453
10113
  passed?: (HelixMapMarker["passed"]) | undefined;
9454
- /** The word added after a passed place's name. Defaults to "passed". */
10114
+ /** What a passed place is called. `{label}` is its name.
10115
+
10116
+ A word without `{label}`, such as `visited`, is written after the name
10117
+ with a comma, as before the sentence held the name. */
9455
10118
  "passed-label"?: (HelixMapMarker["passedLabel"]) | undefined;
9456
- /** The word added after a passed place's name. Defaults to "passed". */
10119
+ /** What a passed place is called. `{label}` is its name.
10120
+
10121
+ A word without `{label}`, such as `visited`, is written after the name
10122
+ with a comma, as before the sentence held the name. */
9457
10123
  passedLabel?: (HelixMapMarker["passedLabel"]) | undefined;
9458
10124
  };
9459
10125
 
@@ -9671,12 +10337,6 @@ the container's edge is the map's. */
9671
10337
  shows the map through a blur, `frosted` blurs more, and `transparent` has
9672
10338
  no background. Your theme sets how see-through each one is. */
9673
10339
  material?: (HelixMap["material"]) | undefined;
9674
- /** The hint shown when a surface waiting to be pressed is scrolled or
9675
- swiped over, with `gestures="activate"`. Absent is the family's own. */
9676
- "activate-hint-label"?: (HelixMap["activateHintLabel"]) | undefined;
9677
- /** The hint shown when a surface waiting to be pressed is scrolled or
9678
- swiped over, with `gestures="activate"`. Absent is the family's own. */
9679
- activateHintLabel?: (HelixMap["activateHintLabel"]) | undefined;
9680
10340
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
9681
10341
  `none`. A family can add words of its own.
9682
10342
 
@@ -9699,20 +10359,6 @@ of the frame. The
9699
10359
  stylesheet lays the cluster out by which buttons are in it rather than by
9700
10360
  this attribute, so the two defaults need no rule each. */
9701
10361
  controls?: (HelixMap["controls"]) | undefined;
9702
- /** The name of the group of controls, read by screen readers.
9703
-
9704
- Absent is the family's own name for it, "Map controls" or "Board
9705
- controls", which names what the controls drive rather than the
9706
- mechanism. Written here to say it in another language, which every other
9707
- string this surface speaks already allowed and this one did not. */
9708
- "controls-label"?: (HelixMap["controlsLabel"]) | undefined;
9709
- /** The name of the group of controls, read by screen readers.
9710
-
9711
- Absent is the family's own name for it, "Map controls" or "Board
9712
- controls", which names what the controls drive rather than the
9713
- mechanism. Written here to say it in another language, which every other
9714
- string this surface speaks already allowed and this one did not. */
9715
- controlsLabel?: (HelixMap["controlsLabel"]) | undefined;
9716
10362
  /** Which corner the controls sit in.
9717
10363
 
9718
10364
  **Configurable because there is no safe default**, which is a collision
@@ -9815,26 +10461,6 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
9815
10461
  "pan-up-label"?: (HelixMap["panUpLabel"]) | undefined;
9816
10462
  /** The pan up button's label. */
9817
10463
  panUpLabel?: (HelixMap["panUpLabel"]) | undefined;
9818
- /** The hint shown when one finger swipes over a surface with
9819
- `gestures="cooperative"`. Absent is the family's own. */
9820
- "two-finger-hint-label"?: (HelixMap["twoFingerHintLabel"]) | undefined;
9821
- /** The hint shown when one finger swipes over a surface with
9822
- `gestures="cooperative"`. Absent is the family's own. */
9823
- twoFingerHintLabel?: (HelixMap["twoFingerHintLabel"]) | undefined;
9824
- /** The line shown while a surface with `gestures="activate"` has the
9825
- gestures. Absent is the family's own. */
9826
- "using-label"?: (HelixMap["usingLabel"]) | undefined;
9827
- /** The line shown while a surface with `gestures="activate"` has the
9828
- gestures. Absent is the family's own. */
9829
- usingLabel?: (HelixMap["usingLabel"]) | undefined;
9830
- /** The hint shown when the wheel scrolls past a surface with
9831
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
9832
- elsewhere. Absent is the family's own. */
9833
- "wheel-hint-label"?: (HelixMap["wheelHintLabel"]) | undefined;
9834
- /** The hint shown when the wheel scrolls past a surface with
9835
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
9836
- elsewhere. Absent is the family's own. */
9837
- wheelHintLabel?: (HelixMap["wheelHintLabel"]) | undefined;
9838
10464
  /** The zoom in button's label. */
9839
10465
  "zoom-in-label"?: (HelixMap["zoomInLabel"]) | undefined;
9840
10466
  /** The zoom in button's label. */
@@ -9843,16 +10469,32 @@ elsewhere. Absent is the family's own. */
9843
10469
  "zoom-out-label"?: (HelixMap["zoomOutLabel"]) | undefined;
9844
10470
  /** The zoom out button's label. */
9845
10471
  zoomOutLabel?: (HelixMap["zoomOutLabel"]) | undefined;
10472
+ /** The hint shown when the map, waiting to be pressed with
10473
+ `gestures="activate"`, is scrolled or swiped over. */
10474
+ "activate-hint-label"?: (HelixMap["activateHintLabel"]) | undefined;
10475
+ /** The hint shown when the map, waiting to be pressed with
10476
+ `gestures="activate"`, is scrolled or swiped over. */
10477
+ activateHintLabel?: (HelixMap["activateHintLabel"]) | undefined;
9846
10478
  /** The map's rotation, in degrees clockwise from north. `connectMap` keeps it
9847
10479
  current, and the Face north button's needle turns with it. */
9848
10480
  bearing?: (HelixMap["bearing"]) | undefined;
9849
10481
  /** Combines markers that would overlap into one count. Counts split apart as
9850
10482
  the map zooms in, and pressing one zooms in to its places. */
9851
10483
  cluster?: (HelixMap["cluster"]) | undefined;
10484
+ /** The name of the group of controls, read by screen readers, which names
10485
+ what the controls drive rather than the mechanism. */
10486
+ "controls-label"?: (HelixMap["controlsLabel"]) | undefined;
10487
+ /** The name of the group of controls, read by screen readers, which names
10488
+ what the controls drive rather than the mechanism. */
10489
+ controlsLabel?: (HelixMap["controlsLabel"]) | undefined;
9852
10490
  /** The Face north button's label. */
9853
10491
  "face-north-label"?: (HelixMap["faceNorthLabel"]) | undefined;
9854
10492
  /** The Face north button's label. */
9855
10493
  faceNorthLabel?: (HelixMap["faceNorthLabel"]) | undefined;
10494
+ /** The map's name where `label` is empty and the host has no `aria-label`. */
10495
+ "fallback-label"?: (HelixMap["fallbackLabel"]) | undefined;
10496
+ /** The map's name where `label` is empty and the host has no `aria-label`. */
10497
+ fallbackLabel?: (HelixMap["fallbackLabel"]) | undefined;
9856
10498
  /** What screen readers hear when the map is tilted back to looking straight down. */
9857
10499
  "flat-label"?: (HelixMap["flatLabel"]) | undefined;
9858
10500
  /** What screen readers hear when the map is tilted back to looking straight down. */
@@ -9923,24 +10565,44 @@ above `0`. */
9923
10565
  /** The Standard map type's name. */
9924
10566
  standardLabel?: (HelixMap["standardLabel"]) | undefined;
9925
10567
  /** What screen readers hear when the map is tilted. `{degrees}` is the tilt
9926
- from looking straight down. */
10568
+ from looking straight down, written in the locale, and each language
10569
+ writes the forms it has. */
9927
10570
  "tilted-label"?: (HelixMap["tiltedLabel"]) | undefined;
9928
10571
  /** What screen readers hear when the map is tilted. `{degrees}` is the tilt
9929
- from looking straight down. */
10572
+ from looking straight down, written in the locale, and each language
10573
+ writes the forms it has. */
9930
10574
  tiltedLabel?: (HelixMap["tiltedLabel"]) | undefined;
9931
10575
  /** The 3D button's label. */
9932
10576
  "tilt-label"?: (HelixMap["tiltLabel"]) | undefined;
9933
10577
  /** The 3D button's label. */
9934
10578
  tiltLabel?: (HelixMap["tiltLabel"]) | undefined;
9935
10579
  /** What screen readers hear when the map is turned. `{degrees}` is the way the
9936
- top of the map faces, clockwise from north. */
10580
+ top of the map faces, clockwise from north, written in the locale, and
10581
+ each language writes the forms it has. */
9937
10582
  "turned-label"?: (HelixMap["turnedLabel"]) | undefined;
9938
10583
  /** What screen readers hear when the map is turned. `{degrees}` is the way the
9939
- top of the map faces, clockwise from north. */
10584
+ top of the map faces, clockwise from north, written in the locale, and
10585
+ each language writes the forms it has. */
9940
10586
  turnedLabel?: (HelixMap["turnedLabel"]) | undefined;
9941
- /** What screen readers hear after a zoom. `{level}` is the zoom level. */
10587
+ /** The hint shown when one finger swipes over the map with `gestures="cooperative"`. */
10588
+ "two-finger-hint-label"?: (HelixMap["twoFingerHintLabel"]) | undefined;
10589
+ /** The hint shown when one finger swipes over the map with `gestures="cooperative"`. */
10590
+ twoFingerHintLabel?: (HelixMap["twoFingerHintLabel"]) | undefined;
10591
+ /** The line shown while the map, with `gestures="activate"`, has the gestures. */
10592
+ "using-label"?: (HelixMap["usingLabel"]) | undefined;
10593
+ /** The line shown while the map, with `gestures="activate"`, has the gestures. */
10594
+ usingLabel?: (HelixMap["usingLabel"]) | undefined;
10595
+ /** The hint shown when the wheel scrolls past the map with
10596
+ `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere. */
10597
+ "wheel-hint-label"?: (HelixMap["wheelHintLabel"]) | undefined;
10598
+ /** The hint shown when the wheel scrolls past the map with
10599
+ `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere. */
10600
+ wheelHintLabel?: (HelixMap["wheelHintLabel"]) | undefined;
10601
+ /** What screen readers hear after a zoom. `{level}` is the zoom level,
10602
+ written in the locale. */
9942
10603
  "zoomed-label"?: (HelixMap["zoomedLabel"]) | undefined;
9943
- /** What screen readers hear after a zoom. `{level}` is the zoom level. */
10604
+ /** What screen readers hear after a zoom. `{level}` is the zoom level,
10605
+ written in the locale. */
9944
10606
  zoomedLabel?: (HelixMap["zoomedLabel"]) | undefined;
9945
10607
  /** How far the map is zoomed, in its renderer's levels. `connectMap` keeps it
9946
10608
  current, and the map says it after a zoom. */
@@ -10409,12 +11071,16 @@ no reader. */
10409
11071
  /** The words each band is said with under `live`, by its name, written as
10410
11072
  JSON in the attribute: `band-labels='{"poor":"Almost full"}'`.
10411
11073
 
10412
- A band left out keeps its default: "Good", "Fair" or "Poor". */
11074
+ A band left out keeps its default: "Good", "Fair" or "Poor". Reading the
11075
+ property gives every band's words, yours over the registry's over the
11076
+ English. */
10413
11077
  "band-labels"?: (HelixMeter["bandLabels"]) | undefined;
10414
11078
  /** The words each band is said with under `live`, by its name, written as
10415
11079
  JSON in the attribute: `band-labels='{"poor":"Almost full"}'`.
10416
11080
 
10417
- A band left out keeps its default: "Good", "Fair" or "Poor". */
11081
+ A band left out keeps its default: "Good", "Fair" or "Poor". Reading the
11082
+ property gives every band's words, yours over the registry's over the
11083
+ English. */
10418
11084
  bandLabels?: (HelixMeter["bandLabels"]) | undefined;
10419
11085
  /** `Intl.NumberFormat` options the reading is written with, as React Aria's
10420
11086
  Meter and ProgressBar take them: a unit, a currency, or a number of
@@ -10458,9 +11124,17 @@ For a meter whose value changes while it is on screen. Off by default,
10458
11124
  because a meter that reads a fixed level has nothing new to say. A meter
10459
11125
  with no bands says nothing. */
10460
11126
  live?: (HelixMeter["live"]) | undefined;
10461
- /** The locale the percentage is written in, such as `fr` for `72 %`.
10462
-
10463
- Absent uses the runtime's own. */
11127
+ /** What `live` says as the reading moves into another band. `{reading}` is
11128
+ the reading as it is shown, and `{band}` the band's words from
11129
+ `band-labels`. */
11130
+ "live-label"?: (HelixMeter["liveLabel"]) | undefined;
11131
+ /** What `live` says as the reading moves into another band. `{reading}` is
11132
+ the reading as it is shown, and `{band}` the band's words from
11133
+ `band-labels`. */
11134
+ liveLabel?: (HelixMeter["liveLabel"]) | undefined;
11135
+ /** The locale the words and the percentage are in, such as `fr` for `72 %`.
11136
+
11137
+ Absent reads the nearest `lang`, then the runtime's own. */
10464
11138
  locale?: (HelixMeter["locale"]) | undefined;
10465
11139
  /** Top of the low band.
10466
11140
 
@@ -10636,10 +11310,9 @@ content, and which one is right depends on whether the rows are a list to
10636
11310
  scan or a set of things to act on. The reference this came from draws cards
10637
11311
  because every row in it has a control.
10638
11312
 
10639
- **On the row and not on the feed, because the row is the box being
10640
- separated.** A consumer wanting the whole feed carded says so once, in a
10641
- document rule on the element, rather than on every item: this is a styled
10642
- axis and a stylesheet is where it is set. */
11313
+ **On the row, because the row is the box being separated, and on the
11314
+ feed for every row at once.** A feed's own `separation` is taken by each
11315
+ row that sets none, and a row that sets one keeps it, `plain` included. */
10643
11316
  separation?: (HelixNotification["separation"]) | undefined;
10644
11317
  /** Whether the element shows a control that dismisses it. */
10645
11318
  dismissible?: (HelixNotification["dismissible"]) | undefined;
@@ -10648,14 +11321,22 @@ axis and a stylesheet is where it is set. */
10648
11321
  `attribute` is spelled out because Lit lowercases a property name to
10649
11322
  derive one rather than dash-casing it, so this would otherwise be
10650
11323
  reachable only as `dismisslabel`, which nobody would guess and no linter
10651
- would catch. */
11324
+ would catch.
11325
+
11326
+ A word property: register it for a locale under the host's key. A family
11327
+ that names the control otherwise, such as Tag's `Remove {label}`,
11328
+ declares its own English with `@words` above the override. */
10652
11329
  "dismiss-label"?: (HelixNotification["dismissLabel"]) | undefined;
10653
11330
  /** The dismiss control's label, read by screen readers.
10654
11331
 
10655
11332
  `attribute` is spelled out because Lit lowercases a property name to
10656
11333
  derive one rather than dash-casing it, so this would otherwise be
10657
11334
  reachable only as `dismisslabel`, which nobody would guess and no linter
10658
- would catch. */
11335
+ would catch.
11336
+
11337
+ A word property: register it for a locale under the host's key. A family
11338
+ that names the control otherwise, such as Tag's `Remove {label}`,
11339
+ declares its own English with `@words` above the override. */
10659
11340
  dismissLabel?: (HelixNotification["dismissLabel"]) | undefined;
10660
11341
  /** When it happened, as anything `Date` parses.
10661
11342
 
@@ -10721,6 +11402,17 @@ export type HelixNotificationsHelixReadElementEvent =
10721
11402
  HelixNotificationsElementEvent<HelixReadEvent>;
10722
11403
 
10723
11404
  export type HelixNotificationsVueProps = {
11405
+ /** How every row in the feed is set apart from the one above it, where the
11406
+ row does not say for itself.
11407
+
11408
+ `plain`, the resting one, separates the rows by a hairline. `outlined` and
11409
+ `filled` make every row a box, as the row's own `separation` does, take
11410
+ away the rule under the header, which reads as a stray line above a box,
11411
+ and put the gap that falls between the boxes before the first one too.
11412
+
11413
+ A row that sets its own `separation` keeps it, so a feed of boxes can hold
11414
+ one plain row and the other way round. */
11415
+ separation?: (HelixNotifications["separation"]) | undefined;
10724
11416
  /** The text shown and announced when there are no rows and none are loading. */
10725
11417
  "empty-text"?: (HelixNotifications["emptyText"]) | undefined;
10726
11418
  /** The text shown and announced when there are no rows and none are loading. */
@@ -10735,8 +11427,26 @@ say that without the component knowing what a row looks like. */
10735
11427
  "loading-text"?: (HelixNotifications["loadingText"]) | undefined;
10736
11428
  /** The text shown and announced while the rows load. */
10737
11429
  loadingText?: (HelixNotifications["loadingText"]) | undefined;
11430
+ /** The region's name where `label` is empty. */
11431
+ "fallback-label"?: (HelixNotifications["fallbackLabel"]) | undefined;
11432
+ /** The region's name where `label` is empty. */
11433
+ fallbackLabel?: (HelixNotifications["fallbackLabel"]) | undefined;
10738
11434
  /** The feed's name, read by screen readers. */
10739
11435
  label?: (HelixNotifications["label"]) | undefined;
11436
+ /** What the feed says when a page of it could not be loaded, such as after a
11437
+ request to a server fails. Empty, null or no attribute is no error, so
11438
+ removing the attribute clears it.
11439
+
11440
+ Set, it shows under the rows there are, in place of `empty-text` and
11441
+ `loading-text`, and a screen reader hears it. Clear it when you ask again. */
11442
+ "load-error"?: (HelixNotifications["loadError"]) | undefined;
11443
+ /** What the feed says when a page of it could not be loaded, such as after a
11444
+ request to a server fails. Empty, null or no attribute is no error, so
11445
+ removing the attribute clears it.
11446
+
11447
+ Set, it shows under the rows there are, in place of `empty-text` and
11448
+ `loading-text`, and a screen reader hears it. Clear it when you ask again. */
11449
+ loadError?: (HelixNotifications["loadError"]) | undefined;
10740
11450
  /** Whether to draw a button after the list that asks for the next page, by
10741
11451
  sending `helix-load-more`. Take it off once there is nothing more. */
10742
11452
  "load-more"?: (HelixNotifications["loadMore"]) | undefined;
@@ -10811,18 +11521,22 @@ browser's message. */
10811
11521
  required?: (HelixNumberInput["required"]) | undefined;
10812
11522
  /** The message shown when the field is required and empty.
10813
11523
 
10814
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
10815
- set and the browser's own on a text field, which the browser writes in
10816
- the reader's language. Every other word a control speaks is a property,
11524
+ **Absent, or empty, is the control's own sentence**, "Choose one to
11525
+ continue." on a set and the browser's own on a text field, which the
11526
+ browser writes in the reader's language. A family with a sentence of its
11527
+ own declares it as this property's English, a word property a page
11528
+ registers for its locale under the family's key. Every other word a control speaks is a property,
10817
11529
  and this one was the English a form in another language still spoke in
10818
11530
  the bubble it raises on submit: `feedback` replaces the message under
10819
11531
  the field and does not reach that one. */
10820
11532
  "value-missing-message"?: (HelixNumberInput["valueMissingMessage"]) | undefined;
10821
11533
  /** The message shown when the field is required and empty.
10822
11534
 
10823
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
10824
- set and the browser's own on a text field, which the browser writes in
10825
- the reader's language. Every other word a control speaks is a property,
11535
+ **Absent, or empty, is the control's own sentence**, "Choose one to
11536
+ continue." on a set and the browser's own on a text field, which the
11537
+ browser writes in the reader's language. A family with a sentence of its
11538
+ own declares it as this property's English, a word property a page
11539
+ registers for its locale under the family's key. Every other word a control speaks is a property,
10826
11540
  and this one was the English a form in another language still spoke in
10827
11541
  the bubble it raises on submit: `feedback` replaces the message under
10828
11542
  the field and does not reach that one. */
@@ -10840,7 +11554,8 @@ number.
10840
11554
  **Every sentence a control raises in the browser's bubble is a property**,
10841
11555
  named for the validity flag it reports, so a form in another language
10842
11556
  speaks it: `feedback` replaces the message under the field and does not
10843
- reach the bubble. Absent is the control's own sentence, in English. */
11557
+ reach the bubble. Unset is the sentence registered for the page's
11558
+ language, then the English. */
10844
11559
  "bad-input-message"?: (HelixNumberInput["badInputMessage"]) | undefined;
10845
11560
  /** The message the browser shows when the field holds something that is not a
10846
11561
  number.
@@ -10848,7 +11563,8 @@ number.
10848
11563
  **Every sentence a control raises in the browser's bubble is a property**,
10849
11564
  named for the validity flag it reports, so a form in another language
10850
11565
  speaks it: `feedback` replaces the message under the field and does not
10851
- reach the bubble. Absent is the control's own sentence, in English. */
11566
+ reach the bubble. Unset is the sentence registered for the page's
11567
+ language, then the English. */
10852
11568
  badInputMessage?: (HelixNumberInput["badInputMessage"]) | undefined;
10853
11569
  /** The name of the step down button, read by screen readers. */
10854
11570
  "decrement-label"?: (HelixNumberInput["decrementLabel"]) | undefined;
@@ -10906,16 +11622,16 @@ Absent has no floor. */
10906
11622
  Not a label: it goes when typing starts. */
10907
11623
  placeholder?: (HelixNumberInput["placeholder"]) | undefined;
10908
11624
  /** The message the browser shows when the number is above `max`, with `{max}`
10909
- filled in. */
11625
+ filled in, written in the locale. */
10910
11626
  "range-overflow-message"?: (HelixNumberInput["rangeOverflowMessage"]) | undefined;
10911
11627
  /** The message the browser shows when the number is above `max`, with `{max}`
10912
- filled in. */
11628
+ filled in, written in the locale. */
10913
11629
  rangeOverflowMessage?: (HelixNumberInput["rangeOverflowMessage"]) | undefined;
10914
11630
  /** The message the browser shows when the number is below `min`, with `{min}`
10915
- filled in. */
11631
+ filled in, written in the locale. */
10916
11632
  "range-underflow-message"?: (HelixNumberInput["rangeUnderflowMessage"]) | undefined;
10917
11633
  /** The message the browser shows when the number is below `min`, with `{min}`
10918
- filled in. */
11634
+ filled in, written in the locale. */
10919
11635
  rangeUnderflowMessage?: (HelixNumberInput["rangeUnderflowMessage"]) | undefined;
10920
11636
  /** Prevents editing. The value is still submitted with the form. */
10921
11637
  readonly?: (HelixNumberInput["readOnly"]) | undefined;
@@ -10940,10 +11656,12 @@ showing dollars keeps the cents typed into it. Without `format-options`
10940
11656
  the grid is whole numbers, as in a native number field. */
10941
11657
  step?: (HelixNumberInput["step"]) | undefined;
10942
11658
  /** The message the browser shows when the number is off the step grid, with
10943
- `{below}` and `{above}` filled in with the nearest valid values. */
11659
+ `{below}` and `{above}` filled in with the nearest valid values, written in
11660
+ the locale. */
10944
11661
  "step-mismatch-message"?: (HelixNumberInput["stepMismatchMessage"]) | undefined;
10945
11662
  /** The message the browser shows when the number is off the step grid, with
10946
- `{below}` and `{above}` filled in with the nearest valid values. */
11663
+ `{below}` and `{above}` filled in with the nearest valid values, written in
11664
+ the locale. */
10947
11665
  stepMismatchMessage?: (HelixNumberInput["stepMismatchMessage"]) | undefined;
10948
11666
  /** What a screen reader says for the value, with `{value}` filled in, such as
10949
11667
  `{value} kilograms`.
@@ -11090,21 +11808,33 @@ Read once the document exists, and again whenever this changes. Text that
11090
11808
  does not parse leaves the inspector empty rather than throwing, since a
11091
11809
  page's markup should not take the page down over a comma. */
11092
11810
  for?: (HelixObjectInspector["for"]) | undefined;
11093
- /** How an array of one entry counts it. `{count}` is replaced with the count. */
11811
+ /** How an array of one entry counts it, where `items-label` should not say
11812
+ it. `{count}` is the count. */
11094
11813
  "item-label"?: (HelixObjectInspector["itemLabel"]) | undefined;
11095
- /** How an array of one entry counts it. `{count}` is replaced with the count. */
11814
+ /** How an array of one entry counts it, where `items-label` should not say
11815
+ it. `{count}` is the count. */
11096
11816
  itemLabel?: (HelixObjectInspector["itemLabel"]) | undefined;
11097
- /** How an array of any other number of entries counts them. `{count}` is replaced with the count. */
11817
+ /** How an array counts its entries. `{count}` is the count, written in the
11818
+ locale, and each language writes the forms it has: `{count, plural, one
11819
+ {# element} few {# elementy} many {# elementów} other {# elementu}}`. */
11098
11820
  "items-label"?: (HelixObjectInspector["itemsLabel"]) | undefined;
11099
- /** How an array of any other number of entries counts them. `{count}` is replaced with the count. */
11821
+ /** How an array counts its entries. `{count}` is the count, written in the
11822
+ locale, and each language writes the forms it has: `{count, plural, one
11823
+ {# element} few {# elementy} many {# elementów} other {# elementu}}`. */
11100
11824
  itemsLabel?: (HelixObjectInspector["itemsLabel"]) | undefined;
11101
- /** How an object of one key counts it. `{count}` is replaced with the count. */
11825
+ /** How an object of one key counts it, where `keys-label` should not say it.
11826
+ `{count}` is the count. */
11102
11827
  "key-label"?: (HelixObjectInspector["keyLabel"]) | undefined;
11103
- /** How an object of one key counts it. `{count}` is replaced with the count. */
11828
+ /** How an object of one key counts it, where `keys-label` should not say it.
11829
+ `{count}` is the count. */
11104
11830
  keyLabel?: (HelixObjectInspector["keyLabel"]) | undefined;
11105
- /** How an object of any other number of keys counts them. `{count}` is replaced with the count. */
11831
+ /** How an object counts its keys. `{count}` is the count, written in the
11832
+ locale, and each language writes the forms it has: `{count, plural, one
11833
+ {# klucz} few {# klucze} many {# kluczy} other {# klucza}}`. */
11106
11834
  "keys-label"?: (HelixObjectInspector["keysLabel"]) | undefined;
11107
- /** How an object of any other number of keys counts them. `{count}` is replaced with the count. */
11835
+ /** How an object counts its keys. `{count}` is the count, written in the
11836
+ locale, and each language writes the forms it has: `{count, plural, one
11837
+ {# klucz} few {# klucze} many {# kluczy} other {# klucza}}`. */
11108
11838
  keysLabel?: (HelixObjectInspector["keysLabel"]) | undefined;
11109
11839
  /** Accessible name for the tree, and the text of the header where there is one. */
11110
11840
  label?: (HelixObjectInspector["label"]) | undefined;
@@ -11132,15 +11862,21 @@ who set the property. This button is positioned out of the flow and takes no
11132
11862
  room, so nothing selects on it, and reflection exists so that a selector can
11133
11863
  reach a value. */
11134
11864
  noCopy?: (HelixObjectInspector["noCopy"]) | undefined;
11135
- /** What a screen reader hears when a filter matches one entry. `{count}` is the count. */
11865
+ /** What a screen reader hears when a filter matches one entry, where
11866
+ `results-label` should not say it. `{count}` is the count. */
11136
11867
  "result-label"?: (HelixObjectInspector["resultLabel"]) | undefined;
11137
- /** What a screen reader hears when a filter matches one entry. `{count}` is the count. */
11868
+ /** What a screen reader hears when a filter matches one entry, where
11869
+ `results-label` should not say it. `{count}` is the count. */
11138
11870
  resultLabel?: (HelixObjectInspector["resultLabel"]) | undefined;
11139
- /** What a screen reader hears when a filter matches any other number of
11140
- entries. `{count}` is the count. The two are chosen by `Intl.PluralRules`. */
11871
+ /** What a screen reader hears when a filter matches entries. `{count}` is
11872
+ how many, written in the locale, and each language writes the forms it
11873
+ has: `{count, plural, one {# wynik} few {# wyniki} many {# wyników}
11874
+ other {# wyniku}}`. */
11141
11875
  "results-label"?: (HelixObjectInspector["resultsLabel"]) | undefined;
11142
- /** What a screen reader hears when a filter matches any other number of
11143
- entries. `{count}` is the count. The two are chosen by `Intl.PluralRules`. */
11876
+ /** What a screen reader hears when a filter matches entries. `{count}` is
11877
+ how many, written in the locale, and each language writes the forms it
11878
+ has: `{count, plural, one {# wynik} few {# wyniki} many {# wyników}
11879
+ other {# wyniku}}`. */
11144
11880
  resultsLabel?: (HelixObjectInspector["resultsLabel"]) | undefined;
11145
11881
  /** The tree's accessible name when `label` is empty and the host names it
11146
11882
  with neither `aria-label` nor `aria-labelledby`. */
@@ -11535,7 +12271,8 @@ one, and the back button works without the consumer wiring anything. */
11535
12271
  "last-label"?: (HelixPagination["lastLabel"]) | undefined;
11536
12272
  /** Accessible name for the control that jumps to the last page. */
11537
12273
  lastLabel?: (HelixPagination["lastLabel"]) | undefined;
11538
- /** Locale for the page numbers. Absent uses the runtime's own.
12274
+ /** The locale the words and the page numbers are in, as a BCP 47 tag such as
12275
+ `de`. Empty reads the nearest `lang`, then the browser's language.
11539
12276
 
11540
12277
  The same property the calendar takes, doing the same job one layer down:
11541
12278
  the templates make the *words* the consumer's, and this makes the *numbers*
@@ -11649,9 +12386,8 @@ export type HelixPaginationSizeVueProps = {
11649
12386
  defaultValue?: (HelixPaginationSize["defaultValue"]) | undefined;
11650
12387
  /** The label beside the control. */
11651
12388
  label?: (HelixPaginationSize["label"]) | undefined;
11652
- /** Locale for the numbers.
11653
-
11654
- Absent uses the runtime's own. */
12389
+ /** The locale the words and the numbers are in, as a BCP 47 tag such as
12390
+ `de`. Empty reads the nearest `lang`, then the browser's language. */
11655
12391
  locale?: (HelixPaginationSize["locale"]) | undefined;
11656
12392
  /** The sizes offered, comma separated.
11657
12393
 
@@ -11704,7 +12440,7 @@ export type HelixPaginationSizeVueEvents = {
11704
12440
 
11705
12441
  export type HelixPaginationSummaryVueProps = {
11706
12442
  /** The text shown. `{from}`, `{to}`, and `{total}` are replaced with the first
11707
- item, the last item, and the item count.
12443
+ item, the last item, and the item count, written in the locale.
11708
12444
 
11709
12445
  A template rather than a prefix and a suffix, because word order is not
11710
12446
  universal: `format="{total} 件中 {from}-{to} 件"` is one attribute here and
@@ -11718,9 +12454,8 @@ of the element, so calling it `label` put one word on three jobs inside one
11718
12454
  family. The root's templates are `pageLabel`, `statusLabel` and `gapLabel`,
11719
12455
  which each label something; this labels nothing, it *is* the thing. */
11720
12456
  format?: (HelixPaginationSummary["format"]) | undefined;
11721
- /** Locale for the numbers.
11722
-
11723
- Absent uses the runtime's own. */
12457
+ /** The locale the words and the numbers are in, as a BCP 47 tag such as
12458
+ `de`. Empty reads the nearest `lang`, then the browser's language. */
11724
12459
  locale?: (HelixPaginationSummary["locale"]) | undefined;
11725
12460
  /** The current page, counting from one. */
11726
12461
  page?: (HelixPaginationSummary["page"]) | undefined;
@@ -11773,18 +12508,22 @@ browser's message. */
11773
12508
  required?: (HelixPinInput["required"]) | undefined;
11774
12509
  /** The message shown when the field is required and empty.
11775
12510
 
11776
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
11777
- set and the browser's own on a text field, which the browser writes in
11778
- the reader's language. Every other word a control speaks is a property,
12511
+ **Absent, or empty, is the control's own sentence**, "Choose one to
12512
+ continue." on a set and the browser's own on a text field, which the
12513
+ browser writes in the reader's language. A family with a sentence of its
12514
+ own declares it as this property's English, a word property a page
12515
+ registers for its locale under the family's key. Every other word a control speaks is a property,
11779
12516
  and this one was the English a form in another language still spoke in
11780
12517
  the bubble it raises on submit: `feedback` replaces the message under
11781
12518
  the field and does not reach that one. */
11782
12519
  "value-missing-message"?: (HelixPinInput["valueMissingMessage"]) | undefined;
11783
12520
  /** The message shown when the field is required and empty.
11784
12521
 
11785
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
11786
- set and the browser's own on a text field, which the browser writes in
11787
- the reader's language. Every other word a control speaks is a property,
12522
+ **Absent, or empty, is the control's own sentence**, "Choose one to
12523
+ continue." on a set and the browser's own on a text field, which the
12524
+ browser writes in the reader's language. A family with a sentence of its
12525
+ own declares it as this property's English, a word property a page
12526
+ registers for its locale under the family's key. Every other word a control speaks is a property,
11788
12527
  and this one was the English a form in another language still spoke in
11789
12528
  the bubble it raises on submit: `feedback` replaces the message under
11790
12529
  the field and does not reach that one. */
@@ -11828,11 +12567,13 @@ a row of boxes. */
11828
12567
  readonly?: (HelixPinInput["readOnly"]) | undefined;
11829
12568
  /** Whether the field blocks input. A read-only code still submits its value. */
11830
12569
  readOnly?: (HelixPinInput["readOnly"]) | undefined;
11831
- /** The message shown when the code is started and not finished, with
11832
- `{length}` filled in. When it is unset, an English default is shown. */
12570
+ /** The message shown when the code is started and not finished. `{length}`
12571
+ is how many characters the code has, written in the locale, and each
12572
+ language writes the forms it has. */
11833
12573
  "too-short-message"?: (HelixPinInput["tooShortMessage"]) | undefined;
11834
- /** The message shown when the code is started and not finished, with
11835
- `{length}` filled in. When it is unset, an English default is shown. */
12574
+ /** The message shown when the code is started and not finished. `{length}`
12575
+ is how many characters the code has, written in the locale, and each
12576
+ language writes the forms it has. */
11836
12577
  tooShortMessage?: (HelixPinInput["tooShortMessage"]) | undefined;
11837
12578
  /** The characters a box accepts, which also sets the keyboard a phone shows.
11838
12579
 
@@ -11939,8 +12680,14 @@ the resolved state for stylesheets, which is what the mirror is for. */
11939
12680
  Off by default, which is the house style: a panel that opens from its
11940
12681
  trigger already reads as belonging to it. */
11941
12682
  arrow?: (HelixPopover["arrow"]) | undefined;
11942
- /** The panel's name, read by screen readers. Left at `Popover`, the first
11943
- heading in the panel names it instead. */
12683
+ /** The panel's name where nothing else names it: no `label`, no heading in
12684
+ the panel, and no `aria-labelledby` on the host. */
12685
+ "fallback-label"?: (HelixPopover["fallbackLabel"]) | undefined;
12686
+ /** The panel's name where nothing else names it: no `label`, no heading in
12687
+ the panel, and no `aria-labelledby` on the host. */
12688
+ fallbackLabel?: (HelixPopover["fallbackLabel"]) | undefined;
12689
+ /** The panel's name, read by screen readers. Left empty, the first heading in
12690
+ the panel names it, and then `fallback-label`. */
11944
12691
  label?: (HelixPopover["label"]) | undefined;
11945
12692
  /** Keeps `Tab` inside the panel while it is open, marks the panel
11946
12693
  `aria-modal`, and hides the rest of the page from screen readers. A press
@@ -12042,9 +12789,9 @@ place in the layout when the answer arrives and it becomes determinate. */
12042
12789
  A visible label in the `label` slot names it instead, with the words it
12043
12790
  shows, so the name and the label cannot disagree. */
12044
12791
  label?: (HelixProgress["label"]) | undefined;
12045
- /** The locale the percentage is written in, such as `fr` for `72 %`.
12792
+ /** The locale the words and the percentage are in, such as `fr` for `72 %`.
12046
12793
 
12047
- Absent uses the runtime's own. */
12794
+ Absent reads the nearest `lang`, then the runtime's own. */
12048
12795
  locale?: (HelixProgress["locale"]) | undefined;
12049
12796
  /** The total the work is measured against. */
12050
12797
  max?: (HelixProgress["max"]) | undefined;
@@ -12119,11 +12866,17 @@ export type HelixProgressVueEvents = {
12119
12866
  export type HelixQrCodeElementEvent<E = Event> = TypedEvent<HelixQrCode, E>;
12120
12867
 
12121
12868
  export type HelixQrCodeVueProps = {
12122
- /** The words a code with no `label` is named by, followed by its value where
12123
- the value is a web address. */
12869
+ /** The name of a code with no `label` whose value is a web address.
12870
+ `{code}` is `code-label` and `{address}` the address. */
12871
+ "address-label"?: (HelixQrCode["addressLabel"]) | undefined;
12872
+ /** The name of a code with no `label` whose value is a web address.
12873
+ `{code}` is `code-label` and `{address}` the address. */
12874
+ addressLabel?: (HelixQrCode["addressLabel"]) | undefined;
12875
+ /** The words a code with no `label` is named by, with its value where the
12876
+ value is a web address, as `address-label` says. */
12124
12877
  "code-label"?: (HelixQrCode["codeLabel"]) | undefined;
12125
- /** The words a code with no `label` is named by, followed by its value where
12126
- the value is a web address. */
12878
+ /** The words a code with no `label` is named by, with its value where the
12879
+ value is a web address, as `address-label` says. */
12127
12880
  codeLabel?: (HelixQrCode["codeLabel"]) | undefined;
12128
12881
  /** The error correction level, which sets how much of the code can be lost
12129
12882
  and still scan.
@@ -12214,18 +12967,22 @@ browser's message. */
12214
12967
  required?: (HelixRadioGroup["required"]) | undefined;
12215
12968
  /** The message shown when the field is required and empty.
12216
12969
 
12217
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
12218
- set and the browser's own on a text field, which the browser writes in
12219
- the reader's language. Every other word a control speaks is a property,
12970
+ **Absent, or empty, is the control's own sentence**, "Choose one to
12971
+ continue." on a set and the browser's own on a text field, which the
12972
+ browser writes in the reader's language. A family with a sentence of its
12973
+ own declares it as this property's English, a word property a page
12974
+ registers for its locale under the family's key. Every other word a control speaks is a property,
12220
12975
  and this one was the English a form in another language still spoke in
12221
12976
  the bubble it raises on submit: `feedback` replaces the message under
12222
12977
  the field and does not reach that one. */
12223
12978
  "value-missing-message"?: (HelixRadioGroup["valueMissingMessage"]) | undefined;
12224
12979
  /** The message shown when the field is required and empty.
12225
12980
 
12226
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
12227
- set and the browser's own on a text field, which the browser writes in
12228
- the reader's language. Every other word a control speaks is a property,
12981
+ **Absent, or empty, is the control's own sentence**, "Choose one to
12982
+ continue." on a set and the browser's own on a text field, which the
12983
+ browser writes in the reader's language. A family with a sentence of its
12984
+ own declares it as this property's English, a word property a page
12985
+ registers for its locale under the family's key. Every other word a control speaks is a property,
12229
12986
  and this one was the English a form in another language still spoke in
12230
12987
  the bubble it raises on submit: `feedback` replaces the message under
12231
12988
  the field and does not reach that one. */
@@ -12506,18 +13263,22 @@ browser's message. */
12506
13263
  required?: (HelixRating["required"]) | undefined;
12507
13264
  /** The message shown when the field is required and empty.
12508
13265
 
12509
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
12510
- set and the browser's own on a text field, which the browser writes in
12511
- the reader's language. Every other word a control speaks is a property,
13266
+ **Absent, or empty, is the control's own sentence**, "Choose one to
13267
+ continue." on a set and the browser's own on a text field, which the
13268
+ browser writes in the reader's language. A family with a sentence of its
13269
+ own declares it as this property's English, a word property a page
13270
+ registers for its locale under the family's key. Every other word a control speaks is a property,
12512
13271
  and this one was the English a form in another language still spoke in
12513
13272
  the bubble it raises on submit: `feedback` replaces the message under
12514
13273
  the field and does not reach that one. */
12515
13274
  "value-missing-message"?: (HelixRating["valueMissingMessage"]) | undefined;
12516
13275
  /** The message shown when the field is required and empty.
12517
13276
 
12518
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
12519
- set and the browser's own on a text field, which the browser writes in
12520
- the reader's language. Every other word a control speaks is a property,
13277
+ **Absent, or empty, is the control's own sentence**, "Choose one to
13278
+ continue." on a set and the browser's own on a text field, which the
13279
+ browser writes in the reader's language. A family with a sentence of its
13280
+ own declares it as this property's English, a word property a page
13281
+ registers for its locale under the family's key. Every other word a control speaks is a property,
12521
13282
  and this one was the English a form in another language still spoke in
12522
13283
  the bubble it raises on submit: `feedback` replaces the message under
12523
13284
  the field and does not reach that one. */
@@ -12570,13 +13331,13 @@ leaving a rating with nothing to press. A property that silently accepts
12570
13331
  nonsense is the fault this pays off, so neither case is quietly ignored. */
12571
13332
  min?: (HelixRating["min"]) | undefined;
12572
13333
  /** The name of each mark a reader can choose, with `{score}` and `{max}`
12573
- filled in. Set it to translate "3 out of 5".
13334
+ filled in, written in the locale. Set it to translate "3 out of 5".
12574
13335
 
12575
13336
  Also what a read-only rating says for its score where `value-text` is
12576
13337
  empty. */
12577
13338
  "option-label"?: (HelixRating["optionLabel"]) | undefined;
12578
13339
  /** The name of each mark a reader can choose, with `{score}` and `{max}`
12579
- filled in. Set it to translate "3 out of 5".
13340
+ filled in, written in the locale. Set it to translate "3 out of 5".
12580
13341
 
12581
13342
  Also what a read-only rating says for its score where `value-text` is
12582
13343
  empty. */
@@ -12883,14 +13644,14 @@ gives. */
12883
13644
  /** Height of the panel, in pixels. */
12884
13645
  panelSize?: (HelixSandbox["panelSize"]) | undefined;
12885
13646
  /** The name of the divider between the panes, read by screen readers.
12886
-
12887
- Empty names the lead pane, "Resize source pane" or "Resize preview pane",
12888
- since the divider's value is that pane's share. */
13647
+ `{pane}` is the lead pane, `source` or `preview`, whose share the
13648
+ divider's value is, so each is a whole sentence: "Resize source pane" or
13649
+ "Resize preview pane". */
12889
13650
  "separator-label"?: (HelixSandbox["separatorLabel"]) | undefined;
12890
13651
  /** The name of the divider between the panes, read by screen readers.
12891
-
12892
- Empty names the lead pane, "Resize source pane" or "Resize preview pane",
12893
- since the divider's value is that pane's share. */
13652
+ `{pane}` is the lead pane, `source` or `preview`, whose share the
13653
+ divider's value is, so each is a whole sentence: "Resize source pane" or
13654
+ "Resize preview pane". */
12894
13655
  separatorLabel?: (HelixSandbox["separatorLabel"]) | undefined;
12895
13656
  /** Percentage of the sandbox given to the lead pane: the source, unless `lead`
12896
13657
  is `preview`. */
@@ -12989,6 +13750,12 @@ Absent shows no readout. */
12989
13750
 
12990
13751
  Absent shows no readout. */
12991
13752
  line?: (HelixSandboxStatusBar["line"]) | undefined;
13753
+ /** How the cursor's place reads. `{line}` and `{column}` are the line and
13754
+ the column, written as an editor writes them, without grouping. */
13755
+ "position-label"?: (HelixSandboxStatusBar["positionLabel"]) | undefined;
13756
+ /** How the cursor's place reads. `{line}` and `{column}` are the line and
13757
+ the column, written as an editor writes them, without grouping. */
13758
+ positionLabel?: (HelixSandboxStatusBar["positionLabel"]) | undefined;
12992
13759
  };
12993
13760
 
12994
13761
  export type HelixSandboxStatusBarVueEvents = {};
@@ -13038,6 +13805,14 @@ language, keyed by level, such as `{ warn: '…' }`. A level left out keeps
13038
13805
  its English words. As an attribute it is that object as JSON, and JSON
13039
13806
  that does not parse is no words. */
13040
13807
  levelWords?: (HelixSandboxTerminal["levelWords"]) | undefined;
13808
+ /** What a screen reader is told a repeated line's count is. `{count}` is how
13809
+ many times it was written, two or more, in the locale, and a language
13810
+ writes the forms it has: `{count, plural, few {# razy} other {# razy}}`. */
13811
+ "times-label"?: (HelixSandboxTerminal["timesLabel"]) | undefined;
13812
+ /** What a screen reader is told a repeated line's count is. `{count}` is how
13813
+ many times it was written, two or more, in the locale, and a language
13814
+ writes the forms it has: `{count, plural, few {# razy} other {# razy}}`. */
13815
+ timesLabel?: (HelixSandboxTerminal["timesLabel"]) | undefined;
13041
13816
  };
13042
13817
 
13043
13818
  export type HelixSandboxTerminalVueEvents = {
@@ -13069,8 +13844,8 @@ words and is already written. */
13069
13844
  /** The locale the chart's own numbers are written in: its axis, its
13070
13845
  percentages and its totals, such as `de` for `1.240` and `32 %`.
13071
13846
 
13072
- Absent uses the runtime's own. The table's cells are shown as the table
13073
- writes them, whatever this says. */
13847
+ Absent reads the nearest `lang`, then the runtime's own. The table's
13848
+ cells are shown as the table writes them, whatever this says. */
13074
13849
  locale?: (HelixScatterChart["locale"]) | undefined;
13075
13850
  /** Where a reading the keys moved to stands among the readings, said after
13076
13851
  it. `{position}` and `{count}` are replaced with the numbers, written in
@@ -13088,9 +13863,11 @@ Set it to the words of the page's language, such as `{position} von
13088
13863
  {count}`, or to nothing to say no position. A slice or a series a
13089
13864
  legend hid is not counted. */
13090
13865
  positionLabel?: (HelixScatterChart["positionLabel"]) | undefined;
13091
- /** The word the summary uses for the strength of the relation. */
13866
+ /** The word for the strength of the relation, `{correlationLabel}` in
13867
+ `series-label`. */
13092
13868
  "correlation-label"?: (HelixScatterChart["correlationLabel"]) | undefined;
13093
- /** The word the summary uses for the strength of the relation. */
13869
+ /** The word for the strength of the relation, `{correlationLabel}` in
13870
+ `series-label`. */
13094
13871
  correlationLabel?: (HelixScatterChart["correlationLabel"]) | undefined;
13095
13872
  /** Which gridlines are drawn across the plot, if any.
13096
13873
 
@@ -13099,10 +13876,30 @@ Both axes are measured, so the values name an axis rather than a role:
13099
13876
  anything unrecognized, means `both`, since neither axis is the one a scatter
13100
13877
  is read along. */
13101
13878
  gridlines?: (HelixScatterChart["gridlines"]) | undefined;
13102
- /** The word the summary uses for a row when it counts them. */
13879
+ /** The word for the rows a series rests on, `{pointsLabel}` in
13880
+ `series-label`. `{count}` is how many, so the word takes its plural
13881
+ forms: `{count, plural, one {punkt} few {punkty} other {punktów}}`. */
13103
13882
  "points-label"?: (HelixScatterChart["pointsLabel"]) | undefined;
13104
- /** The word the summary uses for a row when it counts them. */
13883
+ /** The word for the rows a series rests on, `{pointsLabel}` in
13884
+ `series-label`. `{count}` is how many, so the word takes its plural
13885
+ forms: `{count, plural, one {punkt} few {punkty} other {punktów}}`. */
13105
13886
  pointsLabel?: (HelixScatterChart["pointsLabel"]) | undefined;
13887
+ /** What the summary says of each series. `{y}` is what the series measures up,
13888
+ `{x}` what the chart measures across, `{count}` how many rows it rests on,
13889
+ written in the locale, `{pointsLabel}` the word for them, and
13890
+ `{correlation}` its correlation, or `none` where there are fewer than
13891
+ three points or no spread to measure, so each case is a whole sentence:
13892
+ `{correlation, select, none {...} other {...}}`. `{correlationLabel}` is
13893
+ `correlation-label`. */
13894
+ "series-label"?: (HelixScatterChart["seriesLabel"]) | undefined;
13895
+ /** What the summary says of each series. `{y}` is what the series measures up,
13896
+ `{x}` what the chart measures across, `{count}` how many rows it rests on,
13897
+ written in the locale, `{pointsLabel}` the word for them, and
13898
+ `{correlation}` its correlation, or `none` where there are fewer than
13899
+ three points or no spread to measure, so each case is a whole sentence:
13900
+ `{correlation, select, none {...} other {...}}`. `{correlationLabel}` is
13901
+ `correlation-label`. */
13902
+ seriesLabel?: (HelixScatterChart["seriesLabel"]) | undefined;
13106
13903
  /** The heading of a column whose numbers size the points, such as
13107
13904
  `Population`, which makes the chart a bubble chart.
13108
13905
 
@@ -13273,22 +14070,34 @@ browser's message. */
13273
14070
  required?: (HelixSelect["required"]) | undefined;
13274
14071
  /** The message shown when the field is required and empty.
13275
14072
 
13276
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
13277
- set and the browser's own on a text field, which the browser writes in
13278
- the reader's language. Every other word a control speaks is a property,
14073
+ **Absent, or empty, is the control's own sentence**, "Choose one to
14074
+ continue." on a set and the browser's own on a text field, which the
14075
+ browser writes in the reader's language. A family with a sentence of its
14076
+ own declares it as this property's English, a word property a page
14077
+ registers for its locale under the family's key. Every other word a control speaks is a property,
13279
14078
  and this one was the English a form in another language still spoke in
13280
14079
  the bubble it raises on submit: `feedback` replaces the message under
13281
14080
  the field and does not reach that one. */
13282
14081
  "value-missing-message"?: (HelixSelect["valueMissingMessage"]) | undefined;
13283
14082
  /** The message shown when the field is required and empty.
13284
14083
 
13285
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
13286
- set and the browser's own on a text field, which the browser writes in
13287
- the reader's language. Every other word a control speaks is a property,
14084
+ **Absent, or empty, is the control's own sentence**, "Choose one to
14085
+ continue." on a set and the browser's own on a text field, which the
14086
+ browser writes in the reader's language. A family with a sentence of its
14087
+ own declares it as this property's English, a word property a page
14088
+ registers for its locale under the family's key. Every other word a control speaks is a property,
13288
14089
  and this one was the English a form in another language still spoke in
13289
14090
  the bubble it raises on submit: `feedback` replaces the message under
13290
14091
  the field and does not reach that one. */
13291
14092
  valueMissingMessage?: (HelixSelect["valueMissingMessage"]) | undefined;
14093
+ /** What a browser's autofill may fill in, as a platform token such as
14094
+ `country` or `cc-exp-month`, as on a native `<select>`.
14095
+
14096
+ Set, the select keeps a hidden native `<select>` with the same options for
14097
+ the browser to fill, as React Aria's `HiddenSelect` does, and takes the
14098
+ option the browser picks, by its value or its words, as the value. Empty
14099
+ draws no hidden select, and a browser fills nothing. */
14100
+ autocomplete?: (HelixSelect["autocomplete"]) | undefined;
13292
14101
  /** The text shown when no options match the filter. */
13293
14102
  "empty-text"?: (HelixSelect["emptyText"]) | undefined;
13294
14103
  /** The text shown when no options match the filter. */
@@ -13493,18 +14302,22 @@ browser's message. */
13493
14302
  required?: (HelixSlider["required"]) | undefined;
13494
14303
  /** The message shown when the field is required and empty.
13495
14304
 
13496
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
13497
- set and the browser's own on a text field, which the browser writes in
13498
- the reader's language. Every other word a control speaks is a property,
14305
+ **Absent, or empty, is the control's own sentence**, "Choose one to
14306
+ continue." on a set and the browser's own on a text field, which the
14307
+ browser writes in the reader's language. A family with a sentence of its
14308
+ own declares it as this property's English, a word property a page
14309
+ registers for its locale under the family's key. Every other word a control speaks is a property,
13499
14310
  and this one was the English a form in another language still spoke in
13500
14311
  the bubble it raises on submit: `feedback` replaces the message under
13501
14312
  the field and does not reach that one. */
13502
14313
  "value-missing-message"?: (HelixSlider["valueMissingMessage"]) | undefined;
13503
14314
  /** The message shown when the field is required and empty.
13504
14315
 
13505
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
13506
- set and the browser's own on a text field, which the browser writes in
13507
- the reader's language. Every other word a control speaks is a property,
14316
+ **Absent, or empty, is the control's own sentence**, "Choose one to
14317
+ continue." on a set and the browser's own on a text field, which the
14318
+ browser writes in the reader's language. A family with a sentence of its
14319
+ own declares it as this property's English, a word property a page
14320
+ registers for its locale under the family's key. Every other word a control speaks is a property,
13508
14321
  and this one was the English a form in another language still spoke in
13509
14322
  the bubble it raises on submit: `feedback` replaces the message under
13510
14323
  the field and does not reach that one. */
@@ -13525,8 +14338,8 @@ attribute.
13525
14338
  <helix-slider format-options='{"style":"currency","currency":"USD"}'></helix-slider>
13526
14339
  ``` */
13527
14340
  formatOptions?: (HelixSlider["formatOptions"]) | undefined;
13528
- /** The locale `format-options` writes the value in, such as `de-DE`. Empty is
13529
- the reader's own. */
14341
+ /** The locale the value and the words are written in, such as `de-DE`. Empty
14342
+ reads the nearest `lang`, then the browser's language. */
13530
14343
  locale?: (HelixSlider["locale"]) | undefined;
13531
14344
  /** Shows the value at each mark. */
13532
14345
  "marker-labels"?: (HelixSlider["markerLabels"]) | undefined;
@@ -13763,11 +14576,11 @@ the accessible representation of a sparkline, and a list of the fourteen
13763
14576
  numbers is not. Absent, the drawing is hidden from a screen reader rather
13764
14577
  than announced without a name. */
13765
14578
  label?: (HelixSparkline["label"]) | undefined;
13766
- /** The locale the readout's numbers and positions are written in, such as
13767
- `de` for `1.240`.
14579
+ /** The locale the words, the readout's numbers and positions are in, such
14580
+ as `de` for `1.240`.
13768
14581
 
13769
- Absent uses the runtime's own. A table's cells are shown as the table
13770
- writes them, whatever this says. */
14582
+ Absent reads the nearest `lang`, then the runtime's own. A table's cells
14583
+ are shown as the table writes them, whatever this says. */
13771
14584
  locale?: (HelixSparkline["locale"]) | undefined;
13772
14585
  /** Which readings take a mark of their own: `high`, `low`, or both,
13773
14586
  separated by spaces.
@@ -13848,6 +14661,13 @@ not. */
13848
14661
 
13849
14662
  export type HelixSparklineVueEvents = {};
13850
14663
 
14664
+ export type HelixSpeedDialGroupVueProps = {
14665
+ /** The group's name, drawn above its actions and read by screen readers. */
14666
+ label?: (HelixSpeedDialGroup["label"]) | undefined;
14667
+ };
14668
+
14669
+ export type HelixSpeedDialGroupVueEvents = {};
14670
+
13851
14671
  /** `HelixSpeedDialItem` component event */
13852
14672
  export type HelixSpeedDialItemElementEvent<E = Event> = TypedEvent<
13853
14673
  HelixSpeedDialItem,
@@ -13860,6 +14680,10 @@ export type HelixSpeedDialItemHelixSelectElementEvent =
13860
14680
  export type HelixSpeedDialItemVueProps = {
13861
14681
  /** Whether the action is disabled, so it cannot be chosen. */
13862
14682
  disabled?: (HelixSpeedDialItem["disabled"]) | undefined;
14683
+ /** The action's keyboard shortcut as a chord, such as `mod+s`, carried as
14684
+ `aria-keyshortcuts` and drawn after the name. `mod` is Command on an Apple
14685
+ keyboard and Control elsewhere. Showing a shortcut does not bind it. */
14686
+ shortcut?: (HelixSpeedDialItem["shortcut"]) | undefined;
13863
14687
  /** The action's value, sent in `helix-select` when the action is chosen. */
13864
14688
  value?: (HelixSpeedDialItem["value"]) | undefined;
13865
14689
  };
@@ -13912,8 +14736,32 @@ the resolved state for stylesheets, which is what the mirror is for. */
13912
14736
  open?: (HelixSpeedDial["open"]) | undefined;
13913
14737
  /** Accessible name for the trigger and the set of actions it opens. */
13914
14738
  label?: (HelixSpeedDial["label"]) | undefined;
14739
+ /** The description the trigger gives under `open-on="long-press"`, saying how
14740
+ its actions are reached.
14741
+
14742
+ A slotted trigger is described by the dial, which carries the words as
14743
+ its own label for that: a Helix button's inner control at once, and a
14744
+ plain element of yours once a reader reaches it, after hydration, unless
14745
+ you described or labeled it yourself. */
14746
+ "long-press-label"?: (HelixSpeedDial["longPressLabel"]) | undefined;
14747
+ /** The description the trigger gives under `open-on="long-press"`, saying how
14748
+ its actions are reached.
14749
+
14750
+ A slotted trigger is described by the dial, which carries the words as
14751
+ its own label for that: a Helix button's inner control at once, and a
14752
+ plain element of yours once a reader reaches it, after hydration, unless
14753
+ you described or labeled it yourself. */
14754
+ longPressLabel?: (HelixSpeedDial["longPressLabel"]) | undefined;
13915
14755
  /** Space between the trigger and the actions, in pixels. */
13916
14756
  offset?: (HelixSpeedDial["offset"]) | undefined;
14757
+ /** What opens the dial. `click` opens it on a press of the trigger. Under
14758
+ `long-press`, a press is the trigger's own action, and the dial opens on a
14759
+ press held for half a second, or on Alt+Down or Alt+Up. */
14760
+ "open-on"?: (HelixSpeedDial["openOn"]) | undefined;
14761
+ /** What opens the dial. `click` opens it on a press of the trigger. Under
14762
+ `long-press`, a press is the trigger's own action, and the dial opens on a
14763
+ press held for half a second, or on Alt+Down or Alt+Up. */
14764
+ openOn?: (HelixSpeedDial["openOn"]) | undefined;
13917
14765
  /** The direction the actions open in. They move to another side if that side
13918
14766
  does not fit.
13919
14767
 
@@ -14095,7 +14943,7 @@ export type HelixSplitterVueEvents = {
14095
14943
  "helix-collapse": HelixSplitterHelixCollapseElementEvent;
14096
14944
  /** Fired after the divider settles somewhere new, with the new position. */
14097
14945
  "helix-resized": HelixSplitterHelixResizedElementEvent;
14098
- /** Fired each time a drag moves the divider, before it settles, as a range input does while it is dragged. Read `position` for where it is now. */
14946
+ /** Fired each time the divider moves, as a range input does: on each step of a drag, and before `helix-resized` for a key, a double click or a corner. Read `position` for where it is now. */
14099
14947
  input: HelixSplitterElementEvent;
14100
14948
  };
14101
14949
 
@@ -14196,11 +15044,15 @@ in both. Of those four combinations three are ones nobody should pick, and
14196
15044
  a property whose job is mostly to be left alone is a property that mostly
14197
15045
  catches people out. */
14198
15046
  orientation?: (HelixSteps["orientation"]) | undefined;
14199
- /** What the `progress` part says to a screen reader, with `{percent}` filled
14200
- in with `progress`. */
15047
+ /** What the `progress` part says to a screen reader. `{share, number,
15048
+ percent}` writes `progress` as a percentage the way the locale writes one,
15049
+ such as `40%`, or `40 %` in French. `{percent}` is `progress` as a whole
15050
+ number, for a sentence that places the sign itself. */
14201
15051
  "progress-label"?: (HelixSteps["progressLabel"]) | undefined;
14202
- /** What the `progress` part says to a screen reader, with `{percent}` filled
14203
- in with `progress`. */
15052
+ /** What the `progress` part says to a screen reader. `{share, number,
15053
+ percent}` writes `progress` as a percentage the way the locale writes one,
15054
+ such as `40%`, or `40 %` in French. `{percent}` is `progress` as a whole
15055
+ number, for a sentence that places the sign itself. */
14204
15056
  progressLabel?: (HelixSteps["progressLabel"]) | undefined;
14205
15057
  /** What each step is marked with.
14206
15058
 
@@ -14237,6 +15089,16 @@ export type HelixStepHelixSelectElementEvent =
14237
15089
  export type HelixStepVueProps = {
14238
15090
  /** Whether this stage is finished. */
14239
15091
  complete?: (HelixStep["complete"]) | undefined;
15092
+ /** What a screen reader hears when the stage is finished while the page is
15093
+ open. `{name}` is the stage's name and `{complete}` is `complete-label`, so
15094
+ a language can write the whole sentence in its own order. A stage with no
15095
+ name says `complete-label` alone. */
15096
+ "completed-label"?: (HelixStep["completedLabel"]) | undefined;
15097
+ /** What a screen reader hears when the stage is finished while the page is
15098
+ open. `{name}` is the stage's name and `{complete}` is `complete-label`, so
15099
+ a language can write the whole sentence in its own order. A stage with no
15100
+ name says `complete-label` alone. */
15101
+ completedLabel?: (HelixStep["completedLabel"]) | undefined;
14240
15102
  /** The words that tell a screen reader the stage is finished. Translate it
14241
15103
  with the page. */
14242
15104
  "complete-label"?: (HelixStep["completeLabel"]) | undefined;
@@ -14319,18 +15181,22 @@ browser's message. */
14319
15181
  required?: (HelixSwitch["required"]) | undefined;
14320
15182
  /** The message shown when the field is required and empty.
14321
15183
 
14322
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
14323
- set and the browser's own on a text field, which the browser writes in
14324
- the reader's language. Every other word a control speaks is a property,
15184
+ **Absent, or empty, is the control's own sentence**, "Choose one to
15185
+ continue." on a set and the browser's own on a text field, which the
15186
+ browser writes in the reader's language. A family with a sentence of its
15187
+ own declares it as this property's English, a word property a page
15188
+ registers for its locale under the family's key. Every other word a control speaks is a property,
14325
15189
  and this one was the English a form in another language still spoke in
14326
15190
  the bubble it raises on submit: `feedback` replaces the message under
14327
15191
  the field and does not reach that one. */
14328
15192
  "value-missing-message"?: (HelixSwitch["valueMissingMessage"]) | undefined;
14329
15193
  /** The message shown when the field is required and empty.
14330
15194
 
14331
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
14332
- set and the browser's own on a text field, which the browser writes in
14333
- the reader's language. Every other word a control speaks is a property,
15195
+ **Absent, or empty, is the control's own sentence**, "Choose one to
15196
+ continue." on a set and the browser's own on a text field, which the
15197
+ browser writes in the reader's language. A family with a sentence of its
15198
+ own declares it as this property's English, a word property a page
15199
+ registers for its locale under the family's key. Every other word a control speaks is a property,
14334
15200
  and this one was the English a form in another language still spoke in
14335
15201
  the bubble it raises on submit: `feedback` replaces the message under
14336
15202
  the field and does not reach that one. */
@@ -14409,14 +15275,16 @@ after a column moves is a sort a consumer cannot store in a URL.
14409
15275
  Empty on a column that is purely presentational, an actions column say, and
14410
15276
  such a column is never sortable however it is marked. */
14411
15277
  field?: (HelixTableColumn["field"]) | undefined;
14412
- /** The accessible name of the grip that moves the column. `{name}` is replaced
14413
- with the heading text.
15278
+ /** The accessible name of the grip that moves the column. `{name}` is the
15279
+ heading text, and `{named}` is `no` for a column without one, so the
15280
+ sentence for it can name the column another way.
14414
15281
 
14415
15282
  **Every word a column speaks is a property**, so a table in another
14416
15283
  language hears its own rather than English around its own headings. */
14417
15284
  "move-label"?: (HelixTableColumn["moveLabel"]) | undefined;
14418
- /** The accessible name of the grip that moves the column. `{name}` is replaced
14419
- with the heading text.
15285
+ /** The accessible name of the grip that moves the column. `{name}` is the
15286
+ heading text, and `{named}` is `no` for a column without one, so the
15287
+ sentence for it can name the column another way.
14420
15288
 
14421
15289
  **Every word a column speaks is a property**, so a table in another
14422
15290
  language hears its own rather than English around its own headings. */
@@ -14429,10 +15297,10 @@ it has focus, a step at a time and four with Shift. The width lands in
14429
15297
  stores the widths can take the decision. */
14430
15298
  resizable?: (HelixTableColumn["resizable"]) | undefined;
14431
15299
  /** The accessible name of the separator that resizes the column. `{name}` is
14432
- replaced with the heading text. */
15300
+ the heading text, and `{named}` is `no` for a column without one. */
14433
15301
  "resize-label"?: (HelixTableColumn["resizeLabel"]) | undefined;
14434
15302
  /** The accessible name of the separator that resizes the column. `{name}` is
14435
- replaced with the heading text. */
15303
+ the heading text, and `{named}` is `no` for a column without one. */
14436
15304
  resizeLabel?: (HelixTableColumn["resizeLabel"]) | undefined;
14437
15305
  /** Makes this column's cells the headers of their rows, in `DataTable`.
14438
15306
 
@@ -14550,10 +15418,12 @@ and lets that column wrap. A headless consumer owns the overflow either
14550
15418
  way, that being paint, and gets the honest track list. */
14551
15419
  width?: (HelixTableColumn["width"]) | undefined;
14552
15420
  /** The text screen readers announce for the column's width. `{width}` is
14553
- replaced with the width. */
15421
+ the width in pixels, written in the locale, and each language writes the
15422
+ forms it has. */
14554
15423
  "width-label"?: (HelixTableColumn["widthLabel"]) | undefined;
14555
15424
  /** The text screen readers announce for the column's width. `{width}` is
14556
- replaced with the width. */
15425
+ the width in pixels, written in the locale, and each language writes the
15426
+ forms it has. */
14557
15427
  widthLabel?: (HelixTableColumn["widthLabel"]) | undefined;
14558
15428
  /** A function that reads the cell's content from a row, for cells that `field`
14559
15429
  alone cannot read.
@@ -14583,6 +15453,12 @@ export type HelixTableColumnVueEvents = {
14583
15453
 
14584
15454
  /** `HelixTable` component event */
14585
15455
  export type HelixTableElementEvent<E = Event> = TypedEvent<HelixTable, E>;
15456
+ /** `helix-before-reorder` event type */
15457
+ export type HelixTableHelixBeforeReorderElementEvent =
15458
+ HelixTableElementEvent<HelixBeforeReorderEvent>;
15459
+ /** `helix-reorder` event type */
15460
+ export type HelixTableHelixReorderElementEvent =
15461
+ HelixTableElementEvent<HelixReorderEvent>;
14586
15462
  /** `helix-select` event type */
14587
15463
  export type HelixTableHelixSelectElementEvent =
14588
15464
  HelixTableElementEvent<HelixSelectEvent>;
@@ -14611,10 +15487,16 @@ say that without the component knowing what a row looks like. */
14611
15487
  "loading-text"?: (HelixTable["loadingText"]) | undefined;
14612
15488
  /** The text shown and announced while the rows load. */
14613
15489
  loadingText?: (HelixTable["loadingText"]) | undefined;
14614
- /** The word for an ascending sort, in `sorted-label`. */
15490
+ /** The word for an ascending sort, in a `sorted-label` that writes `{order}`. */
14615
15491
  "ascending-label"?: (HelixTable["ascendingLabel"]) | undefined;
14616
- /** The word for an ascending sort, in `sorted-label`. */
15492
+ /** The word for an ascending sort, in a `sorted-label` that writes `{order}`. */
14617
15493
  ascendingLabel?: (HelixTable["ascendingLabel"]) | undefined;
15494
+ /** What screen readers hear when a held row is put back, or a move is
15495
+ refused, in a `reorderable` table. */
15496
+ "canceled-label"?: (HelixTable["canceledLabel"]) | undefined;
15497
+ /** What screen readers hear when a held row is put back, or a move is
15498
+ refused, in a `reorderable` table. */
15499
+ canceledLabel?: (HelixTable["canceledLabel"]) | undefined;
14618
15500
  /** The column widths as one track list, written once on the table.
14619
15501
 
14620
15502
  With `TableColumn` children, each track sizes the column in its place, a
@@ -14654,15 +15536,60 @@ is set. */
14654
15536
  "default-sort"?: (HelixTable["defaultSort"]) | undefined;
14655
15537
  /** The starting sort order, used until `sort` is set. */
14656
15538
  defaultSort?: (HelixTable["defaultSort"]) | undefined;
14657
- /** The word for a descending sort, in `sorted-label`. */
15539
+ /** The word for a descending sort, in a `sorted-label` that writes `{order}`. */
14658
15540
  "descending-label"?: (HelixTable["descendingLabel"]) | undefined;
14659
- /** The word for a descending sort, in `sorted-label`. */
15541
+ /** The word for a descending sort, in a `sorted-label` that writes `{order}`. */
14660
15542
  descendingLabel?: (HelixTable["descendingLabel"]) | undefined;
15543
+ /** What screen readers hear when a held row is dropped, in a `reorderable` table. */
15544
+ "dropped-label"?: (HelixTable["droppedLabel"]) | undefined;
15545
+ /** What screen readers hear when a held row is dropped, in a `reorderable` table. */
15546
+ droppedLabel?: (HelixTable["droppedLabel"]) | undefined;
15547
+ /** The table's name where neither `label` nor an `aria-label` or
15548
+ `aria-labelledby` on the host gives it one. */
15549
+ "fallback-label"?: (HelixTable["fallbackLabel"]) | undefined;
15550
+ /** The table's name where neither `label` nor an `aria-label` or
15551
+ `aria-labelledby` on the host gives it one. */
15552
+ fallbackLabel?: (HelixTable["fallbackLabel"]) | undefined;
15553
+ /** Makes the table a grid: one tab stop, and the arrow keys, Home, End and the
15554
+ Page keys move focus between its cells, the headings included. Enter moves
15555
+ into a cell's controls, and Tab leaves the table.
15556
+
15557
+ Off by default, where the table is a static `table` and Tab reaches each
15558
+ link and control in it. On, the table writes a `tabindex` onto each of its
15559
+ cells, which is the one way a cell of your markup can take focus. */
15560
+ grid?: (HelixTable["grid"]) | undefined;
14661
15561
  /** Accessible name for the table.
14662
15562
 
14663
15563
  An `aria-label` or `aria-labelledby` on the host names the table too, and
14664
15564
  wins over this. */
14665
15565
  label?: (HelixTable["label"]) | undefined;
15566
+ /** What screen readers hear each time a key moves a held row, in a
15567
+ `reorderable` table. `{name}` is the row's words, `{position}` the place it
15568
+ would go, counting from 1, and `{count}` the number of rows. */
15569
+ "moved-label"?: (HelixTable["movedLabel"]) | undefined;
15570
+ /** What screen readers hear each time a key moves a held row, in a
15571
+ `reorderable` table. `{name}` is the row's words, `{position}` the place it
15572
+ would go, counting from 1, and `{count}` the number of rows. */
15573
+ movedLabel?: (HelixTable["movedLabel"]) | undefined;
15574
+ /** The name of a row's grip, in a `reorderable` table. `{row}` is replaced
15575
+ with the words of the row's first cell. */
15576
+ "move-row-label"?: (HelixTable["moveRowLabel"]) | undefined;
15577
+ /** The name of a row's grip, in a `reorderable` table. `{row}` is replaced
15578
+ with the words of the row's first cell. */
15579
+ moveRowLabel?: (HelixTable["moveRowLabel"]) | undefined;
15580
+ /** What screen readers hear when a key or a click picks up a row, in a
15581
+ `reorderable` table. `{name}` is the row's words. */
15582
+ "picked-up-label"?: (HelixTable["pickedUpLabel"]) | undefined;
15583
+ /** What screen readers hear when a key or a click picks up a row, in a
15584
+ `reorderable` table. `{name}` is the row's words. */
15585
+ pickedUpLabel?: (HelixTable["pickedUpLabel"]) | undefined;
15586
+ /** Adds a column of grips that move rows, by dragging or with the keys. The
15587
+ table moves no row itself: you move your rows on `helix-reorder`. */
15588
+ reorderable?: (HelixTable["reorderable"]) | undefined;
15589
+ /** The name of the heading over the row grips, in a `reorderable` table. */
15590
+ "row-grips-label"?: (HelixTable["rowGripsLabel"]) | undefined;
15591
+ /** The name of the heading over the row grips, in a `reorderable` table. */
15592
+ rowGripsLabel?: (HelixTable["rowGripsLabel"]) | undefined;
14666
15593
  /** Adds a column of checkboxes for selecting rows. Each row is known by its
14667
15594
  `value`, and by its place among the rows as written where it has none. */
14668
15595
  selectable?: (HelixTable["selectable"]) | undefined;
@@ -14677,10 +15604,14 @@ selection as it was. `default-selected` seeds a selection this element
14677
15604
  then owns. */
14678
15605
  selected?: (HelixTable["selected"]) | undefined;
14679
15606
  /** What screen readers hear when the chosen rows change. `{count}` is how many
14680
- rows are chosen. */
15607
+ rows are chosen, written in the locale, and a language that needs plural
15608
+ forms writes them: `{count, plural, one {# wybrany} few {# wybrane} many
15609
+ {# wybranych} other {# wybranego}}`. */
14681
15610
  "selected-label"?: (HelixTable["selectedLabel"]) | undefined;
14682
15611
  /** What screen readers hear when the chosen rows change. `{count}` is how many
14683
- rows are chosen. */
15612
+ rows are chosen, written in the locale, and a language that needs plural
15613
+ forms writes them: `{count, plural, one {# wybrany} few {# wybrane} many
15614
+ {# wybranych} other {# wybranego}}`. */
14684
15615
  selectedLabel?: (HelixTable["selectedLabel"]) | undefined;
14685
15616
  /** The name of a row's checkbox. `{row}` is replaced with the words of the
14686
15617
  row's first cell. */
@@ -14697,10 +15628,14 @@ first, and refusing it leaves the order as it was. `default-sort` seeds an
14697
15628
  order this element then owns. */
14698
15629
  sort?: (HelixTable["sort"]) | undefined;
14699
15630
  /** What screen readers hear when the table is sorted. `{column}` is the
14700
- column's heading and `{order}` is `ascending-label` or `descending-label`. */
15631
+ column's heading and `{direction}` is `ascending` or `descending`, so each
15632
+ order has its whole sentence. `{order}` is the deprecated
15633
+ `ascending-label` or `descending-label`. */
14701
15634
  "sorted-label"?: (HelixTable["sortedLabel"]) | undefined;
14702
15635
  /** What screen readers hear when the table is sorted. `{column}` is the
14703
- column's heading and `{order}` is `ascending-label` or `descending-label`. */
15636
+ column's heading and `{direction}` is `ascending` or `descending`, so each
15637
+ order has its whole sentence. `{order}` is the deprecated
15638
+ `ascending-label` or `descending-label`. */
14704
15639
  sortedLabel?: (HelixTable["sortedLabel"]) | undefined;
14705
15640
  /** What screen readers hear when the table stops being sorted. */
14706
15641
  "unsorted-label"?: (HelixTable["unsortedLabel"]) | undefined;
@@ -14709,6 +15644,10 @@ column's heading and `{order}` is `ascending-label` or `descending-label`. */
14709
15644
  };
14710
15645
 
14711
15646
  export type HelixTableVueEvents = {
15647
+ /** Fired when a row is dropped at a new place, in a `reorderable` table, with every row's key in the new order. Cancelable: cancel it to keep the row where it is. */
15648
+ "helix-before-reorder": HelixTableHelixBeforeReorderElementEvent;
15649
+ /** 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. */
15650
+ "helix-reorder": HelixTableHelixReorderElementEvent;
14712
15651
  /** The selection is about to change. The event carries every selected key, separated by commas. Cancelable: cancel it to keep the current selection. */
14713
15652
  "helix-select": HelixTableHelixSelectElementEvent;
14714
15653
  /** Fired after the selection changes, with every selected key, separated by commas. */
@@ -14952,14 +15891,22 @@ carries a meaning beside something else. */
14952
15891
  `attribute` is spelled out because Lit lowercases a property name to
14953
15892
  derive one rather than dash-casing it, so this would otherwise be
14954
15893
  reachable only as `dismisslabel`, which nobody would guess and no linter
14955
- would catch. */
15894
+ would catch.
15895
+
15896
+ A word property: register it for a locale under the host's key. A family
15897
+ that names the control otherwise, such as Tag's `Remove {label}`,
15898
+ declares its own English with `@words` above the override. */
14956
15899
  "dismiss-label"?: (HelixTag["dismissLabel"]) | undefined;
14957
15900
  /** The dismiss control's label, read by screen readers.
14958
15901
 
14959
15902
  `attribute` is spelled out because Lit lowercases a property name to
14960
15903
  derive one rather than dash-casing it, so this would otherwise be
14961
15904
  reachable only as `dismisslabel`, which nobody would guess and no linter
14962
- would catch. */
15905
+ would catch.
15906
+
15907
+ A word property: register it for a locale under the host's key. A family
15908
+ that names the control otherwise, such as Tag's `Remove {label}`,
15909
+ declares its own English with `@words` above the override. */
14963
15910
  dismissLabel?: (HelixTag["dismissLabel"]) | undefined;
14964
15911
  /** Takes the tag out of reach: its link and its remove button stop
14965
15912
  answering, and in a `Tag.Group` the arrow keys pass over it and it cannot
@@ -15110,18 +16057,22 @@ browser's message. */
15110
16057
  required?: (HelixTextarea["required"]) | undefined;
15111
16058
  /** The message shown when the field is required and empty.
15112
16059
 
15113
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
15114
- set and the browser's own on a text field, which the browser writes in
15115
- the reader's language. Every other word a control speaks is a property,
16060
+ **Absent, or empty, is the control's own sentence**, "Choose one to
16061
+ continue." on a set and the browser's own on a text field, which the
16062
+ browser writes in the reader's language. A family with a sentence of its
16063
+ own declares it as this property's English, a word property a page
16064
+ registers for its locale under the family's key. Every other word a control speaks is a property,
15116
16065
  and this one was the English a form in another language still spoke in
15117
16066
  the bubble it raises on submit: `feedback` replaces the message under
15118
16067
  the field and does not reach that one. */
15119
16068
  "value-missing-message"?: (HelixTextarea["valueMissingMessage"]) | undefined;
15120
16069
  /** The message shown when the field is required and empty.
15121
16070
 
15122
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
15123
- set and the browser's own on a text field, which the browser writes in
15124
- the reader's language. Every other word a control speaks is a property,
16071
+ **Absent, or empty, is the control's own sentence**, "Choose one to
16072
+ continue." on a set and the browser's own on a text field, which the
16073
+ browser writes in the reader's language. A family with a sentence of its
16074
+ own declares it as this property's English, a word property a page
16075
+ registers for its locale under the family's key. Every other word a control speaks is a property,
15125
16076
  and this one was the English a form in another language still spoke in
15126
16077
  the bubble it raises on submit: `feedback` replaces the message under
15127
16078
  the field and does not reach that one. */
@@ -15284,12 +16235,28 @@ export type HelixTimeInputHelixBeforeOpenElementEvent =
15284
16235
  HelixTimeInputElementEvent<HelixBeforeOpenEvent>;
15285
16236
 
15286
16237
  export type HelixTimeInputVueProps = {
16238
+ /** What a row of segments reports when the field is required and every
16239
+ segment is empty, where `value-missing-message` is not set. `{kind}` is
16240
+ `date` or `time`. */
16241
+ "empty-message"?: (HelixTimeInput["emptyMessage"]) | undefined;
16242
+ /** What a row of segments reports when the field is required and every
16243
+ segment is empty, where `value-missing-message` is not set. `{kind}` is
16244
+ `date` or `time`. */
16245
+ emptyMessage?: (HelixTimeInput["emptyMessage"]) | undefined;
15287
16246
  /** What a screen reader hears for a segment with nothing in it, which a
15288
16247
  sighted reader sees as dashes. */
15289
16248
  "empty-segment-label"?: (HelixTimeInput["emptySegmentLabel"]) | undefined;
15290
16249
  /** What a screen reader hears for a segment with nothing in it, which a
15291
16250
  sighted reader sees as dashes. */
15292
16251
  emptySegmentLabel?: (HelixTimeInput["emptySegmentLabel"]) | undefined;
16252
+ /** What a row of segments reports while some segments are set and others
16253
+ are not, where `bad-input-message` is not set. `{kind}` is `date` or
16254
+ `time`. */
16255
+ "incomplete-message"?: (HelixTimeInput["incompleteMessage"]) | undefined;
16256
+ /** What a row of segments reports while some segments are set and others
16257
+ are not, where `bad-input-message` is not set. `{kind}` is `date` or
16258
+ `time`. */
16259
+ incompleteMessage?: (HelixTimeInput["incompleteMessage"]) | undefined;
15293
16260
  /** Whether the field is a row of segments, one for each part of the date or
15294
16261
  time, in place of a line of text.
15295
16262
 
@@ -15371,6 +16338,12 @@ as `+3`, does not say what it does. */
15371
16338
  "max-tags"?: (HelixTimeInput["maxTags"] | `${number}`) | undefined;
15372
16339
  /** How many tokens to show before the rest become a count. */
15373
16340
  maxTags?: (HelixTimeInput["maxTags"]) | undefined;
16341
+ /** The count of the tokens past `max-tags`, as it is shown, with `{count}`
16342
+ for the number, written in the element's locale. */
16343
+ "rest-text"?: (HelixTimeInput["restText"]) | undefined;
16344
+ /** The count of the tokens past `max-tags`, as it is shown, with `{count}`
16345
+ for the number, written in the element's locale. */
16346
+ restText?: (HelixTimeInput["restText"]) | undefined;
15374
16347
  /** The value the control starts with. A form reset returns it to this value,
15375
16348
  and to the `value` attribute where this one is not written, as a native
15376
16349
  control resets to the `value` it declares. */
@@ -15400,18 +16373,22 @@ browser's message. */
15400
16373
  required?: (HelixTimeInput["required"]) | undefined;
15401
16374
  /** The message shown when the field is required and empty.
15402
16375
 
15403
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
15404
- set and the browser's own on a text field, which the browser writes in
15405
- the reader's language. Every other word a control speaks is a property,
16376
+ **Absent, or empty, is the control's own sentence**, "Choose one to
16377
+ continue." on a set and the browser's own on a text field, which the
16378
+ browser writes in the reader's language. A family with a sentence of its
16379
+ own declares it as this property's English, a word property a page
16380
+ registers for its locale under the family's key. Every other word a control speaks is a property,
15406
16381
  and this one was the English a form in another language still spoke in
15407
16382
  the bubble it raises on submit: `feedback` replaces the message under
15408
16383
  the field and does not reach that one. */
15409
16384
  "value-missing-message"?: (HelixTimeInput["valueMissingMessage"]) | undefined;
15410
16385
  /** The message shown when the field is required and empty.
15411
16386
 
15412
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
15413
- set and the browser's own on a text field, which the browser writes in
15414
- the reader's language. Every other word a control speaks is a property,
16387
+ **Absent, or empty, is the control's own sentence**, "Choose one to
16388
+ continue." on a set and the browser's own on a text field, which the
16389
+ browser writes in the reader's language. A family with a sentence of its
16390
+ own declares it as this property's English, a word property a page
16391
+ registers for its locale under the family's key. Every other word a control speaks is a property,
15415
16392
  and this one was the English a form in another language still spoke in
15416
16393
  the bubble it raises on submit: `feedback` replaces the message under
15417
16394
  the field and does not reach that one. */
@@ -15462,14 +16439,14 @@ on why a wheel cannot do either. */
15462
16439
  /** The message shown when a range holds more than two times.
15463
16440
 
15464
16441
  **Every sentence a control raises in the browser's bubble is a property**,
15465
- so a form in another language speaks it. Absent is the control's own
15466
- sentence, in English. */
16442
+ so a form in another language speaks it. Unset is the sentence registered
16443
+ for the page's language, then the English. */
15467
16444
  "range-length-message"?: (HelixTimeInput["rangeLengthMessage"]) | undefined;
15468
16445
  /** The message shown when a range holds more than two times.
15469
16446
 
15470
16447
  **Every sentence a control raises in the browser's bubble is a property**,
15471
- so a form in another language speaks it. Absent is the control's own
15472
- sentence, in English. */
16448
+ so a form in another language speaks it. Unset is the sentence registered
16449
+ for the page's language, then the English. */
15473
16450
  rangeLengthMessage?: (HelixTimeInput["rangeLengthMessage"]) | undefined;
15474
16451
  /** The message shown when a time is after `max`, with `{max}` filled in as
15475
16452
  the field displays it. */
@@ -15635,13 +16612,19 @@ a reset should return to. */
15635
16612
 
15636
16613
  **Every sentence a control raises in the browser's bubble is a property**,
15637
16614
  named for the validity flag it reports, so a form in another language
15638
- speaks it. Absent is the control's own sentence, in English. */
16615
+ speaks it. Unset is the sentence registered for the page's language, then
16616
+ the English. `{shape}` is how a time is written, `HH:mm` or `HH:mm:ss`, and
16617
+ `{mode}` is `single`, `range` or `multiple`, so each can have its own
16618
+ sentence. */
15639
16619
  "bad-input-message"?: (HelixTimePicker["badInputMessage"]) | undefined;
15640
16620
  /** The validation message for a value that is not a time.
15641
16621
 
15642
16622
  **Every sentence a control raises in the browser's bubble is a property**,
15643
16623
  named for the validity flag it reports, so a form in another language
15644
- speaks it. Absent is the control's own sentence, in English. */
16624
+ speaks it. Unset is the sentence registered for the page's language, then
16625
+ the English. `{shape}` is how a time is written, `HH:mm` or `HH:mm:ss`, and
16626
+ `{mode}` is `single`, `range` or `multiple`, so each can have its own
16627
+ sentence. */
15645
16628
  badInputMessage?: (HelixTimePicker["badInputMessage"]) | undefined;
15646
16629
  /** Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
15647
16630
 
@@ -15956,14 +16939,22 @@ export type HelixToastItemVueProps = {
15956
16939
  `attribute` is spelled out because Lit lowercases a property name to
15957
16940
  derive one rather than dash-casing it, so this would otherwise be
15958
16941
  reachable only as `dismisslabel`, which nobody would guess and no linter
15959
- would catch. */
16942
+ would catch.
16943
+
16944
+ A word property: register it for a locale under the host's key. A family
16945
+ that names the control otherwise, such as Tag's `Remove {label}`,
16946
+ declares its own English with `@words` above the override. */
15960
16947
  "dismiss-label"?: (HelixToastItem["dismissLabel"]) | undefined;
15961
16948
  /** The dismiss control's label, read by screen readers.
15962
16949
 
15963
16950
  `attribute` is spelled out because Lit lowercases a property name to
15964
16951
  derive one rather than dash-casing it, so this would otherwise be
15965
16952
  reachable only as `dismisslabel`, which nobody would guess and no linter
15966
- would catch. */
16953
+ would catch.
16954
+
16955
+ A word property: register it for a locale under the host's key. A family
16956
+ that names the control otherwise, such as Tag's `Remove {label}`,
16957
+ declares its own English with `@words` above the override. */
15967
16958
  dismissLabel?: (HelixToastItem["dismissLabel"]) | undefined;
15968
16959
  /** How long the message stays, in milliseconds. When it is not set, the
15969
16960
  message stays until it is dismissed.
@@ -16002,7 +16993,9 @@ export type HelixToastHelixDismissElementEvent =
16002
16993
 
16003
16994
  export type HelixToastVueProps = {
16004
16995
  /** The key that takes focus to the stack and back, such as `F8` or `Alt+T`:
16005
- keys joined by `+`, the last one the key. Empty turns it off. */
16996
+ keys joined by `+`, the last one the key, as `Announcement`'s `hotkey`
16997
+ reads them: `mod` is Command on Apple devices and Control elsewhere.
16998
+ Empty turns it off. */
16006
16999
  hotkey?: (HelixToast["hotkey"]) | undefined;
16007
17000
  /** Accessible name for the region, with `{hotkey}` filled in. Translate it with
16008
17001
  the rest of your interface. */
@@ -16096,18 +17089,22 @@ browser's message. */
16096
17089
  required?: (HelixToggleGroup["required"]) | undefined;
16097
17090
  /** The message shown when the field is required and empty.
16098
17091
 
16099
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
16100
- set and the browser's own on a text field, which the browser writes in
16101
- the reader's language. Every other word a control speaks is a property,
17092
+ **Absent, or empty, is the control's own sentence**, "Choose one to
17093
+ continue." on a set and the browser's own on a text field, which the
17094
+ browser writes in the reader's language. A family with a sentence of its
17095
+ own declares it as this property's English, a word property a page
17096
+ registers for its locale under the family's key. Every other word a control speaks is a property,
16102
17097
  and this one was the English a form in another language still spoke in
16103
17098
  the bubble it raises on submit: `feedback` replaces the message under
16104
17099
  the field and does not reach that one. */
16105
17100
  "value-missing-message"?: (HelixToggleGroup["valueMissingMessage"]) | undefined;
16106
17101
  /** The message shown when the field is required and empty.
16107
17102
 
16108
- **Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
16109
- set and the browser's own on a text field, which the browser writes in
16110
- the reader's language. Every other word a control speaks is a property,
17103
+ **Absent, or empty, is the control's own sentence**, "Choose one to
17104
+ continue." on a set and the browser's own on a text field, which the
17105
+ browser writes in the reader's language. A family with a sentence of its
17106
+ own declares it as this property's English, a word property a page
17107
+ registers for its locale under the family's key. Every other word a control speaks is a property,
16111
17108
  and this one was the English a form in another language still spoke in
16112
17109
  the bubble it raises on submit: `feedback` replaces the message under
16113
17110
  the field and does not reach that one. */
@@ -16277,6 +17274,9 @@ export type HelixToggleVueEvents = {
16277
17274
  };
16278
17275
 
16279
17276
  export type HelixToolbarVueProps = {
17277
+ /** The size of every control in the toolbar: their height, icons, boxes and
17278
+ tags. Unset is the small size, as a toolbar is dense by nature. */
17279
+ size?: (HelixToolbar["size"]) | undefined;
16280
17280
  /** The toolbar's name, read by screen readers.
16281
17281
 
16282
17282
  An `aria-label` or `aria-labelledby` on the host names the toolbar too,
@@ -16384,6 +17384,14 @@ default slot is the trigger, which is the older form.
16384
17384
  Names an element in the same tree, so a tooltip inside another component's
16385
17385
  shadow root points at one in that root rather than one in the document.
16386
17386
 
17387
+ Give the tooltip an `id` and name it in the trigger's `aria-describedby`,
17388
+ so the trigger is described in the server's markup and at rest:
17389
+
17390
+ ```html
17391
+ <button aria-describedby="save-tip" id="save">Save</button>
17392
+ <helix-headless-tooltip content="Save your work" for="save" id="save-tip"></helix-headless-tooltip>
17393
+ ```
17394
+
16387
17395
  **In React this arrives as a property and not as an attribute**, which is
16388
17396
  worth knowing before someone reads the DOM and thinks it did not take.
16389
17397
  Measured against React 19.2.8: `for` exists on the prototype, so React sets
@@ -16542,11 +17550,11 @@ The shape is `Carousel`'s, which is the nearest thing in the library: a
16542
17550
  nextLabel?: (HelixTour["nextLabel"]) | undefined;
16543
17551
  /** Draws each stop's place in the run in its panel, as well as saying it. */
16544
17552
  progress?: (HelixTour["progress"]) | undefined;
16545
- /** Each stop's place in the run, with `{index}` and `{count}` filled in.
16546
- Translate it with the rest of your text. */
17553
+ /** Each stop's place in the run, with `{index}` and `{count}` filled in and
17554
+ written in the locale. Translate it with the rest of your text. */
16547
17555
  "progress-label"?: (HelixTour["progressLabel"]) | undefined;
16548
- /** Each stop's place in the run, with `{index}` and `{count}` filled in.
16549
- Translate it with the rest of your text. */
17556
+ /** Each stop's place in the run, with `{index}` and `{count}` filled in and
17557
+ written in the locale. Translate it with the rest of your text. */
16550
17558
  progressLabel?: (HelixTour["progressLabel"]) | undefined;
16551
17559
  /** Label for the control that leaves the tour. */
16552
17560
  "skip-label"?: (HelixTour["skipLabel"]) | undefined;
@@ -16754,6 +17762,12 @@ export type HelixTreeHelixActivateElementEvent =
16754
17762
  /** `helix-before-activate` event type */
16755
17763
  export type HelixTreeHelixBeforeActivateElementEvent =
16756
17764
  HelixTreeElementEvent<HelixBeforeActivateEvent>;
17765
+ /** `helix-before-reorder` event type */
17766
+ export type HelixTreeHelixBeforeReorderElementEvent =
17767
+ HelixTreeElementEvent<HelixBeforeReorderEvent>;
17768
+ /** `helix-reorder` event type */
17769
+ export type HelixTreeHelixReorderElementEvent =
17770
+ HelixTreeElementEvent<HelixReorderEvent>;
16757
17771
 
16758
17772
  export type HelixTreeVueProps = {
16759
17773
  /** Which end of the row the branch chevron sits at.
@@ -16831,11 +17845,29 @@ Ignored once `active` is written. */
16831
17845
 
16832
17846
  Ignored once `active` is written. */
16833
17847
  defaultActive?: (HelixTree["defaultActive"]) | undefined;
17848
+ /** What screen readers hear when a held item is put back, or a move is
17849
+ refused, in a `reorderable` tree. */
17850
+ "canceled-label"?: (HelixTree["canceledLabel"]) | undefined;
17851
+ /** What screen readers hear when a held item is put back, or a move is
17852
+ refused, in a `reorderable` tree. */
17853
+ canceledLabel?: (HelixTree["canceledLabel"]) | undefined;
17854
+ /** What screen readers hear when a held item is dropped, in a `reorderable` tree. */
17855
+ "dropped-label"?: (HelixTree["droppedLabel"]) | undefined;
17856
+ /** What screen readers hear when a held item is dropped, in a `reorderable` tree. */
17857
+ droppedLabel?: (HelixTree["droppedLabel"]) | undefined;
16834
17858
  /** Accessible name for the tree.
16835
17859
 
16836
17860
  An `aria-label` or `aria-labelledby` on the host names the tree too, and
16837
17861
  wins over this. */
16838
17862
  label?: (HelixTree["label"]) | undefined;
17863
+ /** What screen readers hear each time an item moves, in a `reorderable`
17864
+ tree. `{name}` is the item's words, `{position}` its place among its
17865
+ siblings, counting from 1, and `{count}` the number of siblings. */
17866
+ "moved-label"?: (HelixTree["movedLabel"]) | undefined;
17867
+ /** What screen readers hear each time an item moves, in a `reorderable`
17868
+ tree. `{name}` is the item's words, `{position}` its place among its
17869
+ siblings, counting from 1, and `{count}` the number of siblings. */
17870
+ movedLabel?: (HelixTree["movedLabel"]) | undefined;
16839
17871
  /** What a deeper level means: `peer` for no change, `subordinate` for a lower
16840
17872
  rank, or `heading` for a parent that heads the items under it.
16841
17873
 
@@ -16871,6 +17903,16 @@ branch as a label; a headless consumer reads the attribute and the
16871
17903
  written here appears in the served markup of every tree anybody renders.
16872
17904
  The resting state is the absence of the attribute, which is `peer`. */
16873
17905
  nesting?: (HelixTree["nesting"]) | undefined;
17906
+ /** What screen readers hear when a click on a grip picks up an item, in a
17907
+ `reorderable` tree. `{name}` is the item's words. */
17908
+ "picked-up-label"?: (HelixTree["pickedUpLabel"]) | undefined;
17909
+ /** What screen readers hear when a click on a grip picks up an item, in a
17910
+ `reorderable` tree. `{name}` is the item's words. */
17911
+ pickedUpLabel?: (HelixTree["pickedUpLabel"]) | undefined;
17912
+ /** Lets you move items among their siblings, by dragging a grip or with Alt
17913
+ and an arrow. The tree moves no item itself: you move your data on
17914
+ `helix-reorder`. */
17915
+ reorderable?: (HelixTree["reorderable"]) | undefined;
16874
17916
  /** Whether a reader can check many items, or choose only the items at the
16875
17917
  ends. Unset, one item is chosen at a time, branches included.
16876
17918
 
@@ -16893,12 +17935,18 @@ export type HelixTreeVueEvents = {
16893
17935
  "helix-activate": HelixTreeHelixActivateElementEvent;
16894
17936
  /** Fired before the current node changes, and cancelable. Canceling it is the only way to stop the change. */
16895
17937
  "helix-before-activate": HelixTreeHelixBeforeActivateElementEvent;
17938
+ /** Fired when an item is dropped at a new place among its siblings, in a `reorderable` tree, with the siblings' keys in the new order. Cancelable: cancel it to keep the item where it is. */
17939
+ "helix-before-reorder": HelixTreeHelixBeforeReorderElementEvent;
17940
+ /** Fired after `helix-before-reorder` when nobody canceled it. Move your items to the order in `keys`, each an item's `value`, or its words where it has none. Cancelable: cancel it to say the move did not happen. */
17941
+ "helix-reorder": HelixTreeHelixReorderElementEvent;
16896
17942
  };
16897
17943
 
16898
17944
  export type HelixTrendVueProps = {
16899
- /** The word read out after the direction when the move is an improvement. */
17945
+ /** The word read out after the direction when the move is an improvement,
17946
+ `{betterLabel}` in `judgment-label`. */
16900
17947
  "better-label"?: (HelixTrend["betterLabel"]) | undefined;
16901
- /** The word read out after the direction when the move is an improvement. */
17948
+ /** The word read out after the direction when the move is an improvement,
17949
+ `{betterLabel}` in `judgment-label`. */
16902
17950
  betterLabel?: (HelixTrend["betterLabel"]) | undefined;
16903
17951
  /** Which way the measurement moved, as `movement` says it. */
16904
17952
  direction?: (HelixTrend["direction"]) | undefined;
@@ -16937,9 +17985,23 @@ revenue up is good news and latency up is bad news, and only the consumer
16937
17985
  knows which one this is. Set it once per metric and it holds while the
16938
17986
  movement changes underneath. */
16939
17987
  good?: (HelixTrend["good"]) | undefined;
16940
- /** The locale `value` is written in, such as `de` for `1.234,5`.
16941
-
16942
- Absent uses the runtime's own. Set it on a page rendered on a server, so
17988
+ /** What the `direction` part says. `{direction}` is the word for the
17989
+ movement, `up-label`, `down-label` or `unchanged-label`, and
17990
+ `{judgment}` is `better` or `worse` where `good` judges the move, so a
17991
+ language whose words agree with the movement writes each phrase whole:
17992
+ `{judgment, select, better {...} worse {...} other {...}}`.
17993
+ `{betterLabel}` and `{worseLabel}` are `better-label` and `worse-label`. */
17994
+ "judgment-label"?: (HelixTrend["judgmentLabel"]) | undefined;
17995
+ /** What the `direction` part says. `{direction}` is the word for the
17996
+ movement, `up-label`, `down-label` or `unchanged-label`, and
17997
+ `{judgment}` is `better` or `worse` where `good` judges the move, so a
17998
+ language whose words agree with the movement writes each phrase whole:
17999
+ `{judgment, select, better {...} worse {...} other {...}}`.
18000
+ `{betterLabel}` and `{worseLabel}` are `better-label` and `worse-label`. */
18001
+ judgmentLabel?: (HelixTrend["judgmentLabel"]) | undefined;
18002
+ /** The locale the words and `value` are in, such as `de` for `1.234,5`.
18003
+
18004
+ Absent reads the nearest `lang`, then the runtime's own. Set it on a page rendered on a server, so
16943
18005
  the server and the browser write the figure alike. */
16944
18006
  locale?: (HelixTrend["locale"]) | undefined;
16945
18007
  /** Which way the measurement moved.
@@ -16968,9 +18030,11 @@ both are written. The size is written in the `value` part with
16968
18030
  `format-options` and `locale`, in place of a slotted metric. Absent leaves
16969
18031
  the movement to `movement` and the metric to the slot. */
16970
18032
  value?: (HelixTrend["value"]) | undefined;
16971
- /** The word read out after the direction when the move is a setback. */
18033
+ /** The word read out after the direction when the move is a setback,
18034
+ `{worseLabel}` in `judgment-label`. */
16972
18035
  "worse-label"?: (HelixTrend["worseLabel"]) | undefined;
16973
- /** The word read out after the direction when the move is a setback. */
18036
+ /** The word read out after the direction when the move is a setback,
18037
+ `{worseLabel}` in `judgment-label`. */
16974
18038
  worseLabel?: (HelixTrend["worseLabel"]) | undefined;
16975
18039
  };
16976
18040
 
@@ -17282,9 +18346,11 @@ ours to promise: the attribute is ignored cross-origin, so a file served
17282
18346
  from somewhere else opens rather than saves, which is the browser's rule
17283
18347
  and not something a player can work around. */
17284
18348
  extraControls?: (HelixVideo["extraControls"]) | undefined;
17285
- /** What the control that skips ahead is called, with `{seconds}` filled in. */
18349
+ /** What the control that skips ahead is called. `{seconds}` is how far, written
18350
+ in the locale, and each language writes the forms it has. */
17286
18351
  "forward-label"?: (HelixVideo["forwardLabel"]) | undefined;
17287
- /** What the control that skips ahead is called, with `{seconds}` filled in. */
18352
+ /** What the control that skips ahead is called. `{seconds}` is how far, written
18353
+ in the locale, and each language writes the forms it has. */
17288
18354
  forwardLabel?: (HelixVideo["forwardLabel"]) | undefined;
17289
18355
  /** What the control that fills the screen is called.
17290
18356
 
@@ -17378,9 +18444,13 @@ bar: two of the same control is worse than either placement. */
17378
18444
  "pause-label"?: (HelixVideo["pauseLabel"]) | undefined;
17379
18445
  /** The name of the play control while pressing it would pause the video. */
17380
18446
  pauseLabel?: (HelixVideo["pauseLabel"]) | undefined;
17381
- /** How the volume is read out, with `{percent}` filled in. */
18447
+ /** How the volume is read out. `{percent}` is the volume from 0 to 100,
18448
+ written in the locale, and a language that needs plural forms writes them
18449
+ with `{percent, plural, ...}`. */
17382
18450
  "percent-label"?: (HelixVideo["percentLabel"]) | undefined;
17383
- /** How the volume is read out, with `{percent}` filled in. */
18451
+ /** How the volume is read out. `{percent}` is the volume from 0 to 100,
18452
+ written in the locale, and a language that needs plural forms writes them
18453
+ with `{percent, plural, ...}`. */
17384
18454
  percentLabel?: (HelixVideo["percentLabel"]) | undefined;
17385
18455
  /** What the control that floats the video over other windows is called. */
17386
18456
  "pip-label"?: (HelixVideo["pipLabel"]) | undefined;
@@ -17412,9 +18482,11 @@ this is what a screen reader calls it on arriving. */
17412
18482
  "remote-label"?: (HelixVideo["remoteLabel"]) | undefined;
17413
18483
  /** What the control that casts the video to another device is called. */
17414
18484
  remoteLabel?: (HelixVideo["remoteLabel"]) | undefined;
17415
- /** What the control that skips back is called, with `{seconds}` filled in. */
18485
+ /** What the control that skips back is called. `{seconds}` is how far, written
18486
+ in the locale, and each language writes the forms it has. */
17416
18487
  "rewind-label"?: (HelixVideo["rewindLabel"]) | undefined;
17417
- /** What the control that skips back is called, with `{seconds}` filled in. */
18488
+ /** What the control that skips back is called. `{seconds}` is how far, written
18489
+ in the locale, and each language writes the forms it has. */
17418
18490
  rewindLabel?: (HelixVideo["rewindLabel"]) | undefined;
17419
18491
  /** What the scrubber is called. */
17420
18492
  "seek-label"?: (HelixVideo["seekLabel"]) | undefined;
@@ -17614,7 +18686,8 @@ arrive. The list does not ask for more while it is set. */
17614
18686
  loadingLabel?: (HelixVirtualList["loadingLabel"]) | undefined;
17615
18687
  /** Places each row by its own measured height. Without it, rows are placed
17616
18688
  by one height: `estimate` until rows are drawn, then the drawn rows' height,
17617
- read once.
18689
+ read once. Rows that come out different heights are placed by their own
18690
+ heights either way.
17618
18691
 
17619
18692
  **Off by default, because the straight line is better when it holds.** One
17620
18693
  height makes offset and index convert by division, which can never
@@ -17802,6 +18875,10 @@ export type CustomCssProperties = {
17802
18875
  "--chart-bar-wash"?: (string) | undefined;
17803
18876
  /** The color of the attribution. */
17804
18877
  "--blockquote-attribution-color"?: (string) | undefined;
18878
+ /** The typeface of the attribution, the page's by default. */
18879
+ "--blockquote-attribution-font-family"?: (string) | undefined;
18880
+ /** The weight of the attribution, the page's by default. */
18881
+ "--blockquote-attribution-font-weight"?: (string) | undefined;
17805
18882
  /** The font size of the attribution. */
17806
18883
  "--blockquote-attribution-size"?: (string) | undefined;
17807
18884
  /** The color of the quoted passage. */
@@ -17812,8 +18889,14 @@ export type CustomCssProperties = {
17812
18889
  "--blockquote-font-weight"?: (string) | undefined;
17813
18890
  /** The space between the passage and its attribution. */
17814
18891
  "--blockquote-gap"?: (string) | undefined;
18892
+ /** The letter spacing of the quoted passage, the tight tracking by default. */
18893
+ "--blockquote-letter-spacing"?: (string) | undefined;
17815
18894
  /** The line height of the quoted passage, the tight leading by default. */
17816
18895
  "--blockquote-line-height"?: (string) | undefined;
18896
+ /** The color of the mark `marks` draws, the subtle foreground by default. */
18897
+ "--blockquote-mark-color"?: (string) | undefined;
18898
+ /** The font size of the mark `marks` draws. */
18899
+ "--blockquote-mark-size"?: (string) | undefined;
17817
18900
  /** The font size of the quoted passage. */
17818
18901
  "--blockquote-size"?: (string) | undefined;
17819
18902
  /** Inline padding of a control slotted into a crumb, matching the steps either side of it. */
@@ -17842,6 +18925,14 @@ export type CustomCssProperties = {
17842
18925
  "--breadcrumbs-split-fill"?: (string) | undefined;
17843
18926
  /** Space between the buttons, when `spaced`. */
17844
18927
  "--button-group-gap"?: (string) | undefined;
18928
+ /** Fill behind a pressed button, in a selection mode. Defaults to the foreground color. */
18929
+ "--button-group-pressed-background-color"?: (string) | undefined;
18930
+ /** Edge of a pressed button, in a selection mode. Defaults to its fill. */
18931
+ "--button-group-pressed-border-color"?: (string) | undefined;
18932
+ /** Words and icons of a pressed button, in a selection mode. Defaults to the background color. */
18933
+ "--button-group-pressed-color"?: (string) | undefined;
18934
+ /** Written on the control inside each toggle button of a group with `selection-mode`: `1` while it is pressed and `0` while it is not. Read it in a `::part(button)` rule to draw the pressed look. */
18935
+ "--button-group-pressed"?: (string) | undefined;
17845
18936
  /** Fill behind the button, in every state. */
17846
18937
  "--button-background-color"?: (string) | undefined;
17847
18938
  /** Fill behind the button under the pointer. Without it, `--button-background-color` also applies on hover. */
@@ -17906,8 +18997,12 @@ export type CustomCssProperties = {
17906
18997
  "--canvas-node-background-color"?: (string) | undefined;
17907
18998
  /** A color for the card that carries no meaning, such as a hex color from a document. Use it when no tone fits. */
17908
18999
  "--canvas-node-color"?: (string) | undefined;
19000
+ /** The size of the card's text. */
19001
+ "--canvas-node-font-size"?: (string) | undefined;
17909
19002
  /** The space between the card's edge and its content. */
17910
19003
  "--canvas-node-padding"?: (string) | undefined;
19004
+ /** The card's corners. A `shape` draws its own. */
19005
+ "--canvas-node-radius"?: (string) | undefined;
17911
19006
  /** The shadow under the card, set by `separation="elevated"`. */
17912
19007
  "--canvas-node-shadow"?: (string) | undefined;
17913
19008
  /** The background behind the board. */
@@ -17916,14 +19011,26 @@ export type CustomCssProperties = {
17916
19011
  "--canvas-block-size"?: (string) | undefined;
17917
19012
  /** The color of the frame's edge. */
17918
19013
  "--canvas-border-color"?: (string) | undefined;
19014
+ /** The color of a connection being drawn, and of the card it will arrive at and that card's points. */
19015
+ "--canvas-connect-color"?: (string) | undefined;
17919
19016
  /** The color of a connection with no tone. Set it in one edge's `style` to color only that edge. */
17920
19017
  "--canvas-edge-color"?: (string) | undefined;
17921
19018
  /** The width of the area a pointer can press on a connection, which is wider than the drawn line. */
17922
19019
  "--canvas-edge-target-width"?: (string) | undefined;
19020
+ /** The width of a connection's line. A selected or focused connection is drawn at twice it. */
19021
+ "--canvas-edge-width"?: (string) | undefined;
17923
19022
  /** The spacing of the grid lines or dots, in the document's units, so it scales with the zoom. */
17924
19023
  "--canvas-grid-size"?: (string) | undefined;
19024
+ /** The color of the label on a connection. */
19025
+ "--canvas-label-color"?: (string) | undefined;
17925
19026
  /** The width of the field for editing a label. */
17926
19027
  "--canvas-label-editor-inline-size"?: (string) | undefined;
19028
+ /** The size of the label on a connection. */
19029
+ "--canvas-label-font-size"?: (string) | undefined;
19030
+ /** The frame's corners. */
19031
+ "--canvas-radius"?: (string) | undefined;
19032
+ /** The color of what is selected: a card's outline, its corners and its move handle, a connection and its ends, and the box drawn to select. */
19033
+ "--canvas-selected-color"?: (string) | undefined;
17927
19034
  /** The background of the pan and zoom buttons. `Map` uses the same property. */
17928
19035
  "--viewport-control-background-color"?: (string) | undefined;
17929
19036
  /** 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. */
@@ -17936,10 +19043,18 @@ export type CustomCssProperties = {
17936
19043
  "--card-border-color"?: (string) | undefined;
17937
19044
  /** Width of the surface's edge. Follows `--helix-border-surface`, which is a hairline unless your theme sets another width. The edge is what sets the surface apart. */
17938
19045
  "--card-border-width"?: (string) | undefined;
19046
+ /** Color of the card's text. Muted by default, so the header reads as the card's own voice. */
19047
+ "--card-color"?: (string) | undefined;
17939
19048
  /** Space between the regions, and between a header or footer and its actions. */
17940
19049
  "--card-gap"?: (string) | undefined;
19050
+ /** Color of the header, and of a `Text` heading anywhere in the card. The foreground by default. */
19051
+ "--card-heading-color"?: (string) | undefined;
19052
+ /** Line height of the card's text. The normal leading by default. */
19053
+ "--card-line-height"?: (string) | undefined;
17941
19054
  /** Height of the media region. Defaults to `auto`, which follows an image's own proportions. A chart has no height of its own, so set one here for a chart. */
17942
19055
  "--card-media-block-size"?: (string) | undefined;
19056
+ /** How a slotted picture fills the media region, as `object-fit`. `cover` by default; `contain` shows all of a logo or a screenshot. */
19057
+ "--card-media-fit"?: (string) | undefined;
17943
19058
  /** Width of the media column when horizontal. */
17944
19059
  "--card-media-size"?: (string) | undefined;
17945
19060
  /** Inset applied to each region. */
@@ -18002,6 +19117,12 @@ export type CustomCssProperties = {
18002
19117
  "--chat-resume-shadow"?: (string) | undefined;
18003
19118
  /** The hairline under the header. */
18004
19119
  "--chat-rule"?: (string) | undefined;
19120
+ /** The thumb of the transcript's scrollbar. Defaults to `--helix-scrollbar-thumb-color`. */
19121
+ "--chat-scrollbar-thumb-color"?: (string) | undefined;
19122
+ /** The thumb while the pointer is over the transcript. Defaults to `--helix-scrollbar-thumb-hover-color`. */
19123
+ "--chat-scrollbar-thumb-hover-color"?: (string) | undefined;
19124
+ /** The track of the transcript's scrollbar. Defaults to `--helix-scrollbar-track-color`. */
19125
+ "--chat-scrollbar-track-color"?: (string) | undefined;
18005
19126
  /** The color of the dots and the words that say who is typing. */
18006
19127
  "--chat-typing-color"?: (string) | undefined;
18007
19128
  /** The space between the dots and the words that say who is typing. */
@@ -18026,22 +19147,36 @@ export type CustomCssProperties = {
18026
19147
  "--checkbox-mark-color"?: (string) | undefined;
18027
19148
  /** The width and height of the box. */
18028
19149
  "--checkbox-size"?: (string) | undefined;
19150
+ /** The color a diff's added lines are tinted in and their `+` is drawn in. The success color by default. */
19151
+ "--code-block-added-color"?: (string) | undefined;
18029
19152
  /** A backdrop filter for the block and its header, for a translucent background. */
18030
19153
  "--code-block-backdrop"?: (string) | undefined;
18031
19154
  /** The background behind the code. Set it for a block that sits on a surface other than the page background. */
18032
19155
  "--code-block-background-color"?: (string) | undefined;
18033
19156
  /** The line around the block and its header. */
18034
19157
  "--code-block-border-color"?: (string) | undefined;
19158
+ /** The color of the code. A highlighter's own colors win on the tokens it colors. */
19159
+ "--code-block-color"?: (string) | undefined;
18035
19160
  /** The color of the button under a capped block that shows every line. */
18036
19161
  "--code-block-expand-color"?: (string) | undefined;
19162
+ /** The typeface of the code and its line numbers. The mono face by default. */
19163
+ "--code-block-font-family"?: (string) | undefined;
19164
+ /** The size of the code and its line numbers. */
19165
+ "--code-block-font-size"?: (string) | undefined;
18037
19166
  /** The color of the line numbers. */
18038
19167
  "--code-block-gutter-color"?: (string) | undefined;
18039
19168
  /** The background behind the name. The default is `surface-raised`. */
18040
19169
  "--code-block-header-background-color"?: (string) | undefined;
19170
+ /** The color of the name in the header. */
19171
+ "--code-block-label-color"?: (string) | undefined;
19172
+ /** The line height of the code and its line numbers, as a number or a length. */
19173
+ "--code-block-line-height"?: (string) | undefined;
18041
19174
  /** The tallest the code grows before it scrolls, or until `expandable`'s button shows every line. The default is no limit. */
18042
19175
  "--code-block-max-block-size"?: (string) | undefined;
18043
19176
  /** The corner radius of the header's top and the block's bottom, which form one shape. */
18044
19177
  "--code-block-radius"?: (string) | undefined;
19178
+ /** The color a diff's removed lines are tinted in and their `-` is drawn in. The danger color by default. */
19179
+ "--code-block-removed-color"?: (string) | undefined;
18045
19180
  /** Fill behind the fragment. Defaults to the foreground color at 6%, which looks the same on a light page and a dark one. */
18046
19181
  "--code-background-color"?: (string) | undefined;
18047
19182
  /** The fragment's typeface. Defaults to the mono face. */
@@ -18154,10 +19289,32 @@ export type CustomCssProperties = {
18154
19289
  "--data-table-color"?: (string) | undefined;
18155
19290
  /** The grid track list for the columns. It overrides the list worked out from the columns. */
18156
19291
  "--data-table-columns"?: (string) | undefined;
19292
+ /** The fill behind the copy of a row a pointer drags. */
19293
+ "--data-table-drag-preview-background-color"?: (string) | undefined;
19294
+ /** The color of the edge around the copy of a row a pointer drags. */
19295
+ "--data-table-drag-preview-border-color"?: (string) | undefined;
19296
+ /** The width of the edge around the copy of a row a pointer drags. None by default, where the shadow lifts it. */
19297
+ "--data-table-drag-preview-border-width"?: (string) | undefined;
19298
+ /** The opacity of the copy of a row a pointer drags. */
19299
+ "--data-table-drag-preview-opacity"?: (string) | undefined;
19300
+ /** The corner radius of the copy of a row a pointer drags. */
19301
+ "--data-table-drag-preview-radius"?: (string) | undefined;
19302
+ /** The shadow that raises the copy of a row a pointer drags over the page. */
19303
+ "--data-table-drag-preview-shadow"?: (string) | undefined;
19304
+ /** The opacity of a row being moved, with `reorderable-rows`. */
19305
+ "--data-table-dragging-opacity"?: (string) | undefined;
19306
+ /** The color of the line where a moved row would land. */
19307
+ "--data-table-drop-indicator-color"?: (string) | undefined;
19308
+ /** The thickness of the line where a moved row would land. */
19309
+ "--data-table-drop-indicator-size"?: (string) | undefined;
18157
19310
  /** The space between the grid and the footer below it. */
18158
19311
  "--data-table-footer-gap"?: (string) | undefined;
18159
19312
  /** The space between the pieces of the footer, such as a summary and the pagination. */
18160
19313
  "--data-table-footer-item-gap"?: (string) | undefined;
19314
+ /** The color of a row's grip, with `reorderable-rows`. */
19315
+ "--data-table-grip-color"?: (string) | undefined;
19316
+ /** The opacity of a row's grip while a sort decides the order. */
19317
+ "--data-table-grip-disabled-opacity"?: (string) | undefined;
18161
19318
  /** The fill behind a heading while `windowed`. It is opaque, because rows scroll under the sticky heading. Unset otherwise. */
18162
19319
  "--data-table-heading-background-color"?: (string) | undefined;
18163
19320
  /** The text color of a heading. */
@@ -18234,6 +19391,8 @@ export type CustomCssProperties = {
18234
19391
  "--date-picker-column-count"?: (string) | undefined;
18235
19392
  /** The space between the value and the controls in `actions`. */
18236
19393
  "--description-list-actions-gap"?: (string) | undefined;
19394
+ /** How a label and its value line up beside each other, as `align-items`. Defaults to `baseline`; `center` suits a value taller than a line, such as an avatar. */
19395
+ "--description-list-item-align"?: (string) | undefined;
18237
19396
  /** The space between a label and its value when the label sits over it. */
18238
19397
  "--description-list-item-gap"?: (string) | undefined;
18239
19398
  /** The color of a label. */
@@ -18246,8 +19405,14 @@ export type CustomCssProperties = {
18246
19405
  "--description-list-value-color"?: (string) | undefined;
18247
19406
  /** The space between the column of labels and the column of values, with `direction="row"`. */
18248
19407
  "--description-list-column-gap"?: (string) | undefined;
19408
+ /** The color of the rule between pairs, with `divided`. */
19409
+ "--description-list-divider-color"?: (string) | undefined;
19410
+ /** The thickness of the rule between pairs, with `divided`. */
19411
+ "--description-list-divider-width"?: (string) | undefined;
18249
19412
  /** Space between one pair and the next. The default is smaller with `direction="row"` than when stacked. Setting this property replaces both defaults. */
18250
19413
  "--description-list-gap"?: (string) | undefined;
19414
+ /** The width of the column of labels, with `direction="row"`. Defaults to the width of the longest label; set a length such as `10rem` to line up several lists. */
19415
+ "--description-list-label-width"?: (string) | undefined;
18251
19416
  /** The panel's fill. Follows `--helix-color-surface-overlay`. */
18252
19417
  "--dialog-background-color"?: (string) | undefined;
18253
19418
  /** Color of the panel's edge. */
@@ -18274,6 +19439,12 @@ export type CustomCssProperties = {
18274
19439
  "--divider-color"?: (string) | undefined;
18275
19440
  /** The color of the content set into the line. */
18276
19441
  "--divider-content-color"?: (string) | undefined;
19442
+ /** The typeface of the content set into the line. The sans face by default. */
19443
+ "--divider-content-font-family"?: (string) | undefined;
19444
+ /** The size of the content set into the line. The `xs` step by default. */
19445
+ "--divider-content-font-size"?: (string) | undefined;
19446
+ /** The weight of the content set into the line. The weight around the divider by default. */
19447
+ "--divider-content-font-weight"?: (string) | undefined;
18277
19448
  /** The space either side of the content set into the line. */
18278
19449
  "--divider-content-gap"?: (string) | undefined;
18279
19450
  /** The length of line before the content under `content-placement="start"`, or after it under `end`. */
@@ -18652,6 +19823,14 @@ export type CustomCssProperties = {
18652
19823
  "--list-item-current-background-color"?: (string) | undefined;
18653
19824
  /** The opacity of a `disabled` row. */
18654
19825
  "--list-item-disabled-opacity"?: (string) | undefined;
19826
+ /** The opacity of a row being moved, in a `reorderable` list. */
19827
+ "--list-item-dragging-opacity"?: (string) | undefined;
19828
+ /** The color of the line where a moved row would land. */
19829
+ "--list-item-drop-indicator-color"?: (string) | undefined;
19830
+ /** The thickness of the line where a moved row would land. */
19831
+ "--list-item-drop-indicator-size"?: (string) | undefined;
19832
+ /** The color of the grip, in a `reorderable` list. */
19833
+ "--list-item-grip-color"?: (string) | undefined;
18655
19834
  /** The padding inside the row. */
18656
19835
  "--list-item-padding"?: (string) | undefined;
18657
19836
  /** What the rail cell shows. The list sets it. */
@@ -18662,6 +19841,18 @@ export type CustomCssProperties = {
18662
19841
  "--list-item-selected-background-color"?: (string) | undefined;
18663
19842
  /** The font weight of a term in a description list. */
18664
19843
  "--list-item-term-weight"?: (string) | undefined;
19844
+ /** The fill behind the copy of a row a pointer drags. */
19845
+ "--list-drag-preview-background-color"?: (string) | undefined;
19846
+ /** The color of the edge around the copy of a row a pointer drags. */
19847
+ "--list-drag-preview-border-color"?: (string) | undefined;
19848
+ /** The width of the edge around the copy of a row a pointer drags. None by default, where the shadow lifts it. */
19849
+ "--list-drag-preview-border-width"?: (string) | undefined;
19850
+ /** The opacity of the copy of a row a pointer drags. */
19851
+ "--list-drag-preview-opacity"?: (string) | undefined;
19852
+ /** The corner radius of the copy of a row a pointer drags. */
19853
+ "--list-drag-preview-radius"?: (string) | undefined;
19854
+ /** The shadow that raises the copy of a row a pointer drags over the page. */
19855
+ "--list-drag-preview-shadow"?: (string) | undefined;
18665
19856
  /** The space between rows. */
18666
19857
  "--list-gap"?: (string) | undefined;
18667
19858
  /** The space that the markers of ordered and unordered lists sit in. */
@@ -18678,6 +19869,26 @@ export type CustomCssProperties = {
18678
19869
  "--listbox-background-color"?: (string) | undefined;
18679
19870
  /** The panel's border, as a shorthand. Set it to `none` when the list is already inside a panel. */
18680
19871
  "--listbox-border"?: (string) | undefined;
19872
+ /** How narrow a column may be with `layout="grid"`. As many columns as fit are drawn. Defaults to `8rem`. */
19873
+ "--listbox-column-min-inline-size"?: (string) | undefined;
19874
+ /** The fill behind the copy of an option a pointer drags. */
19875
+ "--listbox-drag-preview-background-color"?: (string) | undefined;
19876
+ /** The color of the edge around the copy of an option a pointer drags. */
19877
+ "--listbox-drag-preview-border-color"?: (string) | undefined;
19878
+ /** The width of the edge around the copy of an option a pointer drags. None by default, where the shadow lifts it. */
19879
+ "--listbox-drag-preview-border-width"?: (string) | undefined;
19880
+ /** The opacity of the copy of an option a pointer drags. */
19881
+ "--listbox-drag-preview-opacity"?: (string) | undefined;
19882
+ /** The corner radius of the copy of an option a pointer drags. */
19883
+ "--listbox-drag-preview-radius"?: (string) | undefined;
19884
+ /** The shadow that raises the copy of an option a pointer drags over the page. */
19885
+ "--listbox-drag-preview-shadow"?: (string) | undefined;
19886
+ /** The opacity of an option being dragged, in a `reorderable` list with `@fusion.dev/helix/listbox/reorder` imported. */
19887
+ "--listbox-dragging-opacity"?: (string) | undefined;
19888
+ /** The color of the line where a dragged option would land. */
19889
+ "--listbox-drop-indicator-color"?: (string) | undefined;
19890
+ /** The thickness of the line where a dragged option would land. */
19891
+ "--listbox-drop-indicator-size"?: (string) | undefined;
18681
19892
  /** The color of the line shown while `load-error` is set. */
18682
19893
  "--listbox-error-color"?: (string) | undefined;
18683
19894
  /** Maximum height of the list before it scrolls. */
@@ -18728,12 +19939,32 @@ export type CustomCssProperties = {
18728
19939
  "--map-position-fill"?: (string) | undefined;
18729
19940
  /** The point's width. */
18730
19941
  "--map-position-size"?: (string) | undefined;
19942
+ /** The rule above the map credit, under the map. */
19943
+ "--map-attribution-border-color"?: (string) | undefined;
19944
+ /** The color of the map credit. */
19945
+ "--map-attribution-color"?: (string) | undefined;
19946
+ /** The size of the map credit's text. */
19947
+ "--map-attribution-font-size"?: (string) | undefined;
18731
19948
  /** The color behind the map while tiles load. */
18732
19949
  "--map-background-color"?: (string) | undefined;
18733
19950
  /** The frame's height, as a length. Ignored with `fill`, where the container decides it. */
18734
19951
  "--map-block-size"?: (string) | undefined;
18735
19952
  /** The frame's border color. */
18736
19953
  "--map-border-color"?: (string) | undefined;
19954
+ /** The fill of the pressed 3D button and the ring around the chosen map type and each shown layer in the layers menu. */
19955
+ "--map-chosen-color"?: (string) | undefined;
19956
+ /** The space between the map types and the layers in the layers menu. */
19957
+ "--map-layers-menu-gap"?: (string) | undefined;
19958
+ /** The width of the layers menu. */
19959
+ "--map-layers-menu-inline-size"?: (string) | undefined;
19960
+ /** The space inside the edge of the layers menu. */
19961
+ "--map-layers-menu-padding"?: (string) | undefined;
19962
+ /** The north half of the compass needle. */
19963
+ "--map-needle-north-color"?: (string) | undefined;
19964
+ /** The south half of the compass needle. */
19965
+ "--map-needle-south-color"?: (string) | undefined;
19966
+ /** The frame's corners. */
19967
+ "--map-radius"?: (string) | undefined;
18737
19968
  /** How far the needle turns to point north, as an angle. The frame writes it from `bearing`. */
18738
19969
  "--map-needle-turn"?: (string) | undefined;
18739
19970
  /** The color of the casing under the route. */
@@ -18910,6 +20141,8 @@ export type CustomCssProperties = {
18910
20141
  "--notifications-unread-offset"?: (string) | undefined;
18911
20142
  /** Corner radius of the unread mark, which can turn it into a dot. */
18912
20143
  "--notifications-unread-radius"?: (string) | undefined;
20144
+ /** The color of the `error` line. */
20145
+ "--notifications-error-color"?: (string) | undefined;
18913
20146
  /** How tall the feed may get before the list scrolls. */
18914
20147
  "--notifications-max-block-size"?: (string) | undefined;
18915
20148
  /** Width of the media column that every item keeps when any item in the feed has media. */
@@ -19000,14 +20233,46 @@ export type CustomCssProperties = {
19000
20233
  "--outline-rail"?: (string) | undefined;
19001
20234
  /** The color of the line down the leading edge. */
19002
20235
  "--outline-rule-color"?: (string) | undefined;
20236
+ /** Edge of the page you are on. */
20237
+ "--pagination-current-border-color"?: (string) | undefined;
19003
20238
  /** Fill behind the page you are on. */
19004
20239
  "--pagination-current-color"?: (string) | undefined;
20240
+ /** Weight of the number of the page you are on. */
20241
+ "--pagination-current-font-weight"?: (string) | undefined;
20242
+ /** Color of the number of the page you are on. */
20243
+ "--pagination-current-foreground-color"?: (string) | undefined;
20244
+ /** Color of a first, previous, next or last control with nowhere to go. */
20245
+ "--pagination-disabled-foreground-color"?: (string) | undefined;
20246
+ /** How faint a control with nowhere to go is drawn. */
20247
+ "--pagination-disabled-opacity"?: (string) | undefined;
20248
+ /** Color of the control that stands in for hidden pages. */
20249
+ "--pagination-ellipsis-foreground-color"?: (string) | undefined;
20250
+ /** Size of the numbers and the status text. */
20251
+ "--pagination-font-size"?: (string) | undefined;
20252
+ /** Weight of the numbers and the status text. */
20253
+ "--pagination-font-weight"?: (string) | undefined;
20254
+ /** Color of the numbers and the marks on every control. */
20255
+ "--pagination-foreground-color"?: (string) | undefined;
19005
20256
  /** Space between one control and the next. */
19006
20257
  "--pagination-gap"?: (string) | undefined;
19007
20258
  /** Fill behind a control under the pointer. */
19008
20259
  "--pagination-hover-color"?: (string) | undefined;
20260
+ /** Color of a control's number or mark under the pointer. */
20261
+ "--pagination-hover-foreground-color"?: (string) | undefined;
20262
+ /** Size of the mark on a first, previous, next or last control, drawn or slotted. */
20263
+ "--pagination-icon-size"?: (string) | undefined;
20264
+ /** Space either side of a control's number or mark. */
20265
+ "--pagination-padding"?: (string) | undefined;
20266
+ /** Corner radius of every control in the row. */
20267
+ "--pagination-radius"?: (string) | undefined;
19009
20268
  /** The box every control in the row takes. */
19010
20269
  "--pagination-size"?: (string) | undefined;
20270
+ /** Color of the text that says which page you are on, in `compact`. */
20271
+ "--pagination-status-foreground-color"?: (string) | undefined;
20272
+ /** Space between the label and the select. */
20273
+ "--pagination-size-gap"?: (string) | undefined;
20274
+ /** Color of the text. */
20275
+ "--pagination-summary-foreground-color"?: (string) | undefined;
19011
20276
  /** The color of the caret drawn in an empty box. Without it, the character color applies. */
19012
20277
  "--pin-input-caret-color"?: (string) | undefined;
19013
20278
  /** Fill behind each box. */
@@ -19076,12 +20341,18 @@ export type CustomCssProperties = {
19076
20341
  "--qr-code-background-color"?: (string) | undefined;
19077
20342
  /** Color of the dark modules. Defaults to the dark media ink, which is the same in both color schemes so the code scans. */
19078
20343
  "--qr-code-color"?: (string) | undefined;
20344
+ /** The space around the fallback inside the square. */
20345
+ "--qr-code-fallback-padding"?: (string) | undefined;
19079
20346
  /** Color of the three corner squares. Defaults to the color of the modules. */
19080
20347
  "--qr-code-finder-color"?: (string) | undefined;
19081
20348
  /** The clear space around the center logo. */
19082
20349
  "--qr-code-logo-padding"?: (string) | undefined;
20350
+ /** The corner radius of the logo's box. */
20351
+ "--qr-code-logo-radius"?: (string) | undefined;
19083
20352
  /** How much of the center a logo can cover. Defaults to `27%`, which `H` correction allows, because it can lose thirty percent. */
19084
20353
  "--qr-code-logo-size"?: (string) | undefined;
20354
+ /** The corner radius of the square. */
20355
+ "--qr-code-radius"?: (string) | undefined;
19085
20356
  /** How wide the square is. Defaults to `12rem`. */
19086
20357
  "--qr-code-size"?: (string) | undefined;
19087
20358
  /** Color of the quoted text. */
@@ -19206,13 +20477,13 @@ export type CustomCssProperties = {
19206
20477
  "--scroll-area-scrollbar"?: (string) | undefined;
19207
20478
  /** The thickness of each scrollbar drawn under `scrollbars`, and the size of the corner. */
19208
20479
  "--scroll-area-scrollbar-size"?: (string) | undefined;
19209
- /** The color of the scrollbar's thumb. */
20480
+ /** The color of the scrollbar's thumb. Defaults to `--helix-scrollbar-thumb-color`. */
19210
20481
  "--scroll-area-thumb-color"?: (string) | undefined;
19211
- /** The color of a thumb drawn under `scrollbars` while the pointer is over it. */
20482
+ /** The color of the browser's thumb while the pointer is over the scroll area, and of a thumb drawn under `scrollbars` while the pointer is over it. Defaults to `--helix-scrollbar-thumb-hover-color`. */
19212
20483
  "--scroll-area-thumb-hover-color"?: (string) | undefined;
19213
20484
  /** The shortest a thumb drawn under `scrollbars` gets, however long the content. */
19214
20485
  "--scroll-area-thumb-min-size"?: (string) | undefined;
19215
- /** The color of the scrollbar's track. */
20486
+ /** The color of the scrollbar's track. Defaults to `--helix-scrollbar-track-color`. */
19216
20487
  "--scroll-area-track-color"?: (string) | undefined;
19217
20488
  /** How far along its axis the content is scrolled, from 0 at the start to 1 at the end. Written on each `scrollbar` part, so its thumb inherits it. Counted from the right on a right-to-left page. */
19218
20489
  "--scroll-area-scroll-fraction"?: (string) | undefined;
@@ -19326,6 +20597,10 @@ export type CustomCssProperties = {
19326
20597
  "--sparkline-readout-font-size"?: (string) | undefined;
19327
20598
  /** Thickness of the line, overriding `weight`. */
19328
20599
  "--sparkline-width"?: (string) | undefined;
20600
+ /** Color of the group's name. */
20601
+ "--speed-dial-group-label-color"?: (string) | undefined;
20602
+ /** Size of the group's name. */
20603
+ "--speed-dial-group-label-font-size"?: (string) | undefined;
19329
20604
  /** Fill of the round icon. */
19330
20605
  "--speed-dial-item-background-color"?: (string) | undefined;
19331
20606
  /** Color of the icon. */
@@ -19342,6 +20617,8 @@ export type CustomCssProperties = {
19342
20617
  "--speed-dial-label-color"?: (string) | undefined;
19343
20618
  /** Size of the action's name. */
19344
20619
  "--speed-dial-label-font-size"?: (string) | undefined;
20620
+ /** Color of the shortcut drawn after the action's name. */
20621
+ "--speed-dial-shortcut-color"?: (string) | undefined;
19345
20622
  /** Fill of the trigger the dial draws when none is slotted. */
19346
20623
  "--speed-dial-background-color"?: (string) | undefined;
19347
20624
  /** Color of that trigger's icon. */
@@ -19366,10 +20643,18 @@ export type CustomCssProperties = {
19366
20643
  "--splitter-grip-color"?: (string) | undefined;
19367
20644
  /** How far the grip runs along the divider. */
19368
20645
  "--splitter-grip-length"?: (string) | undefined;
20646
+ /** How thick the grip is, across the divider. */
20647
+ "--splitter-grip-thickness"?: (string) | undefined;
20648
+ /** Color of a mark slotted into `handle`. */
20649
+ "--splitter-handle-color"?: (string) | undefined;
19369
20650
  /** Color of the divider's target under the pointer. */
19370
20651
  "--splitter-hover-color"?: (string) | undefined;
20652
+ /** How thick the line is under the pointer, with focus and while it moves. */
20653
+ "--splitter-hover-thickness"?: (string) | undefined;
19371
20654
  /** Width of the area you can drag. */
19372
20655
  "--splitter-target"?: (string) | undefined;
20656
+ /** How thick the line is at rest. */
20657
+ "--splitter-thickness"?: (string) | undefined;
19373
20658
  /** Where a nested splitter crosses this one, as a percentage. */
19374
20659
  "--splitter-corner-at"?: (string) | undefined;
19375
20660
  /** Where the divider sits, as a percentage of the box. */
@@ -19426,6 +20711,18 @@ export type CustomCssProperties = {
19426
20711
  "--table-cell-align"?: (string) | undefined;
19427
20712
  /** Track list for the columns. It overrides the track list worked out from the columns. */
19428
20713
  "--table-columns"?: (string) | undefined;
20714
+ /** The fill behind the copy of a row a pointer drags. */
20715
+ "--table-drag-preview-background-color"?: (string) | undefined;
20716
+ /** The color of the edge around the copy of a row a pointer drags. */
20717
+ "--table-drag-preview-border-color"?: (string) | undefined;
20718
+ /** The width of the edge around the copy of a row a pointer drags. None by default, where the shadow lifts it. */
20719
+ "--table-drag-preview-border-width"?: (string) | undefined;
20720
+ /** The opacity of the copy of a row a pointer drags. */
20721
+ "--table-drag-preview-opacity"?: (string) | undefined;
20722
+ /** The corner radius of the copy of a row a pointer drags. */
20723
+ "--table-drag-preview-radius"?: (string) | undefined;
20724
+ /** The shadow that raises the copy of a row a pointer drags over the page. */
20725
+ "--table-drag-preview-shadow"?: (string) | undefined;
19429
20726
  /** The color of the words in the `heading` slot. */
19430
20727
  "--table-title-color"?: (string) | undefined;
19431
20728
  /** The space between the `heading` slot and the grid. */
@@ -19434,6 +20731,16 @@ export type CustomCssProperties = {
19434
20731
  "--table-title-text"?: (string) | undefined;
19435
20732
  /** The column track list the table works out from its columns. The component writes it inline on the element that reads it, so setting it has no effect. Set `columns` to change the tracks. */
19436
20733
  "--table-template"?: (string) | undefined;
20734
+ /** The opacity of a row being moved, in a `reorderable` table. */
20735
+ "--table-dragging-opacity"?: (string) | undefined;
20736
+ /** The color of the line where a moved row would land. */
20737
+ "--table-drop-indicator-color"?: (string) | undefined;
20738
+ /** The thickness of the line where a moved row would land. */
20739
+ "--table-drop-indicator-size"?: (string) | undefined;
20740
+ /** The color of a row's grip, in a `reorderable` table. */
20741
+ "--table-grip-color"?: (string) | undefined;
20742
+ /** The opacity of a row's grip while a sort decides the order. */
20743
+ "--table-grip-disabled-opacity"?: (string) | undefined;
19437
20744
  /** The wash across the cells of a row with `href` under the pointer. */
19438
20745
  "--table-row-hover-background-color"?: (string) | undefined;
19439
20746
  /** The space between the tab row and the panel's content. */
@@ -19524,18 +20831,30 @@ export type CustomCssProperties = {
19524
20831
  "--time-input-segment-placeholder-color"?: (string) | undefined;
19525
20832
  /** Shadow under the panel. Defaults to `--helix-shadow-floating`, because the panel can sit over any content. */
19526
20833
  "--time-input-shadow"?: (string) | undefined;
20834
+ /** The space between the wheels. None by default. */
20835
+ "--time-picker-columns-gap"?: (string) | undefined;
19527
20836
  /** The color of the message under the times, while `feedback` is set. */
19528
20837
  "--time-picker-feedback-color"?: (string) | undefined;
20838
+ /** Fill on a wheel's row under the pointer or the keyboard. */
20839
+ "--time-picker-hover-background-color"?: (string) | undefined;
20840
+ /** The ring around the chosen time, or around the times while nothing is chosen, while the picker is invalid. */
20841
+ "--time-picker-invalid-color"?: (string) | undefined;
19529
20842
  /** How tall the list is before it scrolls. */
19530
20843
  "--time-picker-list-block-size"?: (string) | undefined;
20844
+ /** The corners of the mark on a wheel's row. */
20845
+ "--time-picker-mark-radius"?: (string) | undefined;
19531
20846
  /** Fill behind the times inside a range. */
19532
20847
  "--time-picker-range-color"?: (string) | undefined;
19533
20848
  /** Height and minimum width of one row in a wheel. */
19534
20849
  "--time-picker-row-size"?: (string) | undefined;
19535
20850
  /** Fill on the chosen row of a wheel. */
19536
20851
  "--time-picker-selected-color"?: (string) | undefined;
20852
+ /** Ink on the chosen row of a wheel. */
20853
+ "--time-picker-selected-foreground-color"?: (string) | undefined;
19537
20854
  /** How tall a wheel is. Five rows by default. */
19538
20855
  "--time-picker-wheel-block-size"?: (string) | undefined;
20856
+ /** The mask that fades a wheel toward its ends, as a `mask-image`. Set `none` for no fade. */
20857
+ "--time-picker-wheel-mask"?: (string) | undefined;
19539
20858
  /** The color of the heading. */
19540
20859
  "--timeline-group-heading-color"?: (string) | undefined;
19541
20860
  /** How round the mark is. Zero is a square, and half its size is a disc. */
@@ -19546,14 +20865,32 @@ export type CustomCssProperties = {
19546
20865
  "--timeline-rail-size"?: (string) | undefined;
19547
20866
  /** Space between one entry and the next. */
19548
20867
  "--timeline-gap"?: (string) | undefined;
20868
+ /** The panel's color. Follows `--helix-color-surface-overlay`. */
20869
+ "--toast-background-color"?: (string) | undefined;
19549
20870
  /** Color of the panel's edge. */
19550
20871
  "--toast-border-color"?: (string) | undefined;
19551
20872
  /** Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless your theme sets a border. */
19552
20873
  "--toast-border-width"?: (string) | undefined;
20874
+ /** Color of the message's text. */
20875
+ "--toast-color"?: (string) | undefined;
20876
+ /** Color of the line in the `description` slot, under the heading. */
20877
+ "--toast-description-color"?: (string) | undefined;
20878
+ /** Color of the dismiss control's mark at rest. */
20879
+ "--toast-dismiss-color"?: (string) | undefined;
20880
+ /** Size of the message's text. The first line's controls and mark stay centered on it. */
20881
+ "--toast-font-size"?: (string) | undefined;
20882
+ /** Weight of the heading in the `heading` slot. */
20883
+ "--toast-heading-weight"?: (string) | undefined;
19553
20884
  /** Space between the message's edge and its contents. */
19554
20885
  "--toast-item-padding"?: (string) | undefined;
20886
+ /** Rounding of the panel's corners. */
20887
+ "--toast-radius"?: (string) | undefined;
19555
20888
  /** Shadow under the panel. Follows `--helix-shadow-floating`. A floating surface can sit over any content, so it has a shadow by default. */
19556
20889
  "--toast-shadow"?: (string) | undefined;
20890
+ /** Thickness of the bar that counts down a timed message. */
20891
+ "--toast-timer-size"?: (string) | undefined;
20892
+ /** Color of the mark and the countdown bar. Unset, each `tone` takes its own color, so set it per tone, as in `helix-toast-item[tone="danger"]`. */
20893
+ "--toast-tone-color"?: (string) | undefined;
19557
20894
  /** How long this message stays, in milliseconds, for a progress hint. */
19558
20895
  "--toast-duration"?: (string) | undefined;
19559
20896
  /** How far a swipe has moved the message across, in pixels, toward the right. */
@@ -19652,8 +20989,16 @@ export type CustomCssProperties = {
19652
20989
  "--tree-checkbox-size"?: (string) | undefined;
19653
20990
  /** Size of the chevron, and the gutter a leaf reserves. */
19654
20991
  "--tree-chevron-size"?: (string) | undefined;
20992
+ /** The opacity of an item being moved, in a `reorderable` tree. */
20993
+ "--tree-dragging-opacity"?: (string) | undefined;
20994
+ /** The color of the line where a moved item would land. */
20995
+ "--tree-drop-indicator-color"?: (string) | undefined;
20996
+ /** The thickness of the line where a moved item would land. */
20997
+ "--tree-drop-indicator-size"?: (string) | undefined;
19655
20998
  /** Space between rows. */
19656
20999
  "--tree-gap"?: (string) | undefined;
21000
+ /** The color of the grip, in a `reorderable` tree. */
21001
+ "--tree-grip-color"?: (string) | undefined;
19657
21002
  /** Indent added per level. */
19658
21003
  "--tree-indent"?: (string) | undefined;
19659
21004
  /** Fill of a checked row, in a tree with `selection-mode="multiple"`. Unset, the box alone marks it. */
@@ -19682,6 +21027,18 @@ export type CustomCssProperties = {
19682
21027
  "--tree-chevron-gap"?: (string) | undefined;
19683
21028
  /** The chevron's order in the row. Set from `chevron-placement` and read by each item. */
19684
21029
  "--tree-chevron-order"?: (string) | undefined;
21030
+ /** The fill behind the copy of an item a pointer drags. */
21031
+ "--tree-drag-preview-background-color"?: (string) | undefined;
21032
+ /** The color of the edge around the copy of an item a pointer drags. */
21033
+ "--tree-drag-preview-border-color"?: (string) | undefined;
21034
+ /** The width of the edge around the copy of an item a pointer drags. None by default, where the shadow lifts it. */
21035
+ "--tree-drag-preview-border-width"?: (string) | undefined;
21036
+ /** The opacity of the copy of an item a pointer drags. */
21037
+ "--tree-drag-preview-opacity"?: (string) | undefined;
21038
+ /** The corner radius of the copy of an item a pointer drags. */
21039
+ "--tree-drag-preview-radius"?: (string) | undefined;
21040
+ /** The shadow that raises the copy of an item a pointer drags over the page. */
21041
+ "--tree-drag-preview-shadow"?: (string) | undefined;
19685
21042
  /** Color of a move that `good` says is an improvement. */
19686
21043
  "--trend-better-color"?: (string) | undefined;
19687
21044
  /** Color of the arrow. Setting it overrides the color that `good` sets. */
@@ -19764,6 +21121,12 @@ export type CustomCssProperties = {
19764
21121
  "--virtual-list-loading-color"?: (string) | undefined;
19765
21122
  /** The space around the text in the row drawn while `loading` is set. */
19766
21123
  "--virtual-list-loading-padding"?: (string) | undefined;
21124
+ /** The thumb of the list's scrollbar. Defaults to `--helix-scrollbar-thumb-color`. */
21125
+ "--virtual-list-scrollbar-thumb-color"?: (string) | undefined;
21126
+ /** The thumb while the pointer is over the list. Defaults to `--helix-scrollbar-thumb-hover-color`. */
21127
+ "--virtual-list-scrollbar-thumb-hover-color"?: (string) | undefined;
21128
+ /** The track of the list's scrollbar. Defaults to `--helix-scrollbar-track-color`. */
21129
+ "--virtual-list-scrollbar-track-color"?: (string) | undefined;
19767
21130
  /** The fill behind a chosen row, in a list with `selection-mode`. */
19768
21131
  "--virtual-list-selected-background-color"?: (string) | undefined;
19769
21132
  };
@@ -19832,7 +21195,7 @@ export interface WcToolkitVueGlobalComponents {
19832
21195
  HelixBarChartVueProps,
19833
21196
  HelixBarChartVueEvents
19834
21197
  >;
19835
- /** Set in the display face, larger than body text, to mark a change of voice. No quotation marks are drawn, because the size and spacing already set the passage apart. */
21198
+ /** Set in the display face, larger than body text, to mark a change of voice. No quotation marks are drawn by default, because the size and spacing already set the passage apart. 'marks' draws one large opening mark over the passage, as a pull quote sets it, in the element's language. */
19836
21199
  "helix-blockquote": DefineCustomElement<
19837
21200
  HelixBlockquote,
19838
21201
  HelixBlockquoteVueProps,
@@ -19850,7 +21213,7 @@ export interface WcToolkitVueGlobalComponents {
19850
21213
  HelixBreadcrumbsVueProps,
19851
21214
  HelixBreadcrumbsVueEvents
19852
21215
  >;
19853
- /** Joins the buttons into one shape: the outer corners keep their radius, the inner corners lose it, and adjacent borders collapse into one line. The joining rule is in the base layer, paired with 'data-button' like the button's own box, because the corner is on the control inside each button's shadow root, where this component's styles cannot reach. The same rule works for your own anchor styled as a button. The buttons take their height from the region, so set 'data-density' on the group to make every button in it smaller or larger together. */
21216
+ /** Joins the buttons into one shape: the outer corners keep their radius, the inner corners lose it, and adjacent borders collapse into one line. A Helix button's corners are on the control inside its shadow root, where this component's styles cannot reach, so the group flattens them through the button's own '--button-radius-*' hooks. A native '<button>' and your own anchor styled with 'data-button' join through rules in the base layer, because a page rule setting their radius would beat any rule in here. The buttons take their height from the region, so 'size' makes every button in the group smaller or larger together, as 'data-density' on the group does, and a button's own size still wins. A native '<button>' in a sized group takes the height and the text size. With 'selection-mode', a pressed button takes the solid fill: '--button-group-pressed-background-color' behind it and '--button-group-pressed-color' for its words, set on the group or above it. */
19854
21217
  "helix-button-group": DefineCustomElement<
19855
21218
  HelixButtonGroup,
19856
21219
  HelixButtonGroupVueProps,
@@ -19874,7 +21237,7 @@ export interface WcToolkitVueGlobalComponents {
19874
21237
  HelixCanvasEdgeVueProps,
19875
21238
  HelixCanvasEdgeVueEvents
19876
21239
  >;
19877
- /** The card is the host element, because the board writes the card's coordinates onto the host. Before the board places it, the card sits in normal flow. Without JavaScript, the page shows the cards' text in the order it was written. */
21240
+ /** The card is the host element, because the board writes the card's coordinates onto the host. Before the board places it, the card sits in normal flow. Without JavaScript, the page shows the cards' text in the order it was written. On a touch screen, the points and corners of the card with focus take a reach 44 pixels across, so a finger can start a connection from one. */
19878
21241
  "helix-canvas-node": DefineCustomElement<
19879
21242
  HelixCanvasNode,
19880
21243
  HelixCanvasNodeVueProps,
@@ -19994,7 +21357,7 @@ export interface WcToolkitVueGlobalComponents {
19994
21357
  HelixDescriptionListItemVueProps,
19995
21358
  HelixDescriptionListItemVueEvents
19996
21359
  >;
19997
- /** Labels are muted and values use the style of the surrounding text, so the values stand out and the labels help you find them. With 'direction="row"', the labels share one column as wide as the longest label, and the values start on one line beside it. **Below about 22rem of its own width, the row layout stacks** each label above its value. The width is measured on the list, because a details panel can be a sidebar on a wide screen or the whole of a narrow one. Below that width the label column leaves too little room for the values. **For a summary, set 'width="auto"' and 'justify="between"'.** The list is as wide as its widest pair, labels sit on the start edge, and values sit on the end edge in tabular figures, as in a set of totals. */
21360
+ /** Labels are muted and values use the style of the surrounding text, so the values stand out and the labels help you find them. With 'direction="row"', the labels share one column as wide as the longest label, and the values start on one line beside it. **Below about 22rem of its own width, the row layout stacks** each label above its value. The width is measured on the list, because a details panel can be a sidebar on a wide screen or the whole of a narrow one. Below that width the label column leaves too little room for the values. **For a summary, set 'width="auto"' and 'justify="between"'.** The list is as wide as its widest pair, labels sit on the start edge, and values sit on the end edge in tabular figures, as in a set of totals. **For a rule between pairs, set 'divided'.** The rule sits in the middle of the gap, so the pairs keep the same room on either side of it. */
19998
21361
  "helix-description-list": DefineCustomElement<
19999
21362
  HelixDescriptionList,
20000
21363
  HelixDescriptionListVueProps,
@@ -20492,6 +21855,12 @@ export interface WcToolkitVueGlobalComponents {
20492
21855
  HelixSparklineVueProps,
20493
21856
  HelixSparklineVueEvents
20494
21857
  >;
21858
+ /** A column of actions with its name above them, in the small muted words a menu heads its sections with, lined up on the side the trigger is on. The space between two groups is the space between two actions. */
21859
+ "helix-speed-dial-group": DefineCustomElement<
21860
+ HelixSpeedDialGroup,
21861
+ HelixSpeedDialGroupVueProps,
21862
+ HelixSpeedDialGroupVueEvents
21863
+ >;
20495
21864
  /** Presentation only: a round mark the size of a small control, with the name on a chip beside it so it stays readable over whatever the dial floats over. The base class handles its behavior. */
20496
21865
  "helix-speed-dial-item": DefineCustomElement<
20497
21866
  HelixSpeedDialItem,
@@ -20659,13 +22028,13 @@ export interface WcToolkitVueGlobalComponents {
20659
22028
  HelixToggleVueProps,
20660
22029
  HelixToggleVueEvents
20661
22030
  >;
20662
- /** The toolbar draws no frame of its own, so it does not add a second frame inside whatever already frames the bar. */
22031
+ /** The toolbar draws no frame of its own, so it does not add a second frame inside whatever already frames the bar. Its controls are the small size, since a toolbar is dense by nature, and a control added later takes it without being told. 'size="md"' or '"lg"' makes every control in it larger together. */
20663
22032
  "helix-toolbar": DefineCustomElement<
20664
22033
  HelixToolbar,
20665
22034
  HelixToolbarVueProps,
20666
22035
  HelixToolbarVueEvents
20667
22036
  >;
20668
- /** The bubble is in the top layer, so it needs no 'z-index' and no container clips it. The arrow is positioned in the same pass as the bubble, so it still points at the trigger after the bubble shifts to stay in view. */
22037
+ /** Place the tooltip beside its trigger, name the trigger with 'for', and name the tooltip in the trigger's 'aria-describedby', so the trigger is described in the server's markup and at rest: '''html <helix-button aria-describedby="save-tip" id="save">Save</helix-button> <helix-tooltip content="Save your work" for="save" id="save-tip"></helix-tooltip> ''' The bubble is in the top layer, so it needs no 'z-index' and no container clips it. The arrow is positioned in the same pass as the bubble, so it still points at the trigger after the bubble shifts to stay in view. */
20669
22038
  "helix-tooltip": DefineCustomElement<
20670
22039
  HelixTooltip,
20671
22040
  HelixTooltipVueProps,